1 /* $Header: /cvsroot/lesstif/lesstif/test/Xm-2.0/container/test4.c,v 1.2 2001/12/19 20:38:41 dannybackx Exp $ */
2
3 #include <stdio.h>
4 #include <stdlib.h>
5
6 #include <X11/Intrinsic.h>
7 #include <Xm/Xm.h>
8 #include <Xm/Container.h>
9 #include <Xm/IconG.h>
10
11 #include "../../common/Test.h"
12
13 #ifndef LESSTIF_VERSION
14 #include <X11/Xmu/Editres.h>
15 #endif
16
17 void
check_geometry(Widget w)18 check_geometry(Widget w)
19 {
20 static int result_index = 0;
21
22 static XtWidgetGeometry Expected[] = {
23 /* result test 0 */
24 { CWWidth | CWHeight , 10, 10, 386, 94, 0,0,0 }, /* widget */
25 { CWWidth | CWHeight | CWX | CWY, 6, 6, 374, 50, 0,0,0 }, /* Text */
26 { CWWidth | CWHeight | CWX | CWY, 6, 56, 374, 32, 0,0,0 }, /* ListSW */
27 { CWWidth | CWHeight | CWX | CWY, 359, 0, 15, 32, 0,0,0 }, /* VertScrollBar */
28 { CWWidth | CWHeight | CWX | CWY, 0, 0, 359, 32, 0,0,0 }, /* List */
29 };
30
31 #if 0
32 PrintDetails2(w, NULL);
33 #else
34 if (result_index <= 0)
35 {
36 PrintDetails2(w, Expected);
37 fflush(stdout);
38 result_index ++;
39 }
40 #endif
41 }
42
doit(Widget w,XtPointer client,XtPointer call)43 static void doit(Widget w, XtPointer client, XtPointer call)
44 {
45 XmContainerSelectCallbackStruct *cbp = (XmContainerSelectCallbackStruct *)call;
46 char *txt = (char *)client;
47 int i;
48
49 if (cbp->selected_item_count == 0) {
50 fprintf(stderr, "Callback(%s) - no selection\n", txt);
51 } else {
52 fprintf(stderr, "Callback(%s) - %d items selected :\n", txt, cbp->selected_item_count);
53 for (i=0; i<cbp->selected_item_count; i++) {
54 fprintf(stderr, "\t%s\n", XtName(cbp->selected_items[i]));
55 }
56 }
57 }
58
59 int
main(int argc,char ** argv)60 main(int argc, char **argv)
61 {
62 Display *dpy;
63 Widget toplevel, c, widget, parent;
64 XtAppContext app;
65 Pixmap p;
66 Pixel fg, bg;
67 Arg al[5];
68 int ac;
69
70 XtSetLanguageProc(NULL, NULL, NULL);
71
72 toplevel = XtVaAppInitialize(&app, "Container", NULL, 0,
73 &argc, argv, NULL, NULL);
74
75 #ifndef LESSTIF_VERSION
76 XtAddEventHandler(toplevel, (EventMask)0, True,
77 (XtEventHandler)_XEditResCheckMessages, NULL);
78 #endif
79
80 ac = 0;
81 XtSetArg(al[ac], XmNlayoutType, XmOUTLINE); ac++;
82 c = XmCreateContainer(toplevel, "container", al, ac);
83 XtManageChild(c);
84
85 XtAddCallback(c, XmNconvertCallback, doit, XmNconvertCallback);
86 XtAddCallback(c, XmNdefaultActionCallback, doit, XmNdefaultActionCallback);
87 XtAddCallback(c, XmNdestinationCallback, doit, XmNdestinationCallback);
88 XtAddCallback(c, XmNoutlineChangedCallback, doit, XmNoutlineChangedCallback);
89 XtAddCallback(c, XmNselectionCallback, doit, XmNselectionCallback);
90
91 dpy = XtDisplay(toplevel);
92
93 fg = XBlackPixelOfScreen(DefaultScreenOfDisplay(dpy));
94 bg = XWhitePixelOfScreen(DefaultScreenOfDisplay(dpy));
95
96 p = XmGetPixmap(DefaultScreenOfDisplay(dpy),
97 "woman",
98 fg, bg);
99
100 ac = 0;
101 XtSetArg(al[ac], XmNsmallIconPixmap, p); ac++;
102 XtSetArg(al[ac], XmNoutlineState, XmEXPANDED); ac++;
103 parent = XmCreateIconGadget(c, "tree-1", al, ac);
104 XtManageChild(parent);
105
106 ac = 0;
107 XtSetArg(al[ac], XmNentryParent, parent); ac++;
108 widget = XmCreateIconGadget(c, "child-1", al, ac);
109 XtManageChild(widget);
110
111 ac = 0;
112 XtSetArg(al[ac], XmNentryParent, parent); ac++;
113 XtSetArg(al[ac], XmNoutlineState, XmEXPANDED); ac++;
114 widget = XmCreateIconGadget(c, "child-2", al, ac);
115 XtManageChild(widget);
116
117 /* An additional level */
118 parent = widget;
119 ac = 0;
120 XtSetArg(al[ac], XmNentryParent, parent); ac++;
121 widget = XmCreateIconGadget(c, "child-3", al, ac);
122 XtManageChild(widget);
123
124 ac = 0;
125 XtSetArg(al[ac], XmNentryParent, parent); ac++;
126 widget = XmCreateIconGadget(c, "child-4", al, ac);
127 XtManageChild(widget);
128
129 /* Second tree */
130 ac = 0;
131 XtSetArg(al[ac], XmNsmallIconPixmap, p); ac++;
132 XtSetArg(al[ac], XmNoutlineState, XmEXPANDED); ac++;
133 parent = XmCreateIconGadget(c, "tree-2", al, ac);
134 XtManageChild(parent);
135
136 ac = 0;
137 XtSetArg(al[ac], XmNentryParent, parent); ac++;
138 widget = XmCreateIconGadget(c, "child-5", al, ac);
139 XtManageChild(widget);
140
141 XtRealizeWidget(toplevel);
142 #if 0
143 check_geometry(toplevel);
144 #endif
145 LessTifTestMainLoop(toplevel);
146
147 exit(0);
148 }
149