QtCanpool 3.3.0
载入中...
搜索中...
未找到
dockpanel.h
浏览该文件的文档.
1
5#pragma once
6
7#include "qxdock/dockwidget.h"
8#include "qxdock_global.h"
9#include "qxmlstream.h"
10#include <QFrame>
11
12class QAbstractButton;
13
15
16class DockWindow;
17class DockContainer;
18class DockSplitter;
19class DockTitleBar;
20class DockAutoHideContainer;
21class DockStateReader;
22
23class DockPanelPrivate;
24
30class QX_DOCK_EXPORT DockPanel : public QFrame
31{
32 Q_OBJECT
33public:
34 using Super = QFrame;
35
37 HideSingleWidgetTitleBar = 0x0001,
38 DefaultFlags = 0x0000
39 };
40 Q_DECLARE_FLAGS(DockAreaFlags, DockAreaFlag)
41public:
42 explicit DockPanel(DockWindow *window, DockContainer *parent);
43 ~DockPanel();
44
45 DockWindow *dockWindow() const;
46 DockContainer *dockContainer() const;
47
48 DockSplitter *parentSplitter() const;
49
50 QRect titleBarGeometry() const;
51 QRect contentAreaGeometry() const;
52
53 int dockWidgetsCount() const;
54 QList<DockWidget *> dockWidgets() const;
55 int openDockWidgetsCount() const;
56 QList<DockWidget *> openedDockWidgets() const;
57 DockWidget *dockWidget(int index) const;
58
59 int currentIndex() const;
60
61 DockWidget *currentDockWidget() const;
62 void setCurrentDockWidget(DockWidget *w);
63
64 DockWidget::DockWidgetFeatures features(Qx::DockBitwiseOperator mode = Qx::DockBitwiseAnd) const;
65
66 QAbstractButton *titleBarButton(Qx::DockTitleBarButton which) const;
67
68 virtual void setVisible(bool visible) override;
69
70 Qx::DockWidgetAreas allowedAreas() const;
71 void setAllowedAreas(Qx::DockWidgetAreas areas);
72
73 DockTitleBar *titleBar() const;
74
75 DockAreaFlags dockAreaFlags() const;
76 void setDockAreaFlags(DockAreaFlags flags);
77 void setDockAreaFlag(DockAreaFlag flag, bool on);
78 bool isCentralWidgetArea() const;
79 bool containsCentralWidget() const;
80
81 bool isTopLevelArea() const;
82
83 DockAutoHideContainer *autoHideContainer() const;
84 void setAutoHideContainer(DockAutoHideContainer *container);
85 bool isAutoHide() const;
86
87 int indexOfFirstOpenDockWidget() const;
88
89 void saveState(QXmlStreamWriter &s) const;
90 static bool restoreState(DockStateReader &s, DockPanel *&createdWidget, bool testing,
91 DockContainer *parentContainer);
92
93 virtual QSize minimumSizeHint() const override;
94
95public Q_SLOTS:
96 void setCurrentIndex(int index);
97 void closeArea();
98 void closeOtherAreas();
99 void setAutoHide(bool enable, Qx::DockSideBarArea area = Qx::DockSideBarNone, int tabIndex = -1);
100 void toggleAutoHide(Qx::DockSideBarArea area = Qx::DockSideBarNone);
101 void setFloating();
102
103protected Q_SLOTS:
104 void toggleView(bool open);
105
106private Q_SLOTS:
107 void onTabCloseRequested(int index);
108 void reorderDockWidget(int fromIndex, int toIndex);
109 void updateAutoHideButtonCheckState();
110 void updateTitleBarButtonsToolTips();
111 Qx::DockSideBarArea calculateSideBarArea() const;
112 void onDockWidgetFeaturesChanged();
113
114Q_SIGNALS:
115 void currentChanging(int index);
116 void currentChanged(int index);
117 void viewToggled(bool open);
118 void tabBarClicked(int index);
119protected:
120 void addDockWidget(DockWidget *w);
121 void insertDockWidget(int index, DockWidget *w, bool activate = true);
122 void removeDockWidget(DockWidget *w);
123 DockWidget *nextOpenDockWidget(DockWidget *w) const;
124 void toggleDockWidgetView(DockWidget *w, bool open);
125 int indexOf(DockWidget *w) const;
126 void hideAreaWithNoVisibleContent();
127 void updateTitleBarVisibility();
128 void internalSetCurrentDockWidget(DockWidget *w);
129 void updateTitleBarButtonVisibility(bool isTopLevel);
130 void markTitleBarMenuOutdated();
131protected:
132#ifdef Q_OS_WIN
133 virtual bool event(QEvent *e) override;
134#endif
135private:
137 friend class DockContainerPrivate;
138 friend class DockWidget;
139 friend class DockWidgetPrivate;
140 friend class DockContainer;
142 friend class DockWindow;
143 friend class DockWindowPrivate;
144};
145
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 manages multiple instances of DockWidgets.
Definition dockpanel.h:31
void currentChanging(int index)
void viewToggled(bool open)
void tabBarClicked(int index)
void currentChanged(int index)
Extends QXmlStreamReader with file version information
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
DockSideBarArea
@ DockSideBarNone
DockBitwiseOperator
@ DockBitwiseAnd
DockTitleBarButton
#define QX_DECLARE_PRIVATE(Class)
#define QX_DOCK_END_NAMESPACE
#define QX_DOCK_BEGIN_NAMESPACE
#define QX_DOCK_EXPORT
QColor window