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