VR-Forces 4.0.4 Class Documentation
include/vrvCore/DtToolbarAssembler.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 2010 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 /******************************************************************************
00006 ** $RCSfile: DtToolbarAssembler.h,v $ $Revision: 1.10 $ $State: Exp $
00007 ******************************************************************************/
00008 
00013 
00014 #pragma once
00015 
00016 #include <vrvCore/vrvCore.h>
00017 #include <vrvUtil/DtVirtualBaseClass.h>
00018 #include <vrvCore/DtToolbarConfiguration.h>
00019 #include <vrvCore/DtToolbarPath.h>
00020 
00021 #include <stack>
00022 
00023 namespace makVrv
00024 {
00025    class DtToolbarConfiguration;
00026    class DtToolbarPath;
00027    class DtDe;
00028 
00031    class DT_DLL_VRVCORE DtToolbarAssembler : public DtVirtualBaseClass
00032    {
00033    public:
00034 
00035       friend class DtToolbarAssemblerCreator;
00036 
00038       static DtToolbarAssembler& instance(DtDe&);
00039 
00041       virtual ~DtToolbarAssembler();
00042 
00044       virtual void assemble(const DtToolbarConfiguration& configuration);
00045 
00048       virtual void updateToolbars( const DtToolbarConfiguration& configuration );
00049 
00050    protected:
00051 
00052       // Data structures used to sort the toolbars when restoring the UI. Used std::map because
00053       // ordering is important here.
00054       typedef std::multimap<DtToolbarConfiguration::ToolbarLocation, DtToolbarPath> LocationPathMap;
00055       typedef std::map<int, DtToolbarPath> ToolbarPathsMap;
00056       typedef std::map<int, ToolbarPathsMap> ToolbarPathsMapMap;
00057 
00058       DtToolbarAssembler(DtDe& de);
00059 
00061       void assembleToolbarPath(const DtToolbarPath& toolbarPath, 
00062          const DtToolbarConfiguration& configuration, DtToolbarConfiguration::ToolbarLocation location);
00063 
00065       virtual void assembleRow(const DtToolbarPath& toolbarPath, DtToolbarConfiguration::ToolbarLocation location);
00066 
00068       virtual void addToolbarBreak(DtToolbarConfiguration::ToolbarLocation loc);
00069 
00071       virtual void assembleToolbar(const DtToolbarPath& toolbarPath, const DtToolbarConfiguration& configuration);
00072 
00074       virtual void assembleToolbarItem(const DtToolbarPath& toolbarPath);
00075 
00077       virtual void assembleToolbarMenuItem(const DtToolbarPath& toolbarPath);
00078 
00080       virtual void assembleToolbarWidget(const DtToolbarPath& toolbarPath);
00081 
00083       virtual void assembleToolbarMenu(const DtToolbarPath& toolbarPath);
00084 
00086       virtual void assembleTopLeftToolbars(const LocationPathMap& locMap, DtToolbarConfiguration::ToolbarLocation loc, 
00087          const DtToolbarConfiguration& configuration);
00088 
00090       virtual void assembleBottomRightToolbars(const LocationPathMap&, DtToolbarConfiguration::ToolbarLocation, 
00091          const DtToolbarConfiguration& );
00092 
00094       virtual void populateToobarPathsMap(const LocationPathMap& locMap, DtToolbarConfiguration::ToolbarLocation loc, 
00095          const DtToolbarConfiguration& configuration, ToolbarPathsMapMap& tpMap);
00096 
00098       virtual void updateToolbarPath( const DtToolbarPath& toolbarPath, const DtToolbarConfiguration& configuration);
00099 
00102       virtual void updateToolbar(const DtToolbarPath& toolbarPath, const DtToolbarConfiguration& configuration);
00103 
00104    protected:
00105 
00106       std::stack<DtToolbarPath> myToolbarStack;
00107       DtDe& myDe;
00108    };
00109 
00112    class DT_DLL_VRVCORE DtToolbarAssemblerCreator : public DtVirtualBaseClass
00113    {
00114    public:      
00115 
00117       static DtToolbarAssemblerCreator& instance(DtDe& de);
00118 
00120       virtual ~DtToolbarAssemblerCreator();
00121 
00123       virtual DtToolbarAssembler* create(DtDe& de);
00124 
00125    protected:
00126 
00128       DtToolbarAssemblerCreator();
00129    };
00130 }

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)