VR-Forces 4.0.4 Class Documentation
include/vrfGuiCoreQt/DtVrfEntityMenu.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 2008 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 /******************************************************************************
00006 ** $RCSfile: DtVrfEntityMenu.h,v $ $Revision: 1.3 $ $State: Exp $
00007 ******************************************************************************/
00008 
00011 
00013 
00014 #pragma once
00015 
00016 #include <vrfGuiCoreQt/vrfGuiCoreQt.h>
00017 #include <vrfGuiCoreQt/DtSelectionEnabledMenu.h>
00018 #include <vrfGuiCore/DtGuiThreadVrfRemoteController.h>
00019 
00020 #include <vrvCoreQt/DtMenuItem.h>
00021 
00022 class QEvent;
00023 
00024 namespace makVrf
00025 {
00026    class DtVrfBackendState;
00027    class DtVrfEntityMenu;
00028 
00029    class DT_DLL_VRFGUICOREQT DtVrfEntityAction  : public makVrv::DtMenuItem
00030    {
00031       Q_OBJECT
00032 
00033    public:
00034       enum MatchFlags
00035       {
00036          NoOtherOptions = 0,
00037          AllObjectsAreVrfSimulated = 0x00000001,
00038          AllEditable = 0x00000002,
00039       };
00040 
00041       DtVrfEntityAction(const std::string&, makVrv::DtDe&);
00042       virtual ~DtVrfEntityAction();
00043 
00044       virtual QAction* registerEntityAction(QAction*);
00045       virtual void validate(QAction*) = 0;
00046 
00048       virtual bool selectionMatchesTypes(const makVrv::DtSelectionManager::IdSet&,
00049          const std::vector<makVrv::DtElementEntry::ObjectType>&, MatchFlags flags = AllObjectsAreVrfSimulated) const;
00050 
00051    protected:
00052       virtual void executeEntityAction(const makVrv::DtSelectionManager::IdSet&,
00053          const boost::function<void (std::string, DtSimulationAddress addr)>& function,
00054          DtSimulationAddress addr = DtSimSendToAll);
00055 
00056       virtual void executeAggregateAction(const makVrv::DtSelectionManager::IdSet&, bool ignoreSubordinates,
00057          const boost::function<void (std::string, DtSimulationAddress addr)>& function,
00058          DtSimulationAddress addr = DtSimSendToAll);
00059 
00060       virtual void slot_onValidate(QAction*);
00061       virtual void slot_backendUpdated(const DtVrfBackendState&, int, QAction*);
00062 
00063       virtual void on_aboutToShow();
00064 
00065       boost::signal<void ()> signal_validateMenuItem;
00066 
00067    protected slots:
00068       virtual void onActionDestroyed();
00069 
00070    protected:
00071       makVrv::DtDe&     myDe;
00072    };
00073 
00074    class DT_DLL_VRFGUICOREQT DtVrfEntityMenu : public DtSelectionEnabledMenu
00075    { 
00076       Q_OBJECT
00077 
00078    public:
00080       DtVrfEntityMenu(const QString& title, QWidget* parent, makVrv::DtDe&);
00081 
00083       virtual ~DtVrfEntityMenu();
00084 
00085    protected:
00086       virtual bool eventFilter(QObject *, QEvent *);
00087       virtual void actionAdded(QEvent*);
00088       virtual bool shouldAddAsPartOfMenu(const QList<QAction*>& acts, QAction* toMatch) const;
00089 
00090       virtual void validateMenuItems(int terrainPatchOffset);
00091 
00092    protected:
00093       std::vector<std::pair<DtVrfEntityAction*, QAction*> > myEntityActions;
00094    }; 
00095 }

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)