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
00202 static void mainLoop();
00203
00208 static void nextEvent(XtAppContext appContext, XEvent *event)
00209 { XtAppNextEvent(appContext, event); }
00210
00215 static Boolean dispatchEvent(XEvent *event);
00216
00220 static XtAppContext getAppContext();
00221
00225 static Display *getDisplay();
00226
00230 static SoWidget getTopLevelWidget();
00231
00232
00233
00234
00235
00240 static void show(SoWidget widget);
00241
00246 static void hide(SoWidget widget);
00247
00256 static XmString encodeString(char *s);
00257
00266 static char *decodeString(XmString xs);
00267
00271 static void setWidgetSize(SoWidget w, const SbVec2s &size);
00272
00276 static SbVec2s getWidgetSize(SoWidget w);
00277
00283 static SoWidget getShellWidget(SoWidget w);
00284
00290 static void createSimpleErrorDialog(SoWidget widget, char *dialogTitle,
00291 char *errorStr1, char *errorStr2 = NULL);
00292
00299 static void getPopupArgs(Display *d, int scr, ArgList args, int *n);
00300
00309 static void registerColormapLoad(SoWidget widget, SoWidget shell);
00310
00317 static void addColormapToShell(SoWidget widget, SoWidget shell);
00318
00323 static void removeColormapFromShell(SoWidget widget, SoWidget shell);
00324
00325 private:
00326
00327
00328
00329 static void addExtensionEventHandler(SoWidget w,
00330 int extensionEventType,
00331 XtEventHandler proc,
00332 XtPointer clientData);
00333 static void removeExtensionEventHandler(SoWidget w,
00334 int extensionEventType,
00335 XtEventHandler proc,
00336 XtPointer clientData);
00337
00338
00339
00340
00341
00342 static SoWidget getwidget( unsigned int whatisit );
00343
00344
00345 static void canExit(SbBool ce);
00346
00347 static void setEventHandler();
00348
00349 static SoXtEventHandler *eventHandler;
00350
00351 private:
00352 static void getExtensionEventHandler(
00353 XEvent *event,
00354 SoWidget &w,
00355 XtEventHandler &proc,
00356 XtPointer &clientData);
00357
00358 private:
00363 static void activeLoop();
00364
00365 static SoWidget mainWidget;
00366 static bool m_internalApp;
00367 static SbBool m_canExit;
00368
00369 static SbPList *handlerList;
00370
00371
00372
00373 static SoWidget label[155];
00374
00375 static void localisationlabel(SoWidget parent);
00376
00377
00378
00379 static void setupInventorGLDisplay();
00380
00381 static int s_initRefCount;
00382 static const char *s_versionString;
00383 };
00384
00385 #endif
00386
00387 #endif // SOQT
00388
00389