Blame tests/Performance/Menu/POptionMenu2.c

Packit b099d7
/* 
Packit b099d7
 * Motif
Packit b099d7
 *
Packit b099d7
 * Copyright (c) 1987-2012, The Open Group. All rights reserved.
Packit b099d7
 *
Packit b099d7
 * These libraries and programs are free software; you can
Packit b099d7
 * redistribute them and/or modify them under the terms of the GNU
Packit b099d7
 * Lesser General Public License as published by the Free Software
Packit b099d7
 * Foundation; either version 2 of the License, or (at your option)
Packit b099d7
 * any later version.
Packit b099d7
 *
Packit b099d7
 * These libraries and programs are distributed in the hope that
Packit b099d7
 * they will be useful, but WITHOUT ANY WARRANTY; without even the
Packit b099d7
 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
Packit b099d7
 * PURPOSE. See the GNU Lesser General Public License for more
Packit b099d7
 * details.
Packit b099d7
 *
Packit b099d7
 * You should have received a copy of the GNU Lesser General Public
Packit b099d7
 * License along with these librararies and programs; if not, write
Packit b099d7
 * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
Packit b099d7
 * Floor, Boston, MA 02110-1301 USA
Packit b099d7
*/ 
Packit b099d7
/* 
Packit b099d7
 * HISTORY
Packit b099d7
*/ 
Packit b099d7
#ifdef REV_INFO
Packit b099d7
#ifndef lint
Packit b099d7
static char rcsid[] = "$XConsortium: POptionMenu2.c /main/8 1995/07/14 12:01:19 drk $"
Packit b099d7
#endif
Packit b099d7
#endif
Packit b099d7
#include <testlib.h>
Packit b099d7
Packit b099d7
#define MAX_BUTTONS  40
Packit b099d7
Packit b099d7
/*  Global Variables  */
Packit b099d7
Widget    PullDown1;
Packit b099d7
Widget    Label1;
Packit b099d7
Widget    Separator1;
Packit b099d7
Widget    ToggleBtn1;
Packit b099d7
Widget    PushBtn1;
Packit b099d7
Widget    Separator2;
Packit b099d7
Widget    PushBtn2;
Packit b099d7
Widget    ToggleBtn2;
Packit b099d7
Widget    Separator3;
Packit b099d7
Widget    OptionMenu1;
Packit b099d7
Widget    OptionMenu3;
Packit b099d7
Widget    PushBtn3;
Packit b099d7
Packit b099d7
Widget	push_btns1[MAX_BUTTONS];
Packit b099d7
Widget	push_btns2[MAX_BUTTONS];
Packit b099d7
Widget	push_btns3[MAX_BUTTONS];
Packit b099d7
Packit b099d7
char	*btn_labels1[MAX_BUTTONS] = {
Packit b099d7
Packit b099d7
			"PushButton11",
Packit b099d7
			"PushButton12",
Packit b099d7
			"PushButton13",
Packit b099d7
			"PushButton14",
Packit b099d7
			"PushButton15",
Packit b099d7
			"PushButton16",
Packit b099d7
			"PushButton17",
Packit b099d7
			"PushButton18",
Packit b099d7
			"PushButton19",
Packit b099d7
			"**********PushButton110**********",
Packit b099d7
			"PushButton111",
Packit b099d7
			"PushButton112",
Packit b099d7
			"PushButton113",
Packit b099d7
			"PushButton114",
Packit b099d7
			"PushButton115",
Packit b099d7
			"PushButton116",
Packit b099d7
			"PushButton117",
Packit b099d7
			"PushButton118",
Packit b099d7
			"PushButton119",
Packit b099d7
			"**********PushButton120**********",
Packit b099d7
			"PushButton121",
Packit b099d7
			"PushButton122",
Packit b099d7
			"PushButton123",
Packit b099d7
			"PushButton124",
Packit b099d7
			"PushButton125",
Packit b099d7
			"PushButton126",
Packit b099d7
			"PushButton127",
Packit b099d7
			"PushButton128",
Packit b099d7
			"PushButton129",
Packit b099d7
			"**********PushButton130**********",
Packit b099d7
			"PushButton131",
Packit b099d7
			"PushButton132",
Packit b099d7
			"PushButton133",
Packit b099d7
			"PushButton134",
Packit b099d7
			"PushButton135",
Packit b099d7
			"PushButton136",
Packit b099d7
			"PushButton137",
Packit b099d7
			"PushButton138",
Packit b099d7
			"PushButton139",
Packit b099d7
			"**********PushButton140**********",
Packit b099d7
Packit b099d7
		};
Packit b099d7
Packit b099d7
char	*btn_labels2[MAX_BUTTONS] = {
Packit b099d7
Packit b099d7
			"PushButton21",
Packit b099d7
			"PushButton22",
Packit b099d7
			"PushButton23",
Packit b099d7
			"PushButton24",
Packit b099d7
			"PushButton25",
Packit b099d7
			"PushButton26",
Packit b099d7
			"PushButton27",
Packit b099d7
			"PushButton28",
Packit b099d7
			"PushButton29",
Packit b099d7
			"**********PushButton210**********",
Packit b099d7
			"PushButton211",
Packit b099d7
			"PushButton212",
Packit b099d7
			"PushButton213",
Packit b099d7
			"PushButton214",
Packit b099d7
			"PushButton215",
Packit b099d7
			"PushButton216",
Packit b099d7
			"PushButton217",
Packit b099d7
			"PushButton218",
Packit b099d7
			"PushButton219",
Packit b099d7
			"**********PushButton220**********",
Packit b099d7
			"PushButton221",
Packit b099d7
			"PushButton222",
Packit b099d7
			"PushButton223",
Packit b099d7
			"PushButton224",
Packit b099d7
			"PushButton225",
Packit b099d7
			"PushButton226",
Packit b099d7
			"PushButton227",
Packit b099d7
			"PushButton228",
Packit b099d7
			"PushButton229",
Packit b099d7
			"**********PushButton230**********",
Packit b099d7
			"PushButton231",
Packit b099d7
			"PushButton232",
Packit b099d7
			"PushButton233",
Packit b099d7
			"PushButton234",
Packit b099d7
			"PushButton235",
Packit b099d7
			"PushButton236",
Packit b099d7
			"PushButton237",
Packit b099d7
			"PushButton238",
Packit b099d7
			"PushButton239",
Packit b099d7
			"**********PushButton240**********"
Packit b099d7
Packit b099d7
		};
Packit b099d7
Packit b099d7
char	*btn_labels3[MAX_BUTTONS] = {
Packit b099d7
Packit b099d7
			"PushButton31",
Packit b099d7
			"PushButton32",
Packit b099d7
			"PushButton33",
Packit b099d7
			"PushButton34",
Packit b099d7
			"PushButton35",
Packit b099d7
			"PushButton36",
Packit b099d7
			"PushButton37",
Packit b099d7
			"PushButton38",
Packit b099d7
			"PushButton39",
Packit b099d7
			"PushButton310",
Packit b099d7
			"PushButton311",
Packit b099d7
			"PushButton312",
Packit b099d7
			"PushButton313",
Packit b099d7
			"PushButton314",
Packit b099d7
			"PushButton315",
Packit b099d7
			"PushButton316",
Packit b099d7
			"PushButton317",
Packit b099d7
			"PushButton318",
Packit b099d7
			"PushButton319",
Packit b099d7
			"PushButton320",
Packit b099d7
			"PushButton321",
Packit b099d7
			"PushButton322",
Packit b099d7
			"PushButton323",
Packit b099d7
			"PushButton324",
Packit b099d7
			"PushButton325",
Packit b099d7
			"PushButton326",
Packit b099d7
			"PushButton327",
Packit b099d7
			"PushButton328",
Packit b099d7
			"PushButton329",
Packit b099d7
			"PushButton330",
Packit b099d7
			"PushButton331",
Packit b099d7
			"PushButton332",
Packit b099d7
			"PushButton333",
Packit b099d7
			"PushButton334",
Packit b099d7
			"PushButton335",
Packit b099d7
			"PushButton336",
Packit b099d7
			"PushButton337",
Packit b099d7
			"PushButton338",
Packit b099d7
			"PushButton339",
Packit b099d7
			"PushButton340"
Packit b099d7
Packit b099d7
		};
Packit b099d7
Packit b099d7
/*  Private Functions  */
Packit b099d7
static void  Quit();
Packit b099d7
Packit b099d7
static XtCallbackProc ButtonPressed(w, call_data, client_data)
Packit b099d7
Widget w;
Packit b099d7
caddr_t call_data, client_data;
Packit b099d7
Packit b099d7
{
Packit b099d7
printf ("Button pressed\n");
Packit b099d7
}
Packit b099d7
Packit b099d7
static Widget  CreateLabel(label, parent)
Packit b099d7
    char   *label;
Packit b099d7
    Widget  parent;
Packit b099d7
{
Packit b099d7
    Widget        widget;
Packit b099d7
    register int  n;
Packit b099d7
    Arg           args[MAX_ARGS];
Packit b099d7
    XmString      tcs;
Packit b099d7
Packit b099d7
Packit b099d7
    n = 0;
Packit b099d7
    tcs = XmStringLtoRCreate(label, XmSTRING_DEFAULT_CHARSET);
Packit b099d7
    XtSetArg(args[n], XmNlabelString, tcs);  n++;
Packit b099d7
Packit b099d7
    widget = XmCreateLabel(parent, "label", args, n);
Packit b099d7
    XtManageChild(widget);
Packit b099d7
    XmStringFree(tcs);
Packit b099d7
Packit b099d7
    return(widget);
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static Widget  CreatePushButton(label, parent)
Packit b099d7
    char   *label;
Packit b099d7
    Widget  parent;
Packit b099d7
{
Packit b099d7
    Widget        widget;
Packit b099d7
    register int  n;
Packit b099d7
    Arg           args[MAX_ARGS];
Packit b099d7
    XmString      tcs;
Packit b099d7
Packit b099d7
    n = 0;
Packit b099d7
    tcs = XmStringLtoRCreate(label, XmSTRING_DEFAULT_CHARSET);
Packit b099d7
    XtSetArg(args[n], XmNlabelString, tcs);  n++;
Packit b099d7
    widget = XmCreatePushButton(parent, "pushButton", args, n);
Packit b099d7
    XtManageChild(widget);
Packit b099d7
    XmStringFree(tcs);
Packit b099d7
Packit b099d7
    return(widget);
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static Widget  CreateToggle(label, mnemonic, parent)
Packit b099d7
    char   *label;
Packit b099d7
    char    mnemonic;
Packit b099d7
    Widget  parent;
Packit b099d7
{
Packit b099d7
    Widget        widget;
Packit b099d7
    register int  n;
Packit b099d7
    Arg           args[MAX_ARGS];
Packit b099d7
    XmString      tcs;
Packit b099d7
Packit b099d7
Packit b099d7
    n = 0;
Packit b099d7
    tcs = XmStringLtoRCreate(label, XmSTRING_DEFAULT_CHARSET);
Packit b099d7
    XtSetArg(args[n], XmNlabelString, tcs);  n++;
Packit b099d7
    XtSetArg(args[n], XmNmnemonic, mnemonic);  n++;
Packit b099d7
    widget = XmCreateToggleButton(parent, "toggle", args, n);
Packit b099d7
    XtManageChild(widget);
Packit b099d7
    XmStringFree(tcs);
Packit b099d7
Packit b099d7
    return(widget);
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static Widget  CreateSeparator(parent)
Packit b099d7
Widget parent;
Packit b099d7
{
Packit b099d7
    Widget  widget;
Packit b099d7
Packit b099d7
Packit b099d7
    widget = XmCreateSeparator(parent, "separator", NULL, 0);
Packit b099d7
    XtManageChild(widget);
Packit b099d7
Packit b099d7
    return(widget);
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static Widget  CreatePullDown(parent)
Packit b099d7
Widget parent;
Packit b099d7
{
Packit b099d7
    Widget  widget;
Packit b099d7
    
Packit b099d7
Packit b099d7
    widget = XmCreatePulldownMenu (parent, "pulldown", NULL, 0);
Packit b099d7
Packit b099d7
    return(widget);
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
Packit b099d7
void  main(argc, argv)
Packit b099d7
    int     argc;
Packit b099d7
    char  **argv;
Packit b099d7
{
Packit b099d7
    register int  n;
Packit b099d7
    Arg           args[MAX_ARGS];
Packit b099d7
    XmString      tcs;
Packit b099d7
    Widget Frame;
Packit b099d7
	int			num_buttons;
Packit b099d7
	int			i;
Packit b099d7
Packit b099d7
Packit b099d7
    CommonTestInit(argc, argv);
Packit b099d7
    
Packit b099d7
    n = 0;
Packit b099d7
    XtSetArg(args[n], XmNwidth,  200);  n++;
Packit b099d7
    XtSetArg(args[n], XmNheight, 40);   n++;
Packit b099d7
    XtSetArg(args[n], XtNgeometry, "+0+50");  n++;
Packit b099d7
    XtSetValues(Shell1, args, n);
Packit b099d7
    
Packit b099d7
Packit b099d7
    XtRealizeWidget(Shell1);
Packit b099d7
Packit b099d7
Packit b099d7
Packit b099d7
    /*
Packit b099d7
    **  PullDown1
Packit b099d7
    */
Packit b099d7
    PullDown1 = CreatePullDown(Shell1);
Packit b099d7
Packit b099d7
Packit b099d7
    /*
Packit b099d7
    **  Menu1
Packit b099d7
    */
Packit b099d7
    Label1        = CreateLabel("Menu1", PullDown1);
Packit b099d7
Packit b099d7
    Separator1    = CreateSeparator(PullDown1);
Packit b099d7
Packit b099d7
	num_buttons = MAX_BUTTONS; /* to be modified to take from command line */
Packit b099d7
	for (i = 0; i < num_buttons; i++)
Packit b099d7
		push_btns1[i] = CreatePushButton(btn_labels1[i], PullDown1);
Packit b099d7
Packit b099d7
    Separator3    = CreateSeparator(PullDown1);
Packit b099d7
Packit b099d7
Packit b099d7
/* just for fun, put another manager in between */
Packit b099d7
    
Packit b099d7
    n = 0;
Packit b099d7
    Frame = XmCreateBulletinBoard (Shell1, "Frame", args, n);
Packit b099d7
    XtManageChild (Frame);
Packit b099d7
Packit b099d7
    /*
Packit b099d7
    **  OptionMenu1
Packit b099d7
    */
Packit b099d7
    n = 0;
Packit b099d7
    tcs = XmStringLtoRCreate("Option: ", XmSTRING_DEFAULT_CHARSET);
Packit b099d7
    XtSetArg(args[n], XmNlabelString, tcs);         n++;
Packit b099d7
    XtSetArg(args[n], XmNmnemonic,    'O');         n++;
Packit b099d7
    XtSetArg(args[n], XmNsubMenuId,   PullDown1);   n++;
Packit b099d7
    XtSetArg(args[n], XmNmenuHistory, PushBtn2);    n++; 
Packit b099d7
    XtSetArg(args[n], XmNwhichButton, 2);	    n++;
Packit b099d7
    OptionMenu1 = XmCreateOptionMenu(Frame, "optionMenu", args, n);
Packit b099d7
    XtManageChild(OptionMenu1);
Packit b099d7
    XmStringFree(tcs);
Packit b099d7
    
Packit b099d7
    PushBtn1      = CreatePushButton("PushButton1", PullDown1);
Packit b099d7
Packit b099d7
    PushBtn3      = CreatePushButton("*********PushButton3**********", 
Packit b099d7
				     PullDown1);
Packit b099d7
Packit b099d7
    XtAppMainLoop(app_context);
Packit b099d7
}
Packit b099d7
Packit b099d7