Search for usage in LXR

KDecoration2::Decoration Class Referenceabstract

#include <decoration.h>

Inheritance diagram for KDecoration2::Decoration:


int borderBottom
int borderLeft
int borderRight
QMargins borders
int borderTop
bool opaque
int resizeOnlyBorderBottom
int resizeOnlyBorderLeft
int resizeOnlyBorderRight
QMargins resizeOnlyBorders
int resizeOnlyBorderTop
Qt::WindowFrameSection sectionUnderMouse
QRect titleBar
- Properties inherited from QObject


void blurRegionChanged ()
void bordersChanged ()
void damaged (const QRegion &region)
void opaqueChanged (bool)
void resizeOnlyBordersChanged ()
void sectionUnderMouseChanged (Qt::WindowFrameSection)
void shadowChanged (const std::shared_ptr< DecorationShadow > &shadow)
void titleBarChanged ()

Public Slots

virtual void init ()
void requestClose ()
void requestContextHelp ()
void requestHideToolTip ()
void requestMinimize ()
void requestShowApplicationMenu (const QRect &rect, int actionId)
void requestShowToolTip (const QString &text)
void requestShowWindowMenu (const QRect &rect)
void requestToggleKeepAbove ()
void requestToggleKeepBelow ()
void requestToggleMaximization (Qt::MouseButtons buttons)
void requestToggleOnAllDesktops ()
void requestToggleShade ()
void showApplicationMenu (int actionId)
void update ()
void update (const QRect &rect)

Public Member Functions

QRegion blurRegion () const
int borderBottom () const
int borderLeft () const
int borderRight () const
QMargins borders () const
int borderTop () const
DecoratedClientclient () const
bool event (QEvent *event) override
bool isOpaque () const
virtual void paint (QPainter *painter, const QRect &repaintArea)=0
QRect rect () const
int resizeOnlyBorderBottom () const
int resizeOnlyBorderLeft () const
int resizeOnlyBorderRight () const
QMargins resizeOnlyBorders () const
int resizeOnlyBorderTop () const
Qt::WindowFrameSection sectionUnderMouse () const
void setSettings (const std::shared_ptr< DecorationSettings > &settings)
std::shared_ptr< DecorationSettingssettings () const
std::shared_ptr< DecorationShadowshadow () const
QSize size () const
QRect titleBar () const
- Public Member Functions inherited from QObject
 QObject (QObject *parent)
bool blockSignals (bool block)
const QObjectListchildren () const const
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const
void deleteLater ()
void destroyed (QObject *obj)
bool disconnect (const char *signal, const QObject *receiver, const char *method) const const
bool disconnect (const QObject *receiver, const char *method) const const
void dumpObjectInfo ()
void dumpObjectInfo () const const
void dumpObjectTree ()
void dumpObjectTree () const const
QList< QByteArraydynamicPropertyNames () const const
virtual bool eventFilter (QObject *watched, QEvent *event)
findChild (const QString &name, Qt::FindChildOptions options) const const
QList< T > findChildren (const QRegExp &regExp, Qt::FindChildOptions options) const const
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const const
bool inherits (const char *className) const const
void installEventFilter (QObject *filterObj)
bool isWidgetType () const const
bool isWindowType () const const
void killTimer (int id)
virtual const QMetaObjectmetaObject () const const
void moveToThread (QThread *targetThread)
QString objectName () const const
void objectNameChanged (const QString &objectName)
QObjectparent () const const
QVariant property (const char *name) const const
 Q_CLASSINFO (Name, Value)
 Q_ENUM (...)
 Q_ENUM_NS (...)
 Q_ENUMS (...)
 Q_FLAG (...)
 Q_FLAG_NS (...)
 Q_FLAGS (...)
qFindChild (const QObject *obj, const QString &name)
QList< T > qFindChildren (const QObject *obj, const QRegExp &regExp)
QList< T > qFindChildren (const QObject *obj, const QString &name)
qobject_cast (const QObject *object)
qobject_cast (QObject *object)
void removeEventFilter (QObject *obj)
void setObjectName (const QString &name)
void setParent (QObject *parent)
bool setProperty (const char *name, const QVariant &value)
bool signalsBlocked () const const
int startTimer (int interval, Qt::TimerType timerType)
int startTimer (std::chrono::milliseconds time, Qt::TimerType timerType)
QThreadthread () const const

Protected Member Functions

 Decoration (QObject *parent, const QVariantList &args)
virtual void hoverEnterEvent (QHoverEvent *event)
virtual void hoverLeaveEvent (QHoverEvent *event)
virtual void hoverMoveEvent (QHoverEvent *event)
virtual void mouseMoveEvent (QMouseEvent *event)
virtual void mousePressEvent (QMouseEvent *event)
virtual void mouseReleaseEvent (QMouseEvent *event)
void setBlurRegion (const QRegion &region)
void setBorders (const QMargins &borders)
void setOpaque (bool opaque)
void setResizeOnlyBorders (const QMargins &borders)
void setShadow (const std::shared_ptr< DecorationShadow > &shadow)
void setTitleBar (const QRect &rect)
virtual void wheelEvent (QWheelEvent *event)
- Protected Member Functions inherited from QObject
virtual void childEvent (QChildEvent *event)
virtual void connectNotify (const QMetaMethod &signal)
virtual void customEvent (QEvent *event)
virtual void disconnectNotify (const QMetaMethod &signal)
bool isSignalConnected (const QMetaMethod &signal) const const
int receivers (const char *signal) const const
QObjectsender () const const
int senderSignalIndex () const const
virtual void timerEvent (QTimerEvent *event)

Additional Inherited Members

- Static Public Member Functions inherited from QObject
QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type)
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type)
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, Functor functor)
bool disconnect (const QMetaObject::Connection &connection)
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
QString tr (const char *sourceText, const char *disambiguation, int n)
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
- Public Attributes inherited from QObject
typedef QObjectList

Detailed Description

Base class for the Decoration.

To provide a Decoration one needs to inherit from this class. The framework will instantiate an instance of the inherited class for each DecoratedClient.

The main tasks of the Decoration is to provide borders around the DecoratedClient. For this the Deocration provides border sizes: those should be adjusted depending on the state of the DecoratedClient. E.g. commonly a maximized DecoratedClient does not have borders on the side, only the title bar.

Whenever the visual representation of the Decoration changes the slot Decoration::update should be invoked to request a repaint. The framework will in return invoke the Decoration::paint method. This method needs to be implemented by inheriting classes.

A Decoration commonly provides buttons for interaction. E.g. a close button to close the DecoratedClient. For such actions the Decoration provides slots which should be connected to the clicked signals of the buttons. For convenience the framework provides the DecorationButton and the DecorationButtonGroup for easier layout. It is not required to use those, if one uses different ways to represent the actions one needs to filter the events accordingly.

See also

Definition at line 57 of file decoration.h.

Property Documentation

◆ opaque

bool KDecoration2::Decoration::opaque

Whether the Decoration is fully opaque.

By default a Decoration is considered to use the alpha channel and this property has the value false. But for e.g. a maximized DecoratedClient it is possible that the Decoration is fully opaque. In this case the Decoration should set this property to true.

Definition at line 87 of file decoration.h.

◆ sectionUnderMouse

Qt::WindowFrameSection KDecoration2::Decoration::sectionUnderMouse

This property denotes the part of the Decoration which is currently under the mouse pointer.

It gets automatically updated whenever a QMouseEvent or QHoverEvent gets processed.

Definition at line 74 of file decoration.h.

◆ titleBar

QRect KDecoration2::Decoration::titleBar

The titleBar is the area inside the Decoration containing all controls (e.g.

Buttons) and the caption. The titleBar is the main interaction area, while all other areas of the Decoration are normally used as resize areas.

Definition at line 80 of file decoration.h.

Constructor & Destructor Documentation

◆ Decoration()

KDecoration2::Decoration::Decoration ( QObject parent,
const QVariantList &  args 

Constructor for the Decoration.

The args are used by the decoration framework to pass meta information to the Decoration. An inheriting class is supposed to pass the args to the parent class.

parentThe parent of the Decoration
argsAdditional arguments passed in from the framework

Definition at line 131 of file decoration.cpp.

Member Function Documentation

◆ blurRegion()

QRegion KDecoration2::Decoration::blurRegion ( ) const

The decoration's blur region in local coordinates.

◆ client()

DecoratedClient * KDecoration2::Decoration::client ( ) const

The DecoratedClient for this Decoration.

Definition at line 147 of file decoration.cpp.

◆ init

void KDecoration2::Decoration::init ( )

This method gets invoked from the framework once the Decoration is created and completely setup.

An inheriting class should override this method and perform all initialization in this method instead of the constructor.

Definition at line 142 of file decoration.cpp.

◆ paint()

virtual void KDecoration2::Decoration::paint ( QPainter painter,
const QRect repaintArea 
pure virtual

Implement this method in inheriting classes to provide the rendering.

The painter is set up to paint on an internal QPaintDevice. The painting is implicitly double buffered.

painterThe painter which needs to be used for rendering
repaintAreaThe region which needs to be repainted.

◆ rect()

QRect KDecoration2::Decoration::rect ( ) const

The decoration's geometry in local coordinates.

Basically the size of the DecoratedClient combined with the borders.

Definition at line 275 of file decoration.cpp.

◆ requestShowWindowMenu

void KDecoration2::Decoration::requestShowWindowMenu ( const QRect rect)
rectthe location at which to show the window menu

Definition at line 175 of file decoration.cpp.

◆ setSettings()

void KDecoration2::Decoration::setSettings ( const std::shared_ptr< DecorationSettings > &  settings)

Invoked by the framework to set the Settings for this Decoration before init is invoked.

Definition at line 404 of file decoration.cpp.

◆ settings()

std::shared_ptr< DecorationSettings > KDecoration2::Decoration::settings ( ) const
The DecorationSettings used for this Decoration.

Definition at line 409 of file decoration.cpp.

◆ setTitleBar()

void KDecoration2::Decoration::setTitleBar ( const QRect rect)

An implementation has to invoke this method whenever the area containing the controls and caption changes.

rectThe new geometry of the titleBar in Decoration coordinates

◆ shadow()

std::shared_ptr<DecorationShadow> KDecoration2::Decoration::shadow ( ) const

DecorationShadow for this Decoration.

It is recommended that multiple Decorations share the same DecorationShadow. E.g one DecorationShadow for all inactive Decorations and one for the active Decoration.

The documentation for this class was generated from the following files:
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Sun Oct 1 2023 03:49:47 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.