00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
#ifndef __kpartmanager_h__
00022
#define __kpartmanager_h__
00023
00024
#include <qobject.h>
00025
#include <qwidget.h>
00026
#include <qptrlist.h>
00027
00028
#include <kdelibs_export.h>
00029
00030
class KInstance;
00031
00032
namespace KParts
00033 {
00034
00035
class Part;
00036
00037
class PartManagerPrivate;
00038
00050 class KPARTS_EXPORT PartManager :
public QObject
00051 {
00052 Q_OBJECT
00053 Q_ENUMS( SelectionPolicy )
00054 Q_PROPERTY( SelectionPolicy selectionPolicy READ selectionPolicy WRITE setSelectionPolicy )
00055 Q_PROPERTY(
bool allowNestedParts READ allowNestedParts WRITE setAllowNestedParts )
00056 Q_PROPERTY(
bool ignoreScrollBars READ ignoreScrollBars WRITE setIgnoreScrollBars )
00057
public:
00059 enum SelectionPolicy { Direct, TriState };
00060
00067 enum Reason { ReasonLeftClick = 100, ReasonMidClick, ReasonRightClick, NoReason };
00068
00076 PartManager(
QWidget * parent,
const char * name = 0L );
00085 PartManager(
QWidget * topLevel,
QObject *parent,
const char *name = 0 );
00086
virtual ~PartManager();
00087
00091
void setSelectionPolicy( SelectionPolicy policy );
00095 SelectionPolicy selectionPolicy() const;
00096
00109
void setAllowNestedParts(
bool allow );
00113
bool allowNestedParts() const;
00114
00123
void setIgnoreScrollBars(
bool ignore );
00127
bool ignoreScrollBars() const;
00128
00134
void setActivationButtonMask(
short int buttonMask );
00138
short int activationButtonMask() const;
00139
00143 virtual
bool eventFilter(
QObject *obj,
QEvent *ev );
00144
00152 virtual
void addPart(
Part *part,
bool setActive = true );
00153
00159 virtual
void removePart(
Part *part );
00160
00166 virtual
void replacePart(
Part * oldPart,
Part * newPart,
bool setActive = true );
00167
00176 virtual
void setActivePart(
Part *part,
QWidget *widget = 0L );
00177
00181 virtual
Part *activePart() const;
00182
00186 virtual
QWidget *activeWidget() const;
00187
00196 virtual
void setSelectedPart(
Part *part,
QWidget *widget = 0L );
00197
00201 virtual
Part *selectedPart() const;
00202
00206 virtual
QWidget *selectedWidget() const;
00207
00211 const
QPtrList<
Part> *parts() const;
00212
00220
void addManagedTopLevelWidget( const
QWidget *topLevel );
00225
void removeManagedTopLevelWidget( const
QWidget *topLevel );
00226
00232
int reason() const;
00233
00234 signals:
00239
void partAdded( KParts::
Part *part );
00244
void partRemoved( KParts::
Part *part );
00249
void activePartChanged( KParts::
Part *newPart );
00250
00251 protected:
00257 virtual
void setActiveInstance(
KInstance * instance );
00258
00259 protected slots:
00263
void slotObjectDestroyed();
00264
00268
void slotWidgetDestroyed();
00269
00273
void slotManagedTopLevelWidgetDestroyed();
00274 private:
00275
Part * findPartFromWidget(
QWidget * widget, const
QPoint &pos );
00276
Part * findPartFromWidget(
QWidget * widget );
00277
00278 protected:
00279 virtual
void virtual_hook(
int id,
void* data );
00280 private:
00281 PartManagerPrivate *d;
00282 };
00283
00284 }
00285
00286 #endif
00287