1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 #ifndef __ACCHELPER_HXX 23 #define __ACCHELPER_HXX 24 25 #include <com/sun/star/accessibility/XAccessibleText.hpp> 26 #include <com/sun/star/accessibility/AccessibleRole.hpp> 27 #include <com/sun/star/accessibility/AccessibleStateType.hpp> 28 29 #include "AccessibleRole.h" 30 31 32 #include "UAccCOM2.h" 33 34 enum DIRECTION 35 { 36 FIRST_CHILD=0, 37 LAST_CHILD=-1, 38 BEFORE_CHILD=1 , 39 AFTER_CHILD=2 40 }; 41 42 #define CHILDID_SELF 0 43 #define UNO_MSAA_UNMAPPING 0x00000000 44 45 using namespace com::sun::star::uno; 46 using namespace com::sun::star::accessibility::AccessibleRole; 47 using namespace com::sun::star::accessibility::AccessibleStateType; 48 49 //Role mapping table,left side is UNO role, right side is MSAA role 50 const short ROLE_TABLE[][2] = 51 { 52 {UNKNOWN, IA2_ROLE_UNKNOWN}, 53 {ALERT , ROLE_SYSTEM_DIALOG}, 54 {COLUMN_HEADER , ROLE_SYSTEM_COLUMNHEADER}, 55 //{CANVAS , ROLE_SYSTEM_CLIENT}, 56 {CANVAS , IA2_ROLE_CANVAS}, 57 {CHECK_BOX , ROLE_SYSTEM_CHECKBUTTON}, 58 {CHECK_MENU_ITEM , IA2_ROLE_CHECK_MENU_ITEM}, 59 {COLOR_CHOOSER, IA2_ROLE_COLOR_CHOOSER}, 60 {COMBO_BOX , ROLE_SYSTEM_COMBOBOX}, 61 {DATE_EDITOR , IA2_ROLE_DATE_EDITOR}, 62 {DESKTOP_ICON , IA2_ROLE_DESKTOP_ICON}, 63 {DESKTOP_PANE, IA2_ROLE_DESKTOP_PANE}, 64 {DIRECTORY_PANE, IA2_ROLE_DIRECTORY_PANE}, 65 {DIALOG, ROLE_SYSTEM_DIALOG}, 66 {DOCUMENT, ROLE_SYSTEM_DOCUMENT}, 67 {EMBEDDED_OBJECT , IA2_ROLE_EMBEDDED_OBJECT }, 68 {END_NOTE , IA2_ROLE_ENDNOTE }, 69 {FILE_CHOOSER , IA2_ROLE_FILE_CHOOSER }, 70 {FILLER, ROLE_SYSTEM_WHITESPACE}, 71 {FONT_CHOOSER, IA2_ROLE_FONT_CHOOSER}, 72 {FOOTER, IA2_ROLE_FOOTER}, 73 {FOOTNOTE, IA2_ROLE_FOOTNOTE}, 74 //{FRAME, IA2_ROLE_FRAME}, 75 {FRAME, ROLE_SYSTEM_DIALOG}, 76 {GLASS_PANE , IA2_ROLE_GLASS_PANE}, 77 {GRAPHIC , ROLE_SYSTEM_GRAPHIC}, 78 {GROUP_BOX, ROLE_SYSTEM_GROUPING}, 79 {HEADER , IA2_ROLE_HEADER}, 80 {HEADING , IA2_ROLE_HEADING}, 81 {HYPER_LINK , ROLE_SYSTEM_TEXT}, 82 {ICON , IA2_ROLE_ICON}, 83 {INTERNAL_FRAME, IA2_ROLE_INTERNAL_FRAME}, 84 {LABEL, ROLE_SYSTEM_STATICTEXT}, 85 {LAYERED_PANE , IA2_ROLE_LAYERED_PANE}, 86 {LIST , ROLE_SYSTEM_LIST}, 87 {LIST_ITEM , ROLE_SYSTEM_LISTITEM}, 88 //{MENU , ROLE_SYSTEM_MENUPOPUP}, 89 {MENU, ROLE_SYSTEM_MENUITEM}, 90 {MENU_BAR, ROLE_SYSTEM_MENUBAR}, 91 {MENU_ITEM, ROLE_SYSTEM_MENUITEM}, 92 {OPTION_PANE , IA2_ROLE_OPTION_PANE}, 93 {PAGE_TAB, ROLE_SYSTEM_PAGETAB}, 94 {PAGE_TAB_LIST, ROLE_SYSTEM_PAGETABLIST}, 95 {PANEL, IA2_ROLE_OPTION_PANE}, 96 {PARAGRAPH, IA2_ROLE_PARAGRAPH}, 97 {PASSWORD_TEXT, ROLE_SYSTEM_TEXT}, 98 {POPUP_MENU, ROLE_SYSTEM_MENUPOPUP}, 99 {PUSH_BUTTON, ROLE_SYSTEM_PUSHBUTTON}, 100 {PROGRESS_BAR, ROLE_SYSTEM_PROGRESSBAR}, 101 {RADIO_BUTTON, ROLE_SYSTEM_RADIOBUTTON}, 102 {RADIO_MENU_ITEM, IA2_ROLE_RADIO_MENU_ITEM}, 103 {ROW_HEADER , ROLE_SYSTEM_ROWHEADER}, 104 {ROOT_PANE, IA2_ROLE_ROOT_PANE}, 105 {SCROLL_BAR , ROLE_SYSTEM_SCROLLBAR}, 106 {SCROLL_PANE , IA2_ROLE_SCROLL_PANE}, 107 {SHAPE, IA2_ROLE_SHAPE}, 108 {SEPARATOR , ROLE_SYSTEM_SEPARATOR}, 109 {SLIDER , ROLE_SYSTEM_SLIDER}, 110 {SPIN_BOX , ROLE_SYSTEM_SPINBUTTON}, 111 {SPLIT_PANE, IA2_ROLE_SPLIT_PANE}, 112 {STATUS_BAR, ROLE_SYSTEM_STATUSBAR}, 113 {TABLE, ROLE_SYSTEM_TABLE}, 114 {TABLE_CELL , ROLE_SYSTEM_CELL}, 115 {TEXT, ROLE_SYSTEM_TEXT}, 116 {TEXT_FRAME , IA2_ROLE_TEXT_FRAME}, 117 //for change toggle button to push button for jaws 118 {TOGGLE_BUTTON, ROLE_SYSTEM_PUSHBUTTON}, 119 120 {TOOL_BAR, ROLE_SYSTEM_TOOLBAR}, 121 {TOOL_TIP, ROLE_SYSTEM_TOOLTIP}, 122 {TREE , ROLE_SYSTEM_OUTLINE}, 123 {VIEW_PORT , IA2_ROLE_VIEW_PORT}, 124 {WINDOW, ROLE_SYSTEM_WINDOW}, 125 {BUTTON_DROPDOWN, ROLE_SYSTEM_BUTTONDROPDOWN}, 126 {BUTTON_MENU, ROLE_SYSTEM_BUTTONMENU}, 127 {CAPTION, IA2_ROLE_CAPTION}, 128 {CHART, IA2_ROLE_SHAPE}, 129 {EDIT_BAR, IA2_ROLE_EDITBAR}, 130 {FORM, IA2_ROLE_FORM}, 131 {IMAGE_MAP , IA2_ROLE_IMAGE_MAP}, 132 {NOTE, IA2_ROLE_NOTE}, 133 {PAGE, IA2_ROLE_PAGE}, 134 {RULER , IA2_ROLE_RULER}, 135 {SECTION, IA2_ROLE_SECTION}, 136 {TREE_ITEM , ROLE_SYSTEM_OUTLINEITEM}, 137 {TREE_TABLE, ROLE_SYSTEM_OUTLINE} 138 }; 139 140 struct ltstr4 141 { 142 bool operator()(const long s1, const long s2) const 143 { 144 return long(s1)<long(s2); 145 } 146 }; 147 148 #endif 149