00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052 #ifdef SOQT
00053 # include <Inventor/Qt/SoQt.h>
00054 #elif defined(_WIN32)
00055 # include <Inventor/Win/SoXt2SoWin.h>
00056 # include <Inventor/Win/SoWin.h>
00057 #else
00058
00059 #ifndef _SO_XT_
00060 #define _SO_XT_
00061
00062 #include <SbTypes.h>
00063 #include <Xm/Xm.h>
00064 #include <Inventor/SbBasic.h>
00065 #include <Inventor/SbLinear.h>
00066 #include <Inventor/Xt/SoXtDef.h>
00067 #include <Inventor/Xt/SoXtLocalisation.h>
00068 #include <Inventor/Xt/SoInventorXtLibName.h>
00069
00070 #include <Inventor/SoModule.h>
00071 SO_MODULE_HEADER(SoInventorXt, __INVENTORXTDLL)
00072
00073 class SbPList;
00074 class SoXtEventHandler;
00075 class SoAction;
00076
00099 class SoXt {
00100
00101 public:
00109 static SoWidget init(const char *appName,
00110 const char *className = "Inventor");
00111
00118 static void init(SoWidget topLevelWidget);
00119
00120 #if 1
00121
00122
00123
00124 SoDEPRECATED
00125 static SoWidget threadInit(const char *appName,
00126 const char *className = "Inventor");
00127 SoDEPRECATED
00129 static void threadInit(SoWidget topLevelWidget);
00130 #endif
00135 static bool isInitialized();
00136
00196 static void finish();
00197
00204 static int mainLoop();
00205
00214 static void exit(int returnCode = 0);
00215
00220 static void nextEvent(XtAppContext appContext, XEvent *event)
00221 { XtAppNextEvent(appContext, event); }
00222
00227 static Boolean dispatchEvent(XEvent *event);
00228
00232 static XtAppContext getAppContext();
00233
00237 static Display *getDisplay();
00238
00242 static SoWidget getTopLevelWidget();
00243
00244
00245
00246
00247
00252 static void show(SoWidget widget);
00253
00258 static void hide(SoWidget widget);
00259
00268 static XmString encodeString(char *s);
00269
00278 static char *decodeString(XmString xs);
00279
00283 static void setWidgetSize(SoWidget w, const SbVec2s &size);
00284
00288 static SbVec2s getWidgetSize(SoWidget w);
00289
00295 static SoWidget getShellWidget(SoWidget w);
00296
00302 static void createSimpleErrorDialog(SoWidget widget, char *dialogTitle,
00303 char *errorStr1, char *errorStr2 = NULL);
00304
00311 static void getPopupArgs(Display *d, int scr, ArgList args, int *n);
00312
00321 static void registerColormapLoad(SoWidget widget, SoWidget shell);
00322
00329 static void addColormapToShell(SoWidget widget, SoWidget shell);
00330
00335 static void removeColormapFromShell(SoWidget widget, SoWidget shell);
00336
00337 private:
00338
00339
00340
00341 static void addExtensionEventHandler(SoWidget w,
00342 int extensionEventType,
00343 XtEventHandler proc,
00344 XtPointer clientData);
00345 static void removeExtensionEventHandler(SoWidget w,
00346 int extensionEventType,
00347 XtEventHandler proc,
00348 XtPointer clientData);
00349
00350
00351
00352
00353
00354 static SoWidget getwidget( unsigned int whatisit );
00355
00356
00357 static void canExit(SbBool ce);
00358
00359 static void setEventHandler();
00360
00361 static SoXtEventHandler *eventHandler;
00362
00363 private:
00364 static void getExtensionEventHandler(
00365 XEvent *event,
00366 SoWidget &w,
00367 XtEventHandler &proc,
00368 XtPointer &clientData);
00369
00370 private:
00375 static void activeLoop();
00376
00377 static int s_returnCode;
00378
00379 static SoWidget mainWidget;
00380 static bool m_internalApp;
00381 static SbBool m_canExit;
00382
00383 static SbPList *handlerList;
00384
00385
00386
00387 static SoWidget label[155];
00388
00389 static void localisationlabel(SoWidget parent);
00390
00391
00392
00393 static void setupInventorGLDisplay();
00394
00395 static int s_initRefCount;
00396 static const char *s_versionString;
00397 };
00398
00399 #endif
00400
00401 #endif // SOQT
00402
00403