00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef SO_WX_FULL_VIEWER
00025 #define SO_WX_FULL_VIEWER
00026
00028
00029
00030
00032
00033 #include <Inventor/Wx/viewers/SoWxViewer.h>
00034
00035 #include <Inventor/SbPList.h>
00036 #include <Inventor/Gui/viewers/SoGuiFullViewer.h>
00037
00038 #define BASE_POPUP_MENU_ID wxID_HIGHEST+100
00039 #define LAYOUT_MGRWIDGET_ID 102
00040 #define LAYOUT_SUBMGRWIDGET_ID 103
00041
00042
00043 class SoFieldSensor;
00044 class SoStereoDialog;
00045 class SoGuiFullViewer;
00046 class SoRecordDialog;
00047
00049
00050
00051
00052
00053
00054
00055
00056
00058 class SoDEPRECATED SoWxFullViewer : public SoWxViewer
00082 {
00083 public:
00084
00086 enum BuildFlag
00087 {
00091 BUILD_NONE = 0x00,
00095 BUILD_DECORATION = 0x01,
00099 BUILD_POPUP = 0x02,
00103 BUILD_ALL = 0xff,
00104 };
00105
00113 void setDecoration( SbBool onOrOff );
00114
00118 SbBool isDecoration() { return m_guiFullViewer->isDecoration(); }
00119
00149 void setPopupMenuEnabled( SbBool trueOrFalse );
00150
00154 SbBool isPopupMenuEnabled() { return m_guiFullViewer->isPopupMenuEnabled(); }
00155
00159 void setClientPopupMenu( wxMenu* menu );
00160
00164 SbBool isClientPopupMenuInstalled() { return (ClientPopup!= NULL); }
00165
00169 wxPanel* getAppPushButtonParent() const { return appButtonForm; }
00170
00179 void addAppPushButton( wxButton* newButton );
00180
00189 void insertAppPushButton( wxButton* newButton, int index );
00190
00194 void removeAppPushButton( wxButton* oldButton );
00195
00199 int findAppPushButton( wxButton* oldButton ) { return m_appButtonList->find( oldButton ); }
00200
00204 int lengthAppPushButton() { return m_appButtonList->getLength(); }
00205
00209 wxPanel* getRenderAreaWidget() { return raWidget; }
00210
00211
00212 virtual void setViewing( SbBool onOrOff );
00213
00214 virtual void setCamera( SoCamera* cam );
00215 virtual void hide();
00216 virtual void setHeadlight( SbBool onOrOff );
00217 virtual void setDrawStyle( SoWxViewer::DrawType type, SoWxViewer::DrawStyle style );
00218 virtual void setBufferingType( SoWxViewer::BufferType type );
00219
00220
00221 SoStereoDialog* getStereoDialog() { return m_stereoDialogBox; }
00222 void setStereoDialog( SoStereoDialog* newDialog );
00223
00227 wxMenu* mainPopup;
00228
00232 wxMenu* funcPopup;
00233
00237 wxMenu* drawPopup;
00238
00242 wxMenu* prefPopup;
00243
00250 int curPopupDrawItem;
00251
00252
00253
00254
00255 int curPopupMoveItem;
00256
00257
00258
00259
00260 int curPopupBufferItem;
00261
00265 wxMenu* ClientPopup;
00266
00267 private:
00268 virtual ~SoWxFullViewer();
00269
00270 SoGuiFullViewer* getGuiFullViewer() const;
00271 void visibilityChangeCB( wxShowEvent& se );
00272
00273 private:
00274
00275 SoWxFullViewer( wxWindow* parent,
00276 const char* name,
00277 SbBool buildInsideParent,
00278 SoWxFullViewer::BuildFlag flag,
00279 SoWxViewer::Type type,
00280 SbBool buildNow,
00281 SbBool sync );
00282
00283 SoWxFullViewer( wxWindow* parent,
00284 const char* name,
00285 SbBool buildInsideParent,
00286 SoWxFullViewer::BuildFlag flag,
00287 SoWxViewer::Type type,
00288 SbBool buildNow,
00289 SbBool sync,
00290 SoGuiFullViewer* guiFullViewer );
00291
00292
00293 wxPanel* mgrWidget;
00294 wxPanel* raWidget;
00295 wxPanel* leftTrimForm, *bottomTrimForm, *rightTrimForm;
00296 wxPanel* subMgrWidget;
00297
00298
00299 wxPanel* zoomForm;
00300 wxTextCtrl* zoomField;
00301 wxSlider* zoomSlider;
00302 SoFieldSensor* zoomSensor;
00303
00304
00305 wxWindow* rightWheel, *bottomWheel, *leftWheel , *extraWheel;
00306
00307 wxPanel* extraTrimForm;
00308 float extraWheelVal;
00309 char* extraWheelStr;
00310 int extraLabelHeight;
00311 wxStaticText* extraWheelLabel;
00312
00313
00314
00315 wxPanel* vwrButtonForm;
00316
00317 char* rightWheelStr, *bottomWheelStr, *leftWheelStr;
00318 wxStaticText* rightWheelLabel, *bottomWheelLabel, *leftWheelLabel, *zoomLabel;
00319
00320
00321 SbPList* viewerButtonWidgets;
00322
00323 int numFullVwrButtons;
00324
00325
00326
00327
00328 virtual void pushButtonCB( int id );
00329
00330
00331
00332 wxPanel* getButtonWidget() const { return appButtonForm; }
00333
00334
00335 wxWindow* popupWidget, *popupToggleWidgets;
00336 wxWindow* drawStyleWidgets, *bufferStyleWidgets[3];
00337 char* popupTitle;
00338
00339
00340
00341
00342 wxPanel* buildWidget( wxWindow* parent );
00343
00344 virtual void buildDecoration();
00345 virtual wxPanel* buildLeftTrim( wxPanel* parent );
00346 virtual wxPanel* buildBottomTrim( wxPanel* parent );
00347 virtual wxPanel* buildRightTrim( wxPanel* parent );
00348 virtual wxPanel* buildZoomSlider( wxPanel* parent );
00349 wxPanel* buildAppButtons( wxPanel* parent );
00350 wxPanel* buildViewerButtons( wxPanel* parent );
00351 virtual void createViewerButtons( wxPanel* parent );
00352
00353
00354
00355
00356 virtual void buildPopupMenu();
00357 virtual void openStereoDialog();
00358 virtual void openRecordDialog();
00359
00360 virtual void destroyPopupMenu();
00361 void setPopupMenuString( const char* name );
00362 wxWindow* buildFunctionsSubmenu( wxWindow* popup );
00363 wxWindow* buildDrawStyleSubmenu( wxWindow* popup );
00364
00365
00366 virtual void displayPopupMenu();
00367
00368
00369
00370
00371 virtual void rightWheelMotion( float );
00372 virtual void bottomWheelMotion( float );
00373 virtual void leftWheelMotion( float );
00374
00375
00376
00377
00378 virtual void rightWheelStart();
00379 virtual void bottomWheelStart();
00380 virtual void leftWheelStart();
00381 virtual void rightWheelFinish();
00382 virtual void bottomWheelFinish();
00383 virtual void leftWheelFinish();
00384
00385
00386
00387
00388 void setBottomWheelString( const char* name );
00389 void setLeftWheelString( const char* name );
00390 void setRightWheelString( const char* name );
00391
00392
00393
00394
00395
00396 virtual void openViewerHelpCard();
00397
00398
00399 virtual void afterRealizeHook();
00400
00401 private:
00402 wxPanel* appButtonForm;
00403
00404 int SO_WHEEL_DELTA;
00405
00406 virtual void setSeekButton( SbBool onOff );
00407
00408
00409 wxBitmap IDB_PUSH_PICK;
00410 wxBitmap IDB_PUSH_VIEW;
00411 wxBitmap IDB_PUSH_HELP;
00412 wxBitmap IDB_PUSH_HOME;
00413 wxBitmap IDB_PUSH_SETHOME;
00414 wxBitmap IDB_PUSH_VIEWALL;
00415 wxBitmap IDB_PUSH_SEEK;
00416 wxBitmap IDB_PUSH_GRAYSEEK;
00417
00418
00419
00420 enum Functions
00421 {
00422 IDM_DPOPUP_FHOME = BASE_POPUP_MENU_ID,
00423 IDM_DPOPUP_FSHOME,
00424 IDM_DPOPUP_FVALL,
00425 IDM_DPOPUP_FSEEK
00426 };
00427
00428
00429 enum Style
00430 {
00431 IDM_DPOPUP_ASIS = BASE_POPUP_MENU_ID + 4,
00432 IDM_DPOPUP_HLINE,
00433 IDM_DPOPUP_NOTEX,
00434 IDM_DPOPUP_LOWRES,
00435 IDM_DPOPUP_WIRE,
00436 IDM_DPOPUP_POINTS,
00437 IDM_DPOPUP_BBOX
00438 };
00439
00440
00441 enum MoveStyle
00442 {
00443 IDM_DPOPUP_MSAMEAS = BASE_POPUP_MENU_ID + 11,
00444 IDM_DPOPUP_MNOTEX,
00445 IDM_DPOPUP_MLOWRES,
00446 IDM_DPOPUP_MWIRE,
00447 IDM_DPOPUP_MPOINTS,
00448 IDM_DPOPUP_MBBOX
00449 };
00450
00451
00452 enum Buffer
00453 {
00454 IDM_DPOPUP_SBUFFER = BASE_POPUP_MENU_ID + 18,
00455 IDM_DPOPUP_DBUFFER,
00456 IDM_DPOPUP_IBUFFER
00457 };
00458
00459
00460 enum Menu
00461 {
00462 IDM_PPOPUP_SEEK = BASE_POPUP_MENU_ID + 20,
00463 IDM_PPOPUP_CLIP,
00464 IDM_PPOPUP_SPIN,
00465 IDM_PPOPUP_INTERACTIVE,
00466 IDM_PPOPUP_AXES,
00467 IDM_PPOPUP_STEREO,
00468 IDM_PPOPUP_FSAA,
00469 IDM_PPOPUP_RECORDING
00470 };
00471
00472
00473 enum MainPopup
00474 {
00475 IDM_MPOPUP_VIEWING = BASE_POPUP_MENU_ID + 27,
00476 IDM_MPOPUP_DECORAT,
00477 IDM_MPOPUP_FULLSCREEN,
00478 IDM_MPOPUP_HLIGHT
00479 };
00480
00481 #ifndef HIDDEN_FROM_DOC
00482 private:
00483
00484 void leftWheelDrag( wxCommandEvent& ce );
00485 void leftWheelOther( wxCommandEvent& ce );
00486 void rightWheelDrag( wxCommandEvent& ce );
00487 void rightWheelOther( wxCommandEvent& ce );
00488 void bottomWheelDrag( wxCommandEvent& ce );
00489 void bottomWheelOther( wxCommandEvent& ce );
00490
00491 void slotPushPickButton( wxCommandEvent& ce );
00492 void slotPushViewButton( wxCommandEvent& ce );
00493 void slotPushHelpButton( wxCommandEvent& ce );
00494 void slotPushHomeButton( wxCommandEvent& ce );
00495 void slotPushSetHomeButton( wxCommandEvent& ce );
00496 void slotPushViewAllButton( wxCommandEvent& ce );
00497 void slotPushSeekButton( wxCommandEvent& ce );
00498
00499
00500 void slot_popup_home( wxCommandEvent& ce );
00501 void slot_popup_setHome( wxCommandEvent& ce );
00502 void slot_popup_viewAll( wxCommandEvent& ce );
00503 void slot_popup_seek( wxCommandEvent& ce );
00504
00505
00506 void slot_popup_seekToPoint( wxCommandEvent& ce );
00507 void slot_popup_clip( wxCommandEvent& ce );
00508 void slot_popup_interactive( wxCommandEvent& ce );
00509 void slot_popup_stereo( wxCommandEvent& ce );
00510 void slot_popup_fsaa( wxCommandEvent& ce );
00511 void slot_popup_recording( wxCommandEvent& ce );
00512
00513
00514 void slot_popup_viewing( wxCommandEvent& ce );
00515 void slot_popup_decoration( wxCommandEvent& ce );
00516 void slot_popup_fullscreen( wxCommandEvent& ce );
00517 void slot_popup_headLight( wxCommandEvent& ce );
00518
00519
00520 void slot_popup_asIs( wxCommandEvent& ce );
00521 void slot_popup_hiddenLine( wxCommandEvent& ce );
00522 void slot_popup_noTexture( wxCommandEvent& ce );
00523 void slot_popup_lowResolution( wxCommandEvent& ce );
00524 void slot_popup_wireFrame( wxCommandEvent& ce );
00525 void slot_popup_points( wxCommandEvent& ce );
00526 void slot_popup_boundingBox( wxCommandEvent& ce );
00527 void slot_popup_moveSameAsStill( wxCommandEvent& ce );
00528 void slot_popup_moveNoTexture( wxCommandEvent& ce );
00529 void slot_popup_moveLowRes( wxCommandEvent& ce );
00530 void slot_popup_moveWireFrame( wxCommandEvent& ce );
00531 void slot_popup_movePoints( wxCommandEvent& ce );
00532 void slot_popup_moveBoundingBox( wxCommandEvent& ce );
00533 void slot_popup_singleBuffer( wxCommandEvent& ce );
00534 void slot_popup_doubleBuffer( wxCommandEvent& ce );
00535 void slot_popup_interactiveBuffer( wxCommandEvent& ce );
00536
00537 #endif // HIDDEN_FROM_DOC
00538
00539 private:
00540
00541 void constructorCommon( SoWxFullViewer::BuildFlag buildFlag, SbBool buildNow );
00542
00543 SoGuiFullViewer* m_guiFullViewer;
00544
00545 SbBool m_firstBuild;
00546 SbBool m_seekState;
00547
00548
00549 SbPList* m_appButtonList;
00550 void doAppButtonLayout( int start, wxButton* newButton );
00551
00552 SoStereoDialog* m_stereoDialogBox;
00553 SoRecordDialog* m_recordDialogBox;
00554
00555
00556 SbVec2f m_zoomSldRange;
00557 void setCameraZoom( float zoom );
00558 float getCameraZoom();
00559 void setZoomSliderPosition( float zoom );
00560 void setZoomFieldString( float zoom );
00561
00562 static void zoomSensorCB( void* data, SoSensor* sensor );
00563
00564
00565 wxControl* m_buttonList[10];
00566
00567 void UPDATE_CHECKMARK( int _curItem, int item );
00568
00569 void zoomSliderCB( wxCommandEvent& ce );
00570 void textChangedSlot( wxEvent& e );
00571 void setNum( int value );
00572 void slot_internalStereoDialogDestroyed( wxCommandEvent& ce );
00573 void slot_internalRecordDialogDestroyed( wxCommandEvent& ce );
00574 void slot_externalStereoDialogDestroyed( wxCommandEvent& ce );
00575 };
00576
00577 #endif // SO_WX_FULL_VIEWER
00578
00579
00580