Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1181)

Unified Diff: content/browser/accessibility/browser_accessibility.h

Issue 8770021: Initial implementation of IAccessible2 scrollTo and setTextSelection and (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/accessibility/browser_accessibility.h
===================================================================
--- content/browser/accessibility/browser_accessibility.h (revision 112818)
+++ content/browser/accessibility/browser_accessibility.h (working copy)
@@ -108,7 +108,54 @@
// (in global screen coordinates).
BrowserAccessibility* BrowserAccessibilityForPoint(const gfx::Point& point);
+ // Scrolls this element so that the |focus| rect (in local coordinates
+ // relative to this element) is scrolled to fit within the given
+ // |viewport| (which is clipped to the actual bounds of this
+ // object if you specify something larger). If the whole focus area
+ // doesn't fit, you can specify |subfocus|, which will prioritize
+ // a smaller area within |focus|.
//
+ // Note that "focus" doesn't necessarily mean the rectangle must correspond
+ // to a focused element on the page; assistive technology might request
+ // that any object be made visible.
+ void ScrollToMakeVisible(const gfx::Rect& subfocus,
+ const gfx::Rect& focus,
+ const gfx::Rect& viewport);
+
+ // This is a 1-dimensional scroll offset helper function that's applied
+ // separately in the horizontal and vertical directions, because the
+ // logic is the same. The goal is to compute the best scroll offset
+ // in order to make a focused item visible within a viewport.
+ //
+ // In case the whole focused item cannot fit, you can specify a
+ // subfocus - a smaller region within the focus that should
+ // be prioritized. If the whole focused item can fit, the subfocus is
+ // ignored.
+ //
+ // Example: the viewport is scrolled to the right just enough
+ // that the focus is in view.
+ // Before:
+ // +----------Viewport---------+
+ // +----Focus---+
+ // +--SubFocus--+
+ //
+ // After:
+ // +----------Viewport---------+
+ // +----Focus---+
+ // +--SubFocus--+
+ //
+ // When constraints cannot be fully satisfied, the min
+ // (left/top) position takes precedence over the max (right/bottom).
+ //
+ // Note that the return value represents the ideal new scroll offset.
+ // This may be out of range - the calling function should clip this
+ // to the available range.
+ static int ComputeBestScrollOffset(int current_scroll_offset,
+ int subfocus_min, int subfocus_max,
+ int focus_min, int focus_max,
+ int viewport_min, int viewport_max);
+
+ //
// Reference counting
//
// Each object has an internal reference count and many platform

Powered by Google App Engine
This is Rietveld 408576698