Search for usage in LXR

KDecoration2::DecorationShadow Class Reference

#include <decorationshadow.h>

Inheritance diagram for KDecoration2::DecorationShadow:


QRect bottomGeometry
QRect bottomLeftGeometry
QRect bottomRightGeometry
QRect innerShadowRect
QRect leftGeometry
QMargins padding
int paddingBottom
int paddingLeft
int paddingRight
int paddingTop
QRect rightGeometry
QImage shadow
QRect topGeometry
QRect topLeftGeometry
QRect topRightGeometry
- Properties inherited from QObject


void innerShadowRectChanged ()
void paddingChanged ()
void shadowChanged (const QImage &)

Public Member Functions

QRect bottomGeometry () const
QRect bottomLeftGeometry () const
QRect bottomRightGeometry () const
QRect innerShadowRect () const
QRect leftGeometry () const
QMargins padding () const
int paddingBottom () const
int paddingLeft () const
int paddingRight () const
int paddingTop () const
QRect rightGeometry () const
void setInnerShadowRect (const QRect &rect)
void setPadding (const QMargins &margins)
void setShadow (const QImage &image)
QImage shadow () const
QRect topGeometry () const
QRect topLeftGeometry () const
QRect topRightGeometry () const
- Public Member Functions inherited from QObject
 QObject (QObject *parent)
QBindable< QStringbindableObjectName ()
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 () const const
void dumpObjectTree () const const
QList< QByteArraydynamicPropertyNames () const const
virtual bool event (QEvent *e)
virtual bool eventFilter (QObject *watched, QEvent *event)
findChild (const QString &name, 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
QList< T > findChildren (Qt::FindChildOptions options) const const
bool inherits (const char *className) const const
void installEventFilter (QObject *filterObj)
bool isQuickItemType () const const
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 (...)
qobject_cast (const QObject *object)
qobject_cast (QObject *object)
void removeEventFilter (QObject *obj)
void setObjectName (const QString &name)
void setObjectName (QAnyStringView name)
void setParent (QObject *parent)
bool setProperty (const char *name, const QVariant &value)
bool setProperty (const char *name, QVariant &&value)
bool signalsBlocked () const const
int startTimer (int interval, Qt::TimerType timerType)
int startTimer (std::chrono::milliseconds interval, Qt::TimerType timerType)
QThreadthread () const const

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)
- Public Attributes inherited from QObject
typedef QObjectList
- 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)

Detailed Description

A wrapper to define the shadow around the Decoration.

The shadow around the Decoration should not be rendered as part of the Decoration. Instead a DecorationShadow should be used. That way a backend can optimize the rendering of the shadow in a better way. If the shadow were part of the Decoration directly it would need to be updated when the rendering changes. By using a dedicated DecorationShadow the same shadow can be shared between multiple DecoratedClients.

The DecorationShadow consists of a shadow QImage which is composed of multiple parts:

  • topLeft: rendered as it is
  • top: stretched in x direction
  • topRight: rendered as it is
  • right: stretched in y direction
  • bottomRight: rendered as it is
  • bottom: stretched in x direction
  • bottomLeft: rendered as it is
  • left: stretched in y direction

The sizes of these parts is denoted in the property innerShadowRect and the layout is the following:

topLeft # top # topRight

left # # right

bottomLeft # bottom # bottomRight

The innerShadowRect property is a QRect of the geometry of the areas not covered by any of the elements. This means that:

  • x/y of the rect is the same as the size of the topLeft element
  • width of the rect is the same as the width of the top and bottom element
  • height of the rect is the same as the height of the left and the right element By that the actual sizes of all elements can be derived out of the size of the shadow image and the innerShadowRect.

The position of the rendering depends on the values;

  • paddingTop
  • paddingRight
  • paddingBottom
  • paddingLeft

The top left element is rendered with an offset of paddingLeft and paddingTop. The non-stretched elements are rendered in the size as specified, the area between two non-stretched elements (e.g. between topLeft and topRight) is filled by the element with one direction stretched and the other direction fixed at the corresponding padding value. E.g. the top element is stretched in x direction and fixed at paddingTop value. If stretching the side elements is not wanted one needs to provide a shadow image with those elements at a size that stretching is not required.

If the padding values are smaller than the sizes of the shadow elements the shadow will overlap with the Decoration and be rendered behind the Decoration.

Definition at line 74 of file decorationshadow.h.

Property Documentation

◆ bottomGeometry

QRect KDecoration2::DecorationShadow::bottomGeometry

Definition at line 84 of file decorationshadow.h.

◆ bottomLeftGeometry

QRect KDecoration2::DecorationShadow::bottomLeftGeometry

Definition at line 85 of file decorationshadow.h.

◆ bottomRightGeometry

QRect KDecoration2::DecorationShadow::bottomRightGeometry

Definition at line 83 of file decorationshadow.h.

◆ innerShadowRect

QRect KDecoration2::DecorationShadow::innerShadowRect

Definition at line 78 of file decorationshadow.h.

◆ leftGeometry

QRect KDecoration2::DecorationShadow::leftGeometry

Definition at line 86 of file decorationshadow.h.

◆ padding

QMargins KDecoration2::DecorationShadow::padding

Definition at line 91 of file decorationshadow.h.

◆ paddingBottom

int KDecoration2::DecorationShadow::paddingBottom

Definition at line 89 of file decorationshadow.h.

◆ paddingLeft

int KDecoration2::DecorationShadow::paddingLeft

Definition at line 90 of file decorationshadow.h.

◆ paddingRight

int KDecoration2::DecorationShadow::paddingRight

Definition at line 88 of file decorationshadow.h.

◆ paddingTop

int KDecoration2::DecorationShadow::paddingTop

Definition at line 87 of file decorationshadow.h.

◆ rightGeometry

QRect KDecoration2::DecorationShadow::rightGeometry

Definition at line 82 of file decorationshadow.h.

◆ shadow

QImage KDecoration2::DecorationShadow::shadow

Definition at line 77 of file decorationshadow.h.

◆ topGeometry

QRect KDecoration2::DecorationShadow::topGeometry

Definition at line 80 of file decorationshadow.h.

◆ topLeftGeometry

QRect KDecoration2::DecorationShadow::topLeftGeometry

Definition at line 79 of file decorationshadow.h.

◆ topRightGeometry

QRect KDecoration2::DecorationShadow::topRightGeometry

Definition at line 81 of file decorationshadow.h.

Constructor & Destructor Documentation

◆ DecorationShadow()

KDecoration2::DecorationShadow::DecorationShadow ( )

Definition at line 18 of file decorationshadow.cpp.

Member Function Documentation

◆ bottomGeometry()

QRect KDecoration2::DecorationShadow::bottomGeometry ( ) const

Definition at line 75 of file decorationshadow.cpp.

◆ bottomLeftGeometry()

QRect KDecoration2::DecorationShadow::bottomLeftGeometry ( ) const

Definition at line 86 of file decorationshadow.cpp.

◆ bottomRightGeometry()

QRect KDecoration2::DecorationShadow::bottomRightGeometry ( ) const

Definition at line 64 of file decorationshadow.cpp.

◆ leftGeometry()

QRect KDecoration2::DecorationShadow::leftGeometry ( ) const

Definition at line 97 of file decorationshadow.cpp.

◆ rightGeometry()

QRect KDecoration2::DecorationShadow::rightGeometry ( ) const

Definition at line 53 of file decorationshadow.cpp.

◆ setInnerShadowRect()

void KDecoration2::DecorationShadow::setInnerShadowRect ( const QRect & rect)

Definition at line 162 of file decorationshadow.cpp.

◆ setPadding()

void KDecoration2::DecorationShadow::setPadding ( const QMargins & margins)

Definition at line 153 of file decorationshadow.cpp.

◆ topGeometry()

QRect KDecoration2::DecorationShadow::topGeometry ( ) const

Definition at line 34 of file decorationshadow.cpp.

◆ topLeftGeometry()

QRect KDecoration2::DecorationShadow::topLeftGeometry ( ) const

Definition at line 26 of file decorationshadow.cpp.

◆ topRightGeometry()

QRect KDecoration2::DecorationShadow::topRightGeometry ( ) const

Definition at line 42 of file decorationshadow.cpp.

The documentation for this class was generated from the following files:
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Tue Mar 26 2024 11:17:09 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.