00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef OST_GUI_GL_WIN_HH
00020 #define OST_GUI_GL_WIN_HH
00021
00022
00023 #include <ost/gfx/scene_observer.hh>
00024
00025 #include <ost/gui/module_config.hh>
00026 #include <ost/gui/widget.hh>
00027
00028 #include <QGLFormat>
00029 #include <QActionGroup>
00030
00031 class QStatusBar;
00032 class QAction;
00033
00034
00035
00036
00037 namespace ost { namespace gui {
00038
00039
00040 class GLCanvas;
00041 class ToolBar;
00042 class Tool;
00043
00044 class DLLEXPORT_OST_GUI GLWin: public Widget, public gfx::SceneObserver
00045 {
00046 Q_OBJECT;
00047 public:
00048 GLWin(QWidget* p, bool try_stereo=false);
00049 ~GLWin();
00050 void SetTestMode(bool f);
00051
00052 signals:
00053 void ReleaseFocus();
00054
00055 public:
00056 virtual bool Restore(const QString& prefix);
00057 virtual bool Save(const QString& prefix);
00058
00059 public slots:
00060 void StatusMessage(const String& m);
00061 void ActiveToolChanged(Tool* t);
00062 private:
00063 static QGLFormat CreateFormat(int fid);
00064 GLCanvas* gl_canvas_;
00065
00066 QAction* edit_rigid_action_;
00067 QAction* edit_torsion_action_;
00068 QAction* edit_angle_action_;
00069 QAction* edit_rotamer_action_;
00070 QAction* smode_atom_action_;
00071 QAction* smode_residue_action_;
00072 QAction* smode_chain_action_;
00073
00074 ToolBar* toolbar_;
00075 QStatusBar* status_bar_;
00076 ToolBar* build_toolbar();
00077 };
00078
00079 }}
00080
00081 #endif
00082