OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2011 Apple Inc. All Rights Reserved. | 2 * Copyright (C) 2011 Apple Inc. All Rights Reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
201 } | 201 } |
202 result.moveBy(-scrollbar->location()); | 202 result.moveBy(-scrollbar->location()); |
203 scrollbar->invalidateRect(result); | 203 scrollbar->invalidateRect(result); |
204 } | 204 } |
205 | 205 |
206 void ScrollbarTheme::splitTrack(ScrollbarThemeClient* scrollbar, const IntRect&
unconstrainedTrackRect, IntRect& beforeThumbRect, IntRect& thumbRect, IntRect& a
fterThumbRect) | 206 void ScrollbarTheme::splitTrack(ScrollbarThemeClient* scrollbar, const IntRect&
unconstrainedTrackRect, IntRect& beforeThumbRect, IntRect& thumbRect, IntRect& a
fterThumbRect) |
207 { | 207 { |
208 // This function won't even get called unless we're big enough to have some
combination of these three rects where at least | 208 // This function won't even get called unless we're big enough to have some
combination of these three rects where at least |
209 // one of them is non-empty. | 209 // one of them is non-empty. |
210 IntRect trackRect = constrainTrackRectToTrackPieces(scrollbar, unconstrained
TrackRect); | 210 IntRect trackRect = constrainTrackRectToTrackPieces(scrollbar, unconstrained
TrackRect); |
211 int thickness = scrollbar->orientation() == HorizontalScrollbar ? scrollbar-
>height() : scrollbar->width(); | |
212 int thumbPos = thumbPosition(scrollbar); | 211 int thumbPos = thumbPosition(scrollbar); |
213 if (scrollbar->orientation() == HorizontalScrollbar) { | 212 if (scrollbar->orientation() == HorizontalScrollbar) { |
214 thumbRect = IntRect(trackRect.x() + thumbPos, trackRect.y() + (trackRect
.height() - thickness) / 2, thumbLength(scrollbar), thickness); | 213 thumbRect = IntRect(trackRect.x() + thumbPos, trackRect.y(), thumbLength
(scrollbar), scrollbar->height()); |
215 beforeThumbRect = IntRect(trackRect.x(), trackRect.y(), thumbPos + thumb
Rect.width() / 2, trackRect.height()); | 214 beforeThumbRect = IntRect(trackRect.x(), trackRect.y(), thumbPos + thumb
Rect.width() / 2, trackRect.height()); |
216 afterThumbRect = IntRect(trackRect.x() + beforeThumbRect.width(), trackR
ect.y(), trackRect.maxX() - beforeThumbRect.maxX(), trackRect.height()); | 215 afterThumbRect = IntRect(trackRect.x() + beforeThumbRect.width(), trackR
ect.y(), trackRect.maxX() - beforeThumbRect.maxX(), trackRect.height()); |
217 } else { | 216 } else { |
218 thumbRect = IntRect(trackRect.x() + (trackRect.width() - thickness) / 2,
trackRect.y() + thumbPos, thickness, thumbLength(scrollbar)); | 217 thumbRect = IntRect(trackRect.x(), trackRect.y() + thumbPos, scrollbar->
width(), thumbLength(scrollbar)); |
219 beforeThumbRect = IntRect(trackRect.x(), trackRect.y(), trackRect.width(
), thumbPos + thumbRect.height() / 2); | 218 beforeThumbRect = IntRect(trackRect.x(), trackRect.y(), trackRect.width(
), thumbPos + thumbRect.height() / 2); |
220 afterThumbRect = IntRect(trackRect.x(), trackRect.y() + beforeThumbRect.
height(), trackRect.width(), trackRect.maxY() - beforeThumbRect.maxY()); | 219 afterThumbRect = IntRect(trackRect.x(), trackRect.y() + beforeThumbRect.
height(), trackRect.width(), trackRect.maxY() - beforeThumbRect.maxY()); |
221 } | 220 } |
222 } | 221 } |
223 | 222 |
224 // Returns the size represented by track taking into account scrolling past | 223 // Returns the size represented by track taking into account scrolling past |
225 // the end of the document. | 224 // the end of the document. |
226 static float usedTotalSize(ScrollbarThemeClient* scrollbar) | 225 static float usedTotalSize(ScrollbarThemeClient* scrollbar) |
227 { | 226 { |
228 float overhangAtStart = -scrollbar->currentPos(); | 227 float overhangAtStart = -scrollbar->currentPos(); |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
302 void ScrollbarTheme::paintOverhangBackground(ScrollView*, GraphicsContext* conte
xt, const IntRect& horizontalOverhangRect, const IntRect& verticalOverhangRect,
const IntRect& dirtyRect) | 301 void ScrollbarTheme::paintOverhangBackground(ScrollView*, GraphicsContext* conte
xt, const IntRect& horizontalOverhangRect, const IntRect& verticalOverhangRect,
const IntRect& dirtyRect) |
303 { | 302 { |
304 context->setFillColor(Color::white); | 303 context->setFillColor(Color::white); |
305 if (!horizontalOverhangRect.isEmpty()) | 304 if (!horizontalOverhangRect.isEmpty()) |
306 context->fillRect(intersection(horizontalOverhangRect, dirtyRect)); | 305 context->fillRect(intersection(horizontalOverhangRect, dirtyRect)); |
307 if (!verticalOverhangRect.isEmpty()) | 306 if (!verticalOverhangRect.isEmpty()) |
308 context->fillRect(intersection(verticalOverhangRect, dirtyRect)); | 307 context->fillRect(intersection(verticalOverhangRect, dirtyRect)); |
309 } | 308 } |
310 | 309 |
311 } | 310 } |
OLD | NEW |