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( const QRect &);
00086 virtual
void showWindowMenu( QPoint );
00087 virtual
void performWindowOperation( WindowOperation );
00088 virtual
void setMask( const QRegion&,
int );
00089 virtual
bool isPreview() const;
00090 virtual QRect geometry() const;
00091 virtual QRect iconGeometry() const;
00092 virtual QRegion unobscuredRegion( const QRegion& r ) const;
00093 virtual QWidget* workspaceWidget() const;
00094 virtual
void closeWindow();
00095 virtual
void maximize( MaximizeMode mode );
00096 virtual
void minimize();
00097 virtual
void showContextHelp();
00098 virtual
void setDesktop(
int desktop );
00099 virtual
void titlebarDblClickOperation();
00100 virtual
void setShade(
bool set );
00101 virtual
void setKeepAbove(
bool );
00102 virtual
void setKeepBelow(
bool );
00103 virtual
int currentDesktop() const;
00104 virtual QWidget* initialParentWidget() const;
00105 virtual Qt::WFlags initialWFlags() const;
00106 virtual
void helperShowHide(
bool show );
00107 virtual
void grabXServer(
bool grab );
00108 private:
00109 KDecorationPreview* preview;
00110
bool active;
00111 };
00112
00113 class KDecorationPreviewOptions
00114 : public
KDecorationOptions
00115 {
00116
public:
00117 KDecorationPreviewOptions();
00118
virtual ~KDecorationPreviewOptions();
00119
virtual unsigned long updateSettings();
00120 };
00121
00122
class KDecorationPreviewPlugins
00123 :
public KDecorationPlugins
00124 {
00125
public:
00126 KDecorationPreviewPlugins( KConfig* cfg );
00127
virtual bool provides( Requirement );
00128 };
00129
00130
inline KDecorationPreviewPlugins::KDecorationPreviewPlugins( KConfig* cfg )
00131 : KDecorationPlugins( cfg )
00132 {
00133 }
00134
00135
#endif