Query: constrainta
OS: hpux
Section: 3
Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar
Constraint destroy() Constraint destroy() Name Constraint destroy - Constraint class method for freeing resources associated with a child's constraint record. Synopsis typedef void (*XtWidgetProc)(Widget); Widget w; Inputs w Specifies the widget being destroyed. Description The Constraint destroy() method is registered on the destroy field of the Constraint class part structure (which is not the same as the destroy field of the Object or Core class part structure). It is called by XtDestroyWidget() when the child of a constraint widget is destroyed, and should deallocate any memory or resources associated with the part of the constraint record of w that is owned by the class. It should not deallocate the constraint record itself. This method is similar to the Object destroy() method. The Constraint destroy() methods of a widget class and its superclasses are called in subclass-to-superclass order, starting at the class of the parent of w, and ending at the Constraint class. Therefore, the Constraint destroy() method should deallocate only memory and resources associated with the part of the constraint record specific to its class, and not the memory or resources allocated by any of its superclasses. The Constraint destroy() method is chained, and so cannot be inherited. If a constraint widget does not need to deallocate any memory or resources associated with its constraint part structure, the destroy field in its Constraint class part record can be NULL. See destroy(4) for more information about what should be freed and what should not. See XtDestroyWidget(1) for details on the widget and object destruction process. Example The following procedure is the Constraint destroy() method of the Xaw Tree widget. Note that it uses a macro (defined below) to cast the specified widget's constraint field appropriately, and calls XtParent() on the specified widget to obtain the Tree widget itself. This procedure is a somewhat unusual example, because it does not directly call XtFree(), XtReleaseGC(), or similar functions on fields of the constraint record. The constraint records of the Tree class are linked in a tree structure, and this procedure is used to remove a node from that tree. This might have been more appropriate in the delete_child() method instead. static void ConstraintDestroy (w) Widget w; { TreeConstraints tc = TREE_CONSTRAINT(w); TreeWidget tw = (TreeWidget) XtParent(w); int i; /* * Remove the widget from its parent's sub-nodes list and * make all this widget's sub-nodes sub-nodes of the parent. */ if (tw->tree.tree_root == w) { if (tc->tree.n_children > 0) tw->tree.tree_root = tc->tree.children[0]; else tw->tree.tree_root = NULL; } delete_node (tc->tree.parent, (Widget) w); for (i = 0; i< tc->tree.n_children; i++) insert_node (tc->tree.parent, tc->tree.children[i]); layout_tree ((TreeWidget) (w->core.parent), FALSE); } The useful TREE_CONSTRAINTS macro is defined as follows: #define TREE_CONSTRAINT(w) ((TreeConstraints)((w)->core.constraints)) See Also XtDestroyWidget(1), Constraint(3), Core(3). Xt - Intrinsics Methods Constraint destroy()
Related Man Pages |
---|
xtcreatemanagedwidget(3) - debian |
xtvacreatemanagedwidget(3) - debian |
xtcreatemanagedwidget(3xt) - ultrix |
constraintb(3) - hpux |
destroy(4) - hpux |
Similar Topics in the Unix Linux Community |
---|
tree structure of the data |
Solving Constraint Integer Programs 1.1.0 (Default branch) |
Standards: next up, Constraint Programming |
Find a tree structure in software modules |
VI Line Break? |