1#include <stdlib.h>
2#include <stdio.h>
3#include <X11/StringDefs.h>
4#include <Xaw/Box.h>
5#include <Xaw/Command.h>
6#include <Xaw/Repeater.h>
7
8static int counter;
9
10static void
11quit_cb(Widget w, XtPointer client_data, XtPointer call_data)
12{
13        XtAppSetExitFlag(XtWidgetToApplicationContext(w));
14}
15
16static void
17start_cb(Widget w, XtPointer ptr, XtPointer arg)
18{
19#ifdef DEBUG
20	puts("Start");
21#endif
22}
23
24static void
25do_cb(Widget w, XtPointer ptr, XtPointer arg)
26{
27	char buf[10];
28	Widget show= (Widget)ptr;
29	counter++;
30	snprintf(buf,10,"%d",counter);
31	XtVaSetValues(show,XtNlabel,buf,NULL);
32#ifdef DEBUG
33	puts("counter");
34#endif
35}
36
37
38static void
39stop_cb(Widget w, XtPointer ptr, XtPointer arg)
40{
41	counter=0;
42#ifdef DEBUG
43	puts("reset counter");
44#endif
45}
46
47int main(int argc, char **argv)
48{
49  Widget toplevel,box,command,rep;
50  XtAppContext app_con;
51  toplevel = XtAppInitialize(&app_con, "demo", NULL, 0,
52			     &argc, argv, NULL,
53			     NULL, 0);
54
55  box = XtCreateManagedWidget("box", boxWidgetClass, toplevel, NULL, 0);
56
57  command = XtVaCreateManagedWidget("cmd",
58				    commandWidgetClass,  box,
59				    XtNlabel, "EXIT",
60				    NULL);
61  XtAddCallback(command, XtNcallback, quit_cb, NULL);
62
63  rep=XtVaCreateManagedWidget("Repeater",
64			      repeaterWidgetClass,
65			      box,  XtNlabel,"hitme",NULL);
66
67  XtAddCallback(rep,XtNstartCallback,start_cb,command);
68
69  XtAddCallback(rep,XtNcallback,do_cb,command);
70
71  XtAddCallback(rep,XtNstopCallback,stop_cb,command);
72
73  XtRealizeWidget(toplevel);
74
75  XtAppMainLoop(app_con);
76  exit(0);
77}
78