VR-Forces 4.0.4 Class Documentation
include/vrfGuiCoreQt/DtVrfContextMenuManager.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 2008 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 /******************************************************************************
00006 ** $RCSfile: DtVrfContextMenuManager.h,v $ $Revision: 1.3 $ $State: Exp $
00007 ******************************************************************************/
00008 
00011 
00013 
00014 #pragma once
00015 
00016 #include <vrvUtil/signalslib.h>
00017 
00018 #include <vrfGuiCoreQt/vrfGuiCoreQt.h>
00019 
00020 #include <vrvCoreQt/DtContextMenuManager.h>
00021 #include <vrvCore/DtSelectionManager.h>
00022 #include <vrvCoreQt/DtMenu.h>
00023 
00024 #include <QtCore/QObject>
00025 
00026 namespace makVrv
00027 {
00028    class DtDe;
00029    class DtMenuConfiguration;
00030    class DtQtMenuAssembler;
00031 }
00032 
00033 namespace makVrf
00034 {
00035    class DtVrfContextMenuAssembler;
00036    class DtVrfContextMenuConfiguration;
00037 
00040    class DT_DLL_VRFGUICOREQT DtVrfRightClickContextMenu : public makVrv::DtMenu
00041    {
00042    public:
00043  
00044       DtVrfRightClickContextMenu(makVrv::DtDe&);
00045 
00046       virtual ~DtVrfRightClickContextMenu();
00047 
00049       virtual QMenu* createMenu(makVrv::DtDe&, QWidget* parent);
00050 
00051    };
00052 
00053    class DT_DLL_VRFGUICOREQT DtVrfContextMenuQtSignalHandler : public QObject
00054    {
00055       Q_OBJECT
00056 
00057    public:
00058       DtVrfContextMenuQtSignalHandler(makVrv::DtDe&);
00059 
00060       virtual ~DtVrfContextMenuQtSignalHandler();
00061 
00062    protected:
00063       makVrv::DtDe&  myDe;
00064    };
00065 
00066    class DT_DLL_VRFGUICOREQT DtVrfContextMenuManager : public makVrv::DtContextMenuManager
00067    {
00068    public:
00070       DtVrfContextMenuManager(makVrv::DtDe& de);
00071 
00073       virtual ~DtVrfContextMenuManager();
00074 
00076       virtual void setEnabled(bool);
00077       bool enabled() const;
00078 
00079       static DtVrfContextMenuManager& instance(makVrv::DtDe&);
00080 
00081       boost::signal<void (makVrv::DtQtMenuAssembler& menuAssembler,
00082                           makVrv::DtMenuConfiguration& menus,
00083                           const makVrv::DtSelectionManager::IdSet& idSet,
00084                           int selectionType, makVrv::DtDe&)> signal_contextMenuAboutToBeCreated;
00085 
00086       //Signal sent when a right click happens on a VRF object that does not account for the object type.  Connect to this
00087       //to create right click context menus for your specialized VRF object types
00088       boost::signal<void (makVrv::DtQtMenuAssembler& menuAssembler,
00089                           makVrv::DtMenuConfiguration& menus,
00090                           const makVrv::DtSelectionManager::IdSet& idSet)> signal_unhandledRightClick;
00091 
00092    protected:
00093       virtual void requestSelectionContextMenu(const QPoint& p);
00094       virtual void requestTerrainContextMenu(const QPoint& p);
00095 
00096    protected:
00097       virtual void createTerrainContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus);
00098 
00100       virtual void createLocalContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
00101          const makVrv::DtSelectionManager::IdSet&);
00102 
00103    protected:
00104       virtual void createEntityContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
00105          const makVrv::DtSelectionManager::IdSet&);
00106       virtual void createPropContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
00107          const makVrv::DtSelectionManager::IdSet&);
00108       virtual void createSingleEntityContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
00109          const makVrv::DtSelectionManager::IdSet&);
00110       virtual void createSingleVertexContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
00111          const makVrv::DtSelectionManager::IdSet&);
00112       virtual void createMultipleEntityContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
00113          const makVrv::DtSelectionManager::IdSet&);
00114 
00115    protected:
00116       virtual void createAggregateContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
00117          const makVrv::DtSelectionManager::IdSet&);
00118       virtual void createSingleAggregateContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
00119          const makVrv::DtSelectionManager::IdSet&);
00120       virtual void createMultipleAggregateContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
00121          const makVrv::DtSelectionManager::IdSet&);
00122 
00123    protected:
00124       virtual void createEnvironmentalContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
00125          const makVrv::DtSelectionManager::IdSet&);
00126       virtual void createIntervisibilityContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
00127          const makVrv::DtSelectionManager::IdSet&);
00128       virtual void createSingleEnvironmentalContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
00129          const makVrv::DtSelectionManager::IdSet&);
00130       virtual void createMultipleEnvironmentalContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
00131          const makVrv::DtSelectionManager::IdSet&);
00132 
00133    protected:
00134       virtual void createMixedContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
00135          const makVrv::DtSelectionManager::IdSet&);
00136 
00137    protected:
00138       virtual void addPlanActions(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
00139          const makVrv::DtSelectionManager::IdSet&);
00140       virtual void addStealthAttachActions(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
00141          const makVrv::DtSelectionManager::IdSet&);
00142       virtual void addEmbarkationActions(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
00143          const makVrv::DtSelectionManager::IdSet&);
00144       virtual void addObjectSettingsActions(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
00145          const makVrv::DtSelectionManager::IdSet&);
00146 
00147    protected:
00148       DtVrfContextMenuQtSignalHandler  myQtSignalHandler;
00149       bool myEnabled;
00150    };
00151 
00153    class DT_DLL_VRFGUICOREQT DtVrfContextMenuManagerCreator : public makVrv::DtContextMenuManagerCreator
00154    {
00155    public:
00157       virtual ~DtVrfContextMenuManagerCreator();
00158 
00160       virtual makVrv::DtContextMenuManager* create( makVrv::DtDe& de );
00161    };
00162 }

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)