preview.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef KWINDECORATION_PREVIEW_H
00021 #define KWINDECORATION_PREVIEW_H
00022
00023 #include <qwidget.h>
00024 #include <kdecoration_p.h>
00025 #include <kdecoration_plugins_p.h>
00026
00027 class QLabel;
00028
00029 class KDecorationPreviewBridge;
00030 class KDecorationPreviewOptions;
00031
00032 class KDecorationPreview
00033 : public QWidget
00034 {
00035 Q_OBJECT
00036 public:
00037
00038
00039
00040 enum Windows { Inactive = 0, Active, NumWindows };
00041
00042 KDecorationPreview( QWidget* parent = NULL, const char* name = NULL );
00043 virtual ~KDecorationPreview();
00044 bool recreateDecoration( KDecorationPlugins* plugin );
00045 void enablePreview();
00046 void disablePreview();
00047 void setPreviewMask( const QRegion&, int, bool );
00048 QRegion unobscuredRegion( bool, const QRegion& ) const;
00049 QRect windowGeometry( bool ) const;
00050 void setTempBorderSize(KDecorationPlugins* plugin, KDecorationDefines::BorderSize size);
00051 void setTempButtons(KDecorationPlugins* plugin, bool customEnabled, const QString &left, const QString &right);
00052 protected:
00053 virtual void resizeEvent( QResizeEvent* );
00054 private:
00055 void positionPreviews();
00056 KDecorationPreviewOptions* options;
00057 KDecorationPreviewBridge* bridge[NumWindows];
00058 KDecoration* deco[NumWindows];
00059 QLabel* no_preview;
00060 QRegion mask;
00061 };
00062
00063 class KDecorationPreviewBridge
00064 : public KDecorationBridge
00065 {
00066 public:
00067 KDecorationPreviewBridge( KDecorationPreview* preview, bool active );
00068 virtual bool isActive() const;
00069 virtual bool isCloseable() const;
00070 virtual bool isMaximizable() const;
00071 virtual MaximizeMode maximizeMode() const;
00072 virtual bool isMinimizable() const;
00073 virtual bool providesContextHelp() const;
00074 virtual int desktop() const;
00075 virtual bool isModal() const;
00076 virtual bool isShadeable() const;
00077 virtual bool isShade() const;
00078 virtual bool isSetShade() const;
00079 virtual bool keepAbove() const;
00080 virtual bool keepBelow() const;
00081 virtual bool isMovable() const;
00082 virtual bool isResizable() const;
00083 virtual NET::WindowType windowType( unsigned long supported_types ) const;
00084 virtual QIconSet icon() const;
00085 virtual QString caption() const;
00086 virtual void processMousePressEvent( QMouseEvent* );
00087 virtual void showWindowMenu( const QRect &);
00088 virtual void showWindowMenu( QPoint );
00089 virtual void performWindowOperation( WindowOperation );
00090 virtual void setMask( const QRegion&, int );
00091 virtual bool isPreview() const;
00092 virtual QRect geometry() const;
00093 virtual QRect iconGeometry() const;
00094 virtual QRegion unobscuredRegion( const QRegion& r ) const;
00095 virtual QWidget* workspaceWidget() const;
00096 virtual WId windowId() const;
00097 virtual void closeWindow();
00098 virtual void maximize( MaximizeMode mode );
00099 virtual void minimize();
00100 virtual void showContextHelp();
00101 virtual void setDesktop( int desktop );
00102 virtual void titlebarDblClickOperation();
00103 virtual void setShade( bool set );
00104 virtual void setKeepAbove( bool );
00105 virtual void setKeepBelow( bool );
00106 virtual int currentDesktop() const;
00107 virtual QWidget* initialParentWidget() const;
00108 virtual Qt::WFlags initialWFlags() const;
00109 virtual void helperShowHide( bool show );
00110 virtual void grabXServer( bool grab );
00111 private:
00112 KDecorationPreview* preview;
00113 bool active;
00114 };
00115
00116 class KDecorationPreviewOptions
00117 : public KDecorationOptions
00118 {
00119 public:
00120 KDecorationPreviewOptions();
00121 virtual ~KDecorationPreviewOptions();
00122 virtual unsigned long updateSettings();
00123
00124 void setCustomBorderSize(BorderSize size);
00125 void setCustomTitleButtonsEnabled(bool enabled);
00126 void setCustomTitleButtons(const QString &left, const QString &right);
00127
00128 private:
00129 BorderSize customBorderSize;
00130 bool customButtonsChanged;
00131 bool customButtons;
00132 QString customTitleButtonsLeft;
00133 QString customTitleButtonsRight;
00134 };
00135
00136 class KDecorationPreviewPlugins
00137 : public KDecorationPlugins
00138 {
00139 public:
00140 KDecorationPreviewPlugins( KConfig* cfg );
00141 virtual bool provides( Requirement );
00142 };
00143
00144 inline KDecorationPreviewPlugins::KDecorationPreviewPlugins( KConfig* cfg )
00145 : KDecorationPlugins( cfg )
00146 {
00147 }
00148
00149 #endif
This file is part of the documentation for kwin Library Version 3.4.3.