1 #include <stdio.h>
2 #include <Xm/Xm.h>
3 #include <Xm/ScaleP.h>
4 
dragCallback(Widget w,XtPointer clientData,XtPointer callData)5 void dragCallback(Widget w, XtPointer clientData, XtPointer callData)
6 {
7     XmScaleCallbackStruct *cbs = (XmScaleCallbackStruct *)callData;
8 
9     printf ("dragCallback: %d\n", cbs->value);
10 }
11 
valueChangedCallback(Widget w,XtPointer clientData,XtPointer callData)12 void valueChangedCallback(Widget w, XtPointer clientData, XtPointer callData)
13 {
14     XmScaleCallbackStruct *cbs = (XmScaleCallbackStruct *)callData;
15 
16     printf ("valueChangedCallback: %d\n", cbs->value);
17 }
18 
19 static char *Fallback[] = {
20 	"*XmScale.background: red",
21 	NULL
22 };
23 
24 int
main(int argc,char ** argv)25 main(int argc, char **argv)
26 {
27   Widget toplevel, one;
28   XtAppContext app;
29   unsigned int maximum;
30 
31   XtSetLanguageProc(NULL, NULL, NULL);
32 
33   toplevel = XtVaAppInitialize(&app, "Scale", NULL, 0, &argc, argv, Fallback,
34   	XmNwidth, 100,
35   	NULL);
36 
37   one = XtVaCreateManagedWidget("sb", xmScaleWidgetClass, toplevel,
38                                 XmNorientation, XmVERTICAL,
39                                 XmNscaleHeight, 100,
40                                 XmNwidth, 100,
41                                 NULL);
42 
43   XtAddCallback(one, XmNdragCallback, dragCallback, NULL);
44   XtAddCallback(one, XmNvalueChangedCallback, valueChangedCallback, NULL);
45 
46   XtRealizeWidget(toplevel);
47 
48   XtVaGetValues(one, XmNmaximum, &maximum, NULL);
49 
50   printf ("one.maximum = %u\n", maximum);
51 
52 
53 {
54     static XtWidgetGeometry Expected[] = {
55    CWWidth | CWHeight            ,   50,   50,  100,  100, 0,0,0, /* sb */
56    CWWidth | CWHeight | CWX | CWY,   81,    0,   19,  100, 0,0,0, /* Scrollbar */
57     };
58     PrintDetails(toplevel,Expected);
59 };
60   LessTifTestMainLoop(toplevel);
61 
62   exit(0);
63 }
64