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 <tqobject.h>
00025 #include <tqwidget.h>
00026 #include <tqptrlist.h>
00027
00028 #include <tdelibs_export.h>
00029
00030 class TDEInstance;
00031
00032 namespace KParts
00033 {
00034
00035 class Part;
00036
00037 class PartManagerPrivate;
00038
00050 class TDEPARTS_EXPORT PartManager : public TQObject
00051 {
00052 Q_OBJECT
00053 TQ_ENUMS( SelectionPolicy )
00054 TQ_PROPERTY( SelectionPolicy selectionPolicy READ selectionPolicy WRITE setSelectionPolicy )
00055 TQ_PROPERTY( bool allowNestedParts READ allowNestedParts WRITE setAllowNestedParts )
00056 TQ_PROPERTY( bool ignoreScrollBars READ ignoreScrollBars WRITE setIgnoreScrollBars )
00057 public:
00059 enum SelectionPolicy { Direct, TriState };
00060
00067 enum Reason { ReasonLeftClick = 100, ReasonMidClick, ReasonRightClick, NoReason };
00068
00077 PartManager( TQWidget * parent, const char * name = 0L );
00087 PartManager( TQWidget * topLevel, TQObject *parent, const char *name = 0 );
00088 virtual ~PartManager();
00089
00093 void setSelectionPolicy( SelectionPolicy policy );
00097 SelectionPolicy selectionPolicy() const;
00098
00111 void setAllowNestedParts( bool allow );
00115 bool allowNestedParts() const;
00116
00125 void setIgnoreScrollBars( bool ignore );
00129 bool ignoreScrollBars() const;
00130
00136 void setActivationButtonMask( short int buttonMask );
00140 short int activationButtonMask() const;
00141
00145 virtual bool eventFilter( TQObject *obj, TQEvent *ev );
00146
00154 virtual void addPart( Part *part, bool setActive = true );
00155
00161 virtual void removePart( Part *part );
00162
00168 virtual void replacePart( Part * oldPart, Part * newPart, bool setActive = true );
00169
00178 virtual void setActivePart( Part *part, TQWidget *widget = 0L );
00179
00183 virtual Part *activePart() const;
00184
00188 virtual TQWidget *activeWidget() const;
00189
00198 virtual void setSelectedPart( Part *part, TQWidget *widget = 0L );
00199
00203 virtual Part *selectedPart() const;
00204
00208 virtual TQWidget *selectedWidget() const;
00209
00213 const TQPtrList<Part> *parts() const;
00214
00222 void addManagedTopLevelWidget( const TQWidget *topLevel );
00227 void removeManagedTopLevelWidget( const TQWidget *topLevel );
00228
00234 int reason() const;
00235
00236 signals:
00241 void partAdded( KParts::Part *part );
00246 void partRemoved( KParts::Part *part );
00251 void activePartChanged( KParts::Part *newPart );
00252
00253 protected:
00259 virtual void setActiveInstance( TDEInstance * instance );
00260
00261 protected slots:
00265 void slotObjectDestroyed();
00266
00270 void slotWidgetDestroyed();
00271
00275 void slotManagedTopLevelWidgetDestroyed();
00276 private:
00277 Part * findPartFromWidget( TQWidget * widget, const TQPoint &pos );
00278 Part * findPartFromWidget( TQWidget * widget );
00279
00280 protected:
00281 virtual void virtual_hook( int id, void* data );
00282 private:
00283 PartManagerPrivate *d;
00284 };
00285
00286 }
00287
00288 #endif
00289