|
From: <ob...@us...> - 2010-02-08 10:36:04
|
Revision: 578
http://scstudio.svn.sourceforge.net/scstudio/?rev=578&view=rev
Author: obouda
Date: 2010-02-08 10:35:55 +0000 (Mon, 08 Feb 2010)
Log Message:
-----------
Added 'Sequence Chart Studio' toolbar, added buttons and keyboard accelerators for selection of all instances/messages.
Modified Paths:
--------------
trunk/src/view/visio/addon/addon.cpp
trunk/src/view/visio/addon/document.cpp
trunk/src/view/visio/addon/document.h
Modified: trunk/src/view/visio/addon/addon.cpp
===================================================================
--- trunk/src/view/visio/addon/addon.cpp 2010-02-07 16:00:27 UTC (rev 577)
+++ trunk/src/view/visio/addon/addon.cpp 2010-02-08 10:35:55 UTC (rev 578)
@@ -515,6 +515,8 @@
// being monitored for this document.
pDocumentMonitor = new CDocumentMonitor(this, vsoApp, vsoDocument);
pDocumentMonitor->InitMenu(vsoApp, vsoDocument);
+ pDocumentMonitor->InitToolbar(vsoApp, vsoDocument);
+ pDocumentMonitor->InitAccelerators(vsoApp, vsoDocument);
// register BeforeDocumentClose
vsoEvent = vsoDocumentEventList->AddAdvise(visEvtBeforeDocumentClose, varSink, _T(""), _T(""));
Modified: trunk/src/view/visio/addon/document.cpp
===================================================================
--- trunk/src/view/visio/addon/document.cpp 2010-02-07 16:00:27 UTC (rev 577)
+++ trunk/src/view/visio/addon/document.cpp 2010-02-08 10:35:55 UTC (rev 578)
@@ -398,10 +398,93 @@
menuItem4->Caption = "&Options...";
menuItem4->AddOnName = ADDON_NAME;
menuItem4->AddOnArgs = "/event=207";
+ menuItem4->BeginGroup = true;
vsoDocument->SetCustomMenus(vsoMenus);
}
+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::IVToolbarSetPtr toolbarSet = vsoToolbars->ToolbarSets->ItemAtID[Visio::visUIObjSetDrawing];
+ Visio::IVToolbarPtr toolbar = toolbarSet->Toolbars->Add();
+
+ toolbar->Caption = "Sequence Chart Studio";
+ // many functions are not working in OLE window: repaint, import, error display
+ // disable verification functions when opened from OLE window
+ toolbar->Enabled = !vsoDocument->InPlace;
+
+ Visio::IVToolbarItemPtr toolbarItem1 = toolbar->ToolbarItems->Add();
+ toolbarItem1->Caption = "Select All Instances";
+ toolbarItem1->AddOnName = ADDON_NAME;
+ toolbarItem1->AddOnArgs = "/event=208";
+ toolbarItem1->FaceID = visIconIXSINGLETILE;
+
+ Visio::IVToolbarItemPtr toolbarItem2 = toolbar->ToolbarItems->Add();
+ toolbarItem2->Caption = "Select All Messages";
+ toolbarItem2->AddOnName = ADDON_NAME;
+ toolbarItem2->AddOnArgs = "/event=209";
+ toolbarItem2->FaceID = visIconIXCONNPOINTS;
+
+ vsoDocument->SetCustomToolbars(vsoToolbars);
+}
+
+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::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;
+ accelItem1->AddOnArgs = "/event=208";
+ accelItem1->Key = 'I';
+ accelItem1->Control = true;
+ accelItem1->Alt = true;
+
+ Visio::IVAccelItemPtr accelItem2 = accelTable->AccelItems->Add();
+ accelItem2->AddOnName = ADDON_NAME;
+ accelItem2->AddOnArgs = "/event=209";
+ accelItem2->Key = 'M';
+ accelItem2->Control = true;
+ accelItem2->Alt = true;
+
+ vsoDocument->SetCustomMenus(vsoMenus);
+}
+
struct CheckExecutionStatus
{
CheckExecutionStatus()
Modified: trunk/src/view/visio/addon/document.h
===================================================================
--- trunk/src/view/visio/addon/document.h 2010-02-07 16:00:27 UTC (rev 577)
+++ trunk/src/view/visio/addon/document.h 2010-02-08 10:35:55 UTC (rev 578)
@@ -43,6 +43,8 @@
VAORC OnOpenReference(int iDocumentIndex, int iPageIndex, _bstr_t sShapeU);
void InitMenu(Visio::IVApplicationPtr vsoApp, Visio::IVDocumentPtr vsoDocument);
+ void InitToolbar(Visio::IVApplicationPtr vsoApp, Visio::IVDocumentPtr vsoDocument);
+ void InitAccelerators(Visio::IVApplicationPtr vsoApp, Visio::IVDocumentPtr vsoDocument);
VAORC OnMenuRun(Visio::IVApplicationPtr vsoApp);
VAORC OnMenuWindowsReporter(Visio::IVApplicationPtr vsoApp);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|