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