| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // This file implements a simple generic version of the WebKitThemeEngine, | 5 // This file implements a simple generic version of the WebKitThemeEngine, |
| 6 // which is used to draw all the native controls on a web page. We use this | 6 // which is used to draw all the native controls on a web page. We use this |
| 7 // file when running in layout test mode in order to remove any | 7 // file when running in layout test mode in order to remove any |
| 8 // platform-specific rendering differences due to themes, colors, etc. | 8 // platform-specific rendering differences due to themes, colors, etc. |
| 9 // | 9 // |
| 10 | 10 |
| (...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 239 const int kThumbLongIndent = 0; | 239 const int kThumbLongIndent = 0; |
| 240 const int kThumbShortIndent = 2; | 240 const int kThumbShortIndent = 2; |
| 241 | 241 |
| 242 // Indents for the crosshatch on a scroll grip. | 242 // Indents for the crosshatch on a scroll grip. |
| 243 const int kGripLongIndent = 3; | 243 const int kGripLongIndent = 3; |
| 244 const int kGripShortIndent = 5; | 244 const int kGripShortIndent = 5; |
| 245 | 245 |
| 246 // Indents for the the slider track. | 246 // Indents for the the slider track. |
| 247 const int kSliderIndent = 2; | 247 const int kSliderIndent = 2; |
| 248 | 248 |
| 249 skia::BeginPlatformPaint(canvas_); | 249 skia::ScopedPlatformPaint scoped_platform_paint(canvas_); |
| 250 switch (type_) { | 250 switch (type_) { |
| 251 case kUnknown_Type: | 251 case kUnknown_Type: |
| 252 NOTREACHED(); | 252 NOTREACHED(); |
| 253 break; | 253 break; |
| 254 case kTextField_Type: | 254 case kTextField_Type: |
| 255 // We render this by hand outside of this function. | 255 // We render this by hand outside of this function. |
| 256 NOTREACHED(); | 256 NOTREACHED(); |
| 257 break; | 257 break; |
| 258 case kPushButton_Type: | 258 case kPushButton_Type: |
| 259 // push buttons render as a rounded rectangle | 259 // push buttons render as a rounded rectangle |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 384 triangle(left_ + quarter_width, top_, | 384 triangle(left_ + quarter_width, top_, |
| 385 right_ - quarter_width, top_, | 385 right_ - quarter_width, top_, |
| 386 left_ + half_width, bottom_, fg_color_); | 386 left_ + half_width, bottom_, fg_color_); |
| 387 break; | 387 break; |
| 388 default: | 388 default: |
| 389 NOTREACHED(); | 389 NOTREACHED(); |
| 390 break; | 390 break; |
| 391 } | 391 } |
| 392 | 392 |
| 393 markState(); | 393 markState(); |
| 394 skia::EndPlatformPaint(canvas_); | |
| 395 } | 394 } |
| 396 | 395 |
| 397 // Because rendering a text field is dependent on input | 396 // Because rendering a text field is dependent on input |
| 398 // parameters the other controls don't have, we render it directly | 397 // parameters the other controls don't have, we render it directly |
| 399 // rather than trying to overcomplicate draw() further. | 398 // rather than trying to overcomplicate draw() further. |
| 400 void Control::drawTextField(bool draw_edges, bool fill_content_area, | 399 void Control::drawTextField(bool draw_edges, bool fill_content_area, |
| 401 SkColor color) { | 400 SkColor color) { |
| 402 SkPaint paint; | 401 SkPaint paint; |
| 403 | 402 |
| 404 skia::BeginPlatformPaint(canvas_); | 403 skia::ScopedPlatformPaint scoped_platform_paint(canvas_); |
| 405 if (fill_content_area) { | 404 if (fill_content_area) { |
| 406 paint.setColor(color); | 405 paint.setColor(color); |
| 407 paint.setStyle(SkPaint::kFill_Style); | 406 paint.setStyle(SkPaint::kFill_Style); |
| 408 canvas_->drawIRect(irect_, paint); | 407 canvas_->drawIRect(irect_, paint); |
| 409 } | 408 } |
| 410 if (draw_edges) { | 409 if (draw_edges) { |
| 411 paint.setColor(edge_color_); | 410 paint.setColor(edge_color_); |
| 412 paint.setStyle(SkPaint::kStroke_Style); | 411 paint.setStyle(SkPaint::kStroke_Style); |
| 413 canvas_->drawIRect(irect_, paint); | 412 canvas_->drawIRect(irect_, paint); |
| 414 } | 413 } |
| 415 | 414 |
| 416 markState(); | 415 markState(); |
| 417 skia::EndPlatformPaint(canvas_); | |
| 418 } | 416 } |
| 419 | 417 |
| 420 void | 418 void |
| 421 Control::drawProgressBar(const SkIRect& fill_rect) { | 419 Control::drawProgressBar(const SkIRect& fill_rect) { |
| 422 SkPaint paint; | 420 SkPaint paint; |
| 423 | 421 |
| 424 skia::BeginPlatformPaint(canvas_); | 422 skia::ScopedPlatformPaint scoped_platform_paint(canvas_); |
| 425 paint.setColor(bg_color_); | 423 paint.setColor(bg_color_); |
| 426 paint.setStyle(SkPaint::kFill_Style); | 424 paint.setStyle(SkPaint::kFill_Style); |
| 427 canvas_->drawIRect(irect_, paint); | 425 canvas_->drawIRect(irect_, paint); |
| 428 | 426 |
| 429 // Emulate clipping | 427 // Emulate clipping |
| 430 SkIRect tofill; | 428 SkIRect tofill; |
| 431 tofill.intersect(irect_, fill_rect); | 429 tofill.intersect(irect_, fill_rect); |
| 432 paint.setColor(fg_color_); | 430 paint.setColor(fg_color_); |
| 433 paint.setStyle(SkPaint::kFill_Style); | 431 paint.setStyle(SkPaint::kFill_Style); |
| 434 canvas_->drawIRect(tofill, paint); | 432 canvas_->drawIRect(tofill, paint); |
| 435 | 433 |
| 436 markState(); | 434 markState(); |
| 437 skia::EndPlatformPaint(canvas_); | |
| 438 } | 435 } |
| 439 | 436 |
| 440 } // namespace TestShellWebTheme | 437 } // namespace TestShellWebTheme |
| 441 | 438 |
| OLD | NEW |