|
From: <ob...@us...> - 2010-02-03 13:44:15
|
Revision: 563
http://scstudio.svn.sourceforge.net/scstudio/?rev=563&view=rev
Author: obouda
Date: 2010-02-03 13:44:07 +0000 (Wed, 03 Feb 2010)
Log Message:
-----------
Selection of all instances/messages on current page, accessible via menu Check--Drawing--Select
Modified Paths:
--------------
trunk/src/view/visio/addon/addon.cpp
trunk/src/view/visio/addon/document.cpp
trunk/src/view/visio/addon/document.h
trunk/src/view/visio/addon/scstudio.vcproj
Modified: trunk/src/view/visio/addon/addon.cpp
===================================================================
--- trunk/src/view/visio/addon/addon.cpp 2010-02-03 13:36:58 UTC (rev 562)
+++ trunk/src/view/visio/addon/addon.cpp 2010-02-03 13:44:07 UTC (rev 563)
@@ -284,6 +284,12 @@
case 207:
TRACE("CStudioAddon::Run() menu item 'Check--Options'");
return DisplayOptions();
+ case 208:
+ TRACE("CStudioAddon::Run() menu item 'Check--Drawing--Select--All Instances'");
+ return pDocumentMonitor->OnMenuSelectAllInstances(vsoApp);
+ case 209:
+ TRACE("CStudioAddon::Run() menu item 'Check--Drawing--Select--All Messages'");
+ return pDocumentMonitor->OnMenuSelectAllMessages(vsoApp);
default:
TRACE("CStudioAddon::Run() unexpected event id=" << iEvent);
Modified: trunk/src/view/visio/addon/document.cpp
===================================================================
--- trunk/src/view/visio/addon/document.cpp 2010-02-03 13:36:58 UTC (rev 562)
+++ trunk/src/view/visio/addon/document.cpp 2010-02-03 13:44:07 UTC (rev 563)
@@ -393,34 +393,48 @@
menuItem3->CmdNum = Visio::visCmdHierarchical;
Visio::IVMenuItemPtr menuItem31 = menuItem3->MenuItems->Add();
- menuItem31->Caption = "&Import...";
- menuItem31->AddOnName = ADDON_NAME;
- menuItem31->AddOnArgs = "/event=203";
- menuItem31->BeginGroup = true;
- // enable only if some formatters are available
- menuItem31->Enabled = m_formatters.size() > 0;
+ menuItem31->Caption = "&Select";
+ menuItem31->CmdNum = Visio::visCmdHierarchical;
+ Visio::IVMenuItemPtr menuItem311 = menuItem31->MenuItems->Add();
+ menuItem311->Caption = "All &Instances";
+ menuItem311->AddOnName = ADDON_NAME;
+ menuItem311->AddOnArgs = "/event=208";
+
+ Visio::IVMenuItemPtr menuItem312 = menuItem31->MenuItems->Add();
+ menuItem312->Caption = "All &Messages";
+ menuItem312->AddOnName = ADDON_NAME;
+ menuItem312->AddOnArgs = "/event=209";
+
Visio::IVMenuItemPtr menuItem32 = menuItem3->MenuItems->Add();
- menuItem32->Caption = "&Export...";
+ menuItem32->Caption = "&Import...";
menuItem32->AddOnName = ADDON_NAME;
- menuItem32->AddOnArgs = "/event=204";
+ menuItem32->AddOnArgs = "/event=203";
+ menuItem32->BeginGroup = true;
// enable only if some formatters are available
menuItem32->Enabled = m_formatters.size() > 0;
Visio::IVMenuItemPtr menuItem33 = menuItem3->MenuItems->Add();
- menuItem33->Caption = "&Find Flow...";
+ menuItem33->Caption = "&Export...";
menuItem33->AddOnName = ADDON_NAME;
- menuItem33->AddOnArgs = "/event=205";
- menuItem33->BeginGroup = true;
- // enable only if membership is available
- menuItem33->Enabled = m_membership != NULL;
+ menuItem33->AddOnArgs = "/event=204";
+ // enable only if some formatters are available
+ menuItem33->Enabled = m_formatters.size() > 0;
Visio::IVMenuItemPtr menuItem34 = menuItem3->MenuItems->Add();
- menuItem34->Caption = "&Repaint";
+ menuItem34->Caption = "&Find Flow...";
menuItem34->AddOnName = ADDON_NAME;
- menuItem34->AddOnArgs = "/event=206";
+ menuItem34->AddOnArgs = "/event=205";
menuItem34->BeginGroup = true;
+ // enable only if membership is available
+ menuItem34->Enabled = m_membership != NULL;
+ Visio::IVMenuItemPtr menuItem35 = menuItem3->MenuItems->Add();
+ menuItem35->Caption = "&Repaint";
+ menuItem35->AddOnName = ADDON_NAME;
+ menuItem35->AddOnArgs = "/event=206";
+ menuItem35->BeginGroup = true;
+
for(TransformerPtrList::const_iterator tpos = m_transformers.begin();
tpos != m_transformers.end(); tpos++)
{
@@ -1101,6 +1115,53 @@
return VAORC_SUCCESS;
}
+// TODO: Doxygen comment
+// for select_instances = true, selects all instances on the active page
+// for select_instances = false, selects all messages (including lost and found messages) on the active page
+void CDocumentMonitor::selectAll(Visio::IVApplicationPtr vsoApp, bool select_instances)
+{
+ Visio::IVPagePtr page = vsoApp->ActivePage;
+ Visio::IVSelectionPtr selection =
+ page->CreateSelection(Visio::visSelTypeEmpty, Visio::visSelModeSkipSuper);
+
+ for(int i=1; i<=page->Shapes->Count; i++)
+ {
+ Visio::IVShapePtr shape = page->Shapes->Item[i];
+ switch (get_shape_type(shape))
+ {
+ case ST_BMSC_INSTANCE:
+ if (select_instances)
+ selection->Select(shape, Visio::visSelect);
+ break;
+ case ST_BMSC_MESSAGE:
+ case ST_BMSC_MESSAGE_LOST:
+ case ST_BMSC_MESSAGE_FOUND:
+ if (!select_instances)
+ selection->Select(shape, Visio::visSelect);
+ break;
+ }
+ }
+
+ vsoApp->ActiveWindow->Selection = selection;
+/*
+ // TODO: do stavoveho radku
+ m_reportView->Print(RS_NOTICE,
+ stringize() << "Selected " << selection->Count << " shape(s)");
+*/
+}
+
+VAORC CDocumentMonitor::OnMenuSelectAllInstances(Visio::IVApplicationPtr vsoApp)
+{
+ selectAll(vsoApp, true);
+ return VAORC_SUCCESS;
+}
+
+VAORC CDocumentMonitor::OnMenuSelectAllMessages(Visio::IVApplicationPtr vsoApp)
+{
+ selectAll(vsoApp, false);
+ return VAORC_SUCCESS;
+}
+
VAORC CDocumentMonitor::OnMenuWindowsReporter(Visio::IVApplicationPtr vsoApp)
{
if(m_reportVisible)
Modified: trunk/src/view/visio/addon/document.h
===================================================================
--- trunk/src/view/visio/addon/document.h 2010-02-03 13:36:58 UTC (rev 562)
+++ trunk/src/view/visio/addon/document.h 2010-02-03 13:44:07 UTC (rev 563)
@@ -53,6 +53,8 @@
VAORC OnMenuFindFlow(Visio::IVApplicationPtr vsoApp);
VAORC OnMenuRepaint(Visio::IVApplicationPtr vsoApp);
VAORC OnMenuTransform(Visio::IVApplicationPtr vsoApp, int index);
+ VAORC OnMenuSelectAllInstances(Visio::IVApplicationPtr vsoApp);
+ VAORC OnMenuSelectAllMessages(Visio::IVApplicationPtr vsoApp);
void ShowReportView();
void OnHideReportView();
@@ -103,6 +105,8 @@
Visio::IVMenuItemPtr m_reportMenuItem;
CReportView *m_reportView;
ConfigProvider *m_configProvider;
+
+ void selectAll(Visio::IVApplicationPtr vsoApp, bool select_instances);
};
// $Id$
Modified: trunk/src/view/visio/addon/scstudio.vcproj
===================================================================
--- trunk/src/view/visio/addon/scstudio.vcproj 2010-02-03 13:36:58 UTC (rev 562)
+++ trunk/src/view/visio/addon/scstudio.vcproj 2010-02-03 13:44:07 UTC (rev 563)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="scstudio"
ProjectGUID="{0E00282C-F48B-4984-A274-5B59E1E2AD49}"
RootNamespace="scstudio"
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|