QtCanpool 3.3.0
载入中...
搜索中...
未找到
dockcontainer.h
浏览该文件的文档.
1
5#pragma once
6
7#include "qxdock_global.h"
8#include <QFrame>
9#include "dockwidget.h"
10
11class QSplitter;
12class QXmlStreamWriter;
13
15
16class DockWindow;
17class DockPanel;
18class DockWidget;
19class DockFloatingContainer;
20class DockSplitter;
21class DockAutoHideContainer;
22class DockSideBar;
23class DockStateReader;
24
25class DockContainerPrivate;
26
34class QX_DOCK_EXPORT DockContainer : public QFrame
35{
36 Q_OBJECT
37public:
38 using Super = QFrame;
39public:
40 explicit DockContainer(DockWindow *window, QWidget *parent = nullptr);
41 virtual ~DockContainer();
42
43 DockPanel *addDockWidget(Qx::DockWidgetArea area, DockWidget *w, DockPanel *p = nullptr, int index = -1);
44 void removeDockWidget(DockWidget *w);
45
46 virtual unsigned int zOrderIndex() const;
47 bool isInFrontOf(DockContainer *other) const;
48
49 DockWindow *dockWindow() const;
50 DockPanel *dockPanelAt(const QPoint &globalPos) const;
51 DockPanel *dockPanel(int index) const;
52
53 QList<DockPanel *> openedDockPanels() const;
54 QList<DockWidget *> openedDockWidgets() const;
55 bool hasOpenDockPanels() const;
56 bool hasTopLevelDockWidget() const;
57 int dockPanelCount() const;
58 int visibleDockPanelCount() const;
59
60 DockWidget::DockWidgetFeatures features() const;
61 bool isFloating() const;
62
63 DockFloatingContainer *floatingWidget() const;
64
65 void closeOtherAreas(DockPanel *keepOpenPanel);
66
67 DockSideBar *autoHideSideBar(Qx::DockSideBarArea area) const;
68 QList<DockAutoHideContainer *> autoHideWidgets() const;
69 QRect contentRect() const;
70
71Q_SIGNALS:
75 void dockAreaViewToggled(DockPanel *panel, bool open);
76protected:
77 DockSplitter *rootSplitter() const;
78 void createRootSplitter();
79 void addDockPanel(DockPanel *panel, Qx::DockWidgetArea area = Qx::CenterDockWidgetArea);
80 void removeDockPanel(DockPanel *panel);
81 QList<QPointer<DockPanel>> removeAllDockPanels();
82 DockWidget *topLevelDockWidget() const;
83 DockPanel *topLevelDockPanel() const;
84 DockPanel *lastAddedDockPanel(Qx::DockWidgetArea area) const;
85 QList<DockWidget *> dockWidgets() const;
86 void updateSplitterHandles(QSplitter *splitter);
87 void dropFloatingWidget(DockFloatingContainer *floatingWidget, const QPoint &targetPos);
88 void dropWidget(QWidget *widget, Qx::DockWidgetArea dropArea, DockPanel *targetPanel, int tabIndex = -1);
89
90 void createSideTabBarWidgets();
91 DockAutoHideContainer *createAndSetupAutoHideContainer(Qx::DockSideBarArea area, DockWidget *w, int tabIndex = -1);
92 void registerAutoHideWidget(DockAutoHideContainer *autoHideWidget);
93 void removeAutoHideWidget(DockAutoHideContainer *autoHideWidget);
94 void handleAutoHideWidgetEvent(QEvent *e, QWidget *w);
95
96 void saveState(QXmlStreamWriter &s) const;
97 bool restoreState(DockStateReader &s, bool testing);
98protected:
99 virtual bool event(QEvent *e) override;
100private:
102 friend class DockPanel;
104 friend class DockFloatingContainerPrivate;
105 friend class DockWidget;
108 friend class DockWindow;
109 friend class DockAutoHideContainerPrivate;
110 friend class DockSideBar;
111 friend class DockSideTabPrivate;
112 friend class DockWindowPrivate;
113};
114
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...
void autoHideWidgetCreated(DockAutoHideContainer *autoHideWidget)
void dockAreaViewToggled(DockPanel *panel, bool open)
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...
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
Extends QXmlStreamReader with file version information
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
DockSideBarArea
DockWidgetArea
@ CenterDockWidgetArea
#define QX_DECLARE_PRIVATE(Class)
#define QX_DOCK_END_NAMESPACE
#define QX_DOCK_BEGIN_NAMESPACE
#define QX_DOCK_EXPORT
QColor window