24 #include <QtCore/QMap>
25 #include <QtCore/QPair>
26 #include <QtGui/QWidget>
27 #include <QtCore/QAbstractItemModel>
28 #include <tulip/tulipconf.h>
29 #include <tulip/DataSet.h>
30 #include <tulip/WorkspaceExposeWidget.h>
32 class PlaceHolderWidget;
44 class GraphHierarchiesModel;
47 class TLP_QT_SCOPE Workspace:
public QWidget {
50 Q_PROPERTY(
bool bottomFrameVisible READ isBottomFrameVisible WRITE setBottomFrameVisible)
53 QList<WorkspacePanel*> _panels;
54 int _currentPanelIndex;
55 QWidget* _oldWorkspaceMode;
57 QMap<QWidget*,QVector<PlaceHolderWidget*> > _modeToSlots;
58 QMap<QWidget*,QWidget*> _modeSwitches;
59 tlp::GraphHierarchiesModel* _model;
61 QString panelTitle(tlp::WorkspacePanel*)
const;
63 QLabel* _pageCountLabel;
66 explicit Workspace(QWidget *parent = NULL);
70 QList<tlp::View*> panels()
const;
72 bool isBottomFrameVisible()
const;
76 void switchToStartupMode();
77 void switchToSingleMode();
78 void setSingleModeSwitch(QWidget*);
79 void switchToSplitMode();
80 void setSplitModeSwitch(QWidget*);
81 void switchToSplit3Mode();
82 void setSplit3ModeSwitch(QWidget*);
83 void switchToSplit32Mode();
84 void setSplit32ModeSwitch(QWidget*);
85 void switchToGridMode();
86 void setGridModeSwitch(QWidget*);
87 void switchToSixMode();
88 void setSixModeSwitch(QWidget*);
93 void showExposeMode();
94 void hideExposeMode();
97 void setModel(tlp::GraphHierarchiesModel*);
102 void setBottomFrameVisible(
bool);
103 void setPageCountLabel(QLabel* l);
105 void redrawPanels(
bool center=
false);
112 void viewNeedsDraw();
113 void switchWorkspaceMode(QWidget* page);
114 void panelDestroyed(QObject*);
115 void updatePageCountLabel();
116 void updateAvailableModes();
118 void uncheckExposeButton();
119 QWidget* suitableMode(QWidget* oldMode);
120 WorkspacePanel* panelForScene(QObject* obj);
121 void swapPanelsRequested(WorkspacePanel* panel);
124 virtual void dragEnterEvent(QDragEnterEvent* event);
125 virtual void dropEvent(QDropEvent* event);
127 bool handleDragEnterEvent(QEvent* e,
const QMimeData* mimedata);
128 bool handleDropEvent(
const QMimeData* mimedata);
130 bool eventFilter(QObject *, QEvent *);
132 QWidget* currentModeWidget()
const;
133 QVector<PlaceHolderWidget*> currentModeSlots()
const;
134 unsigned int currentSlotsCount()
const;
138 #endif // WORKSPACE_H