15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CHROME_BROWSER_ACCESSIBILITY_ACCESSIBILITY_EVENTS_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROME_BROWSER_ACCESSIBILITY_ACCESSIBILITY_EVENTS_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string> 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/compiler_specific.h" 10a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "ui/accessibility/ax_enums.h" 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "ui/gfx/rect.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 133551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)class AccessibilityControlInfo; 143551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)class AccessibilityMenuInfo; 153551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)class AccessibilityWindowInfo; 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class Profile; 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace base { 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class DictionaryValue; 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 223551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// Notify the ExtensionAccessibilityEventRouter of the given accessibility 233551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// event and AccessibilityEventInfo details. Will not send if the profile's 243551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// pause level is nonzero (using profile->PauseAccessibilityEvents). 253551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)void SendControlAccessibilityNotification( 26a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) ui::AXEvent event, 273551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) AccessibilityControlInfo* info); 283551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 293551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)void SendMenuAccessibilityNotification( 30a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) ui::AXEvent event, 313551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) AccessibilityMenuInfo* info); 323551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 333551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)void SendWindowAccessibilityNotification( 34a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) ui::AXEvent event, 353551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) AccessibilityWindowInfo* info); 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Abstract parent class for accessibility event information passed to event 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// listeners. 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class AccessibilityEventInfo { 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~AccessibilityEventInfo() {} 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Serialize this class as a DictionaryValue that can be converted to 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // a JavaScript object. 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SerializeToDict(base::DictionaryValue* dict) const = 0; 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Profile* profile() const { return profile_; } 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) protected: 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) explicit AccessibilityEventInfo(Profile* profile) : profile_(profile) {} 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The profile this control belongs to. 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Profile* profile_; 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Abstract parent class for accessibility information about a control 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// passed to event listeners. 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class AccessibilityControlInfo : public AccessibilityEventInfo { 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~AccessibilityControlInfo(); 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Serialize this class as a DictionaryValue that can be converted to 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // a JavaScript object. 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SerializeToDict(base::DictionaryValue* dict) const OVERRIDE; 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Return the specific type of this control, which will be one of the 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // string constants defined in extension_accessibility_api_constants.h. 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual const char* type() const = 0; 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& name() const { return name_; } 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& context() const { return context_; } 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 741320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci void set_bounds(const gfx::Rect& bounds) { bounds_ = bounds; } 751320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const gfx::Rect& bounds() const { return bounds_; } 761320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) protected: 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AccessibilityControlInfo(Profile* profile, 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& name); 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_context(const std::string& context) { context_ = context; } 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The name of the control, like "OK" or "Password". 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string name_; 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // A string describing the context of the control, such as the name of 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // the group or toolbar it's contained in. 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string context_; 891320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 901320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // The bounds of the control in global screen coordinates. 911320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci gfx::Rect bounds_; 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Accessibility information about a window passed to onWindowOpened 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// and onWindowClosed event listeners. 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class AccessibilityWindowInfo : public AccessibilityControlInfo { 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AccessibilityWindowInfo(Profile* profile, const std::string& window_name); 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual const char* type() const OVERRIDE; 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Accessibility information about a push button passed to onControlFocused 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// and onControlAction event listeners. 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class AccessibilityButtonInfo : public AccessibilityControlInfo { 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AccessibilityButtonInfo(Profile* profile, 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& button_name, 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& context); 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual const char* type() const OVERRIDE; 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Accessibility information about static text passed to onControlFocused 1155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// and onControlAction event listeners. 1165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class AccessibilityStaticTextInfo : public AccessibilityControlInfo { 1175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) public: 1185f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) AccessibilityStaticTextInfo(Profile* profile, 1195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) const std::string& text, 1205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) const std::string& context); 1215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 1225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual const char* type() const OVERRIDE; 1235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}; 1245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Accessibility information about a hyperlink passed to onControlFocused 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// and onControlAction event listeners. 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class AccessibilityLinkInfo : public AccessibilityControlInfo { 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AccessibilityLinkInfo(Profile* profile, 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& link_name, 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& context); 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual const char* type() const OVERRIDE; 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Accessibility information about a radio button passed to onControlFocused 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// and onControlAction event listeners. 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class AccessibilityRadioButtonInfo : public AccessibilityControlInfo { 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AccessibilityRadioButtonInfo(Profile* profile, 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& name, 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& context, 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool checked, 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_index, 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_count); 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual const char* type() const OVERRIDE; 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SerializeToDict(base::DictionaryValue* dict) const OVERRIDE; 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SetChecked(bool checked) { checked_ = checked; } 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_index() const { return item_index_; } 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_count() const { return item_count_; } 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool checked() const { return checked_; } 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool checked_; 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The 0-based index of this radio button and number of buttons in the group. 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_index_; 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_count_; 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Accessibility information about a checkbox passed to onControlFocused 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// and onControlAction event listeners. 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class AccessibilityCheckboxInfo : public AccessibilityControlInfo { 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AccessibilityCheckboxInfo(Profile* profile, 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& name, 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& context, 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool checked); 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual const char* type() const OVERRIDE; 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SerializeToDict(base::DictionaryValue* dict) const OVERRIDE; 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SetChecked(bool checked) { checked_ = checked; } 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool checked() const { return checked_; } 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool checked_; 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Accessibility information about a tab passed to onControlFocused 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// and onControlAction event listeners. 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class AccessibilityTabInfo : public AccessibilityControlInfo { 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AccessibilityTabInfo(Profile* profile, 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& tab_name, 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& context, 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int tab_index, 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int tab_count); 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual const char* type() const OVERRIDE; 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SerializeToDict(base::DictionaryValue* dict) const OVERRIDE; 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SetTab(int tab_index, std::string tab_name) { 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tab_index_ = tab_index; 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) name_ = tab_name; 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int tab_index() const { return tab_index_; } 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int tab_count() const { return tab_count_; } 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The 0-based index of this tab and number of tabs in the group. 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int tab_index_; 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int tab_count_; 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Accessibility information about a combo box passed to onControlFocused 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// and onControlAction event listeners. 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class AccessibilityComboBoxInfo : public AccessibilityControlInfo { 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AccessibilityComboBoxInfo(Profile* profile, 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& name, 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& context, 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& value, 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_index, 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_count); 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual const char* type() const OVERRIDE; 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SerializeToDict(base::DictionaryValue* dict) const OVERRIDE; 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SetValue(int item_index, const std::string& value) { 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) item_index_ = item_index; 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value_ = value; 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_index() const { return item_index_; } 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_count() const { return item_count_; } 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& value() const { return value_; } 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string value_; 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The 0-based index of the current item and the number of total items. 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // If the value is not one of the drop-down options, |item_index_| should 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // be -1. 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_index_; 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_count_; 2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 246a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Accessibility information about a text box, passed to onControlFocused, 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// onControlAction, and onTextChanged event listeners. 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class AccessibilityTextBoxInfo : public AccessibilityControlInfo { 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AccessibilityTextBoxInfo(Profile* profile, 2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& name, 2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& context, 2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool password); 2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual const char* type() const OVERRIDE; 2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SerializeToDict(base::DictionaryValue* dict) const OVERRIDE; 2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SetValue( 2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& value, int selection_start, int selection_end) { 2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value_ = value; 2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) selection_start_ = selection_start; 2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) selection_end_ = selection_end; 2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& value() const { return value_; } 2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool password() const { return password_; } 2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int selection_start() const { return selection_start_; } 2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int selection_end() const { return selection_end_; } 2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string value_; 2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool password_; 2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int selection_start_; 2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int selection_end_; 2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Accessibility information about a combo box passed to onControlFocused 2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// and onControlAction event listeners. 2815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class AccessibilityListBoxInfo : public AccessibilityControlInfo { 2825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 2835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AccessibilityListBoxInfo(Profile* profile, 2845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& name, 2855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& context, 2865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& value, 2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_index, 2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_count); 2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual const char* type() const OVERRIDE; 2915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SerializeToDict(base::DictionaryValue* dict) const OVERRIDE; 2935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SetValue(int item_index, std::string value) { 2955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) item_index_ = item_index; 2965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value_ = value; 2975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_index() const { return item_index_; } 3005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_count() const { return item_count_; } 3015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& value() const { return value_; } 3025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 3045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string value_; 3055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The 0-based index of the current item and the number of total items. 3065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // If the value is not one of the drop-down options, |item_index_| should 3075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // be -1. 3085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_index_; 3095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_count_; 3105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 3115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Accessibility information about a menu; this class is used by 3135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// onMenuOpened, onMenuClosed, and onControlFocused event listeners. 3145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class AccessibilityMenuInfo : public AccessibilityControlInfo { 3155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 3165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AccessibilityMenuInfo(Profile* profile, const std::string& menu_name); 3175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual const char* type() const OVERRIDE; 3195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 3205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Accessibility information about a menu item; this class is used by 3225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// onControlFocused event listeners. 3235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class AccessibilityMenuItemInfo : public AccessibilityControlInfo { 3245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 3255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AccessibilityMenuItemInfo(Profile* profile, 3265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& name, 3275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& context, 3285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool has_submenu, 3295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_index, 3305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_count); 3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual const char* type() const OVERRIDE; 3335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SerializeToDict(base::DictionaryValue* dict) const OVERRIDE; 3355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_index() const { return item_index_; } 3375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_count() const { return item_count_; } 3385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool has_submenu() const { return has_submenu_; } 3395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 3415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool has_submenu_; 3425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The 0-based index of the current item and the number of total items. 3435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_index_; 3445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_count_; 3455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 3465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 347a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// Accessibility information about a tree; this class is used by 348a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// onControlFocused event listeners. 349a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)class AccessibilityTreeInfo : public AccessibilityControlInfo { 350a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) public: 351a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) AccessibilityTreeInfo(Profile* profile, const std::string& menu_name); 352a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 353a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) virtual const char* type() const OVERRIDE; 354a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)}; 355a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 356a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// Accessibility information about a tree item; this class is used by 357a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// onControlFocused event listeners. 358a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)class AccessibilityTreeItemInfo : public AccessibilityControlInfo { 359a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) public: 360a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) AccessibilityTreeItemInfo(Profile* profile, 361a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) const std::string& name, 362a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) const std::string& context, 363a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int item_depth, 364a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int item_index, 365a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int item_count, 366a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int children_count, 367a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) bool is_expanded); 368a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 369a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) virtual const char* type() const OVERRIDE; 370a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 371a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) virtual void SerializeToDict(base::DictionaryValue* dict) const OVERRIDE; 372a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 373a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int item_depth() const { return item_depth_; } 374a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int item_index() const { return item_index_; } 375a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int item_count() const { return item_count_; } 376a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int children_count() const { return children_count_; } 377a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) bool is_expanded() const { return is_expanded_; } 378a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 379a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) private: 380a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) // 0-based item depth. 381a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int item_depth_; 382a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) // The 0-based index of the current item and the number of total items at the 383a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) // current depth. 384a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int item_index_; 385a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) // Count of items at the current depth. 386a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int item_count_; 387a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) // Count of children of the current item. 388a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int children_count_; 389a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) // True if the node is expanded. 390a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) bool is_expanded_; 391a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)}; 392a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 3935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Accessibility information about a slider passed to onControlFocused 3945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// and onControlAction event listeners. 3955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class AccessibilitySliderInfo : public AccessibilityControlInfo { 3965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 3975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AccessibilitySliderInfo(Profile* profile, 3985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& name, 3995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& context, 4005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& value); 4015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual const char* type() const OVERRIDE; 4035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SerializeToDict(base::DictionaryValue* dict) const OVERRIDE; 4055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& value() const { return value_; } 4075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 4095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string value_; 4105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 4115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 412f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Accessibility information about an alert passed to onControlAction event. 413f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class AccessibilityAlertInfo : public AccessibilityControlInfo { 414f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) public: 415f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) AccessibilityAlertInfo(Profile* profile, const std::string& name); 416f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 417f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual const char* type() const OVERRIDE; 418f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}; 419f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 4205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // CHROME_BROWSER_ACCESSIBILITY_ACCESSIBILITY_EVENTS_H_ 421