VR-Forces 4.0.4 Class Documentation
include/vrvCoreQt/DtQtMenuAssembler.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 2008 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 /******************************************************************************
00006 ** $RCSfile: DtQtMenuAssembler.h,v $ $Revision: 1.12 $ $State: Exp $
00007 ******************************************************************************/
00008 
00012 
00013 #pragma once
00014 #include <vrvCoreQt/vrvCoreQt.h>
00015 #include <vrvCore/DtMenuAssembler.h>
00016 #include <boost/unordered_map.hpp>
00017 
00018 class QMenuBar;
00019 class QWidget;
00020 
00021 namespace makVrv
00022 {
00023    class DtMenu;
00024    class DtMenuItem;
00025    class DtMenuManager;
00026 
00029    class DT_DLL_VRVCOREQT DtQtMenuAssembler : public DtMenuAssembler
00030    {
00031    public:
00032 
00033       typedef boost::unordered_map<std::string,DtMenu*> MenuBuilderMap;
00034       typedef boost::unordered_map<std::string,DtMenuItem*> MenuItemBuilderMap;
00035 
00036       friend class DtQtMenuAssemblerCreator;
00037 
00039       virtual ~DtQtMenuAssembler();
00040 
00042       static DtQtMenuAssembler& instance(DtDe& de);
00043 
00045       void registerMenu(DtMenu*);
00046 
00048       DtMenu* menuBuilder(const std::string&) const;
00049 
00051       void unregisterMenu(DtMenu*, bool deleteBuilder = true);
00052 
00054       void registerMenu(DtMenuItem*);
00055 
00057       DtMenuItem* menuItemBuilder(const std::string&) const;
00058 
00060       void unregisterMenu(DtMenuItem*, bool deleteBuilder = true);
00061 
00062       const MenuBuilderMap& menuBuilderMap() const
00063       {
00064          return myMenuBuilders;
00065       }
00066 
00067       const MenuItemBuilderMap& menuItemBuilderMap() const
00068       {
00069          return myMenuItemBuilders;
00070       }
00071 
00072       MenuBuilderMap& menuBuilderMap()
00073       {
00074          return myMenuBuilders;
00075       }
00076 
00077       MenuItemBuilderMap& menuItemBuilderMap()
00078       {
00079          return myMenuItemBuilders;
00080       }
00081 
00084       virtual void merge(const DtQtMenuAssembler::MenuBuilderMap&);
00085 
00088       virtual void merge(const DtQtMenuAssembler::MenuItemBuilderMap&);
00089 
00090    protected:
00091 
00093       DtQtMenuAssembler(DtDe&);
00094 
00096       virtual void assembleMenu(const DtMenuPath& menuPath);
00097 
00099       virtual void assembleMenuItem(const DtMenuPath& menuPath);
00100 
00101       virtual QMenuBar* menuBar();
00102       virtual QWidget* menuWindow();
00103       virtual DtMenuManager& menuManager();
00104 
00105    protected:
00106       MenuBuilderMap myMenuBuilders;
00107       MenuItemBuilderMap myMenuItemBuilders;
00108    };
00109 
00112    class DT_DLL_VRVCOREQT DtQtMenuAssemblerCreator : public DtMenuAssemblerCreator
00113    {
00114    public:
00115 
00117       DtQtMenuAssemblerCreator();
00118 
00120       virtual ~DtQtMenuAssemblerCreator();
00121 
00123       virtual DtMenuAssembler* create(DtDe& de);
00124 
00125    };
00126 }

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)