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.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sun Aug 20 13:39:13 2006 by doxygen 1.4.2 written by Dimitri van Heesch, © 1997-2003