mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Fix for bug 374790 - fire IA2 events, r=ginn.chen
This commit is contained in:
parent
140e8b3eda
commit
d69d8e07f0
@ -19,7 +19,9 @@
|
||||
* Portions created by the Initial Developer are Copyright (C) 2003
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Original Author: Aaron Leventhal (aaronl@netscape.com)
|
||||
* Contributors:
|
||||
* Aaron Leventhal <aleventh@us.ibm.com> (original author)
|
||||
* Alexander Surkov <surkov.alexander@gmail.com>
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
@ -59,9 +61,420 @@ interface nsIDOMNode;
|
||||
*
|
||||
* @status UNDER_REVIEW
|
||||
*/
|
||||
[scriptable, uuid(b298afc0-4158-11db-b0de-0800200c9a66)]
|
||||
[scriptable, uuid(cc8d6414-90cf-450a-8c18-8bf8302d00b7)]
|
||||
interface nsIAccessibleEvent : nsISupports
|
||||
{
|
||||
/**
|
||||
* An object has been created.
|
||||
*/
|
||||
const unsigned long EVENT_CREATE = 0x0001;
|
||||
|
||||
/**
|
||||
* An object has been destroyed.
|
||||
*/
|
||||
const unsigned long EVENT_DESTROY = 0x0002;
|
||||
|
||||
/**
|
||||
* A hidden object is shown.
|
||||
*/
|
||||
const unsigned long EVENT_SHOW = 0x0003;
|
||||
|
||||
/**
|
||||
* An object is hidden.
|
||||
*/
|
||||
const unsigned long EVENT_HIDE = 0x0004;
|
||||
|
||||
/**
|
||||
* A container object has added, removed, or reordered its children.
|
||||
*/
|
||||
const unsigned long EVENT_REORDER = 0x0005;
|
||||
|
||||
/**
|
||||
* An object has a new parent object.
|
||||
*/
|
||||
const unsigned long EVENT_PARENT_CHANGE = 0x0006;
|
||||
|
||||
/**
|
||||
* The active descendant of a component has changed. The active descendant
|
||||
* is used in objects with transient children.
|
||||
*/
|
||||
const unsigned long EVENT_ACTIVE_DECENDENT_CHANGED = 0x0007;
|
||||
|
||||
/**
|
||||
* An object has received the keyboard focus.
|
||||
*/
|
||||
const unsigned long EVENT_FOCUS = 0x0008;
|
||||
|
||||
/**
|
||||
* An object's state has changed.
|
||||
*/
|
||||
const unsigned long EVENT_STATE_CHANGE = 0x0009;
|
||||
|
||||
/**
|
||||
* An object has changed location, shape, or size.
|
||||
*/
|
||||
const unsigned long EVENT_LOCATION_CHANGE = 0x000A;
|
||||
|
||||
/**
|
||||
* An object's Name property has changed.
|
||||
*/
|
||||
const unsigned long EVENT_NAME_CHANGE = 0x000B;
|
||||
|
||||
/**
|
||||
* An object's Description property has changed.
|
||||
*/
|
||||
const unsigned long EVENT_DESCRIPTION_CHANGE = 0x000C;
|
||||
|
||||
/**
|
||||
* An object's Value property has changed.
|
||||
*/
|
||||
const unsigned long EVENT_VALUE_CHANGE = 0x000D;
|
||||
|
||||
/**
|
||||
* An object's help has changed.
|
||||
*/
|
||||
const unsigned long EVENT_HELP_CHANGE = 0x000E;
|
||||
|
||||
/**
|
||||
* An object's default action has changed.
|
||||
*/
|
||||
const unsigned long EVENT_DEFACTION_CHANGE = 0x000F;
|
||||
|
||||
/**
|
||||
* An object's action has changed.
|
||||
*/
|
||||
const unsigned long EVENT_ACTION_CHANGE = 0x0010;
|
||||
|
||||
/**
|
||||
* An object's keyboard shortcut has changed.
|
||||
*/
|
||||
const unsigned long EVENT_ACCELERATOR_CHANGE = 0x0011;
|
||||
|
||||
/**
|
||||
* The selection within a container object has changed.
|
||||
*/
|
||||
const unsigned long EVENT_SELECTION = 0x0012;
|
||||
|
||||
/**
|
||||
* An item within a container object has been added to the selection.
|
||||
*/
|
||||
const unsigned long EVENT_SELECTION_ADD = 0x0013;
|
||||
|
||||
/**
|
||||
* An item within a container object has been removed from the selection.
|
||||
*/
|
||||
const unsigned long EVENT_SELECTION_REMOVE = 0x0014;
|
||||
|
||||
/**
|
||||
* Numerous selection changes have occurred within a container object.
|
||||
*/
|
||||
const unsigned long EVENT_SELECTION_WITHIN = 0x0015;
|
||||
|
||||
/**
|
||||
* An alert has been generated. Server applications send this event when a
|
||||
* user needs to know that a user interface element has changed.
|
||||
*/
|
||||
const unsigned long EVENT_ALERT = 0x0016;
|
||||
|
||||
/**
|
||||
* The foreground window has changed.
|
||||
*/
|
||||
const unsigned long EVENT_FOREGROUND = 0x0017;
|
||||
|
||||
/**
|
||||
* A menu item on the menu bar has been selected.
|
||||
*/
|
||||
const unsigned long EVENT_MENU_START = 0x0018;
|
||||
|
||||
/**
|
||||
* A menu from the menu bar has been closed.
|
||||
*/
|
||||
const unsigned long EVENT_MENU_END = 0x0019;
|
||||
|
||||
/**
|
||||
* A pop-up menu has been displayed.
|
||||
*/
|
||||
const unsigned long EVENT_MENUPOPUP_START = 0x001A;
|
||||
|
||||
/**
|
||||
* A pop-up menu has been closed.
|
||||
*/
|
||||
const unsigned long EVENT_MENUPOPUP_END = 0x001B;
|
||||
|
||||
/**
|
||||
* A window has received mouse capture.
|
||||
*/
|
||||
const unsigned long EVENT_CAPTURE_START = 0x001C;
|
||||
|
||||
/**
|
||||
* A window has lost mouse capture.
|
||||
*/
|
||||
const unsigned long EVENT_CAPTURE_END = 0x001D;
|
||||
|
||||
/**
|
||||
* A window is being moved or resized.
|
||||
*/
|
||||
const unsigned long EVENT_MOVESIZE_START = 0x001E;
|
||||
|
||||
/**
|
||||
* The movement or resizing of a window has finished
|
||||
*/
|
||||
const unsigned long EVENT_MOVESIZE_END = 0x001F;
|
||||
|
||||
/**
|
||||
* A window has entered context-sensitive Help mode
|
||||
*/
|
||||
const unsigned long EVENT_CONTEXTHELP_START = 0x0020;
|
||||
|
||||
/**
|
||||
* A window has exited context-sensitive Help mode
|
||||
*/
|
||||
const unsigned long EVENT_CONTEXTHELP_END = 0x0021;
|
||||
|
||||
/**
|
||||
* An application is about to enter drag-and-drop mode
|
||||
*/
|
||||
const unsigned long EVENT_DRAGDROP_START = 0x0022;
|
||||
|
||||
/**
|
||||
* An application is about to exit drag-and-drop mode
|
||||
*/
|
||||
const unsigned long EVENT_DRAGDROP_END = 0x0023;
|
||||
|
||||
/**
|
||||
* A dialog box has been displayed
|
||||
*/
|
||||
const unsigned long EVENT_DIALOG_START = 0x0024;
|
||||
|
||||
/**
|
||||
* A dialog box has been closed
|
||||
*/
|
||||
const unsigned long EVENT_DIALOG_END = 0x0025;
|
||||
|
||||
/**
|
||||
* Scrolling has started on a scroll bar
|
||||
*/
|
||||
const unsigned long EVENT_SCROLLING_START = 0x0026;
|
||||
|
||||
/**
|
||||
* Scrolling has ended on a scroll bar
|
||||
*/
|
||||
const unsigned long EVENT_SCROLLING_END = 0x0027;
|
||||
|
||||
/**
|
||||
* A window object is about to be minimized or maximized
|
||||
*/
|
||||
const unsigned long EVENT_MINIMIZE_START = 0x0028;
|
||||
|
||||
/**
|
||||
* A window object has been minimized or maximized
|
||||
*/
|
||||
const unsigned long EVENT_MINIMIZE_END = 0x0029;
|
||||
|
||||
/**
|
||||
* XXX:
|
||||
*/
|
||||
const unsigned long EVENT_DOCUMENT_LOAD_START = 0x002A;
|
||||
|
||||
/**
|
||||
* The loading of the document has completed.
|
||||
*/
|
||||
const unsigned long EVENT_DOCUMENT_LOAD_COMPLETE = 0x002B;
|
||||
|
||||
/**
|
||||
* The document contents are being reloaded.
|
||||
*/
|
||||
const unsigned long EVENT_DOCUMENT_RELOAD = 0x002C;
|
||||
|
||||
/**
|
||||
* The loading of the document was interrupted.
|
||||
*/
|
||||
const unsigned long EVENT_DOCUMENT_LOAD_STOPPED = 0x002D;
|
||||
|
||||
/**
|
||||
* The document wide attributes of the document object have changed.
|
||||
*/
|
||||
const unsigned long EVENT_DOCUMENT_ATTRIBUTES_CHANGED = 0x002E;
|
||||
|
||||
/**
|
||||
* The contents of the document have changed.
|
||||
*/
|
||||
const unsigned long EVENT_DOCUMENT_CONTENT_CHANGED = 0x002F;
|
||||
|
||||
const unsigned long EVENT_PROPERTY_CHANGED = 0x0030;
|
||||
const unsigned long EVENT_SELECTION_CHANGED = 0x0031;
|
||||
|
||||
/**
|
||||
* A text object's attributes changed.
|
||||
* Also see EVENT_OBJECT_ATTRIBUTE_CHANGED.
|
||||
*/
|
||||
const unsigned long EVENT_TEXT_ATTRIBUTE_CHANGED = 0x0032;
|
||||
|
||||
/**
|
||||
* The caret has moved to a new position.
|
||||
*/
|
||||
const unsigned long EVENT_TEXT_CARET_MOVED = 0x0033;
|
||||
|
||||
/**
|
||||
* This event indicates general text changes, i.e. changes to text that is
|
||||
* exposed through the IAccessibleText and IAccessibleEditableText interfaces.
|
||||
*/
|
||||
const unsigned long EVENT_TEXT_CHANGED = 0x0034;
|
||||
|
||||
/**
|
||||
* Text was inserted.
|
||||
*/
|
||||
const unsigned long EVENT_TEXT_INSERTED = 0x0035;
|
||||
|
||||
/**
|
||||
* Text was removed.
|
||||
*/
|
||||
const unsigned long EVENT_TEXT_REMOVED = 0x0036;
|
||||
|
||||
/**
|
||||
* Text was updated.
|
||||
*/
|
||||
const unsigned long EVENT_TEXT_UPDATED = 0x0037;
|
||||
|
||||
/**
|
||||
* The text selection changed.
|
||||
*/
|
||||
const unsigned long EVENT_TEXT_SELECTION_CHANGED = 0x0038;
|
||||
|
||||
/**
|
||||
* A visibile data event indicates the change of the visual appearance
|
||||
* of an accessible object. This includes for example most of the
|
||||
* attributes available via the IAccessibleComponent interface.
|
||||
*/
|
||||
const unsigned long EVENT_VISIBLE_DATA_CHANGED = 0x0039;
|
||||
|
||||
/**
|
||||
* The caret moved from one column to the next.
|
||||
*/
|
||||
const unsigned long EVENT_COLUMN_CHANGED = 0x003A;
|
||||
|
||||
/**
|
||||
* The caret moved from one section to the next.
|
||||
*/
|
||||
const unsigned long EVENT_SECTION_CHANGED = 0x003B;
|
||||
|
||||
/**
|
||||
* A table caption changed.
|
||||
*/
|
||||
const unsigned long EVENT_TABLE_CAPTION_CHANGED = 0x003C;
|
||||
|
||||
/**
|
||||
* A table's data changed.
|
||||
*/
|
||||
const unsigned long EVENT_TABLE_MODEL_CHANGED = 0x003D;
|
||||
|
||||
/**
|
||||
* A table's summary changed.
|
||||
*/
|
||||
const unsigned long EVENT_TABLE_SUMMARY_CHANGED = 0x003E;
|
||||
|
||||
/**
|
||||
* A table's row description changed.
|
||||
*/
|
||||
const unsigned long EVENT_TABLE_ROW_DESCRIPTION_CHANGED = 0x003F;
|
||||
|
||||
/**
|
||||
* A table's row header changed.
|
||||
*/
|
||||
const unsigned long EVENT_TABLE_ROW_HEADER_CHANGED = 0x0040;
|
||||
|
||||
const unsigned long EVENT_TABLE_ROW_INSERT = 0x0041;
|
||||
const unsigned long EVENT_TABLE_ROW_DELETE = 0x0042;
|
||||
const unsigned long EVENT_TABLE_ROW_REORDER = 0x0043;
|
||||
|
||||
/**
|
||||
* A table's column description changed.
|
||||
*/
|
||||
const unsigned long EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED = 0x0044;
|
||||
|
||||
/**
|
||||
* A table's column header changed.
|
||||
*/
|
||||
const unsigned long EVENT_TABLE_COLUMN_HEADER_CHANGED = 0x0045;
|
||||
|
||||
const unsigned long EVENT_TABLE_COLUMN_INSERT = 0x0046;
|
||||
const unsigned long EVENT_TABLE_COLUMN_DELETE = 0x0047;
|
||||
const unsigned long EVENT_TABLE_COLUMN_REORDER = 0x0048;
|
||||
|
||||
const unsigned long EVENT_WINDOW_ACTIVATE = 0x0049;
|
||||
const unsigned long EVENT_WINDOW_CREATE = 0x004A;
|
||||
const unsigned long EVENT_WINDOW_DEACTIVATE = 0x004B;
|
||||
const unsigned long EVENT_WINDOW_DESTROY = 0x004C;
|
||||
const unsigned long EVENT_WINDOW_MAXIMIZE = 0x004D;
|
||||
const unsigned long EVENT_WINDOW_MINIMIZE = 0x004E;
|
||||
const unsigned long EVENT_WINDOW_RESIZE = 0x004F;
|
||||
const unsigned long EVENT_WINDOW_RESTORE = 0x0050;
|
||||
|
||||
/**
|
||||
* The ending index of this link within the containing string has changed.
|
||||
*/
|
||||
const unsigned long EVENT_HYPERLINK_END_INDEX_CHANGED = 0x0051;
|
||||
|
||||
/**
|
||||
* The number of anchors assoicated with this hyperlink object has changed.
|
||||
*/
|
||||
const unsigned long EVENT_HYPERLINK_NUMBER_OF_ANCHORS_CHANGED = 0x0052;
|
||||
|
||||
/**
|
||||
* The hyperlink selected state changed from selected to unselected or
|
||||
* from unselected to selected.
|
||||
*/
|
||||
const unsigned long EVENT_HYPERLINK_SELECTED_LINK_CHANGED = 0x0053;
|
||||
|
||||
/**
|
||||
* One of the links associated with the hypertext object has been activated.
|
||||
*/
|
||||
const unsigned long EVENT_HYPERTEXT_LINK_ACTIVATED = 0x0054;
|
||||
|
||||
/**
|
||||
* One of the links associated with the hypertext object has been selected.
|
||||
*/
|
||||
const unsigned long EVENT_HYPERTEXT_LINK_SELECTED = 0x0055;
|
||||
|
||||
/**
|
||||
* The starting index of this link within the containing string has changed.
|
||||
*/
|
||||
const unsigned long EVENT_HYPERLINK_START_INDEX_CHANGED = 0x0056;
|
||||
|
||||
/**
|
||||
* Focus has changed from one hypertext object to another, or focus moved
|
||||
* from a non-hypertext object to a hypertext object, or focus moved from a
|
||||
* hypertext object to a non-hypertext object.
|
||||
*/
|
||||
const unsigned long EVENT_HYPERTEXT_CHANGED = 0x0057;
|
||||
|
||||
/**
|
||||
* The number of hyperlinks associated with a hypertext object changed.
|
||||
*/
|
||||
const unsigned long EVENT_HYPERTEXT_NLINKS_CHANGED = 0x0058;
|
||||
|
||||
/**
|
||||
* An object's attributes changed. Also see EVENT_TEXT_ATTRIBUTE_CHANGED.
|
||||
*/
|
||||
const unsigned long EVENT_OBJECT_ATTRIBUTE_CHANGED = 0x0059;
|
||||
|
||||
/**
|
||||
* A slide changed in a presentation document or a page boundary was
|
||||
* crossed in a word processing document.
|
||||
*/
|
||||
const unsigned long EVENT_PAGE_CHANGED = 0x005A;
|
||||
|
||||
/**
|
||||
* An object's role changed.
|
||||
*/
|
||||
const unsigned long EVENT_ROLE_CHANGED = 0x005B;
|
||||
|
||||
/**
|
||||
* Used internally in Gecko.
|
||||
*/
|
||||
const unsigned long EVENT_INTERNAL_LOAD = 0x005C;
|
||||
|
||||
|
||||
/**
|
||||
* The type of event, based on the enumerated event values
|
||||
* defined in this interface.
|
||||
@ -86,76 +499,5 @@ interface nsIAccessibleEvent : nsISupports
|
||||
* May return null if accessible for event has been shut down
|
||||
*/
|
||||
readonly attribute nsIDOMNode DOMNode;
|
||||
|
||||
// these are set to the values given by MSAA
|
||||
const unsigned long EVENT_CREATE = 0x8000;
|
||||
const unsigned long EVENT_DESTROY = 0x8001;
|
||||
const unsigned long EVENT_SHOW = 0x8002;
|
||||
const unsigned long EVENT_HIDE = 0x8003;
|
||||
const unsigned long EVENT_REORDER = 0x8004;
|
||||
const unsigned long EVENT_FOCUS = 0x8005;
|
||||
const unsigned long EVENT_STATE_CHANGE = 0x800A;
|
||||
const unsigned long EVENT_LOCATION_CHANGE = 0x800B;
|
||||
const unsigned long EVENT_NAME_CHANGE = 0x800C;
|
||||
const unsigned long EVENT_DESCRIPTIONCHANGE = 0x800D;
|
||||
const unsigned long EVENT_VALUE_CHANGE = 0x800E;
|
||||
const unsigned long EVENT_PARENTCHANGE = 0x800F;
|
||||
const unsigned long EVENT_HELPCHANGE = 0x8010;
|
||||
const unsigned long EVENT_DEFACTIONCHANGE = 0x8011;
|
||||
const unsigned long EVENT_ACCELERATORCHANGE = 0x8012;
|
||||
const unsigned long EVENT_SELECTION = 0x8006;
|
||||
const unsigned long EVENT_SELECTION_ADD = 0x8007;
|
||||
const unsigned long EVENT_SELECTION_REMOVE = 0x8008;
|
||||
const unsigned long EVENT_SELECTION_WITHIN = 0x8009;
|
||||
const unsigned long EVENT_ALERT = 0x0002;
|
||||
const unsigned long EVENT_FOREGROUND = 0x0003;
|
||||
const unsigned long EVENT_MENUSTART = 0x0004;
|
||||
const unsigned long EVENT_MENUEND = 0x0005;
|
||||
const unsigned long EVENT_MENUPOPUPSTART = 0x0006;
|
||||
const unsigned long EVENT_MENUPOPUPEND = 0x0007;
|
||||
const unsigned long EVENT_CAPTURESTART = 0x0008;
|
||||
const unsigned long EVENT_CAPTUREEND = 0x0009;
|
||||
const unsigned long EVENT_MOVESIZESTART = 0x000A;
|
||||
const unsigned long EVENT_MOVESIZEEND = 0x000B;
|
||||
const unsigned long EVENT_CONTEXTHELPSTART = 0x000C;
|
||||
const unsigned long EVENT_CONTEXTHELPEND = 0x000D;
|
||||
const unsigned long EVENT_DRAGDROPSTART = 0x000E;
|
||||
const unsigned long EVENT_DRAGDROPEND = 0x000F;
|
||||
const unsigned long EVENT_DIALOGSTART = 0x0010;
|
||||
const unsigned long EVENT_DIALOGEND = 0x0011;
|
||||
const unsigned long EVENT_SCROLLINGSTART = 0x0012;
|
||||
const unsigned long EVENT_SCROLLINGEND = 0x0013;
|
||||
const unsigned long EVENT_MINIMIZESTART = 0x0016;
|
||||
const unsigned long EVENT_MINIMIZEEND = 0x0017;
|
||||
const unsigned long EVENT_DOCUMENT_LOAD_START = 0x0018;
|
||||
const unsigned long EVENT_DOCUMENT_LOAD_COMPLETE = 0x0019;
|
||||
const unsigned long EVENT_DOCUMENT_RELOAD = 0x0020;
|
||||
const unsigned long EVENT_DOCUMENT_LOAD_STOPPED = 0x0021;
|
||||
const unsigned long EVENT_DOCUMENT_ATTRIBUTES_CHANGED = 0x0022;
|
||||
|
||||
// the additional events for ATK
|
||||
const unsigned long EVENT_ATK_PROPERTY_CHANGE = 0x0100;
|
||||
const unsigned long EVENT_ATK_SELECTION_CHANGE = 0x0101;
|
||||
const unsigned long EVENT_ATK_TEXT_CHANGE = 0x0102;
|
||||
const unsigned long EVENT_ATK_TEXT_SELECTION_CHANGE = 0x0103;
|
||||
const unsigned long EVENT_ATK_TEXT_CARET_MOVE = 0x0104;
|
||||
const unsigned long EVENT_ATK_VISIBLE_DATA_CHANGE = 0x0105;
|
||||
const unsigned long EVENT_ATK_TABLE_MODEL_CHANGE = 0x0110;
|
||||
const unsigned long EVENT_ATK_TABLE_ROW_INSERT = 0x0111;
|
||||
const unsigned long EVENT_ATK_TABLE_ROW_DELETE = 0x0112;
|
||||
const unsigned long EVENT_ATK_TABLE_ROW_REORDER = 0x0113;
|
||||
const unsigned long EVENT_ATK_TABLE_COLUMN_INSERT = 0x0114;
|
||||
const unsigned long EVENT_ATK_TABLE_COLUMN_DELETE = 0x0115;
|
||||
const unsigned long EVENT_ATK_TABLE_COLUMN_REORDER = 0x0116;
|
||||
const unsigned long EVENT_ATK_LINK_SELECTED = 0x0117;
|
||||
const unsigned long EVENT_ATK_WINDOW_ACTIVATE = 0x0118;
|
||||
const unsigned long EVENT_ATK_WINDOW_CREATE = 0x0119;
|
||||
const unsigned long EVENT_ATK_WINDOW_DEACTIVATE = 0x0120;
|
||||
const unsigned long EVENT_ATK_WINDOW_DESTROY = 0x0121;
|
||||
const unsigned long EVENT_ATK_WINDOW_MAXIMIZE = 0x0122;
|
||||
const unsigned long EVENT_ATK_WINDOW_MINIMIZE = 0x0123;
|
||||
const unsigned long EVENT_ATK_WINDOW_RESIZE = 0x0124;
|
||||
const unsigned long EVENT_ATK_WINDOW_RESTORE = 0x0125;
|
||||
|
||||
const unsigned long EVENT_INTERNAL_LOAD = 0xffff;
|
||||
};
|
||||
|
||||
|
@ -163,12 +163,12 @@ NS_IMETHODIMP nsDocAccessibleWrap::FireToolkitEvent(PRUint32 aEvent,
|
||||
/*
|
||||
* Need handle each type of property change separately.
|
||||
*/
|
||||
case nsIAccessibleEvent::EVENT_ATK_PROPERTY_CHANGE :
|
||||
case nsIAccessibleEvent::EVENT_PROPERTY_CHANGED :
|
||||
{
|
||||
AtkPropertyChange *pAtkPropChange;
|
||||
AtkPropertyValues values = { NULL };
|
||||
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_ATK_PROPERTY_CHANGE\n"));
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_PROPERTY_CHANGED\n"));
|
||||
NS_ASSERTION(aEventData, "Event needs event data");
|
||||
if (!aEventData)
|
||||
break;
|
||||
@ -176,7 +176,7 @@ NS_IMETHODIMP nsDocAccessibleWrap::FireToolkitEvent(PRUint32 aEvent,
|
||||
pAtkPropChange = NS_REINTERPRET_CAST(AtkPropertyChange *, aEventData);
|
||||
values.property_name = sAtkPropertyNameArray[pAtkPropChange->type];
|
||||
|
||||
MAI_LOG_DEBUG(("\n\nthe type of EVENT_ATK_PROPERTY_CHANGE: %d\n\n",
|
||||
MAI_LOG_DEBUG(("\n\nthe type of EVENT_PROPERTY_CHANGED: %d\n\n",
|
||||
pAtkPropChange->type));
|
||||
|
||||
switch (pAtkPropChange->type) {
|
||||
@ -230,16 +230,16 @@ NS_IMETHODIMP nsDocAccessibleWrap::FireToolkitEvent(PRUint32 aEvent,
|
||||
}
|
||||
break;
|
||||
|
||||
case nsIAccessibleEvent::EVENT_ATK_SELECTION_CHANGE:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_ATK_SELECTION_CHANGE\n"));
|
||||
case nsIAccessibleEvent::EVENT_SELECTION_CHANGED:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_SELECTION_CHANGED\n"));
|
||||
g_signal_emit_by_name(atkObj, "selection_changed");
|
||||
rv = NS_OK;
|
||||
break;
|
||||
|
||||
case nsIAccessibleEvent::EVENT_ATK_TEXT_CHANGE:
|
||||
case nsIAccessibleEvent::EVENT_TEXT_CHANGED:
|
||||
AtkTextChange *pAtkTextChange;
|
||||
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_ATK_TEXT_CHANGE\n"));
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_TEXT_CHANGED\n"));
|
||||
NS_ASSERTION(aEventData, "Event needs event data");
|
||||
if (!aEventData)
|
||||
break;
|
||||
@ -253,14 +253,14 @@ NS_IMETHODIMP nsDocAccessibleWrap::FireToolkitEvent(PRUint32 aEvent,
|
||||
rv = NS_OK;
|
||||
break;
|
||||
|
||||
case nsIAccessibleEvent::EVENT_ATK_TEXT_SELECTION_CHANGE:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_ATK_TEXT_SELECTION_CHANGE\n"));
|
||||
case nsIAccessibleEvent::EVENT_TEXT_SELECTION_CHANGED:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_TEXT_SELECTION_CHANGED\n"));
|
||||
g_signal_emit_by_name(atkObj, "text_selection_changed");
|
||||
rv = NS_OK;
|
||||
break;
|
||||
|
||||
case nsIAccessibleEvent::EVENT_ATK_TEXT_CARET_MOVE:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_ATK_TEXT_CARET_MOVE\n"));
|
||||
case nsIAccessibleEvent::EVENT_TEXT_CARET_MOVED:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_TEXT_CARET_MOVED\n"));
|
||||
NS_ASSERTION(aEventData, "Event needs event data");
|
||||
if (!aEventData)
|
||||
break;
|
||||
@ -273,14 +273,14 @@ NS_IMETHODIMP nsDocAccessibleWrap::FireToolkitEvent(PRUint32 aEvent,
|
||||
rv = NS_OK;
|
||||
break;
|
||||
|
||||
case nsIAccessibleEvent::EVENT_ATK_TABLE_MODEL_CHANGE:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_ATK_TABLE_MODEL_CHANGE\n"));
|
||||
case nsIAccessibleEvent::EVENT_TABLE_MODEL_CHANGED:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_TABLE_MODEL_CHANGED\n"));
|
||||
g_signal_emit_by_name(atkObj, "model_changed");
|
||||
rv = NS_OK;
|
||||
break;
|
||||
|
||||
case nsIAccessibleEvent::EVENT_ATK_TABLE_ROW_INSERT:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_ATK_TABLE_ROW_INSERT\n"));
|
||||
case nsIAccessibleEvent::EVENT_TABLE_ROW_INSERT:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_TABLE_ROW_INSERT\n"));
|
||||
NS_ASSERTION(aEventData, "Event needs event data");
|
||||
if (!aEventData)
|
||||
break;
|
||||
@ -296,8 +296,8 @@ NS_IMETHODIMP nsDocAccessibleWrap::FireToolkitEvent(PRUint32 aEvent,
|
||||
rv = NS_OK;
|
||||
break;
|
||||
|
||||
case nsIAccessibleEvent::EVENT_ATK_TABLE_ROW_DELETE:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_ATK_TABLE_ROW_DELETE\n"));
|
||||
case nsIAccessibleEvent::EVENT_TABLE_ROW_DELETE:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_TABLE_ROW_DELETE\n"));
|
||||
NS_ASSERTION(aEventData, "Event needs event data");
|
||||
if (!aEventData)
|
||||
break;
|
||||
@ -313,14 +313,14 @@ NS_IMETHODIMP nsDocAccessibleWrap::FireToolkitEvent(PRUint32 aEvent,
|
||||
rv = NS_OK;
|
||||
break;
|
||||
|
||||
case nsIAccessibleEvent::EVENT_ATK_TABLE_ROW_REORDER:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_ATK_TABLE_ROW_REORDER\n"));
|
||||
case nsIAccessibleEvent::EVENT_TABLE_ROW_REORDER:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_TABLE_ROW_REORDER\n"));
|
||||
g_signal_emit_by_name(atkObj, "row_reordered");
|
||||
rv = NS_OK;
|
||||
break;
|
||||
|
||||
case nsIAccessibleEvent::EVENT_ATK_TABLE_COLUMN_INSERT:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_ATK_TABLE_COLUMN_INSERT\n"));
|
||||
case nsIAccessibleEvent::EVENT_TABLE_COLUMN_INSERT:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_TABLE_COLUMN_INSERT\n"));
|
||||
NS_ASSERTION(aEventData, "Event needs event data");
|
||||
if (!aEventData)
|
||||
break;
|
||||
@ -336,8 +336,8 @@ NS_IMETHODIMP nsDocAccessibleWrap::FireToolkitEvent(PRUint32 aEvent,
|
||||
rv = NS_OK;
|
||||
break;
|
||||
|
||||
case nsIAccessibleEvent::EVENT_ATK_TABLE_COLUMN_DELETE:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_ATK_TABLE_COLUMN_DELETE\n"));
|
||||
case nsIAccessibleEvent::EVENT_TABLE_COLUMN_DELETE:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_TABLE_COLUMN_DELETE\n"));
|
||||
NS_ASSERTION(aEventData, "Event needs event data");
|
||||
if (!aEventData)
|
||||
break;
|
||||
@ -353,20 +353,20 @@ NS_IMETHODIMP nsDocAccessibleWrap::FireToolkitEvent(PRUint32 aEvent,
|
||||
rv = NS_OK;
|
||||
break;
|
||||
|
||||
case nsIAccessibleEvent::EVENT_ATK_TABLE_COLUMN_REORDER:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_ATK_TABLE_COLUMN_REORDER\n"));
|
||||
case nsIAccessibleEvent::EVENT_TABLE_COLUMN_REORDER:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_TABLE_COLUMN_REORDER\n"));
|
||||
g_signal_emit_by_name(atkObj, "column_reordered");
|
||||
rv = NS_OK;
|
||||
break;
|
||||
|
||||
case nsIAccessibleEvent::EVENT_ATK_VISIBLE_DATA_CHANGE:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_ATK_VISIBLE_DATA_CHANGE\n"));
|
||||
case nsIAccessibleEvent::EVENT_SECTION_CHANGED:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_SECTION_CHANGED\n"));
|
||||
g_signal_emit_by_name(atkObj, "visible_data_changed");
|
||||
rv = NS_OK;
|
||||
break;
|
||||
|
||||
case nsIAccessibleEvent::EVENT_ATK_LINK_SELECTED:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_ATK_LINK_SELECTED\n"));
|
||||
case nsIAccessibleEvent::EVENT_HYPERTEXT_LINK_SELECTED:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_HYPERTEXT_LINK_SELECTED\n"));
|
||||
atk_focus_tracker_notify(atkObj);
|
||||
g_signal_emit_by_name(atkObj,
|
||||
"link_selected",
|
||||
@ -417,19 +417,19 @@ NS_IMETHODIMP nsDocAccessibleWrap::FireToolkitEvent(PRUint32 aEvent,
|
||||
* following two event.
|
||||
* Need more verification by AT test.
|
||||
*/
|
||||
case nsIAccessibleEvent::EVENT_MENUSTART:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_MENUSTART\n"));
|
||||
case nsIAccessibleEvent::EVENT_MENU_START:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_MENU_START\n"));
|
||||
rv = NS_OK;
|
||||
break;
|
||||
|
||||
case nsIAccessibleEvent::EVENT_MENUEND:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_MENUEND\n"));
|
||||
case nsIAccessibleEvent::EVENT_MENU_END:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_MENU_END\n"));
|
||||
rv = NS_OK;
|
||||
break;
|
||||
|
||||
case nsIAccessibleEvent::EVENT_ATK_WINDOW_ACTIVATE:
|
||||
case nsIAccessibleEvent::EVENT_WINDOW_ACTIVATE:
|
||||
{
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_ATK_WINDOW_ACTIVATED\n"));
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_WINDOW_ACTIVATED\n"));
|
||||
nsDocAccessibleWrap *accDocWrap =
|
||||
NS_STATIC_CAST(nsDocAccessibleWrap *, aAccessible);
|
||||
accDocWrap->mActivated = PR_TRUE;
|
||||
@ -438,9 +438,9 @@ NS_IMETHODIMP nsDocAccessibleWrap::FireToolkitEvent(PRUint32 aEvent,
|
||||
rv = NS_OK;
|
||||
} break;
|
||||
|
||||
case nsIAccessibleEvent::EVENT_ATK_WINDOW_DEACTIVATE:
|
||||
case nsIAccessibleEvent::EVENT_WINDOW_DEACTIVATE:
|
||||
{
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_ATK_WINDOW_DEACTIVATED\n"));
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_WINDOW_DEACTIVATED\n"));
|
||||
nsDocAccessibleWrap *accDocWrap =
|
||||
NS_STATIC_CAST(nsDocAccessibleWrap *, aAccessible);
|
||||
accDocWrap->mActivated = PR_FALSE;
|
||||
@ -478,7 +478,7 @@ NS_IMETHODIMP nsDocAccessibleWrap::FireToolkitEvent(PRUint32 aEvent,
|
||||
} break;
|
||||
|
||||
case nsIAccessibleEvent::EVENT_SHOW:
|
||||
case nsIAccessibleEvent::EVENT_MENUPOPUPSTART:
|
||||
case nsIAccessibleEvent::EVENT_MENUPOPUP_START:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_SHOW\n"));
|
||||
atk_object_notify_state_change(atkObj, ATK_STATE_VISIBLE, PR_TRUE);
|
||||
atk_object_notify_state_change(atkObj, ATK_STATE_SHOWING, PR_TRUE);
|
||||
@ -486,7 +486,7 @@ NS_IMETHODIMP nsDocAccessibleWrap::FireToolkitEvent(PRUint32 aEvent,
|
||||
break;
|
||||
|
||||
case nsIAccessibleEvent::EVENT_HIDE:
|
||||
case nsIAccessibleEvent::EVENT_MENUPOPUPEND:
|
||||
case nsIAccessibleEvent::EVENT_MENUPOPUP_END:
|
||||
MAI_LOG_DEBUG(("\n\nReceived: EVENT_HIDE\n"));
|
||||
atk_object_notify_state_change(atkObj, ATK_STATE_VISIBLE, PR_FALSE);
|
||||
atk_object_notify_state_change(atkObj, ATK_STATE_SHOWING, PR_FALSE);
|
||||
|
@ -193,7 +193,7 @@ nsresult nsRootAccessibleWrap::HandleEventWithTarget(nsIDOMEvent *aEvent,
|
||||
else if (eventType.LowerCaseEqualsLiteral("select")) {
|
||||
#ifdef MOZ_XUL
|
||||
if (treeItemAccessible) { // it's a XUL <tree>
|
||||
// use EVENT_FOCUS instead of EVENT_ATK_SELECTION_CHANGE
|
||||
// use EVENT_FOCUS instead of EVENT_SELECTION_CHANGED
|
||||
privAcc = do_QueryInterface(treeItemAccessible);
|
||||
privAcc->FireToolkitEvent(nsIAccessibleEvent::EVENT_FOCUS,
|
||||
treeItemAccessible, nsnull);
|
||||
@ -256,7 +256,7 @@ nsresult nsRootAccessibleWrap::HandleEventWithTarget(nsIDOMEvent *aEvent,
|
||||
// ------------------------------------------------------------------------
|
||||
// If the AT wants to know about these popups it can track the ATK state change
|
||||
// event we fire for ATK_STATE_INVISIBLE on the popup.
|
||||
// This is fired as a result of the nsIAccessibleEvent::EVENT_MENUPOPUPSTART
|
||||
// This is fired as a result of the nsIAccessibleEvent::EVENT_MENUPOPUP_START
|
||||
// we fire in the nsRootAccessible event handling for all popups.
|
||||
return NS_OK;
|
||||
}
|
||||
|
@ -206,7 +206,8 @@ NS_IMETHODIMP nsCaretAccessible::NotifySelectionChanged(nsIDOMDocument *aDoc, ns
|
||||
NS_ASSERTION(textAcc, "No nsIAccessibleText for caret move event!"); // No nsIAccessibleText for caret move event!
|
||||
NS_ENSURE_TRUE(textAcc, NS_ERROR_FAILURE);
|
||||
|
||||
return mRootAccessible->FireDelayedToolkitEvent(nsIAccessibleEvent::EVENT_ATK_TEXT_CARET_MOVE, focusNode, nsnull, PR_FALSE);
|
||||
return mRootAccessible->FireDelayedToolkitEvent(nsIAccessibleEvent::EVENT_TEXT_CARET_MOVED,
|
||||
focusNode, nsnull, PR_FALSE);
|
||||
}
|
||||
|
||||
/** Return the caret's bounds */
|
||||
|
@ -775,7 +775,8 @@ void nsDocAccessible::ScrollTimerCallback(nsITimer *aTimer, void *aClosure)
|
||||
// We only want to fire accessibilty scroll event when scrolling stops or pauses
|
||||
// Therefore, we wait for no scroll events to occur between 2 ticks of this timer
|
||||
// That indicates a pause in scrolling, so we fire the accessibilty scroll event
|
||||
docAcc->FireToolkitEvent(nsIAccessibleEvent::EVENT_SCROLLINGEND, docAcc, nsnull);
|
||||
docAcc->FireToolkitEvent(nsIAccessibleEvent::EVENT_SCROLLING_END, docAcc,
|
||||
nsnull);
|
||||
docAcc->mScrollPositionChangedTicks = 0;
|
||||
if (docAcc->mScrollWatchTimer) {
|
||||
docAcc->mScrollWatchTimer->Cancel();
|
||||
@ -1130,15 +1131,17 @@ NS_IMETHODIMP nsDocAccessible::FlushPendingEvents()
|
||||
docAccessible->FireDocLoadEvents(nsIAccessibleEvent::EVENT_DOCUMENT_LOAD_COMPLETE);
|
||||
}
|
||||
}
|
||||
else if (eventType == nsIAccessibleEvent::EVENT_ATK_TEXT_CARET_MOVE) {
|
||||
else if (eventType == nsIAccessibleEvent::EVENT_TEXT_CARET_MOVED) {
|
||||
nsCOMPtr<nsIAccessibleText> accessibleText = do_QueryInterface(accessible);
|
||||
PRInt32 caretOffset;
|
||||
if (accessibleText && NS_SUCCEEDED(accessibleText->GetCaretOffset(&caretOffset))) {
|
||||
FireToolkitEvent(nsIAccessibleEvent::EVENT_ATK_TEXT_CARET_MOVE, accessible, &caretOffset);
|
||||
FireToolkitEvent(nsIAccessibleEvent::EVENT_TEXT_CARET_MOVED,
|
||||
accessible, &caretOffset);
|
||||
PRInt32 selectionCount;
|
||||
accessibleText->GetSelectionCount(&selectionCount);
|
||||
if (selectionCount) { // There's a selection so fire selection change as well
|
||||
FireToolkitEvent(nsIAccessibleEvent::EVENT_ATK_TEXT_SELECTION_CHANGE, accessible, nsnull);
|
||||
FireToolkitEvent(nsIAccessibleEvent::EVENT_TEXT_SELECTION_CHANGED,
|
||||
accessible, nsnull);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1185,7 +1188,7 @@ void nsDocAccessible::RefreshNodes(nsIDOMNode *aStartNode, PRUint32 aChangeEvent
|
||||
if (!popup) {
|
||||
// Popup elements already fire these via DOMMenuInactive
|
||||
// handling in nsRootAccessible::HandleEvent
|
||||
event = nsIAccessibleEvent::EVENT_MENUPOPUPEND;
|
||||
event = nsIAccessibleEvent::EVENT_MENUPOPUP_END;
|
||||
}
|
||||
}
|
||||
else if (role == nsIAccessibleRole::ROLE_PROGRESSBAR &&
|
||||
@ -1279,7 +1282,7 @@ NS_IMETHODIMP nsDocAccessible::InvalidateCacheSubtree(nsIContent *aChild,
|
||||
#endif
|
||||
|
||||
if (aChangeEventType == nsIAccessibleEvent::EVENT_HIDE) {
|
||||
// Fire EVENT_HIDE or EVENT_MENUPOPUPEND if previous accessible existed
|
||||
// Fire EVENT_HIDE or EVENT_MENUPOPUP_END if previous accessible existed
|
||||
// for node being hidden. Fire this before the accessible goes away
|
||||
if (privateChildAccessible) {
|
||||
privateChildAccessible->FireToolkitEvent(nsIAccessibleEvent::EVENT_HIDE,
|
||||
@ -1341,7 +1344,7 @@ NS_IMETHODIMP nsDocAccessible::InvalidateCacheSubtree(nsIContent *aChild,
|
||||
}
|
||||
|
||||
if (aChangeEventType == nsIAccessibleEvent::EVENT_SHOW && aChild) {
|
||||
// Fire EVENT_SHOW, EVENT_MENUPOPUPSTART for newly visible content.
|
||||
// Fire EVENT_SHOW, EVENT_MENUPOPUP_START for newly visible content.
|
||||
// Fire after a short timer, because we want to make sure the view has been
|
||||
// updated to make this accessible content visible. If we don't wait,
|
||||
// the assistive technology may receive the event and then retrieve
|
||||
@ -1350,7 +1353,8 @@ NS_IMETHODIMP nsDocAccessible::InvalidateCacheSubtree(nsIContent *aChild,
|
||||
nsAutoString role;
|
||||
if (GetRoleAttribute(aChild, role) &&
|
||||
StringEndsWith(role, NS_LITERAL_STRING(":menu"), nsCaseInsensitiveStringComparator())) {
|
||||
FireDelayedToolkitEvent(nsIAccessibleEvent::EVENT_MENUPOPUPSTART, childNode, nsnull);
|
||||
FireDelayedToolkitEvent(nsIAccessibleEvent::EVENT_MENUPOPUP_START,
|
||||
childNode, nsnull);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -500,13 +500,13 @@ void nsRootAccessible::FireAccessibleFocusEvent(nsIAccessible *aAccessible,
|
||||
PRUint32 naturalRole; // The natural role is the role that this type of element normally has
|
||||
finalFocusAccessible->GetRole(&naturalRole);
|
||||
if (role != naturalRole) { // Must be a DHTML menuitem
|
||||
FireToolkitEvent(nsIAccessibleEvent::EVENT_MENUSTART, this, nsnull);
|
||||
FireToolkitEvent(nsIAccessibleEvent::EVENT_MENU_START, this, nsnull);
|
||||
mIsInDHTMLMenu = nsIAccessibleRole::ROLE_MENUITEM;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (mIsInDHTMLMenu) {
|
||||
FireToolkitEvent(nsIAccessibleEvent::EVENT_MENUEND, this, nsnull);
|
||||
FireToolkitEvent(nsIAccessibleEvent::EVENT_MENU_END, this, nsnull);
|
||||
mIsInDHTMLMenu = PR_FALSE;
|
||||
}
|
||||
|
||||
@ -606,7 +606,7 @@ nsresult nsRootAccessible::HandleEventWithTarget(nsIDOMEvent* aEvent,
|
||||
// popup and the accessibility toolkit event can't be fired.
|
||||
nsCOMPtr<nsIDOMXULPopupElement> popup(do_QueryInterface(aTargetNode));
|
||||
if (popup) {
|
||||
PRInt32 event = nsIAccessibleEvent::EVENT_MENUPOPUPSTART;
|
||||
PRInt32 event = nsIAccessibleEvent::EVENT_MENUPOPUP_START;
|
||||
nsCOMPtr<nsIContent> content(do_QueryInterface(aTargetNode));
|
||||
if (content->NodeInfo()->Equals(nsAccessibilityAtoms::tooltip, kNameSpaceID_XUL)) {
|
||||
// There is a single <xul:tooltip> node which Mozilla moves around.
|
||||
@ -788,7 +788,7 @@ nsresult nsRootAccessible::HandleEventWithTarget(nsIDOMEvent* aEvent,
|
||||
else if (eventType.EqualsLiteral("DOMMenuInactive")) {
|
||||
nsCOMPtr<nsIDOMXULPopupElement> popup(do_QueryInterface(aTargetNode));
|
||||
if (popup) {
|
||||
privAcc->FireToolkitEvent(nsIAccessibleEvent::EVENT_MENUPOPUPEND,
|
||||
privAcc->FireToolkitEvent(nsIAccessibleEvent::EVENT_MENUPOPUP_END,
|
||||
accessible, nsnull);
|
||||
}
|
||||
}
|
||||
@ -813,11 +813,11 @@ nsresult nsRootAccessible::HandleEventWithTarget(nsIDOMEvent* aEvent,
|
||||
FireAccessibleFocusEvent(accessible, aTargetNode, aEvent, PR_TRUE);
|
||||
}
|
||||
else if (eventType.LowerCaseEqualsLiteral("dommenubaractive")) {
|
||||
privAcc->FireToolkitEvent(nsIAccessibleEvent::EVENT_MENUSTART,
|
||||
privAcc->FireToolkitEvent(nsIAccessibleEvent::EVENT_MENU_START,
|
||||
accessible, nsnull);
|
||||
}
|
||||
else if (eventType.LowerCaseEqualsLiteral("dommenubarinactive")) {
|
||||
privAcc->FireToolkitEvent(nsIAccessibleEvent::EVENT_MENUEND,
|
||||
privAcc->FireToolkitEvent(nsIAccessibleEvent::EVENT_MENU_END,
|
||||
accessible, nsnull);
|
||||
FireCurrentFocusEvent();
|
||||
}
|
||||
|
@ -1314,7 +1314,8 @@ nsresult nsHyperTextAccessible::FireTextChangeEvent(AtkTextChange *aTextData)
|
||||
#ifdef DEBUG_A11Y
|
||||
printf(" [start=%d, length=%d, add=%d]\n", aTextData->start, aTextData->length, aTextData->add);
|
||||
#endif
|
||||
privAccessible->FireToolkitEvent(nsIAccessibleEvent::EVENT_ATK_TEXT_CHANGE, accessible, aTextData);
|
||||
privAccessible->FireToolkitEvent(nsIAccessibleEvent::EVENT_TEXT_CHANGED,
|
||||
accessible, aTextData);
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
@ -40,6 +40,7 @@
|
||||
#include "ISimpleDOMDocument_i.c"
|
||||
#include "nsIAccessibilityService.h"
|
||||
#include "nsIAccessibleEvent.h"
|
||||
#include "nsEventMap.h"
|
||||
#include "nsIDocShell.h"
|
||||
#include "nsIDocShellTreeNode.h"
|
||||
#include "nsIFrame.h"
|
||||
@ -165,47 +166,15 @@ NS_IMETHODIMP nsDocAccessibleWrap::Shutdown()
|
||||
return nsDocAccessible::Shutdown();
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsDocAccessibleWrap::FireToolkitEvent(PRUint32 aEvent, nsIAccessible* aAccessible, void* aData)
|
||||
NS_IMETHODIMP
|
||||
nsDocAccessibleWrap::FireToolkitEvent(PRUint32 aEvent, nsIAccessible* aAccessible, void* aData)
|
||||
{
|
||||
#ifdef DEBUG_A11Y
|
||||
// Ensure that we're only firing events that we intend to
|
||||
PRUint32 supportedEvents[] = {
|
||||
nsIAccessibleEvent::EVENT_SHOW,
|
||||
nsIAccessibleEvent::EVENT_HIDE,
|
||||
nsIAccessibleEvent::EVENT_REORDER,
|
||||
nsIAccessibleEvent::EVENT_FOCUS,
|
||||
nsIAccessibleEvent::EVENT_STATE_CHANGE,
|
||||
nsIAccessibleEvent::EVENT_NAME_CHANGE,
|
||||
nsIAccessibleEvent::EVENT_DESCRIPTIONCHANGE,
|
||||
nsIAccessibleEvent::EVENT_LOCATION_CHANGE,
|
||||
nsIAccessibleEvent::EVENT_VALUE_CHANGE,
|
||||
nsIAccessibleEvent::EVENT_SELECTION,
|
||||
nsIAccessibleEvent::EVENT_SELECTION_ADD,
|
||||
nsIAccessibleEvent::EVENT_SELECTION_REMOVE,
|
||||
nsIAccessibleEvent::EVENT_SELECTION_WITHIN,
|
||||
nsIAccessibleEvent::EVENT_ALERT,
|
||||
nsIAccessibleEvent::EVENT_MENUSTART,
|
||||
nsIAccessibleEvent::EVENT_MENUEND,
|
||||
nsIAccessibleEvent::EVENT_MENUPOPUPSTART,
|
||||
nsIAccessibleEvent::EVENT_MENUPOPUPEND,
|
||||
nsIAccessibleEvent::EVENT_SCROLLINGSTART,
|
||||
nsIAccessibleEvent::EVENT_SCROLLINGEND,
|
||||
};
|
||||
PRUint32 winEvent = gWinEventMap[aEvent];
|
||||
if (!winEvent)
|
||||
return NS_OK;
|
||||
|
||||
PRBool found = PR_FALSE;
|
||||
for (PRUint32 count = 0; count < NS_ARRAY_LENGTH(supportedEvents); count ++) {
|
||||
if (aEvent == supportedEvents[count]) {
|
||||
found = PR_TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!found) {
|
||||
// NS_WARNING("Event not supported!");
|
||||
}
|
||||
#endif
|
||||
if (!mWeakShell) { // Means we're not active
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
// Means we're not active.
|
||||
NS_ENSURE_TRUE(mWeakShell, NS_ERROR_FAILURE);
|
||||
|
||||
nsDocAccessible::FireToolkitEvent(aEvent, aAccessible, aData); // Fire nsIObserver message
|
||||
|
||||
@ -262,7 +231,9 @@ NS_IMETHODIMP nsDocAccessibleWrap::FireToolkitEvent(PRUint32 aEvent, nsIAccessib
|
||||
// Details of the 2 window system:
|
||||
// * Scrollbar window: caret drawing window & return value for WindowFromAccessibleObject()
|
||||
// * Client area window: text drawing window & MSAA event window
|
||||
NotifyWinEvent(aEvent, hWnd, worldID, childID); // Fire MSAA event for client area window
|
||||
|
||||
// Fire MSAA event for client area window.
|
||||
NotifyWinEvent(winEvent, hWnd, worldID, childID);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
@ -287,7 +258,7 @@ PRInt32 nsDocAccessibleWrap::GetChildIDFor(nsIAccessible* aAccessible)
|
||||
NS_IMETHODIMP nsDocAccessibleWrap::FireAnchorJumpEvent()
|
||||
{
|
||||
// Staying on the same page, jumping to a named anchor
|
||||
// Fire EVENT_SCROLLINGSTART on first leaf accessible -- because some
|
||||
// Fire EVENT_SCROLLING_START on first leaf accessible -- because some
|
||||
// assistive technologies only cache the child numbers for leaf accessibles
|
||||
// the can only relate events back to their internal model if it's a leaf.
|
||||
// There is usually an accessible for the focus node, but if it's an empty text node
|
||||
@ -316,7 +287,7 @@ NS_IMETHODIMP nsDocAccessibleWrap::FireAnchorJumpEvent()
|
||||
nsCOMPtr<nsIAccessible> accessible = GetFirstAvailableAccessible(focusNode, PR_TRUE);
|
||||
nsCOMPtr<nsPIAccessible> privateAccessible = do_QueryInterface(accessible);
|
||||
if (privateAccessible) {
|
||||
privateAccessible->FireToolkitEvent(nsIAccessibleEvent::EVENT_SCROLLINGSTART,
|
||||
privateAccessible->FireToolkitEvent(nsIAccessibleEvent::EVENT_SCROLLING_START,
|
||||
accessible, nsnull);
|
||||
}
|
||||
return NS_OK;
|
||||
|
141
accessible/src/msaa/nsEventMap.h
Executable file
141
accessible/src/msaa/nsEventMap.h
Executable file
@ -0,0 +1,141 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* vim:expandtab:shiftwidth=4:tabstop=4:
|
||||
*/
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (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.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Mozilla Foundation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2007
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Alexander Surkov <surkov.alexander@gmail.com> (original author)
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#include "winable.h"
|
||||
#include "AccessibleEventId.h"
|
||||
|
||||
const PRUint32 kEVENT_WIN_UNKNOWN = 0x00000000;
|
||||
|
||||
static const PRUint32 gWinEventMap[] = {
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_CREATE
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_DESTROY
|
||||
EVENT_OBJECT_SHOW, // nsIAccessibleEvent::EVENT_SHOW
|
||||
EVENT_OBJECT_HIDE, // nsIAccessibleEvent::EVENT_HIDE
|
||||
EVENT_OBJECT_REORDER, // nsIAccessibleEvent::EVENT_REORDER
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_PARENT_CHANGE
|
||||
IA2_EVENT_ACTIVE_DECENDENT_CHANGED, // nsIAccessibleEvent::EVENT_ACTIVE_DECENDENT_CHANGED
|
||||
EVENT_OBJECT_FOCUS, // nsIAccessibleEvent::EVENT_FOCUS
|
||||
EVENT_OBJECT_STATECHANGE, // nsIAccessibleEvent::EVENT_STATE_CHANGE
|
||||
EVENT_OBJECT_LOCATIONCHANGE, // nsIAccessibleEvent::EVENT_LOCATION_CHANGE
|
||||
EVENT_OBJECT_NAMECHANGE, // nsIAccessibleEvent::EVENT_NAME_CHANGE
|
||||
EVENT_OBJECT_DESCRIPTIONCHANGE, // nsIAccessibleEvent::EVENT_DESCRIPTION_CHANGE
|
||||
EVENT_OBJECT_VALUECHANGE, // nsIAccessibleEvent::EVENT_VALUE_CHANGE
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_HELP_CHANGE
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_DEFACTION_CHANGE
|
||||
IA2_EVENT_ACTION_CHANGED, // nsIAccessibleEvent::EVENT_ACTION_CHANGE
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_ACCELERATOR_CHANGE
|
||||
EVENT_OBJECT_SELECTION, // nsIAccessibleEvent::EVENT_SELECTION
|
||||
EVENT_OBJECT_SELECTIONADD, // nsIAccessibleEvent::EVENT_SELECTION_ADD
|
||||
EVENT_OBJECT_SELECTIONREMOVE, // nsIAccessibleEvent::EVENT_SELECTION_REMOVE
|
||||
EVENT_OBJECT_SELECTIONWITHIN, // nsIAccessibleEvent::EVENT_SELECTION_WITHIN
|
||||
EVENT_SYSTEM_ALERT, // nsIAccessibleEvent::EVENT_ALERT
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_FOREGROUND
|
||||
EVENT_SYSTEM_MENUSTART, // nsIAccessibleEvent::EVENT_MENU_START
|
||||
EVENT_SYSTEM_MENUEND, // nsIAccessibleEvent::EVENT_MENU_END
|
||||
EVENT_SYSTEM_MENUPOPUPSTART, // nsIAccessibleEvent::EVENT_MENUPOPUP_START
|
||||
EVENT_SYSTEM_MENUPOPUPEND, // nsIAccessibleEvent::EVENT_MENUPOPUP_END
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_CAPTURE_START
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_CAPTURE_END
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_MOVESIZE_START
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_MOVESIZE_END
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_CONTEXT_HELP_START
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_CONTEXT_HELP_END
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_DRAGDROP_START
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_DRAGDROP_END
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_DIALOG_START
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_DIALOG_END
|
||||
EVENT_SYSTEM_SCROLLINGSTART, // nsIAccessibleEvent::EVENT_SCROLLING_START
|
||||
EVENT_SYSTEM_SCROLLINGEND, // nsIAccessibleEvent::EVENT_SCROLLING_END
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_MINIMIZE_START
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_MINIMIZE_END
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_DOCUMENT_LOAD_START
|
||||
IA2_EVENT_DOCUMENT_LOAD_COMPLETE, // nsIAccessibleEvent::EVENT_DOCUMENT_LOAD_COMPLETE
|
||||
IA2_EVENT_DOCUMENT_RELOAD, // nsIAccessibleEvent::EVENT_DOCUMENT_RELOAD
|
||||
IA2_EVENT_DOCUMENT_LOAD_STOPPED, // nsIAccessibleEvent::EVENT_DOCUMENT_LOAD_STOPPED
|
||||
IA2_EVENT_DOCUMENT_ATTRIBUTE_CHANGED, // nsIAccessibleEvent::EVENT_DOCUMENT_ATTRIBUTES_CHANGED
|
||||
IA2_EVENT_DOCUMENT_CONTENT_CHANGED, // nsIAccessibleEvent::EVENT_DOCUMENT_CONTENT_CHANGED
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_PROPERTY_CHANGED
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_SELECTION_CHANGED
|
||||
IA2_EVENT_TEXT_ATTRIBUTE_CHANGED, // nsIAccessibleEvent::EVENT_TEXT_ATTRIBUTE_CHANGED
|
||||
IA2_EVENT_TEXT_CARET_MOVED, // nsIAccessibleEvent::EVENT_TEXT_CARET_MOVED
|
||||
IA2_EVENT_TEXT_CHANGED, // nsIAccessibleEvent::EVENT_TEXT_CHANGED
|
||||
IA2_EVENT_TEXT_INSERTED, // nsIAccessibleEvent::EVENT_TEXT_INSERTED
|
||||
IA2_EVENT_TEXT_REMOVED, // nsIAccessibleEvent::EVENT_TEXT_REMOVED
|
||||
IA2_EVENT_TEXT_UPDATED, // nsIAccessibleEvent::EVENT_TEXT_UPDATED
|
||||
IA2_EVENT_TEXT_SELECTION_CHANGED, // nsIAccessibleEvent::EVENT_TEXT_SELECTION_CHANGED
|
||||
IA2_EVENT_VISIBLE_DATA_CHANGED, // nsIAccessibleEvent::EVENT_VISIBLE_DATA_CHANGED
|
||||
IA2_EVENT_COLUMN_CHANGED, // nsIAccessibleEvent::EVENT_COLUMN_CHANGED
|
||||
IA2_EVENT_SECTION_CHANGED, // nsIAccessibleEvent::EVENT_SECTION_CHANGED
|
||||
IA2_EVENT_TABLE_CAPTION_CHANGED, // nsIAccessibleEvent::EVENT_TABLE_CAPTION_CHANGED
|
||||
IA2_EVENT_TABLE_MODEL_CHANGED, // nsIAccessibleEvent::EVENT_TABLE_MODEL_CHANGED
|
||||
IA2_EVENT_TABLE_SUMMARY_CHANGED, // nsIAccessibleEvent::EVENT_TABLE_SUMMARY_CHANGED
|
||||
IA2_EVENT_TABLE_ROW_DESCRIPTION_CHANGED, // nsIAccessibleEvent::EVENT_TABLE_ROW_DESCRIPTION_CHANGED
|
||||
IA2_EVENT_TABLE_ROW_HEADER_CHANGED, // nsIAccessibleEvent::EVENT_TABLE_ROW_HEADER_CHANGED
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_TABLE_ROW_INSERT
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_TABLE_ROW_DELETE
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_TABLE_ROW_REORDER
|
||||
IA2_EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED, // nsIAccessibleEvent::EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED
|
||||
IA2_EVENT_TABLE_COLUMN_HEADER_CHANGED, // nsIAccessibleEvent::EVENT_TABLE_COLUMN_HEADER_CHANGED
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_TABLE_COLUMN_INSERT
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_TABLE_COLUMN_DELETE
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_TABLE_COLUMN_REORDER
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_WINDOW_ACTIVATE
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_WINDOW_CREATE
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_WINDOW_DEACTIVATE
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_WINDOW_DESTROY
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_WINDOW_MAXIMIZE
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_WINDOW_MINIMIZE
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_WINDOW_RESIZE
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_WINDOW_RESTORE
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_INTERNAL_LOAD
|
||||
IA2_EVENT_HYPERLINK_END_INDEX_CHANGED, // nsIAccessibleEvent::EVENT_HYPERLINK_END_INDEX_CHANGED
|
||||
IA2_EVENT_HYPERLINK_NUMBER_OF_ANCHORS_CHANGED, // nsIAccessibleEvent::EVENT_HYPERLINK_NUMBER_OF_ANCHORS_CHANGED
|
||||
IA2_EVENT_HYPERLINK_SELECTED_LINK_CHANGED, // nsIAccessibleEvent::EVENT_HYPERLINK_SELECTED_LINK_CHANGED
|
||||
IA2_EVENT_HYPERTEXT_LINK_ACTIVATED, // nsIAccessibleEvent::EVENT_HYPERTEXT_LINK_ACTIVATED
|
||||
IA2_EVENT_HYPERTEXT_LINK_SELECTED, // nsIAccessibleEvent::EVENT_HYPERTEXT_LINK_SELECTED
|
||||
IA2_EVENT_HYPERLINK_START_INDEX_CHANGED, // nsIAccessibleEvent::EVENT_HYPERLINK_START_INDEX_CHANGED
|
||||
IA2_EVENT_HYPERTEXT_CHANGED, // nsIAccessibleEvent::EVENT_HYPERTEXT_CHANGED
|
||||
IA2_EVENT_HYPERTEXT_NLINKS_CHANGED, // nsIAccessibleEvent::EVENT_HYPERTEXT_NLINKS_CHANGED
|
||||
IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED, // nsIAccessibleEvent::EVENT_OBJECT_ATTRIBUTE_CHANGED
|
||||
IA2_EVENT_PAGE_CHANGED, // nsIAccessibleEvent::EVENT_PAGE_CHANGED
|
||||
IA2_EVENT_ROLE_CHANGED, // nsIAccessibleEvent::EVENT_ROLE_CHANGED
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_INTERNAL_LOAD
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user