summaryrefslogtreecommitdiff
path: root/sc/source/ui/cctrl
diff options
context:
space:
mode:
authorKohei Yoshida <kohei@openoffice.org>2009-08-21 00:12:46 +0000
committerKohei Yoshida <kohei@openoffice.org>2009-08-21 00:12:46 +0000
commite50abfc572a020718f9460d7f836b2c514b377d0 (patch)
treec76b37b79366e1d8fccd9c2945e1ff9c00d2786b /sc/source/ui/cctrl
parent4a08bf44d06f9e075ae578b062c01673eb7edf97 (diff)
Let's not duplicate menu's selected state with the accessible object; we can easily query the Window instance for that. This also fixed a crasher when accessing menus from accerciser.
Diffstat (limited to 'sc/source/ui/cctrl')
-rw-r--r--sc/source/ui/cctrl/dpcontrol.cxx34
1 files changed, 13 insertions, 21 deletions
diff --git a/sc/source/ui/cctrl/dpcontrol.cxx b/sc/source/ui/cctrl/dpcontrol.cxx
index 685ead25b47e..541d573f4e23 100644
--- a/sc/source/ui/cctrl/dpcontrol.cxx
+++ b/sc/source/ui/cctrl/dpcontrol.cxx
@@ -424,7 +424,7 @@ Reference<XAccessible> ScMenuFloatingWindow::CreateAccessible()
Reference<XAccessible> xAccParent = mpParentMenu ?
mpParentMenu->GetAccessible() : GetAccessibleParentWindow()->GetAccessible();
- mxAccessible.set(new ScAccessibleFilterMenu(xAccParent, this, maName, getDoc()));
+ mxAccessible.set(new ScAccessibleFilterMenu(xAccParent, this, maName, 999, getDoc()));
ScAccessibleFilterMenu* p = static_cast<ScAccessibleFilterMenu*>(
mxAccessible.get());
@@ -512,12 +512,12 @@ void ScMenuFloatingWindow::executeMenu(size_t nPos)
EndPopupMode();
}
-void ScMenuFloatingWindow::setSelectedMenuItem(size_t nPos, bool bSubMenuTimer, bool bNotifyAccessible)
+void ScMenuFloatingWindow::setSelectedMenuItem(size_t nPos, bool bSubMenuTimer)
{
if (mnSelectedMenu != nPos)
{
- selectMenuItem(mnSelectedMenu, false, bSubMenuTimer, bNotifyAccessible);
- selectMenuItem(nPos, true, bSubMenuTimer, bNotifyAccessible);
+ selectMenuItem(mnSelectedMenu, false, bSubMenuTimer);
+ selectMenuItem(nPos, true, bSubMenuTimer);
mnSelectedMenu = nPos;
}
}
@@ -661,7 +661,7 @@ void ScMenuFloatingWindow::resetMenu(bool bSetMenuPos)
{
resizeToFitMenuItems();
if (bSetMenuPos)
- setSelectedMenuItem(0, false, true);
+ setSelectedMenuItem(0, false);
}
void ScMenuFloatingWindow::resizeToFitMenuItems()
@@ -683,7 +683,7 @@ void ScMenuFloatingWindow::resizeToFitMenuItems()
SetOutputSizePixel(Size(aPos.X(), aPos.Y()));
}
-void ScMenuFloatingWindow::selectMenuItem(size_t nPos, bool bSelected, bool bSubMenuTimer, bool bNotifyAccessible)
+void ScMenuFloatingWindow::selectMenuItem(size_t nPos, bool bSelected, bool bSubMenuTimer)
{
if (nPos >= maMenuItems.size() || nPos == MENU_NOT_SELECTED)
{
@@ -715,24 +715,11 @@ void ScMenuFloatingWindow::selectMenuItem(size_t nPos, bool bSelected, bool bSub
queueCloseSubMenu();
}
}
-
- if (bNotifyAccessible && mxAccessible.is())
- {
- ScAccessibleFilterMenu* p = static_cast<ScAccessibleFilterMenu*>(mxAccessible.get());
- p->selectMenuItem(nPos, bSelected);
- }
}
-void ScMenuFloatingWindow::clearSelectedMenuItem(bool bNotifyAccessible)
+void ScMenuFloatingWindow::clearSelectedMenuItem()
{
- selectMenuItem(mnSelectedMenu, false, false, bNotifyAccessible);
-
- if (bNotifyAccessible && mxAccessible.is())
- {
- ScAccessibleFilterMenu* p = static_cast<ScAccessibleFilterMenu*>(mxAccessible.get());
- p->selectMenuItem(mnSelectedMenu, false);
- }
-
+ selectMenuItem(mnSelectedMenu, false, false);
mnSelectedMenu = MENU_NOT_SELECTED;
}
@@ -765,6 +752,11 @@ bool ScMenuFloatingWindow::isMenuItemEnabled(size_t nPos) const
return maMenuItems[nPos].mbEnabled;
}
+bool ScMenuFloatingWindow::isMenuItemSelected(size_t nPos) const
+{
+ return nPos == mnSelectedMenu;
+}
+
void ScMenuFloatingWindow::setName(const OUString& rName)
{
maName = rName;