kwin Library API Documentation

preview.h

00001 /* 00002 * 00003 * Copyright (c) 2003 Lubos Lunak <l.lunak@kde.org> 00004 * 00005 * This program is free software; you can redistribute it and/or modify 00006 * it under the terms of the GNU General Public License as published by 00007 * the Free Software Foundation; either version 2 of the License, or 00008 * (at your option) any later version. 00009 * 00010 * This program is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 * GNU General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU General Public License 00016 * along with this program; if not, write to the Free Software 00017 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 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 // Note: Windows can't be added or removed without making changes to 00038 // the code, since parts of it assume there's just an active 00039 // and an inactive window. 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
KDE Logo
This file is part of the documentation for kwin Library Version 3.2.3.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Aug 31 00:02:14 2004 by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2003