Chromium Code Reviews| Index: content/browser/accessibility/browser_accessibility_manager_gtk.cc |
| =================================================================== |
| --- content/browser/accessibility/browser_accessibility_manager_gtk.cc (revision 0) |
| +++ content/browser/accessibility/browser_accessibility_manager_gtk.cc (revision 0) |
| @@ -0,0 +1,66 @@ |
| +// Copyright (c) 2012 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. |
| + |
| +#include "content/browser/accessibility/browser_accessibility_manager_gtk.h" |
| + |
| +#include "content/browser/accessibility/browser_accessibility_gtk.h" |
| +#include "content/common/accessibility_messages.h" |
| + |
| +using webkit_glue::WebAccessibility; |
| + |
| +// static |
| +BrowserAccessibilityManager* BrowserAccessibilityManager::Create( |
| + gfx::NativeView parent_view, |
| + const WebAccessibility& src, |
| + BrowserAccessibilityDelegate* delegate, |
| + BrowserAccessibilityFactory* factory) { |
| + return new BrowserAccessibilityManagerGtk( |
| + parent_view, |
| + src, |
| + delegate, |
| + factory); |
| +} |
| + |
| +BrowserAccessibilityManagerGtk::BrowserAccessibilityManagerGtk( |
| + GtkWidget* parent_view, |
| + const WebAccessibility& src, |
| + BrowserAccessibilityDelegate* delegate, |
| + BrowserAccessibilityFactory* factory) |
| + : BrowserAccessibilityManager(parent_view, src, delegate, factory) { |
| +} |
| + |
| +BrowserAccessibilityManagerGtk::~BrowserAccessibilityManagerGtk() { |
| +} |
| + |
| +void BrowserAccessibilityManagerGtk::NotifyAccessibilityEvent( |
| + int type, |
| + BrowserAccessibility* node) { |
| + AtkObject* atk_object = node->ToBrowserAccessibilityGtk()->GetAtkObject(); |
| + |
| + switch (type) { |
|
David Tseng
2012/05/02 18:02:58
Might have to switch on all enum values (somewhat
dmazzoni
2012/05/02 19:33:05
It's okay as long as there's a default in the swit
|
| + case AccessibilityNotificationChildrenChanged: |
| + RecursivelySendChildrenChanged(GetRoot()->ToBrowserAccessibilityGtk()); |
| + break; |
| + case AccessibilityNotificationFocusChanged: |
| + g_signal_emit_by_name(atk_object, "focus-event", true); |
|
David Tseng
2012/05/02 18:02:58
Add a note here to pick the authoritative way of s
dmazzoni
2012/05/02 19:33:05
Done.
|
| + atk_focus_tracker_notify(atk_object); |
| + break; |
| + default: |
| + break; |
| + } |
| +} |
| + |
| +void BrowserAccessibilityManagerGtk::RecursivelySendChildrenChanged( |
| + BrowserAccessibilityGtk* node) { |
| + AtkObject* atkObject = node->ToBrowserAccessibilityGtk()->GetAtkObject(); |
| + for (unsigned int i = 0; i < node->children().size(); ++i) { |
| + BrowserAccessibilityGtk* child = |
| + node->children()[i]->ToBrowserAccessibilityGtk(); |
| + g_signal_emit_by_name(atkObject, |
| + "children-changed::add", |
| + i, |
| + child->GetAtkObject()); |
| + RecursivelySendChildrenChanged(child); |
| + } |
| +} |
| Property changes on: content/browser/accessibility/browser_accessibility_manager_gtk.cc |
| ___________________________________________________________________ |
| Added: svn:eol-style |
| + LF |