00001 #ifndef IGUANA_STUDIO_IG_PAGE_H
00002 # define IGUANA_STUDIO_IG_PAGE_H
00003
00004
00005
00006 # include "Iguana/Studio/interface/config.h"
00007 # include "Iguana/Studio/interface/IgQHSplitterSite.h"
00008 # include <qobject.h>
00009 # include <list>
00010
00011
00012
00013
00014
00015 class IgDocument;
00016 class QGridLayout;
00017 class IgView;
00018 class IgQtSiteStack;
00019
00020
00021
00022
00023
00024 class IGUANA_STUDIO_API IgPage : public QObject, public IgQHSplitterSite
00025 {
00026 Q_OBJECT
00027 public:
00028 static const int MENU_ID_FILE_NEW = 150;
00029 static const int MENU_ID_WINDOW = 5000;
00030 static const int MENU_ID_WINDOW_TILE = 5001;
00031 static const int MENU_ID_WINDOW_CASCADE = 5002;
00032 static const int MENU_ID_WINDOW_SEP = 5003;
00033 static const int MENU_ID_WINDOW_MAXIMIZE = 5004;
00034 static const int MENU_ID_WINDOW_FULLSCREEN = 5005;
00035 static const int MENU_ID_WINDOW_LIST_OFFSET = 6000;
00036
00037 IgPage (IgDocument *doc);
00038
00039
00040
00041
00042 IgQtSiteStack *workspace (void);
00043 IgQtSite *leftDockArea (void);
00044 IgQtSite *rightDockArea (void);
00045 IgQtSite *bottomDockArea (void);
00046 IgQtSiteStack *stackArea (void);
00047
00048 virtual IgState * state (void) const;
00049 void registerView (IgView *view,
00050 QWidget *selectableWidget);
00051 void printViews (const QString &text);
00052
00053 public slots:
00054 void showMaximized (void);
00055 void showFullScreen (void);
00056
00057 signals:
00058 void autoPrint (const QString &text);
00059
00060 private:
00061 IgDocument *m_document;
00062 QGridLayout *m_layout;
00063 IgQtSite *m_leftDockArea;
00064 IgQtSiteStack *m_stackArea;
00065 IgQtSite *m_centralSplitter;
00066 IgQtSiteStack *m_workspace;
00067 IgQtSite *m_bottomDockArea;
00068 IgQtSite *m_rightDockArea;
00069
00070 std::map<QWidget *, IgView*> m_views;
00071 int m_numRegisteredWindows;
00072 };
00073
00074
00075
00076
00077 #endif // IGUANA_STUDIO_IG_PAGE_H