Provided by: inventor-doc_2.1.5-10+dfsg-2.1build2_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)()