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 12 namespace views { 13 class Widget; 14 15 // Describes a |Widget| for use with other AX classes. 16 class 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