|
From: <ob...@us...> - 2010-02-10 15:18:43
|
Revision: 581
http://scstudio.svn.sourceforge.net/scstudio/?rev=581&view=rev
Author: obouda
Date: 2010-02-10 15:18:33 +0000 (Wed, 10 Feb 2010)
Log Message:
-----------
A minor refactoring to reduce code duplication
Modified Paths:
--------------
trunk/src/view/visio/addon/document.cpp
trunk/src/view/visio/addon/document.h
Modified: trunk/src/view/visio/addon/document.cpp
===================================================================
--- trunk/src/view/visio/addon/document.cpp 2010-02-08 23:44:36 UTC (rev 580)
+++ trunk/src/view/visio/addon/document.cpp 2010-02-10 15:18:33 UTC (rev 581)
@@ -289,25 +289,41 @@
return VAORC_SUCCESS;
}
-void CDocumentMonitor::InitMenu(Visio::IVApplicationPtr vsoApp, Visio::IVDocumentPtr vsoDocument)
+Visio::IVUIObjectPtr CDocumentMonitor::getMostCustomMenus(Visio::IVApplicationPtr vsoApp, Visio::IVDocumentPtr vsoDocument)
{
- Visio::IVUIObjectPtr vsoMenus = NULL;
-
if(vsoDocument != NULL)
{
Visio::IVUIObjectPtr docMenus = vsoDocument->CustomMenus;
if(docMenus != NULL)
- vsoMenus = docMenus->Clone;
+ return docMenus->Clone; // document-specific menus are defined
}
- if(vsoMenus == NULL)
+
+ Visio::IVUIObjectPtr appMenus = vsoApp->CustomMenus;
+ if(appMenus != NULL)
+ return appMenus->Clone; // application custom menus are defined
+
+ return vsoApp->BuiltInMenus; // gets a clone
+}
+
+Visio::IVUIObjectPtr CDocumentMonitor::getMostCustomToolbars(Visio::IVApplicationPtr vsoApp, Visio::IVDocumentPtr vsoDocument)
+{
+ if(vsoDocument != NULL)
{
- Visio::IVUIObjectPtr appMenus = vsoApp->CustomMenus;
- if(appMenus != NULL)
- vsoMenus = appMenus->Clone;
+ Visio::IVUIObjectPtr docToolbars = vsoDocument->CustomToolbars;
+ if(docToolbars != NULL)
+ return docToolbars->Clone;
}
- if(vsoMenus == NULL)
- vsoMenus = vsoApp->BuiltInMenus; // gets a clone
+ Visio::IVUIObjectPtr appToolbars = vsoApp->CustomToolbars;
+ if(appToolbars != NULL)
+ return appToolbars->Clone;
+
+ return vsoApp->GetBuiltInToolbars(0);
+}
+
+void CDocumentMonitor::InitMenu(Visio::IVApplicationPtr vsoApp, Visio::IVDocumentPtr vsoDocument)
+{
+ Visio::IVUIObjectPtr vsoMenus = getMostCustomMenus(vsoApp, vsoDocument);
Visio::IVMenuSetPtr menuSet = vsoMenus->MenuSets->ItemAtID[Visio::visUIObjSetDrawing];
Visio::IVMenuPtr menu = menuSet->Menus->AddAt(5);
@@ -412,27 +428,11 @@
void CDocumentMonitor::InitToolbar(Visio::IVApplicationPtr vsoApp, Visio::IVDocumentPtr vsoDocument)
{
- Visio::IVUIObjectPtr vsoToolbars = NULL;
-
- if(vsoDocument != NULL)
- {
- Visio::IVUIObjectPtr docToolbars = vsoDocument->CustomToolbars;
- if(docToolbars != NULL)
- vsoToolbars = docToolbars->Clone;
- }
- if(vsoToolbars == NULL)
- {
- Visio::IVUIObjectPtr appToolbars = vsoApp->CustomToolbars;
- if(appToolbars != NULL)
- vsoToolbars = appToolbars->Clone;
- }
- if(vsoToolbars == NULL)
- vsoToolbars = vsoApp->GetBuiltInToolbars(0); // gets a clone
-
+ Visio::IVUIObjectPtr vsoToolbars = getMostCustomToolbars(vsoApp, vsoDocument);
Visio::IVToolbarSetPtr toolbarSet = vsoToolbars->ToolbarSets->ItemAtID[Visio::visUIObjSetDrawing];
Visio::IVToolbarPtr toolbar = toolbarSet->Toolbars->Add();
- toolbar->Caption = "Sequence Chart Studio";
+ toolbar->Caption = "Sequence Chart";
// many functions are not working in OLE window: repaint, import, error display
// disable verification functions when opened from OLE window
toolbar->Enabled = !vsoDocument->InPlace;
@@ -459,26 +459,8 @@
void CDocumentMonitor::InitAccelerators(Visio::IVApplicationPtr vsoApp, Visio::IVDocumentPtr vsoDocument)
{
- Visio::IVUIObjectPtr vsoMenus = NULL;
-
- if(vsoDocument != NULL)
- {
- Visio::IVUIObjectPtr docMenus = vsoDocument->CustomMenus;
- if(docMenus != NULL)
- vsoMenus = docMenus->Clone;
- }
- if(vsoMenus == NULL)
- {
- Visio::IVUIObjectPtr appMenus = vsoApp->CustomMenus;
- if(appMenus != NULL)
- vsoMenus = appMenus->Clone;
- }
- if(vsoMenus == NULL)
- vsoMenus = vsoApp->BuiltInMenus; // gets a clone
-
+ Visio::IVUIObjectPtr vsoMenus = getMostCustomMenus(vsoApp, vsoDocument);
Visio::IVAccelTablePtr accelTable = vsoMenus->AccelTables->ItemAtID[Visio::visUIObjSetDrawing];
- // many functions are not working in OLE window: repaint, import, error display
- // disable verification functions when opened from OLE window
Visio::IVAccelItemPtr accelItem1 = accelTable->AccelItems->Add();
accelItem1->AddOnName = ADDON_NAME;
Modified: trunk/src/view/visio/addon/document.h
===================================================================
--- trunk/src/view/visio/addon/document.h 2010-02-08 23:44:36 UTC (rev 580)
+++ trunk/src/view/visio/addon/document.h 2010-02-10 15:18:33 UTC (rev 581)
@@ -107,6 +107,8 @@
ConfigProvider *m_configProvider;
void selectAll(Visio::IVApplicationPtr vsoApp, bool select_instances);
+ Visio::IVUIObjectPtr getMostCustomMenus(Visio::IVApplicationPtr vsoApp, Visio::IVDocumentPtr vsoDocument);
+ Visio::IVUIObjectPtr getMostCustomToolbars(Visio::IVApplicationPtr vsoApp, Visio::IVDocumentPtr vsoDocument);
};
// $Id$
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|