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( 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
KDE Logo
This file is part of the documentation for kwin Library Version 3.3.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Fri Aug 13 21:47:05 2004 by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2003