VR-Forces 4.0.4 Class Documentation
include/commonWgt/toolbarFactoryManager.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 2008 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: toolbarFactoryManager.h,v $ $Revision: 1.6 $ $State: Exp $
00007 *********************************************************************/
00008 
00011 
00012 /* This class will allow a developer to add toolbars that can be created
00013 *  based on features found in the supplied DtFeatureActionManager
00014 */
00015 
00016 #ifndef DTTOOLBARFACTOYMANAGER_H_
00017 #define DTTOOLBARFACTOYMANAGER_H_
00018 
00019 #include "commonWgt/commonWgtDefines.h"
00020 #include "archiver/archivableObject.h"
00021 #include <QtCore/QString>
00022 #include <QtCore/QHash>
00023 #include <QtGui/QIcon>
00024 #include <QtCore/QVector>
00025 
00026 class QAction;
00027 class QToolBar;
00028 class QWidget;
00029 class DtFeatureActionManager;
00030 class QTextStream;
00031 class QContextMenuEvent;
00032 
00033 static const char* DtKeepTooltip = "___DtKeepTooltip___";
00034 static const char* DtToolbarSeparator            = "ToolbarSeparator";
00035 
00036 class DT_DLL_commonWgt DtToolbarItem : public DtArchivableObject
00037 {
00038 public:
00039    DtToolbarItem();
00040    DtToolbarItem(const DtToolbarItem&);
00041 
00042    DtToolbarItem& operator=(const DtToolbarItem&);
00043    bool operator==(const DtToolbarItem&) const;
00044    bool operator!=(const DtToolbarItem& rhs) const { return !(*this == rhs); };
00045 
00046    QString           myFeatureName;
00047    QString           myToolTip;
00048    QVector<QString>  myChildren;
00049 };
00050 
00051 class DT_DLL_commonWgt DtFeatureToolbar : public DtArchivableObject
00052 {
00053    Q_OBJECT
00054 
00055 public:
00056    DtFeatureToolbar();
00057    DtFeatureToolbar(const DtFeatureToolbar&);
00058 
00059    DtFeatureToolbar& operator=(const DtFeatureToolbar&);
00060 
00061    bool operator==(const DtFeatureToolbar&) const;
00062    bool operator!=(const DtFeatureToolbar& rhs) const { return !(*this == rhs); };
00063 
00064    static DtArchivableObject* create();
00065 
00066    DECLARE_ARCHIVABLE_CREATOR()
00067 
00068 protected slots:
00069    virtual void toolbarDestroyed();
00070 
00071 public:
00072    QString                       myToolbarName;
00073    QString                       myToolbarTitle;
00074    QString                       myToolTip;
00075    QVector<DtToolbarItem>        myToolbarItems;
00076    bool                          myIsEditable;
00077    QToolBar*                     myCreatedToolbar;
00078 };
00079 
00081 
00082 class DT_DLL_commonWgt DtToolbarFactoryManager : public DtArchivableObject
00083 {
00084    Q_OBJECT
00085 
00086 public:
00087    DtToolbarFactoryManager(const QString& name = "toolbarFactoryManager");
00088    DtToolbarFactoryManager(const DtToolbarFactoryManager&);
00089 
00090    virtual ~DtToolbarFactoryManager();
00091 
00092    virtual bool init(DtFeatureActionManager*);
00093 
00094    static DtToolbarFactoryManager* create();
00095 
00097    void setUserToolbarSystemEnabled(bool);
00098    bool userToolbarSystemEnabled() const;
00099 
00100    DtToolbarFactoryManager& operator=(const DtToolbarFactoryManager&);
00101 
00104    virtual void write(QTextStream&);
00105    virtual void read(QTextStream&);
00106 
00107    virtual void clear();
00108 
00109 public:
00111    
00113    virtual void addToolbar(const QString& toolbar, const QString& windowTitle, const QString& toolTip = DtKeepTooltip,
00114       bool editable = false);
00115    virtual void addToolbar(const DtFeatureToolbar&);
00116 
00119    virtual void addToolbarButton(const QString& toolbar, const QString& feature);
00120 
00122    virtual void addToolbarButtons(const QString& toolbar, const QVector<QString>& features);
00123 
00125    virtual void addToolbarMenu(const QString& toolbar, const QString& feature, const QVector<QString>& features,
00126       const QString& toolTip = DtKeepTooltip);
00127    virtual void addToolbarMenuItem(const QString& toolbar, const QString& feature, const QString& itemToAdd,
00128       const QString& before = QString::null);
00129    virtual void removeToolbarMenuItem(const QString& toolbar, const QString& feature, const QString& item);
00130 
00132    virtual void setToolbarIsEditable(const QString& toolbar, bool);
00133 
00135    virtual void removeToolbar(const QString& toolbar);
00136 
00139    virtual void removeToolbarButton(const QString& toolbar, const QString& feature);
00140    virtual void removeToolbarButton(const QString& toolbar, int iIndex);
00141    virtual void removeToolbarButtons(const QString& toolbar, const QVector<QString>& features);
00142 
00144    virtual void removeAllToolbarButtons(const QString& toolbar);
00145 
00147    virtual void addFeatureToToolbar(const DtToolbarItem& feature, QToolBar* tool, QWidget* parent);
00148 
00150    virtual DtFeatureToolbar toolbarFor(const QString& toolbar) const;
00151 
00155    virtual QToolBar* createToolBar(const QString& toolbar, QWidget* parent = NULL);
00156 
00158    virtual QVector<QToolBar*> createUserCreatedToolbars(QWidget* parent);
00159 
00161    virtual QString keyForToolBar(QToolBar*) const;
00162 
00164    virtual void setChecked(const QString& feature, bool checked);
00165 
00167    virtual bool toolbarExists(const QString& toolbar) const;
00168 
00170    virtual bool hasToolbarNamed(const QString& name) const;
00171 
00173    virtual QString keyForToolBar(const QString& name) const;
00174 
00176    virtual QString uniqueToolbarId() const;
00177 
00181    virtual void merge(const DtToolbarFactoryManager&, bool removeMissingToolbars = true);
00182 
00183    const QHash<QString, DtFeatureToolbar>& featureToolbars() const;
00184 
00186    virtual void merge(const QString& toolbar, const DtFeatureToolbar&);
00187 
00189    virtual DtToolbarFactoryManager* clone();
00190 
00191 signals:
00192    void contextMenuEvent(QWidget*, QContextMenuEvent*);
00193 
00194 protected:
00196    virtual int indexOfFeature(const QString& toolbar, const QString& feature) const;
00197 
00199    virtual bool eventFilter(QObject*, QEvent*);
00200 
00201 protected:
00202    QHash<QString, DtFeatureToolbar> myFeatureToolbars;
00203    DtFeatureActionManager*          myFeatureActionManager;
00204    bool                             myUserToolbarSystemEnabled;
00205    QVector<QString>                 myToolbarsRemoved;
00206 };
00207 
00208 inline const QHash<QString, DtFeatureToolbar>& DtToolbarFactoryManager::featureToolbars() const
00209 {
00210    return myFeatureToolbars;
00211 }
00212 
00213 inline void DtToolbarFactoryManager::setUserToolbarSystemEnabled(bool b)
00214 {
00215    myUserToolbarSystemEnabled = b;
00216 }
00217 
00218 inline bool DtToolbarFactoryManager::userToolbarSystemEnabled() const
00219 {
00220    return myUserToolbarSystemEnabled;
00221 }
00222 
00223 #endif
00224 

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)