OLD | NEW |
1 /* | 1 /* |
2 Copyright (C) 1997 Martin Jones (mjones@kde.org) | 2 Copyright (C) 1997 Martin Jones (mjones@kde.org) |
3 (C) 1998 Waldo Bastian (bastian@kde.org) | 3 (C) 1998 Waldo Bastian (bastian@kde.org) |
4 (C) 1998, 1999 Torben Weis (weis@kde.org) | 4 (C) 1998, 1999 Torben Weis (weis@kde.org) |
5 (C) 1999 Lars Knoll (knoll@kde.org) | 5 (C) 1999 Lars Knoll (knoll@kde.org) |
6 (C) 1999 Antti Koivisto (koivisto@kde.org) | 6 (C) 1999 Antti Koivisto (koivisto@kde.org) |
7 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv
ed. | 7 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv
ed. |
8 | 8 |
9 This library is free software; you can redistribute it and/or | 9 This library is free software; you can redistribute it and/or |
10 modify it under the terms of the GNU Library General Public | 10 modify it under the terms of the GNU Library General Public |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
71 virtual void invalidateRect(const IntRect&) OVERRIDE; | 71 virtual void invalidateRect(const IntRect&) OVERRIDE; |
72 virtual void setFrameRect(const IntRect&) OVERRIDE; | 72 virtual void setFrameRect(const IntRect&) OVERRIDE; |
73 | 73 |
74 virtual bool scheduleAnimation() OVERRIDE; | 74 virtual bool scheduleAnimation() OVERRIDE; |
75 | 75 |
76 Frame& frame() const { return *m_frame; } | 76 Frame& frame() const { return *m_frame; } |
77 | 77 |
78 RenderView* renderView() const; | 78 RenderView* renderView() const; |
79 | 79 |
80 virtual void setCanHaveScrollbars(bool) OVERRIDE; | 80 virtual void setCanHaveScrollbars(bool) OVERRIDE; |
81 void updateCanHaveScrollbars(); | |
82 | 81 |
83 virtual PassRefPtr<Scrollbar> createScrollbar(ScrollbarOrientation) OVERRIDE
; | 82 virtual PassRefPtr<Scrollbar> createScrollbar(ScrollbarOrientation) OVERRIDE
; |
84 | 83 |
85 virtual void setContentsSize(const IntSize&) OVERRIDE; | 84 virtual void setContentsSize(const IntSize&) OVERRIDE; |
86 | 85 |
87 void layout(bool allowSubtree = true); | 86 void layout(bool allowSubtree = true); |
88 bool didFirstLayout() const; | 87 bool didFirstLayout() const; |
89 void layoutTimerFired(Timer<FrameView>*); | 88 void layoutTimerFired(Timer<FrameView>*); |
90 void scheduleRelayout(); | 89 void scheduleRelayout(); |
91 void scheduleRelayoutOfSubtree(RenderObject*); | 90 void scheduleRelayoutOfSubtree(RenderObject*); |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
166 // offsets from rubber-banding, and it takes zooming into account. | 165 // offsets from rubber-banding, and it takes zooming into account. |
167 LayoutRect viewportConstrainedVisibleContentRect() const; | 166 LayoutRect viewportConstrainedVisibleContentRect() const; |
168 | 167 |
169 AtomicString mediaType() const; | 168 AtomicString mediaType() const; |
170 void setMediaType(const AtomicString&); | 169 void setMediaType(const AtomicString&); |
171 void adjustMediaTypeForPrinting(bool printing); | 170 void adjustMediaTypeForPrinting(bool printing); |
172 | 171 |
173 void setCannotBlitToWindow(); | 172 void setCannotBlitToWindow(); |
174 void setIsOverlapped(bool); | 173 void setIsOverlapped(bool); |
175 bool isOverlapped() const { return m_isOverlapped; } | 174 bool isOverlapped() const { return m_isOverlapped; } |
176 bool isOverlappedIncludingAncestors() const; | |
177 void setContentIsOpaque(bool); | 175 void setContentIsOpaque(bool); |
178 | 176 |
179 void addSlowRepaintObject(); | 177 void addSlowRepaintObject(); |
180 void removeSlowRepaintObject(); | 178 void removeSlowRepaintObject(); |
181 bool hasSlowRepaintObjects() const { return m_slowRepaintObjectCount; } | 179 bool hasSlowRepaintObjects() const { return m_slowRepaintObjectCount; } |
182 | 180 |
183 // Includes fixed- and sticky-position objects. | 181 // Includes fixed- and sticky-position objects. |
184 typedef HashSet<RenderObject*> ViewportConstrainedObjectSet; | 182 typedef HashSet<RenderObject*> ViewportConstrainedObjectSet; |
185 void addViewportConstrainedObject(RenderObject*); | 183 void addViewportConstrainedObject(RenderObject*); |
186 void removeViewportConstrainedObject(RenderObject*); | 184 void removeViewportConstrainedObject(RenderObject*); |
(...skipping 20 matching lines...) Expand all Loading... |
207 void removeWidget(RenderWidget*); | 205 void removeWidget(RenderWidget*); |
208 void updateWidgetPositions(); | 206 void updateWidgetPositions(); |
209 | 207 |
210 void addWidgetToUpdate(RenderEmbeddedObject&); | 208 void addWidgetToUpdate(RenderEmbeddedObject&); |
211 | 209 |
212 virtual void paintContents(GraphicsContext*, const IntRect& damageRect) OVER
RIDE; | 210 virtual void paintContents(GraphicsContext*, const IntRect& damageRect) OVER
RIDE; |
213 void setPaintBehavior(PaintBehavior); | 211 void setPaintBehavior(PaintBehavior); |
214 PaintBehavior paintBehavior() const; | 212 PaintBehavior paintBehavior() const; |
215 bool isPainting() const; | 213 bool isPainting() const; |
216 bool hasEverPainted() const { return m_lastPaintTime; } | 214 bool hasEverPainted() const { return m_lastPaintTime; } |
217 void setLastPaintTime(double lastPaintTime) { m_lastPaintTime = lastPaintTim
e; } | |
218 void setNodeToDraw(Node*); | 215 void setNodeToDraw(Node*); |
219 | 216 |
220 virtual void paintOverhangAreas(GraphicsContext*, const IntRect& horizontalO
verhangArea, const IntRect& verticalOverhangArea, const IntRect& dirtyRect) OVER
RIDE; | 217 virtual void paintOverhangAreas(GraphicsContext*, const IntRect& horizontalO
verhangArea, const IntRect& verticalOverhangArea, const IntRect& dirtyRect) OVER
RIDE; |
221 virtual void paintScrollCorner(GraphicsContext*, const IntRect& cornerRect)
OVERRIDE; | 218 virtual void paintScrollCorner(GraphicsContext*, const IntRect& cornerRect)
OVERRIDE; |
222 virtual void paintScrollbar(GraphicsContext*, Scrollbar*, const IntRect&) OV
ERRIDE; | 219 virtual void paintScrollbar(GraphicsContext*, Scrollbar*, const IntRect&) OV
ERRIDE; |
223 | 220 |
224 Color documentBackgroundColor() const; | 221 Color documentBackgroundColor() const; |
225 | 222 |
226 static double currentFrameTimeStamp() { return s_currentFrameTimeStamp; } | 223 static double currentFrameTimeStamp() { return s_currentFrameTimeStamp; } |
227 | 224 |
228 void updateLayoutAndStyleIfNeededRecursive(); | 225 void updateLayoutAndStyleIfNeededRecursive(); |
229 | 226 |
230 void incrementVisuallyNonEmptyCharacterCount(unsigned); | 227 void incrementVisuallyNonEmptyCharacterCount(unsigned); |
231 void incrementVisuallyNonEmptyPixelCount(const IntSize&); | 228 void incrementVisuallyNonEmptyPixelCount(const IntSize&); |
232 void setIsVisuallyNonEmpty() { m_isVisuallyNonEmpty = true; } | 229 void setIsVisuallyNonEmpty() { m_isVisuallyNonEmpty = true; } |
233 bool isVisuallyNonEmpty() const { return m_isVisuallyNonEmpty; } | |
234 void enableAutoSizeMode(bool enable, const IntSize& minSize, const IntSize&
maxSize); | 230 void enableAutoSizeMode(bool enable, const IntSize& minSize, const IntSize&
maxSize); |
235 | 231 |
236 void forceLayout(bool allowSubtree = false); | 232 void forceLayout(bool allowSubtree = false); |
237 void forceLayoutForPagination(const FloatSize& pageSize, const FloatSize& or
iginalPageSize, float maximumShrinkFactor, AdjustViewSizeOrNot); | 233 void forceLayoutForPagination(const FloatSize& pageSize, const FloatSize& or
iginalPageSize, float maximumShrinkFactor, AdjustViewSizeOrNot); |
238 | 234 |
239 bool scrollToFragment(const KURL&); | 235 bool scrollToFragment(const KURL&); |
240 bool scrollToAnchor(const String&); | 236 bool scrollToAnchor(const String&); |
241 void maintainScrollPositionAtAnchor(Node*); | 237 void maintainScrollPositionAtAnchor(Node*); |
242 void scrollElementToRect(Element*, const IntRect&); | 238 void scrollElementToRect(Element*, const IntRect&); |
243 | 239 |
244 // Methods to convert points and rects between the coordinate space of the r
enderer, and this view. | 240 // Methods to convert points and rects between the coordinate space of the r
enderer, and this view. |
245 IntRect convertFromRenderer(const RenderObject*, const IntRect&) const; | 241 IntRect convertFromRenderer(const RenderObject*, const IntRect&) const; |
246 IntRect convertToRenderer(const RenderObject*, const IntRect&) const; | 242 IntRect convertToRenderer(const RenderObject*, const IntRect&) const; |
247 IntPoint convertFromRenderer(const RenderObject*, const IntPoint&) const; | 243 IntPoint convertFromRenderer(const RenderObject*, const IntPoint&) const; |
248 IntPoint convertToRenderer(const RenderObject*, const IntPoint&) const; | 244 IntPoint convertToRenderer(const RenderObject*, const IntPoint&) const; |
249 | 245 |
250 bool isFrameViewScrollCorner(RenderScrollbarPart* scrollCorner) const { retu
rn m_scrollCorner == scrollCorner; } | 246 bool isFrameViewScrollCorner(RenderScrollbarPart* scrollCorner) const { retu
rn m_scrollCorner == scrollCorner; } |
251 | 247 |
252 bool isScrollable(); | 248 bool isScrollable(); |
253 | 249 |
254 enum ScrollbarModesCalculationStrategy { RulesFromWebContentOnly, AnyRule }; | 250 enum ScrollbarModesCalculationStrategy { RulesFromWebContentOnly, AnyRule }; |
255 void calculateScrollbarModesForLayout(ScrollbarMode& hMode, ScrollbarMode& v
Mode, ScrollbarModesCalculationStrategy = AnyRule); | 251 void calculateScrollbarModesForLayout(ScrollbarMode& hMode, ScrollbarMode& v
Mode, ScrollbarModesCalculationStrategy = AnyRule); |
256 | 252 |
257 // Normal delay | |
258 static void setRepaintThrottlingDeferredRepaintDelay(double); | |
259 // Negative value would mean that first few repaints happen without a delay | |
260 static void setRepaintThrottlingnInitialDeferredRepaintDelayDuringLoading(do
uble); | |
261 // The delay grows on each repaint to this maximum value | |
262 static void setRepaintThrottlingMaxDeferredRepaintDelayDuringLoading(double)
; | |
263 // On each repaint the delay increses by this amount | |
264 static void setRepaintThrottlingDeferredRepaintDelayIncrementDuringLoading(d
ouble); | |
265 | |
266 virtual IntPoint lastKnownMousePosition() const OVERRIDE; | 253 virtual IntPoint lastKnownMousePosition() const OVERRIDE; |
267 bool shouldSetCursor() const; | 254 bool shouldSetCursor() const; |
268 | 255 |
269 void setCursor(const Cursor&); | 256 void setCursor(const Cursor&); |
270 | 257 |
271 virtual bool scrollbarsCanBeActive() const OVERRIDE; | 258 virtual bool scrollbarsCanBeActive() const OVERRIDE; |
272 | 259 |
273 // FIXME: Remove this method once plugin loading is decoupled from layout. | 260 // FIXME: Remove this method once plugin loading is decoupled from layout. |
274 void flushAnyPendingPostLayoutTasks(); | 261 void flushAnyPendingPostLayoutTasks(); |
275 | 262 |
276 virtual bool shouldSuspendScrollAnimations() const OVERRIDE; | 263 virtual bool shouldSuspendScrollAnimations() const OVERRIDE; |
277 virtual void scrollbarStyleChanged(int newStyle, bool forceUpdate) OVERRIDE; | 264 virtual void scrollbarStyleChanged(int newStyle, bool forceUpdate) OVERRIDE; |
278 | 265 |
279 void setAnimatorsAreActive(); | |
280 | |
281 RenderBox* embeddedContentBox() const; | 266 RenderBox* embeddedContentBox() const; |
282 | 267 |
283 void setTracksRepaints(bool); | 268 void setTracksRepaints(bool); |
284 bool isTrackingRepaints() const { return m_isTrackingRepaints; } | 269 bool isTrackingRepaints() const { return m_isTrackingRepaints; } |
285 void resetTrackedRepaints(); | 270 void resetTrackedRepaints(); |
286 const Vector<IntRect>& trackedRepaintRects() const { return m_trackedRepaint
Rects; } | |
287 String trackedRepaintRectsAsText() const; | 271 String trackedRepaintRectsAsText() const; |
288 | 272 |
289 typedef HashSet<ScrollableArea*> ScrollableAreaSet; | 273 typedef HashSet<ScrollableArea*> ScrollableAreaSet; |
290 // Returns whether the scrollable area has just been newly added. | 274 // Returns whether the scrollable area has just been newly added. |
291 bool addScrollableArea(ScrollableArea*); | 275 bool addScrollableArea(ScrollableArea*); |
292 // Returns whether the scrollable area has just been removed. | 276 // Returns whether the scrollable area has just been removed. |
293 bool removeScrollableArea(ScrollableArea*); | 277 bool removeScrollableArea(ScrollableArea*); |
294 bool containsScrollableArea(const ScrollableArea*) const; | 278 bool containsScrollableArea(const ScrollableArea*) const; |
295 const ScrollableAreaSet* scrollableAreas() const { return m_scrollableAreas.
get(); } | 279 const ScrollableAreaSet* scrollableAreas() const { return m_scrollableAreas.
get(); } |
296 | 280 |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
338 protected: | 322 protected: |
339 virtual bool scrollContentsFastPath(const IntSize& scrollDelta, const IntRec
t& rectToScroll, const IntRect& clipRect) OVERRIDE; | 323 virtual bool scrollContentsFastPath(const IntSize& scrollDelta, const IntRec
t& rectToScroll, const IntRect& clipRect) OVERRIDE; |
340 virtual void scrollContentsSlowPath(const IntRect& updateRect) OVERRIDE; | 324 virtual void scrollContentsSlowPath(const IntRect& updateRect) OVERRIDE; |
341 | 325 |
342 virtual bool isVerticalDocument() const OVERRIDE; | 326 virtual bool isVerticalDocument() const OVERRIDE; |
343 virtual bool isFlippedDocument() const OVERRIDE; | 327 virtual bool isFlippedDocument() const OVERRIDE; |
344 | 328 |
345 private: | 329 private: |
346 explicit FrameView(Frame*); | 330 explicit FrameView(Frame*); |
347 | 331 |
348 void beginDeferredRepaints(); | |
349 void endDeferredRepaints(); | |
350 void flushDeferredRepaints(); | 332 void flushDeferredRepaints(); |
351 void startDeferredRepaintTimer(double delay); | 333 void startDeferredRepaintTimer(double delay); |
352 | 334 |
353 void reset(); | 335 void reset(); |
354 void init(); | 336 void init(); |
355 | 337 |
356 virtual void frameRectsChanged() OVERRIDE; | 338 virtual void frameRectsChanged() OVERRIDE; |
357 virtual bool isFrameView() const OVERRIDE { return true; } | 339 virtual bool isFrameView() const OVERRIDE { return true; } |
358 | 340 |
359 friend class RenderWidget; | 341 friend class RenderWidget; |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
450 | 432 |
451 RefPtr<Frame> m_frame; | 433 RefPtr<Frame> m_frame; |
452 | 434 |
453 bool m_doFullRepaint; | 435 bool m_doFullRepaint; |
454 | 436 |
455 bool m_canHaveScrollbars; | 437 bool m_canHaveScrollbars; |
456 bool m_cannotBlitToWindow; | 438 bool m_cannotBlitToWindow; |
457 bool m_isOverlapped; | 439 bool m_isOverlapped; |
458 bool m_contentIsOpaque; | 440 bool m_contentIsOpaque; |
459 unsigned m_slowRepaintObjectCount; | 441 unsigned m_slowRepaintObjectCount; |
460 int m_borderX; | |
461 int m_borderY; | |
462 | 442 |
463 Timer<FrameView> m_layoutTimer; | 443 Timer<FrameView> m_layoutTimer; |
464 bool m_delayedLayout; | 444 bool m_delayedLayout; |
465 RenderObject* m_layoutRoot; | 445 RenderObject* m_layoutRoot; |
466 | 446 |
467 bool m_layoutSchedulingEnabled; | 447 bool m_layoutSchedulingEnabled; |
468 bool m_inLayout; | 448 bool m_inLayout; |
469 bool m_doingPreLayoutStyleUpdate; | 449 bool m_doingPreLayoutStyleUpdate; |
470 bool m_inSynchronousPostLayout; | 450 bool m_inSynchronousPostLayout; |
471 int m_layoutCount; | 451 int m_layoutCount; |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
524 bool m_didRunAutosize; | 504 bool m_didRunAutosize; |
525 // The lower bound on the size when autosizing. | 505 // The lower bound on the size when autosizing. |
526 IntSize m_minAutoSize; | 506 IntSize m_minAutoSize; |
527 // The upper bound on the size when autosizing. | 507 // The upper bound on the size when autosizing. |
528 IntSize m_maxAutoSize; | 508 IntSize m_maxAutoSize; |
529 | 509 |
530 OwnPtr<ScrollableAreaSet> m_scrollableAreas; | 510 OwnPtr<ScrollableAreaSet> m_scrollableAreas; |
531 OwnPtr<ResizerAreaSet> m_resizerAreas; | 511 OwnPtr<ResizerAreaSet> m_resizerAreas; |
532 OwnPtr<ViewportConstrainedObjectSet> m_viewportConstrainedObjects; | 512 OwnPtr<ViewportConstrainedObjectSet> m_viewportConstrainedObjects; |
533 | 513 |
534 static double s_normalDeferredRepaintDelay; | |
535 static double s_initialDeferredRepaintDelayDuringLoading; | |
536 static double s_maxDeferredRepaintDelayDuringLoading; | |
537 static double s_deferredRepaintDelayIncrementDuringLoading; | |
538 | |
539 bool m_hasSoftwareFilters; | 514 bool m_hasSoftwareFilters; |
540 | 515 |
541 float m_visibleContentScaleFactor; | 516 float m_visibleContentScaleFactor; |
542 IntSize m_inputEventsOffsetForEmulation; | 517 IntSize m_inputEventsOffsetForEmulation; |
543 float m_inputEventsScaleFactorForEmulation; | 518 float m_inputEventsScaleFactorForEmulation; |
544 | 519 |
545 PartialLayoutState m_partialLayout; | 520 PartialLayoutState m_partialLayout; |
546 IntSize m_layoutSize; | 521 IntSize m_layoutSize; |
547 bool m_layoutSizeFixedToFrameSize; | 522 bool m_layoutSizeFixedToFrameSize; |
548 }; | 523 }; |
(...skipping 19 matching lines...) Expand all Loading... |
568 static const unsigned visualPixelThreshold = 32 * 32; | 543 static const unsigned visualPixelThreshold = 32 * 32; |
569 if (m_visuallyNonEmptyPixelCount > visualPixelThreshold) | 544 if (m_visuallyNonEmptyPixelCount > visualPixelThreshold) |
570 setIsVisuallyNonEmpty(); | 545 setIsVisuallyNonEmpty(); |
571 } | 546 } |
572 | 547 |
573 DEFINE_TYPE_CASTS(FrameView, Widget, widget, widget->isFrameView(), widget.isFra
meView()); | 548 DEFINE_TYPE_CASTS(FrameView, Widget, widget, widget->isFrameView(), widget.isFra
meView()); |
574 | 549 |
575 } // namespace WebCore | 550 } // namespace WebCore |
576 | 551 |
577 #endif // FrameView_h | 552 #endif // FrameView_h |
OLD | NEW |