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