VR-Forces 4.0.4 Class Documentation
include/vrvCoreQt/DtQtToolbarAssembler.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 2010 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 /******************************************************************************
00006 ** $RCSfile: DtQtToolbarAssembler.h,v $ $Revision: 1.12 $ $State: Exp $
00007 ******************************************************************************/
00008 
00012 
00013 #pragma once
00014 
00015 #include <vrvCoreQt/vrvCoreQt.h>
00016 #include <vrvCoreQt/DtQtMenuAssembler.h>
00017 
00018 #include <vrvCore/DtToolbarAssembler.h>
00019 
00020 #include <QtCore/QSize>
00021 
00022 class QWidget;
00023 class QToolBar;
00024 class QAction;
00025 
00026 namespace makVrv
00027 {
00028    class DtToolbar;
00029    class DtQtToolbarManager;
00030    class DtWidgetBuilder;
00031 
00036    class DT_DLL_VRVCOREQT DtQtToolbarMenuAssembler : public DtQtMenuAssembler
00037    {
00038    public:
00039       DtQtToolbarMenuAssembler(DtDe&);
00040       virtual ~DtQtToolbarMenuAssembler();
00041 
00043       virtual QMenuBar* menuBar();
00044 
00046       virtual QWidget* menuWindow();
00047 
00049       virtual DtMenuManager& menuManager();
00050 
00051    public:
00053       virtual void assemble( const DtMenuConfiguration& configuration );      
00054 
00055    protected:
00056       DtMenuManager*    myMenuManager;
00057    };
00058 
00061    class DT_DLL_VRVCOREQT DtQtToolbarAssembler : public DtToolbarAssembler
00062    {
00063    public:
00064 
00065       typedef std::map<std::string,DtToolbar*> ToolbarBuilderMap;
00066 
00067       friend class DtQtToolbarAssemblerCreator;
00068 
00070       virtual ~DtQtToolbarAssembler();
00071 
00073       static DtQtToolbarAssembler& instance(DtDe& de);
00074 
00076       void registerToolbar(DtToolbar*);
00077 
00079       DtToolbar* toolbarBuilder(const std::string&) const;
00080 
00082       void unregisterToolbar(DtToolbar*, bool deleteBuilder = true);
00083 
00084       const ToolbarBuilderMap& toolbarBuilderMap() const
00085       {
00086          return myToolbarBuilders;
00087       }
00088 
00089       ToolbarBuilderMap& toolbarBuilderMap()
00090       {
00091          return myToolbarBuilders;
00092       }
00093 
00095       virtual void setIconSize(const QSize&);
00096 
00097       const QSize& iconSize() const;
00098 
00101       virtual void merge(const DtQtToolbarAssembler::ToolbarBuilderMap&);
00102 
00105       virtual void registerWidgetBuilder(const std::string&, DtWidgetBuilder*, bool deleteExisting = true);
00106 
00108       virtual DtWidgetBuilder* widgetBuilder(const std::string&);
00109 
00111       virtual void unregisterWidgetBuilder(const std::string&, bool deleteExisting = true);
00112 
00113    protected:
00114 
00116       DtQtToolbarAssembler(DtDe&);
00117 
00118       virtual QAction* findMenuItem(const std::string& item, const std::map<DtMenuPath, QAction*>& menuItems) const;
00119 
00122       virtual void assembleRow(const DtToolbarPath& toolbarPath,
00123          DtToolbarConfiguration::ToolbarLocation location);
00124 
00126       virtual void assembleToolbar(const DtToolbarPath& toolbarPath, const DtToolbarConfiguration& configuration);
00127 
00129       virtual void assembleToolbarItem(const DtToolbarPath& toolbarPath);
00130 
00132       virtual void assembleToolbarMenuItem(const DtToolbarPath& toolbarPath);
00133 
00135       virtual void assembleToolbarWidget(const DtToolbarPath& toolbarPath);
00136 
00139       virtual void assembleToolbarMenu(const DtToolbarPath& toolbarPath);
00140 
00141       virtual QWidget* toolbarWindow();
00142       virtual DtQtToolbarManager& toolbarManager();
00143 
00145       virtual void assemble( const DtToolbarConfiguration& configuration );
00146       
00148       virtual void addToolbarBreak(DtToolbarConfiguration::ToolbarLocation loc);
00149 
00150    protected:
00151 
00152       ToolbarBuilderMap          myToolbarBuilders;
00153       DtQtToolbarMenuAssembler   myToolbarMenuAssembler;
00154 
00155       typedef std::map<std::string, DtWidgetBuilder*> WidgetBuilders;
00156       WidgetBuilders             myWidgetBuilders;
00157 
00158       QSize                      myIconSize;
00159 
00160       typedef std::map<int, std::string> RowBreakMap;
00161       RowBreakMap                myOnRow;
00162    };
00163 
00166    class DT_DLL_VRVCOREQT DtQtToolbarAssemblerCreator : public DtToolbarAssemblerCreator
00167    {
00168    public:
00170       static void registerInstance(DtDe& de);
00171 
00172       virtual ~DtQtToolbarAssemblerCreator();
00173 
00175       virtual DtToolbarAssembler* create(DtDe& de);
00176 
00177    protected:
00178 
00179       DtQtToolbarAssemblerCreator();
00180    };
00181 }

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)