Home | History | Annotate | Download | only in accessibility
      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