1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright IBM Corporation 2010. 6 * Copyright 2000, 2010 Oracle and/or its affiliates. 7 * 8 * OpenOffice.org - a multi-platform office productivity suite 9 * 10 * This file is part of OpenOffice.org. 11 * 12 * OpenOffice.org is free software: you can redistribute it and/or modify 13 * it under the terms of the GNU Lesser General Public License version 3 14 * only, as published by the Free Software Foundation. 15 * 16 * OpenOffice.org is distributed in the hope that it will be useful, 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * GNU Lesser General Public License version 3 for more details 20 * (a copy is included in the LICENSE file that accompanied this code). 21 * 22 * You should have received a copy of the GNU Lesser General Public License 23 * version 3 along with OpenOffice.org. If not, see 24 * <http://www.openoffice.org/license.html> 25 * for a copy of the LGPLv3 License. 26 * 27 ************************************************************************/ 28 29 #ifndef __ACCHELPER_HXX 30 #define __ACCHELPER_HXX 31 32 #include <com/sun/star/accessibility/XAccessibleText.hpp> 33 #include <com/sun/star/accessibility/AccessibleRole.hpp> 34 #include <com/sun/star/accessibility/AccessibleStateType.hpp> 35 36 #include "AccessibleRole.h" 37 38 39 #include "UAccCOM2.h" 40 41 enum DIRECTION 42 { 43 FIRST_CHILD=0, 44 LAST_CHILD=-1, 45 BEFORE_CHILD=1 , 46 AFTER_CHILD=2 47 }; 48 49 #define CHILDID_SELF 0 50 #define UNO_MSAA_UNMAPPING 0x00000000 51 52 using namespace com::sun::star::uno; 53 using namespace com::sun::star::accessibility::AccessibleRole; 54 using namespace com::sun::star::accessibility::AccessibleStateType; 55 56 //Role mapping table,left side is UNO role, right side is MSAA role 57 const short ROLE_TABLE[][2] = 58 { 59 {UNKNOWN, IA2_ROLE_UNKNOWN}, 60 {ALERT , ROLE_SYSTEM_DIALOG}, 61 {COLUMN_HEADER , ROLE_SYSTEM_COLUMNHEADER}, 62 //{CANVAS , ROLE_SYSTEM_CLIENT}, 63 {CANVAS , IA2_ROLE_CANVAS}, 64 {CHECK_BOX , ROLE_SYSTEM_CHECKBUTTON}, 65 {CHECK_MENU_ITEM , IA2_ROLE_CHECK_MENU_ITEM}, 66 {COLOR_CHOOSER, IA2_ROLE_COLOR_CHOOSER}, 67 {COMBO_BOX , ROLE_SYSTEM_COMBOBOX}, 68 {DATE_EDITOR , IA2_ROLE_DATE_EDITOR}, 69 {DESKTOP_ICON , IA2_ROLE_DESKTOP_ICON}, 70 {DESKTOP_PANE, IA2_ROLE_DESKTOP_PANE}, 71 {DIRECTORY_PANE, IA2_ROLE_DIRECTORY_PANE}, 72 {DIALOG, ROLE_SYSTEM_DIALOG}, 73 {DOCUMENT, ROLE_SYSTEM_DOCUMENT}, 74 {EMBEDDED_OBJECT , IA2_ROLE_EMBEDDED_OBJECT }, 75 {END_NOTE , IA2_ROLE_ENDNOTE }, 76 {FILE_CHOOSER , IA2_ROLE_FILE_CHOOSER }, 77 {FILLER, ROLE_SYSTEM_WHITESPACE}, 78 {FONT_CHOOSER, IA2_ROLE_FONT_CHOOSER}, 79 {FOOTER, IA2_ROLE_FOOTER}, 80 {FOOTNOTE, IA2_ROLE_FOOTNOTE}, 81 //{FRAME, IA2_ROLE_FRAME}, 82 {FRAME, ROLE_SYSTEM_DIALOG}, 83 {GLASS_PANE , IA2_ROLE_GLASS_PANE}, 84 {GRAPHIC , ROLE_SYSTEM_GRAPHIC}, 85 {GROUP_BOX, ROLE_SYSTEM_GROUPING}, 86 {HEADER , IA2_ROLE_HEADER}, 87 {HEADING , IA2_ROLE_HEADING}, 88 {HYPER_LINK , ROLE_SYSTEM_TEXT}, 89 {ICON , IA2_ROLE_ICON}, 90 {INTERNAL_FRAME, IA2_ROLE_INTERNAL_FRAME}, 91 {LABEL, ROLE_SYSTEM_STATICTEXT}, 92 {LAYERED_PANE , IA2_ROLE_LAYERED_PANE}, 93 {LIST , ROLE_SYSTEM_LIST}, 94 {LIST_ITEM , ROLE_SYSTEM_LISTITEM}, 95 //{MENU , ROLE_SYSTEM_MENUPOPUP}, 96 {MENU, ROLE_SYSTEM_MENUITEM}, 97 {MENU_BAR, ROLE_SYSTEM_MENUBAR}, 98 {MENU_ITEM, ROLE_SYSTEM_MENUITEM}, 99 {OPTION_PANE , IA2_ROLE_OPTION_PANE}, 100 {PAGE_TAB, ROLE_SYSTEM_PAGETAB}, 101 {PAGE_TAB_LIST, ROLE_SYSTEM_PAGETABLIST}, 102 {PANEL, IA2_ROLE_OPTION_PANE}, 103 {PARAGRAPH, IA2_ROLE_PARAGRAPH}, 104 {PASSWORD_TEXT, ROLE_SYSTEM_TEXT}, 105 {POPUP_MENU, ROLE_SYSTEM_MENUPOPUP}, 106 {PUSH_BUTTON, ROLE_SYSTEM_PUSHBUTTON}, 107 {PROGRESS_BAR, ROLE_SYSTEM_PROGRESSBAR}, 108 {RADIO_BUTTON, ROLE_SYSTEM_RADIOBUTTON}, 109 {RADIO_MENU_ITEM, IA2_ROLE_RADIO_MENU_ITEM}, 110 {ROW_HEADER , ROLE_SYSTEM_ROWHEADER}, 111 {ROOT_PANE, IA2_ROLE_ROOT_PANE}, 112 {SCROLL_BAR , ROLE_SYSTEM_SCROLLBAR}, 113 {SCROLL_PANE , IA2_ROLE_SCROLL_PANE}, 114 {SHAPE, IA2_ROLE_SHAPE}, 115 {SEPARATOR , ROLE_SYSTEM_SEPARATOR}, 116 {SLIDER , ROLE_SYSTEM_SLIDER}, 117 {SPIN_BOX , ROLE_SYSTEM_SPINBUTTON}, 118 {SPLIT_PANE, IA2_ROLE_SPLIT_PANE}, 119 {STATUS_BAR, ROLE_SYSTEM_STATUSBAR}, 120 {TABLE, ROLE_SYSTEM_TABLE}, 121 {TABLE_CELL , ROLE_SYSTEM_CELL}, 122 {TEXT, ROLE_SYSTEM_TEXT}, 123 {TEXT_FRAME , IA2_ROLE_TEXT_FRAME}, 124 //for change toggle button to push button for jaws 125 {TOGGLE_BUTTON, ROLE_SYSTEM_PUSHBUTTON}, 126 127 {TOOL_BAR, ROLE_SYSTEM_TOOLBAR}, 128 {TOOL_TIP, ROLE_SYSTEM_TOOLTIP}, 129 {TREE , ROLE_SYSTEM_OUTLINE}, 130 {VIEW_PORT , IA2_ROLE_VIEW_PORT}, 131 {WINDOW, ROLE_SYSTEM_WINDOW}, 132 {BUTTON_DROPDOWN, ROLE_SYSTEM_BUTTONDROPDOWN}, 133 {BUTTON_MENU, ROLE_SYSTEM_BUTTONMENU}, 134 {CAPTION, IA2_ROLE_CAPTION}, 135 {CHART, IA2_ROLE_SHAPE}, 136 {EDIT_BAR, IA2_ROLE_EDITBAR}, 137 {FORM, IA2_ROLE_FORM}, 138 {IMAGE_MAP , IA2_ROLE_IMAGE_MAP}, 139 {NOTE, IA2_ROLE_NOTE}, 140 {PAGE, IA2_ROLE_PAGE}, 141 {RULER , IA2_ROLE_RULER}, 142 {SECTION, IA2_ROLE_SECTION}, 143 {TREE_ITEM , ROLE_SYSTEM_OUTLINEITEM}, 144 {TREE_TABLE, ROLE_SYSTEM_OUTLINE} 145 }; 146 147 struct ltstr4 148 { 149 bool operator()(const long s1, const long s2) const 150 { 151 return long(s1)<long(s2); 152 } 153 }; 154 155 #endif 156