1 /*
2  * $Header: /cvsroot/lesstif/lesstif/test/Xm/scrolledwindow/test24.c,v 1.1 2005/01/16 11:03:17 dannybackx Exp $
3  *
4  * Add multiple children.
5  * Try to figure out what's wrong with bug # 993209
6  * */
7 
8 #include <stdlib.h>
9 #include <stdio.h>
10 
11 #include <Xm/XmAll.h>
12 
13 Widget toplevel, form;
14 Widget sw, hsb, vsb, da;
15 Widget	b1, b2, b3;
16 
17 Widget	arr[5];
18 
Create(Widget w,XtPointer client,XtPointer call)19 void Create(Widget w, XtPointer client, XtPointer call)
20 {
21 	int	i = (int)client;
22 	char	s[20];
23 	sprintf(s, "button %d", i);
24 	arr[i] = XtVaCreateWidget(s, xmPushButtonWidgetClass, sw,
25 			XmNx,	20,
26 			XmNy,	20 + 20 * i,
27 			NULL);
28 }
29 
Manage(Widget w,XtPointer client,XtPointer call)30 void Manage(Widget w, XtPointer client, XtPointer call)
31 {
32 	int	i = (int)client;
33 	XtManageChild(arr[i]);
34 }
35 
Unmanage(Widget w,XtPointer client,XtPointer call)36 void Unmanage(Widget w, XtPointer client, XtPointer call)
37 {
38 	int	i = (int)client;
39 	XtUnmanageChild(arr[i]);
40 }
41 
42 int
main(int argc,char ** argv)43 main(int argc, char **argv)
44 {
45 	int	i;
46 	XtAppContext appc;
47 
48 	XtSetLanguageProc(NULL, NULL, NULL);
49 
50 	toplevel = XtVaAppInitialize(&appc, "test", NULL, 0, &argc, argv, NULL, NULL);
51 
52 	form = XtVaCreateManagedWidget("form", xmFormWidgetClass, toplevel,
53 		  XmNwidth,	800,
54 		  XmNheight,	600,
55 		  NULL);
56 
57 	sw  = XtVaCreateManagedWidget("sw", xmScrolledWindowWidgetClass, form,
58 		  XmNscrollingPolicy,		XmAUTOMATIC,
59 		  XmNleftPosition,		50,
60 		  XmNleftAttachment,		XmATTACH_POSITION,
61 		  XmNrightAttachment,		XmATTACH_FORM,
62 		  XmNtopAttachment,		XmATTACH_FORM,
63 		  XmNbottomAttachment,		XmATTACH_FORM,
64 		  NULL);
65 
66 	for (i=0; i<5; i++) {
67 		b1 = XtVaCreateManagedWidget("create", xmPushButtonWidgetClass, form,
68 			XmNleftOffset,		10,
69 			XmNleftAttachment,	XmATTACH_FORM,
70 			XmNrightAttachment,	XmATTACH_SELF,
71 			XmNtopAttachment,	XmATTACH_FORM,
72 			XmNtopOffset,		10 + 30 * i,
73 			XmNbottomAttachment,	XmATTACH_SELF,
74 			NULL);
75 		XtAddCallback(b1, XmNactivateCallback, Create, (XtPointer)i);
76 		b2 = XtVaCreateManagedWidget("manage", xmPushButtonWidgetClass, form,
77 			XmNleftOffset,		10,
78 			XmNleftWidget,		b1,
79 			XmNleftAttachment,	XmATTACH_WIDGET,
80 			XmNrightAttachment,	XmATTACH_SELF,
81 			XmNtopAttachment,	XmATTACH_FORM,
82 			XmNtopOffset,		10 + 30 * i,
83 			XmNbottomAttachment,	XmATTACH_SELF,
84 			NULL);
85 		XtAddCallback(b2, XmNactivateCallback, Manage, (XtPointer)i);
86 		b3 = XtVaCreateManagedWidget("unmanage", xmPushButtonWidgetClass, form,
87 			XmNleftOffset,		10,
88 			XmNleftWidget,		b2,
89 			XmNleftAttachment,	XmATTACH_WIDGET,
90 			XmNrightAttachment,	XmATTACH_SELF,
91 			XmNtopAttachment,	XmATTACH_FORM,
92 			XmNtopOffset,		10 + 30 * i,
93 			XmNbottomAttachment,	XmATTACH_SELF,
94 			NULL);
95 		XtAddCallback(b3, XmNactivateCallback, Unmanage, (XtPointer)i);
96 	}
97 
98 	XtRealizeWidget(toplevel);
99 
100 	XtAppMainLoop(appc);
101 	exit(0);
102 }
103