![]() |
VR-Forces 4.0.4 Class Documentation
|
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 }