AccessibilityScrollView.h [plain text]
#ifndef AccessibilityScrollView_h
#define AccessibilityScrollView_h
#include "AccessibilityObject.h"
namespace WebCore {
class AccessibilityScrollbar;
class Scrollbar;
class ScrollView;
class AccessibilityScrollView : public AccessibilityObject {
public:
static PassRefPtr<AccessibilityScrollView> create(ScrollView*);
virtual AccessibilityRole roleValue() const override { return ScrollAreaRole; }
ScrollView* scrollView() const { return m_scrollView; }
virtual ~AccessibilityScrollView();
virtual void detach(AccessibilityDetachmentType, AXObjectCache*) override;
protected:
virtual ScrollableArea* getScrollableAreaIfScrollable() const override;
virtual void scrollTo(const IntPoint&) const override;
private:
explicit AccessibilityScrollView(ScrollView*);
virtual bool computeAccessibilityIsIgnored() const override;
virtual bool isAccessibilityScrollView() const override { return true; }
virtual bool isEnabled() const override { return true; }
virtual bool isAttachment() const override;
virtual Widget* widgetForAttachmentView() const override;
virtual AccessibilityObject* scrollBar(AccessibilityOrientation) override;
virtual void addChildren() override;
virtual void clearChildren() override;
virtual AccessibilityObject* accessibilityHitTest(const IntPoint&) const override;
virtual void updateChildrenIfNecessary() override;
virtual void setNeedsToUpdateChildren() override { m_childrenDirty = true; }
void updateScrollbars();
virtual void setFocused(bool) override;
virtual bool canSetFocusAttribute() const override;
virtual bool isFocused() const override;
virtual FrameView* documentFrameView() const override;
virtual LayoutRect elementRect() const override;
virtual AccessibilityObject* parentObject() const override;
virtual AccessibilityObject* parentObjectIfExists() const override;
AccessibilityObject* webAreaObject() const;
virtual AccessibilityObject* firstChild() const override { return webAreaObject(); }
AccessibilityScrollbar* addChildScrollbar(Scrollbar*);
void removeChildScrollbar(AccessibilityObject*);
ScrollView* m_scrollView;
RefPtr<AccessibilityObject> m_horizontalScrollbar;
RefPtr<AccessibilityObject> m_verticalScrollbar;
bool m_childrenDirty;
};
ACCESSIBILITY_OBJECT_TYPE_CASTS(AccessibilityScrollView, isAccessibilityScrollView())
}
#endif // AccessibilityScrollView_h