ConstraintA man page on HP-UX

Man page or keyword search:  
man Server   10987 pages
apropos Keyword Search (all sections)
Output format
HP-UX logo
[printable version]

Constraint destroy()					  Constraint destroy()

  Constraint destroy  -	 Constraint  class  method  for freeing resources
  associated with a child's constraint record.

  typedef void (*XtWidgetProc)(Widget);
	 Widget w;

  w	    Specifies the widget being destroyed.

  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.

  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];
	       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
  Constraint(3), Core(3).

Xt - Intrinsics Methods					  Constraint destroy()

List of man pages available for HP-UX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net