VR-Forces 4.0.4 Class Documentation
include/vrfGuiCoreQt/DtSimulationCommandMenu.h
Go to the documentation of this file.
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 }

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)