![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /********************************************************************* 00002 ** Copyright (c) 2009 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: bhaveNewCrowdItemDialog.h,v $ $Revision: 1.1 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef bhave3DNewCrowdItemDialog_H_ 00013 #define bhave3DNewCrowdItemDialog_H_ 00014 00015 #include <bhave3DGui/bhave3DGuiDefines.h> 00016 #include <vrvCoreQt/DtMenuManager.h> 00017 #include <vrvCoreQt/DtQtMenuAssembler.h> 00018 #include <vrvUtil/signalslib.h> 00019 00020 #include <vrfGuiCoreQt/DtVrfTaskSetMenu.h> 00021 #include "bhave3DGui/ui_bhaveNewCrowdItemDialogUi.h" 00022 #include "bhave3DGui/bhaveNewCrowdItemDialogInterface.h" 00023 00024 class QTreeWidgetItem; 00025 00026 namespace makVrf 00027 { 00028 namespace makVrfQt 00029 { 00030 class DtVrfTaskSetMenu; 00031 } 00032 } 00033 00034 00035 namespace BHAVE 00036 { 00037 namespace BHAVE3DGui 00038 { 00039 00040 class DtBhaveEntityCreatePalette; 00041 00045 00046 class DT_DLL_bhave3DGui DtBhaveNewCrowdMenuManager : public makVrv::DtMenuManager 00047 { 00048 public: 00049 DtBhaveNewCrowdMenuManager() : makVrv::DtMenuManager() 00050 { 00051 } 00052 }; 00053 00054 class DT_DLL_bhave3DGui DtBhaveNewCrowdMenuAssembler : public makVrv::DtQtMenuAssembler 00055 { 00056 public: 00057 DtBhaveNewCrowdMenuAssembler(makVrv::DtDe&, QWidget*, QMenuBar*); 00058 00059 virtual ~DtBhaveNewCrowdMenuAssembler() 00060 { 00061 myMenuBuilders.clear(); 00062 myMenuItemBuilders.clear(); 00063 } 00064 00065 virtual void unregisterMenu(const std::string& s) 00066 { 00067 makVrv::DtMenu* b = menuBuilder(s); 00068 00069 if (b) 00070 { 00071 MenuBuilderMap::iterator iter = myMenuBuilders.begin(); 00072 00073 while (iter != myMenuBuilders.end()) 00074 { 00075 if (iter->second == b) 00076 { 00080 MenuBuilderMap::iterator iter2; 00081 iter2 = iter; 00082 ++iter; 00083 myMenuBuilders.erase(iter); 00084 } 00085 else 00086 { 00087 ++iter; 00088 } 00089 } 00090 } 00091 } 00092 00094 QMenuBar* menuBar() 00095 { 00096 return myMenuBar; 00097 } 00098 00100 virtual QWidget* menuWindow(); 00101 00103 virtual makVrv::DtMenuManager& menuManager(); 00104 00106 QMenu* findMenu(const makVrv::DtMenuPath& path) 00107 { 00108 return myMenuManager.findMenu(path); 00109 } 00110 00111 protected: 00112 QWidget* myMainWindow; 00113 QMenuBar* myMenuBar; 00114 DtBhaveNewCrowdMenuManager myMenuManager; 00115 }; 00116 00120 class DT_DLL_bhave3DGui DtBhaveNewCrowdItemDialog : public QWidget, public DtBhaveNewCrowdItemDialogInterface 00121 { 00122 Q_OBJECT 00123 00124 public: 00125 00127 DtBhaveNewCrowdItemDialog(makVrv::DtDe& de, QWidget* parent = NULL, const Qt::WindowFlags& flags = 0); 00128 00130 virtual ~DtBhaveNewCrowdItemDialog(); 00131 00133 virtual bool init(DtCreateItemData* initialData = NULL); 00134 00136 virtual void disableMenus(); 00137 00139 virtual void enableMenus(); 00140 00142 virtual void enableMenu(QMenu* qtMenu, bool b); 00143 00148 virtual void completeCreation(int num, const DtString & placement, const QString & stringType); 00149 00151 virtual void setEntity(const makVrf::DtEntityMapperKey& x); 00152 00153 virtual void addSetRequest(const DtSetDataRequest&); 00154 virtual void addTaskRequest(const DtSimTask&); 00155 00157 virtual const DtCreateItemData & crowdCreationData(); 00158 00159 protected: 00161 virtual void slot_onDialogCreated(); 00162 00164 virtual void slot_onDialogDestroyed(); 00165 00166 protected slots: 00167 00169 virtual void accept(); 00170 00172 virtual void onCreateObjectName(QTreeWidgetItem* i, int col); 00173 00174 virtual void displayEntityPalette(); 00175 00176 protected: 00177 00179 virtual void setupGui(); 00180 00182 //virtual void setupUi(QWidget* p); 00183 00185 virtual void closeEvent(QCloseEvent* e); 00186 00188 virtual bool createMenus(); 00189 virtual void createEntityPalette(); 00190 virtual void createTaskMenu(); 00191 virtual void createSetMenu(); 00192 00193 virtual void finalizeMenus(); 00194 virtual void finalizeTaskMenu(); 00195 virtual void finalizeSetMenu(); 00196 00197 virtual void setupMenuForCrowdDialog(makVrf::DtVrfTaskSetMenu*); 00198 00201 virtual void slot_createObjectType(const makVrf::DtEntityMapperKey& x); 00202 00204 virtual void slot_addSetRequest(std::vector<std::string> names, const DtSetDataRequest&); 00205 00207 virtual void slot_addTaskRequest(std::vector<std::string> names, const DtSimTask&); 00208 00211 virtual void keyPressEvent(QKeyEvent *e); 00212 00213 signals: 00214 00216 void closing(); 00217 00220 void accepted(const DtCreateItemData&); 00221 00222 protected: 00223 00224 Ui::NewCrowdItemDialogUi myUiImpl; 00225 00226 makVrv::DtDe& myDe; 00227 00228 DtBhaveEntityCreatePalette* myEntityPalettePanel; 00229 00230 makVrf::DtVrfTaskSetMenu* myTaskMenu; 00231 makVrv::DtMenu* myTaskMenuBuilder; 00232 makVrf::DtVrfTaskSetMenu* mySetMenu; 00233 makVrv::DtMenu* mySetMenuBuilder; 00234 00235 makVrf::DtEntityMapperKey* myEntityMapperKey; 00236 QString myEntityText; 00237 DtCreateItemData myCreateItem; 00238 }; 00239 } 00240 } 00241 00242 #endif