simple.c revision efbcb2bf
1#include <stdlib.h>
2#include <X11/StringDefs.h>
3#include <Xaw/Box.h>
4#include <Xaw/Simple.h>
5#include <Xaw/Command.h>
6#include <X11/Xmu/Drawing.h>
7
8/*
9	this is the  draw function. it uses two pencils (GC) with
10	different colors. one pencil is used to draw the logo,
11	the other is used to fill the background.
12*/
13
14static void ac_set ( Widget w, XEvent *event, String *params, Cardinal *num_params )
15{
16	GC gc1,gc2;
17 	XGCValues  values;
18	Dimension wi,hi;
19
20	if (!XtIsRealized(w))
21		return ;
22
23	if (strcmp(XtName(w),"draw") != 0)
24		return ;
25
26	XtVaGetValues(w,XtNheight,&hi,XtNwidth,&wi,NULL);
27  	values.foreground   = 0xcf00fe; //purple
28  	gc1 = XtGetGC(w, GCForeground, &values);
29  	values.foreground    = 0x00ff00; //green
30  	gc2 = XtGetGC(w, GCForeground, &values);
31	XmuDrawLogo(XtDisplay(w), XtWindow(w), gc1, gc2, 0,0, wi, hi );
32	XtReleaseGC(w,gc1);
33	XtReleaseGC(w,gc2);
34}
35
36
37static void
38quit_cb(Widget w, XtPointer data, XtPointer call_data)
39{
40     XtAppSetExitFlag( XtWidgetToApplicationContext(w) );
41};
42
43int main(int argc, char **argv)
44{
45	Widget toplevel,box,command,simple;
46	XtAppContext app;
47	static char  translation[] =
48		       "<Expose>:set()\n";
49      static XtActionsRec actionTable[] = {
50	    {"set",ac_set }
51      };
52
53	toplevel = XtAppInitialize(&app, "demo", NULL, 0,
54                               &argc, argv, NULL,
55                               NULL, 0);
56
57        XtAppAddActions(app, actionTable, XtNumber(actionTable) );
58
59	box = XtCreateManagedWidget("box", boxWidgetClass, toplevel, NULL, 0);
60
61	command = XtVaCreateManagedWidget("cmd",
62                                   commandWidgetClass,  box,
63                                      XtNlabel, "EXIT",
64                                      NULL);
65
66	simple=XtVaCreateManagedWidget("draw",
67				       simpleWidgetClass,  box,
68				       XtNheight,250,
69				       XtNwidth,250,
70					XtNbackground, 0xff0000,
71				       XtNtranslations,XtParseTranslationTable(translation),
72				       NULL);
73
74	XtAddCallback(command, XtNcallback, quit_cb,  simple );
75
76	XtRealizeWidget(toplevel);
77        XtAppMainLoop(app);
78	exit(0);
79}
80