![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2009 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 00008 00010 00011 #pragma once 00012 00013 #include <vrvUtil/signalslib.h> 00014 #include <vrfGuiCoreQt/vrfGuiCoreQt.h> 00015 #include <vrfGuiCoreQt/DtConfigurableMenu.h> 00016 00017 #include <vrvCore/DtSelectionManager.h> 00018 00019 #include <QtGui/QMenu> 00020 00021 #include <matrix/vlVector.h> 00022 00023 class QEvent; 00024 class DtSimCommand; 00025 class DtSimTask; 00026 class DtEntityType; 00027 00028 namespace makVrv 00029 { 00030 class DtSimEntry; 00031 } 00032 00033 namespace makVrf 00034 { 00035 class DtVrfSimulationCommandAction; 00036 class DtSimCommandObjectWrapper; 00037 class DtVrfTaskSetAction; 00038 00039 class DT_DLL_VRFGUICOREQT DtVrfSimulationCommandMenu : public QMenu 00040 { 00041 public: 00042 DtVrfSimulationCommandMenu(makVrv::DtDe&, const QString& title, QWidget* parent); 00043 00044 virtual ~DtVrfSimulationCommandMenu(); 00045 00046 boost::signal<void (DtSimCommand&)> signal_addCommand; 00047 00048 void setEntitySet(const makVrv::DtSelectionManager::IdSet& i) 00049 { 00050 myEntitySet = i; 00051 } 00052 00053 const makVrv::DtSelectionManager::IdSet& entitySet() const 00054 { 00055 return myEntitySet; 00056 } 00057 00058 boost::signal<void (const DtEntityType&, std::string, int, const std::vector<DtVector>&, double, bool, bool)> signal_createObject; 00059 00060 public: 00061 virtual void slot_onCommandComplete(const DtSimCommandObjectWrapper&); 00062 virtual void slot_onCommandActivated(const std::vector<std::string>&, const DtSimTask&); 00063 virtual void slot_onCreateObject(const DtEntityType&, std::string, int, const std::vector<DtVector>&, double, bool, bool); 00064 00065 protected: 00066 virtual bool eventFilter(QObject *, QEvent *); 00067 virtual void actionAdded(QEvent*); 00068 virtual bool shouldAddAsPartOfMenu(const QList<QAction*>& acts, QAction* toMatch) const; 00069 00070 protected: 00071 virtual void slot_createTaskSetCommandDialog(int menuItemType, QWidget* parent, DtVrfTaskSetAction* forAction, 00072 const std::vector<makVrv::DtSimEntry*>& data, bool partOfPlan); 00073 00074 virtual void slot_createRadioCommandDialog(int menuItemType, QWidget* parent, DtVrfTaskSetAction* forAction, 00075 const std::vector<makVrv::DtSimEntry*>& data, bool partOfPlan); 00076 00077 protected: 00078 makVrv::DtSelectionManager::IdSet myEntitySet; 00079 makVrv::DtDe& myDe; 00080 std::vector<DtVrfSimulationCommandAction*> myConnections; 00081 }; 00082 00083 class DT_DLL_VRFGUICOREQT DtSimulationCommandMenu : public DtConfigurableMenu 00084 { 00085 public: 00086 00088 DtSimulationCommandMenu(makVrv::DtDe&); 00089 00091 virtual ~DtSimulationCommandMenu(); 00092 00094 virtual QMenu* createMenu(makVrv::DtDe&, QWidget* parent); 00095 00096 static DtSimulationCommandMenu& instance(makVrv::DtDe&); 00097 static DtSimulationCommandMenu* menuInstance(makVrv::DtDe& de); 00098 00099 virtual DtSimulationCommandMenu* newInstance(); 00100 00101 public: 00103 virtual DtSubMenuConfiguration& menuConfiguration(); 00104 00106 virtual DtConfigurableMenuAssembler& menuAssembler(); 00107 00108 protected: 00110 virtual void createMenuConfiguration(makVrv::DtDe& de); 00111 00112 protected: 00114 static DtConfigurableMenuAssembler* theMenuAssembler; 00115 static DtSubMenuConfiguration* theMenuConfiguration; 00116 }; 00117 }