/* * @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[] = "$XConsortium: TextField5.dat /main/5 1995/07/13 19:36:45 drk $" */ @) A client with a list of functions, a control panel and a TextField widget to be acted upon should appear. #) Drag MB1 in the Action TextField widget to make a small selection. #) 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. #) Select the XmTextFieldGetSelection() function, and click Call Function. The selected string from Action TextField should appear in the status widget. #) Select the XmTextFieldSetSelection() function. Set Num Arg 1 to a low number and Num Arg 2 to a number larger the Num Arg 1. Click Call Function. The characters selected in the Action TextField will correspond to the range between Num Arg 1 and Num Arg 2. #) Select the XmTextFieldGetSelection() function and call it. The selection made in previous step should appear in the Status/Input widget. #) Select the XmTextFieldClearSelection() function and call it. The selection in the Action widget will be deselected. C) #) Click the Clear Args PushButton to reset the control panel. #) Select the XmTextFieldInsert() function. Set the Num Arg 1 Scale to 3. #) Click in the Status/Input widget and type in a new string like "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. C) #) Make a selection in the Action TextField widget by dragging MB1. #) Select the XmTextFieldSetAddMode() function and set the True/False ToggleButton to True. Click Call Function. #) Traverse to the Action TextField widget using the keyboard by pressing osfTab twice. The insertion cursor should be stippled. #) Use the osfLeft or osfRight arrow keys to move the insertion cursor around. Note that the selection remains selected. #) Click the True/False ToggleButton to change the state to False. #) Click the Call Function PushButton to set the Action TextField back to normal mode. #) 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. C) #) Select and call the XmTextFieldGetString() function. The entire string from the Action TextField widget should appear in the 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. #) Click the Clear Args PushButton to reset the control panel. #) Select the XmTextFieldSetString() function. #) Click in the Status/Input widget and type "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. #) Click the Clear Args PushButton. #) Select the XmTextFieldReplace() function. Set the Num Arg 1 Scale to 2 and the Num Arg 2 Scale to 7. #) Click in the Status/Input widget and type "y wheres". #) Click the Call Function PushButton. The Action TextField widget should now read "Hey wheres a new string". C) #) Click the Clear Args PushButton. #) Select the XmTextFieldGetSubString() function. #) Set the Num Arg 1 Scale to 5, the Num Arg 2 Scale to 4, and the Num Arg 3 Scale to 5. #) Click the Call Function PushButton. The Status/Input widget should contain the substring "here". #) Set the Num Arg 1 Scale to 20, the Num Arg 2 Scale to 4, and the Num Arg 3 Scale to 5. #) Click the Call Function PushButton. The Status/Input widget should contain the substring "(XmCOPY_TRUNCATED) ing". #) Set the Num Arg 1 Scale to 5, the Num Arg 2 Scale to 4, and the Num Arg 3 Scale to 3. #) Click the Call Function PushButton. The Status/Input widget should contain the substring "Return: XmCOPY_FAILED". E)