blob: 939ffb940626de33ce60bebac0604487a5a6ee8f [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#ifndef __ACCHELPER_HXX
#define __ACCHELPER_HXX
#include <com/sun/star/accessibility/XAccessibleText.hpp>
#include <com/sun/star/accessibility/AccessibleRole.hpp>
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
#include "UAccCOM2.h"
enum DIRECTION
{
FIRST_CHILD=0,
LAST_CHILD=-1,
BEFORE_CHILD=1 ,
AFTER_CHILD=2
};
#define CHILDID_SELF 0
#define UNO_MSAA_UNMAPPING 0x00000000
using namespace com::sun::star::uno;
using namespace com::sun::star::accessibility::AccessibleRole;
using namespace com::sun::star::accessibility::AccessibleStateType;
//Role mapping table,left side is UNO role, right side is MSAA role
const short ROLE_TABLE[][2] =
{
{UNKNOWN, IA2_ROLE_UNKNOWN},
{ALERT , ROLE_SYSTEM_DIALOG},
{COLUMN_HEADER , ROLE_SYSTEM_COLUMNHEADER},
//{CANVAS , ROLE_SYSTEM_CLIENT},
{CANVAS , IA2_ROLE_CANVAS},
{CHECK_BOX , ROLE_SYSTEM_CHECKBUTTON},
{CHECK_MENU_ITEM , IA2_ROLE_CHECK_MENU_ITEM},
{COLOR_CHOOSER, IA2_ROLE_COLOR_CHOOSER},
{COMBO_BOX , ROLE_SYSTEM_COMBOBOX},
{DATE_EDITOR , IA2_ROLE_DATE_EDITOR},
{DESKTOP_ICON , IA2_ROLE_DESKTOP_ICON},
{DESKTOP_PANE, IA2_ROLE_DESKTOP_PANE},
{DIRECTORY_PANE, IA2_ROLE_DIRECTORY_PANE},
{DIALOG, ROLE_SYSTEM_DIALOG},
{DOCUMENT, ROLE_SYSTEM_DOCUMENT},
{EMBEDDED_OBJECT , IA2_ROLE_EMBEDDED_OBJECT },
{END_NOTE , IA2_ROLE_ENDNOTE },
{FILE_CHOOSER , IA2_ROLE_FILE_CHOOSER },
{FILLER, ROLE_SYSTEM_WHITESPACE},
{FONT_CHOOSER, IA2_ROLE_FONT_CHOOSER},
{FOOTER, IA2_ROLE_FOOTER},
{FOOTNOTE, IA2_ROLE_FOOTNOTE},
//{FRAME, IA2_ROLE_FRAME},
{FRAME, ROLE_SYSTEM_DIALOG},
{GLASS_PANE , IA2_ROLE_GLASS_PANE},
{GRAPHIC , ROLE_SYSTEM_GRAPHIC},
{GROUP_BOX, ROLE_SYSTEM_GROUPING},
{HEADER , IA2_ROLE_HEADER},
{HEADING , IA2_ROLE_HEADING},
{HYPER_LINK , ROLE_SYSTEM_TEXT},
{ICON , IA2_ROLE_ICON},
{INTERNAL_FRAME, IA2_ROLE_INTERNAL_FRAME},
{LABEL, ROLE_SYSTEM_STATICTEXT},
{LAYERED_PANE , IA2_ROLE_LAYERED_PANE},
{LIST , ROLE_SYSTEM_LIST},
{LIST_ITEM , ROLE_SYSTEM_LISTITEM},
//{MENU , ROLE_SYSTEM_MENUPOPUP},
{MENU, ROLE_SYSTEM_MENUITEM},
{MENU_BAR, ROLE_SYSTEM_MENUBAR},
{MENU_ITEM, ROLE_SYSTEM_MENUITEM},
{OPTION_PANE , IA2_ROLE_OPTION_PANE},
{PAGE_TAB, ROLE_SYSTEM_PAGETAB},
{PAGE_TAB_LIST, ROLE_SYSTEM_PAGETABLIST},
{PANEL, IA2_ROLE_OPTION_PANE},
{PARAGRAPH, IA2_ROLE_PARAGRAPH},
{PASSWORD_TEXT, ROLE_SYSTEM_TEXT},
{POPUP_MENU, ROLE_SYSTEM_MENUPOPUP},
{PUSH_BUTTON, ROLE_SYSTEM_PUSHBUTTON},
{PROGRESS_BAR, ROLE_SYSTEM_PROGRESSBAR},
{RADIO_BUTTON, ROLE_SYSTEM_RADIOBUTTON},
{RADIO_MENU_ITEM, IA2_ROLE_RADIO_MENU_ITEM},
{ROW_HEADER , ROLE_SYSTEM_ROWHEADER},
{ROOT_PANE, IA2_ROLE_ROOT_PANE},
{SCROLL_BAR , ROLE_SYSTEM_SCROLLBAR},
{SCROLL_PANE , IA2_ROLE_SCROLL_PANE},
{SHAPE, IA2_ROLE_SHAPE},
{SEPARATOR , ROLE_SYSTEM_SEPARATOR},
{SLIDER , ROLE_SYSTEM_SLIDER},
{SPIN_BOX , ROLE_SYSTEM_SPINBUTTON},
{SPLIT_PANE, IA2_ROLE_SPLIT_PANE},
{STATUS_BAR, ROLE_SYSTEM_STATUSBAR},
{TABLE, ROLE_SYSTEM_TABLE},
{TABLE_CELL , ROLE_SYSTEM_CELL},
{TEXT, ROLE_SYSTEM_TEXT},
{TEXT_FRAME , IA2_ROLE_TEXT_FRAME},
//for change toggle button to push button for jaws
{TOGGLE_BUTTON, ROLE_SYSTEM_PUSHBUTTON},
{TOOL_BAR, ROLE_SYSTEM_TOOLBAR},
{TOOL_TIP, ROLE_SYSTEM_TOOLTIP},
{TREE , ROLE_SYSTEM_OUTLINE},
{VIEW_PORT , IA2_ROLE_VIEW_PORT},
{WINDOW, ROLE_SYSTEM_WINDOW},
{BUTTON_DROPDOWN, ROLE_SYSTEM_BUTTONDROPDOWN},
{BUTTON_MENU, ROLE_SYSTEM_BUTTONMENU},
{CAPTION, IA2_ROLE_CAPTION},
{CHART, IA2_ROLE_SHAPE},
{EDIT_BAR, IA2_ROLE_EDITBAR},
{FORM, IA2_ROLE_FORM},
{IMAGE_MAP , IA2_ROLE_IMAGE_MAP},
{NOTE, IA2_ROLE_NOTE},
{PAGE, IA2_ROLE_PAGE},
{RULER , IA2_ROLE_RULER},
{SECTION, IA2_ROLE_SECTION},
{TREE_ITEM , ROLE_SYSTEM_OUTLINEITEM},
{TREE_TABLE, ROLE_SYSTEM_OUTLINE}
};
struct ltstr4
{
bool operator()(const long s1, const long s2) const
{
return long(s1)<long(s2);
}
};
#endif