summaryrefslogtreecommitdiff
path: root/noncore/styles
authorar <ar>2004-05-31 15:26:50 (UTC)
committer ar <ar>2004-05-31 15:26:50 (UTC)
commit27dfc34d411dee76f09f5e516c60b0a64eb35948 (patch) (side-by-side diff)
treeb7f7259497630390e352a1257cac5dc59f5399a6 /noncore/styles
parent27b09fe4f930b96e82cea9fb0eb1a9b87f7ec062 (diff)
downloadopie-27dfc34d411dee76f09f5e516c60b0a64eb35948.zip
opie-27dfc34d411dee76f09f5e516c60b0a64eb35948.tar.gz
opie-27dfc34d411dee76f09f5e516c60b0a64eb35948.tar.bz2
- convert qWarning to owarn
Diffstat (limited to 'noncore/styles') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/styles/theme/othemebase.h981
1 files changed, 493 insertions, 488 deletions
diff --git a/noncore/styles/theme/othemebase.h b/noncore/styles/theme/othemebase.h
index e691692..5519798 100644
--- a/noncore/styles/theme/othemebase.h
+++ b/noncore/styles/theme/othemebase.h
@@ -18,6 +18,11 @@
#ifndef __OTHEMEBASE_H
#define __OTHEMEBASE_H
+/* OPIE */
+#include <opie2/odebug.h>
+using namespace Opie::Core;
+
+/* QT */
#include <qdatetime.h>
#include <qtimer.h>
#include <qwindowsstyle.h>
@@ -39,48 +44,48 @@
class OThemePixmap : public QPixmap
{
public:
- enum BorderType{Top = 0, Bottom, Left, Right, TopLeft, TopRight, BottomLeft,
- BottomRight};
-
- OThemePixmap( bool timer = true );
- OThemePixmap( const OThemePixmap &p );
- ~OThemePixmap();
- QPixmap* border( BorderType type );
- void setBorder( BorderType type, const QPixmap &p );
- void updateAccessed();
- bool isOld();
+ enum BorderType{Top = 0, Bottom, Left, Right, TopLeft, TopRight, BottomLeft,
+ BottomRight};
+
+ OThemePixmap( bool timer = true );
+ OThemePixmap( const OThemePixmap &p );
+ ~OThemePixmap();
+ QPixmap* border( BorderType type );
+ void setBorder( BorderType type, const QPixmap &p );
+ void updateAccessed();
+ bool isOld();
protected:
- QTime *t;
- QPixmap *b[ 8 ];
+ QTime *t;
+ QPixmap *b[ 8 ];
private:
- class OThemePixmapPrivate;
- OThemePixmapPrivate *d;
+ class OThemePixmapPrivate;
+ OThemePixmapPrivate *d;
};
inline QPixmap* OThemePixmap::border( BorderType type )
{
- return ( b[ type ] );
+ return ( b[ type ] );
}
inline void OThemePixmap::setBorder( BorderType type, const QPixmap &p )
{
- if ( b[ type ] ) {
- qWarning( "OThemePixmap: Overwriting existing border!" );
- delete( b[ type ] );
- }
- b[ type ] = new QPixmap( p );
+ if ( b[ type ] ) {
+ owarn << "OThemePixmap: Overwriting existing border!" << oendl;
+ delete( b[ type ] );
+ }
+ b[ type ] = new QPixmap( p );
}
inline void OThemePixmap::updateAccessed()
{
- if (t)
- t->start();
+ if (t)
+ t->start();
}
inline bool OThemePixmap::isOld()
{
- return ( t ? t->elapsed() >= 300000 : false );
+ return ( t ? t->elapsed() >= 300000 : false );
}
/**
@@ -106,72 +111,72 @@ inline bool OThemePixmap::isOld()
*/
class OThemeCache : public QObject
{
- Q_OBJECT
+ Q_OBJECT
public:
- /**
- * The scale hints supported by the cache. Note that Tiled is not here
- * since tiled pixmaps are kept only once in OThemeBase.
- */
- enum ScaleHint{FullScale, HorizontalScale, VerticalScale};
- /**
- * The constructor.
- *
- * @param maxSize The maximum size of the cache in kilobytes.
- */
- OThemeCache( int maxSize, QObject *parent = 0, const char *name = 0 );
- /**
- * Inserts a new pixmap into the cache.
- *
- * @param pixmap The pixmap to insert.
- * @param scale The scaling type of the pixmap.
- * @param widgetID The widget ID of the pixmap, usually from OThemeBase's
- * WidgetType enum.
- *
- * @return True if the insert was successful, false otherwise.
- */
- bool insert( OThemePixmap *pixmap, ScaleHint scale, int widgetID,
- bool border = false, bool mask = false );
- /**
- * Returns a fully scaled pixmap.
- *
- * @param w The pixmap width to search for.
- * @param h The pixmap height to search for.
- * @param widgetID The widget ID to search for.
- *
- * @return True if a pixmap matching the width, height, and widget ID of
- * the pixmap exists, NULL otherwise.
- */
- OThemePixmap* pixmap( int w, int h, int widgetID, bool border = false,
- bool mask = false );
- /**
- * Returns a horizontally scaled pixmap.
- *
- * @param w The pixmap width to search for.
- * @param widgetID The widget ID to search for.
- *
- * @return True if a pixmap matching the width and widget ID of
- * the pixmap exists, NULL otherwise.
- */
- OThemePixmap* horizontalPixmap( int w, int widgetID );
- /**
- * Returns a vertically scaled pixmap.
- *
- * @param h The pixmap height to search for.
- * @param widgetID The widget ID to search for.
- *
- * @return True if a pixmap matching the height and widget ID of
- * the pixmap exists, NULL otherwise.
- */
- OThemePixmap* verticalPixmap( int h, int widgetID );
+ /**
+ * The scale hints supported by the cache. Note that Tiled is not here
+ * since tiled pixmaps are kept only once in OThemeBase.
+ */
+ enum ScaleHint{FullScale, HorizontalScale, VerticalScale};
+ /**
+ * The constructor.
+ *
+ * @param maxSize The maximum size of the cache in kilobytes.
+ */
+ OThemeCache( int maxSize, QObject *parent = 0, const char *name = 0 );
+ /**
+ * Inserts a new pixmap into the cache.
+ *
+ * @param pixmap The pixmap to insert.
+ * @param scale The scaling type of the pixmap.
+ * @param widgetID The widget ID of the pixmap, usually from OThemeBase's
+ * WidgetType enum.
+ *
+ * @return True if the insert was successful, false otherwise.
+ */
+ bool insert( OThemePixmap *pixmap, ScaleHint scale, int widgetID,
+ bool border = false, bool mask = false );
+ /**
+ * Returns a fully scaled pixmap.
+ *
+ * @param w The pixmap width to search for.
+ * @param h The pixmap height to search for.
+ * @param widgetID The widget ID to search for.
+ *
+ * @return True if a pixmap matching the width, height, and widget ID of
+ * the pixmap exists, NULL otherwise.
+ */
+ OThemePixmap* pixmap( int w, int h, int widgetID, bool border = false,
+ bool mask = false );
+ /**
+ * Returns a horizontally scaled pixmap.
+ *
+ * @param w The pixmap width to search for.
+ * @param widgetID The widget ID to search for.
+ *
+ * @return True if a pixmap matching the width and widget ID of
+ * the pixmap exists, NULL otherwise.
+ */
+ OThemePixmap* horizontalPixmap( int w, int widgetID );
+ /**
+ * Returns a vertically scaled pixmap.
+ *
+ * @param h The pixmap height to search for.
+ * @param widgetID The widget ID to search for.
+ *
+ * @return True if a pixmap matching the height and widget ID of
+ * the pixmap exists, NULL otherwise.
+ */
+ OThemePixmap* verticalPixmap( int h, int widgetID );
protected slots:
- void flushTimeout();
+ void flushTimeout();
protected:
- QIntCache<OThemePixmap> cache;
- QTimer flushTimer;
+ QIntCache<OThemePixmap> cache;
+ QTimer flushTimer;
private:
- class OThemeCachePrivate;
- OThemeCachePrivate *d;
+ class OThemeCachePrivate;
+ OThemeCachePrivate *d;
};
@@ -189,551 +194,551 @@ private:
*/
class OThemeBase: public QWindowsStyle
{
- Q_OBJECT
+ Q_OBJECT
public:
- /**
- * Constructs a new OThemeBase object.
- */
- OThemeBase( const QString &configFile );
- ~OThemeBase();
- /**
- * Describes if a pixmap should be scaled fully, horizontally, vertically,
- * or not at all and tiled.
- */
- enum ScaleHint{FullScale, HorizontalScale, VerticalScale, TileScale};
- /**
- * The default arrow types.
- */
- enum ArrowStyle{MotifArrow, LargeArrow, SmallArrow};
- /**
- * The default frame shading styles.
- */
- enum ShadeStyle{Motif, Windows, Next, KDE};
- /**
- * The default scrollbar button layout. BottomLeft is like what Next
- * uses, BottomRight is like Platinum, and Opposite it like Windows and
- * Motif.
- */
- enum SButton{SBBottomLeft, SBBottomRight, SBOpposite};
- /**
- * The gradient types. Horizontal is left to right, Vertical is top to
- * bottom, and diagonal is upper-left to bottom-right.
- */
- enum Gradient{GrNone, GrHorizontal, GrVertical, GrDiagonal, GrPyramid,
- GrRectangle, GrElliptic, GrReverseBevel};
- /**
- * This provides a list of widget types that OThemeBase recognizes.
- */
- /* Internal note: The order here is important. Some widgets inherit
- * properties. This is usually for when you have two settings for the
- * same widget, ie: on(sunken), and off. The on settings will inherit
- * the properties of the off one when nothing is specified in the config.
- *
- * In order to be able to handle this while still having everything in
- * one group that is easy to loop from we have the following order:
- * unsunked(off) items, sunken(on)items, and then the ones that don't
- * matter. INHERIT_ITEMS define the number of widgets that have inheritence
- * so if 0 == PushButtonOff then INHERIT_ITEMS should == PushButtonOn
- * and so on. WIDGETS define the total number of widgets.
- */
- enum WidgetType{
- // Off (unsunken widgets)
- PushButton = 0, ComboBox, HScrollBarSlider, VScrollBarSlider, Bevel,
- ToolButton, ScrollButton, HScrollDeco, VScrollDeco,
- ComboDeco, MenuItem, InactiveTab, ArrowUp, ArrowDown, ArrowLeft,
- ArrowRight,
- // On (sunken widgets)
- PushButtonDown, ComboBoxDown, HScrollBarSliderDown,
- VScrollBarSliderDown, BevelDown, ToolButtonDown, ScrollButtonDown,
- HScrollDecoDown, VScrollDecoDown, ComboDecoDown, MenuItemDown,
- ActiveTab, SunkenArrowUp, SunkenArrowDown, SunkenArrowLeft,
- SunkenArrowRight,
- // Everything else (indicators must have separate settings)
- HScrollGroove, VScrollGroove, Slider, SliderGroove, IndicatorOn,
- IndicatorOff, ExIndicatorOn, ExIndicatorOff, HBarHandle, VBarHandle,
- ToolBar, Splitter, CheckMark, MenuBar, DisArrowUp, DisArrowDown,
- DisArrowLeft, DisArrowRight, ProgressBar, ProgressBg, MenuBarItem,
- Background};
-
- /**
- * The scaling type specified by the Config file.
- *
- * @param widget A Widgets enum value.
- *
- * @return A ScaleHint enum value.
- */
- ScaleHint scaleHint( WidgetType widget ) const;
- /**
- * The gradient type specified by the KConfig file.
- *
- * @param widget A Widgets enum value.
- *
- * @return A Gradient enum value.
- */
- Gradient gradientHint( WidgetType widget ) const;
- /**
- * The color group specified for a given widget.
- * If a color group is set in the theme configuration
- * that is used, otherwise defaultColor is returned.
- *
- * @param defaultColor The colorGroup to set if one is available.
- *
- * @param widget The widget whose color group to retrieve.
- *
- */
- const QColorGroup* colorGroup( const QColorGroup &defaultGroup,
- WidgetType widget ) const;
-
- QBrush pixmapBrush( const QColorGroup &group, QColorGroup::ColorRole role,
- int w, int h, WidgetType widget );
- /**
- * True if the widget has a pixmap or gradient specified.
- */
- bool isPixmap( WidgetType widget ) const;
- /**
- * True if the widget has a color group specified.
- */
- bool isColor( WidgetType widget ) const;
- /**
- * True if the user specified a 3D focus rectangle
- */
- bool is3DFocus() const;
- /**
- * If the user specified a 3D focus rectangle, they may also specify an
- * offset from the default rectangle to use when drawing it. This returns
- * the specified offset.
- */
- int focusOffset() const;
- /**
- * The border width of the specified widget.
- */
- int borderWidth( WidgetType widget ) const;
- /**
- * Pixmap border width of the specified widget.
- */
- int pixBorderWidth( WidgetType widget ) const;
- /**
- * Returns the border pixmap if enabled for the specified widget. This
- * will contain the originial pixmap, plus the edges separated in
- * OThemePixmap::border() if valid. If invalid it will return NULL.
- */
- OThemePixmap* borderPixmap( WidgetType widget );
- /**
- * The highlight width of the specified widget.
- */
- int highlightWidth( WidgetType widget ) const;
- /**
- * The border plus highlight width of the widget.
- */
- int decoWidth( WidgetType widget ) const;
- /**
- * The extent (width for vertical, height for horizontal) requested
- * for the scrollbars.
- */
- int getSBExtent() const;
- /**
- * The scrollbar button layout.
- */
- SButton scrollBarLayout() const;
- /**
- * The arrow type.
- */
- ArrowStyle arrowType() const;
- /**
- * The shading type.
- */
- ShadeStyle shade() const;
- /**
- * The frame width.
- */
- int frameWidth() const;
- /**
- * The splitter width.
- */
- int splitWidth() const;
- /**
- * The contrast for some bevel effects such as reverse gradient.
- */
- int bevelContrast( WidgetType widget ) const;
- /**
- * The button text X shift.
- */
- int buttonXShift() const;
- /**
- * The button text Y shift.
- */
- int buttonYShift() const;
- /**
- * Returns either the slider length of the slider pixmap if available,
- * otherwise the length specified in the config file.
- */
- int sliderButtonLength() const;
- /**
- * True if rounded buttons are requested.
- */
- bool roundButton() const;
- /**
- * True if rounded comboboxes are requested.
- */
- bool roundComboBox() const;
- /**
- * True if rounded slider grooves are requested.
- */
- bool roundSlider() const;
- /**
- * True if a line should be drawn on the bottom of active tabs.
- */
- bool activeTabLine() const;
- /**
- * True if a line should be drawn on the bottom of inactive tabs.
- */
- bool inactiveTabLine() const;
- /**
- * Returns the current uncached pixmap for the given widget. This will
- * usually be either the last scaled or gradient pixmap if those have
- * been specified in the config file, the original pixmap if not, or NULL
- * if no pixmap has been specified.
- */
- OThemePixmap* uncached( WidgetType widget ) const;
- /**
- * Returns the pixmap for the given widget at the specified width and
- * height. This will return NULL if no pixmap or gradient is specified.
- * It may also return a different sized pixmap if the scaling
- * is set to Tiled. When using this method, you should call it using
- * the needed width and height then use QPainter::drawTiledPixmap to
- * paint it. Doing this, if the pixmap is scaled it will be the proper
- * size, otherwise it will be tiled.
- *
- * @param w Requested width.
- * @param h Requested height.
- * @param widget Widget type.
- * @return The pixmap or NULL if one is not specified.
- */
- virtual OThemePixmap *scalePixmap( int w, int h, WidgetType widget );
- /**
- * This method reads a configuration file and applies it to the user's
- * kstylerc file. It does not signal applications to reload via the
- * KDEChangeGeneral atom, if you want to do this you must do so yourself.
- * See kcmdisplay's general.cpp for an example.
- *
- * @param file The configuration file to apply.
- */
- static void applyConfigFile( const QString &file );
+ /**
+ * Constructs a new OThemeBase object.
+ */
+ OThemeBase( const QString &configFile );
+ ~OThemeBase();
+ /**
+ * Describes if a pixmap should be scaled fully, horizontally, vertically,
+ * or not at all and tiled.
+ */
+ enum ScaleHint{FullScale, HorizontalScale, VerticalScale, TileScale};
+ /**
+ * The default arrow types.
+ */
+ enum ArrowStyle{MotifArrow, LargeArrow, SmallArrow};
+ /**
+ * The default frame shading styles.
+ */
+ enum ShadeStyle{Motif, Windows, Next, KDE};
+ /**
+ * The default scrollbar button layout. BottomLeft is like what Next
+ * uses, BottomRight is like Platinum, and Opposite it like Windows and
+ * Motif.
+ */
+ enum SButton{SBBottomLeft, SBBottomRight, SBOpposite};
+ /**
+ * The gradient types. Horizontal is left to right, Vertical is top to
+ * bottom, and diagonal is upper-left to bottom-right.
+ */
+ enum Gradient{GrNone, GrHorizontal, GrVertical, GrDiagonal, GrPyramid,
+ GrRectangle, GrElliptic, GrReverseBevel};
+ /**
+ * This provides a list of widget types that OThemeBase recognizes.
+ */
+ /* Internal note: The order here is important. Some widgets inherit
+ * properties. This is usually for when you have two settings for the
+ * same widget, ie: on(sunken), and off. The on settings will inherit
+ * the properties of the off one when nothing is specified in the config.
+ *
+ * In order to be able to handle this while still having everything in
+ * one group that is easy to loop from we have the following order:
+ * unsunked(off) items, sunken(on)items, and then the ones that don't
+ * matter. INHERIT_ITEMS define the number of widgets that have inheritence
+ * so if 0 == PushButtonOff then INHERIT_ITEMS should == PushButtonOn
+ * and so on. WIDGETS define the total number of widgets.
+ */
+ enum WidgetType{
+ // Off (unsunken widgets)
+ PushButton = 0, ComboBox, HScrollBarSlider, VScrollBarSlider, Bevel,
+ ToolButton, ScrollButton, HScrollDeco, VScrollDeco,
+ ComboDeco, MenuItem, InactiveTab, ArrowUp, ArrowDown, ArrowLeft,
+ ArrowRight,
+ // On (sunken widgets)
+ PushButtonDown, ComboBoxDown, HScrollBarSliderDown,
+ VScrollBarSliderDown, BevelDown, ToolButtonDown, ScrollButtonDown,
+ HScrollDecoDown, VScrollDecoDown, ComboDecoDown, MenuItemDown,
+ ActiveTab, SunkenArrowUp, SunkenArrowDown, SunkenArrowLeft,
+ SunkenArrowRight,
+ // Everything else (indicators must have separate settings)
+ HScrollGroove, VScrollGroove, Slider, SliderGroove, IndicatorOn,
+ IndicatorOff, ExIndicatorOn, ExIndicatorOff, HBarHandle, VBarHandle,
+ ToolBar, Splitter, CheckMark, MenuBar, DisArrowUp, DisArrowDown,
+ DisArrowLeft, DisArrowRight, ProgressBar, ProgressBg, MenuBarItem,
+ Background};
+
+ /**
+ * The scaling type specified by the Config file.
+ *
+ * @param widget A Widgets enum value.
+ *
+ * @return A ScaleHint enum value.
+ */
+ ScaleHint scaleHint( WidgetType widget ) const;
+ /**
+ * The gradient type specified by the KConfig file.
+ *
+ * @param widget A Widgets enum value.
+ *
+ * @return A Gradient enum value.
+ */
+ Gradient gradientHint( WidgetType widget ) const;
+ /**
+ * The color group specified for a given widget.
+ * If a color group is set in the theme configuration
+ * that is used, otherwise defaultColor is returned.
+ *
+ * @param defaultColor The colorGroup to set if one is available.
+ *
+ * @param widget The widget whose color group to retrieve.
+ *
+ */
+ const QColorGroup* colorGroup( const QColorGroup &defaultGroup,
+ WidgetType widget ) const;
+
+ QBrush pixmapBrush( const QColorGroup &group, QColorGroup::ColorRole role,
+ int w, int h, WidgetType widget );
+ /**
+ * True if the widget has a pixmap or gradient specified.
+ */
+ bool isPixmap( WidgetType widget ) const;
+ /**
+ * True if the widget has a color group specified.
+ */
+ bool isColor( WidgetType widget ) const;
+ /**
+ * True if the user specified a 3D focus rectangle
+ */
+ bool is3DFocus() const;
+ /**
+ * If the user specified a 3D focus rectangle, they may also specify an
+ * offset from the default rectangle to use when drawing it. This returns
+ * the specified offset.
+ */
+ int focusOffset() const;
+ /**
+ * The border width of the specified widget.
+ */
+ int borderWidth( WidgetType widget ) const;
+ /**
+ * Pixmap border width of the specified widget.
+ */
+ int pixBorderWidth( WidgetType widget ) const;
+ /**
+ * Returns the border pixmap if enabled for the specified widget. This
+ * will contain the originial pixmap, plus the edges separated in
+ * OThemePixmap::border() if valid. If invalid it will return NULL.
+ */
+ OThemePixmap* borderPixmap( WidgetType widget );
+ /**
+ * The highlight width of the specified widget.
+ */
+ int highlightWidth( WidgetType widget ) const;
+ /**
+ * The border plus highlight width of the widget.
+ */
+ int decoWidth( WidgetType widget ) const;
+ /**
+ * The extent (width for vertical, height for horizontal) requested
+ * for the scrollbars.
+ */
+ int getSBExtent() const;
+ /**
+ * The scrollbar button layout.
+ */
+ SButton scrollBarLayout() const;
+ /**
+ * The arrow type.
+ */
+ ArrowStyle arrowType() const;
+ /**
+ * The shading type.
+ */
+ ShadeStyle shade() const;
+ /**
+ * The frame width.
+ */
+ int frameWidth() const;
+ /**
+ * The splitter width.
+ */
+ int splitWidth() const;
+ /**
+ * The contrast for some bevel effects such as reverse gradient.
+ */
+ int bevelContrast( WidgetType widget ) const;
+ /**
+ * The button text X shift.
+ */
+ int buttonXShift() const;
+ /**
+ * The button text Y shift.
+ */
+ int buttonYShift() const;
+ /**
+ * Returns either the slider length of the slider pixmap if available,
+ * otherwise the length specified in the config file.
+ */
+ int sliderButtonLength() const;
+ /**
+ * True if rounded buttons are requested.
+ */
+ bool roundButton() const;
+ /**
+ * True if rounded comboboxes are requested.
+ */
+ bool roundComboBox() const;
+ /**
+ * True if rounded slider grooves are requested.
+ */
+ bool roundSlider() const;
+ /**
+ * True if a line should be drawn on the bottom of active tabs.
+ */
+ bool activeTabLine() const;
+ /**
+ * True if a line should be drawn on the bottom of inactive tabs.
+ */
+ bool inactiveTabLine() const;
+ /**
+ * Returns the current uncached pixmap for the given widget. This will
+ * usually be either the last scaled or gradient pixmap if those have
+ * been specified in the config file, the original pixmap if not, or NULL
+ * if no pixmap has been specified.
+ */
+ OThemePixmap* uncached( WidgetType widget ) const;
+ /**
+ * Returns the pixmap for the given widget at the specified width and
+ * height. This will return NULL if no pixmap or gradient is specified.
+ * It may also return a different sized pixmap if the scaling
+ * is set to Tiled. When using this method, you should call it using
+ * the needed width and height then use QPainter::drawTiledPixmap to
+ * paint it. Doing this, if the pixmap is scaled it will be the proper
+ * size, otherwise it will be tiled.
+ *
+ * @param w Requested width.
+ * @param h Requested height.
+ * @param widget Widget type.
+ * @return The pixmap or NULL if one is not specified.
+ */
+ virtual OThemePixmap *scalePixmap( int w, int h, WidgetType widget );
+ /**
+ * This method reads a configuration file and applies it to the user's
+ * kstylerc file. It does not signal applications to reload via the
+ * KDEChangeGeneral atom, if you want to do this you must do so yourself.
+ * See kcmdisplay's general.cpp for an example.
+ *
+ * @param file The configuration file to apply.
+ */
+ static void applyConfigFile( const QString &file );
protected:
- /**
- * Returns a QImage for the given widget if the widget is scaled, NULL
- * otherwise. QImages of the original pixmap are stored for scaled
- * widgets in order to facilitate fast and accurate smooth-scaling. This
- * also saves us a conversion from a pixmap to an image then back again.
- */
- QImage* image( WidgetType widget ) const;
- /**
- * Returns the gradient high color if one is specified, NULL otherwise.
- */
- QColor* gradientHigh( WidgetType widget ) const;
- /**
- * Returns the gradient low color if one is specified, NULL otherwise.
- */
- QColor* gradientLow( WidgetType widget ) const;
- /**
- * Reads in all the configuration file entries supported.
- *
- * @param colorStyle The style for the color groups. In KDE, colors were
- * calculated a little differently for Motif vs Windows styles. This
- * is obsolete.
- */
- void readConfig( Qt::GUIStyle colorStyle = Qt::WindowsStyle );
- void readWidgetConfig( int i, Config *config, QString *pixnames,
- QString *brdnames, bool *loadArray );
- void copyWidgetConfig( int sourceID, int destID, QString *pixnames,
- QString *brdnames );
- /**
- * Makes a full color group based on the given foreground and background
- * colors. This is the same code used by KDE (kapp.cpp) in previous
- * versions.
- */
- QColorGroup* makeColorGroup( QColor &fg, QColor &bg,
- Qt::GUIStyle style = Qt::WindowsStyle );
- OThemePixmap* scale( int w, int h, WidgetType widget );
- OThemePixmap* scaleBorder( int w, int h, WidgetType type );
- OThemePixmap* gradient( int w, int h, WidgetType widget );
- OThemePixmap* blend( WidgetType widget );
- void generateBorderPix( int i );
- void applyResourceGroup( Config *config, int i, QString *copyfrom, QString *pixnames, QString *brdnames );
- void applyMiscResourceGroup( Config *config );
- void readResourceGroup( int i, QString *copyfrom, QString *pixnames, QString *brdnames,
- bool *loadArray );
- void readMiscResourceGroup();
- /**
- * Attempts to load a pixmap from the default OThemeBase locations.
- */
- OThemePixmap* loadPixmap( QString &name );
- /**
- * Attempts to load a image from the default OThemeBase locations.
- */
- QImage* loadImage( QString &name );
+ /**
+ * Returns a QImage for the given widget if the widget is scaled, NULL
+ * otherwise. QImages of the original pixmap are stored for scaled
+ * widgets in order to facilitate fast and accurate smooth-scaling. This
+ * also saves us a conversion from a pixmap to an image then back again.
+ */
+ QImage* image( WidgetType widget ) const;
+ /**
+ * Returns the gradient high color if one is specified, NULL otherwise.
+ */
+ QColor* gradientHigh( WidgetType widget ) const;
+ /**
+ * Returns the gradient low color if one is specified, NULL otherwise.
+ */
+ QColor* gradientLow( WidgetType widget ) const;
+ /**
+ * Reads in all the configuration file entries supported.
+ *
+ * @param colorStyle The style for the color groups. In KDE, colors were
+ * calculated a little differently for Motif vs Windows styles. This
+ * is obsolete.
+ */
+ void readConfig( Qt::GUIStyle colorStyle = Qt::WindowsStyle );
+ void readWidgetConfig( int i, Config *config, QString *pixnames,
+ QString *brdnames, bool *loadArray );
+ void copyWidgetConfig( int sourceID, int destID, QString *pixnames,
+ QString *brdnames );
+ /**
+ * Makes a full color group based on the given foreground and background
+ * colors. This is the same code used by KDE (kapp.cpp) in previous
+ * versions.
+ */
+ QColorGroup* makeColorGroup( QColor &fg, QColor &bg,
+ Qt::GUIStyle style = Qt::WindowsStyle );
+ OThemePixmap* scale( int w, int h, WidgetType widget );
+ OThemePixmap* scaleBorder( int w, int h, WidgetType type );
+ OThemePixmap* gradient( int w, int h, WidgetType widget );
+ OThemePixmap* blend( WidgetType widget );
+ void generateBorderPix( int i );
+ void applyResourceGroup( Config *config, int i, QString *copyfrom, QString *pixnames, QString *brdnames );
+ void applyMiscResourceGroup( Config *config );
+ void readResourceGroup( int i, QString *copyfrom, QString *pixnames, QString *brdnames,
+ bool *loadArray );
+ void readMiscResourceGroup();
+ /**
+ * Attempts to load a pixmap from the default OThemeBase locations.
+ */
+ OThemePixmap* loadPixmap( QString &name );
+ /**
+ * Attempts to load a image from the default OThemeBase locations.
+ */
+ QImage* loadImage( QString &name );
private:
- SButton sbPlacement;
- ArrowStyle arrowStyle;
- ShadeStyle shading;
- int defaultFrame;
- int btnXShift, btnYShift;
- int sliderLen;
- int splitterWidth;
- int focus3DOffset;
- int sbExtent;
- bool smallGroove;
- bool roundedButton, roundedCombo, roundedSlider;
- bool aTabLine, iTabLine;
- bool focus3D;
- OThemeCache *cache;
- int cacheSize;
- QString configFileName;
- QString configFilePath;
+ SButton sbPlacement;
+ ArrowStyle arrowStyle;
+ ShadeStyle shading;
+ int defaultFrame;
+ int btnXShift, btnYShift;
+ int sliderLen;
+ int splitterWidth;
+ int focus3DOffset;
+ int sbExtent;
+ bool smallGroove;
+ bool roundedButton, roundedCombo, roundedSlider;
+ bool aTabLine, iTabLine;
+ bool focus3D;
+ OThemeCache *cache;
+ int cacheSize;
+ QString configFileName;
+ QString configFilePath;
protected:
- QColor fgcolor, bgcolor, selfgcolor, selbgcolor, winfgcolor, winbgcolor;
+ QColor fgcolor, bgcolor, selfgcolor, selbgcolor, winfgcolor, winbgcolor;
private:
- /**
- * The theme pixmaps. Many of these may be NULL if no pixmap is specified.
- * There may also be duplicate pixmap pointers if more than one widget
- * uses the same tiled pixmap. If a pixmap is tiled, it is kept here and
- * this acts as a cache. Otherwise this will hold whatever the last scaled
- * pixmap was.
- */
- OThemePixmap *pixmaps[ WIDGETS ];
- /**
- * The theme images. These are for scaled images and are kept in order
- * to maintain fast smoothscaling.
- */
- QImage *images[ WIDGETS ];
- /**
- * The border widths
- */
- unsigned char borders[ WIDGETS ];
- /**
- * The highlight widths
- */
- unsigned char highlights[ WIDGETS ];
- /**
- * The scale hints for pixmaps and gradients.
- */
- ScaleHint scaleHints[ WIDGETS ];
- /**
- * All the color groups.
- */
- QColorGroup *colors[ WIDGETS ];
- /**
- * Gradient low colors (or blend background).
- */
- QColor *grLowColors[ WIDGETS ];
- /**
- * Gradient high colors.
- */
- QColor *grHighColors[ WIDGETS ];
- /**
- * Gradient types.
- */
- Gradient gradients[ WIDGETS ];
- /**
- * Blend intensity factors
- */
- float blends[ WIDGETS ];
- /**
- * Bevel contrasts
- */
- unsigned char bContrasts[ WIDGETS ];
- /**
- * Duplicate pixmap entries (used during destruction).
- */
- bool duplicate[ WIDGETS ];
- /**
- * Pixmapped border widths
- */
- int pbWidth[ WIDGETS ];
- /**
- * Pixmapped borders
- */
- OThemePixmap *pbPixmaps[ WIDGETS ];
- /**
- * Duplicate border pixmapped border entries
- */
- bool pbDuplicate[ WIDGETS ];
+ /**
+ * The theme pixmaps. Many of these may be NULL if no pixmap is specified.
+ * There may also be duplicate pixmap pointers if more than one widget
+ * uses the same tiled pixmap. If a pixmap is tiled, it is kept here and
+ * this acts as a cache. Otherwise this will hold whatever the last scaled
+ * pixmap was.
+ */
+ OThemePixmap *pixmaps[ WIDGETS ];
+ /**
+ * The theme images. These are for scaled images and are kept in order
+ * to maintain fast smoothscaling.
+ */
+ QImage *images[ WIDGETS ];
+ /**
+ * The border widths
+ */
+ unsigned char borders[ WIDGETS ];
+ /**
+ * The highlight widths
+ */
+ unsigned char highlights[ WIDGETS ];
+ /**
+ * The scale hints for pixmaps and gradients.
+ */
+ ScaleHint scaleHints[ WIDGETS ];
+ /**
+ * All the color groups.
+ */
+ QColorGroup *colors[ WIDGETS ];
+ /**
+ * Gradient low colors (or blend background).
+ */
+ QColor *grLowColors[ WIDGETS ];
+ /**
+ * Gradient high colors.
+ */
+ QColor *grHighColors[ WIDGETS ];
+ /**
+ * Gradient types.
+ */
+ Gradient gradients[ WIDGETS ];
+ /**
+ * Blend intensity factors
+ */
+ float blends[ WIDGETS ];
+ /**
+ * Bevel contrasts
+ */
+ unsigned char bContrasts[ WIDGETS ];
+ /**
+ * Duplicate pixmap entries (used during destruction).
+ */
+ bool duplicate[ WIDGETS ];
+ /**
+ * Pixmapped border widths
+ */
+ int pbWidth[ WIDGETS ];
+ /**
+ * Pixmapped borders
+ */
+ OThemePixmap *pbPixmaps[ WIDGETS ];
+ /**
+ * Duplicate border pixmapped border entries
+ */
+ bool pbDuplicate[ WIDGETS ];
private:
- class OThemeBasePrivate;
- OThemeBasePrivate *d;
+ class OThemeBasePrivate;
+ OThemeBasePrivate *d;
};
inline bool OThemeBase::isPixmap( WidgetType widget ) const
{
- return ( pixmaps[ widget ] != NULL || gradients[ widget ] != GrNone );
+ return ( pixmaps[ widget ] != NULL || gradients[ widget ] != GrNone );
}
inline bool OThemeBase::isColor( WidgetType widget ) const
{
- return ( colors[ widget ] != NULL );
+ return ( colors[ widget ] != NULL );
}
inline bool OThemeBase::is3DFocus() const
{
- return ( focus3D );
+ return ( focus3D );
}
inline int OThemeBase::focusOffset() const
{
- return ( focus3DOffset );
+ return ( focus3DOffset );
}
inline int OThemeBase::bevelContrast( WidgetType widget ) const
{
- return ( bContrasts[ widget ] );
+ return ( bContrasts[ widget ] );
}
inline OThemeBase::ScaleHint OThemeBase::scaleHint( WidgetType widget ) const
{
- return ( ( widget < WIDGETS ) ? scaleHints[ widget ] : TileScale );
+ return ( ( widget < WIDGETS ) ? scaleHints[ widget ] : TileScale );
}
inline OThemeBase::Gradient OThemeBase::gradientHint( WidgetType widget ) const
{
- return ( ( widget < WIDGETS ) ? gradients[ widget ] : GrNone );
+ return ( ( widget < WIDGETS ) ? gradients[ widget ] : GrNone );
}
inline OThemePixmap* OThemeBase::uncached( WidgetType widget ) const
{
- return ( pixmaps[ widget ] );
+ return ( pixmaps[ widget ] );
}
inline QBrush OThemeBase::pixmapBrush( const QColorGroup &group,
QColorGroup::ColorRole role,
int w, int h, WidgetType widget )
{
- if ( pixmaps[ widget ] || images[ widget ] )
- return ( QBrush( group.color( role ), *scalePixmap( w, h, widget ) ) );
- else
- return ( group.color( role ) );
+ if ( pixmaps[ widget ] || images[ widget ] )
+ return ( QBrush( group.color( role ), *scalePixmap( w, h, widget ) ) );
+ else
+ return ( group.color( role ) );
}
inline const QColorGroup* OThemeBase::colorGroup( const QColorGroup &defaultGroup,
WidgetType widget ) const
{
- return ( ( colors[ widget ] ) ? colors[ widget ] : &defaultGroup );
+ return ( ( colors[ widget ] ) ? colors[ widget ] : &defaultGroup );
}
inline int OThemeBase::borderWidth( WidgetType widget ) const
{
- return ( pbWidth[ widget ] ? pbWidth[ widget ] : borders[ widget ] );
+ return ( pbWidth[ widget ] ? pbWidth[ widget ] : borders[ widget ] );
}
inline int OThemeBase::pixBorderWidth( WidgetType widget ) const
{
- return ( pbWidth[ widget ] );
+ return ( pbWidth[ widget ] );
}
inline int OThemeBase::highlightWidth( WidgetType widget ) const
{
- return ( pbWidth[ widget ] ? 0 : highlights[ widget ] );
+ return ( pbWidth[ widget ] ? 0 : highlights[ widget ] );
}
inline int OThemeBase::decoWidth( WidgetType widget ) const
{
- return ( pbWidth[ widget ] ? pbWidth[ widget ] : borders[ widget ] + highlights[ widget ] );
+ return ( pbWidth[ widget ] ? pbWidth[ widget ] : borders[ widget ] + highlights[ widget ] );
}
inline QColor* OThemeBase::gradientHigh( WidgetType widget ) const
{
- return ( grHighColors[ widget ] );
+ return ( grHighColors[ widget ] );
}
inline QColor* OThemeBase::gradientLow( WidgetType widget ) const
{
- return ( grLowColors[ widget ] );
+ return ( grLowColors[ widget ] );
}
inline QImage* OThemeBase::image( WidgetType widget ) const
{
- return ( images[ widget ] );
+ return ( images[ widget ] );
}
inline OThemeBase::SButton OThemeBase::scrollBarLayout() const
{
- return ( sbPlacement );
+ return ( sbPlacement );
}
inline OThemeBase::ArrowStyle OThemeBase::arrowType() const
{
- return ( arrowStyle );
+ return ( arrowStyle );
}
inline OThemeBase::ShadeStyle OThemeBase::shade() const
{
- return ( shading );
+ return ( shading );
}
inline int OThemeBase::frameWidth() const
{
- return ( defaultFrame );
+ return ( defaultFrame );
}
inline int OThemeBase::buttonXShift() const
{
- return ( btnXShift );
+ return ( btnXShift );
}
inline int OThemeBase::splitWidth() const
{
- return ( splitterWidth );
+ return ( splitterWidth );
}
inline int OThemeBase::buttonYShift() const
{
- return ( btnYShift );
+ return ( btnYShift );
}
inline int OThemeBase::sliderButtonLength() const
{
- if ( isPixmap( Slider ) )
- return ( uncached( Slider ) ->width() );
- else
- return ( sliderLen );
+ if ( isPixmap( Slider ) )
+ return ( uncached( Slider ) ->width() );
+ else
+ return ( sliderLen );
}
inline bool OThemeBase::roundButton() const
{
- return ( roundedButton );
+ return ( roundedButton );
}
inline bool OThemeBase::roundComboBox() const
{
- return ( roundedCombo );
+ return ( roundedCombo );
}
inline bool OThemeBase::roundSlider() const
{
- return ( roundedSlider );
+ return ( roundedSlider );
}
inline bool OThemeBase::activeTabLine() const
{
- return ( aTabLine );
+ return ( aTabLine );
}
inline bool OThemeBase::inactiveTabLine() const
{
- return ( iTabLine );
+ return ( iTabLine );
}
inline int OThemeBase::getSBExtent() const
{
- return ( sbExtent );
+ return ( sbExtent );
}
inline OThemePixmap* OThemeBase::borderPixmap( WidgetType widget )
{
- return ( pbPixmaps[ widget ] );
+ return ( pbPixmaps[ widget ] );
}
#endif