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