12 #ifndef CXMAINWINDOW_H_
13 #define CXMAINWINDOW_H_
15 #include "cxGuiExport.h"
17 #include <QMainWindow>
20 #include "boost/shared_ptr.hpp"
34 class GUIExtenderService;
36 class DynamicMainWindowWidgets;
37 class MainWindowActions;
63 virtual QMenu* createPopupMenu();
66 void patientChangedSlot();
71 void preferencesSlot(
int currentTabIndex = 0);
72 void toggleFullScreenSlot();
74 void showControlPanelActionSlot();
75 void showSecondaryViewLayoutWindowActionSlot();
78 void onApplicationStateChangedSlot();
81 void onWorkflowStateChangedSlot();
82 void saveDesktopSlot();
83 void resetDesktopSlot();
86 void onShowContextSentitiveHelp();
88 void dockWidgetVisibilityChanged(
bool val);
89 void focusChanged(QWidget * old, QWidget * now);
96 void changeEvent(QEvent * event);
99 void focusInsideDockWidget(QObject* dockWidget);
101 void updateWindowTitle();
102 void createActions();
104 void createToolBars();
106 QToolBar *registerToolBar(QString name, QString groupname=
"Toolbars");
107 void setupGUIExtenders();
109 void closeEvent(QCloseEvent *event);
110 QDockWidget* addAsDockWidget(QWidget* widget, QString groupname);
114 QMenu* mWorkflowMenu;
117 QMenu* mNavigationMenu;
119 QAction* mHelpMenuAction;
122 QAction* mAboutAction;
123 QAction* mPreferencesAction;
124 QAction* mPreferencesToolConfigAction;
125 QAction* mFullScreenAction;
126 QAction* mQuitAction;
128 QAction* mShowControlPanelAction;
129 QAction* mSecondaryViewLayoutWindowAction;
131 QActionGroup* mStandard3DViewActions;
133 QAction* mShowContextSensitiveHelpAction;
134 QActionGroup* mInteractorStyleActionGroup;
137 QAction* mSaveDesktopAction;
138 QAction* mResetDesktopAction;
141 QToolBar* mDataToolBar;
142 QToolBar* mToolToolBar;
143 QToolBar* mNavigationToolBar;
144 QToolBar* mInteractorStyleToolBar;
145 QToolBar* mWorkflowToolBar;
146 QToolBar* mDesktopToolBar;
147 QToolBar* mHelpToolBar;
148 QToolBar* mScreenshotToolBar;
150 boost::shared_ptr<ServiceTrackerListener<GUIExtenderService> > mServiceListener;
153 QPointer<class SecondaryMainWindow> mControlPanel;
154 QPointer<class SecondaryViewLayoutWindow> mSecondaryViewLayoutWindow;
155 QMap<QString, QPointer<class SecondaryMainWindow> > mSecondaryMainWindows;
156 QMap<QString, QPointer<QAction> > mSecondaryMainWindowsActions;
162 void createActionForWidgetInSeparateWindow(QWidget *widget);