SoXt(3IV)NAMESoXt (SoXt) - routines for Inventor/Xt compatibility.
INHERITS FROMSoXtSYNOPSIS
#include <Inventor_c/Xt/SoXt.h>
Functions from class SoXt:
Widget SoXtInit(const char *appName, const char *className =
"Inventor")
void SoXtInitWithWidget(Widget topLevelWidget)
void SoXtMainLoop()
void SoXtNextEvent(XtAppContext appContext, XEvent *event)
Boolean SoXtDispatchEvent(XEvent *event)
XtAppContext SoXtGetAppContext()
Display * SoXtGetDisplay()
Widget SoXtGetTopLevelWidget()
void SoXtShow(Widget widget)
void SoXtHide(Widget widget)
XmString SoXtEncodeStr(char *s)
char * SoXtDecodeStr(XmString xs)
void SoXtSetWidgetSize(Widget w, const SbVec2s *size)
SbVec2s SoXtGetWidgetSize(Widget w)
Widget SoXtGetShellWidget(Widget w)
void SoXtCreateSimpleErrDlg(Widget widget, char
*dialogTitle, char *errorStr1, char *errorStr2 =
NULL)
void SoXtGetPopupArgs(Display *d, int scr, ArgList args,
int *n)
void SoXtRegColMapLoad(Widget widget, Widget shell)
void SoXtAddColormapToShell(Widget widget, Widget shell)
void SoXtRemColMapFromShell(Widget widget, Widget shell)
DESCRIPTION
The SoXt class initializes Inventor for use with the Xt toolkit and
Motif. SoXtInit() must be called in order for Inventor to work properly
with Xt. SoXtMainLoop() 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.
FUNCTIONS
Widget SoXtInit(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
Page 1SoXt(3IV)
returns the top level shell widget. This method will call
SoDBInit(), SoNodeKitInit(), SoInteractionInit() and
XtAppInitialize().
void SoXtInitWithWidget(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 SoDBInit(),
SoNodeKitInit(), SoInteractionInit() and XtAppInitialize().
void SoXtMainLoop()
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 SoXtNextEvent() and
SoXtDispatchEvent() to do this. If only the mouse and keyboard
devices are used, this is equivalent to calling XtAppMainLoop().
void SoXtNextEvent(XtAppContext appContext, XEvent *event)
Get the nextEvent by calling XtAppNextEvent(). The appContext can be
had by calling SoXtGetAppContext().
Boolean SoXtDispatchEvent(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.
XtAppContext SoXtGetAppContext()
Display * SoXtGetDisplay()
Widget SoXtGetTopLevelWidget()
These return information based on the top level widget returned by
or passed to init.
void SoXtShow(Widget widget)
void SoXtHide(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().
XmString SoXtEncodeStr(char *s)
char * SoXtDecodeStr(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
Page 2SoXt(3IV)XmStringFree() to free an XmString, and free() to free a character
pointer.
void SoXtSetWidgetSize(Widget w, const SbVec2s *size)
SbVec2s SoXtGetWidgetSize(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.
Widget SoXtGetShellWidget(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().
void SoXtCreateSimpleErrDlg(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()).
void SoXtGetPopupArgs(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.
void SoXtRegColMapLoad(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).
void SoXtAddColormapToShell(Widget widget, Widget shell)
void SoXtRemColMapFromShell(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().
Page 3SoXt(3IV)SEE ALSO
SoXtComponent
Page 4