|
From: <ob...@us...> - 2010-03-02 21:02:00
|
Revision: 650
http://scstudio.svn.sourceforge.net/scstudio/?rev=650&view=rev
Author: obouda
Date: 2010-03-02 21:01:40 +0000 (Tue, 02 Mar 2010)
Log Message:
-----------
Fixed switching of toolbar buttons with Ctrl/Shift.
Modified Paths:
--------------
trunk/src/view/visio/addon/addon.cpp
trunk/src/view/visio/addon/addon.h
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-03-02 19:43:06 UTC (rev 649)
+++ trunk/src/view/visio/addon/addon.cpp 2010-03-02 21:01:40 UTC (rev 650)
@@ -56,8 +56,7 @@
: VAddon(VAO_AOATTS_ISACTION | VAO_AOATTS_HASABOUT, VAO_ENABLEALWAYS, 0, 0, pName, uIDLocalName)
{
m_pIAddonSink = NULL;
- m_ControlPressed = false;
- m_ShiftPressed = false;
+ m_keyButtonState = 0;
};
VAORC CStudioAddon::About(LPVAOV2LSTRUCT pV2L)
@@ -522,25 +521,26 @@
void CStudioAddon::HandleKeyDown(Visio::IVKeyboardEventPtr vsoKeyboardEvent, Visio::IVApplicationPtr vsoApp)
{
- if (!m_ControlPressed && !m_ShiftPressed) {
- GetDocumentMonitor(vsoApp, vsoApp->ActiveDocument)->ToggleToolbarItemsToAdd(true);
- }
+ long oldState = m_keyButtonState;
+ m_keyButtonState = vsoKeyboardEvent->KeyButtonState;
- if (vsoKeyboardEvent->KeyButtonState & Visio::visKeyControl) {
- m_ControlPressed = true;
+ long modifiers = visKeyControl | visKeyShift;
+
+ if (!(oldState & modifiers) && (m_keyButtonState & modifiers)) {
+ GetDocumentMonitor(vsoApp, vsoApp->ActiveDocument)->ToggleToolbarItems(true);
}
- if (vsoKeyboardEvent->KeyButtonState & Visio::visKeyShift) {
- m_ShiftPressed = true;
- }
}
void CStudioAddon::HandleKeyUp(Visio::IVKeyboardEventPtr vsoKeyboardEvent, Visio::IVApplicationPtr vsoApp)
{
- if (m_ControlPressed || m_ShiftPressed) {
- GetDocumentMonitor(vsoApp, vsoApp->ActiveDocument)->ToggleToolbarItemsToAdd(false);
+ long oldState = m_keyButtonState;
+ m_keyButtonState = vsoKeyboardEvent->KeyButtonState;
+
+ long modifiers = visKeyControl | visKeyShift;
+
+ if ((oldState & modifiers) && !(m_keyButtonState & modifiers)) {
+ GetDocumentMonitor(vsoApp, vsoApp->ActiveDocument)->ToggleToolbarItems(false);
}
- m_ControlPressed = false;
- m_ShiftPressed = false;
}
void CStudioAddon::RegisterPersistentEvents(Visio::IVDocumentPtr vsoDocument)
Modified: trunk/src/view/visio/addon/addon.h
===================================================================
--- trunk/src/view/visio/addon/addon.h 2010-03-02 19:43:06 UTC (rev 649)
+++ trunk/src/view/visio/addon/addon.h 2010-03-02 21:01:40 UTC (rev 650)
@@ -65,8 +65,7 @@
typedef std::map<long, CDocumentMonitor*> DocumentMonitorsMap;
DocumentMonitorsMap m_DocumentMonitors;
- bool m_ControlPressed;
- bool m_ShiftPressed;
+ long m_keyButtonState;
};
// $Id$
Modified: trunk/src/view/visio/addon/document.cpp
===================================================================
--- trunk/src/view/visio/addon/document.cpp 2010-03-02 19:43:06 UTC (rev 649)
+++ trunk/src/view/visio/addon/document.cpp 2010-03-02 21:01:40 UTC (rev 650)
@@ -576,12 +576,12 @@
m_vsoDocument->SetCustomToolbars(vsoToolbars);
}
-void CDocumentMonitor::ToggleToolbarItemsToAdd(bool add)
+void CDocumentMonitor::ToggleToolbarItems(bool modifiersPressed)
{
- m_selInstancesToolbarItem->Visible = !add;
- m_selMessagesToolbarItem->Visible = !add;
- m_selAddInstancesToolbarItem->Visible = add;
- m_selAddMessagesToolbarItem->Visible = add;
+ m_selInstancesToolbarItem->Visible = !modifiersPressed;
+ m_selMessagesToolbarItem->Visible = !modifiersPressed;
+ m_selAddInstancesToolbarItem->Visible = modifiersPressed;
+ m_selAddMessagesToolbarItem->Visible = modifiersPressed;
m_vsoDocument->CustomToolbars->UpdateUI();
}
Modified: trunk/src/view/visio/addon/document.h
===================================================================
--- trunk/src/view/visio/addon/document.h 2010-03-02 19:43:06 UTC (rev 649)
+++ trunk/src/view/visio/addon/document.h 2010-03-02 21:01:40 UTC (rev 650)
@@ -96,7 +96,7 @@
void OnSimulationResult();
void OnSimulationError();
- void ToggleToolbarItemsToAdd(bool add);
+ void ToggleToolbarItems(bool modifiersPressed);
// event objects for this document
Visio::IVEventPtr m_vsoPageAddedEvent;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|