![]() |
VR-Forces 4.0.4 Class Documentation
|
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