# EZ_DestroyWidget

##

##

##

##

##

    NAME
           EZ_DestroyWidget - destroy a widget and its descendants

    SYNOPSIS
           #include <EZ.h>

           void EZ_DestroyWidget( EZ_Widget *widget)

    ARGUMENTS
           widget  Specifies an EZ widget.

    DESCRIPTION
           EZ_DestroyWidget  destroies  a  widget and all its descen-
           dants.  It invokes the  destroy  callbacks  registered  to
           widget  and releases all resources allocated for widget. A
           destroied widget should never be referenced again.

           The actual destruction is completed in two steps.  In  the
           first  step,  it  recursively  descends  the  widget tree,
           remove the widget and its children from  the  widget  hash
           table,  inserts  them  into  the destroyed widget list and
           mark the widget and its children destroyed. In the  second
           step,  it  invokes  the  destroy  callbacks  in post-order
           (invoke  children's  destroy  callbacks  first)  and  then
           dereference the allocated resources.

    SEE ALSO
           EZ_CreateWidget(3)