Blame tests/Toolkit/Buttons/PushBtn1.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: PushBtn1.c /main/9 1995/07/13 17:30:13 drk $"
Packit b099d7
#endif
Packit b099d7
#endif
Packit b099d7
/*
Packit b099d7
*  (c) Copyright 1987, 1988, 1989 HEWLETT-PACKARD COMPANY */
Packit b099d7
Packit b099d7
/****************************************
Packit b099d7
*   Automatic test program generation   *
Packit b099d7
*       Mon Mar 27 08:42:59 1989        *
Packit b099d7
****************************************/
Packit b099d7
Packit b099d7
#include <testlib.h>
Packit b099d7
Packit b099d7
#include "mtn.bmp"
Packit b099d7
#include "gnu.bmp"
Packit b099d7
Packit b099d7
Pixmap px_disarm, px_armed, pixmap1;
Packit b099d7
static Pixel GetPixel();
Packit b099d7
Packit b099d7
Packit b099d7
#define wwang_width 16
Packit b099d7
#define wwang_height 16
Packit b099d7
static char wwang_bits[] = {
Packit b099d7
   0x00, 0x00, 0x00, 0x00, 0xfc, 0x3f, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
Packit b099d7
   0x80, 0x01, 0x80, 0x01, 0xf0, 0x0f, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
Packit b099d7
   0x80, 0x01, 0x80, 0x01, 0xfe, 0x7f, 0x00, 0x00};
Packit b099d7
Packit b099d7
Widget  PushButton1 = NULL, da = NULL, oneButton = NULL, twoButton;
Packit b099d7
Boolean mywait;
Packit b099d7
Packit b099d7
void  HelpPB();
Packit b099d7
void  ArmPB();
Packit b099d7
void  DisarmPB();
Packit b099d7
void  ActPB();
Packit b099d7
Packit b099d7
void click1CB( Widget w, XtPointer d1, XtPointer d2)
Packit b099d7
{
Packit b099d7
  Arg args[10];
Packit b099d7
  int n = 0;
Packit b099d7
Packit b099d7
  XtSetArg(args[0], XmNbackgroundPixmap, pixmap1);
Packit b099d7
  XtSetValues(da, args, 1);
Packit b099d7
}
Packit b099d7
Packit b099d7
void clickCB( Widget w, XtPointer d1, XtPointer d2)
Packit b099d7
{
Packit b099d7
  Arg args[10];
Packit b099d7
  int n = 0;
Packit b099d7
  XtSetArg(args[0], XmNbackgroundPixmap, XmUNSPECIFIED_PIXMAP);
Packit b099d7
  XtSetValues(da, args, 1);
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
void  main (argc, argv)
Packit b099d7
int     argc;
Packit b099d7
char  **argv;
Packit b099d7
{
Packit b099d7
  int                delay = 0;
Packit b099d7
  Boolean            trace = False;
Packit b099d7
  register int       n;
Packit b099d7
  Arg                args[MAX_ARGS];
Packit b099d7
  XWindowAttributes  info;
Packit b099d7
  XEvent             DummyEvent;
Packit b099d7
  Pixel 	     fg, bg;
Packit b099d7
  XmString           string;
Packit b099d7
  int		     width, height, x_hot, y_hot;
Packit b099d7
Packit b099d7
  CommonTestInit(argc, argv);
Packit b099d7
    
Packit b099d7
  n = 0;
Packit b099d7
  XtSetArg(args[n], XmNwidth,  400);  n++;
Packit b099d7
  XtSetArg(args[n], XmNheight, 300);  n++;
Packit b099d7
  XtSetArg(args[n], XtNgeometry, "+0+0");  n++;
Packit b099d7
  XtSetValues(Shell1, args, n);
Packit b099d7
    
Packit b099d7
  XtRealizeWidget(Shell1);
Packit b099d7
Packit b099d7
  n = 0;
Packit b099d7
  XtSetArg(args[n], XmNfillOnArm, False);  n++;
Packit b099d7
  PushButton1 = XmCreatePushButton(Shell1, "PushButton1", args, n);
Packit b099d7
  XtManageChild(PushButton1);
Packit b099d7
  
Packit b099d7
  CommonPause();
Packit b099d7
Packit b099d7
  n = 0;
Packit b099d7
  XtSetArg(args[n], XmNfillOnArm, TRUE);  n++;
Packit b099d7
  XtSetArg(args[n], XmNarmColor, CommonGetColor("yellow")); n++;
Packit b099d7
  XtSetArg(args[n], XmNhighlightOnEnter, TRUE); n++;
Packit b099d7
  XtSetArg(args[n], XmNhighlightThickness, 20); n++;
Packit b099d7
  XtSetValues(PushButton1, args, n);
Packit b099d7
Packit b099d7
  /* add callbacks for help, select, arm, disarm */
Packit b099d7
  XtAddCallback(PushButton1, XmNhelpCallback, HelpPB, NULL);
Packit b099d7
  XtAddCallback(PushButton1, XmNactivateCallback, ActPB, NULL);
Packit b099d7
  XtAddCallback(PushButton1, XmNarmCallback, ArmPB, NULL);
Packit b099d7
  XtAddCallback(PushButton1, XmNdisarmCallback, DisarmPB, NULL);
Packit b099d7
    
Packit b099d7
  CommonPause();
Packit b099d7
Packit b099d7
  /* change so that button displays a pixmap on arm */
Packit b099d7
Packit b099d7
  px_disarm =
Packit b099d7
    XCreatePixmapFromBitmapData(display, 
Packit b099d7
				DefaultRootWindow(display),
Packit b099d7
				mtn_bits, mtn_width, mtn_height,
Packit b099d7
				WhitePixel(display,DefaultScreen(display)),
Packit b099d7
				BlackPixel(display,DefaultScreen(display)),
Packit b099d7
				DefaultDepth(display,DefaultScreen(display)));
Packit b099d7
  px_armed = 
Packit b099d7
    XCreatePixmapFromBitmapData(display, 
Packit b099d7
				DefaultRootWindow(display),
Packit b099d7
				gnu_bits, gnu_width, gnu_height,
Packit b099d7
				WhitePixel(display,DefaultScreen(display)),
Packit b099d7
				BlackPixel(display,DefaultScreen(display)),
Packit b099d7
				DefaultDepth(display,DefaultScreen(display)));
Packit b099d7
  n = 0;
Packit b099d7
  XtSetArg(args[n], XmNlabelType, XmPIXMAP);  n++;
Packit b099d7
  XtSetArg(args[n], XmNlabelPixmap, px_disarm);  n++;
Packit b099d7
  XtSetArg(args[n], XmNarmPixmap, px_armed);  n++;
Packit b099d7
  XtSetArg(args[n], XmNhighlightOnEnter, False); n++;
Packit b099d7
  XtSetArg(args[n], XmNhighlightThickness, 0); n++;
Packit b099d7
  XtSetArg(args[n], XmNwidth, 100 );
Packit b099d7
  XtSetArg(args[n], XmNheight, 60 );
Packit b099d7
  XtSetValues(PushButton1, args, n);
Packit b099d7
Packit b099d7
  CommonPause();
Packit b099d7
Packit b099d7
  XtDestroyWidget(PushButton1);
Packit b099d7
Packit b099d7
  fg = BlackPixel(display, DefaultScreen(display));
Packit b099d7
  bg = WhitePixel(display, DefaultScreen(display));
Packit b099d7
  pixmap1 = XCreatePixmapFromBitmapData(display, 
Packit b099d7
		   XDefaultRootWindow(display), wwang_bits,
Packit b099d7
		   16, 16, fg, bg, 
Packit b099d7
		   DefaultDepth(display, DefaultScreen(display)));
Packit b099d7
Packit b099d7
  n = 0;
Packit b099d7
  XtSetArg(args[n], XmNwidth, 400); n++;
Packit b099d7
  XtSetArg(args[n], XmNheight, 400); n++;
Packit b099d7
  XtSetArg(args[n], XmNbackgroundPixmap, pixmap1); n++;
Packit b099d7
  da = XmCreateDrawingArea(Shell1, "da", args, n);
Packit b099d7
  XtManageChild(da);
Packit b099d7
Packit b099d7
  n = 0;
Packit b099d7
  string = XmStringCreate("Push to change to XmUNSPECIFIED_PIXMAP", 
Packit b099d7
			  XmSTRING_DEFAULT_CHARSET);
Packit b099d7
  XtSetArg(args[n], XmNlabelString, string); n++;
Packit b099d7
  XtSetArg(args[n], XmNx, 10); n++;
Packit b099d7
  XtSetArg(args[n], XmNy, 90); n++;
Packit b099d7
  XtSetArg(args[n], XmNhighlightThickness, 7); n++;
Packit b099d7
  oneButton = XmCreatePushButton(da, "oneButton", args, n);
Packit b099d7
  XtAddCallback(oneButton, XmNactivateCallback, clickCB, NULL);
Packit b099d7
  XtManageChild(oneButton);
Packit b099d7
  XmStringFree(string);
Packit b099d7
Packit b099d7
  n = 0;
Packit b099d7
  string = XmStringCreate("Push to change to the pixmap",
Packit b099d7
			  XmSTRING_DEFAULT_CHARSET);
Packit b099d7
  XtSetArg(args[n], XmNlabelString, string); n++;
Packit b099d7
  XtSetArg(args[n], XmNx, 10); n++;
Packit b099d7
  XtSetArg(args[n], XmNy, 200); n++;
Packit b099d7
  twoButton = XmCreatePushButton(da, "twoButton", args, n);
Packit b099d7
  XtAddCallback(twoButton, XmNactivateCallback, click1CB, NULL);
Packit b099d7
  XtManageChild(twoButton);
Packit b099d7
  XmStringFree(string);
Packit b099d7
Packit b099d7
  CommonPause();
Packit b099d7
Packit b099d7
  n = 0;
Packit b099d7
  XtSetArg(args[n], XmNshadowThickness, 10); n++;
Packit b099d7
  XtSetValues(oneButton, args, n);
Packit b099d7
  XtSetValues(twoButton, args, n);
Packit b099d7
Packit b099d7
  XmChangeColor(oneButton, CommonGetColor("Red"));
Packit b099d7
  XmChangeColor(twoButton, CommonGetColor("Red"));
Packit b099d7
Packit b099d7
  CommonPause();
Packit b099d7
Packit b099d7
  XmChangeColor(oneButton, CommonGetColor("Green"));
Packit b099d7
  XmChangeColor(twoButton, CommonGetColor("Green"));
Packit b099d7
Packit b099d7
  CommonPause();
Packit b099d7
Packit b099d7
  XmChangeColor(oneButton, CommonGetColor("Blue"));
Packit b099d7
  XmChangeColor(twoButton, CommonGetColor("Blue"));
Packit b099d7
Packit b099d7
  CommonPause();
Packit b099d7
Packit b099d7
  XmChangeColor(oneButton, CommonGetColor("Yellow"));
Packit b099d7
  XmChangeColor(twoButton, CommonGetColor("Yellow"));
Packit b099d7
Packit b099d7
  CommonPause();
Packit b099d7
Packit b099d7
  XmChangeColor(oneButton, CommonGetColor("Pink"));
Packit b099d7
  XmChangeColor(twoButton, CommonGetColor("Pink"));
Packit b099d7
Packit b099d7
  CommonPause();
Packit b099d7
Packit b099d7
  XtAppMainLoop(app_context);
Packit b099d7
}
Packit b099d7
Packit b099d7
static void  flushEvents(delay)
Packit b099d7
int    delay;
Packit b099d7
{
Packit b099d7
  XEvent event;
Packit b099d7
Packit b099d7
  XSync(display, False);
Packit b099d7
  while (XtAppPending(app_context)) {
Packit b099d7
    XtAppNextEvent(app_context, &event);
Packit b099d7
    XtDispatchEvent(&event);
Packit b099d7
  }
Packit b099d7
Packit b099d7
  sleep(delay);
Packit b099d7
}
Packit b099d7
Packit b099d7
void  HelpPB(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
    printf("HELP: Just click on the button to select,\n");
Packit b099d7
    printf("      Press on the button to arm.\n");
Packit b099d7
}
Packit b099d7
Packit b099d7
void  ActPB(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
    XmAnyCallbackStruct *cb;
Packit b099d7
    XEvent *ev;
Packit b099d7
Packit b099d7
    cb = (XmAnyCallbackStruct *) call_data;
Packit b099d7
    ev = cb->event;
Packit b099d7
Packit b099d7
    if (cb->event == NULL)
Packit b099d7
	printf ("Event is NULL!\n");
Packit b099d7
    else
Packit b099d7
	printf ("Event is %d.\n", ev->type);
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
void  ArmPB(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
    printf("PushButton Armed\n");
Packit b099d7
}
Packit b099d7
Packit b099d7
void  DisarmPB(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
    printf("PushButton Disarmed\n");
Packit b099d7
}
Packit b099d7
Packit b099d7