/* IaOra KWin window decoration Based on plastik theme Copyright (C) 2003-2005 Sandro Giessl based on the window decoration "Web": Copyright (C) 2001 Rik Hemsley (rikkus) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef IAORA_H #define IAORA_H #include #include #include namespace KWinIaOra { enum ColorType { TitleGradient1 = 0, // top TitleGradient2, TitleGradient3, // bottom TitleGradient4, ShadeTitleLight, ShadeTitleDark, Border1, Border2, Border3, TitleFont, TitleBorder }; enum Pixmaps { TitleBarTileTop=0, TitleBarTile, TitleBarLeft, TitleBarRight, BorderLeftTile, BorderRightTile, BorderBottomTile, BorderBottomLeft, BorderBottomRight, NumPixmaps }; enum ButtonIcon { CloseIcon = 0, MaxIcon, MaxRestoreIcon, MinIcon, HelpIcon, OnAllDesktopsIcon, NotOnAllDesktopsIcon, KeepAboveIcon, NoKeepAboveIcon, KeepBelowIcon, NoKeepBelowIcon, ShadeIcon, UnShadeIcon, NumButtonIcons }; class IaOraHandler: public QObject, public KDecorationFactory { Q_OBJECT public: IaOraHandler(); ~IaOraHandler(); virtual bool reset( unsigned long changed ); virtual KDecoration* createDecoration( KDecorationBridge* ); virtual bool supports( Ability ability ); const QPixmap &pixmap(Pixmaps type, bool active, bool toolWindow); const QBitmap &buttonBitmap(ButtonIcon type, const QSize &size, bool toolWindow); int titleHeight()const { return m_titleHeight; } int titleHeightTool()const { return m_titleHeightTool; } const QFont &titleFont() { return m_titleFont; } const QFont &titleFontTool() { return m_titleFontTool; } bool titleShadow()const { return m_titleShadow; } bool menuClose()const { return m_menuClose; } bool reverseLayout()const { return m_reverse; } QColor getColor(KWinIaOra::ColorType type, const bool active = true); QColor getGradientColor( KWinIaOra::ColorType type, const bool active); QColor getBorderColor( KWinIaOra::ColorType type, const bool active); QColor getShadowColor(); private: void readConfig(); void pretile(QPixmap *&pix, int size, Qt::Orientation dir) const; bool m_titleShadow; bool m_menuClose; bool m_reverse; int m_titleHeight; int m_titleHeightTool; QFont m_titleFont; QFont m_titleFontTool; // pixmap cache QPixmap *m_pixmaps[2][2][NumPixmaps]; // button pixmaps have normal+pressed state... QBitmap *m_bitmaps[2][NumButtonIcons]; }; IaOraHandler* Handler(); } // KWinPlastik #endif // IAORA_H