summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorKohei Yoshida <kohei@openoffice.org>2009-08-20 17:36:00 +0000
committerKohei Yoshida <kohei@openoffice.org>2009-08-20 17:36:00 +0000
commitfb89c0d1df93909faeaa080359e77b1f35eed572 (patch)
tree93a854b494dfd64425260c0bb06f835ee4fc41e2 /sc
parent9c22409f2648758e69a9de4ae49c2ba9bab24a3b (diff)
Added accessible objects for the remainder of the standard widgets.
Diffstat (limited to 'sc')
-rw-r--r--sc/inc/AccessibleFilterTopWindow.hxx30
-rw-r--r--sc/source/ui/Accessibility/AccessibleFilterTopWindow.cxx59
-rw-r--r--sc/source/ui/cctrl/dpcontrol.cxx13
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;