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 KDecorationOptions;
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 protected:
00051 virtual void resizeEvent( QResizeEvent* );
00052 private:
00053 void positionPreviews();
00054 KDecorationOptions* options;
00055 KDecorationPreviewBridge* bridge[NumWindows];
00056 KDecoration* deco[NumWindows];
00057 QLabel* no_preview;
00058 QRegion mask;
00059 };
00060
00061 class KDecorationPreviewBridge
00062 : public KDecorationBridge
00063 {
00064 public:
00065 KDecorationPreviewBridge( KDecorationPreview* preview, bool active );
00066 virtual bool isActive() const;
00067 virtual bool isCloseable() const;
00068 virtual bool isMaximizable() const;
00069 virtual MaximizeMode maximizeMode() const;
00070 virtual bool isMinimizable() const;
00071 virtual bool providesContextHelp() const;
00072 virtual int desktop() const;
00073 virtual bool isModal() const;
00074 virtual bool isShadeable() const;
00075 virtual bool isShade() const;
00076 virtual bool isSetShade() const;
00077 virtual bool keepAbove() const;
00078 virtual bool keepBelow() const;
00079 virtual bool isMovable() const;
00080 virtual bool isResizable() const;
00081 virtual NET::WindowType windowType( unsigned long supported_types ) const;
00082 virtual QIconSet icon() const;
00083 virtual QString caption() const;
00084 virtual void processMousePressEvent( QMouseEvent* );
00085 virtual void showWindowMenu( QPoint );
00086 virtual void performWindowOperation( WindowOperation );
00087 virtual void setMask( const QRegion&, int );
00088 virtual bool isPreview() const;
00089 virtual QRect geometry() const;
00090 virtual QRect iconGeometry() const;
00091 virtual QRegion unobscuredRegion( const QRegion& r ) const;
00092 virtual QWidget* workspaceWidget() const;
00093 virtual void closeWindow();
00094 virtual void maximize( MaximizeMode mode );
00095 virtual void minimize();
00096 virtual void showContextHelp();
00097 virtual void setDesktop( int desktop );
00098 virtual void titlebarDblClickOperation();
00099 virtual void setShade( bool set );
00100 virtual void setKeepAbove( bool );
00101 virtual void setKeepBelow( bool );
00102 virtual int currentDesktop() const;
00103 virtual QWidget* initialParentWidget() const;
00104 virtual Qt::WFlags initialWFlags() const;
00105 virtual void helperShowHide( bool show );
00106 virtual void grabXServer( bool grab );
00107 private:
00108 KDecorationPreview* preview;
00109 bool active;
00110 };
00111
00112 class KDecorationPreviewOptions
00113 : public KDecorationOptions
00114 {
00115 public:
00116 KDecorationPreviewOptions();
00117 virtual ~KDecorationPreviewOptions();
00118 virtual unsigned long updateSettings();
00119 };
00120
00121 class KDecorationPreviewPlugins
00122 : public KDecorationPlugins
00123 {
00124 public:
00125 KDecorationPreviewPlugins( KConfig* cfg );
00126 virtual bool provides( Requirement );
00127 };
00128
00129 inline KDecorationPreviewPlugins::KDecorationPreviewPlugins( KConfig* cfg )
00130 : KDecorationPlugins( cfg )
00131 {
00132 }
00133
00134 #endif
This file is part of the documentation for kwin Library Version 3.2.1.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Fri Mar 5 04:41:14 2004 by
doxygen 1.3.6-20040222 written by
Dimitri van Heesch, © 1997-2003