SoXt(3IV)

SoXt - routines for Inventor/Xt compatibility.

Showing IRIX 6.5.30 (default release). Added in IRIX 6.5.22.

NAME
     SoXt - routines for Inventor/Xt compatibility.

INHERITS FROM
     SoXt

SYNOPSIS
     #include <Inventor/Xt/SoXt.h>

          Methods from class SoXt:

     static Widget        init(const char *appName, const char *className =
                               "Inventor")
     static void          init(Widget topLevelWidget)
     static void          mainLoop()
     static void          nextEvent(XtAppContext appContext, XEvent *event)
     static Boolean       dispatchEvent(XEvent *event)
     static XtAppContext  getAppContext()
     static Display *     getDisplay()
     static Widget        getTopLevelWidget()
     static void          show(Widget widget)
     static void          hide(Widget widget)
     static XmString      encodeString(char *s)
     static char *        decodeString(XmString xs)
     static void          setWidgetSize(Widget w, const SbVec2s &size)
     static SbVec2s       getWidgetSize(Widget w)
     static Widget        getShellWidget(Widget w)
     static void          createSimpleErrorDialog(Widget widget, char
                               *dialogTitle, char *errorStr1, char *errorStr2
                               = NULL)
     static void          getPopupArgs(Display *d, int scr, ArgList args, int
                               *n)
     static void          registerColormapLoad(Widget widget, Widget shell)
     static void          addColormapToShell(Widget widget, Widget shell)
     static void          removeColormapFromShell(Widget widget, Widget shell)


DESCRIPTION
     The SoXt class initializes Inventor for use with the Xt toolkit and
     Motif. SoXt::init() must be called in order for Inventor to work properly
     with Xt. SoXt::mainLoop() must be called in order for extension device
     events to be passed to Inventor render areas. The other methods are
     convenience functions.

     Refer to the SoXtComponent man pages for examples on how this class
     should be used when using Inventor Xt components.

METHODS
     static Widget        init(const char *appName, const char *className =
                               "Inventor")
          This is called to initialize Inventor and Xt, and bind Inventor with
          Xt event handling so that Inventor sensors will work correctly. This
          returns the top level shell widget. This method will call
          SoDB::init(), SoNodeKit::init(), SoInteraction::init() and
          XtAppInitialize().

     static void          init(Widget topLevelWidget)
          This alternate form of init allows the application to initialize Xt.
          The passed widget should be the top level shell widget returned from
          the Xt initializiation. This method will call SoDB::init(),
          SoNodeKit::init(), SoInteraction::init() and XtAppInitialize().

     static void          mainLoop()
          This retrieves and dispatches events (loops forever). Unlike Xt
          which ignores extension devices (i.e. any device besides mouse and
          keyboard), this main loop will dispatch events from input extension
          devices like the spaceball. It calls SoXt::nextEvent() and
          SoXt::dispatchEvent() to do this. If only the mouse and keyboard
          devices are used, this is equivalent to calling XtAppMainLoop().

     static void          nextEvent(XtAppContext appContext, XEvent *event)
          Get the nextEvent by calling XtAppNextEvent(). The appContext can be
          had by calling SoXt::getAppContext().

     static Boolean       dispatchEvent(XEvent *event)
          Dispatch the passed event to a handler. Mouse and keyboard events
          are dispatched by calling XtDispatchEvent(). Events from input
          extension devices are dispatched by code implemented in this
          routine. This returns True if a handler was found, else it returns
          False.

     static XtAppContext  getAppContext()
     static Display *     getDisplay()
     static Widget        getTopLevelWidget()
          These return information based on the top level widget returned by
          or passed to init.

     static void          show(Widget widget)
     static void          hide(Widget widget)
          Convenience routines to show and hide the passed widget.

          For a shell widget, this is equivalent to calling RealizeWidget() +
          XMapWindow() or XMapRaised() if window already exists (raise and
          de-iconify). hide() will then call XUnmapWindow().

          For a subwidget, those simply calls XtManageChild() and
          XtUnmanageChild().

     static XmString      encodeString(char *s)
     static char *        decodeString(XmString xs)
          These are convenience routines for encoding a character string as an
          XmString, and decoding an XmString back to a character string.
          (XmString is a Motif string). The application is responsible for
          freeing up the memory pointed to by these return values. Use
          XmStringFree() to free an XmString, and free() to free a character
          pointer.

     static void          setWidgetSize(Widget w, const SbVec2s &size)
     static SbVec2s       getWidgetSize(Widget w)
          Convenience routines to set/get the size of the given widget. Those
          are equivalent to calling XtSetValues() and XtGetValues() on
          XtNheight and XtNwidth widget resources.

     static Widget        getShellWidget(Widget w)
          Convenience routine which will return the ShellWidget containing the
          given widget. The widget tree is traversed up until a shell widget
          is found using XtIsShell().

     static void          createSimpleErrorDialog(Widget widget, char
                               *dialogTitle, char *errorStr1, char *errorStr2
                               = NULL)
          Convenience routine which brings a simple motif error dialog box
          displaying the given error string(s) and window title. The OK
          button, which destroys the dialog, is the only button displayed. The
          widget argument is used to create and center the dialog ( using
          XmCreateErrorDialog()).

     static void          getPopupArgs(Display *d, int scr, ArgList args, int
                               *n)
          Convenience routine which gets visual args for the popup planes.
          These args can then be passed in to XmCreatePulldownMenu() or
          XmCreatePopupMenu() to create menus in the popup planes.
          registerColormapLoad() must be called for each pulldown menu to
          properly load/unload the overlay color map on the shell when needed.

     static void          registerColormapLoad(Widget widget, Widget shell)
          Convenience routine which will register map/unmap callbacks to load
          and unload the pulldown menu color map right before the menu is
          about to be posted. This should be called when creating pulldown or
          popup menus in the overlays. This will make sure that the right
          color map is loaded into the shell widget (to make the
          pulldown/popup look right) and remove it when no longer needed (to
          make sure the OpenGL overlay widget color map is correctly loaded
          for 8 bit machines).

     static void          addColormapToShell(Widget widget, Widget shell)
     static void          removeColormapFromShell(Widget widget, Widget shell)
          Convenience routine to insert/remove the given widget colormap onto
          the supplied shell widget. This will not replace the existing
          installed colormaps (or list of windows), but instead insert the new
          colormap first into the existing list using XGetWMColormapWindows()
          and XSetWMColormapWindows().

SEE ALSO
     SoXtComponent