/* $TOG: UTMtransfer.dat /main/5 1999/11/18 16:45:12 jff $ */ /* * Motif * * Copyright (c) 1987-2012, The Open Group. All rights reserved. * * These libraries and programs are free software; you can * redistribute them and/or modify them under the terms of the GNU * Lesser General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) * any later version. * * These libraries and programs are distributed in the hope that * they will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Lesser General Public License for more * details. * * You should have received a copy of the GNU Lesser General Public * License along with these librararies and programs; if not, write * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth * Floor, Boston, MA 02110-1301 USA * */ /* * HISTORY */ #) This is the UTMtransfer test. #) You must see a UTMtransfer window on your screen and a UTMPrim1 window. #) If you don't see an UTMPrim1 window, please run: !) "UTMPrim1 -u -n&" C) #) The following panels test the transfer of the primary selection. #) When you select an object with a primary selection, and then transfer it (copying it) in an other widget, the following actions should occur: !) 1. The convertCallback of the widget owning the primary selection is called multiple times with the selection field set to PRIMARY and different conversion target that this widget supports as a source of data. 2. The destinationCallback of the widget receiving the transfer is called with the selection field set to PRIMARY and the operation field set to XmCOPY. #) In our test, the destination widget is the drawing area (red square) in the UTMtransfer window. C) #) Select the "Amazing" word in the TextField widget of the UTMPrim1 window. #) Pulldown the "Edit" menu of the UTMtransfer window and select "Paste (copy)". #) The list of targets supported by the TextField widget appears in the list of the UTMtransfer window. !) TIMESTAMP FOREGROUND BACKGROUND COLORMAP CLASS NAME CLIENT_WINDOW _MOTIF_RENDER_TABLE _MOTIF_ENCODING_REGISTRY COMPOUND_TEXT TEXT STRING #) You should see in your term window the calls to the TextField convertCallback, and the call to the drawing area destinationCallback. #) You can play in the UTMtransfer window, by selecting a target type in the list. When selected, the "Target" name, "Target Value" and target "Type" are updated in the "Target Values" panel. C) #) Select the "scream" word in the Text widget of the UTMPrim1 window. #) As the primary selection change, you will notice in your term window, 2 TextField widget convertCallback calls, because this widget just lost the focus and the primary selection: !) XmNconvertCallback called for TextField widget. selection = _MOTIF_DESTINATION conversion target = _MOTIF_LOSE_SELECTION XmNconvertCallback called for TextField widget. selection = PRIMARY conversion target = _MOTIF_LOSE_SELECTION #) Pulldown the "Edit" menu of the UTMtransfer window and select "Paste (copy)". #) The list of targets supported by the Text widget appears in the list of the UTMtransfer window. !) TIMESTAMP FOREGROUND BACKGROUND COLORMAP CLASS NAME CLIENT_WINDOW _MOTIF_RENDER_TABLE _MOTIF_ENCODING_REGISTRY COMPOUND_TEXT TEXT STRING #) You should see in your term window the calls to the Text convertCallback, and the call to the drawing area destinationCallback. #) You can play in the UTMtransfer window, by selecting a target type in the list. When selected, the "Target" name, "Target Value" and target "Type" are updated in the "Target Values" panel. C) #) The following panels test the transfer (move) of the primary selection. #) When you select an object with a primary selection, and then transfer it (moving it) to an other widget, the following actions should occur: !) 1. The convertCallback of the widget owning the primary selection is called multiple times with the selection field set to PRIMARY and different conversion target that this widget supports as a source of data. 2. The destinationCallback of the widget receiving the transfer is called with the selection field set to PRIMARY and the operation field set to XmMOVE. 3. When the transfer is completed, a delete request is sent to the owner of the primary selection. That is the convertCallback is called with the selection field set to PRIMARY and the conversion target set to DELETE. #) In our test, the destination widget is the drawing area (red square) in the UTMtransfer window. C) #) Select the "Amazing" word in the TextField widget of the UTMPrim1 window. #) Pulldown the "Edit" menu of the UTMtransfer window and select "Paste (move)". #) The list of targets supported by the TextField widget appears in the list of the UTMtransfer window. #) You should see in your term window the calls to the TextField convertCallback, the call to the drawing area destinationCallback, and the call to the TextField convertCallback with the DELETE conversion target. #) Notice that the "Amazing" word has been cut from the TextField widget. #) You can play in the UTMtransfer window, by selecting a target type in the list. When selected, the "Target" name, "Target Value" and target "Type" are updated in the "Target Values" panel. C) #) Select the "scream" word in the Text widget of the UTMPrim1 window. #) Pulldown the "Edit" menu of the UTMtransfer window and select "Paste (move)". #) The list of targets supported by the Text widget appears in the list of the UTMtransfer window. #) You should see in your term window the calls to the Text convertCallback, the call to the drawing area destinationCallback, and the call to the Text convertCallback with the DELETE conversion target. #) Notice that the "scream" word has been cut from the TextField widget. #) You can play in the UTMtransfer window, by selecting a target type in the list. When selected, the "Target" name, "Target Value" and target "Type" are updated in the "Target Values" panel. C) #) Select the "Flavors" word in the TextField widget of the UTMPrim1 window. #) Press Btn2 and start dragging. Drop it in the drawing area of the UTMtransfer window. #) The list of targets supported by the TextField widget appears in the list of the UTMtransfer window. #) You should see in your term window the calls to the TextField convertCallback with _MOTIF_EXPORT_TARGETS, then the individual conversion target calls, and the drawing area destinationCallback, with the following parameters: !) selection = _MOTIF_DROP operation = XmMOVE C) #) Select the "ice" word in the Text widget of the UTMPrim1 window. #) Press Btn2 and start dragging. Drop it in the drawing area of the UTMtransfer window. #) The list of targets supported by the Text widget appears in the list of the UTMtransfer window. #) You should see in your term window the calls to the Text convertCallback with _MOTIF_EXPORT_TARGETS, then the individual conversion target calls, and the drawing area destinationCallback, with the following parameters: !) selection = _MOTIF_DROP operation = XmMOVE C) #) Select the "Maple Walnut" item in the List widget of the UTMPrim1 window. #) Press Btn2 and start dragging. Drop it in the drawing area of the UTMtransfer window. #) The list of targets supported by the List widget appears in the list of the UTMtransfer window. !) TIMESTAMP FOREGROUND BACKGROUND COLORMAP CLASS NAME CLIENT_WINDOW _MOTIF_RENDER_TABLE _MOTIF_ENCODING_REGISTRY _MOTIF_COMPOUND_STRING COMPOUND_TEXT TEXT STRING #) You should see in your term window the calls to the List convertCallback with _MOTIF_EXPORT_TARGETS, then the individual conversion target calls, and the drawing area destinationCallback, with the following parameters: !) selection = _MOTIF_DROP operation = XmCOPY C) #) Press Btn2 on the PushButton widget and start dragging. Drop it in the drawing area of the UTMtransfer window. #) The list of targets supported by the PushButton widget appears in the list of the UTMtransfer window. !) TIMESTAMP FOREGROUND BACKGROUND COLORMAP CLASS NAME CLIENT_WINDOW _MOTIF_RENDER_TABLE _MOTIF_ENCODING_REGISTRY _MOTIF_COMPOUND_STRING COMPOUND_TEXT TEXT STRING #) You should see in your term window the calls to the PushButton convertCallback with _MOTIF_EXPORT_TARGETS, then the individual conversion target calls, and the drawing area destinationCallback, with the following parameters: !) selection = _MOTIF_DROP operation = XmCOPY #) You should obtain the same result with the ToggleButton and the Label. C) #) Press Btn2 on the label value of the Scale widget and start dragging. Drop it in the drawing area of the UTMtransfer window. #) The list of targets supported by the Scale widget appears in the list of the UTMtransfer window. !) TIMESTAMP FOREGROUND BACKGROUND COLORMAP CLASS NAME CLIENT_WINDOW _MOTIF_RENDER_TABLE _MOTIF_ENCODING_REGISTRY COMPOUND_TEXT STRING #) You should see in your term window the calls to the Scale convertCallback with _MOTIF_EXPORT_TARGETS, then the individual conversion target calls, and the drawing area destinationCallback, with the following parameters: !) selection = _MOTIF_DROP operation = XmCOPY C) #) Before exiting press the QuitButton in UTMPrim1. E)