/*
* 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
*/
#ifdef REV_INFO
#ifndef lint
static char rcsid[] = "$XConsortium: PushBGad4.c /main/8 1995/07/13 17:29:58 drk $"
#endif
#endif
/*
* (c) Copyright 1987, 1988, 1989 HEWLETT-PACKARD COMPANY */
/*
Test was written for PIR629
PIR748,
PIR903,
and PIR637
*/
#include <testlib.h>
#include <X11/Xlib.h>
#include <X11/Xatom.h>
#include <X11/StringDefs.h>
#include <Xm/XmP.h>
/* Global Variables */
Widget PBGadget1;
/* Private Functions */
void ActCB();
static void DestroyCB();
void main (argc, argv)
int argc;
char **argv;
{
register int n;
Arg args[MAX_ARGS];
XmString tcs;
Pixel red_pixel, blue_pixel;
Widget Form1, PushB1, Cascade1, PushButton1;
Widget Pulldown1, MenuBar1, PushButton2, PushButton3;
CommonTestInit(argc, argv);
blue_pixel = CommonGetColor("cadetblue");
red_pixel = CommonGetColor("maroon");
n = 0;
XtSetArg (args[n], XmNmarginWidth, 2); n++;
XtSetArg (args[n], XmNmarginHeight, 2); n++;
XtSetArg (args[n], XmNbackground, blue_pixel); n++;
XtSetArg (args[n], XmNwidth, 150); n++;
XtSetArg (args[n], XmNheight, 175); n++;
Form1 = XmCreateForm (Shell1, "Form1", args, n);
XtManageChild(Form1);
n = 0;
XtSetArg (args[n], XmNrightAttachment, XmATTACH_FORM); n++;
XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
XtSetArg (args[n], XmNtopAttachment, XmATTACH_FORM); n++;
XtSetArg (args[n], XmNtraversalOn, True); n++;
MenuBar1 = XmCreateMenuBar (Form1, "MenuBar1", args, n);
XtManageChild (MenuBar1);
n = 0;
Pulldown1 = XmCreatePulldownMenu (MenuBar1, "Pulldown1", args, n);
n = 0;
XtSetArg(args[n], XmNsubMenuId, Pulldown1); n++;
Cascade1 = XmCreateCascadeButton(MenuBar1, "Cascade1", args, n);
XtManageChild (Cascade1);
n = 0;
tcs = XmStringLtoRCreate("Destroy PushButton", XmSTRING_DEFAULT_CHARSET);
XtSetArg (args[n], XmNlabelString, tcs); n++;
XtSetArg (args[n], XmNwidth, 150); n++;
XtSetArg (args[n], XmNheight, 50); n++;
PushButton1 = XmCreatePushButton(Pulldown1, "PushButton1", args, n);
XmStringFree (tcs);
XtManageChild (PushButton1);
n = 0;
tcs = XmStringLtoRCreate("Destroy Form", XmSTRING_DEFAULT_CHARSET);
XtSetArg (args[n], XmNlabelString, tcs); n++;
XtSetArg (args[n], XmNwidth, 150); n++;
XtSetArg (args[n], XmNheight, 50); n++;
PushButton2 = XmCreatePushButton(Pulldown1, "PushButton2", args, n);
XmStringFree (tcs);
XtManageChild (PushButton2);
n = 0;
tcs = XmStringLtoRCreate("Destroy PushButtonGadget",
XmSTRING_DEFAULT_CHARSET);
XtSetArg (args[n], XmNlabelString, tcs); n++;
XtSetArg (args[n], XmNwidth, 150); n++;
XtSetArg (args[n], XmNheight, 50); n++;
PushButton3 = XmCreatePushButton(Pulldown1, "PushButton3", args, n);
XmStringFree (tcs);
XtManageChild (PushButton3);
XtManageChild (PushButton2);
n = 0;
XtSetArg (args[n], XmNrightAttachment, XmATTACH_FORM); n++;
XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
XtSetArg (args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
XtSetArg (args[n], XmNtopWidget, MenuBar1); n++;
XtSetArg (args[n], XmNtopOffset, 5); n++;
XtSetArg (args[n], XmNbackground, red_pixel); n++;
XtSetArg (args[n], XmNtraversalOn, True); n++;
XtSetArg (args[n], XmNhighlightOnEnter, True); n++;
XtSetArg (args[n], XmNhighlightThickness, 2); n++;
XtSetArg (args[n], XmNhighlightColor, CommonGetColor("orangered")); n++;
XtSetArg (args[n], XmNheight, 75); n++;
PushB1 = XmCreatePushButton(Form1, "PushB1", args, n);
XtManageChild(PushB1);
XmAddTabGroup(PushB1);
/* Add Tab Group again to test PIR637 */
XmAddTabGroup(PushB1);
n = 0;
XtSetArg (args[n], XmNrightAttachment, XmATTACH_FORM); n++;
XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
XtSetArg (args[n], XmNbottomAttachment, XmATTACH_FORM); n++;
XtSetArg (args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
XtSetArg (args[n], XmNtopWidget, PushB1); n++;
XtSetArg (args[n], XmNtopOffset, 5); n++;
XtSetArg (args[n], XmNtraversalOn, True); n++;
XtSetArg (args[n], XmNhighlightOnEnter, True); n++;
XtSetArg (args[n], XmNhighlightThickness, 2); n++;
PBGadget1 = XmCreatePushButtonGadget (Form1, "PBGadget1", args, n);
XtManageChild(PBGadget1);
XmAddTabGroup(PBGadget1);
XtAddCallback(PBGadget1, XmNactivateCallback, ActCB, "PushButtonGadget");
XtAddCallback(PushB1, XmNactivateCallback, ActCB, "PushButton");
XtAddCallback(PushButton1, XmNactivateCallback, DestroyCB, PushB1);
XtAddCallback(PushButton2, XmNactivateCallback, DestroyCB, Form1);
XtAddCallback(PushButton3, XmNactivateCallback, DestroyCB, PBGadget1);
XtRealizeWidget(Shell1);
CommonPause();
CommonPause();
CommonPause();
XtAppMainLoop(app_context);
XtDestroyWidget(MenuBar1);
XtDestroyWidget(Form1);
XtDestroyWidget(Cascade1);
XtDestroyWidget(Pulldown1);
XtDestroyWidget(PushButton1);
XtDestroyWidget(PushButton2);
XtDestroyWidget(PushButton3);
XtDestroyWidget(PushB1);
XtDestroyWidget(PBGadget1);
}
void ActCB(w, client_data, call_data)
Widget w;
caddr_t client_data;
caddr_t call_data;
{
Arg args[5];
int n = 0;
Pixel yellow, green;
char *name;
Widget parent;
parent = XtParent(w);
name = (char *) client_data;
printf("...Setting the background color of the Form to Yellow\n");
yellow = CommonGetColor("Yellow");
XtSetArg(args[n], XmNbackground, yellow); n++;
XtSetValues(parent, args, n);
/* CR 1139 fix begin */
XmChangeColor(w, yellow);
/* CR 1139 fix end */
green = CommonGetColor("forestgreen");
printf("...Setting the background color of %s to Green\n\n", name);
XtSetArg (args[0], XmNbackground, green);
XtSetValues (w, args, 1);
}
static void DestroyCB(w, client_data, call_data)
Widget w;
caddr_t client_data;
caddr_t call_data;
{
Widget PushB;
PushB = (Widget) client_data;
XtDestroyWidget(PushB);
}