Changeset 717 for trunk/geant4/visualization/OpenGL
- Timestamp:
- Feb 7, 2008, 4:40:14 PM (17 years ago)
- Location:
- trunk/geant4/visualization/OpenGL
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/geant4/visualization/OpenGL/include/G4OpenGLQtViewer.hh
r713 r717 121 121 /** To ensure key event are keep one by one */ 122 122 bool holdKeyEvent; 123 QAction *fRotateAction; 124 QAction *fMoveAction; 125 QAction *fPickAction; 126 QAction *fShortcutsAction; 127 QAction *fFullScreenOn; 128 QAction *fFullScreenOff; 123 129 #if QT_VERSION < 0x040000 124 QPopupMenu *fMouseRotate;125 QPopupMenu *fMouseMove;126 QPopupMenu *fMousePick;127 QPopupMenu *fMouseShortcuts;128 130 QPopupMenu *fDrawingWireframe; 129 131 QPopupMenu *fDrawingLineRemoval; … … 131 133 QPopupMenu *fDrawingLineSurfaceRemoval; 132 134 #else 133 QAction *fMouseRotate;134 QAction *fMouseMove;135 QAction *fMousePick;136 QAction *fMouseShortcuts;137 135 QAction *fDrawingWireframe; 138 136 QAction *fDrawingLineRemoval; … … 161 159 void toggleHaloing(bool); 162 160 void toggleAux(bool); 163 void toggleFullScreen( );161 void toggleFullScreen(bool); 164 162 // Only use for Qt>4.0 165 163 // void dialogClosed(); -
trunk/geant4/visualization/OpenGL/src/G4OpenGLQtViewer.cc
r716 r717 323 323 #if QT_VERSION < 0x040000 324 324 QPopupMenu *mMouseAction = new QPopupMenu( fContextMenu ); 325 fContextMenu->insertItem("&Mouse actions"); 325 fContextMenu->insertItem("&Mouse actions",mMouseAction); 326 #if QT_VERSION < 0x030200 327 fRotateAction = new QAction("&Rotate","&Rotate",CTRL+Key_R,mMouseAction,0,true); 328 fMoveAction = new QAction("&Move","&Move",CTRL+Key_M,mMouseAction,0,true); 329 fPickAction = new QAction("&Pick","&Pick",CTRL+Key_P,mMouseAction,0,true); 330 fShortcutsAction = new QAction("&Show shortcuts","&Show shortcuts",CTRL+Key_S,mMouseAction,0,true); 331 #else 332 fRotateAction = new QAction("&Rotate",CTRL+Key_R,mMouseAction,0,true); 333 fMoveAction = new QAction("&Move",CTRL+Key_M,mMouseAction,0,true); 334 fPickAction = new QAction("&Pick",CTRL+Key_P,mMouseAction,0,true); 335 fShortcutsAction = new QAction("&Show shortcuts",CTRL+Key_S,mMouseAction,0,true); 336 #endif 337 fRotateAction->addTo(mMouseAction); 338 fMoveAction->addTo(mMouseAction); 339 fPickAction->addTo(mMouseAction); 340 fShortcutsAction->addTo(mMouseAction); 341 342 fRotateAction->setToggleAction(true); 343 fMoveAction->setToggleAction(true); 344 fPickAction->setToggleAction(true); 345 fShortcutsAction->setToggleAction(true); 346 347 fRotateAction->setOn(true); 348 fMoveAction->setOn(false); 349 fPickAction->setOn(false); 350 fShortcutsAction->setOn(false); 351 352 353 QObject ::connect(fRotateAction, 354 SIGNAL(activated()), 355 this, 356 SLOT(actionMouseRotate())); 357 358 QObject ::connect(fMoveAction, 359 SIGNAL(activated()), 360 this, 361 SLOT(actionMouseMove())); 362 363 QObject ::connect(fPickAction, 364 SIGNAL(activated()), 365 this, 366 SLOT(actionMousePick())); 367 368 QObject ::connect(fShortcutsAction, 369 SIGNAL(activated()), 370 this, 371 SLOT(actionMouseShortcuts())); 372 326 373 #else 327 374 QMenu *mMouseAction = fContextMenu->addMenu("&Mouse actions"); 328 #endif 329 330 #if QT_VERSION < 0x040000 331 // === Mouse menu === 332 333 mMouseAction->setCheckable(true); 334 335 fMouseRotate = new QPopupMenu(mMouseAction); 336 mMouseAction->insertItem("&Rotate",fMouseRotate); 337 fMouseRotate->setCheckable(true); 338 339 fMouseMove = new QPopupMenu(mMouseAction); 340 mMouseAction->insertItem("&Move",fMouseMove); 341 fMouseMove->setCheckable(true); 342 343 fMousePick = new QPopupMenu(mMouseAction); 344 mMouseAction->insertItem("&Pick",fMousePick); 345 fMousePick->setCheckable(true); 346 347 fMouseShortcuts = new QPopupMenu(mMouseAction); 348 mMouseAction->insertItem("&Show Shortcuts",fMouseShortcuts); 349 fMouseShortcuts->setCheckable(true); 350 351 #else 352 // === Mouse menu === 353 354 fMouseRotate = mMouseAction->addAction("Rotate"); 355 fMouseRotate->setCheckable(true); 356 357 fMouseMove = mMouseAction->addAction("Move"); 358 fMouseMove->setCheckable(true); 359 360 fMousePick = mMouseAction->addAction("Pick"); 361 fMousePick->setCheckable(true); 362 363 fMouseShortcuts = mMouseAction->addAction("Show Shortcuts"); 364 fMouseShortcuts->setCheckable(true); 365 #endif 366 367 // INIT mMouse 368 #if QT_VERSION < 0x040000 369 fMouseRotate->setItemChecked(0,true); 370 371 QObject ::connect(fMouseRotate, 372 SIGNAL(activated(int)), 373 this, 374 SLOT(actionMouseRotate())); 375 376 QObject ::connect(fMouseMove, 377 SIGNAL(activated(int)), 378 this, 379 SLOT(actionMouseMove())); 380 381 QObject ::connect(fMousePick, 382 SIGNAL(activated(int)), 383 this, 384 SLOT(actionMousePick())); 385 386 QObject ::connect(fMouseShortcuts, 387 SIGNAL(activated(int)), 388 this, 389 SLOT(actionMouseShortcuts())); 390 391 #else 392 fMouseRotate->setChecked(true); 393 394 QObject ::connect(fMouseRotate, 375 376 fRotateAction = mMouseAction->addAction("Rotate"); 377 fMoveAction = mMouseAction->addAction("Move"); 378 fPickAction = mMouseAction->addAction("Pick"); 379 fShortcutsAction = mMouseAction->addAction("Show shortcuts"); 380 381 fRotateAction->setCheckable(true); 382 fMoveAction->setCheckable(false); 383 fPickAction->setCheckable(false); 384 fShortcutsAction->setCheckable(false); 385 386 fRotateAction->setChecked(true); 387 fMoveAction->setChecked(false); 388 fPickAction->setChecked(false); 389 fShortcutsAction->setChecked(false); 390 391 QObject ::connect(fRotateAction, 395 392 SIGNAL(triggered(bool)), 396 393 this, 397 394 SLOT(actionMouseRotate())); 398 395 399 QObject ::connect(fMo useMove,396 QObject ::connect(fMoveAction, 400 397 SIGNAL(triggered(bool)), 401 398 this, 402 399 SLOT(actionMouseMove())); 403 400 404 QObject ::connect(f MousePick,401 QObject ::connect(fPickAction, 405 402 SIGNAL(triggered(bool)), 406 403 this, 407 404 SLOT(actionMousePick())); 408 405 409 QObject ::connect(f MouseShortcuts,406 QObject ::connect(fShortcutsAction, 410 407 SIGNAL(triggered(bool)), 411 408 this, … … 539 536 #endif 540 537 QObject ::connect(fDrawingWireframe, 541 SIGNAL(activated( int)),538 SIGNAL(activated()), 542 539 this, 543 540 SLOT(actionDrawingWireframe())); … … 546 543 #endif 547 544 QObject ::connect(fDrawingLineRemoval, 548 SIGNAL(activated( int)),545 SIGNAL(activated()), 549 546 this, 550 547 SLOT(actionDrawingLineRemoval())); 551 548 QObject ::connect(fDrawingSurfaceRemoval, 552 SIGNAL(activated( int)),549 SIGNAL(activated()), 553 550 this, 554 551 SLOT(actionDrawingSurfaceRemoval())); 555 552 QObject ::connect(fDrawingLineSurfaceRemoval, 556 SIGNAL(activated( int)),553 SIGNAL(activated()), 557 554 this, 558 555 SLOT(actionDrawingLineSurfaceRemoval())); … … 629 626 #else 630 627 QAction *createEPS = new QAction("&Save as ...",CTRL+Key_S,mActions); 631 createEPS->setToggleAction(true);632 628 #endif 633 629 createEPS->addTo(mActions); … … 778 774 779 775 #if QT_VERSION < 0x030200 780 QAction *fullOn = new QAction("&On","&On",CTRL+Key_O,mFullScreen,0,true);781 QAction *fullOff = new QAction("&Off","&Off",CTRL+Key_F,mFullScreen,0,true);782 #else 783 QAction *fullOn = new QAction("&On",CTRL+Key_O,mFullScreen);784 QAction *fullOff = new QAction("&Off",CTRL+Key_F,mFullScreen);785 f ullOn->setToggleAction(true);786 f ullOff->setToggleAction(true);787 #endif 788 f ullOn->addTo(mFullScreen);789 f ullOff->addTo(mFullScreen);776 fFullScreenOn = new QAction("&On","&On",CTRL+Key_O,mFullScreen,0,true); 777 fFullScreenOff = new QAction("&Off","&Off",CTRL+Key_F,mFullScreen,0,true); 778 #else 779 fFullScreenOn = new QAction("&On",CTRL+Key_O,mFullScreen); 780 fFullScreenOff = new QAction("&Off",CTRL+Key_F,mFullScreen); 781 fFullScreenOn->setToggleAction(true); 782 fFullScreenOff->setToggleAction(true); 783 #endif 784 fFullScreenOn->addTo(mFullScreen); 785 fFullScreenOff->addTo(mFullScreen); 790 786 #else 791 787 QMenu *mFullScreen = mSpecial->addMenu("&Full screen"); 792 QAction *fullOn = mFullScreen->addAction("On");793 QAction *fullOff = mFullScreen->addAction("Off");794 #endif 795 createRadioAction(f ullOn,fullOff,SLOT(toggleFullScreen()),2);788 fFullScreenOn = mFullScreen->addAction("On"); 789 fFullScreenOff = mFullScreen->addAction("Off"); 790 #endif 791 createRadioAction(fFullScreenOn,fFullScreenOff,SLOT(toggleFullScreen(bool)),2); 796 792 797 793 } … … 839 835 action2->setOn(true); 840 836 837 //FIXME : Should not work on Qt3 841 838 QObject ::connect(action1, SIGNAL(activated()),action2, SLOT(toggle())); 842 839 QObject ::connect(action2, SIGNAL(activated()),action1, SLOT(toggle())); … … 940 937 (aAction == STYLE4)) { 941 938 #if QT_VERSION < 0x040000 942 f MouseRotate->setItemChecked (0,false);943 fMo useMove->setItemChecked (0,false);944 f MousePick->setItemChecked (0,false);945 f MouseShortcuts->setItemChecked (0,false);946 #else 947 f MouseRotate->setChecked (false);948 fMo useMove->setChecked (false);949 f MousePick->setChecked (false);950 f MouseShortcuts->setChecked (false);939 fRotateAction->setOn (false); 940 fMoveAction->setOn (false); 941 fPickAction->setOn (false); 942 fShortcutsAction->setOn (false); 943 #else 944 fRotateAction->setChecked (false); 945 fMoveAction->setChecked (false); 946 fPickAction->setChecked (false); 947 fShortcutsAction->setChecked (false); 951 948 #endif 952 949 fVP.SetPicking(false); … … 958 955 G4cout << "Press left/right arrows to move volume left/right\n" << G4endl; 959 956 G4cout << "Press up/down arrows to move volume up/down\n" << G4endl; 960 G4cout << "Press CONTROL+up/down arrows to move volume toward/forward\n" << G4endl;957 G4cout << "Press ALT+up/down arrows to move volume toward/forward\n" << G4endl; 961 958 G4cout << "Press SHIFT+left/right arrows to rotate volume left/right\n" << G4endl; 962 959 G4cout << "Press SHIFT+up/down arrows to rotate volume up/down\n" << G4endl; 963 960 G4cout << "Press +/- to zoom into volume\n" << G4endl; 964 961 #if QT_VERSION < 0x040000 965 f MouseRotate->setItemChecked (0,true);966 #else 967 f MouseRotate->setChecked (true);962 fRotateAction->setOn (true); 963 #else 964 fRotateAction->setChecked (true); 968 965 #endif 969 966 } else if (aAction == STYLE2) { //move 970 967 G4cout << "Move camera point of view with mouse\n" << G4endl; 971 968 #if QT_VERSION < 0x040000 972 fMo useMove->setItemChecked (0,true);973 #else 974 fMo useMove->setChecked (true);969 fMoveAction->setOn (true); 970 #else 971 fMoveAction->setChecked (true); 975 972 #endif 976 973 } else if (aAction == STYLE3) { //pick 977 974 G4cout << "Click and pick \n" << G4endl; 978 975 #if QT_VERSION < 0x040000 979 f MousePick->setItemChecked (0,true);980 #else 981 f MousePick->setChecked (true);976 fPickAction->setOn (true); 977 #else 978 fPickAction->setChecked (true); 982 979 #endif 983 980 fVP.SetPicking(true); 984 981 } else if (aAction == STYLE4) { // display shortcuts 985 982 #if QT_VERSION < 0x040000 986 f MouseShortcuts->setItemChecked (0,true);987 #else 988 f MouseShortcuts->setChecked (true);983 fShortcutsAction->setOn (true); 984 #else 985 fShortcutsAction->setChecked (true); 989 986 #endif 990 987 … … 1259 1256 SLOT Activate by a click on the full screen menu 1260 1257 */ 1261 void G4OpenGLQtViewer::toggleFullScreen() { 1258 void G4OpenGLQtViewer::toggleFullScreen(bool check) { 1259 #ifdef GEANT4_QT_DEBUG 1260 printf("G4OpenGLQtViewer::toggleFullScreen checked:%d() \n",check); 1261 #endif 1262 if (check != GLWindow->isFullScreen()) { //toggle 1262 1263 #if QT_VERSION >= 0x030200 1263 GLWindow->setWindowState(GLWindow->windowState() ^ Qt::WindowFullScreen); 1264 #else 1265 G4cerr << "This version of G4UI Could not generate the selected format\n" << G4endl; 1266 #endif 1264 #if QT_VERSION < 0x040000 1265 GLWindow->setWindowState(GLWindow->windowState() ^ Qt::WindowFullScreen); 1266 // fFullScreenOn->setOn(check); 1267 // fFullScreenOff->setOn(!check); 1268 #else 1269 GLWindow->setWindowState(GLWindow->windowState() ^ Qt::WindowFullScreen); 1270 // fFullScreenOn->setChecked(check); 1271 // fFullScreenOff->setChecked(!check); 1272 #endif 1273 #else 1274 G4cerr << "This version of Qt could not do fullScreen. Resizing the widget is the only solution available.\n" << G4endl; 1275 #endif 1276 } 1267 1277 } 1268 1278 … … 1877 1887 } 1878 1888 if (event->key() == Qt::Key_Escape) { // escaped from full screen 1879 toggleFullScreen(); 1889 #if QT_VERSION >= 0x030200 1890 if (GLWindow->isFullScreen()) { 1891 #if QT_VERSION < 0x040000 1892 fFullScreenOn->activated(); 1893 #else 1894 fFullScreenOn->trigger(); 1895 #endif 1896 } 1897 #endif 1880 1898 } 1881 1899 if (event->key() == Qt::Key_Plus) { // zoom in
Note: See TracChangeset
for help on using the changeset viewer.