| OLD | NEW |
| 1 // Copyright (c) 2009 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 |
| 11 #include "webkit/tools/test_shell/test_shell_webthemecontrol.h" | 11 #include "webkit/tools/test_shell/test_shell_webthemecontrol.h" |
| (...skipping 11 matching lines...) Expand all Loading... |
| 23 const SkColor kFgColor = SK_ColorBLACK; | 23 const SkColor kFgColor = SK_ColorBLACK; |
| 24 | 24 |
| 25 const SkColor kBgColors[] = { | 25 const SkColor kBgColors[] = { |
| 26 SK_ColorBLACK, // Unknown | 26 SK_ColorBLACK, // Unknown |
| 27 SkColorSetRGB(0xc9, 0xc9, 0xc9), // Disabled | 27 SkColorSetRGB(0xc9, 0xc9, 0xc9), // Disabled |
| 28 SkColorSetRGB(0xf3, 0xe0, 0xd0), // Readonly | 28 SkColorSetRGB(0xf3, 0xe0, 0xd0), // Readonly |
| 29 SkColorSetRGB(0x89, 0xc4, 0xff), // Normal | 29 SkColorSetRGB(0x89, 0xc4, 0xff), // Normal |
| 30 SkColorSetRGB(0x43, 0xf9, 0xff), // Hot | 30 SkColorSetRGB(0x43, 0xf9, 0xff), // Hot |
| 31 SkColorSetRGB(0x20, 0xf6, 0xcc), // Focused | 31 SkColorSetRGB(0x20, 0xf6, 0xcc), // Focused |
| 32 SkColorSetRGB(0x00, 0xf3, 0xac), // Hover | 32 SkColorSetRGB(0x00, 0xf3, 0xac), // Hover |
| 33 SkColorSetRGB(0xa9, 0xff, 0x12) // Pressed | 33 SkColorSetRGB(0xa9, 0xff, 0x12), // Pressed |
| 34 SkColorSetRGB(0xcc, 0xcc, 0xcc) // Indeterminate |
| 34 }; | 35 }; |
| 35 | 36 |
| 36 SkIRect Validate(const SkIRect& rect, Control::Type ctype) { | 37 SkIRect Validate(const SkIRect& rect, Control::Type ctype) { |
| 37 SkIRect retval = rect; | 38 SkIRect retval = rect; |
| 38 if (ctype == Control::kUncheckedBox_Type || | 39 if (ctype == Control::kUncheckedBox_Type || |
| 39 ctype == Control::kCheckedBox_Type || | 40 ctype == Control::kCheckedBox_Type || |
| 40 ctype == Control::kUncheckedRadio_Type || | 41 ctype == Control::kUncheckedRadio_Type || |
| 41 ctype == Control::kCheckedRadio_Type) { | 42 ctype == Control::kCheckedRadio_Type) { |
| 42 // The maximum width and height is 13. Center the square in the passed | 43 // The maximum width and height is 13. Center the square in the passed |
| 43 // rectangle. | 44 // rectangle. |
| 44 const int kMaxControlSize = 13; | 45 const int kMaxControlSize = 13; |
| 45 int control_size = std::min(rect.width(), rect.height()); | 46 int control_size = std::min(rect.width(), rect.height()); |
| 46 control_size = std::min(control_size, kMaxControlSize); | 47 control_size = std::min(control_size, kMaxControlSize); |
| 47 | 48 |
| 48 retval.fLeft = rect.fLeft + (rect.width() / 2) - (control_size / 2); | 49 retval.fLeft = rect.fLeft + (rect.width() / 2) - (control_size / 2); |
| 49 retval.fRight = retval.fLeft + control_size - 1; | 50 retval.fRight = retval.fLeft + control_size - 1; |
| 50 retval.fTop = rect.fTop + (rect.height() / 2) - (control_size / 2); | 51 retval.fTop = rect.fTop + (rect.height() / 2) - (control_size / 2); |
| 51 retval.fBottom = retval.fTop + control_size - 1; | 52 retval.fBottom = retval.fTop + control_size - 1; |
| 52 } | 53 } |
| 53 return retval; | 54 return retval; |
| 54 } | 55 } |
| 55 | 56 |
| 56 Control::Control(skia::PlatformCanvas *canvas, const SkIRect &irect, | 57 Control::Control(skia::PlatformCanvas* canvas, const SkIRect& irect, |
| 57 Type ctype, State cstate) | 58 Type ctype, State cstate) |
| 58 : canvas_(canvas), | 59 : canvas_(canvas), |
| 59 irect_(Validate(irect, ctype)), | 60 irect_(Validate(irect, ctype)), |
| 60 type_(ctype), | 61 type_(ctype), |
| 61 state_(cstate), | 62 state_(cstate), |
| 62 left_(irect_.fLeft), | 63 left_(irect_.fLeft), |
| 63 right_(irect_.fRight), | 64 right_(irect_.fRight), |
| 64 top_(irect_.fTop), | 65 top_(irect_.fTop), |
| 65 bottom_(irect_.fBottom), | 66 bottom_(irect_.fBottom), |
| 66 height_(irect_.height()), | 67 height_(irect_.height()), |
| 67 width_(irect_.width()), | 68 width_(irect_.width()), |
| 68 edge_color_(kEdgeColor), | 69 edge_color_(kEdgeColor), |
| 69 bg_color_(kBgColors[cstate]), | 70 bg_color_(kBgColors[cstate]), |
| 70 fg_color_(kFgColor) { | 71 fg_color_(kFgColor) { |
| 71 } | 72 } |
| 72 | 73 |
| 73 Control::~Control() { | 74 Control::~Control() { |
| 74 } | 75 } |
| 75 | 76 |
| 76 void Control::box(const SkIRect &rect, SkColor fill_color) { | 77 void Control::box(const SkIRect& rect, SkColor fill_color) { |
| 77 SkPaint paint; | 78 SkPaint paint; |
| 78 | 79 |
| 79 paint.setStyle(SkPaint::kFill_Style); | 80 paint.setStyle(SkPaint::kFill_Style); |
| 80 paint.setColor(fill_color); | 81 paint.setColor(fill_color); |
| 81 canvas_->drawIRect(rect, paint); | 82 canvas_->drawIRect(rect, paint); |
| 82 | 83 |
| 83 paint.setColor(edge_color_); | 84 paint.setColor(edge_color_); |
| 84 paint.setStyle(SkPaint::kStroke_Style); | 85 paint.setStyle(SkPaint::kStroke_Style); |
| 85 canvas_->drawIRect(rect, paint); | 86 canvas_->drawIRect(rect, paint); |
| 86 } | 87 } |
| (...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 404 if (draw_edges) { | 405 if (draw_edges) { |
| 405 paint.setColor(edge_color_); | 406 paint.setColor(edge_color_); |
| 406 paint.setStyle(SkPaint::kStroke_Style); | 407 paint.setStyle(SkPaint::kStroke_Style); |
| 407 canvas_->drawIRect(irect_, paint); | 408 canvas_->drawIRect(irect_, paint); |
| 408 } | 409 } |
| 409 | 410 |
| 410 markState(); | 411 markState(); |
| 411 canvas_->endPlatformPaint(); | 412 canvas_->endPlatformPaint(); |
| 412 } | 413 } |
| 413 | 414 |
| 415 void |
| 416 Control::drawProgressBar(const SkIRect& fill_rect) { |
| 417 SkPaint paint; |
| 418 |
| 419 canvas_->beginPlatformPaint(); |
| 420 paint.setColor(bg_color_); |
| 421 paint.setStyle(SkPaint::kFill_Style); |
| 422 canvas_->drawIRect(irect_, paint); |
| 423 |
| 424 // Emulate clipping |
| 425 SkIRect tofill; |
| 426 tofill.intersect(irect_, fill_rect); |
| 427 paint.setColor(fg_color_); |
| 428 paint.setStyle(SkPaint::kFill_Style); |
| 429 canvas_->drawIRect(tofill, paint); |
| 430 |
| 431 markState(); |
| 432 canvas_->endPlatformPaint(); |
| 433 } |
| 434 |
| 414 } // namespace TestShellWebTheme | 435 } // namespace TestShellWebTheme |
| 415 | 436 |
| OLD | NEW |