#ifndef AXScrollView_h
#define AXScrollView_h
#include "core/accessibility/AXObject.h"
namespace WebCore {
class AXScrollbar;
class Scrollbar;
class ScrollView;
class AXScrollView FINAL : public AXObject {
public:
static PassRefPtr<AXScrollView> create(ScrollView*);
virtual AccessibilityRole roleValue() const OVERRIDE { return ScrollAreaRole; }
ScrollView* scrollView() const { return m_scrollView; }
virtual ~AXScrollView();
virtual void detach() OVERRIDE;
protected:
virtual ScrollableArea* getScrollableAreaIfScrollable() const OVERRIDE;
virtual void scrollTo(const IntPoint&) const OVERRIDE;
private:
explicit AXScrollView(ScrollView*);
virtual bool computeAccessibilityIsIgnored() const OVERRIDE;
virtual bool isAXScrollView() const OVERRIDE { return true; }
virtual bool isEnabled() const OVERRIDE { return true; }
virtual bool isAttachment() const OVERRIDE;
virtual Widget* widgetForAttachmentView() const OVERRIDE;
virtual AXObject* scrollBar(AccessibilityOrientation) OVERRIDE;
virtual void addChildren() OVERRIDE;
virtual void clearChildren() OVERRIDE;
virtual AXObject* accessibilityHitTest(const IntPoint&) const OVERRIDE;
virtual void updateChildrenIfNecessary() OVERRIDE;
virtual void setNeedsToUpdateChildren() OVERRIDE { m_childrenDirty = true; }
void updateScrollbars();
virtual FrameView* documentFrameView() const OVERRIDE;
virtual LayoutRect elementRect() const OVERRIDE;
virtual AXObject* parentObject() const OVERRIDE;
virtual AXObject* parentObjectIfExists() const OVERRIDE;
AXObject* webAreaObject() const;
virtual AXObject* firstChild() const OVERRIDE { return webAreaObject(); }
AXScrollbar* addChildScrollbar(Scrollbar*);
void removeChildScrollbar(AXObject*);
ScrollView* m_scrollView;
RefPtr<AXObject> m_horizontalScrollbar;
RefPtr<AXObject> m_verticalScrollbar;
bool m_childrenDirty;
};
DEFINE_AX_OBJECT_TYPE_CASTS(AXScrollView, isAXScrollView());
}
#endif