plastikclient.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef KNIFTYCLIENT_H
00024 #define KNIFTYCLIENT_H
00025
00026 #include <kdecoration.h>
00027 #include "plastik.h"
00028
00029 class QSpacerItem;
00030 class QVBoxLayout;
00031 class QBoxLayout;
00032
00033 namespace KWinPlastik {
00034
00035 class PlastikButton;
00036
00037 class PlastikClient : public KDecoration
00038 {
00039 Q_OBJECT
00040 public:
00041 PlastikClient(KDecorationBridge* bridge, KDecorationFactory* factory);
00042 ~PlastikClient();
00043
00044 virtual void init();
00045
00046 virtual void borders( int& left, int& right, int& top, int& bottom ) const;
00047 virtual void resize(const QSize&);
00048 virtual QSize minimumSize() const;
00049 virtual void show();
00050 virtual bool eventFilter( QObject* o, QEvent* e );
00051
00052 QPixmap getTitleBarTile(bool active) const
00053 {
00054 return active ? *aTitleBarTile : *iTitleBarTile;
00055 }
00056 protected:
00057 virtual void resizeEvent();
00058 virtual void paintEvent(QPaintEvent *e);
00059 virtual void mouseDoubleClickEvent(QMouseEvent *e);
00060
00061 virtual void maximizeChange();
00062 virtual void desktopChange();
00063 virtual void shadeChange();
00064 virtual void doShape();
00065
00066 virtual void reset( unsigned long changed );
00067
00068 virtual void captionChange();
00069 virtual void iconChange();
00070 virtual void activeChange();
00071 virtual Position mousePosition(const QPoint &point) const;
00072
00073 private slots:
00074 void keepAboveChange(bool above);
00075 void keepBelowChange(bool below);
00076 void slotMaximize();
00077 void slotShade();
00078 void slotKeepAbove();
00079 void slotKeepBelow();
00080 void menuButtonPressed();
00081 void menuButtonReleased();
00082 bool isTool();
00083 private:
00084 void _resetLayout();
00085 void addButtons(QBoxLayout* layout, const QString& buttons, int buttonSize = 18);
00086
00087 QVBoxLayout *mainLayout_;
00088 QSpacerItem *topSpacer_,
00089 *titleSpacer_,
00090 *leftTitleSpacer_, *rightTitleSpacer_,
00091 *decoSpacer_,
00092 *leftSpacer_, *rightSpacer_,
00093 *bottomSpacer_;
00094
00095 QPixmap *aCaptionBuffer, *iCaptionBuffer;
00096 void update_captionBuffer();
00097
00098 QPixmap *aTitleBarTile, *iTitleBarTile, *aTitleBarTopTile, *iTitleBarTopTile;
00099 bool pixmaps_created;
00100 void create_pixmaps();
00101 void delete_pixmaps();
00102
00103 PlastikButton *m_button[NumButtons];
00104
00105 bool captionBufferDirty;
00106
00107 bool closing;
00108
00109
00110 int s_titleHeight;
00111 QFont s_titleFont;
00112 };
00113
00114 }
00115
00116 #endif // KNIFTCLIENT_H
This file is part of the documentation for kwin Library Version 3.4.3.