diff options
author | Kohei Yoshida <kohei@openoffice.org> | 2009-08-20 17:36:00 +0000 |
---|---|---|
committer | Kohei Yoshida <kohei@openoffice.org> | 2009-08-20 17:36:00 +0000 |
commit | fb89c0d1df93909faeaa080359e77b1f35eed572 (patch) | |
tree | 93a854b494dfd64425260c0bb06f835ee4fc41e2 /sc | |
parent | 9c22409f2648758e69a9de4ae49c2ba9bab24a3b (diff) |
Added accessible objects for the remainder of the standard widgets.
Diffstat (limited to 'sc')
-rw-r--r-- | sc/inc/AccessibleFilterTopWindow.hxx | 30 | ||||
-rw-r--r-- | sc/source/ui/Accessibility/AccessibleFilterTopWindow.cxx | 59 | ||||
-rw-r--r-- | sc/source/ui/cctrl/dpcontrol.cxx | 13 |
3 files changed, 85 insertions, 17 deletions
diff --git a/sc/inc/AccessibleFilterTopWindow.hxx b/sc/inc/AccessibleFilterTopWindow.hxx index 7b7ad0c880f0..f492c498b29a 100644 --- a/sc/inc/AccessibleFilterTopWindow.hxx +++ b/sc/inc/AccessibleFilterTopWindow.hxx @@ -63,15 +63,37 @@ public: ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > getAccessibleChildMenu(); - void setAccessibleChildListBox( - const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& rAccessible); + enum ChildControlType { + LISTBOX, TOGGLE_ALL, SINGLE_ON_BTN, SINGLE_OFF_BTN, OK_BTN, CANCEL_BTN + }; + void setAccessibleChild( + const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& rAccessible, + ChildControlType eType); private: + /** The top menu part */ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > - mxAccessibleMenu; + mxAccMenu; + /** check list box for field member visibility */ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > - mxAccessibleListBox; + mxAccListBox; + + /** check box for toggling all field member's visibility. */ + ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > + mxAccToggleAll; + + ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > + mxAccSingleOnBtn; + + ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > + mxAccSingleOffBtn; + + ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > + mxAccOkBtn; + + ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > + mxAccCancelBtn; ScDPFieldPopupWindow* mpWindow; ScDocument* mpDoc; diff --git a/sc/source/ui/Accessibility/AccessibleFilterTopWindow.cxx b/sc/source/ui/Accessibility/AccessibleFilterTopWindow.cxx index f0256b0abe9f..3e8ab00427b0 100644 --- a/sc/source/ui/Accessibility/AccessibleFilterTopWindow.cxx +++ b/sc/source/ui/Accessibility/AccessibleFilterTopWindow.cxx @@ -61,20 +61,34 @@ ScAccessibleFilterTopWindow::~ScAccessibleFilterTopWindow() sal_Int32 ScAccessibleFilterTopWindow::getAccessibleChildCount() throw (RuntimeException) { - return 2; + return 7; } Reference<XAccessible> ScAccessibleFilterTopWindow::getAccessibleChild( sal_Int32 nIndex) throw (RuntimeException, IndexOutOfBoundsException) { - if (nIndex >= 2) + if (nIndex >= 7) throw IndexOutOfBoundsException(); - if (nIndex == 0) - return getAccessibleChildMenu(); - - if (nIndex == 1) - return mxAccessibleListBox; + switch (nIndex) + { + case 0: + return getAccessibleChildMenu(); + case 1: + return mxAccListBox; + case 2: + return mxAccToggleAll; + case 3: + return mxAccSingleOnBtn; + case 4: + return mxAccSingleOffBtn; + case 5: + return mxAccOkBtn; + case 6: + return mxAccCancelBtn; + default: + ; + } return Reference<XAccessible>(); } @@ -86,13 +100,34 @@ OUString ScAccessibleFilterTopWindow::getImplementationName() throw (RuntimeExce Reference<XAccessible> ScAccessibleFilterTopWindow::getAccessibleChildMenu() { - if (!mxAccessibleMenu.is()) - mxAccessibleMenu.set(new ScAccessibleFilterMenu(this, mpWindow, getAccessibleName(), mpDoc)); - return mxAccessibleMenu; + if (!mxAccMenu.is()) + mxAccMenu.set(new ScAccessibleFilterMenu(this, mpWindow, getAccessibleName(), mpDoc)); + return mxAccMenu; } -void ScAccessibleFilterTopWindow::setAccessibleChildListBox(const Reference<XAccessible>& rAccessible) +void ScAccessibleFilterTopWindow::setAccessibleChild( + const Reference<XAccessible>& rAccessible, ChildControlType eType) { - mxAccessibleListBox = rAccessible; + switch (eType) + { + case LISTBOX: + mxAccListBox = rAccessible; + break; + case TOGGLE_ALL: + mxAccToggleAll = rAccessible; + break; + case SINGLE_ON_BTN: + mxAccSingleOnBtn = rAccessible; + break; + case SINGLE_OFF_BTN: + mxAccSingleOffBtn = rAccessible; + break; + case OK_BTN: + mxAccOkBtn = rAccessible; + break; + case CANCEL_BTN: + mxAccCancelBtn = rAccessible; + break; + } } diff --git a/sc/source/ui/cctrl/dpcontrol.cxx b/sc/source/ui/cctrl/dpcontrol.cxx index df8658eb1f6b..66915b3878e7 100644 --- a/sc/source/ui/cctrl/dpcontrol.cxx +++ b/sc/source/ui/cctrl/dpcontrol.cxx @@ -1236,7 +1236,18 @@ Reference<XAccessible> ScDPFieldPopupWindow::CreateAccessible() ScAccessibleFilterMenu* pAccMenu = static_cast<ScAccessibleFilterMenu*>(xAccMenu.get()); fillMenuItemsToAccessible(pAccMenu); - pAccTop->setAccessibleChildListBox(maChecks.CreateAccessible()); + pAccTop->setAccessibleChild( + maChecks.CreateAccessible(), ScAccessibleFilterTopWindow::LISTBOX); + pAccTop->setAccessibleChild( + maChkToggleAll.CreateAccessible(), ScAccessibleFilterTopWindow::TOGGLE_ALL); + pAccTop->setAccessibleChild( + maBtnSelectSingle.CreateAccessible(), ScAccessibleFilterTopWindow::SINGLE_ON_BTN); + pAccTop->setAccessibleChild( + maBtnUnselectSingle.CreateAccessible(), ScAccessibleFilterTopWindow::SINGLE_OFF_BTN); + pAccTop->setAccessibleChild( + maBtnOk.CreateAccessible(), ScAccessibleFilterTopWindow::OK_BTN); + pAccTop->setAccessibleChild( + maBtnCancel.CreateAccessible(), ScAccessibleFilterTopWindow::CANCEL_BTN); } return mxAccessible; |