1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef UI_VIEWS_ACCESSIBILITY_AX_WIDGET_OBJ_WRAPPER_H_ 6#define UI_VIEWS_ACCESSIBILITY_AX_WIDGET_OBJ_WRAPPER_H_ 7 8#include "ui/views/accessibility/ax_aura_obj_wrapper.h" 9#include "ui/views/widget/widget_observer.h" 10#include "ui/views/widget/widget_removals_observer.h" 11 12namespace views { 13class Widget; 14 15// Describes a |Widget| for use with other AX classes. 16class AXWidgetObjWrapper : public AXAuraObjWrapper, 17 public WidgetObserver, 18 public WidgetRemovalsObserver { 19 public: 20 explicit AXWidgetObjWrapper(Widget* widget); 21 virtual ~AXWidgetObjWrapper(); 22 23 // AXAuraObjWrapper overrides. 24 virtual AXAuraObjWrapper* GetParent() OVERRIDE; 25 virtual void GetChildren( 26 std::vector<AXAuraObjWrapper*>* out_children) OVERRIDE; 27 virtual void Serialize(ui::AXNodeData* out_node_data) OVERRIDE; 28 virtual int32 GetID() OVERRIDE; 29 30 // WidgetObserver overrides. 31 virtual void OnWidgetDestroying(Widget* widget) OVERRIDE; 32 33 // WidgetRemovalsObserver overrides. 34 virtual void OnWillRemoveView(Widget* widget, View* view) OVERRIDE; 35 36 private: 37 Widget* widget_; 38 39 DISALLOW_COPY_AND_ASSIGN(AXWidgetObjWrapper); 40}; 41 42} // namespace views 43 44#endif // UI_VIEWS_ACCESSIBILITY_AX_WIDGET_OBJ_WRAPPER_H_ 45