8 #include "decorationshadow.h"
9 #include <kdecoration2/kdecoration2_export.h>
26 class DecorationPrivate;
27 class DecoratedClient;
28 class DecorationButton;
29 class DecorationSettings;
60 Q_PROPERTY(
QMargins borders READ borders NOTIFY bordersChanged)
61 Q_PROPERTY(
int borderLeft READ borderLeft NOTIFY bordersChanged)
62 Q_PROPERTY(
int borderRight READ borderRight NOTIFY bordersChanged)
63 Q_PROPERTY(
int borderTop READ borderTop NOTIFY bordersChanged)
64 Q_PROPERTY(
int borderBottom READ borderBottom NOTIFY bordersChanged)
65 Q_PROPERTY(
QMargins resizeOnlyBorders READ resizeOnlyBorders NOTIFY resizeOnlyBordersChanged)
66 Q_PROPERTY(
int resizeOnlyBorderLeft READ resizeOnlyBorderLeft NOTIFY resizeOnlyBordersChanged)
67 Q_PROPERTY(
int resizeOnlyBorderRight READ resizeOnlyBorderRight NOTIFY resizeOnlyBordersChanged)
68 Q_PROPERTY(
int resizeOnlyBorderTop READ resizeOnlyBorderTop NOTIFY resizeOnlyBordersChanged)
69 Q_PROPERTY(
int resizeOnlyBorderBottom READ resizeOnlyBorderBottom NOTIFY resizeOnlyBordersChanged)
74 Q_PROPERTY(
Qt::WindowFrameSection sectionUnderMouse READ sectionUnderMouse NOTIFY sectionUnderMouseChanged)
80 Q_PROPERTY(
QRect titleBar READ titleBar NOTIFY titleBarChanged)
87 Q_PROPERTY(
bool opaque READ isOpaque NOTIFY opaqueChanged)
97 int borderLeft() const;
98 int borderRight() const;
99 int borderTop() const;
100 int borderBottom() const;
102 int resizeOnlyBorderLeft() const;
103 int resizeOnlyBorderRight() const;
104 int resizeOnlyBorderTop() const;
105 int resizeOnlyBorderBottom() const;
106 Qt::WindowFrameSection sectionUnderMouse() const;
107 QRect titleBar() const;
108 bool isOpaque() const;
150 virtual
void paint(
QPainter *painter, const
QRect &repaintArea) = 0;
152 bool event(
QEvent *event) override;
156 void requestToggleMaximization(
Qt::MouseButtons buttons);
157 void requestMinimize();
158 void requestContextHelp();
159 void requestToggleOnAllDesktops();
160 void requestToggleShade();
161 void requestToggleKeepAbove();
162 void requestToggleKeepBelow();
164 #if KDECORATIONS2_ENABLE_DEPRECATED_SINCE(5, 21)
169 KDECORATIONS2_DEPRECATED_VERSION(5, 21,
"Use Decoration::requestShowWindowMenu(QRect)")
170 void requestShowWindowMenu();
176 void requestShowWindowMenu(
const QRect &rect);
177 void requestShowToolTip(
const QString &text);
178 void requestHideToolTip();
180 void showApplicationMenu(
int actionId);
181 void requestShowApplicationMenu(
const QRect &rect,
int actionId);
183 void update(
const QRect &rect);
196 virtual bool init() = 0;
199 void blurRegionChanged();
200 void bordersChanged();
201 void resizeOnlyBordersChanged();
203 void titleBarChanged();
204 void opaqueChanged(
bool);
205 void shadowChanged(
const std::shared_ptr<DecorationShadow> &shadow);
206 void damaged(
const QRegion ®ion);
220 void setBorders(
const QMargins &borders);
221 void setResizeOnlyBorders(
const QMargins &borders);
222 void setBlurRegion(
const QRegion ®ion);
228 void setTitleBar(
const QRect &rect);
229 void setOpaque(
bool opaque);
230 void setShadow(
const std::shared_ptr<DecorationShadow> &shadow);
237 virtual void mouseReleaseEvent(
QMouseEvent *event);
243 std::unique_ptr<Private> d;