Index: chrome/common/accessibility_events.h |
=================================================================== |
--- chrome/common/accessibility_events.h (revision 0) |
+++ chrome/common/accessibility_events.h (revision 0) |
@@ -0,0 +1,205 @@ |
+// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef CHROME_COMMON_ACCESSIBILITY_EVENTS_H_ |
+#define CHROME_COMMON_ACCESSIBILITY_EVENTS_H_ |
+ |
+#include <string> |
+ |
+#include "base/values.h" |
+ |
+class AccessibilityControlInfo; |
+class NotificationType; |
+class Profile; |
+ |
+// Use the NotificationService to post the given accessibility |
+// notification type with AccessibilityControlInfo details to any |
+// listeners. Will not send if the profile's pause level is nonzero |
+// (using profile->PauseAccessibilityEvents). |
+void SendAccessibilityNotification( |
+ NotificationType type, AccessibilityControlInfo* info); |
+ |
+// Abstract parent class for accessibility information about a control |
+// passed to event listeners. |
+class AccessibilityControlInfo { |
+ public: |
+ virtual ~AccessibilityControlInfo() { } |
+ |
+ // Serialize this class as a DictionaryValue that can be converted to |
+ // a JavaScript object. |
+ virtual void SerializeToDict(DictionaryValue *dict) const; |
+ |
+ Profile* profile() const { return profile_; } |
+ |
+ const std::string& name() const { return name_; } |
+ |
+ protected: |
+ // The constructor can only be called by subclasses. |
+ AccessibilityControlInfo(Profile* profile, std::string control_name) |
+ : profile_(profile), name_(control_name) { } |
+ |
+ // The profile this control belongs to. |
+ Profile* profile_; |
+ |
+ // The name of the control, like "OK" or "Password". |
+ std::string name_; |
+}; |
+ |
+// Accessibility information about a window passed to onWindowOpened |
+// and onWindowClosed event listeners. |
+class AccessibilityWindowInfo : public AccessibilityControlInfo { |
+ public: |
+ AccessibilityWindowInfo(Profile* profile, std::string window_name) |
+ : AccessibilityControlInfo(profile, window_name) { } |
+ |
+ virtual void SerializeToDict(DictionaryValue *dict) const; |
+}; |
+ |
+// Accessibility information about a push button passed to onControlFocused |
+// and onControlAction event listeners. |
+class AccessibilityButtonInfo : public AccessibilityControlInfo { |
+ public: |
+ AccessibilityButtonInfo(Profile* profile, std::string button_name) |
+ : AccessibilityControlInfo(profile, button_name) { } |
+ |
+ virtual void SerializeToDict(DictionaryValue *dict) const; |
+}; |
+ |
+// Accessibility information about a hyperlink passed to onControlFocused |
+// and onControlAction event listeners. |
+class AccessibilityLinkInfo : public AccessibilityControlInfo { |
+ public: |
+ AccessibilityLinkInfo(Profile* profile, std::string link_name) |
+ : AccessibilityControlInfo(profile, link_name) { } |
+ |
+ virtual void SerializeToDict(DictionaryValue *dict) const; |
+}; |
+ |
+// Accessibility information about a radio button passed to onControlFocused |
+// and onControlAction event listeners. |
+class AccessibilityRadioButtonInfo : public AccessibilityControlInfo { |
+ public: |
+ AccessibilityRadioButtonInfo(Profile* profile, |
+ std::string name, |
+ bool checked, |
+ int item_index, |
+ int item_count) |
+ : AccessibilityControlInfo(profile, name), |
+ checked_(checked), |
+ item_index_(item_index), |
+ item_count_(item_count) { } |
+ |
+ virtual void SerializeToDict(DictionaryValue *dict) const; |
+ |
+ void SetChecked(bool checked) { checked_ = checked; } |
+ |
+ private: |
+ bool checked_; |
+ // The 0-based index of this radio button and number of buttons in the group. |
+ int item_index_; |
+ int item_count_; |
+}; |
+ |
+// Accessibility information about a checkbox passed to onControlFocused |
+// and onControlAction event listeners. |
+class AccessibilityCheckboxInfo : public AccessibilityControlInfo { |
+ public: |
+ AccessibilityCheckboxInfo(Profile* profile, |
+ std::string name, |
+ bool checked) |
+ : AccessibilityControlInfo(profile, name), |
+ checked_(checked) { } |
+ |
+ virtual void SerializeToDict(DictionaryValue *dict) const; |
+ |
+ void SetChecked(bool checked) { checked_ = checked; } |
+ |
+ private: |
+ bool checked_; |
+}; |
+ |
+// Accessibility information about a tab passed to onControlFocused |
+// and onControlAction event listeners. |
+class AccessibilityTabInfo : public AccessibilityControlInfo { |
+ public: |
+ AccessibilityTabInfo(Profile* profile, |
+ std::string tab_name, |
+ int tab_index, |
+ int tab_count) |
+ : AccessibilityControlInfo(profile, tab_name), |
+ tab_index_(tab_index), |
+ tab_count_(tab_count) { } |
+ |
+ virtual void SerializeToDict(DictionaryValue *dict) const; |
+ |
+ void SetTab(int tab_index, std::string tab_name) { |
+ tab_index_ = tab_index; |
+ name_ = tab_name; |
+ } |
+ |
+ private: |
+ // The 0-based index of this tab and number of tabs in the group. |
+ int tab_index_; |
+ int tab_count_; |
+}; |
+ |
+// Accessibility information about a combo box passed to onControlFocused |
+// and onControlAction event listeners. |
+class AccessibilityComboBoxInfo : public AccessibilityControlInfo { |
+ public: |
+ AccessibilityComboBoxInfo(Profile* profile, |
+ std::string name, |
+ std::string value, |
+ int item_index, |
+ int item_count) |
+ : AccessibilityControlInfo(profile, name), |
+ value_(value), |
+ item_index_(item_index), |
+ item_count_(item_count) { } |
+ |
+ virtual void SerializeToDict(DictionaryValue *dict) const; |
+ |
+ void SetValue(int item_index, std::string value) { |
+ item_index_ = item_index; |
+ value_ = value; |
+ } |
+ |
+ private: |
+ std::string value_; |
+ // The 0-based index of the current item and the number of total items. |
+ // If the value is not one of the drop-down options, item_index_ should |
+ // be -1. |
+ int item_index_; |
+ int item_count_; |
+}; |
+ |
+// Accessibility information about a text box, passed to onControlFocused, |
+// onControlAction, and onTextChanged event listeners. |
+class AccessibilityTextBoxInfo : public AccessibilityControlInfo { |
+ public: |
+ AccessibilityTextBoxInfo(Profile* profile, |
+ std::string name, |
+ bool password) |
+ : AccessibilityControlInfo(profile, name), |
+ value_(""), |
+ password_(password), |
+ selection_start_(0), |
+ selection_end_(0) { } |
+ |
+ virtual void SerializeToDict(DictionaryValue *dict) const; |
+ |
+ void SetValue(std::string value, int selection_start, int selection_end) { |
+ value_ = value; |
+ selection_start_ = selection_start; |
+ selection_end_ = selection_end; |
+ } |
+ |
+ private: |
+ std::string value_; |
+ bool password_; |
+ int selection_start_; |
+ int selection_end_; |
+}; |
+ |
+#endif // CHROME_COMMON_ACCESSIBILITY_EVENTS_H_ |
Property changes on: chrome/common/accessibility_events.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |