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(SOWX)
00055 # include <Inventor/Wx/SoXt2SoWx.h>
00056 # include <Inventor/Wx/SoWx.h>
00057 #elif defined(_WIN32)
00058 # include <Inventor/Win/SoXt2SoWin.h>
00059 # include <Inventor/Win/SoWin.h>
00060 #else
00061
00062 #ifndef _SO_XT_
00063 #define _SO_XT_
00064
00065 #include <SbTypes.h>
00066 #include <Xm/Xm.h>
00067 #include <Inventor/SbBasic.h>
00068 #include <Inventor/SbLinear.h>
00069 #include <Inventor/Xt/SoXtDef.h>
00070 #include <Inventor/Xt/SoXtLocalisation.h>
00071
00072 #define __INVXTDLL "libInventorXt"
00073 #include <Inventor/SoModule.h>
00074 SO_MODULE_HEADER(SoInventorXt, __INVXTDLL)
00075
00076 class SbPList;
00077 class SoXtEventHandler;
00078 class SbConfig;
00079 class SoAction;
00080
00081
00082 #ifndef HIDDEN_FROM_DOC
00083
00084
00085 typedef int SoMPRealizeCB( SbConfig* );
00086 #endif //HIDDEN_FROM_DOC
00087
00111 class SoXt {
00112
00113 public:
00121 static SoWidget init(const char *appName,
00122 const char *className = "Inventor");
00123
00128 static SoWidget threadInit(const char *appName,
00129 const char *className = "Inventor");
00130
00137 static void init(SoWidget topLevelWidget);
00138
00143 static void threadInit(SoWidget topLevelWidget);
00144
00148 static bool isInitialized();
00149
00209 static void finish();
00210
00215 static void mainLoop();
00216
00221 static void nextEvent(XtAppContext appContext, XEvent *event)
00222 { XtAppNextEvent(appContext, event); }
00223
00228 static Boolean dispatchEvent(XEvent *event);
00229
00233 static XtAppContext getAppContext();
00234
00238 static Display *getDisplay();
00239
00243 static SoWidget getTopLevelWidget();
00244
00245
00246
00247
00248
00253 static void show(SoWidget widget);
00254
00259 static void hide(SoWidget widget);
00260
00269 static XmString encodeString(char *s);
00270
00279 static char *decodeString(XmString xs);
00280
00284 static void setWidgetSize(SoWidget w, const SbVec2s &size);
00285
00289 static SbVec2s getWidgetSize(SoWidget w);
00290
00296 static SoWidget getShellWidget(SoWidget w);
00297
00303 static void createSimpleErrorDialog(SoWidget widget, char *dialogTitle,
00304 char *errorStr1, char *errorStr2 = NULL);
00305
00312 static void getPopupArgs(Display *d, int scr, ArgList args, int *n);
00313
00322 static void registerColormapLoad(SoWidget widget, SoWidget shell);
00323
00330 static void addColormapToShell(SoWidget widget, SoWidget shell);
00331
00336 static void removeColormapFromShell(SoWidget widget, SoWidget shell);
00337
00341 static SbConfig *getConfig(void);
00342
00346 static void setConfig(SbConfig * config);
00347
00356 static void setConfigFilename(char* fileName);
00357
00361 static char * getConfigFilename(void);
00362
00363 private:
00364
00365
00366
00367 static void addExtensionEventHandler(SoWidget w,
00368 int extensionEventType,
00369 XtEventHandler proc,
00370 XtPointer clientData);
00371 static void removeExtensionEventHandler(SoWidget w,
00372 int extensionEventType,
00373 XtEventHandler proc,
00374 XtPointer clientData);
00375
00376
00377
00378
00379
00380 static SoWidget getwidget( unsigned int whatisit );
00381
00382
00383 static void setMPRealizeCB( SoMPRealizeCB *cb )
00384 { mpRealizeCB = cb; }
00385
00386 static void canExit(SbBool ce);
00387
00388 static void setEventHandler();
00389
00390 static SoXtEventHandler *eventHandler;
00391
00392 private:
00393 static void getExtensionEventHandler(
00394 XEvent *event,
00395 SoWidget &w,
00396 XtEventHandler &proc,
00397 XtPointer &clientData);
00398
00399 private:
00400 static SoWidget mainWidget;
00401 static bool m_internalApp;
00402 static SbBool m_canExit;
00403
00404 static SbPList *handlerList;
00405
00406
00407
00408 static SoWidget label[155];
00409
00410 static void localisationlabel(SoWidget parent);
00411
00412
00413 static SbConfig * config;
00414 static char * configFile;
00415 static SoMPRealizeCB *mpRealizeCB;
00416
00417
00418 static void setupInventorGLDisplay();
00419
00420 static int s_initRefCount;
00421 static const char *s_versionString;
00422 };
00423
00424 #endif
00425
00426 #endif // SOQT
00427
00428