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
class KInstance;
00029
00030
namespace KParts
00031 {
00032
00033
class Part;
00034
00035
class PartManagerPrivate;
00036
00048 class PartManager :
public QObject
00049 {
00050 Q_OBJECT
00051 Q_ENUMS(
SelectionPolicy )
00052 Q_PROPERTY(
SelectionPolicy selectionPolicy READ selectionPolicy WRITE
setSelectionPolicy )
00053 Q_PROPERTY(
bool allowNestedParts READ allowNestedParts WRITE
setAllowNestedParts )
00054 Q_PROPERTY(
bool ignoreScrollBars READ ignoreScrollBars WRITE
setIgnoreScrollBars )
00055
public:
00057 enum SelectionPolicy { Direct, TriState };
00058
00065 enum Reason { ReasonLeftClick = 100, ReasonMidClick, ReasonRightClick, NoReason };
00066
00074
PartManager(
QWidget * parent,
const char * name = 0L );
00083
PartManager(
QWidget * topLevel,
QObject *parent,
const char *name = 0 );
00084
virtual ~
PartManager();
00085
00089
void setSelectionPolicy( SelectionPolicy policy );
00093 SelectionPolicy
selectionPolicy() const;
00094
00107
void setAllowNestedParts(
bool allow );
00111
bool allowNestedParts() const;
00112
00121
void setIgnoreScrollBars(
bool ignore );
00125
bool ignoreScrollBars() const;
00126
00132
void setActivationButtonMask(
short int buttonMask );
00136
short int activationButtonMask() const;
00137
00141 virtual
bool eventFilter(
QObject *obj,
QEvent *ev );
00142
00148 virtual
void addPart(
Part *part,
bool setActive = true );
00149
00155 virtual
void removePart(
Part *part );
00156
00162 virtual
void replacePart(
Part * oldPart,
Part * newPart,
bool setActive = true );
00163
00172 virtual
void setActivePart(
Part *part,
QWidget *widget = 0L );
00173
00177 virtual
Part *activePart() const;
00178
00182 virtual
QWidget *activeWidget() const;
00183
00192 virtual
void setSelectedPart(
Part *part,
QWidget *widget = 0L );
00193
00197 virtual
Part *selectedPart() const;
00198
00202 virtual
QWidget *selectedWidget() const;
00203
00207 const
QPtrList<
Part> *parts() const;
00208
00216
void addManagedTopLevelWidget( const
QWidget *topLevel );
00221
void removeManagedTopLevelWidget( const
QWidget *topLevel );
00222
00228
int reason() const;
00229
00230 signals:
00235
void partAdded( KParts::
Part *part );
00240
void partRemoved( KParts::
Part *part );
00245
void activePartChanged( KParts::
Part *newPart );
00246
00247 protected:
00253 virtual
void setActiveInstance(
KInstance * instance );
00254
00255 protected slots:
00259
void slotObjectDestroyed();
00260
00264
void slotWidgetDestroyed();
00265
00269
void slotManagedTopLevelWidgetDestroyed();
00270 private:
00271
Part * findPartFromWidget(
QWidget * widget, const
QPoint &pos );
00272
Part * findPartFromWidget(
QWidget * widget );
00273
00274 protected:
00275 virtual
void virtual_hook(
int id,
void* data );
00276 private:
00277 PartManagerPrivate *d;
00278 };
00279
00280 }
00281
00282 #endif
00283