# $XConsortium: TextField5.scr /main/5 1995/07/17 20:43:09 drk $ # # @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 # # @) A client with a list of functions, a control panel and a TextField to # be acted upon should appear. # #) Drag MB1 in the Action TextField widget to make a small selection. WindowRaise Shell1 LocatePointer TextF1 RTextChar 5 DragComponent TextF1 RTextChar 9 # #) Select XmTextFieldGetSelectionPosition() and call the function. # The left and right end positions # of the selection will # correspond to the values shown in the Status/Input widget. LocatePointer List1 RListItem 0 ClickMB Btn1 LocatePointer ApplyB ClickMB Btn1 CompareVisual TextF1 CompareVisual StatText # #) Select the XmTextFieldGetSelection() function, and click Call Function. # The selected string from Action TextField should appear # in the status widget. LocatePointer List1 RListItem 1 ClickMB Btn1 LocatePointer ApplyB ClickMB Btn1 CompareVisual StatText # #) Select the XmTextFieldSetSelection() function. # Set Num Arg 1 to a low number and Num Arg 2 to a number larger the Num Arg 1. LocatePointer List1 RListItem 2 ClickMB Btn1 LocatePointer Scale1 RScaleSlider DragSliderValue Right 2 LocatePointer Scale2 RScaleSlider DragSliderValue Right 7 # Click Call Function. The characters selected in the Action TextField will # correspond to the range between Num Arg 1 and Num Arg 2. LocatePointer ApplyB ClickMB Btn1 CompareVisual TextF1 # #) Select the XmTextFieldGetSelection() function and call it. The selection # made in previous step should appear in the Status/Input widget. LocatePointer List1 RListItem 1 ClickMB Btn1 LocatePointer ApplyB ClickMB Btn1 CompareVisual StatText # #) Select the XmTextFieldClearSelection() function and call it. The # selection in the Action widget will be deselected. LocatePointer List1 RListItem 3 ClickMB Btn1 LocatePointer ApplyB ClickMB Btn1 CompareVisual TextF1 # C) Continue WindowRaise Shell1 # #) Click the Clear Args PushButton to reset the control panel. LocatePointer ClearB ClickMB Btn1 # #) Select the XmTextFieldInsert() function. Set the Num Arg 1 Scale to 3. LocatePointer List1 RListItem 0 ClickMB Btn1 LocatePointer Scale1 RScaleSlider DragSliderValue Right 3 # #) Click in the Status/Input widget and type in a new string like "NEW". LocatePointer StatText ClickMB Btn1 InputString "NEW" # #) Click the Call Function PushButton. The string in the Status/Input # widget should get inserted after the third character in the Action TextField # widget. LocatePointer ApplyB ClickMB Btn1 CompareVisual TextF1 # C) Continue WindowRaise Shell1 # #) Make a selection in the Action TextField widget by dragging MB1. LocatePointer TextF1 RTextChar 3 DragComponent TextF1 RTextChar 9 # #) Select the XmTextFieldSetAddMode() function and set the True/False # ToggleButton to True. Click Call Function. LocatePointer List1 RListItem 0 ClickMB Btn1 LocatePointer ToggleB ClickMB Btn1 ClickMB Btn1 LocatePointer ApplyB ClickMB Btn1 CompareVisual TextF1 # #) Traverse to the Action TextField widget using the keyboard by pressing # osfTab twice. The insertion cursor should be stippled. ClickKey KTab ClickKey KTab CompareVisual TextF1 # #) Use the osfLeft or osfRight arrow keys to move the insertion cursor # around. Note that the selection remains selected. ClickKey KRight ClickKey KRight ClickKey KRight ClickKey KRight ClickKey KLeft ClickKey KLeft ClickKey KLeft CompareVisual TextF1 # #) Click the True/False ToggleButton to change the state to False. LocatePointer ToggleB ClickMB Btn1 # #) Click the Call Function PushButton to set the Action TextField back to # normal mode. LocatePointer ApplyB ClickMB Btn1 CompareVisual TextF1 # #) Again, traverse to the Action TextField widget and then move around with # the arrow keys. Assuming the selection was still there when focus # arrived in the Action TextField widget, the arrow keys should have now # deselected the selection. ClickKey KTab ClickKey KTab ClickKey KRight ClickKey KRight ClickKey KRight ClickKey KRight ClickKey KLeft ClickKey KLeft ClickKey KLeft CompareVisual TextF1 # C) Continue WindowRaise Shell1 # #) Select and call XmTextFieldGetString() function. The entire string from # the Action TextField widget should appear in Status/Input widget. Note that # the string may be wider than the Status widget width. Use the arrow # keys to move to the hidden text. LocatePointer List1 RListItem 0 ClickMB Btn1 LocatePointer ApplyB ClickMB Btn1 CompareVisual StatText LocatePointer StatText ClickMB Btn1 ClickKey KEndData CompareVisual StatText # #) Click the Clear Args PushButton to reset the control panel. LocatePointer ClearB ClickMB Btn1 # #) Select the XmTextFieldSetString() function. LocatePointer List1 RListItem 1 ClickMB Btn1 # #) Click in the Status/Input widget and type "Here is a new string". LocatePointer StatText ClickMB Btn1 InputString "Here is a new string" # #) Click the Call Function PushButton. The new text from the Status # widget should replace all the text that was previously in the Action # TextField widget. LocatePointer ApplyB ClickMB Btn1 CompareVisual TextF1 # #) Click the Clear Args PushButton. LocatePointer ClearB ClickMB Btn1 # #) Select the XmTextFieldReplace() function. Set the Num Arg 1 Scale to 2 # and the Num Arg 2 Scale to 7. LocatePointer List1 RListItem 2 ClickMB Btn1 LocatePointer Scale1 RScaleSlider DragSliderValue Right 2 LocatePointer Scale2 RScaleSlider DragSliderValue Right 7 # #) Click in the Status/Input widget and type "y wheres". LocatePointer StatText ClickMB Btn1 InputString "y wheres" # #) Click the Call Function PushButton. The Action TextField widget should # now read "Hey wheres a new string". LocatePointer ApplyB ClickMB Btn1 CompareVisual TextF1 # C) Continue WindowRaise Shell1 # #) Click the Clear Args PushButton. LocatePointer ClearB ClickMB Btn1 # #) Select the XmTextFieldGetSubString() function. LocatePointer List1 RListItem 0 ClickMB Btn1 # #) Set the Num Arg 1 Scale to 5, the Num Arg 2 Scale to 4, and # the Num Arg 3 Scale to 5. LocatePointer Scale1 RScaleSlider DragSliderValue Right 5 LocatePointer Scale2 RScaleSlider DragSliderValue Right 4 LocatePointer Scale3 RScaleSlider DragSliderValue Right 5 # #) Click the Call Function PushButton. The Status/Input widget should # contain the substring "here". LocatePointer ApplyB ClickMB Btn1 CompareVisual StatText # #) Set the Num Arg 1 Scale to 20, the Num Arg 2 Scale to 4, and # the Num Arg 3 Scale to 5. LocatePointer Scale1 RScaleSlider DragSliderValue Right 20 # #) Click the Call Function PushButton. The Status/Input widget should # contain the substring "(XmCOPY_TRUNCATED) ing". LocatePointer ApplyB ClickMB Btn1 CompareVisual StatText LocatePointer StatText ClickMB Btn1 ClickKey KEndData CompareVisual StatText # #) Set the Num Arg 1 Scale to 5, the Num Arg 2 Scale to 4, and # the Num Arg 3 Scale to 3. LocatePointer Scale1 RScaleSlider DragSliderValue Left 5 LocatePointer Scale3 RScaleSlider DragSliderValue Left 3 # #) Click the Call Function PushButton. The Status/Input widget should # contain the substring "Return: XmCOPY_FAILED". LocatePointer ApplyB ClickMB Btn1 CompareVisual StatText # E) Exit