Provided by: inventor-doc_2.1.5-10-18_all bug

NAME

       SoXtComponent — abstract base class for all Inventor Xt components

INHERITS FROM

       SoXtComponent

SYNOPSIS

       #include <Inventor/Xt/SoXtComponent.h>

     typedef void        SoXtComponentCB(void *userData, SoXtComponent *comp)

          Methods from class SoXtComponent:

     virtual void            show()
     virtual void            hide()
     SbBool                  isVisible()
     Widget                  getWidget() const
     SbBool                  isTopLevelShell() const
     Widget                  getShellWidget() const
     Widget                  getParentWidget() const
     void                    setSize(const SbVec2s &size)
     SbVec2s                 getSize()
     Display *               getDisplay()
     void                    setTitle(const char *newTitle)
     const char *            getTitle() const
     void                    setIconTitle(const char *newIconTitle)
     const char *            getIconTitle() const
     void                    setWindowCloseCallback(SoXtComponentCB *func, void *data = NULL)
     static SoXtComponent *  getComponent(Widget w)
     const char *            getWidgetName() const
     const char *            getClassName() const

DESCRIPTION

       Abstract base class from which all Inventor Xt components are derived. This class provides
       a basic C++ protocol for building and displaying Motif components. Components are used  to
       encapsulate  some  function  or task into a reusable package in the form of a Motif widget
       that can be used in any Inventor Xt program. See the Example section on how to  build  and
       use SoXtComponents.

METHODS

     virtual void            show()
     virtual void            hide()
          This  shows  and hides the component. If this is a topLevelShell component, then show()
          will Realize and Map the window, otherwise it will simply  Manage  the  widget.  hide()
          calls the appropriate unmap or unmanage routines.

          In  addition,  show()  will  also pop the component window to the top and de-iconify if
          necessary, to make sure the component is visible by the user.

     SbBool                  isVisible()
          Returns TRUE if this component is mapped  onto  the  screen.  For  a  component  to  be
          visible,  it's  widget  and  the  shell containing this widget must be mapped (which is
          FALSE when the component is iconified).

          Subclasses should call this routine before redrawing anything and in any sensor trigger
          methods.  Calling  this  will  check the current visibility (which is really cheap) and
          invoke   the   visibility   changed   callbacks   if    the    state    changes    (see
          addVisibilityChangeCallback()).

     Widget                  getWidget() const
          This  returns  the  base  widget  for  this component. If the component created its own
          shell, this returns the topmost widget beneath  the  shell.  Call  getShellWidget()  to
          obtain the shell.

     SbBool                  isTopLevelShell() const
     Widget                  getShellWidget() const
          Returns  TRUE  if  this  component is a top level shell component (has its own window).
          Subclasses may use this to decide if they are allowed to resize themselves. Also method
          to return the shell widget (NULL if the shell hasn't been created by this component).

     Widget                  getParentWidget() const
          Return the parent widget, be it a shell or not

     void                    setSize(const SbVec2s &size)
     SbVec2s                 getSize()
          Convenience routines on the widget — setSize calls XtSetValue

     Display *               getDisplay()
          Returns the X display associated with this components widget.

     void                    setTitle(const char *newTitle)
     const char *            getTitle() const
     void                    setIconTitle(const char *newIconTitle)
     const char *            getIconTitle() const
          The  window  and icon title can be set for topLevelShell components or components which
          are directly under a shell widget (i.e. components which have their own window).

     void                    setWindowCloseCallback(SoXtComponentCB *func, void *data = NULL)
          Sets which callback to call when the user closes this component (double  click  in  the
          upper  left  corner) — by default hide() is called on this component, unless a callback
          is set to something other than NULL.  A pointer to this class will  be  passed  as  the
          callback data.

          Note: this callback is supplied because the user may wish to delete this component when
          it is closed.

     static SoXtComponent *  getComponent(Widget w)
          This returns the SoXtComponent for this widget.  If  the  widget  is  not  an  Inventor
          component, then NULL is returned.

     const char *            getWidgetName() const
     const char *            getClassName() const
          Routines  which return the widget name and the class name. The widget name is passed to
          the build method. The class name is predefined by each component. These names are  used
          when retrieving X resource values for the component.

EXAMPLE

       This  example  shows  how an Inventor component can be built inside a program using the Xt
       widget set. The example uses the SoXtExaminerViewer widget to view some simple geometry.
          #include <Inventor/Xt/SoXt.h>
          #include <Inventor/nodes/SoCone.h>
          #include <Inventor/Xt/viewers/SoXtExaminerViewer.h>

          void main(int, char **argv)
          {
              // Initialize Inventor and Xt, which must be done
              // before any Inventor calls are made.
              Widget myWindow = SoXt::init(argv[0]);

              // create the viewer in the toplevel window
              // and set some scene to display
              SoXtExaminerViewer *myViewer = new SoXtExaminerViewer(myWindow);
              myViewer->setSceneGraph( new SoCone() );

              // manage and map window on screen
              myViewer->show();
              SoXt::show(myWindow); // calls XtRealizeWidget()

              // Loop forever
              SoXt::mainLoop();
          }

SEE ALSO

       SoXt, SoXtRenderArea, SoXtViewer, SoXtMaterialEditor

                                                                             SoXtComponent(3IV)()