Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(229)

Unified Diff: webkit/tools/test_shell/test_shell_webthemecontrol.cc

Issue 15028002: Delete test_shell. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add dummy test_shell build target. Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webkit/tools/test_shell/test_shell_webthemecontrol.cc
diff --git a/webkit/tools/test_shell/test_shell_webthemecontrol.cc b/webkit/tools/test_shell/test_shell_webthemecontrol.cc
deleted file mode 100644
index 25cd94fd18c3b20101b32e77230167df497a80ad..0000000000000000000000000000000000000000
--- a/webkit/tools/test_shell/test_shell_webthemecontrol.cc
+++ /dev/null
@@ -1,438 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// This file implements a simple generic version of the WebKitThemeEngine,
-// which is used to draw all the native controls on a web page. We use this
-// file when running in layout test mode in order to remove any
-// platform-specific rendering differences due to themes, colors, etc.
-//
-
-#include "webkit/tools/test_shell/test_shell_webthemecontrol.h"
-
-#include "base/logging.h"
-#include "skia/ext/platform_canvas.h"
-#include "skia/ext/skia_utils_win.h"
-#include "third_party/skia/include/core/SkPaint.h"
-#include "third_party/skia/include/core/SkPath.h"
-
-namespace TestShellWebTheme {
-
-const SkColor kEdgeColor = SK_ColorBLACK;
-const SkColor kReadOnlyColor = SkColorSetRGB(0xe9, 0xc2, 0xa6);
-const SkColor kFgColor = SK_ColorBLACK;
-
-const SkColor kBgColors[] = {
- SK_ColorBLACK, // Unknown
- SkColorSetRGB(0xc9, 0xc9, 0xc9), // Disabled
- SkColorSetRGB(0xf3, 0xe0, 0xd0), // Readonly
- SkColorSetRGB(0x89, 0xc4, 0xff), // Normal
- SkColorSetRGB(0x43, 0xf9, 0xff), // Hot
- SkColorSetRGB(0x20, 0xf6, 0xcc), // Focused
- SkColorSetRGB(0x00, 0xf3, 0xac), // Hover
- SkColorSetRGB(0xa9, 0xff, 0x12), // Pressed
- SkColorSetRGB(0xcc, 0xcc, 0xcc) // Indeterminate
-};
-
-SkIRect Validate(const SkIRect& rect, Control::Type ctype) {
- SkIRect retval = rect;
- if (ctype == Control::kUncheckedBox_Type ||
- ctype == Control::kCheckedBox_Type ||
- ctype == Control::kUncheckedRadio_Type ||
- ctype == Control::kCheckedRadio_Type) {
- // The maximum width and height is 13. Center the square in the passed
- // rectangle.
- const int kMaxControlSize = 13;
- int control_size = std::min(rect.width(), rect.height());
- control_size = std::min(control_size, kMaxControlSize);
-
- retval.fLeft = rect.fLeft + (rect.width() / 2) - (control_size / 2);
- retval.fRight = retval.fLeft + control_size - 1;
- retval.fTop = rect.fTop + (rect.height() / 2) - (control_size / 2);
- retval.fBottom = retval.fTop + control_size - 1;
- }
- return retval;
-}
-
-Control::Control(SkCanvas* canvas, const SkIRect& irect,
- Type ctype, State cstate)
- : canvas_(canvas),
- irect_(Validate(irect, ctype)),
- type_(ctype),
- state_(cstate),
- left_(irect_.fLeft),
- right_(irect_.fRight),
- top_(irect_.fTop),
- bottom_(irect_.fBottom),
- height_(irect_.height()),
- width_(irect_.width()),
- edge_color_(kEdgeColor),
- bg_color_(kBgColors[cstate]),
- fg_color_(kFgColor) {
-}
-
-Control::~Control() {
-}
-
-void Control::box(const SkIRect& rect, SkColor fill_color) {
- SkPaint paint;
-
- paint.setStyle(SkPaint::kFill_Style);
- paint.setColor(fill_color);
- canvas_->drawIRect(rect, paint);
-
- paint.setColor(edge_color_);
- paint.setStyle(SkPaint::kStroke_Style);
- canvas_->drawIRect(rect, paint);
-}
-
-void Control::line(int x0, int y0, int x1, int y1, SkColor color) {
- SkPaint paint;
- paint.setColor(color);
- canvas_->drawLine(SkIntToScalar(x0), SkIntToScalar(y0),
- SkIntToScalar(x1), SkIntToScalar(y1),
- paint);
-}
-
-void Control::triangle(int x0, int y0,
- int x1, int y1,
- int x2, int y2,
- SkColor color) {
- SkPath path;
- SkPaint paint;
-
- paint.setColor(color);
- paint.setStyle(SkPaint::kFill_Style);
- path.incReserve(4);
- path.moveTo(SkIntToScalar(x0), SkIntToScalar(y0));
- path.lineTo(SkIntToScalar(x1), SkIntToScalar(y1));
- path.lineTo(SkIntToScalar(x2), SkIntToScalar(y2));
- path.close();
- canvas_->drawPath(path, paint);
-
- paint.setColor(edge_color_);
- paint.setStyle(SkPaint::kStroke_Style);
- canvas_->drawPath(path, paint);
-}
-
-void Control::roundRect(SkColor color) {
- SkRect rect;
- SkScalar radius = SkIntToScalar(5);
- SkPaint paint;
-
- rect.set(irect_);
- paint.setColor(color);
- paint.setStyle(SkPaint::kFill_Style);
- canvas_->drawRoundRect(rect, radius, radius, paint);
-
- paint.setColor(edge_color_);
- paint.setStyle(SkPaint::kStroke_Style);
- canvas_->drawRoundRect(rect, radius, radius, paint);
-}
-
-void Control::oval(SkColor color) {
- SkRect rect;
- SkPaint paint;
-
- rect.set(irect_);
- paint.setColor(color);
- paint.setStyle(SkPaint::kFill_Style);
- canvas_->drawOval(rect, paint);
-
- paint.setColor(edge_color_);
- paint.setStyle(SkPaint::kStroke_Style);
- canvas_->drawOval(rect, paint);
-}
-
-void Control::circle(SkScalar radius, SkColor color) {
- SkScalar cy = SkIntToScalar(top_ + height_ / 2);
- SkScalar cx = SkIntToScalar(left_ + width_ / 2);
- SkPaint paint;
-
- paint.setColor(color);
- paint.setStyle(SkPaint::kFill_Style);
- canvas_->drawCircle(cx, cy, radius, paint);
-
- paint.setColor(edge_color_);
- paint.setStyle(SkPaint::kStroke_Style);
- canvas_->drawCircle(cx, cy, radius, paint);
-}
-
-void Control::nested_boxes(int indent_left, int indent_top,
- int indent_right, int indent_bottom,
- SkColor outer_color, SkColor inner_color) {
- SkIRect lirect;
- box(irect_, outer_color);
- lirect.set(irect_.fLeft + indent_left, irect_.fTop + indent_top,
- irect_.fRight - indent_right, irect_.fBottom - indent_bottom);
- box(lirect, inner_color);
-}
-
-
-void Control::markState() {
- // The horizontal lines in a read only control are spaced by this amount.
- const int kReadOnlyLineOffset = 5;
-
- // The length of a triangle side for the corner marks.
- const int kTriangleSize = 5;
-
- switch (state_) {
- case kUnknown_State: // FALLTHROUGH
- case kDisabled_State: // FALLTHROUGH
- case kNormal_State:
- // Don't visually mark these states (color is enough).
- break;
- case kReadOnly_State:
- // Drawing lines across the control.
- for (int i = top_ + kReadOnlyLineOffset; i < bottom_ ;
- i += kReadOnlyLineOffset) {
- line(left_ + 1, i, right_ - 1, i, kReadOnlyColor);
- }
- break;
- case kHot_State:
- // Draw a triangle in the upper left corner of the control.
- triangle(left_, top_,
- left_ + kTriangleSize, top_,
- left_, top_ + kTriangleSize, edge_color_);
- break;
- case kHover_State:
- // Draw a triangle in the upper right corner of the control.
- triangle(right_, top_,
- right_, top_ + kTriangleSize,
- right_ - kTriangleSize, top_, edge_color_);
- break;
- case kFocused_State:
- // Draw a triangle in the bottom right corner of the control.
- triangle(right_, bottom_,
- right_ - kTriangleSize, bottom_,
- right_, bottom_ - kTriangleSize, edge_color_);
- break;
- case kPressed_State:
- // Draw a triangle in the bottom left corner of the control.
- triangle(left_, bottom_,
- left_, bottom_ - kTriangleSize,
- left_ + kTriangleSize, bottom_, edge_color_);
- break;
- default:
- NOTREACHED();
- break;
- }
-}
-
-void Control::draw() {
- int half_width = width_ / 2;
- int half_height = height_ / 2;
- int quarter_width = width_ / 4;
- int quarter_height = height_ / 4;
-
- // Indent amounts for the check in a checkbox or radio button.
- const int kCheckIndent = 3;
-
- // Indent amounts for short and long sides of the scrollbar notches.
- const int kNotchLongOffset = 1;
- const int kNotchShortOffset = 4;
- const int kNoOffset = 0;
- int short_offset;
- int long_offset;
-
- // Indent amounts for the short and long sides of a scroll thumb box.
- const int kThumbLongIndent = 0;
- const int kThumbShortIndent = 2;
-
- // Indents for the crosshatch on a scroll grip.
- const int kGripLongIndent = 3;
- const int kGripShortIndent = 5;
-
- // Indents for the the slider track.
- const int kSliderIndent = 2;
-
- skia::ScopedPlatformPaint scoped_platform_paint(canvas_);
- switch (type_) {
- case kUnknown_Type:
- NOTREACHED();
- break;
- case kTextField_Type:
- // We render this by hand outside of this function.
- NOTREACHED();
- break;
- case kPushButton_Type:
- // push buttons render as a rounded rectangle
- roundRect(bg_color_);
- break;
- case kUncheckedBox_Type:
- // Unchecked boxes are simply plain boxes.
- box(irect_, bg_color_);
- break;
- case kCheckedBox_Type:
- nested_boxes(kCheckIndent, kCheckIndent, kCheckIndent, kCheckIndent,
- bg_color_, fg_color_);
- break;
- case kIndeterminateCheckBox_Type:
- // Indeterminate checkbox is a box containing '-'.
- nested_boxes(kCheckIndent, height_ / 2, kCheckIndent, height_ / 2,
- bg_color_, fg_color_);
- break;
- case kUncheckedRadio_Type:
- circle(SkIntToScalar(half_height), bg_color_);
- break;
- case kCheckedRadio_Type:
- circle(SkIntToScalar(half_height), bg_color_);
- circle(SkIntToScalar(half_height - kCheckIndent), fg_color_);
- break;
- case kHorizontalScrollTrackBack_Type:
- // Draw a box with a notch at the left.
- long_offset = half_height - kNotchLongOffset;
- short_offset = width_ - kNotchShortOffset;
- nested_boxes(kNoOffset, long_offset, short_offset, long_offset,
- bg_color_, edge_color_);
- break;
- case kHorizontalScrollTrackForward_Type:
- // Draw a box with a notch at the right.
- long_offset = half_height - kNotchLongOffset;
- short_offset = width_ - kNotchShortOffset;
- nested_boxes(short_offset, long_offset, kNoOffset, long_offset,
- bg_color_, fg_color_);
- break;
- case kVerticalScrollTrackBack_Type:
- // Draw a box with a notch at the top.
- long_offset = half_width - kNotchLongOffset;
- short_offset = height_ - kNotchShortOffset;
- nested_boxes(long_offset, kNoOffset, long_offset, short_offset,
- bg_color_, fg_color_);
- break;
- case kVerticalScrollTrackForward_Type:
- // Draw a box with a notch at the bottom.
- long_offset = half_width - kNotchLongOffset;
- short_offset = height_ - kNotchShortOffset;
- nested_boxes(long_offset, short_offset, long_offset, kNoOffset,
- bg_color_, fg_color_);
- break;
- case kHorizontalScrollThumb_Type:
- // Draw a narrower box on top of the outside box.
- nested_boxes(kThumbLongIndent, kThumbShortIndent, kThumbLongIndent,
- kThumbShortIndent, bg_color_, bg_color_);
- break;
- case kVerticalScrollThumb_Type:
- // Draw a shorter box on top of the outside box.
- nested_boxes(kThumbShortIndent, kThumbLongIndent, kThumbShortIndent,
- kThumbLongIndent, bg_color_, bg_color_);
- break;
- case kHorizontalSliderThumb_Type:
- // Slider thumbs are ovals.
- oval(bg_color_);
- break;
- case kHorizontalScrollGrip_Type:
- // Draw a horizontal crosshatch for the grip.
- long_offset = half_width - kGripLongIndent;
- line(left_ + kGripLongIndent, top_ + half_height,
- right_ - kGripLongIndent, top_ + half_height, fg_color_);
- line(left_ + long_offset, top_ + kGripShortIndent,
- left_ + long_offset, bottom_ - kGripShortIndent, fg_color_);
- line(right_ - long_offset, top_ + kGripShortIndent,
- right_ - long_offset, bottom_ - kGripShortIndent, fg_color_);
- break;
- case kVerticalScrollGrip_Type:
- // Draw a vertical crosshatch for the grip.
- long_offset = half_height - kGripLongIndent;
- line(left_ + half_width, top_ + kGripLongIndent,
- left_ + half_width, bottom_ - kGripLongIndent, fg_color_);
- line(left_ + kGripShortIndent, top_ + long_offset,
- right_ - kGripShortIndent, top_ + long_offset, fg_color_);
- line(left_ + kGripShortIndent, bottom_ - long_offset,
- right_ - kGripShortIndent, bottom_ - long_offset, fg_color_);
- break;
- case kLeftArrow_Type:
- // Draw a left arrow inside a box.
- box(irect_, bg_color_);
- triangle(right_ - quarter_width, top_ + quarter_height,
- right_ - quarter_width, bottom_ - quarter_height,
- left_ + quarter_width, top_ + half_height, fg_color_);
- break;
- case kRightArrow_Type:
- // Draw a left arrow inside a box.
- box(irect_, bg_color_);
- triangle(left_ + quarter_width, top_ + quarter_height,
- right_ - quarter_width, top_ + half_height,
- left_ + quarter_width, bottom_ - quarter_height, fg_color_);
- break;
- case kUpArrow_Type:
- // Draw an up arrow inside a box.
- box(irect_, bg_color_);
- triangle(left_ + quarter_width, bottom_ - quarter_height,
- left_ + half_width, top_ + quarter_height,
- right_ - quarter_width, bottom_ - quarter_height, fg_color_);
- break;
- case kDownArrow_Type:
- // Draw a down arrow inside a box.
- box(irect_, bg_color_);
- triangle(left_ + quarter_width, top_ + quarter_height,
- right_ - quarter_width, top_ + quarter_height,
- left_ + half_width, bottom_ - quarter_height, fg_color_);
- break;
- case kHorizontalSliderTrack_Type:
- // Draw a narrow rect for the track plus box hatches on the ends.
- SkIRect lirect;
- lirect = irect_;
- lirect.inset(kNoOffset, half_height - kSliderIndent);
- box(lirect, bg_color_);
- line(left_, top_, left_, bottom_, edge_color_);
- line(right_, top_, right_, bottom_, edge_color_);
- break;
- case kDropDownButton_Type:
- // Draw a box with a big down arrow on top.
- box(irect_, bg_color_);
- triangle(left_ + quarter_width, top_,
- right_ - quarter_width, top_,
- left_ + half_width, bottom_, fg_color_);
- break;
- default:
- NOTREACHED();
- break;
- }
-
- markState();
-}
-
-// Because rendering a text field is dependent on input
-// parameters the other controls don't have, we render it directly
-// rather than trying to overcomplicate draw() further.
-void Control::drawTextField(bool draw_edges, bool fill_content_area,
- SkColor color) {
- SkPaint paint;
-
- skia::ScopedPlatformPaint scoped_platform_paint(canvas_);
- if (fill_content_area) {
- paint.setColor(color);
- paint.setStyle(SkPaint::kFill_Style);
- canvas_->drawIRect(irect_, paint);
- }
- if (draw_edges) {
- paint.setColor(edge_color_);
- paint.setStyle(SkPaint::kStroke_Style);
- canvas_->drawIRect(irect_, paint);
- }
-
- markState();
-}
-
-void
-Control::drawProgressBar(const SkIRect& fill_rect) {
- SkPaint paint;
-
- skia::ScopedPlatformPaint scoped_platform_paint(canvas_);
- paint.setColor(bg_color_);
- paint.setStyle(SkPaint::kFill_Style);
- canvas_->drawIRect(irect_, paint);
-
- // Emulate clipping
- SkIRect tofill;
- tofill.intersect(irect_, fill_rect);
- paint.setColor(fg_color_);
- paint.setStyle(SkPaint::kFill_Style);
- canvas_->drawIRect(tofill, paint);
-
- markState();
-}
-
-} // namespace TestShellWebTheme
-

Powered by Google App Engine
This is Rietveld 408576698