6 #ifndef SWIFT_GUI_DOCKWIDGET_H
7 #define SWIFT_GUI_DOCKWIDGET_H
57 void setOriginalTitleBar();
60 void setEmptyTitleBar();
63 void setNullTitleBarWidget();
69 QString windowTitleOrBackup()
const;
79 bool isWidgetVisible()
const;
85 void showTitleWhenDocked(
bool show);
88 void resetWasAlreadyFloating();
94 void setPreferredSizeWhenFloating(
const QSize &size);
97 void setOffsetWhenFloating(
const QPoint &point,
bool frameless);
100 virtual void setFrameless(
bool frameless)
override;
103 void toggleFloating();
106 void toggleVisibility();
109 void toggleFrameless();
115 void windowAlwaysOnTop();
118 void windowNotAlwaysOnTop();
124 bool restoreFromSettings();
127 void saveCurrentStateToSettings();
130 void resetSettings();
133 void resetPosition();
136 void setWindowTitle(
const QString &title);
145 static const QString &propertyOuterWidget();
148 static const QString &propertyInnerWidget();
165 CDockWidget(
bool allowStatusBar, QWidget *parent =
nullptr);
171 void setMarginsWhenFloating(
const QMargins &margins);
174 void setMarginsWhenFloating(
int left,
int top,
int right,
int bottom);
177 QMargins getMarginsWhenFloating()
const;
180 void setMarginsWhenFramelessFloating(
const QMargins &margins);
183 void setMarginsWhenFramelessFloating(
int left,
int top,
int right,
int bottom);
186 QMargins getMarginsWhenFramelessFloating()
const;
189 void setMarginsWhenDocked(
const QMargins &margins);
192 void setMarginsWhenDocked(
int left,
int top,
int right,
int bottom);
195 QMargins getMarginsWhenDocked()
const;
198 void setAlwaysOnTopFlag(
bool onTop);
201 virtual void closeEvent(QCloseEvent *event)
override;
204 virtual void paintEvent(QPaintEvent *event)
override;
207 virtual void mouseMoveEvent(QMouseEvent *event)
override;
210 virtual void keyPressEvent(QKeyEvent *event)
override;
213 virtual void mousePressEvent(QMouseEvent *event)
override;
216 virtual void addToContextMenu(QMenu *contextMenu)
const;
221 virtual void initialFloating();
224 virtual void onStyleSheetsChanged();
227 QWidget *m_titleBarWidgetEmpty =
nullptr;
228 QWidget *m_titleBarWidgetOriginal =
nullptr;
229 QWidgetAction *m_marginMenuAction =
nullptr;
232 bool m_allowStatusBar =
true;
233 bool m_windowTitleWhenDocked =
true;
234 bool m_wasAlreadyFloating =
false;
235 bool m_selected =
false;
236 bool m_dockWidgetVisible =
false;
237 bool m_wasFrameless =
false;
238 bool m_alwaysOnTop =
false;
240 QString m_windowTitleBackup;
241 QSize m_preferredSizeWhenFloating;
242 QSize m_initialDockedMinimumSize;
243 QSize m_lastFloatingSize;
244 QPoint m_offsetWhenFloating;
245 QPoint m_lastFloatingPosition;
246 Qt::DockWidgetAreas m_originalAreas;
251 void onTopLevelChanged(
bool topLevel);
254 void showContextMenu(
const QPoint &pos);
257 void onVisibilityChanged(
bool visible);
260 void menuChangeMargins(
const QMargins &margins);
263 void settingsChanged();
269 void initTitleBarWidgets();
272 void initStatusBarAndProperties();
275 void forceStyleSheetUpdate();
278 void rememberFloatingSizeAndPosition();
281 void restoreFloatingSizeAndPosition();
284 void restoreFloatingSizeAndPositionDeferred();
Main window which can be frameless.
Streamable status message, e.g.
Status messages, e.g. from Core -> GUI.
#define SWIFT_GUI_EXPORT
Export a class or function from the library.