| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2008, 2011 Apple Inc. All Rights Reserved. | 2 * Copyright (C) 2008, 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 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 125 [NSClassFromString(@"NSScrollerImp") | 125 [NSClassFromString(@"NSScrollerImp") |
| 126 instancesRespondToSelector:@selector(setExpanded:)]; | 126 instancesRespondToSelector:@selector(setExpanded:)]; |
| 127 return globalSupportsExpandedScrollbars; | 127 return globalSupportsExpandedScrollbars; |
| 128 } | 128 } |
| 129 | 129 |
| 130 ScrollbarTheme& ScrollbarTheme::nativeTheme() { | 130 ScrollbarTheme& ScrollbarTheme::nativeTheme() { |
| 131 DEFINE_STATIC_LOCAL(ScrollbarThemeMac, overlayTheme, ()); | 131 DEFINE_STATIC_LOCAL(ScrollbarThemeMac, overlayTheme, ()); |
| 132 return overlayTheme; | 132 return overlayTheme; |
| 133 } | 133 } |
| 134 | 134 |
| 135 void ScrollbarThemeMac::paintGivenTickmarks(SkCanvas* canvas, | |
| 136 const Scrollbar& scrollbar, | |
| 137 const IntRect& rect, | |
| 138 const Vector<IntRect>& tickmarks) { | |
| 139 if (scrollbar.orientation() != VerticalScrollbar) | |
| 140 return; | |
| 141 | |
| 142 if (rect.height() <= 0 || rect.width() <= 0) | |
| 143 return; // nothing to draw on. | |
| 144 | |
| 145 if (!tickmarks.size()) | |
| 146 return; | |
| 147 | |
| 148 SkAutoCanvasRestore stateSaver(canvas, true); | |
| 149 | |
| 150 SkPaint strokePaint; | |
| 151 strokePaint.setAntiAlias(false); | |
| 152 strokePaint.setColor(SkColorSetRGB(0xCC, 0xAA, 0x00)); | |
| 153 strokePaint.setStyle(SkPaint::kStroke_Style); | |
| 154 | |
| 155 SkPaint fillPaint; | |
| 156 fillPaint.setAntiAlias(false); | |
| 157 fillPaint.setColor(SkColorSetRGB(0xFF, 0xDD, 0x00)); | |
| 158 fillPaint.setStyle(SkPaint::kFill_Style); | |
| 159 | |
| 160 for (Vector<IntRect>::const_iterator i = tickmarks.begin(); | |
| 161 i != tickmarks.end(); ++i) { | |
| 162 // Calculate how far down (in %) the tick-mark should appear. | |
| 163 const float percent = static_cast<float>(i->y()) / scrollbar.totalSize(); | |
| 164 if (percent < 0.0 || percent > 1.0) | |
| 165 continue; | |
| 166 | |
| 167 // Calculate how far down (in pixels) the tick-mark should appear. | |
| 168 const int yPos = rect.y() + (rect.height() * percent); | |
| 169 | |
| 170 // Paint. | |
| 171 FloatRect tickRect(rect.x(), yPos, rect.width(), 2); | |
| 172 canvas->drawRect(tickRect, fillPaint); | |
| 173 canvas->drawRect(tickRect, strokePaint); | |
| 174 } | |
| 175 } | |
| 176 | |
| 177 void ScrollbarThemeMac::paintTickmarks(GraphicsContext& context, | 135 void ScrollbarThemeMac::paintTickmarks(GraphicsContext& context, |
| 178 const Scrollbar& scrollbar, | 136 const Scrollbar& scrollbar, |
| 179 const IntRect& rect) { | 137 const IntRect& rect) { |
| 180 // Note: This is only used for css-styled scrollbars on mac. | |
| 181 if (scrollbar.orientation() != VerticalScrollbar) | |
| 182 return; | |
| 183 | |
| 184 if (rect.height() <= 0 || rect.width() <= 0) | |
| 185 return; | |
| 186 | |
| 187 Vector<IntRect> tickmarks; | |
| 188 scrollbar.getTickmarks(tickmarks); | |
| 189 if (!tickmarks.size()) | |
| 190 return; | |
| 191 | |
| 192 if (DrawingRecorder::useCachedDrawingIfPossible( | |
| 193 context, scrollbar, DisplayItem::kScrollbarTickmarks)) | |
| 194 return; | |
| 195 | |
| 196 DrawingRecorder recorder(context, scrollbar, DisplayItem::kScrollbarTickmarks, | |
| 197 rect); | |
| 198 | |
| 199 // Inset a bit. | |
| 200 IntRect tickmarkTrackRect = rect; | 138 IntRect tickmarkTrackRect = rect; |
| 201 tickmarkTrackRect.setX(tickmarkTrackRect.x() + 1); | 139 tickmarkTrackRect.setX(tickmarkTrackRect.x() + 1); |
| 202 tickmarkTrackRect.setWidth(tickmarkTrackRect.width() - 2); | 140 tickmarkTrackRect.setWidth(tickmarkTrackRect.width() - 1); |
| 203 paintGivenTickmarks(context.canvas(), scrollbar, tickmarkTrackRect, | 141 ScrollbarTheme::paintTickmarks(context, scrollbar, tickmarkTrackRect); |
| 204 tickmarks); | |
| 205 } | 142 } |
| 206 | 143 |
| 207 ScrollbarThemeMac::~ScrollbarThemeMac() {} | 144 ScrollbarThemeMac::~ScrollbarThemeMac() {} |
| 208 | 145 |
| 209 void ScrollbarThemeMac::preferencesChanged( | 146 void ScrollbarThemeMac::preferencesChanged( |
| 210 float initialButtonDelay, | 147 float initialButtonDelay, |
| 211 float autoscrollButtonDelay, | 148 float autoscrollButtonDelay, |
| 212 NSScrollerStyle preferredScrollerStyle, | 149 NSScrollerStyle preferredScrollerStyle, |
| 213 bool redraw, | 150 bool redraw, |
| 214 WebScrollbarButtonsPlacement buttonPlacement) { | 151 WebScrollbarButtonsPlacement buttonPlacement) { |
| (...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 463 } | 400 } |
| 464 | 401 |
| 465 // static | 402 // static |
| 466 NSScrollerStyle ScrollbarThemeMac::recommendedScrollerStyle() { | 403 NSScrollerStyle ScrollbarThemeMac::recommendedScrollerStyle() { |
| 467 if (RuntimeEnabledFeatures::overlayScrollbarsEnabled()) | 404 if (RuntimeEnabledFeatures::overlayScrollbarsEnabled()) |
| 468 return NSScrollerStyleOverlay; | 405 return NSScrollerStyleOverlay; |
| 469 return gPreferredScrollerStyle; | 406 return gPreferredScrollerStyle; |
| 470 } | 407 } |
| 471 | 408 |
| 472 } // namespace blink | 409 } // namespace blink |
| OLD | NEW |