QtCanpool 3.3.0
载入中...
搜索中...
未找到
dockoverlay.h
浏览该文件的文档.
1
5#pragma once
6
7#include "qxdock_global.h"
8#include <QFrame>
9
11
12class DockOverlayPrivate;
13
18class QX_DOCK_EXPORT DockOverlay : public QFrame
19{
20 Q_OBJECT
21public:
22 using Super = QFrame;
23
26 ContainerOverlayMode
27 };
28public:
29 explicit DockOverlay(QWidget *parent, OverlayMode mode = PanelOverlayMode);
30 virtual ~DockOverlay();
31
32 void setAllowedAreas(Qx::DockWidgetAreas areas);
33 void setAllowedArea(Qx::DockWidgetArea area, bool enable);
34 Qx::DockWidgetAreas allowedAreas() const;
35 Qx::DockWidgetArea dropAreaUnderCursor();
36 int tabIndexUnderCursor() const;
37
38 Qx::DockWidgetArea visibleDropAreaUnderCursor();
39
40 Qx::DockWidgetArea showOverlay(QWidget *target);
41 void hideOverlay();
42
43 void enableDropPreview(bool enable);
44
45 QRect dropOverlayRect() const;
46protected:
47 virtual bool event(QEvent *e) override;
48 virtual void paintEvent(QPaintEvent *e) override;
49 virtual void showEvent(QShowEvent *e) override;
50 virtual void hideEvent(QHideEvent *e) override;
51private:
53};
54
55class DockOverlayCrossPrivate;
80class QX_DOCK_EXPORT DockOverlayCross : public QWidget
81{
82 Q_OBJECT
83 Q_PROPERTY(QString iconColors READ iconColors WRITE setIconColors)
84 Q_PROPERTY(QColor iconFrameColor READ iconColor WRITE setIconFrameColor)
85 Q_PROPERTY(QColor iconBackgroundColor READ iconColor WRITE setIconBackgroundColor)
86 Q_PROPERTY(QColor iconOverlayColor READ iconColor WRITE setIconOverlayColor)
87 Q_PROPERTY(QColor iconArrowColor READ iconColor WRITE setIconArrowColor)
88 Q_PROPERTY(QColor iconShadowColor READ iconColor WRITE setIconShadowColor)
89public:
98 NIconColors = 5
99 };
100public:
102 virtual ~DockOverlayCross();
103
104 QColor iconColor(IconColor colorIndex) const;
105 void setIconColor(IconColor colorIndex, const QColor &color);
106
107 Qx::DockWidgetArea cursorLocation() const;
108
109 void setupOverlayCross(DockOverlay::OverlayMode mode);
110
111 void updateOverlayIcons();
112
113 void reset();
114
115 void updatePosition();
116
117 void setIconColors(const QString &colors);
118protected:
119 QString iconColors() const;
120 QColor iconColor() const
121 {
122 return QColor();
123 }
124 void setIconFrameColor(const QColor &color)
125 {
126 setIconColor(FrameColor, color);
127 }
128 void setIconBackgroundColor(const QColor &color)
129 {
130 setIconColor(WindowBackgroundColor, color);
131 }
132 void setIconOverlayColor(const QColor &color)
133 {
134 setIconColor(OverlayColor, color);
135 }
136 void setIconArrowColor(const QColor &color)
137 {
138 setIconColor(ArrowColor, color);
139 }
140 void setIconShadowColor(const QColor &color)
141 {
142 setIconColor(ShadowColor, color);
143 }
144
145 void setAreaWidgets(const QHash<Qx::DockWidgetArea, QWidget *> &widgets);
146protected:
147 virtual void showEvent(QShowEvent *e) override;
148private:
150};
151
DockOverlayCross shows a cross with 5 different drop area possibilities.
Definition dockoverlay.h:81
@ WindowBackgroundColor
the background color of the small window in the icon
Definition dockoverlay.h:92
@ FrameColor
the color of the frame of the small window icon
Definition dockoverlay.h:91
@ OverlayColor
the color that shows the overlay (the dock side) in the icon
Definition dockoverlay.h:93
@ ArrowColor
the arrow that points into the direction
Definition dockoverlay.h:94
QColor iconColor() const
void setIconShadowColor(const QColor &color)
void setIconFrameColor(const QColor &color)
void setIconBackgroundColor(const QColor &color)
void setIconArrowColor(const QColor &color)
void setIconOverlayColor(const QColor &color)
DockOverlay paints a translucent rectangle over another widget.
Definition dockoverlay.h:19
DockWidgetArea
#define QX_DECLARE_PRIVATE(Class)
#define QX_DOCK_END_NAMESPACE
#define QX_DOCK_BEGIN_NAMESPACE
#define QX_DOCK_EXPORT