Blob Blame History Raw
/* 
 * 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
*/ 
/*
static char rcsid[] = "$XConsortium: OptionMenu5.dat /main/6 1995/07/13 18:50:57 drk $"
*/
/* test for PIRS 2658 */

@) This test confirms that programmatically changing the items in the pulldown
menu associated with an option menu results in the XmOptionButtonGadget of
the option menu correctly updating.
@) You should see a set of six buttons, an option menu labeled "Label/LabelG
Menu Items", and two toggle buttons. You should see the initial value of
the option menu be the string "Label Gadget", the first item in the menu.
/* BUG! fix this by the end of the bug */
#) Pop up the option menu. The set of items should be "Label Gadget", "Label",
"Push Button Gadget", "Push Button", "Toggle Button Gadget", "Toggle Button".
The labels correspond to the items' widget classes.
(These values were set programmatically on the widgets after the menu was 
created and realized and before any user interaction occurred.)
#) Pop the menu back down.
C)

@) Now confirm that the values shown by the menu items can be changed,
whether they are echoed by the XmOptionButtonGadget or not.
#) Select any of the buttons on the left which say "Change pulldown entry #n".
This changes the XmNlabelString of the corresponding item in the menu.
The XmNlabelString for the pulldown is set to one of set of strings that
indicates how many times you have done this ("1st in series", "second in 
series" -- items of different length), modulo the number of strings.
#) Pop up the option menu. Confirm that the item has changed.
C)

@) Do the following for each of the selectable items in the 
menu (the "Push Button Gadget", 
"Push Button", "Toggle Button Gadget", "Toggle Button") in order to make sure 
that changing the menu item which is currently displayed as the option's choice
results in the XmOptionButtonGadget changing:
#) Choose the item from the menu so that it is currently selected and displayed.
#) Choose the corresponding button "Change pulldown entry #n".
   The XmNlabelString for the pulldown is set to one of set of strings that
   indicates its place in the sequence.
#) Confirm that the display of the XmOptionButtonGadget immediately reflects
a new value.
C)

@) Now confirm that changing the value of menu-item changes the displayed
value in the XmOptionButtonGadget even when the menu it insensitive.
#) Change the sensitivity of the option menu to false by pressing the 
toggle button so labeled. 
/* BUG! the option menu should appear grayed out, like it does on start-up  */
#) Choose the button "Change pulldown entry #n" corresponding to the
menu item currently being displayed. 
#) Confirm that the display of the XmOptionButtonGadget immediately reflects
a new value.
@) Change the menu to be sensitive again.
C)

@) This test also confirms that menu items with the XmNlabelType of XmPIXMAP
behave similarly.
@) The initial value of XmNlabelPixmap for each entry is the target bitmap.
As you change the pulldown entries, the XmNlabelPixmap resource is set to
   one of a set of pixmaps, in sequence: 
	star opendot black boxes icon xlogo16 xlogo32 wide_weave
#) Set the XmNlabelType of the menu-items to XmPIXMAP by pressing the toggle
so labeled.
#) Confirm that the XmOptionButtonGadget changes type immediately to display
the XmNlabelPixmap of the currently-selected menu-item.
/* BUG! the size of the XmOptionButtonGadget is not reset until an item is
selected. See CascadeBG.c`Redisplay and CascadeBG.c`position_cascade */
#) Repeat this test until this point.

C)

E)