QtCanpool 3.3.0
载入中...
搜索中...
未找到
dockwindow.h
浏览该文件的文档.
1
5#pragma once
6
7#include "qxdock_global.h"
8#include "dockcontainer.h"
9#include "dockwidget.h"
10
11class QSettings;
12
14
15class DockPanel;
16class DockWidget;
17class DockFloatingContainer;
18class DockOverlay;
19class DockContainer;
20class DockFocusController;
21class DockAutoHideContainer;
22
23class DockWindowPrivate;
24
36{
37 Q_OBJECT
38public:
40public:
41 explicit DockWindow(QWidget *parent = nullptr);
42 virtual ~DockWindow();
43
44 DockPanel *addDockWidget(Qx::DockWidgetArea area, DockWidget *w, DockPanel *p = nullptr, int index = -1);
45 DockPanel *addDockWidgetTab(Qx::DockWidgetArea area, DockWidget *w);
46 DockPanel *addDockWidgetTab(DockWidget *w, DockPanel *p, int index = -1);
47 DockPanel *addDockWidgetToContainer(Qx::DockWidgetArea area, DockWidget *w, DockContainer *container);
49 DockWidget *findDockWidget(const QString &objectName) const;
50
51 DockAutoHideContainer *addAutoHideDockWidget(Qx::DockSideBarArea area, DockWidget *w);
52 DockAutoHideContainer *addAutoHideDockWidgetToContainer(Qx::DockSideBarArea area, DockWidget *w,
53 DockContainer *container);
54
55 DockFloatingContainer *addDockWidgetFloating(DockWidget *w);
56
57 const QList<DockContainer *> dockContainers() const;
58 QMap<QString, DockWidget *> dockWidgetsMap() const;
59
60 DockWidget *centralWidget() const;
61 DockPanel *setCentralWidget(DockWidget *widget);
62
63 bool isLeavingMinimizedState() const;
64
65 Qt::ToolButtonStyle dockWidgetToolBarStyle(DockWidget::State state) const;
66 void setDockWidgetToolBarStyle(Qt::ToolButtonStyle style, DockWidget::State state);
67 QSize dockWidgetToolBarIconSize(DockWidget::State state) const;
68 void setDockWidgetToolBarIconSize(const QSize &iconSize, DockWidget::State state);
69
70 DockWidget::DockWidgetFeatures globallyLockedDockWidgetFeatures() const;
71 void lockDockWidgetFeaturesGlobally(DockWidget::DockWidgetFeatures features = DockWidget::GloballyLockableFeatures);
72
73 QList<int> splitterSizes(DockPanel *panel) const;
74 void setSplitterSizes(DockPanel *panel, const QList<int> &sizes);
75
76 QByteArray saveState(int version = 0) const;
77 bool restoreState(const QByteArray &state, int version = 0);
78 bool isRestoringState() const;
79
80 void addPerspective(const QString &uniquePrespectiveName);
81 void removePerspective(const QString &name);
82 void removePerspectives(const QStringList &names);
83 QStringList perspectiveNames() const;
84 void savePerspectives(QSettings &settings) const;
85 void loadPerspectives(QSettings &settings);
86
87Q_SIGNALS:
98 void openingPerspective(const QString &perspectiveName);
99 void perspectiveOpened(const QString &perspectiveName);
100
101public Q_SLOTS:
102 void setDockWidgetFocused(DockWidget *w);
103 void endLeavingMinimizedState();
104 void openPerspective(const QString &perspectiveName);
105 void hideWindowAndFloatingWidgets();
106protected:
107 void registerDockContainer(DockContainer *container);
108 void removeDockContainer(DockContainer *container);
109 void registerFloatingWidget(DockFloatingContainer *floatingWidget);
110 void removeFloatingWidget(DockFloatingContainer *floatingWidget);
111
112 DockOverlay *containerOverlay() const;
113 DockOverlay *panelOverlay() const;
114
115 void notifyDockAreaRelocation(QWidget *droppedWidget);
116 void notifyFloatingWidgetDrop(DockFloatingContainer *floatingWidget);
117
118 DockFocusController *dockFocusController() const;
119
120 void restoreHiddenFloatingWidgets();
121protected:
122 bool eventFilter(QObject *obj, QEvent *e) override;
123 virtual void showEvent(QShowEvent *e) override;
124private:
126 friend class DockContainer;
127 friend class DockContainerPrivate;
129 friend class DockFloatingContainerPrivate;
130 friend class DockTitleBar;
132 friend class DockFloatingPreviewPrivate;
133 friend class DockTabPrivate;
134 friend class DockSideBar;
135 friend class DockSideTabPrivate;
136};
137
Auto hide container for hosting an auto hide dock widget
Container that manages a number of dock panels with single dock widgets or tabyfied dock widgets in e...
DockPanel * addDockWidget(Qx::DockWidgetArea area, DockWidget *w, DockPanel *p=nullptr, int index=-1)
Adds dockwidget into the given area.
void saveState(QXmlStreamWriter &s) const
void removeDockWidget(DockWidget *w)
bool restoreState(DockStateReader &s, bool testing)
This implements a floating widget that is a dock container that accepts docking of dock widgets like ...
A floating overlay is a temporary floating widget that is just used to indicate the floating widget m...
Manages focus styling of dock widgets and handling of focus changes
DockOverlay paints a translucent rectangle over another widget.
Definition dockoverlay.h:19
DockPanel manages multiple instances of DockWidgets.
Definition dockpanel.h:31
Side tab bar widget that is shown at the edges of a dock container.
Definition docksidebar.h:32
Title bar of a dock panel.
The DockWidget class provides a widget that can be docked inside a DockWindow or floated as a top-lev...
Definition dockwidget.h:31
The central dock window that maintains the complete docking system.
Definition dockwindow.h:36
void perspectiveListChanged()
void dockWidgetAboutToBeRemoved(DockWidget *w)
void dockWidgetAdded(DockWidget *w)
void dockWidgetRemoved(DockWidget *w)
void floatingWidgetCreated(DockFloatingContainer *floatingWidget)
void perspectiveOpened(const QString &perspectiveName)
void perspectiveListLoaded()
void perspectivesRemoved()
void focusedDockWidgetChanged(DockWidget *old, DockWidget *now)
void openingPerspective(const QString &perspectiveName)
DockSideBarArea
DockWidgetArea
#define QX_DECLARE_PRIVATE(Class)
#define QX_DOCK_END_NAMESPACE
#define QX_DOCK_BEGIN_NAMESPACE
#define QX_DOCK_EXPORT
const char * name
Definition qxtheme.cpp:25