|
From: <ob...@us...> - 2010-02-28 18:02:09
|
Revision: 634
http://scstudio.svn.sourceforge.net/scstudio/?rev=634&view=rev
Author: obouda
Date: 2010-02-28 18:01:43 +0000 (Sun, 28 Feb 2010)
Log Message:
-----------
New feature: buttons selecting all instances/messages add to selection while Ctrl is held. The two buttons specific for adding were removed.
Modified Paths:
--------------
trunk/src/view/visio/addon/addon.cpp
trunk/src/view/visio/addon/addon.h
trunk/src/view/visio/addon/dllmodule.rc
trunk/src/view/visio/addon/document.cpp
trunk/src/view/visio/addon/document.h
trunk/src/view/visio/addon/resource.h
trunk/src/view/visio/addon/scstudio.vcproj
Removed Paths:
-------------
trunk/src/view/visio/addon/icon_select_add_instances.ico
trunk/src/view/visio/addon/icon_select_add_messages.ico
Modified: trunk/src/view/visio/addon/addon.cpp
===================================================================
--- trunk/src/view/visio/addon/addon.cpp 2010-02-28 17:09:12 UTC (rev 633)
+++ trunk/src/view/visio/addon/addon.cpp 2010-02-28 18:01:43 UTC (rev 634)
@@ -296,16 +296,16 @@
return DisplayCheckOptions();
case CDocumentMonitor::MENU_SELECT_ALL_INSTANCES:
TRACE("CStudioAddon::Run() menu item 'Check--Drawing--Select--All Instances'");
- return pDocumentMonitor->OnMenuSelectAllInstances(vsoApp);
+ return pDocumentMonitor->OnMenuSelectAllInstances(vsoApp, false);
case CDocumentMonitor::MENU_SELECT_ALL_MESSAGES:
TRACE("CStudioAddon::Run() menu item 'Check--Drawing--Select--All Messages'");
- return pDocumentMonitor->OnMenuSelectAllMessages(vsoApp);
- case CDocumentMonitor::MENU_SELECT_ADD_ALL_INSTANCES:
- TRACE("CStudioAddon::Run() add all instances to the current selection");
- return pDocumentMonitor->OnMenuSelectAddAllInstances(vsoApp);
- case CDocumentMonitor::MENU_SELECT_ADD_ALL_MESSAGES:
- TRACE("CStudioAddon::Run() add all messages to the current selection");
- return pDocumentMonitor->OnMenuSelectAddAllMessages(vsoApp);
+ return pDocumentMonitor->OnMenuSelectAllMessages(vsoApp, false);
+ case CDocumentMonitor::MENU_SELECT_OR_ADD_ALL_INSTANCES:
+ TRACE("CStudioAddon::Run() select or add all instances to the current selection");
+ return pDocumentMonitor->OnMenuSelectAllInstances(vsoApp, m_ControlPressed);
+ case CDocumentMonitor::MENU_SELECT_OR_ADD_ALL_MESSAGES:
+ TRACE("CStudioAddon::Run() select or add all messages to the current selection");
+ return pDocumentMonitor->OnMenuSelectAllMessages(vsoApp, m_ControlPressed);
default:
TRACE("CStudioAddon::Run() unexpected event id=" << iEvent);
@@ -402,7 +402,17 @@
TRACE("CStudioAddon::HandleVisioEvent() visEvtMarker");
HandleMarker(pSubjectObj);
break;
+
+ case Visio::visEvtCodeKeyDown:
+ TRACE("CStudioAddon::HandleVisioEvent() visEvtCodeKeyDown");
+ HandleKeyDown(pSubjectObj, pSourceObj);
+ break;
+ case Visio::visEvtCodeKeyUp:
+ TRACE("CStudioAddon::HandleVisioEvent() visEvtCodeKeyUp");
+ HandleKeyUp(pSubjectObj, pSourceObj);
+ break;
+
default:
TRACE("CStudioAddon::HandleVisioEvent() unexpected event id="
<< std::ios::hex << event);
@@ -489,6 +499,18 @@
}
}
+void CStudioAddon::HandleKeyDown(Visio::IVKeyboardEventPtr vsoKeyboardEvent, Visio::IVApplicationPtr vsoApp)
+{
+ if (vsoKeyboardEvent->KeyButtonState & Visio::visKeyControl) {
+ m_ControlPressed = true;
+ }
+}
+
+void CStudioAddon::HandleKeyUp(Visio::IVKeyboardEventPtr vsoKeyboardEvent, Visio::IVApplicationPtr vsoApp)
+{
+ m_ControlPressed = false;
+}
+
void CStudioAddon::RegisterPersistentEvents(Visio::IVDocumentPtr vsoDocument)
{
Visio::IVEventPtr vsoDocumentCreateEvent = NULL;
@@ -556,11 +578,15 @@
m_vsoMarkerEvent = vsoApplicationEventList->AddAdvise(visEvtApp|visEvtMarker, varSink, _T(""), _T(""));
}
+ // register key listening
+ vsoApp->EventList->AddAdvise(Visio::visEvtCodeKeyDown, varSink, _T(""), _T("KeyDown"));
+ vsoApp->EventList->AddAdvise(Visio::visEvtCodeKeyUp, varSink, _T(""), _T("KeyUp"));
+
// Create a monitor class to keep track of this document and the Events
// being monitored for this document.
pDocumentMonitor = new CDocumentMonitor(this, vsoApp, vsoDocument);
- pDocumentMonitor->InitMenu(vsoApp, vsoDocument);
- pDocumentMonitor->InitToolbar(vsoApp, vsoDocument);
+ pDocumentMonitor->InitMenu();
+ pDocumentMonitor->InitToolbar();
// register BeforeDocumentClose
vsoEvent = vsoDocumentEventList->AddAdvise(visEvtBeforeDocumentClose, varSink, _T(""), _T(""));
Modified: trunk/src/view/visio/addon/addon.h
===================================================================
--- trunk/src/view/visio/addon/addon.h 2010-02-28 17:09:12 UTC (rev 633)
+++ trunk/src/view/visio/addon/addon.h 2010-02-28 18:01:43 UTC (rev 634)
@@ -50,6 +50,8 @@
void HandleCellChanged(Visio::IVCellPtr vsoCell);
void HandleConnectionsAdded(Visio::IVConnectsPtr vsoConnects);
void HandleMarker(Visio::IVApplicationPtr vsoApp);
+ void HandleKeyDown(Visio::IVKeyboardEventPtr vsoKeyboardEvent, Visio::IVApplicationPtr vsoApp);
+ void HandleKeyUp(Visio::IVKeyboardEventPtr vsoKeyboardEvent, Visio::IVApplicationPtr vsoApp);
void RegisterPersistentEvents(Visio::IVDocumentPtr vsoDocument);
CDocumentMonitor *GetDocumentMonitor(Visio::IVApplicationPtr vsoApp, Visio::IVDocumentPtr vsoDocument);
@@ -61,6 +63,8 @@
typedef std::map<long, CDocumentMonitor*> DocumentMonitorsMap;
DocumentMonitorsMap m_DocumentMonitors;
+
+ bool m_ControlPressed;
};
// $Id$
Modified: trunk/src/view/visio/addon/dllmodule.rc
===================================================================
--- trunk/src/view/visio/addon/dllmodule.rc 2010-02-28 17:09:12 UTC (rev 633)
+++ trunk/src/view/visio/addon/dllmodule.rc 2010-02-28 18:01:43 UTC (rev 634)
@@ -217,8 +217,6 @@
IDI_ICON_SELECT_MESSAGES ICON "icon_select_messages.ico"
IDI_ICON_SIMULATION_START ICON "icon_simulation_start.ico"
IDI_ICON_SIMULATION_STOP ICON "icon_simulation_stop.ico"
-IDI_ICON_SELECT_ADD_INSTANCES ICON "icon_select_add_instances.ico"
-IDI_ICON_SELECT_ADD_MESSAGES ICON "icon_select_add_messages.ico"
/////////////////////////////////////////////////////////////////////////////
//
Modified: trunk/src/view/visio/addon/document.cpp
===================================================================
--- trunk/src/view/visio/addon/document.cpp 2010-02-28 17:09:12 UTC (rev 633)
+++ trunk/src/view/visio/addon/document.cpp 2010-02-28 18:01:43 UTC (rev 634)
@@ -300,41 +300,41 @@
return VAORC_SUCCESS;
}
-Visio::IVUIObjectPtr CDocumentMonitor::getMostCustomMenus(Visio::IVApplicationPtr vsoApp, Visio::IVDocumentPtr vsoDocument)
+Visio::IVUIObjectPtr CDocumentMonitor::GetMostCustomMenus()
{
- if(vsoDocument != NULL)
+ if(m_vsoDocument != NULL)
{
- Visio::IVUIObjectPtr docMenus = vsoDocument->CustomMenus;
+ Visio::IVUIObjectPtr docMenus = m_vsoDocument->CustomMenus;
if(docMenus != NULL)
return docMenus->Clone; // document-specific menus are defined
}
- Visio::IVUIObjectPtr appMenus = vsoApp->CustomMenus;
+ Visio::IVUIObjectPtr appMenus = m_vsoApp->CustomMenus;
if(appMenus != NULL)
return appMenus->Clone; // application custom menus are defined
- return vsoApp->BuiltInMenus; // gets a clone
+ return m_vsoApp->BuiltInMenus; // gets a clone
}
-Visio::IVUIObjectPtr CDocumentMonitor::getMostCustomToolbars(Visio::IVApplicationPtr vsoApp, Visio::IVDocumentPtr vsoDocument)
+Visio::IVUIObjectPtr CDocumentMonitor::GetMostCustomToolbars()
{
- if(vsoDocument != NULL)
+ if(m_vsoDocument != NULL)
{
- Visio::IVUIObjectPtr docToolbars = vsoDocument->CustomToolbars;
+ Visio::IVUIObjectPtr docToolbars = m_vsoDocument->CustomToolbars;
if(docToolbars != NULL)
return docToolbars->Clone;
}
- Visio::IVUIObjectPtr appToolbars = vsoApp->CustomToolbars;
+ Visio::IVUIObjectPtr appToolbars = m_vsoApp->CustomToolbars;
if(appToolbars != NULL)
return appToolbars->Clone;
- return vsoApp->GetBuiltInToolbars(0);
+ return m_vsoApp->GetBuiltInToolbars(0);
}
-void CDocumentMonitor::InitMenu(Visio::IVApplicationPtr vsoApp, Visio::IVDocumentPtr vsoDocument)
+void CDocumentMonitor::InitMenu()
{
- Visio::IVUIObjectPtr vsoMenus = getMostCustomMenus(vsoApp, vsoDocument);
+ Visio::IVUIObjectPtr vsoMenus = GetMostCustomMenus();
// step 1: create custom menu
Visio::IVMenuSetPtr menuSet = vsoMenus->MenuSets->ItemAtID[Visio::visUIObjSetDrawing];
@@ -343,7 +343,7 @@
menu->Caption = "&Check";
// many functions are not working in OLE window: repaint, import, error display
// disable verification functions when opened from OLE window
- menu->Enabled = !vsoDocument->InPlace;
+ menu->Enabled = !m_vsoDocument->InPlace;
std::basic_string<TCHAR> vslFileName = GetVisioModuleFileName();
std::basic_string<TCHAR> vslIconFile;
@@ -476,53 +476,38 @@
accelItemSelectMessages->Control = true;
accelItemSelectMessages->Alt = true;
- vsoDocument->SetCustomMenus(vsoMenus);
+ m_vsoDocument->SetCustomMenus(vsoMenus);
}
-void CDocumentMonitor::InitToolbar(Visio::IVApplicationPtr vsoApp, Visio::IVDocumentPtr vsoDocument)
+void CDocumentMonitor::InitToolbar()
{
- Visio::IVUIObjectPtr vsoToolbars = getMostCustomToolbars(vsoApp, vsoDocument);
+ Visio::IVUIObjectPtr vsoToolbars = GetMostCustomToolbars();
Visio::IVToolbarSetPtr toolbarSet = vsoToolbars->ToolbarSets->ItemAtID[Visio::visUIObjSetDrawing];
Visio::IVToolbarPtr toolbar = toolbarSet->Toolbars->Add();
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;
+ toolbar->Enabled = !m_vsoDocument->InPlace;
std::basic_string<TCHAR> vslFileName = GetVisioModuleFileName();
std::basic_string<TCHAR> vslIconFile;
- Visio::IVToolbarItemPtr itemSelInstances = toolbar->ToolbarItems->Add();
- itemSelInstances->Caption = "Select All Instances";
- itemSelInstances->AddOnName = ADDON_NAME;
- itemSelInstances->AddOnArgs = stringize() << L"/event=" << MENU_SELECT_ALL_INSTANCES;
+ m_selInstancesMenuItem = toolbar->ToolbarItems->Add();
+ m_selInstancesMenuItem->Caption = "Select All Instances";
+ m_selInstancesMenuItem->AddOnName = ADDON_NAME;
+ m_selInstancesMenuItem->AddOnArgs = stringize() << L"/event=" << MENU_SELECT_OR_ADD_ALL_INSTANCES;
vslIconFile = vslFileName+_T(",2");
- itemSelInstances->IconFileName(vslIconFile.c_str());
- itemSelInstances->BeginGroup = true;
+ m_selInstancesMenuItem->IconFileName(vslIconFile.c_str());
+ m_selInstancesMenuItem->BeginGroup = true;
- Visio::IVToolbarItemPtr itemSelMessages = toolbar->ToolbarItems->Add();
- itemSelMessages->Caption = "Select All Messages";
- itemSelMessages->AddOnName = ADDON_NAME;
- itemSelMessages->AddOnArgs = stringize() << L"/event=" << MENU_SELECT_ALL_MESSAGES;
+ m_selMessagesMenuItem = toolbar->ToolbarItems->Add();
+ m_selMessagesMenuItem->Caption = "Select All Messages";
+ m_selMessagesMenuItem->AddOnName = ADDON_NAME;
+ m_selMessagesMenuItem->AddOnArgs = stringize() << L"/event=" << MENU_SELECT_OR_ADD_ALL_MESSAGES;
vslIconFile = vslFileName+_T(",3");
- itemSelMessages->IconFileName(vslIconFile.c_str());
+ m_selMessagesMenuItem->IconFileName(vslIconFile.c_str());
- Visio::IVToolbarItemPtr itemAddInstances = toolbar->ToolbarItems->Add();
- itemAddInstances->Caption = "Add All Instances To Selection";
- itemAddInstances->AddOnName = ADDON_NAME;
- itemAddInstances->AddOnArgs = stringize() << L"/event=" << MENU_SELECT_ADD_ALL_INSTANCES;
- vslIconFile = vslFileName+_T(",6");
- itemAddInstances->IconFileName(vslIconFile.c_str());
-
- Visio::IVToolbarItemPtr itemAddMessages = toolbar->ToolbarItems->Add();
- itemAddMessages->Caption = "Add All Messages To Selection";
- itemAddMessages->AddOnName = ADDON_NAME;
- itemAddMessages->AddOnArgs = stringize() << L"/event=" << MENU_SELECT_ADD_ALL_MESSAGES;
- vslIconFile = vslFileName+_T(",7");
- itemAddMessages->IconFileName(vslIconFile.c_str());
-
-
Visio::IVToolbarItemPtr itemFindFlow = toolbar->ToolbarItems->Add();
itemFindFlow->Caption = "Find Flow";
itemFindFlow->AddOnName = ADDON_NAME;
@@ -559,7 +544,7 @@
itemVerify->IconFileName(vslIconFile.c_str());
itemVerify->BeginGroup = true;
- vsoDocument->SetCustomToolbars(vsoToolbars);
+ m_vsoDocument->SetCustomToolbars(vsoToolbars);
}
TransformerPtrList::const_iterator CDocumentMonitor::find_transformer(const std::wstring& name) const
@@ -878,30 +863,18 @@
vsoApp->ActiveWindow->Selection = selection;
}
-VAORC CDocumentMonitor::OnMenuSelectAllInstances(Visio::IVApplicationPtr vsoApp)
+VAORC CDocumentMonitor::OnMenuSelectAllInstances(Visio::IVApplicationPtr vsoApp, bool add)
{
- selectAll(vsoApp, true, false);
+ selectAll(vsoApp, true, add);
return VAORC_SUCCESS;
}
-VAORC CDocumentMonitor::OnMenuSelectAllMessages(Visio::IVApplicationPtr vsoApp)
+VAORC CDocumentMonitor::OnMenuSelectAllMessages(Visio::IVApplicationPtr vsoApp, bool add)
{
- selectAll(vsoApp, false, false);
+ selectAll(vsoApp, false, add);
return VAORC_SUCCESS;
}
-VAORC CDocumentMonitor::OnMenuSelectAddAllInstances(Visio::IVApplicationPtr vsoApp)
-{
- selectAll(vsoApp, true, true);
- return VAORC_SUCCESS;
-}
-
-VAORC CDocumentMonitor::OnMenuSelectAddAllMessages(Visio::IVApplicationPtr vsoApp)
-{
- selectAll(vsoApp, false, true);
- 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-28 17:09:12 UTC (rev 633)
+++ trunk/src/view/visio/addon/document.h 2010-02-28 18:01:43 UTC (rev 634)
@@ -43,8 +43,8 @@
VAORC OnDropShape(int iDocumentIndex, int iPageIndex, _bstr_t sShapeU);
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 InitMenu();
+ void InitToolbar();
enum MenuItems
{
@@ -60,8 +60,8 @@
MENU_CHECK_OPTIONS,
MENU_SELECT_ALL_INSTANCES,
MENU_SELECT_ALL_MESSAGES,
- MENU_SELECT_ADD_ALL_INSTANCES,
- MENU_SELECT_ADD_ALL_MESSAGES
+ MENU_SELECT_OR_ADD_ALL_INSTANCES,
+ MENU_SELECT_OR_ADD_ALL_MESSAGES,
};
VAORC OnMenuWindowsReporter(Visio::IVApplicationPtr vsoApp);
@@ -69,10 +69,8 @@
VAORC OnMenuExport(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);
- VAORC OnMenuSelectAddAllInstances(Visio::IVApplicationPtr vsoApp);
- VAORC OnMenuSelectAddAllMessages(Visio::IVApplicationPtr vsoApp);
+ VAORC OnMenuSelectAllInstances(Visio::IVApplicationPtr vsoApp, bool add);
+ VAORC OnMenuSelectAllMessages(Visio::IVApplicationPtr vsoApp, bool add);
VAORC OnMenuFindFlow(Visio::IVApplicationPtr vsoApp);
VAORC OnMenuSimulationStart(Visio::IVApplicationPtr vsoApp);
VAORC OnMenuSimulationStop(Visio::IVApplicationPtr vsoApp);
@@ -160,6 +158,9 @@
Visio::IVToolbarItemPtr m_simulationStartToolbarItem;
Visio::IVToolbarItemPtr m_simulationStopToolbarItem;
+ Visio::IVToolbarItemPtr m_selInstancesMenuItem;
+ Visio::IVToolbarItemPtr m_selMessagesMenuItem;
+
/**
* Selects all instances or all messages on the active page.
* @param vsoApp the application to make selection in
@@ -170,8 +171,8 @@
*/
void selectAll(Visio::IVApplicationPtr vsoApp, bool select_instances, bool add_to_selection);
- Visio::IVUIObjectPtr getMostCustomMenus(Visio::IVApplicationPtr vsoApp, Visio::IVDocumentPtr vsoDocument);
- Visio::IVUIObjectPtr getMostCustomToolbars(Visio::IVApplicationPtr vsoApp, Visio::IVDocumentPtr vsoDocument);
+ Visio::IVUIObjectPtr GetMostCustomMenus();
+ Visio::IVUIObjectPtr GetMostCustomToolbars();
};
// $Id$
Deleted: trunk/src/view/visio/addon/icon_select_add_instances.ico
===================================================================
(Binary files differ)
Deleted: trunk/src/view/visio/addon/icon_select_add_messages.ico
===================================================================
(Binary files differ)
Modified: trunk/src/view/visio/addon/resource.h
===================================================================
--- trunk/src/view/visio/addon/resource.h 2010-02-28 17:09:12 UTC (rev 633)
+++ trunk/src/view/visio/addon/resource.h 2010-02-28 18:01:43 UTC (rev 634)
@@ -23,8 +23,6 @@
#define IDI_ICON_SELECT_MESSAGES 212
#define IDI_ICON_SIMULATION_START 213
#define IDI_ICON_SIMULATION_STOP 214
-#define IDI_ICON_SELECT_ADD_INSTANCES 215
-#define IDI_ICON_SELECT_ADD_MESSAGES 216
#define IDC_SIM_MESSAGE_DELAY 218
#define IDC_SIM_BIN_WIDTH 219
Modified: trunk/src/view/visio/addon/scstudio.vcproj
===================================================================
--- trunk/src/view/visio/addon/scstudio.vcproj 2010-02-28 17:09:12 UTC (rev 633)
+++ trunk/src/view/visio/addon/scstudio.vcproj 2010-02-28 18:01:43 UTC (rev 634)
@@ -406,14 +406,6 @@
>
</File>
<File
- RelativePath=".\icon_select_add_instances.ico"
- >
- </File>
- <File
- RelativePath=".\icon_select_add_messages.ico"
- >
- </File>
- <File
RelativePath=".\icon_select_instances.ico"
>
</File>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|