Krita Source Code Documentation
Loading...
Searching...
No Matches
KStatefulBrush Class Reference

#include <kcolorscheme.h>

Public Member Functions

QBrush brush (const QPalette &) const
 
QBrush brush (const QWidget *) const
 
QBrush brush (QPalette::ColorGroup) const
 
 KStatefulBrush ()
 
 KStatefulBrush (const KStatefulBrush &)
 
 KStatefulBrush (const QBrush &, const QBrush &background, KSharedConfigPtr=KSharedConfigPtr())
 
 KStatefulBrush (const QBrush &, KSharedConfigPtr=KSharedConfigPtr())
 
 KStatefulBrush (KColorScheme::ColorSet, KColorScheme::BackgroundRole, KSharedConfigPtr=KSharedConfigPtr())
 
 KStatefulBrush (KColorScheme::ColorSet, KColorScheme::DecorationRole, KSharedConfigPtr=KSharedConfigPtr())
 
 KStatefulBrush (KColorScheme::ColorSet, KColorScheme::ForegroundRole, KSharedConfigPtr=KSharedConfigPtr())
 
KStatefulBrushoperator= (const KStatefulBrush &)
 
 ~KStatefulBrush ()
 

Private Attributes

class KStatefulBrushPrivated
 

Detailed Description

A container for a "state-aware" brush.

KStatefulBrush provides an easy and safe way to store a color for use in a user interface. It is "safe" both in that it will make it easy to deal with widget states in a correct manner, and that it insulates you against changes in QPalette::ColorGroup.

Basically, a stateful brush is used to cache a particular "color" from the KDE system palette (usually, one which does not live in QPalette). When you are ready to draw using the brush, you use the current state to retrieve the appropriate brush.

Stateful brushes can also be used to apply state effects to arbitrary brushes, for example when working with a application specific user-defined color palette.

Note
As of Qt 4.3, QPalette::ColorGroup is missing a state for disabled widgets in an inactive window. Hopefully Trolltech will fix this bug, at which point KColorScheme and KStatefulBrush will be updated to recognize the new state. Using KStatefulBrush will allow your application to inherit these changes "for free", without even recompiling.

Definition at line 453 of file kcolorscheme.h.

Constructor & Destructor Documentation

◆ KStatefulBrush() [1/7]

KStatefulBrush::KStatefulBrush ( )
explicit

Construct a "default" stateful brush. For such an instance, all overloads of KStatefulBrush::brush will return a default brush (i.e. QBrush()).

Definition at line 601 of file kcolorscheme.cpp.

602{
603 d = new KStatefulBrushPrivate[3];
604}
class KStatefulBrushPrivate * d

References d.

◆ KStatefulBrush() [2/7]

KStatefulBrush::KStatefulBrush ( KColorScheme::ColorSet set,
KColorScheme::ForegroundRole role,
KSharedConfigPtr config = KSharedConfigPtr() )
explicit

Construct a stateful brush from given color set and foreground role, using the colors from the given KConfig (if null, the system colors are used).

Definition at line 606 of file kcolorscheme.cpp.

608{
609 d = new KStatefulBrushPrivate[3];
610 d[0] = KColorScheme(QPalette::Active, set, config).foreground(role);
611 d[1] = KColorScheme(QPalette::Disabled, set, config).foreground(role);
612 d[2] = KColorScheme(QPalette::Inactive, set, config).foreground(role);
613}
QBrush foreground(ForegroundRole=NormalText) const

References d, and KColorScheme::foreground().

◆ KStatefulBrush() [3/7]

KStatefulBrush::KStatefulBrush ( KColorScheme::ColorSet set,
KColorScheme::BackgroundRole role,
KSharedConfigPtr config = KSharedConfigPtr() )
explicit

Construct a stateful brush from given color set and background role, using the colors from the given KConfig (if null, the system colors are used).

Definition at line 615 of file kcolorscheme.cpp.

617{
618 d = new KStatefulBrushPrivate[3];
619 d[0] = KColorScheme(QPalette::Active, set, config).background(role);
620 d[1] = KColorScheme(QPalette::Disabled, set, config).background(role);
621 d[2] = KColorScheme(QPalette::Inactive, set, config).background(role);
622}
QBrush background(BackgroundRole=NormalBackground) const

References KColorScheme::background(), and d.

◆ KStatefulBrush() [4/7]

KStatefulBrush::KStatefulBrush ( KColorScheme::ColorSet set,
KColorScheme::DecorationRole role,
KSharedConfigPtr config = KSharedConfigPtr() )
explicit

Construct a stateful brush from given color set and decoration role, using the colors from the given KConfig (if null, the system colors are used).

Definition at line 624 of file kcolorscheme.cpp.

626{
627 d = new KStatefulBrushPrivate[3];
628 d[0] = KColorScheme(QPalette::Active, set, config).decoration(role);
629 d[1] = KColorScheme(QPalette::Disabled, set, config).decoration(role);
630 d[2] = KColorScheme(QPalette::Inactive, set, config).decoration(role);
631}
QBrush decoration(DecorationRole) const

References d, and KColorScheme::decoration().

◆ KStatefulBrush() [5/7]

KStatefulBrush::KStatefulBrush ( const QBrush & brush,
KSharedConfigPtr config = KSharedConfigPtr() )
explicit

Construct a stateful background brush from a specified QBrush (or QColor, via QBrush's implicit constructor). The various states are determined from the base QBrush (which fills in the Active state) according to the same rules used to build stateful color schemes from the system color scheme. The state effects from the given KConfig are used (if null, the system state effects are used).

Definition at line 633 of file kcolorscheme.cpp.

634{
635 if (!config) {
636 config = KSharedConfig::openConfig();
637 }
638 d = new KStatefulBrushPrivate[3];
639 d[0] = brush;
640 d[1] = StateEffects(QPalette::Disabled, config).brush(brush);
641 d[2] = StateEffects(QPalette::Inactive, config).brush(brush);
642}
QBrush brush(QPalette::ColorGroup) const
QBrush brush(const QBrush &background) const

References StateEffects::brush(), brush(), and d.

◆ KStatefulBrush() [6/7]

KStatefulBrush::KStatefulBrush ( const QBrush & brush,
const QBrush & background,
KSharedConfigPtr config = KSharedConfigPtr() )
explicit

Construct a stateful foreground/decoration brush from a specified QBrush (or QColor, via QBrush's implicit constructor). The various states are determined from the base QBrush (which fills in the Active state) according to the same rules used to build stateful color schemes from the system color scheme. The state effects from the given KConfig are used (if null, the system state effects are used).

Parameters
brushThe foreground brush
backgroundThe background brush (or color) corresponding to the KColorScheme::NormalBackground role and QPalette::Active state for this foreground/decoration color.
configThe configuration.

Definition at line 644 of file kcolorscheme.cpp.

646{
647 if (!config) {
648 config = KSharedConfig::openConfig();
649 }
650 d = new KStatefulBrushPrivate[3];
651 d[0] = brush;
652 d[1] = StateEffects(QPalette::Disabled, config).brush(brush, background);
653 d[2] = StateEffects(QPalette::Inactive, config).brush(brush, background);
654}

References StateEffects::brush(), brush(), and d.

◆ KStatefulBrush() [7/7]

KStatefulBrush::KStatefulBrush ( const KStatefulBrush & other)

Construct a copy of another KStatefulBrush.

Definition at line 656 of file kcolorscheme.cpp.

657{
658 d = new KStatefulBrushPrivate[3];
659 d[0] = other.d[0];
660 d[1] = other.d[1];
661 d[2] = other.d[2];
662}

References d.

◆ ~KStatefulBrush()

KStatefulBrush::~KStatefulBrush ( )

Destructor

Definition at line 664 of file kcolorscheme.cpp.

665{
666 delete[] d;
667}

References d.

Member Function Documentation

◆ brush() [1/3]

QBrush KStatefulBrush::brush ( const QPalette & pal) const

Retrieve the brush, using a QPalette reference to determine the correct state. Use when your painting code has easy access to the QPalette that it is supposed to be using. The state used in this instance is the currentColorGroup of the palette.

Definition at line 689 of file kcolorscheme.cpp.

690{
691 return brush(pal.currentColorGroup());
692}

References brush().

◆ brush() [2/3]

QBrush KStatefulBrush::brush ( const QWidget * widget) const

Retrieve the brush, using a QWidget pointer to determine the correct state. Use when you have a pointer to the widget that you are painting. The state used is the current state of the widget.

Note
If you pass an invalid widget, you will get a default brush (i.e. QBrush()).

Definition at line 694 of file kcolorscheme.cpp.

695{
696 if (widget) {
697 return brush(widget->palette());
698 } else {
699 return QBrush();
700 }
701}

References brush().

◆ brush() [3/3]

QBrush KStatefulBrush::brush ( QPalette::ColorGroup state) const

Retrieve the brush for the specified widget state. This is used when you know explicitly what state is wanted. Otherwise one of overloads is often more convenient.

Definition at line 677 of file kcolorscheme.cpp.

678{
679 switch (state) {
680 case QPalette::Inactive:
681 return d[2];
682 case QPalette::Disabled:
683 return d[1];
684 default:
685 return d[0];
686 }
687}

References d.

◆ operator=()

KStatefulBrush & KStatefulBrush::operator= ( const KStatefulBrush & other)

Standard assignment operator

Definition at line 669 of file kcolorscheme.cpp.

670{
671 d[0] = other.d[0];
672 d[1] = other.d[1];
673 d[2] = other.d[2];
674 return *this;
675}

References d.

Member Data Documentation

◆ d

class KStatefulBrushPrivate* KStatefulBrush::d
private

Definition at line 552 of file kcolorscheme.h.


The documentation for this class was generated from the following files: