Blame tests/Performance/Menu/POptionMenu1.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: POptionMenu1.c /main/8 1995/07/14 12:01:09 drk $"
Packit b099d7
#endif
Packit b099d7
#endif
Packit b099d7
/*  Standard C headers  */
Packit b099d7
Packit b099d7
/*  Xt headers  */
Packit b099d7
Packit b099d7
/*  Xm headers  */
Packit b099d7
#include <testlib.h>
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
/*  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, mnemonic, accel, accelText, parent)
Packit b099d7
    char   *label;
Packit b099d7
    char    mnemonic;
Packit b099d7
    Widget  parent;
Packit b099d7
    char *accel, *accelText;
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], XmNaccelerator, accel); n++;
Packit b099d7
    XtSetArg(args[n], XmNacceleratorText,
Packit b099d7
      XmStringCreate(accelText, XmSTRING_DEFAULT_CHARSET)); n++;
Packit b099d7
    XtSetArg(args[n], XmNlabelString, tcs);  n++;
Packit b099d7
    XtSetArg(args[n], XmNmnemonic, mnemonic);  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
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
    ToggleBtn1    = CreateToggle("Toggle1", 'T', PullDown1);
Packit b099d7
Packit b099d7
    PushBtn1      = CreatePushButton("PushButton1", 'P', "Ctrl<Key>P",
Packit b099d7
		    "Ctrl-P",PullDown1);
Packit b099d7
Packit b099d7
    Separator2    = CreateSeparator(PullDown1);
Packit b099d7
Packit b099d7
    PushBtn2      = CreatePushButton("PushButton2", 'u', "Ctrl<Key>U",
Packit b099d7
		    "Ctrl-U", PullDown1);
Packit b099d7
Packit b099d7
    ToggleBtn2    = CreateToggle("Toggle2", 'o', 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", 'P', "Ctrl<Key>P",
Packit b099d7
			"Ctrl-P",PullDown1);
Packit b099d7
Packit b099d7
Packit b099d7
    PushBtn3      = CreatePushButton("*********PushButton3**********", 
Packit b099d7
				     's', "Ctrl<Key>S", "Ctrl-S",
Packit b099d7
				     PullDown1);
Packit b099d7
Packit b099d7
    XtAppMainLoop(app_context);
Packit b099d7
}
Packit b099d7
Packit b099d7