Back to index

lightning-sunbird  0.9+nobinonly
nsIAccessible.idl
Go to the documentation of this file.
00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
00002 /* ***** BEGIN LICENSE BLOCK *****
00003  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
00004  *
00005  * The contents of this file are subject to the Mozilla Public License Version
00006  * 1.1 (the "License"); you may not use this file except in compliance with
00007  * the License. You may obtain a copy of the License at
00008  * http://www.mozilla.org/MPL/
00009  *
00010  * Software distributed under the License is distributed on an "AS IS" basis,
00011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
00012  * for the specific language governing rights and limitations under the
00013  * License.
00014  *
00015  * The Original Code is mozilla.org code.
00016  *
00017  * The Initial Developer of the Original Code is
00018  * Netscape Communications Corporation.
00019  * Portions created by the Initial Developer are Copyright (C) 2003
00020  * the Initial Developer. All Rights Reserved.
00021  *
00022  * Original Author: Eric D Vaughan (evaughan@netscape.com)
00023  * Contributor(s): Aaron Leventhal (aaronl@netscape.com)
00024  *                 John Gaunt (jgaunt@netscape.com)
00025  *                 Kyle Yuan (kyle.yuan@sun.com)
00026  *
00027  * Alternatively, the contents of this file may be used under the terms of
00028  * either the GNU General Public License Version 2 or later (the "GPL"), or
00029  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
00030  * in which case the provisions of the GPL or the LGPL are applicable instead
00031  * of those above. If you wish to allow use of your version of this file only
00032  * under the terms of either the GPL or the LGPL, and not to allow others to
00033  * use your version of this file under the terms of the MPL, indicate your
00034  * decision by deleting the provisions above and replace them with the notice
00035  * and other provisions required by the GPL or the LGPL. If you do not delete
00036  * the provisions above, a recipient may use your version of this file under
00037  * the terms of any one of the MPL, the GPL or the LGPL.
00038  *
00039  * ***** END LICENSE BLOCK ***** */
00040 
00041 #include "nsISupports.idl"
00042 
00055 [scriptable, uuid(DB717DB4-37E9-42F1-A3B0-2579DD7C3814)]
00056 interface nsIAccessible : nsISupports
00057 {
00061   readonly attribute nsIAccessible parent;
00062 
00066   readonly attribute nsIAccessible nextSibling;
00067 
00071   readonly attribute nsIAccessible previousSibling;
00072 
00076   readonly attribute nsIAccessible firstChild;
00077 
00081   readonly attribute nsIAccessible lastChild;
00082 
00086   readonly attribute long childCount;
00087 
00092   readonly attribute long indexInParent;
00093 
00097   attribute AString name;
00098 
00103   readonly attribute AString finalValue;
00104 
00108   readonly attribute AString description;
00109 
00115   readonly attribute AString keyboardShortcut;
00116 
00121   readonly attribute AString keyBinding;
00122 
00129   readonly attribute unsigned long role;
00130 
00136   readonly attribute unsigned long finalRole;
00137 
00143   readonly attribute unsigned long finalState;
00144 
00148   readonly attribute unsigned long extState;
00149 
00153   readonly attribute AString help;
00154 
00158   readonly attribute nsIAccessible focusedChild;
00159 
00163   nsIAccessible getChildAtPoint(in long x, in long y);
00164 
00168   nsIAccessible getChildAt(in long aChildIndex);
00169 
00173   nsIAccessible getAccessibleToRight();
00174 
00178   nsIAccessible getAccessibleToLeft();
00179 
00183   nsIAccessible getAccessibleAbove();
00184 
00188   nsIAccessible getAccessibleBelow();
00189 
00193   nsIAccessible getAccessibleRelated(in unsigned long aRelationType);
00194 
00195   void getBounds(out long x, 
00196                     out long y, 
00197                     out long width, 
00198                     out long height);
00199 
00203   void addSelection();
00204 
00208   void removeSelection();
00209 
00214   void extendSelection();
00215 
00219   void takeSelection();
00220 
00229   void takeFocus();
00230 
00234   readonly attribute PRUint8 numActions;
00235 
00239   AString getActionName(in PRUint8 index);
00240 
00245   void doAction(in PRUint8 index);   
00246 
00251   [noscript] void getNativeInterface(out voidPtr aOutAccessible);
00252 
00256   const unsigned long  STATE_UNAVAILABLE        = 0x00000001;  // Disabled, maps to opposite of Java ENABLED, Gnome/ATK SENSITIVE?
00257   const unsigned long  STATE_SELECTED           = 0x00000002;
00258   const unsigned long  STATE_FOCUSED            = 0x00000004;
00259   const unsigned long  STATE_PRESSED            = 0x00000008;
00260   const unsigned long  STATE_CHECKED            = 0x00000010;
00261   const unsigned long  STATE_MIXED              = 0x00000020; // 3-state checkbox or toolbar button
00262   const unsigned long  STATE_READONLY           = 0x00000040; // Maps to opposite of Java/Gnome/ATK EDITABLE state
00263   const unsigned long  STATE_HOTTRACKED         = 0x00000080;
00264   const unsigned long  STATE_DEFAULT            = 0x00000100;
00265   const unsigned long  STATE_EXPANDED           = 0x00000200;
00266   const unsigned long  STATE_COLLAPSED          = 0x00000400;
00267   const unsigned long  STATE_BUSY               = 0x00000800;
00268   const unsigned long  STATE_FLOATING           = 0x00001000;  // Children "owned" not "contained" by parent
00269   const unsigned long  STATE_MARQUEED           = 0x00002000;
00270   const unsigned long  STATE_ANIMATED           = 0x00004000;
00271   const unsigned long  STATE_INVISIBLE          = 0x00008000;
00272   const unsigned long  STATE_OFFSCREEN          = 0x00010000;
00273   const unsigned long  STATE_SIZEABLE           = 0x00020000;
00274   const unsigned long  STATE_MOVEABLE           = 0x00040000;
00275   const unsigned long  STATE_SELFVOICING        = 0x00080000;
00276   const unsigned long  STATE_FOCUSABLE          = 0x00100000;
00277   const unsigned long  STATE_SELECTABLE         = 0x00200000;
00278   const unsigned long  STATE_LINKED             = 0x00400000;
00279   const unsigned long  STATE_TRAVERSED          = 0x00800000;
00280   const unsigned long  STATE_MULTISELECTABLE    = 0x01000000;  // Supports multiple selection
00281   const unsigned long  STATE_EXTSELECTABLE      = 0x02000000;  // Supports extended selection
00282   const unsigned long  STATE_ALERT_LOW          = 0x04000000;  // This information is of low priority
00283   const unsigned long  STATE_ALERT_MEDIUM       = 0x08000000;  // This information is of medium priority
00284   const unsigned long  STATE_ALERT_HIGH         = 0x10000000;  // This information is of high priority
00285   const unsigned long  STATE_PROTECTED          = 0x20000000;  // Maps to Gnome's *Role* ATK_ROLE_PASSWD_TEXT, nothing for Java?
00286   const unsigned long  STATE_HASPOPUP           = 0x40000000;  // New in MSAA 2.0
00287 
00288   // Mapping important states that we don't have to unused alert states on MSAA
00289   // as per discussions with AT vendors. On ATK there will be legitimate states for
00290   // STATE_REQUIRED AND STATE_INVALID
00291   const unsigned long  STATE_REQUIRED           = STATE_ALERT_LOW;
00292   const unsigned long  STATE_IMPORTANT          = STATE_ALERT_MEDIUM;
00293   const unsigned long  STATE_INVALID            = STATE_ALERT_HIGH;
00294   const unsigned long  STATE_CHECKABLE          = STATE_MARQUEED;
00295 
00300   const unsigned long  EXT_STATE_EDITABLE       = 0x00200000;  // Used for XUL/HTML input (type = text,password) element
00301   const unsigned long  EXT_STATE_ACTIVE         = 0x00400000;  // This window is currently the active window    
00302   const unsigned long  EXT_STATE_EXPANDABLE     = 0x00800000;  // An item that can be expanded, such as a tree item with children    
00303   const unsigned long  EXT_STATE_MODAL          = 0x01000000;  // Must do something with control before leaving it    
00304   const unsigned long  EXT_STATE_MULTI_LINE     = 0x02000000;  // Edit control that can take multiple lines    
00305   const unsigned long  EXT_STATE_SENSITIVE      = 0x04000000;  // No explanation given    
00306   const unsigned long  EXT_STATE_SHOWING        = 0x10000000;  // This object and all of it's ancestors are visible    
00307   const unsigned long  EXT_STATE_SINGLE_LINE    = 0x20000000;  // This text object can only contain 1 line of text    
00308   const unsigned long  EXT_STATE_TRANSIENT      = 0x40000000;  // Tells accessibility aid "Don't add event listener - this object doesn't generate any". For example, could be used with higher level containers.    
00309   const unsigned long  EXT_STATE_VERTICAL       = 0x80000000;  // Especially used for sliders and scrollbars  
00310 
00339   const unsigned long RELATION_NUL = 0x00;               // ATK_RELATION_NUL
00340   const unsigned long RELATION_CONTROLLED_BY = 0x01;     // ATK_RELATION_CONTROLLED_BY
00341   const unsigned long RELATION_CONTROLLER_FOR = 0x02;    // ATK_RELATION_CONTROLLER_FOR
00342   const unsigned long RELATION_LABEL_FOR = 0x03;         // ATK_RELATION_LABEL_FOR
00343   const unsigned long RELATION_LABELLED_BY = 0x04;       // ATK_RELATION_LABELLED_BY
00344   const unsigned long RELATION_MEMBER_OF = 0x05;         // ATK_RELATION_MEMBER_OF
00345   const unsigned long RELATION_NODE_CHILD_OF = 0x06;     // ATK_RELATION_NODE_CHILD_OF
00346   const unsigned long RELATION_FLOWS_TO = 0x07;          // ATK_RELATION_FLOWS_TO
00347   const unsigned long RELATION_FLOWS_FROM = 0x08;        // ATK_RELATION_FLOWS_FROM
00348   const unsigned long RELATION_SUBWINDOW_OF = 0x09;      // ATK_RELATION_SUBWINDOW_OF
00349   const unsigned long RELATION_EMBEDS = 0x0a;            // ATK_RELATION_EMBEDS
00350   const unsigned long RELATION_EMBEDDED_BY = 0x0b;       // ATK_RELATION_EMBEDDED_BY
00351   const unsigned long RELATION_POPUP_FOR = 0x0c;         // ATK_RELATION_POPUP_FOR
00352   const unsigned long RELATION_PARENT_WINDOW_OF = 0x0d;  // ATK_RELATION_PARENT_WINDOW_OF
00353   const unsigned long RELATION_DEFAULT_BUTTON = 0x4000;  // MSAA only, no ATK relation
00354   const unsigned long RELATION_DESCRIBED_BY = 0x4001;    // MSAA only, no ATK relation
00355   const unsigned long RELATION_DESCRIPTION_FOR = 0x4002; // MSAA only, no ATK relation
00356 
00357 %{C++
00358 #ifdef MOZ_ACCESSIBILITY_ATK
00359 
00360   enum { RELATION_LAST_DEFINED = 14U };
00361 
00410   enum { ROLE_TITLEBAR = 66U };    // ATK_ROLE_UNKNOWN
00411   enum { ROLE_MENUBAR = 33U };     // ATK_ROLE_MENU_BAR
00412   enum { ROLE_SCROLLBAR = 47U };   // ATK_ROLE_SCROLL_BAR
00413   enum { ROLE_GRIP = 66U };        // ATK_ROLE_UNKNOWN
00414   enum { ROLE_SOUND = 66U };       // ATK_ROLE_UNKNOWN
00415   enum { ROLE_CURSOR = 66U };      // ATK_ROLE_UNKNOWN
00416   enum { ROLE_CARET = 66U };       // ATK_ROLE_UNKNOWN
00417   enum { ROLE_ALERT = 2U };        // ATK_ROLE_ALERT
00418   enum { ROLE_WINDOW = 68U };      // ATK_ROLE_WINDOW
00419   // An object used for drawing custom user interface elements
00420   enum { ROLE_CLIENT = 18U };      // ATK_ROLE_DRAWING_AREA
00421   enum { ROLE_MENUPOPUP = 32U };   // ATK_ROLE_MENU
00422   enum { ROLE_MENUITEM = 34U };    // ATK_ROLE_MENU_ITEM
00423   enum { ROLE_TOOLTIP = 63U };     // ATK_ROLE_TOOL_TIP
00424   // The object represents a main window for a application
00425   enum { ROLE_APPLICATION = 73U }; // ATK_ROLE_APPLICATION
00426   // The object represents a document window, only for MDI windows
00427   enum { ROLE_DOCUMENT = 80U };    // ATK_ROLE_DOCUMENT_FRAME
00428   enum { ROLE_PANE = 38U };        // ATK_ROLE_PANEL
00429   enum { ROLE_CHART = 78U };       // ATK_ROLE_CHART
00430   enum { ROLE_DIALOG = 16U };      // ATK_ROLE_DIALOG
00431   enum { ROLE_BORDER = 66U };      // ATK_ROLE_UNKNOWN
00432   enum { ROLE_GROUPING = 38U };    // ATK_ROLE_PANEL
00433   enum { ROLE_SEPARATOR = 49U };   // ATK_ROLE_SEPARATOR
00434   enum { ROLE_TOOLBAR = 62U };     // ATK_ROLE_TOOL_BAR
00435   enum { ROLE_STATUSBAR = 53U };   // ATK_ROLE_STATUSBAR
00436   enum { ROLE_TABLE = 54U };       // ATK_ROLE_TABLE
00437   // Or ATK_ROLE_TABLE_COLUMN_HEADER?
00438   enum { ROLE_COLUMNHEADER = 10U };// ATK_ROLE_COLUMN_HEADER
00439   // Or ATK_ROLE_TABLE_ROW_HEADER ?
00440   enum { ROLE_ROWHEADER = 46U };   // ATK_ROLE_ROW_HEADER
00441   enum { ROLE_COLUMN = 66U };      // ATK_ROLE_UNKNOWN
00442   enum { ROLE_ROW = 66U };         // ATK_ROLE_UNKNOWN
00443   enum { ROLE_CELL = 55U };        // ATK_ROLE_TABLE_CELL
00444   enum { ROLE_LINK = 101U };        // ATK doesn't have such role now
00445   enum { ROLE_HELPBALLOON = 66U }; // ATK_ROLE_UNKNOWN
00446   // The object represents a cartoon-like graphic object
00447   enum { ROLE_CHARACTER = 26U };   // ATK_ROLE_IMAGE
00448   enum { ROLE_LIST = 30U };        // ATK_ROLE_LIST
00449   enum { ROLE_LISTITEM = 31U };    // ATK_ROLE_LIST_ITEM
00450   // The object represents an outline or tree structure
00451   enum { ROLE_OUTLINE = 64U };     // ATK_ROLE_TREE
00452   // The object represents an item in an outline or tree structure
00453   enum { ROLE_OUTLINEITEM = 31U }; // ATK_ROLE_LIST_ITEM
00454   enum { ROLE_PAGETAB = 36U };     // ATK_ROLE_PAGE_TAB
00455   enum { ROLE_PROPERTYPAGE = 66U };// ATK_ROLE_UNKNOWN
00456   enum { ROLE_INDICATOR = 66U };   // ATK_ROLE_UNKNOWN
00457   enum { ROLE_GRAPHIC = 26U };     // ATK_ROLE_IMAGE
00458   // Read-only text, can't be modified or selected
00459   enum { ROLE_STATICTEXT = 60U };  // ATK_ROLE_TEXT
00460   enum { ROLE_TEXT = 60U };        // ATK_ROLE_TEXT
00461   enum { ROLE_PUSHBUTTON = 42U };  // ATK_ROLE_PUSH_BUTTON
00462   enum { ROLE_CHECKBUTTON = 7U };  // ATK_ROLE_CHECK_BOX
00463   enum { ROLE_RADIOBUTTON = 43U }; // ATK_ROLE_RADIO_BUTTON
00464   enum { ROLE_COMBOBOX = 11U };    // ATK_ROLE_COMBO_BOX
00465   // Just represents the calender control
00466   enum { ROLE_DROPLIST = 5U };     // ATK_ROLE_CALENDAR
00467   enum { ROLE_PROGRESSBAR = 41U }; // ATK_ROLE_PROGRESS_BAR
00468   enum { ROLE_DIAL = 15U };        // ATK_ROLE_DIAL
00469   enum { ROLE_HOTKEYFIELD = 66U }; // ATK_ROLE_UNKNOWN
00470   enum { ROLE_SLIDER = 50U };      // ATK_ROLE_SLIDER
00471   enum { ROLE_SPINBUTTON = 52U };  // ATK_ROLE_SPIN_BUTTON
00472   enum { ROLE_DIAGRAM = 26U };     // ATK_ROLE_IMAGE
00473   enum { ROLE_ANIMATION = 3U };    // ATK_ROLE_ANIMATION
00474   enum { ROLE_EQUATION = 66U };    // ATK_ROLE_UNKNOWN
00475   enum { ROLE_BUTTONDROPDOWN = 42U }; // ATK_ROLE_PUSH_BUTTON
00476   enum { ROLE_BUTTONMENU = 42U };  // ATK_ROLE_PUSH_BUTTON
00477   // Represents a button that drops down a grid
00478   enum { ROLE_BUTTONDROPDOWNGRID = 66U }; // ATK_ROLE_UNKNOWN
00479   enum { ROLE_WHITESPACE = 66U };  // ATK_ROLE_UNKNOWN
00480   enum { ROLE_PAGETABLIST = 37U }; // ATK_ROLE_PAGE_TAB_LIST
00481   enum { ROLE_CLOCK = 66U };       // ATK_ROLE_UNKNOWN
00482   // Represents a button on the toolbar that has a drop-down list icon
00483   // directly adjacent to the button
00484   enum { ROLE_SPLITBUTTON = 42U }; // ATK_ROLE_PUSH_BUTTON
00485   enum { ROLE_IPADDRESS = 66U };   // ATK_ROLE_UNKNOWN
00486   enum { ROLE_NOTHING = 66U };     // ATK_ROLE_UNKNOWN
00487   // Represent top level window
00488   enum { ROLE_FRAME = 22U };               // ATK_ROLE_FRAME
00489 
00490   // Other roles from atk.h
00491   enum { ROLE_ACCEL_LABEL = 1U };          // ATK_ROLE_ACCEL_LABEL
00492   enum { ROLE_ARROW  = 4U };               // ATK_ROLE_ARROW
00493   enum { ROLE_CANVAS = 6U };               // ATK_ROLE_CANVAS
00494   enum { ROLE_CHECK_MENU_ITEM = 8U };      // ATK_ROLE_CHECK_MENU_ITEM
00495   enum { ROLE_COLOR_CHOOSER  = 9U };       // ATK_ROLE_COLOR_CHOOSER
00496   enum { ROLE_DATE_EDITOR = 12U };         // ATK_ROLE_DATE_EDITOR
00497   enum { ROLE_DESKTOP_ICON = 13U };        // ATK_ROLE_DESKTOP_ICON
00498   enum { ROLE_DESKTOP_FRAME = 14U };       // ATK_ROLE_DESKTOP_FRAME
00499   enum { ROLE_DIRECTORY_PANE = 17U };      // ATK_ROLE_DIRECTORY_PANE
00500   enum { ROLE_FILE_CHOOSER = 19U};         // ATK_ROLE_FILE_CHOOSER
00501   enum { ROLE_FILLER = 20U };              // ATK_ROLE_FILLER
00502   enum { ROLE_FONT_CHOOSER = 21U };        // ATK_ROLE_FONT_CHOOSER
00503   enum { ROLE_GLASS_PANE = 23U };          // ATK_ROLE_GLASS_PANE
00504   enum { ROLE_HTML_CONTAINER = 24U };      // ATK_ROLE_HTML_CONTAINER
00505   enum { ROLE_ICON = 25U };                // ATK_ROLE_ICON
00506   enum { ROLE_INTERNAL_FRAME = 27U };      // ATK_ROLE_INTERNAL_FRAME
00507   enum { ROLE_LABEL = 28U };               // ATK_ROLE_LABEL
00508   enum { ROLE_LAYERED_PANE = 29U };        // ATK_ROLE_LAYERED_PANE
00509   enum { ROLE_OPTION_PANE = 35U };         // ATK_ROLE_OPTION_PANE
00510   enum { ROLE_PASSWORD_TEXT = 39U };       // ATK_ROLE_PASSWORD_TEXT
00511   enum { ROLE_POPUP_MENU = 40U };          // ATK_ROLE_POPUP_MENU
00512   enum { ROLE_RADIO_MENU_ITEM = 44U };     // ATK_ROLE_RADIO_MENU_ITEM
00513   enum { ROLE_ROOT_PANE = 45U };           // ATK_ROLE_ROOT_PANE
00514   enum { ROLE_SCROLL_PANE = 48U };         // ATK_ROLE_SCROLL_PANE
00515   enum { ROLE_SPLIT_PANE = 51U };          // ATK_ROLE_SPLIT_PANE
00516   enum { ROLE_TABLE_COLUMN_HEADER = 56U }; // ATK_ROLE_TABLE_COLUMN_HEADER
00517   enum { ROLE_TABLE_ROW_HEADER = 57U };    // ATK_ROLE_TABLE_ROW_HEADER
00518   enum { ROLE_TEAR_OFF_MENU_ITEM = 58U };  // ATK_ROLE_TEAR_OFF_MENU_ITEM
00519   enum { ROLE_TERMINAL = 59U };            // ATK_ROLE_TERMINAL
00520   enum { ROLE_TOGGLE_BUTTON = 61U };       // ATK_ROLE_TOGGLE_BUTTON
00521   enum { ROLE_TREE_TABLE = 65U };          // ATK_ROLE_TREE_TABLE
00522   enum { ROLE_VIEWPORT = 67U };            // ATK_ROLE_VIEWPORT
00523   enum { ROLE_HEADER = 69U };              // ATK_ROLE_HEADER
00524   enum { ROLE_FOOTER = 70U };              // ATK_ROLE_FOOTER
00525   enum { ROLE_PARAGRAPH = 71U };           // ATK_ROLE_PARAGRAPH
00526   enum { ROLE_RULER = 72U };               // ATK_ROLE_RULER
00527   enum { ROLE_AUTOCOMPLETE = 74U };        // ATK_ROLE_AUTOCOMPLETE
00528   enum { ROLE_EDITBAR = 75U };             // ATK_ROLE_EDITBAR
00529   enum { ROLE_EMBEDDED = 76U };            // ATK_ROLE_EMBEDDED
00530   enum { ROLE_ENTRY = 77U };               // ATK_ROLE_ENTRY
00531   enum { ROLE_CAPTION = 79U };             // ATK_ROLE_CAPTION
00532   enum { ROLE_DOCUMENT_FRAME = 80U };      // ATK_ROLE_DOCUMENT_FRAME
00533   enum { ROLE_HEADING = 81U };             // ATK_ROLE_HEADING
00534   enum { ROLE_PAGE = 82U };                // ATK_ROLE_PAGE
00535   enum { ROLE_SECTION = 83U };             // ATK_ROLE_SECTION
00536   enum { ROLE_REDUNDANT_OBJECT = 84U };    // ATK_ROLE_REDUNDANT_OBJECT
00537 #else
00538 // MSAA Roles - only one per nsIAccessible or IAccessible
00539   enum { ROLE_TITLEBAR = 1U };
00540   enum { ROLE_MENUBAR = 2U };
00541   enum { ROLE_SCROLLBAR = 3U };
00542   enum { ROLE_GRIP = 4U };
00543   enum { ROLE_SOUND = 5U };
00544   enum { ROLE_CURSOR = 6U };
00545   enum { ROLE_CARET = 7U };
00546   enum { ROLE_ALERT = 8U };
00547   enum { ROLE_WINDOW = 9U };
00548   enum { ROLE_CLIENT = 10U };
00549   enum { ROLE_MENUPOPUP = 11U };
00550   enum { ROLE_MENUITEM = 12U };
00551   enum { ROLE_RADIO_MENU_ITEM = 12U }; // Same as ROLE_MENUITEM
00552   enum { ROLE_CHECK_MENU_ITEM = 12U }; // Same as ROLE_MENUITEM
00553   enum { ROLE_TOOLTIP = 13U };
00554   enum { ROLE_APPLICATION = 14U };
00555   enum { ROLE_DOCUMENT = 15U };
00556   enum { ROLE_PANE = 16U };
00557   enum { ROLE_CHART = 17U };
00558   enum { ROLE_DIALOG = 18U };
00559   enum { ROLE_BORDER = 19U };
00560   enum { ROLE_GROUPING = 20U };
00561   enum { ROLE_SEPARATOR = 21U };
00562   enum { ROLE_TOOLBAR = 22U };
00563   enum { ROLE_STATUSBAR = 23U };
00564   enum { ROLE_TABLE = 24U };
00565   enum { ROLE_COLUMNHEADER = 25U };
00566   enum { ROLE_ROWHEADER = 26U };
00567   enum { ROLE_COLUMN = 27U };
00568   enum { ROLE_ROW = 28U };
00569   enum { ROLE_CELL = 29U };
00570   enum { ROLE_LINK = 30U };
00571   enum { ROLE_HELPBALLOON = 31U };
00572   enum { ROLE_CHARACTER = 32U };
00573   enum { ROLE_LIST = 33U };
00574   enum { ROLE_LISTITEM = 34U };
00575   enum { ROLE_OUTLINE = 35U };
00576   enum { ROLE_TREE_TABLE = 35U }; // Same as ROLE_OUTLINE
00577   enum { ROLE_OUTLINEITEM = 36U };
00578   enum { ROLE_PAGETAB = 37U };
00579   enum { ROLE_PROPERTYPAGE = 38U };
00580   enum { ROLE_INDICATOR = 39U };
00581   enum { ROLE_GRAPHIC = 40U };
00582   enum { ROLE_STATICTEXT = 41U };
00583   enum { ROLE_TEXT = 42U };
00584   enum { ROLE_PUSHBUTTON = 43U };
00585   enum { ROLE_CHECKBUTTON = 44U };
00586   enum { ROLE_RADIOBUTTON = 45U };
00587   enum { ROLE_COMBOBOX = 46U };
00588   enum { ROLE_DROPLIST = 47U };
00589   enum { ROLE_PROGRESSBAR = 48U };
00590   enum { ROLE_DIAL = 49U };
00591   enum { ROLE_HOTKEYFIELD = 50U };
00592   enum { ROLE_SLIDER = 51U };
00593   enum { ROLE_SPINBUTTON = 52U };
00594   enum { ROLE_DIAGRAM = 53U };
00595   enum { ROLE_ANIMATION = 54U };
00596   enum { ROLE_EQUATION = 55U };
00597   enum { ROLE_BUTTONDROPDOWN = 56U };
00598   enum { ROLE_BUTTONMENU = 57U };
00599   enum { ROLE_BUTTONDROPDOWNGRID = 58U };
00600   enum { ROLE_WHITESPACE = 59U };
00601   enum { ROLE_PAGETABLIST = 60U };
00602   enum { ROLE_CLOCK = 61U };
00603   enum { ROLE_SPLITBUTTON = 62U };
00604   enum { ROLE_IPADDRESS = 63U };
00605   enum { ROLE_NOTHING = 4294967295U };
00606 
00607 // Make up for ATK roles that we don't have in MSAA
00608 // When in doubt map them to ROLE_NOTHING so that the role string is exposed
00609   enum { ROLE_ICON = ROLE_NOTHING };
00610   enum { ROLE_PASSWORD_TEXT = ROLE_TEXT };
00611   enum { ROLE_AUTOCOMPLETE = ROLE_COMBOBOX };
00612   enum { ROLE_EDITBAR = ROLE_NOTHING };
00613   enum { ROLE_EMBEDDED = ROLE_NOTHING };
00614   enum { ROLE_ENTRY = ROLE_NOTHING };
00615   enum { ROLE_CAPTION = ROLE_NOTHING };
00616   enum { ROLE_DOCUMENT_FRAME = ROLE_NOTHING };
00617   enum { ROLE_HEADING = ROLE_NOTHING };
00618   enum { ROLE_PAGE = ROLE_NOTHING };
00619   enum { ROLE_SECTION = ROLE_NOTHING };
00620   enum { ROLE_REDUNDANT_OBJECT = ROLE_NOTHING };
00621 
00622 // MSAA relationship extensions to accNavigate
00623   enum { NAVRELATION_CONTROLLED_BY = 0x1000 };
00624   enum { NAVRELATION_CONTROLLER_FOR = 0x1001 };
00625   enum { NAVRELATION_LABEL_FOR = 0x1002 };
00626   enum { NAVRELATION_LABELLED_BY = 0x1003 };
00627   enum { NAVRELATION_MEMBER_OF = 0x1004 };
00628   enum { NAVRELATION_NODE_CHILD_OF = 0x1005 };
00629   enum { NAVRELATION_FLOWS_TO = 0x1006 };
00630   enum { NAVRELATION_FLOWS_FROM = 0x1007 };
00631   enum { NAVRELATION_SUBWINDOW_OF = 0x1008 };
00632   enum { NAVRELATION_EMBEDS = 0x1009 };
00633   enum { NAVRELATION_EMBEDDED_BY = 0x100a };
00634   enum { NAVRELATION_POPUP_FOR = 0x100b };
00635   enum { NAVRELATION_PARENT_WINDOW_OF = 0x100c };
00636   enum { NAVRELATION_DEFAULT_BUTTON = 0x100d };
00637   enum { NAVRELATION_DESCRIBED_BY = 0x100e };
00638   enum { NAVRELATION_DESCRIPTION_FOR = 0x100f };
00639 
00640 #endif
00641 %}
00642 };