1XtManageChildren(3) XT FUNCTIONS XtManageChildren(3)
2
3
4
6 XtManageChildren, XtManageChild, XtUnmanageChildren, XtUnmanageChild,
7 XtChangeManagedSet, XtIsManaged - manage and unmanage children
8
10 #include <X11/Intrinsic.h>
11
12 typedef Widget *WidgetList;
13
14 void XtManageChildren(WidgetList children, Cardinal num_children);
15
16 void XtManageChild(Widget child);
17
18 void XtUnmanageChildren(WidgetList children, Cardinal num_children);
19
20 void XtUnmanageChild(Widget child);
21
22 void XtChangeManagedSet(WidgetList unmanage_children, Cardinal num_un‐
23 manage_children, XtDoChangeProc do_change_proc, XtPointer
24 client_data, WidgetList manage_children, Cardinal num_man‐
25 age_children);
26
27 Boolean XtIsManaged(Widget widget);
28
30 child Specifies the child.
31
32 children Specifies a list of child widgets.
33
34 num_children
35 Specifies the number of children.
36
37 widget Specifies the widget.
38
39 manage_children
40 Specifies the list of widget children to add to the managed
41 set.
42
43 num_manage_children
44 Specifies the number of entries in the manage_children list.
45
46 unmanage_children
47 Specifies the list of widget children to remove from the man‐
48 aged set.
49
50 num_unmanage_children
51 Specifies the number of entries in the unmanage_children
52 list.
53
54 do_change_proc
55 Specifies the post unmanage, pre manage hook procedure to in‐
56 voke.
57
58 client_data
59 Specifies the client data to be passed to the hook procedure.
60
62 The XtManageChildren function performs the following:
63
64 • Issues an error if the children do not all have the same parent or
65 if the parent is not a subclass of compositeWidgetClass.
66
67 • Returns immediately if the common parent is being destroyed; oth‐
68 erwise, for each unique child on the list, XtManageChildren ig‐
69 nores the child if it already is managed or is being destroyed and
70 marks it if not.
71
72 • If the parent is realized and after all children have been marked,
73 it makes some of the newly managed children viewable:
74
75 - Calls the change_managed routine of the widgets' parent.
76
77 - Calls XtRealizeWidget on each previously unmanaged child that
78 is unrealized.
79
80 - Maps each previously unmanaged child that has map_when_man‐
81 aged True.
82
83 Managing children is independent of the ordering of children and inde‐
84 pendent of creating and deleting children. The layout routine of the
85 parent should consider children whose managed field is True and should
86 ignore all other children. Note that some composite widgets, espe‐
87 cially fixed boxes, call XtManageChild from their insert_child proce‐
88 dure.
89
90 If the parent widget is realized, its change_managed procedure is
91 called to notify it that its set of managed children has changed. The
92 parent can reposition and resize any of its children. It moves each
93 child as needed by calling XtMoveWidget, which first updates the x and
94 y fields and then calls XMoveWindow if the widget is realized.
95
96 The XtManageChild function constructs a WidgetList of length one and
97 calls XtManageChildren.
98
99 The XtUnmanageChildren function performs the following:
100
101 • Issues an error if the children do not all have the same parent or
102 if the parent is not a subclass of compositeWidgetClass.
103
104 • Returns immediately if the common parent is being destroyed; oth‐
105 erwise, for each unique child on the list, XtUnmanageChildren per‐
106 forms the following:
107
108 - Ignores the child if it already is unmanaged or is being de‐
109 stroyed and marks it if not.
110
111 - If the child is realized, it makes it nonvisible by unmapping
112 it.
113
114 • Calls the change_managed routine of the widgets' parent after all
115 children have been marked if the parent is realized.
116
117 XtUnmanageChildren does not destroy the children widgets. Removing
118 widgets from a parent's managed set is often a temporary banishment,
119 and, some time later, you may manage the children again.
120
121 The XtUnmanageChild function constructs a widget list of length one and
122 calls XtUnmanageChildren.
123
124 The XtChangeManagedSet function performs the following:
125
126 • Issues an error if the widgets specified in the manage_children
127 and the unmanage_children lists to no all have the same parent, or
128 if that parent is not a subclass of compositeWidgetClass.
129
130 • Returns immediately if the common parent is being destroyed.
131
132 • If no CompositeClassExtension is defined, or a CompositeClassEx‐
133 tension is defined but with an allows_change_managed_set field
134 with a value of False, and XtChangeManagedSet was invoked with a
135 non-NULL do_change_proc procedure then XtChangeManagedSet performs
136 the following:
137
138 - Calls XtUnmanageChildren (unmanage_children, num_unman‐
139 age_children).
140
141 - Calls the do_change_proc specified.
142
143 - Calls XtManageChildren (manage_children, num_manage_children)
144 and then returns immediately.
145
146 • Otherwise, if a CompositeClassExtension is defined with an al‐
147 lows_change_managed_set field with a value of True, or if no Com‐
148 positeClassExtension is defined, and XtChangeManagedSet was in‐
149 voked with a NULL do_change_proc procedure, then the following is
150 performed:
151
152 - For each child on the unmanage_children list; if the child is
153 already unmanaged or is being destroyed it is ignored, other‐
154 wise it is marked as being unmanaged and if it is realized it
155 is made nonvisible by being unmapped.
156
157 - If the do_change_proc procedure is non-NULL then it is in‐
158 voked as specified.
159
160 - For each child on the manage_children list; if the child is
161 already managed or it is being destroyed it is ignored, oth‐
162 erwise it is marked as managed
163
164 • If the parent is realized and after all children have been marked,
165 the change_managed method of the parent is invoked and subse‐
166 quently some of the newly managed children are made viewable by:
167
168 - Calling XtRealizeWidget on each of the previously unmanaged
169 child that is unrealized.
170
171 - Mapping each previously unmanaged child that has
172 map_when_managed True.
173
174 The XtIsManaged function returns True if the specified widget is of
175 class RectObj or any subclass thereof and is managed, or False other‐
176 wise.
177
179 XtMapWidget(3), XtRealizeWidget(3)
180 X Toolkit Intrinsics - C Language Interface
181 Xlib - C Language X Interface
182
183
184
185X Version 11 libXt 1.2.1 XtManageChildren(3)