OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2004, 2006, 2007, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2004, 2006, 2007, 2008 Apple Inc. All rights reserved. |
3 * Copyright (C) 2009 Holger Hans Peter Freyther | 3 * Copyright (C) 2009 Holger Hans Peter Freyther |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 virtual IntRect visibleContentRect(VisibleContentRectIncludesScrollbars = Ex
cludeScrollbars) const OVERRIDE; | 122 virtual IntRect visibleContentRect(VisibleContentRectIncludesScrollbars = Ex
cludeScrollbars) const OVERRIDE; |
123 IntSize visibleSize() const { return visibleContentRect().size(); } | 123 IntSize visibleSize() const { return visibleContentRect().size(); } |
124 virtual int visibleWidth() const OVERRIDE { return visibleContentRect().widt
h(); } | 124 virtual int visibleWidth() const OVERRIDE { return visibleContentRect().widt
h(); } |
125 virtual int visibleHeight() const OVERRIDE { return visibleContentRect().hei
ght(); } | 125 virtual int visibleHeight() const OVERRIDE { return visibleContentRect().hei
ght(); } |
126 | 126 |
127 // visibleContentRect().size() is computed from unscaledVisibleContentSize()
divided by the value of visibleContentScaleFactor. | 127 // visibleContentRect().size() is computed from unscaledVisibleContentSize()
divided by the value of visibleContentScaleFactor. |
128 // For the main frame, visibleContentScaleFactor is equal to the page's page
ScaleFactor; it's 1 otherwise. | 128 // For the main frame, visibleContentScaleFactor is equal to the page's page
ScaleFactor; it's 1 otherwise. |
129 IntSize unscaledVisibleContentSize(VisibleContentRectIncludesScrollbars = Ex
cludeScrollbars) const; | 129 IntSize unscaledVisibleContentSize(VisibleContentRectIncludesScrollbars = Ex
cludeScrollbars) const; |
130 virtual float visibleContentScaleFactor() const { return 1; } | 130 virtual float visibleContentScaleFactor() const { return 1; } |
131 | 131 |
132 // Functions for getting/setting the size webkit should use to layout the co
ntents. By default this is the same as the visible | |
133 // content size. Explicitly setting a layout size value will cause webkit to
layout the contents using this size instead. | |
134 IntSize layoutSize(VisibleContentRectIncludesScrollbars = ExcludeScrollbars)
const; | |
135 int layoutWidth(VisibleContentRectIncludesScrollbars scrollbarInclusion = Ex
cludeScrollbars) const { return layoutSize(scrollbarInclusion).width(); } | |
136 int layoutHeight(VisibleContentRectIncludesScrollbars scrollbarInclusion = E
xcludeScrollbars) const { return layoutSize(scrollbarInclusion).height(); } | |
137 IntSize fixedLayoutSize() const; | |
138 void setFixedLayoutSize(const IntSize&); | |
139 bool useFixedLayout() const; | |
140 void setUseFixedLayout(bool enable); | |
141 | |
142 // Functions for getting/setting the size of the document contained inside t
he ScrollView (as an IntSize or as individual width and height | 132 // Functions for getting/setting the size of the document contained inside t
he ScrollView (as an IntSize or as individual width and height |
143 // values). | 133 // values). |
144 virtual IntSize contentsSize() const OVERRIDE; // Always at least as big as
the visibleWidth()/visibleHeight(). | 134 virtual IntSize contentsSize() const OVERRIDE; // Always at least as big as
the visibleWidth()/visibleHeight(). |
145 int contentsWidth() const { return contentsSize().width(); } | 135 int contentsWidth() const { return contentsSize().width(); } |
146 int contentsHeight() const { return contentsSize().height(); } | 136 int contentsHeight() const { return contentsSize().height(); } |
147 virtual void setContentsSize(const IntSize&); | 137 virtual void setContentsSize(const IntSize&); |
148 | 138 |
149 // Functions for querying the current scrolled position (both as a point, a
size, or as individual X and Y values). | 139 // Functions for querying the current scrolled position (both as a point, a
size, or as individual X and Y values). |
150 virtual IntPoint scrollPosition() const OVERRIDE { return visibleContentRect
().location(); } | 140 virtual IntPoint scrollPosition() const OVERRIDE { return visibleContentRect
().location(); } |
151 IntSize scrollOffset() const { return toIntSize(visibleContentRect().locatio
n()); } // Gets the scrolled position as an IntSize. Convenient for adding to ot
her sizes. | 141 IntSize scrollOffset() const { return toIntSize(visibleContentRect().locatio
n()); } // Gets the scrolled position as an IntSize. Convenient for adding to ot
her sizes. |
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
289 | 279 |
290 void setScrollOrigin(const IntPoint&, bool updatePositionAtAll, bool updateP
ositionSynchronously); | 280 void setScrollOrigin(const IntPoint&, bool updatePositionAtAll, bool updateP
ositionSynchronously); |
291 | 281 |
292 // Subclassed by FrameView to check the writing-mode of the document. | 282 // Subclassed by FrameView to check the writing-mode of the document. |
293 virtual bool isVerticalDocument() const { return true; } | 283 virtual bool isVerticalDocument() const { return true; } |
294 virtual bool isFlippedDocument() const { return false; } | 284 virtual bool isFlippedDocument() const { return false; } |
295 | 285 |
296 // Called to update the scrollbars to accurately reflect the state of the vi
ew. | 286 // Called to update the scrollbars to accurately reflect the state of the vi
ew. |
297 void updateScrollbars(const IntSize& desiredOffset); | 287 void updateScrollbars(const IntSize& desiredOffset); |
298 | 288 |
| 289 IntSize excludeScrollbars(const IntSize&) const; |
| 290 |
299 private: | 291 private: |
300 RefPtr<Scrollbar> m_horizontalScrollbar; | 292 RefPtr<Scrollbar> m_horizontalScrollbar; |
301 RefPtr<Scrollbar> m_verticalScrollbar; | 293 RefPtr<Scrollbar> m_verticalScrollbar; |
302 ScrollbarMode m_horizontalScrollbarMode; | 294 ScrollbarMode m_horizontalScrollbarMode; |
303 ScrollbarMode m_verticalScrollbarMode; | 295 ScrollbarMode m_verticalScrollbarMode; |
304 | 296 |
305 bool m_horizontalScrollbarLock; | 297 bool m_horizontalScrollbarLock; |
306 bool m_verticalScrollbarLock; | 298 bool m_verticalScrollbarLock; |
307 | 299 |
308 HashSet<RefPtr<Widget> > m_children; | 300 HashSet<RefPtr<Widget> > m_children; |
309 | 301 |
310 // This bool is unused on Mac OS because we directly ask the platform widget | 302 // This bool is unused on Mac OS because we directly ask the platform widget |
311 // whether it is safe to blit on scroll. | 303 // whether it is safe to blit on scroll. |
312 bool m_canBlitOnScroll; | 304 bool m_canBlitOnScroll; |
313 | 305 |
314 IntSize m_scrollOffset; // FIXME: Would rather store this as a position, but
we will wait to make this change until more code is shared. | 306 IntSize m_scrollOffset; // FIXME: Would rather store this as a position, but
we will wait to make this change until more code is shared. |
315 IntPoint m_cachedScrollPosition; | 307 IntPoint m_cachedScrollPosition; |
316 IntSize m_fixedLayoutSize; | |
317 IntSize m_contentsSize; | 308 IntSize m_contentsSize; |
318 | 309 |
319 int m_scrollbarsAvoidingResizer; | 310 int m_scrollbarsAvoidingResizer; |
320 bool m_scrollbarsSuppressed; | 311 bool m_scrollbarsSuppressed; |
321 | 312 |
322 bool m_inUpdateScrollbars; | 313 bool m_inUpdateScrollbars; |
323 unsigned m_updateScrollbarsPass; | 314 unsigned m_updateScrollbarsPass; |
324 | 315 |
325 IntPoint m_panScrollIconPoint; | 316 IntPoint m_panScrollIconPoint; |
326 bool m_drawPanScrollIcon; | 317 bool m_drawPanScrollIcon; |
327 bool m_useFixedLayout; | |
328 | 318 |
329 bool m_paintsEntireContents; | 319 bool m_paintsEntireContents; |
330 bool m_clipsRepaints; | 320 bool m_clipsRepaints; |
331 | 321 |
332 void init(); | 322 void init(); |
333 void destroy(); | 323 void destroy(); |
334 | 324 |
335 IntRect rectToCopyOnScroll() const; | 325 IntRect rectToCopyOnScroll() const; |
336 | 326 |
337 // Called when the scroll position within this view changes. FrameView over
rides this to generate repaint invalidations. | 327 // Called when the scroll position within this view changes. FrameView over
rides this to generate repaint invalidations. |
(...skipping 17 matching lines...) Expand all Loading... |
355 ASSERT(!widget || widget->isScrollView()); | 345 ASSERT(!widget || widget->isScrollView()); |
356 return static_cast<const ScrollView*>(widget); | 346 return static_cast<const ScrollView*>(widget); |
357 } | 347 } |
358 | 348 |
359 // This will catch anyone doing an unnecessary cast. | 349 // This will catch anyone doing an unnecessary cast. |
360 void toScrollView(const ScrollView*); | 350 void toScrollView(const ScrollView*); |
361 | 351 |
362 } // namespace WebCore | 352 } // namespace WebCore |
363 | 353 |
364 #endif // ScrollView_h | 354 #endif // ScrollView_h |
OLD | NEW |