diff options
Diffstat (limited to 'kwin/clients/keramik/keramik.h')
-rw-r--r-- | kwin/clients/keramik/keramik.h | 202 |
1 files changed, 0 insertions, 202 deletions
diff --git a/kwin/clients/keramik/keramik.h b/kwin/clients/keramik/keramik.h deleted file mode 100644 index 8e4a98518..000000000 --- a/kwin/clients/keramik/keramik.h +++ /dev/null @@ -1,202 +0,0 @@ -/* - * - * Keramik KWin client (version 0.8) - * - * Copyright (C) 2002 Fredrik H�glund <[email protected]> - * - * 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 __KERAMIK_H -#define __KERAMIK_H - -#include <tqbutton.h> -#include <kdecoration.h> -#include <kdecorationfactory.h> - -#include "tiles.h" - -class TQSpacerItem; - -namespace Keramik { - - enum TilePixmap { TitleLeft=0, TitleCenter, TitleRight, - CaptionSmallLeft, CaptionSmallCenter, CaptionSmallRight, - CaptionLargeLeft, CaptionLargeCenter, CaptionLargeRight, - GrabBarLeft, GrabBarCenter, GrabBarRight, - BorderLeft, BorderRight, NumTiles }; - - enum Button { MenuButton=0, OnAllDesktopsButton, HelpButton, MinButton, - MaxButton, CloseButton, AboveButton, BelowButton, ShadeButton, - NumButtons }; - - enum ButtonDeco { Menu=0, OnAllDesktops, NotOnAllDesktops, Help, Minimize, Maximize, - Restore, Close, AboveOn, AboveOff, BelowOn, BelowOff, ShadeOn, ShadeOff, - NumButtonDecos }; - - struct SettingsCache - { - bool largeGrabBars:1; - bool smallCaptionBubbles:1; - }; - - class KeramikHandler : public KDecorationFactory - { - public: - KeramikHandler(); - ~KeramikHandler(); - - virtual TQValueList< BorderSize > borderSizes() const; - virtual bool reset( unsigned long changed ); - virtual KDecoration* createDecoration( KDecorationBridge* ); - virtual bool supports( Ability ability ); - - bool showAppIcons() const { return showIcons; } - bool useShadowedText() const { return shadowedText; } - bool largeCaptionBubbles() const { return !smallCaptionBubbles; } - - int titleBarHeight( bool large ) const { - return ( large ? activeTiles[CaptionLargeCenter]->height() - : activeTiles[CaptionSmallCenter]->height() ); - } - - int grabBarHeight() const - { return activeTiles[GrabBarCenter]->height(); } - - const TQPixmap *roundButton() const { return titleButtonRound; } - const TQPixmap *squareButton() const { return titleButtonSquare; } - const TQBitmap *buttonDeco( ButtonDeco deco ) const - { return buttonDecos[ deco ]; } - - inline const TQPixmap *tile( TilePixmap tilePix, bool active ) const; - - private: - void readConfig(); - void createPixmaps(); - void destroyPixmaps(); - - void addWidth (int width, TQPixmap *&pix, bool left, TQPixmap *bottomPix); - void addHeight (int height, TQPixmap *&pix); - void flip( TQPixmap *&, TQPixmap *& ); - void pretile( TQPixmap *&, int, Qt::Orientation ); - TQPixmap *composite( TQImage *, TQImage * ); - TQImage *loadImage( const TQString &, const TQColor & ); - TQPixmap *loadPixmap( const TQString &, const TQColor & ); - - bool showIcons:1, shadowedText:1, - smallCaptionBubbles:1, largeGrabBars:1; - SettingsCache *settings_cache; - KeramikImageDb *imageDb; - - TQPixmap *activeTiles[ NumTiles ]; - TQPixmap *inactiveTiles[ NumTiles ]; - TQBitmap *buttonDecos[ NumButtonDecos ]; - - TQPixmap *titleButtonRound, *titleButtonSquare; - - }; // class KeramikHandler - - class KeramikClient; - class KeramikButton : public TQButton - { - public: - KeramikButton( KeramikClient *, const char *, Button, const TQString &, const int realizeBtns = Qt::LeftButton ); - ~KeramikButton(); - - ButtonState lastButton() const { return lastbutton; } - - private: - void enterEvent( TQEvent * ); - void leaveEvent( TQEvent * ); - void mousePressEvent( TQMouseEvent * ); - void mouseReleaseEvent( TQMouseEvent * ); - void drawButton( TQPainter * ); - - private: - KeramikClient *client; - Button button; - bool hover; - ButtonState lastbutton; - int realizeButtons; - }; // class KeramikButton - - - class KeramikClient : public KDecoration - { - Q_OBJECT - - public: - - KeramikClient( KDecorationBridge* bridge, KDecorationFactory* factory ); - ~KeramikClient(); - virtual void init(); - virtual void reset( unsigned long changed ); - virtual Position mousePosition( const TQPoint& p ) const; - virtual void borders( int& left, int& right, int& top, int& bottom ) const; - virtual void resize( const TQSize& s ); - virtual TQSize tqminimumSize() const; - virtual bool eventFilter( TQObject* o, TQEvent* e ); - virtual void activeChange(); - virtual void captionChange(); - virtual void maximizeChange(); - virtual void desktopChange(); - virtual void shadeChange(); - - private: - void createLayout(); - void addButtons( TQBoxLayout*, const TQString & ); - void updateMask(); // FRAME - void updateCaptionBuffer(); - void iconChange(); - void resizeEvent( TQResizeEvent *); // FRAME - void paintEvent( TQPaintEvent *); // FRAME - void mouseDoubleClickEvent( TQMouseEvent * ); // FRAME - void wheelEvent( TQWheelEvent *); //FRAME - int width() const { return widget()->width(); } - int height() const { return widget()->height(); } - - void calculateCaptionRect(); - - inline bool maximizedVertical() const { - return ( maximizeMode() & MaximizeVertical ); - } - bool isModalSystemNotification(); - - private slots: - void menuButtonPressed(); - void slotMaximize(); - void slotAbove(); - void slotBelow(); - void slotShade(); - void keepAboveChange( bool ); - void keepBelowChange( bool ); - - private: - TQSpacerItem *topSpacer, *titlebar; - KeramikButton *button[ NumButtons ]; - TQRect captionRect; - TQPixmap captionBuffer; - TQPixmap *activeIcon, *inactiveIcon; - bool captionBufferDirty:1, maskDirty:1; - bool largeCaption:1, largeTitlebar:1; - }; // class KeramikClient - -} // namespace Keramik - -#endif // ___KERAMIK_H - -// vim: set noet ts=4 sw=4: |