diff options
author | Kohei Yoshida <kohei@openoffice.org> | 2009-08-22 03:13:19 +0000 |
---|---|---|
committer | Kohei Yoshida <kohei@openoffice.org> | 2009-08-22 03:13:19 +0000 |
commit | aa18040a8e2db3b1c51e6de4ea34f73efa96a447 (patch) | |
tree | 34eb5eec60a26c7bc05cc2dadd9e224c8fccb793 /sc | |
parent | 514d004f7422f4103d8574b7339c22345a5e6c7c (diff) |
code cleanup.
Diffstat (limited to 'sc')
-rw-r--r-- | sc/inc/AccessibleFilterMenu.hxx | 14 | ||||
-rw-r--r-- | sc/source/ui/Accessibility/AccessibleFilterMenu.cxx | 86 | ||||
-rw-r--r-- | sc/source/ui/cctrl/dpcontrol.cxx | 10 | ||||
-rw-r--r-- | sc/source/ui/inc/dpcontrol.hxx | 3 |
4 files changed, 30 insertions, 83 deletions
diff --git a/sc/inc/AccessibleFilterMenu.hxx b/sc/inc/AccessibleFilterMenu.hxx index 12faa7e848e3..c5049045d672 100644 --- a/sc/inc/AccessibleFilterMenu.hxx +++ b/sc/inc/AccessibleFilterMenu.hxx @@ -61,16 +61,7 @@ class ScAccessibleFilterMenu : public ScAccessibleFilterMenu_BASE { public: - struct MenuItem - { - ::com::sun::star::uno::Reference< - ::com::sun::star::accessibility::XAccessible > mxAccessible; - bool mbSelected; - - MenuItem(); - }; - - ScAccessibleFilterMenu( + explicit ScAccessibleFilterMenu( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible>& rxParent, ScMenuFloatingWindow* pWin, const ::rtl::OUString& rName, size_t nMenuPos, ScDocument* pDoc); @@ -194,7 +185,7 @@ private: void updateStates(); private: - ::std::vector<MenuItem> maMenuItems; + ::std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > > maMenuItems; ::std::set<sal_Int16> maStates; size_t mnMenuPos; @@ -202,7 +193,6 @@ private: ScDocument* mpDoc; bool mbEnabled:1; - bool mbSelected:1; }; #endif diff --git a/sc/source/ui/Accessibility/AccessibleFilterMenu.cxx b/sc/source/ui/Accessibility/AccessibleFilterMenu.cxx index 9df813886dc5..5a1253181a8f 100644 --- a/sc/source/ui/Accessibility/AccessibleFilterMenu.cxx +++ b/sc/source/ui/Accessibility/AccessibleFilterMenu.cxx @@ -74,18 +74,18 @@ using ::std::set; namespace { -class AddRemoveEventListener : public ::std::unary_function<void, ScAccessibleFilterMenu::MenuItem> +class AddRemoveEventListener : public ::std::unary_function<void, Reference<XAccessible> > { public: explicit AddRemoveEventListener(const Reference<XAccessibleEventListener>& rListener, bool bAdd) : mxListener(rListener), mbAdd(bAdd) {} - void operator() (ScAccessibleFilterMenu::MenuItem& rItem) const + void operator() (const Reference<XAccessible>& xAccessible) const { - if (!rItem.mxAccessible.is()) + if (!xAccessible.is()) return; - Reference<XAccessibleEventBroadcaster> xBc(rItem.mxAccessible, UNO_QUERY); + Reference<XAccessibleEventBroadcaster> xBc(xAccessible, UNO_QUERY); if (xBc.is()) { if (mbAdd) @@ -99,45 +99,6 @@ private: bool mbAdd; }; -class CountSelectedMenuItem : public ::std::unary_function<void, ScAccessibleFilterMenu::MenuItem> -{ -public: - explicit CountSelectedMenuItem() : mnCount(0) {} - - CountSelectedMenuItem(const CountSelectedMenuItem& r) : - mnCount(r.mnCount) {} - - void operator() (ScAccessibleFilterMenu::MenuItem& rItem) - { - { - ScAccessibleFilterMenuItem* p = dynamic_cast<ScAccessibleFilterMenuItem*>( - rItem.mxAccessible.get()); - if (p && p->isSelected()) - ++mnCount; - } - - { - ScAccessibleFilterMenu* p = dynamic_cast<ScAccessibleFilterMenu*>( - rItem.mxAccessible.get()); - if (p && p->isSelected()) - ++mnCount; - } - } - - size_t getCount() const { return mnCount; } - -private: - size_t mnCount; -}; - -} - -// ============================================================================ - -ScAccessibleFilterMenu::MenuItem::MenuItem() : - mxAccessible(NULL), - mbSelected(false) -{ } // ============================================================================ @@ -147,8 +108,7 @@ ScAccessibleFilterMenu::ScAccessibleFilterMenu(const Reference<XAccessible>& rxP mnMenuPos(nMenuPos), mpWindow(pWin), mpDoc(pDoc), - mbEnabled(true), - mbSelected(false) + mbEnabled(true) { SetName(rName); } @@ -167,7 +127,7 @@ Reference<XAccessible> ScAccessibleFilterMenu::getAccessibleAtPoint( const ::com sal_Bool ScAccessibleFilterMenu::isVisible() throw (RuntimeException) { - return true; + return mpWindow->IsVisible(); } void ScAccessibleFilterMenu::grabFocus() @@ -206,7 +166,7 @@ Reference<XAccessible> ScAccessibleFilterMenu::getAccessibleChild(sal_Int32 nInd if (maMenuItems.size() <= static_cast<size_t>(nIndex)) throw IndexOutOfBoundsException(); - return maMenuItems[nIndex].mxAccessible; + return maMenuItems[nIndex]; } Reference<XAccessibleStateSet> ScAccessibleFilterMenu::getAccessibleStateSet() @@ -219,7 +179,7 @@ Reference<XAccessibleStateSet> ScAccessibleFilterMenu::getAccessibleStateSet() OUString ScAccessibleFilterMenu::getImplementationName() throw (RuntimeException) { - return OUString::createFromAscii("ScAccessibleFilterMenu name"); + return OUString::createFromAscii("ScAccessibleFilterMenu"); } // XAccessibleEventBroadcaster @@ -246,20 +206,17 @@ void ScAccessibleFilterMenu::removeEventListener( sal_Bool ScAccessibleFilterMenu::isEmpty() throw (RuntimeException) { - updateStates(); return maStates.empty(); } sal_Bool ScAccessibleFilterMenu::contains(sal_Int16 nState) throw (RuntimeException) { - updateStates(); return maStates.count(nState) > 0; } sal_Bool ScAccessibleFilterMenu::containsAll(const Sequence<sal_Int16>& aStateSet) throw (RuntimeException) { - updateStates(); sal_Int32 n = aStateSet.getLength(); for (sal_Int32 i = 0; i < n; ++i) { @@ -292,7 +249,6 @@ void ScAccessibleFilterMenu::selectAccessibleChild(sal_Int32 nChildIndex) if (static_cast<size_t>(nChildIndex) >= maMenuItems.size()) throw IndexOutOfBoundsException(); - maMenuItems[nChildIndex].mbSelected = true; mpWindow->setSelectedMenuItem(nChildIndex, false, true); } @@ -302,7 +258,7 @@ sal_Bool ScAccessibleFilterMenu::isAccessibleChildSelected(sal_Int32 nChildIndex if (static_cast<size_t>(nChildIndex) >= maMenuItems.size()) throw IndexOutOfBoundsException(); - return maMenuItems[nChildIndex].mbSelected; + return mpWindow->isMenuItemSelected(static_cast<size_t>(nChildIndex)); } void ScAccessibleFilterMenu::clearAccessibleSelection() throw (RuntimeException) @@ -317,8 +273,8 @@ void ScAccessibleFilterMenu::selectAllAccessibleChildren() throw (RuntimeExcepti sal_Int32 ScAccessibleFilterMenu::getSelectedAccessibleChildCount() throw (RuntimeException) { - sal_Int32 n = for_each(maMenuItems.begin(), maMenuItems.end(), CountSelectedMenuItem()).getCount(); - return n; + // Since this is a menu, either one menu item is selected, or none at all. + return mpWindow->getSelectedMenuItem() == ScMenuFloatingWindow::MENU_NOT_SELECTED ? 0 : 1; } Reference<XAccessible> ScAccessibleFilterMenu::getSelectedAccessibleChild(sal_Int32 nChildIndex) @@ -327,7 +283,7 @@ Reference<XAccessible> ScAccessibleFilterMenu::getSelectedAccessibleChild(sal_In if (static_cast<size_t>(nChildIndex) >= maMenuItems.size()) throw IndexOutOfBoundsException(); - return maMenuItems[nChildIndex].mxAccessible; + return maMenuItems[nChildIndex]; } void ScAccessibleFilterMenu::deselectAccessibleChild(sal_Int32 nChildIndex) throw (IndexOutOfBoundsException, RuntimeException) @@ -373,23 +329,23 @@ void ScAccessibleFilterMenu::appendMenuItem(const OUString& rName, bool bEnabled { // Check weather this menu item is a sub menu or a regular menu item. ScMenuFloatingWindow* pSubMenu = mpWindow->getSubMenuWindow(nMenuPos); - MenuItem aItem; + Reference<XAccessible> xAccessible; if (pSubMenu) { - aItem.mxAccessible = pSubMenu->CreateAccessible(); - ScAccessibleFilterMenu* p = static_cast<ScAccessibleFilterMenu*>( - aItem.mxAccessible.get()); + xAccessible = pSubMenu->CreateAccessible(); + ScAccessibleFilterMenu* p = + static_cast<ScAccessibleFilterMenu*>(xAccessible.get()); p->setEnabled(bEnabled); p->setMenuPos(nMenuPos); } else { - aItem.mxAccessible.set(new ScAccessibleFilterMenuItem(this, mpWindow, rName, nMenuPos)); - ScAccessibleFilterMenuItem* p = static_cast<ScAccessibleFilterMenuItem*>( - aItem.mxAccessible.get()); + xAccessible.set(new ScAccessibleFilterMenuItem(this, mpWindow, rName, nMenuPos)); + ScAccessibleFilterMenuItem* p = + static_cast<ScAccessibleFilterMenuItem*>(xAccessible.get()); p->setEnabled(bEnabled); } - maMenuItems.push_back(aItem); + maMenuItems.push_back(xAccessible); } void ScAccessibleFilterMenu::setMenuPos(size_t nMenuPos) @@ -410,8 +366,6 @@ bool ScAccessibleFilterMenu::isFocused() bool ScAccessibleFilterMenu::isSelected() { // Check to see if any of the child menu items is selected. -// size_t nSelectCount = for_each(maMenuItems.begin(), maMenuItems.end(), CountSelectedMenuItem()).getCount(); -// return nSelectCount == 0; return mpWindow->isMenuItemSelected(mnMenuPos); } diff --git a/sc/source/ui/cctrl/dpcontrol.cxx b/sc/source/ui/cctrl/dpcontrol.cxx index ab3123718d40..ce45f0c1b504 100644 --- a/sc/source/ui/cctrl/dpcontrol.cxx +++ b/sc/source/ui/cctrl/dpcontrol.cxx @@ -48,8 +48,6 @@ #include <com/sun/star/accessibility/XAccessible.hpp> -#define MENU_NOT_SELECTED 999 - using ::com::sun::star::uno::Reference; using ::com::sun::star::accessibility::XAccessible; using ::rtl::OUString; @@ -280,6 +278,8 @@ IMPL_LINK( ScMenuFloatingWindow::SubMenuItemData, TimeoutHdl, void*, EMPTYARG ) // ---------------------------------------------------------------------------- +size_t ScMenuFloatingWindow::MENU_NOT_SELECTED = 999; + ScMenuFloatingWindow::ScMenuFloatingWindow(Window* pParent, ScDocument* pDoc, USHORT nMenuStackLevel) : FloatingWindow(pParent, (WB_SYSTEMFLOATWIN|WB_SYSTEMWINDOW|WB_NOBORDER)), maOpenTimer(this), @@ -537,7 +537,7 @@ void ScMenuFloatingWindow::setSelectedMenuItem(size_t nPos, bool bSubMenuTimer, mnSelectedMenu = nPos; } -size_t ScMenuFloatingWindow::getSelectedMenuPos() const +size_t ScMenuFloatingWindow::getSelectedMenuItem() const { return mnSelectedMenu; } @@ -1177,7 +1177,7 @@ void ScDPFieldPopupWindow::MouseMove(const MouseEvent& rMEvt) { ScMenuFloatingWindow::MouseMove(rMEvt); - size_t nSelectedMenu = getSelectedMenuPos(); + size_t nSelectedMenu = getSelectedMenuItem(); if (nSelectedMenu == MENU_NOT_SELECTED) queueCloseSubMenu(); } @@ -1240,6 +1240,8 @@ void ScDPFieldPopupWindow::setMemberSize(size_t n) void ScDPFieldPopupWindow::addMember(const OUString& rName, bool bVisible) { + fprintf(stdout, "ScDPFieldPopupWindow::addMember: name = '%s' visible = %d\n", + rtl::OUStringToOString(rName, RTL_TEXTENCODING_UTF8).getStr(), bVisible); Member aMember; aMember.maName = rName; aMember.mbVisible = bVisible; diff --git a/sc/source/ui/inc/dpcontrol.hxx b/sc/source/ui/inc/dpcontrol.hxx index 55afc0470c64..dbbbcb55ed49 100644 --- a/sc/source/ui/inc/dpcontrol.hxx +++ b/sc/source/ui/inc/dpcontrol.hxx @@ -103,6 +103,7 @@ private: class ScMenuFloatingWindow : public FloatingWindow { public: + static size_t MENU_NOT_SELECTED; /** * Action to perform when an event takes place. Create a sub-class of * this to implement the desired action. @@ -133,6 +134,7 @@ public: ::rtl::OUString getMenuItemName(size_t nPos) const; bool isMenuItemEnabled(size_t nPos) const; bool isMenuItemSelected(size_t nPos) const; + size_t getSelectedMenuItem() const; void setName(const ::rtl::OUString& rName); const ::rtl::OUString& getName() const; @@ -145,7 +147,6 @@ protected: void drawAllMenuItems(); const Font& getLabelFont() const; - size_t getSelectedMenuPos() const; void queueLaunchSubMenu(size_t nPos, ScMenuFloatingWindow* pMenu); void queueCloseSubMenu(); void launchSubMenu(bool bSetMenuPos); |