VR-Forces 4.0.4 Class Documentation
include/tmqt/tmCreateMenu.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 2003 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: tmCreateMenu.h,v $ $Revision: 1.17 $ $State: Exp $
00007 *********************************************************************/
00008 
00011 
00012 #ifndef DTTMCREATEMENU_H
00013 #define DTTMCREATEMENU_H
00014 
00015 #include "commonWgt/popupMenu.h"
00016 #include "symbolMapper/overlaySymbolMapper.h"
00017 #include "tmqt/createObjectAction.h"
00018 
00019 #include <QtGui/QPixmap>
00020 
00021 class DtModelData;
00022 class DtCreateObjectAction;
00023 class DtTMMapArea;
00024 class DtEventController;
00025 
00026 #include "tmqt/tmqtDefines.h"
00027 class DT_DLL_tmqt DtTMCreateMenu : public DtPopupMenu
00028 {
00029    Q_OBJECT
00030 
00031 public:
00032    DtTMCreateMenu(QWidget * parent, bool display = true);
00033    virtual ~DtTMCreateMenu();
00034 
00035    static void setOnlyValidWithTerrainDatabase(bool b);
00036 
00039    virtual void setStartCreateSlot(DtEventController* controller, const char* slot);
00040 
00042 protected:
00043    virtual QString menuName();
00044 
00050    virtual bool initMenuItems();
00051 
00053    virtual bool initActionGroups();
00054 
00056    virtual void preCreateMenuItems();
00057 
00061    virtual QAction* addMenuItem(DtMenuItemType& retId, const QString& name, const QString& item, const QString& addToMenu,
00062       bool toggle, QObject* actionReceiver, char* action, QObject* validationReceiver,
00063       char* validation, const QString& accelerator, const QString& tooltip, bool addSep);
00064 
00067    virtual QAction* addMenuItem(QMenu* menu, DtMenuItemType& retId, const QString& item, const QString& addToMenu,
00068       bool toggle, QObject* actionReceiver, char* action, QObject* validationReceiver,
00069       char* validation, const QString& accelerator, const QString& tooltip, bool addSep);
00070 
00071 public:
00072    static DtPopupMenu* create(QWidget* parent, bool display = true);
00073 
00074 public slots:
00075    virtual void validate();
00076    virtual void addOverlayDescriptor(DtOverlaySymbolDescriptor* desc);
00077 
00078 protected:
00079    virtual DtActionGroup* getActionGroupForType(DtMenuItemType iType);
00080    virtual bool createMenuItems();
00081    virtual bool buildOverlayMenu();
00082    virtual bool loadOverlayMenu();
00083    virtual void menuItemDestroyed(QAction*);
00084    virtual void actionGroupDestroyed(DtActionGroup*);
00085 
00086    virtual QPixmap createPixmap(const DtModelData& data, bool useInternal = false);
00087 
00089    virtual void attachMenuItems();
00090 
00093    virtual DtActionGroup* addOverlayMenuItem(DtOverlaySymbolDescriptor* desc, DtCreateObjectAction** newAct = NULL);
00094 
00096    virtual DtTMMapArea* mapArea() const;
00097 
00099    virtual void updateMenuItems();
00100    virtual DtModelData* dataFromKey(const DtEntityMapperKey& key);
00101 
00104    virtual void enableCreateItems(bool b);
00105 
00106 protected:
00107    DtActionGroup* myOverlayActionGroup;
00108    DtActionGroup* myOverlaysGroup;
00109 
00110    DtOverlaySymbolMapper myOverlayItems;
00111    QHash<QString, DtActionGroup*> myOverlayGroups;
00112    QList<DtActionGroup*> myOrderedGroups;
00113    QHash<QString, QMenu*> myOverlayMenus;
00114    int myMaxOverlayType;
00115 
00116    QList<DtCreateObjectAction*> myCreateActions;
00117 
00120    QList<DtCreateObjectAction*> myOverlayActions;
00121    QList<QMenu*>           myCreatedMenus;
00122    static bool myOnlyValidWithTerrainDatabase;
00123 
00124    DtEventController* myCurrentCreateController;
00125    QString myCurrentCreateSlot;
00126 };
00127 
00128 #endif

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)