28 #include <tulip/tulipconf.h>
30 class PlaceHolderWidget;
45 class GraphHierarchiesModel;
48 class TLP_QT_SCOPE Workspace:
public QWidget {
51 Q_PROPERTY(
bool bottomFrameVisible READ isBottomFrameVisible WRITE setBottomFrameVisible)
54 QList<WorkspacePanel*> _panels;
55 int _currentPanelIndex;
56 QWidget* _oldWorkspaceMode;
57 WorkspacePanel* _focusedPanel;
58 bool _focusedPanelHighlighting;
60 QMap<QWidget*,QVector<PlaceHolderWidget*> > _modeToSlots;
61 QMap<QWidget*,QWidget*> _modeSwitches;
62 GraphHierarchiesModel* _model;
64 QString panelTitle(WorkspacePanel*)
const;
66 QLabel* _pageCountLabel;
67 bool _autoCenterViews;
70 explicit Workspace(QWidget *parent = NULL);
74 QList<tlp::View*> panels()
const;
76 bool isBottomFrameVisible()
const;
80 void switchToStartupMode();
81 void switchToSingleMode();
82 void setSingleModeSwitch(QWidget*);
83 void switchToSplitMode();
84 void setSplitModeSwitch(QWidget*);
85 void switchToSplitHorizontalMode();
86 void setSplitHorizontalModeSwitch(QWidget*);
87 void switchToSplit3Mode();
88 void setSplit3ModeSwitch(QWidget*);
89 void switchToSplit32Mode();
90 void setSplit32ModeSwitch(QWidget*);
91 void switchToSplit33Mode();
92 void setSplit33ModeSwitch(QWidget*);
93 void switchToGridMode();
94 void setGridModeSwitch(QWidget*);
95 void switchToSixMode();
96 void setSixModeSwitch(QWidget*);
100 void setExposeModeSwitch(QPushButton *);
102 void showExposeMode();
103 void hideExposeMode();
106 void setModel(tlp::GraphHierarchiesModel*);
107 tlp::GraphHierarchiesModel* graphModel()
const;
112 void setBottomFrameVisible(
bool);
113 void setPageCountLabel(QLabel* l);
115 void redrawPanels(
bool center=
false);
117 void setAutoCenterPanelsOnDraw(
bool);
119 void setFocusedPanelHighlighting(
bool);
125 void focusedPanelSynchronized();
127 void importGraphRequest();
130 void viewNeedsDraw();
131 void switchWorkspaceMode(QWidget* page);
132 void panelDestroyed(QObject*);
133 void updatePageCountLabel();
134 void updateAvailableModes();
136 void uncheckExposeButton();
137 QWidget* suitableMode(QWidget* oldMode);
138 WorkspacePanel* panelForScene(QObject* obj);
139 void swapPanelsRequested(WorkspacePanel* panel);
140 void updateStartupMode();
141 void changeFocusedPanelSynchronization(
bool);
145 virtual void dragEnterEvent(QDragEnterEvent* event);
146 virtual void dropEvent(QDropEvent* event);
148 bool handleDragEnterEvent(QEvent* e,
const QMimeData* mimedata);
149 bool handleDropEvent(
const QMimeData* mimedata);
151 bool eventFilter(QObject *, QEvent *);
153 QWidget* currentModeWidget()
const;
154 QVector<PlaceHolderWidget*> currentModeSlots()
const;
155 unsigned int currentSlotsCount()
const;
157 void setFocusedPanel(WorkspacePanel* panel);
161 #endif // WORKSPACE_H
The TulipProject object handles the content of a Tulip project.
PluginProcess subclasses are meant to notify about the progress state of some process (typically a pl...
View plugins provide a way to dynamically add to a Tulip plateform various ways to visualize a graph...