1 /* $Header: /cvsroot/lesstif/lesstif/test/Xm/cascadebuttong/test4.c,v 1.6 2001/05/23 15:00:02 amai Exp $ */
2
3 #include <stdlib.h>
4 #include <stdio.h>
5
6 #include <Xm/RowColumnP.h>
7 #include <Xm/MainWP.h>
8 #include <Xm/DrawingAP.h>
9 #include <Xm/CascadeBGP.h>
10 #include <Xm/CascadeBP.h>
11 #include <Xm/PushBGP.h>
12 #include <Xm/ToggleBGP.h>
13
14
15 static void
PrintDimensions(Widget w,XtPointer clientData,XtPointer callData)16 PrintDimensions(Widget w, XtPointer clientData, XtPointer callData)
17 {
18 XmCascadeButtonGadget cw = (XmCascadeButtonGadget) w;
19
20 fprintf(stderr, "Widget %s - geo %d %d %d %d\n",
21 XrmQuarkToString(cw->object.xrm_name),
22 cw->rectangle.x, cw->rectangle.y,
23 cw->rectangle.width, cw->rectangle.height);
24 fprintf(stderr, "BorderWidth: %3d HighlightThickness %3d ShadowThickness: %3d\n",
25 cw->rectangle.border_width,
26 cw->gadget.highlight_thickness,
27 cw->gadget.shadow_thickness);
28 fprintf(stderr, "MarginLeft: %3d MarginRight %3d MarginTop: %3d MarginBottom: %3d\n",
29 cw->label.cache->margin_left,
30 cw->label.cache->margin_right,
31 cw->label.cache->margin_top,
32 cw->label.cache->margin_bottom);
33 fprintf(stderr, "MarginHeight: %3d MarginWidth %3d\n",
34 cw->label.cache->margin_height,
35 cw->label.cache->margin_width);
36 fprintf(stderr, "TextRect x: %3d y: %3d w: %3d h: %3d\n",
37 cw->label.TextRect.x,
38 cw->label.TextRect.y,
39 cw->label.TextRect.width,
40 cw->label.TextRect.height);
41 fprintf(stderr, "AccTextRect x: %3d y: %3d w: %3d h: %3d\n",
42 cw->label.acc_TextRect.x,
43 cw->label.acc_TextRect.y,
44 cw->label.acc_TextRect.width,
45 cw->label.acc_TextRect.height);
46 fprintf(stderr, "CascadeRect x: %3d y: %3d w: %3d h: %3d\n\n",
47 cw->cascade_button.cascade_rect.x,
48 cw->cascade_button.cascade_rect.y,
49 cw->cascade_button.cascade_rect.width,
50 cw->cascade_button.cascade_rect.height);
51
52 }
53
54 static char *fallbacks[] = {
55 "*cb1.labelString: Menu",
56 "*cascade1.mnemonic: M",
57 "*cb2.labelString: Print Dimensions",
58 "*cb3.labelString: Short string",
59 "*pb1.labelString: Dummy",
60 NULL /* The end */
61 };
62
63 int
main(int argc,char * argv[])64 main(int argc, char *argv[])
65 {
66 XtAppContext app;
67 Widget toplevel, main_w, menubar, cb1, cb2, cb3, pb1, pane1, pane2,
68 drawing_a;
69
70 XtSetLanguageProc (NULL, NULL, NULL);
71
72 toplevel = XtVaAppInitialize (&app, "Test4", NULL, 0,
73 &argc, argv, fallbacks,
74 NULL);
75
76 /* Create a MainWindow widget that contains a DrawingArea in
77 * its work window.
78 */
79
80 main_w = XtVaCreateManagedWidget ("main_w",
81 xmMainWindowWidgetClass, toplevel,
82 XmNscrollingPolicy, XmAUTOMATIC,
83 NULL);
84 menubar = XmCreateMenuBar (main_w, "menubar", NULL, 0);
85
86 pane1 = XmCreatePulldownMenu (menubar, "pane1", NULL, 0);
87 pane2 = XmCreatePulldownMenu (pane1, "pane2", NULL, 0);
88
89 cb1 = XtVaCreateManagedWidget ("cb1",
90 xmCascadeButtonGadgetClass, menubar,
91 XmNsubMenuId, pane1,
92 NULL);
93
94 cb2 = XtVaCreateManagedWidget ("cb2",
95 xmCascadeButtonGadgetClass, pane1,
96 XmNsubMenuId, pane2,
97 NULL);
98
99 cb3 = XtVaCreateManagedWidget ("cb3",
100 xmCascadeButtonWidgetClass, pane1,
101 XmNsubMenuId, pane2,
102 NULL);
103
104 XtAddCallback(cb2, XmNactivateCallback, PrintDimensions, NULL);
105 XtAddCallback(cb2, XmNcascadingCallback, PrintDimensions, NULL);
106
107
108 pb1 = XtVaCreateManagedWidget ("pb1",
109 xmPushButtonGadgetClass, pane2,
110 NULL);
111
112 XtManageChild (menubar);
113
114 /* Create a DrawingArea -- no actual drawing will be done. */
115 drawing_a = XtVaCreateManagedWidget ("drawing_a",
116 xmDrawingAreaWidgetClass, main_w,
117 XmNwidth, 500,
118 XmNheight,500,
119 NULL);
120
121 XtRealizeWidget (toplevel);
122
123
124 /* Note: the following values are the result of
125 * querying the current geometry.
126 */
127 {
128 static XtWidgetGeometry Expected[] = {
129 CWWidth | CWHeight , 218, 358, 131, 162, 0,0,0, /* main_w */
130 CWWidth | CWHeight | CWX | CWY, 4, 35, 100, 100, 0,0,0, /* ClipWindow */
131 CWWidth | CWHeight | CWX | CWY, 0, 0, 500, 500, 0,0,0, /* drawing_a */
132 CWWidth | CWHeight | CWX | CWY, 112, 31, 19, 108, 0,0,0, /* VertScrollBar */
133 CWWidth | CWHeight | CWX | CWY, 0, 143, 108, 19, 0,0,0, /* HorScrollBar */
134 CWWidth | CWHeight | CWX | CWY, 0, 0, 131, 31, 0,0,0, /* menubar */
135 CWWidth | CWHeight | CWX | CWY, 5, 5, 40, 21, 0,0,0, /* cb1 */
136 };
137 /* toplevel should be replaced with to correct applicationShell */
138 PrintDetails(toplevel, Expected);
139 }
140 LessTifTestMainLoop(toplevel);
141 LessTifTestMainLoop(toplevel);
142
143 exit(0);
144 }
145
146
147