/* * @OPENGROUP_COPYRIGHT@ * COPYRIGHT NOTICE * Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc. * Copyright (c) 1996, 1997, 1998, 1999, 2000 The Open Group * ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for * the full copyright text. * * This software is subject to an open license. It may only be * used on, with or for operating systems which are themselves open * source systems. You must contact The Open Group for a license * allowing distribution and sublicensing of this software on, with, * or for operating systems which are not Open Source programs. * * See http://www.opengroup.org/openmotif/license for full * details of the license agreement. Any use, reproduction, or * distribution of the program constitutes recipient's acceptance of * this agreement. * * EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS * PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY * WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY * OR FITNESS FOR A PARTICULAR PURPOSE * * EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT * NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN * ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE * EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGES. */ /* * HISTORY */ /* static char rcsid[] = "$TOG: DNDIcon1.dat /main/7 1999/11/10 16:57:21 jff $" */ #) This is the DNDIcon1 test. C) #) There should be a topLevel window with title \"topLevel0\" containing six PushButtons arranged in two rows, and a Text widget, within a BulletinBoard. #) PushBtn0, PushBtn2, and PushBtn4 have been registered as dropSites. #) Move \"topLevel0\" so that the control panel is fully visible. #) There should be a control panel containing ten optionMenus for modifying respectively, animationStyle, dropActivity, dropSiteOperations, dragOperations, blendModel, cursorForeground, cursorBackground, validCursorForeground, invalidCursorForeground, and noneCursorForeground. The control panel should also show a PushButton \"ApplyChanges\" for applying the changes in animationStyle, dropActivity, and dropSiteOperations, to the registered dropSites. #) The \"Animation Style\" optionMenu should show the options, \"HighLight\", \"ShadowOut\", \"ShadowIn\", \"None\", and \"Pixmap\". \"Pixmap\" is insensitive. \"Highlight\" is the selected item at startup. #) The \"Drop Activity\" optionMenu should show the options, \"Active\" and \"Inactive\". \"Active\" is the selected item at startup. #) The \"Drop Operations\" optionMenu should show the options, \"Move_n_Copy\", \"MoveOnly\", \"CopyOnly\", \"LinkOnly\", \"Move_n_Link\", \"Copy_n_Link\", \"All\", and \"None\". \"Move_n_Copy\" is the selected item at startup. #) The \"Drag Operations\" optionMenu should show the options, \"Move_n_Copy\", \"MoveOnly\", \"CopyOnly\", \"LinkOnly\", \"Move_n_Link\", \"Copy_n_Link\", \"All\", and \"None\". \"CopyOnly\" is the selected item at startup. C) #) The \"Blend Model\" optionMenu should show the options, \"All\", \"State_n_Source\", \"JustSource\", and \"None\". #) The \"Cursor Foreground\", \"Cursor Background\", \"Valid Cursor Foreground\", \"Invalid Cursor Foreground\", and the \"None Cursor Foreground\" optionMenus all should show the options, \"Red\", \"Black\", \"Yellow\", \"Green\", and \"White\". \"Cursor Background\" has \"White\" as the selected item at startup; all others have \"Red\" as the selected item at startup. #) If you want to run another DND test simultaneously and do not care about the instructions of that test, run that test with the option -u "-noinstruct". Otherwise, before proceeding further you will have to reposition the control panels, the topLevel windows, and the instruction panels of both the tests so that they are all completely visible. C) #) Initiate Drag by pressing BTransfer (MB2 by default) with the pointer positioned on PushBtn1. #) A dragIcon should appear consisting of three squares with white background and red text in the foreground. The topleft square should have \"SRC ICON\" in the middle, with \"SRC\" on one line and \"ICON\" on another line. The top right square should have \"NONE ICON\" in the middle, with \"NONE\" on one line and \"ICON\" on another line. And the bottom right square ahould have \"COPY ICON\" in the middle with \"COPY\" on one line and \"ICON\" on another line. All three should be completely visible. #) The attachment for the operationCursorIcon (bottom right square) is SouthEast and for the stateCursorIcon (top right square) is NorthEast. The top left square is the sourceCursorIcon. #) Note that the hotspot for the dragIcon comes from the state Icon, which is the topleft corner of the square when the state is None (meaning when you are dragging over widgets which are not registered as dropSites). #) With BTransfer pressed, drag the pointer over different PushBtns and over the Text widget. #) When the pointer is moving within PuishBtn1, PushBtn3, or PushBtn5, or within the Bulletinboard but outside of all the PushBtns and the text widget, you should not see any visual feedback. The dragIcon should be the same as when you initiated the drag with pointer on PushBtn1, meaning, it should show that you are dragging over widgets that are not registered dropSites. #) When the pointer is moving over PushBtn2, you should not see any visual dragUnder effect. But the stateIcon (top right square) part of the dragIcon should show \"INVALID ICON\", instead of \"NONE ICON\".The reason for this is that, even though PushBtn2 is registered as a dropSite, it is not registered to accept any drops (importTargets is NULL and numImportTargets is 0). #) When the pointer is moving within PushBtn0 or PushBtn4, or the Text widget, the borders of those PushBtns or the Text widget should get highlighted. Also, the stateIcon (the top right square) should change to \"VALID ICON\", and the hotspot should shift to the left midpoint of that square. #) Release BTransfer with the dragIcon on the BulletinBoard. The dragIcon should zap back to PushBtn1 and disappear. C) #) Select \"Inactive\" from the \"Drop Activity\" menu and click on \"ApplyChanges\" to apply this new dropActivity to all the registered PushBtn dropSites. #) Initiate Drag by pressing BTransfer (MB2 by default) with the pointer positioned on PushBtn1 and start dragging. #) Now, except the Text widget, wherever you drag inside the BulletinBoard, the stateIcon should show \"NONE ICON\", meaning, even the registered dropSites are treated as non-dropSites when dropActivity is \"Inactive\". #) Release BTransfer with the dragIcon on the BulletinBoard. The dragIcon should zap back to PushBtn1 and disappear. #) Select \"Active\" from the \"Drop Activity\" menu and click on \"ApplyChanges\" to apply this new dropActivity to all the registered PushBtn dropSites. #) Now, initiate drag from PushBtn1, and drag over all the PushBtns. The stateIcon should show that the behavior is back to when we started, meaning, PushBtn0, PushBtn4, and the Text widget are Valid dropSites, PushBtn2 is an Invalid dropSite, and all other PushBtns and the BulletinBoard are non-dropSites. #) Release BTransfer with the dragIcon on the BulletinBoard. The dragIcon should zap back to PushBtn1 and disappear. C) #) Select \"State_n_Source\" from the \"Blend Model\" menu. #) Initiate drag from PushBtn1. The dragIcon should now consist of only two squares, the one on the left (sourceCursorIcon) showing \"SRC ICON\", and the one on the right (stateCursorIcon) showing \"NONE ICON\". #) Release BTransfer with pointer over PushBtn3. The dragIcon should zap back to PushBtn1 and disappear. #) Select \"JustSource\" from the \"Blend Model\" menu. #) Initiate drag from PushBtn1. The dragIcon should now consist of only one square (sourceCursorIcon) showing \"SRC ICON\". #) Start dragging with BTransfer pressed, on different PushBtns. Note the hotspot has now shifted to the topleft corner of the dragIcon. Release BTransfer with the dragIcon on the BulletinBoard. The dragIcon should zap back to PushBtn1 and disappear. #) Select \"None\" from the \"Blend Model\" menu. #) Initiate drag from PushBtn1. There should be no dragIcon visible now. But as you drag the pointer with BTransfer pressed, the state should be visible through dragUnder effect, i.e., while you are dragging over PushBtn0, PushBtn4, or the text widget, you should see that the borders of these widgets get highlighted. #) Release BTransfer with the dragIcon on the BulletinBoard. C) #) Select \"All\" from the \"Blend Model\" menu. #) Select "Red" from the \"Cursor ForeGround\" menu and "Yellow" from the \"Cursor Background\" menu and initiate drag. You should see that all parts of the dragIcon have red foreground and yellow background. Release BTransfer with the dragIcon on the BulletinBoard. The dragIcon should zap back to PushBtn1 and disappear. #) Select "Black" from the \"Valid Cursor Foreground\" menu, "Green" from the \"Invalid Cursor Foreground\" menu, and "Green" from the \"None Cursor Foreground\" menu. You will see that these will affect foreground of all parts of the dragIcon depending on where you are dragging. #) Initiate Drag by pressing BTransfer with the pointer over any of the PushBtns. With BTransfer pressed, drag over various PushBtns and the Text widget. #) When you are dragging over PushBtn0 and PushBtn4 or the Text widget, you will notice that the state icon shows \"VALID ICON\" with black foreground and yellow background. #) When you are dragging over PushBtn2 , you will notice that the state icon shows \"INVALID ICON\" with green foreground and yellow background. #) When you are dragging over any other PushBtn or over BulletinBoard outside of all the PushBtns and the Text widget, you will notice that the state icon shows \"NONE ICON\" with green foreground and yellow background. #) Release BTransfer with the dragIcon on the BulletinBoard. The dragIcon should zap back to PushBtn1 and disappear. #) Repeat steps 3 through 8 for different color selections. C) !) This tests for CR 5937. PushBtn0-PushBtn3 have increased in size to ensure that they are contiguous (i.e. no BulletinBoard space exists between them). #) Select \"JustSource\" from the \"Blend Model\" menu. #) Select \"Black\" from the \"Cursor Background\" menu, \"Red\" from the \"Valid Cursor Foreground\" menu, \"Green\" from the \"Invalid Cursor Foreground\" menu, and \"Yellow\" from the \"None Cursor Foreground\" menu. #) Initiate Drag by pressing BTransfer with the pointer over PushBtn1. With BTransfer pressed, drag over PushBtn0. The cursor foreground should change to red. #) Keeping BTransfer pressed, drag over PushBtn2. The cursor foreground should change to green. #) Keeping BTransfer pressed, drag back over PushBtn0. If the cursor does not change back to red, CR 5937 has not been fixed. C) E)