|
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 |
|