00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef OST_GUI_GOSTY_APP_HH
00020 #define OST_GUI_GOSTY_APP_HH
00021
00022
00023
00024
00025
00026
00027 #include <ost/config.hh>
00028 #include <ost/gui/main.hh>
00029 #include <ost/gui/module_config.hh>
00030 #include <ost/gui/widget_geom_handler.hh>
00031
00032
00033 #include <QObject>
00034 #include <QString>
00035 #include <QMap>
00036
00037
00038 class QMainWindow;
00039 class QMdiArea;
00040 class QWidget;
00041
00042 namespace ost {
00043
00044
00045
00046
00047 namespace img {
00048
00049 class ImageHandle;
00050
00051 namespace gui {
00052 class DataViewer;
00053
00054 }}
00055
00056 namespace gui {
00057
00058 class PythonShell;
00059 class GLWin;
00060 class TextLogger;
00061 class ToolOptionsWin;
00062 class Perspective;
00063 class SequenceViewer;
00064 class SceneWin;
00065 class MessageWidget;
00066
00079 class DLLEXPORT_OST_GUI GostyApp : public QObject {
00080 Q_OBJECT
00081 public:
00087 PythonShell* GetPyShell();
00088
00093 GLWin* GetGLWin();
00094
00099 SceneWin* GetSceneWin();
00100
00105 SequenceViewer* GetSequenceViewer();
00106
00111 ToolOptionsWin* GetToolOptionsWin();
00112
00117 MessageWidget* GetMessageWidget();
00118
00122 void StopScript();
00123
00124 #if OST_IMG_ENABLED
00127 ost::img::gui::DataViewer* CreateDataViewer(const ost::img::ImageHandle& d, const QString& name="", const int noparent=0);
00128 #endif
00129
00131 void ProcessEvents();
00132
00137 Perspective* GetPerspective();
00138
00146 void AddWidgetToApp(const QString& ident, QWidget* widget);
00147
00148 QWidget* GetWidget(const QString& ident);
00153 void RemoveWidgetFromApp(const QString& ident);
00154
00158 static GostyApp* Instance();
00159
00162 void SetAppTitle(const QString& app_title);
00163
00165 void TryStereo(bool f) {try_stereo_=f;}
00166
00167 public slots:
00169 void OnQuit();
00170 private:
00171 GostyApp();
00172 PythonShell* py_shell_;
00173
00174 GLWin* gl_win_;
00175
00176 SceneWin* scene_win_;
00177
00178 MessageWidget* message_widget_;
00179
00180 SequenceViewer* seq_viewer_;
00181
00182 ToolOptionsWin* tool_options_win_;
00183 GostyMainWindow* main_;
00184
00185 Perspective* perspective_;
00186
00187 QMap<QString,WidgetGeomHandler *> external_widgets_;
00188
00189 bool try_stereo_;
00190
00191 static GostyApp* app_;
00192 };
00193
00194 }}
00195
00196 #endif