Query: delete_child
OS: hpux
Section: 3
Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar
delete_child() delete_child() Name delete_child - Composite class method called when a child is destroyed. Synopsis typedef void (*XtWidgetProc)(Widget); Widget w; Inputs w Specifies the child that is to be removed from its parent's children array. Description The delete_child() method is registered on the delete_child field of the Composite class part structure. It is called by XtDestroyWidget() to remove a child from its parent's children array. Note that the argument to the delete_child() method is the child widget, not the composite widget that defines the method. This method must remove the specified child from its parent's children array, and free up any other memory that the class uses to keep track of the child. The delete_child() method is not chained. If a class does not define a delete_child() method, it should inherit the method from its super- class by specifying XtInheritDeleteChild in the delete_child field of its Composite class part structure. This field should not be set to NULL. Usage Most widgets simply inherit the delete_child() method from their superclass. Some widget classes, though, create companion widgets for each of their children (the Xaw Paned widget creates the Grip widgets that separate the panes, for example) or maintain information about each child that must be freed up when the child is destroyed. These classes must provide their own delete_child() procedures. These pro- cedures commonly "envelop" their superclass's method by providing a procedure that does class-specific processing and explicitly invokes the superclass method. This technique allows a kind of non-automatic inheritance, and is shown in the example below. Note that the Composite insert_child() and delete_child() methods exploit internal common data structures, so you should inherit or envelop both or neither. If you do not inherit or envelop these methods, then your methods are responsible for adding and removing the child wid- get from the children array. Example The following procedure is the delete_child() method of the Xaw Paned widget class. Note how it destroys the Grip widget that was automat- ically created as a sibling of the child, and then explicitly invokes its superclass's delete_child() method to remove the child from the Composite children array. See insert_child(4) for the corresponding insert_child() procedure. static void DeleteChild(w) Widget w; { /* remove the subwidget info and destroy the grip */ if ( IsPane(w) && HasGrip(w) ) XtDestroyWidget(PaneInfo(w)->grip); /* delete the child widget in the composite children list with the */ /* superclass delete_child routine. */ (*SuperClass->composite_class.delete_child) (w); } /* DeleteChild */ In this example, SuperClass is a symbolic name for the superclass of the Paned widget class. Note that this method does not determine the superclass as follows: XtSuperclass(XtParent(w)) The parent of w may be a subclass of Paned, and therefore its superclass pointer will not always be the class whose method should be invoked. See Also Composite(3), insert_child(4). Xt - Intrinsics Methods delete_child()
Related Man Pages |
---|
xtcreatewidget(3xt) - ultrix |
xtdestroywidget(3xt) - ultrix |
xtdestroywidget(3) - hpux |
xtorderproc(3) - hpux |
change_managed(3) - hpux |
Similar Topics in the Unix Linux Community |
---|
Status of child job after parent is killed |
The Death Grip |