8#include <dtkwidget_global.h>
10#include <DGuiApplicationHelper>
16DWIDGET_BEGIN_NAMESPACE
18class DTitlebarPrivate;
19class LIBDTKWIDGETSHARED_EXPORT
DTitlebar :
public QFrame,
public DTK_CORE_NAMESPACE::DObject
22 Q_PROPERTY(
bool blurBackground READ blurBackground WRITE setBlurBackground)
25 explicit DTitlebar(QWidget *parent = Q_NULLPTR);
29 void setMenu(QMenu *menu);
32 QWidget *customWidget()
const;
33 void setCustomWidget(QWidget *,
bool fixCenterPos =
false);
36 void removeWidget(QWidget *w);
38 int buttonAreaWidth()
const;
39 bool separatorVisible()
const;
41 bool autoHideOnFullscreen()
const;
42 void setAutoHideOnFullscreen(
bool autohide);
44 virtual void setVisible(
bool visible) Q_DECL_OVERRIDE;
45 void setEmbedMode(
bool embed);
47 bool menuIsVisible()
const;
48 void setMenuVisible(
bool visible);
50 bool menuIsDisabled()
const;
51 void setMenuDisabled(
bool disabled);
53 bool quitMenuIsDisabled()
const;
54 void setQuitMenuDisabled(
bool disabled);
55 void setQuitMenuVisible(
bool visible);
57 bool switchThemeMenuIsVisible()
const;
58 void setSwitchThemeMenuVisible(
bool visible);
63 void setSplitScreenEnabled(
bool enabled);
64 bool splitScreenIsEnabled()
const;
66 virtual QSize sizeHint()
const override;
67 virtual QSize minimumSizeHint()
const override;
69 bool blurBackground()
const;
70 void setFullScreenButtonVisible(
bool enabled);
78#ifdef DTK_TITLE_DRAG_WINDOW
84 void setFixedHeight(
int h);
85 void setBackgroundTransparent(
bool transparent);
86 void setSeparatorVisible(
bool visible);
87 void setTitle(
const QString &title);
88 void setIcon(
const QIcon &icon);
90 void toggleWindowState();
92 void setBlurBackground(
bool blurBackground);
100 bool eventFilter(
QObject *obj,
QEvent *event) Q_DECL_OVERRIDE;
101 bool event(
QEvent *e)
override;
102 void showEvent(QShowEvent *event) Q_DECL_OVERRIDE;
103 void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
104 void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
105 void mouseMoveEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
106 void mouseDoubleClickEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
107 void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE;
111 D_PRIVATE_SLOT(
void _q_toggleWindowState())
112 D_PRIVATE_SLOT(
void _q_showMinimized())
113 D_PRIVATE_SLOT(
void _q_onTopWindowMotifHintsChanged(quint32))
116 D_PRIVATE_SLOT(
void _q_addDefaultMenuItems())
117 D_PRIVATE_SLOT(
void _q_helpActionTriggered())
118 D_PRIVATE_SLOT(
void _q_feedbackActionTriggerd())
119 D_PRIVATE_SLOT(
void _q_aboutActionTriggered())
120 D_PRIVATE_SLOT(
void _q_quitActionTriggered())
121 D_PRIVATE_SLOT(
void _q_switchThemeActionTriggered(QAction*))