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

Unified Diff: sky/sdk/lib/framework/painting/box_painter.dart

Issue 1177383006: Rename all the things (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: fix imports Created 5 years, 6 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
« no previous file with comments | « sky/sdk/lib/framework/editing2/keyboard.dart ('k') | sky/sdk/lib/framework/painting/shadows.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sky/sdk/lib/framework/painting/box_painter.dart
diff --git a/sky/sdk/lib/framework/painting/box_painter.dart b/sky/sdk/lib/framework/painting/box_painter.dart
deleted file mode 100644
index c1f3fba63daecbd720937152d66c5fb2b18a2dee..0000000000000000000000000000000000000000
--- a/sky/sdk/lib/framework/painting/box_painter.dart
+++ /dev/null
@@ -1,271 +0,0 @@
-// Copyright 2015 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.
-
-import 'dart:math' as math;
-import 'dart:sky' as sky;
-import 'dart:sky' show Point, Size, Rect, Color, Paint, Path;
-import 'shadows.dart';
-
-class BorderSide {
- const BorderSide({
- this.color: const Color(0xFF000000),
- this.width: 1.0
- });
- final Color color;
- final double width;
-
- static const none = const BorderSide(width: 0.0);
-
- int get hashCode {
- int value = 373;
- value = 37 * value * color.hashCode;
- value = 37 * value * width.hashCode;
- return value;
- }
- String toString() => 'BorderSide($color, $width)';
-}
-
-class Border {
- const Border({
- this.top: BorderSide.none,
- this.right: BorderSide.none,
- this.bottom: BorderSide.none,
- this.left: BorderSide.none
- });
-
- const Border.all(BorderSide side) :
- top = side,
- right = side,
- bottom = side,
- left = side;
-
- final BorderSide top;
- final BorderSide right;
- final BorderSide bottom;
- final BorderSide left;
-
- int get hashCode {
- int value = 373;
- value = 37 * value * top.hashCode;
- value = 37 * value * right.hashCode;
- value = 37 * value * bottom.hashCode;
- value = 37 * value * left.hashCode;
- return value;
- }
- String toString() => 'Border($top, $right, $bottom, $left)';
-}
-
-class BoxShadow {
- const BoxShadow({
- this.color,
- this.offset,
- this.blur
- });
-
- final Color color;
- final Size offset;
- final double blur;
-
- String toString() => 'BoxShadow($color, $offset, $blur)';
-}
-
-abstract class Gradient {
- sky.Shader createShader();
-}
-
-class LinearGradient extends Gradient {
- LinearGradient({
- this.endPoints,
- this.colors,
- this.colorStops,
- this.tileMode: sky.TileMode.clamp
- });
-
- String toString() =>
- 'LinearGradient($endPoints, $colors, $colorStops, $tileMode)';
-
- sky.Shader createShader() {
- return new sky.Gradient.linear(this.endPoints, this.colors, this.colorStops,
- this.tileMode);
- }
-
- final List<Point> endPoints;
- final List<Color> colors;
- final List<double> colorStops;
- final sky.TileMode tileMode;
-}
-
-class RadialGradient extends Gradient {
- RadialGradient({
- this.center,
- this.radius,
- this.colors,
- this.colorStops,
- this.tileMode: sky.TileMode.clamp
- });
-
- String toString() =>
- 'RadialGradient($center, $radius, $colors, $colorStops, $tileMode)';
-
- sky.Shader createShader() {
- return new sky.Gradient.radial(this.center, this.radius, this.colors,
- this.colorStops, this.tileMode);
- }
-
- final Point center;
- final double radius;
- final List<Color> colors;
- final List<double> colorStops;
- final sky.TileMode tileMode;
-}
-
-enum Shape { rectangle, circle }
-
-// This must be immutable, because we won't notice when it changes
-class BoxDecoration {
- const BoxDecoration({
- this.backgroundColor, // null = don't draw background
- this.border, // null = don't draw border
- this.borderRadius, // null = use more efficient background drawing; note that this must be null for circles
- this.boxShadow, // null = don't draw shadows
- this.gradient, // null = don't allocate gradient objects
- this.shape: Shape.rectangle
- });
-
- final Color backgroundColor;
- final double borderRadius;
- final Border border;
- final List<BoxShadow> boxShadow;
- final Gradient gradient;
- final Shape shape;
-
- String toString([String prefix = '']) {
- List<String> result = [];
- if (backgroundColor != null)
- result.add('${prefix}backgroundColor: $backgroundColor');
- if (border != null)
- result.add('${prefix}border: $border');
- if (borderRadius != null)
- result.add('${prefix}borderRadius: $borderRadius');
- if (boxShadow != null)
- result.add('${prefix}boxShadow: ${boxShadow.map((shadow) => shadow.toString())}');
- if (gradient != null)
- result.add('${prefix}gradient: $gradient');
- if (shape != Shape.rectangle)
- result.add('${prefix}shape: $shape');
- if (result.isEmpty)
- return '${prefix}<no decorations specified>';
- return result.join('\n');
- }
-}
-
-class BoxPainter {
- BoxPainter(BoxDecoration decoration) : _decoration = decoration {
- assert(decoration != null);
- }
-
- BoxDecoration _decoration;
- BoxDecoration get decoration => _decoration;
- void set decoration (BoxDecoration value) {
- assert(value != null);
- if (value == _decoration)
- return;
- _decoration = value;
- _cachedBackgroundPaint = null;
- }
-
- Paint _cachedBackgroundPaint;
- Paint get _backgroundPaint {
- if (_cachedBackgroundPaint == null) {
- Paint paint = new Paint();
-
- if (_decoration.backgroundColor != null)
- paint.color = _decoration.backgroundColor;
-
- if (_decoration.boxShadow != null) {
- var builder = new ShadowDrawLooperBuilder();
- for (BoxShadow boxShadow in _decoration.boxShadow)
- builder.addShadow(boxShadow.offset, boxShadow.color, boxShadow.blur);
- paint.setDrawLooper(builder.build());
- }
-
- if (_decoration.gradient != null)
- paint.setShader(_decoration.gradient.createShader());
-
- _cachedBackgroundPaint = paint;
- }
-
- return _cachedBackgroundPaint;
- }
-
- void paint(sky.Canvas canvas, Rect rect) {
- if (_decoration.backgroundColor != null || _decoration.boxShadow != null ||
- _decoration.gradient != null) {
- switch (_decoration.shape) {
- case Shape.circle:
- assert(_decoration.borderRadius == null);
- Point center = rect.center;
- Size size = rect.size;
- double radius = math.min(size.width, size.height) / 2.0;
- canvas.drawCircle(center.x, center.y, radius, _backgroundPaint);
- break;
- case Shape.rectangle:
- if (_decoration.borderRadius == null)
- canvas.drawRect(rect, _backgroundPaint);
- else
- canvas.drawRRect(new sky.RRect()..setRectXY(rect, _decoration.borderRadius, _decoration.borderRadius), _backgroundPaint);
- break;
- }
- }
-
- if (_decoration.border != null) {
- assert(_decoration.borderRadius == null); // TODO(abarth): Implement borders with border radius.
- assert(_decoration.shape == Shape.rectangle); // TODO(ianh): Implement borders on circles.
-
- assert(_decoration.border.top != null);
- assert(_decoration.border.right != null);
- assert(_decoration.border.bottom != null);
- assert(_decoration.border.left != null);
-
- Paint paint = new Paint();
- Path path;
-
- paint.color = _decoration.border.top.color;
- path = new Path();
- path.moveTo(rect.left, rect.top);
- path.lineTo(rect.left + _decoration.border.left.width, rect.top + _decoration.border.top.width);
- path.lineTo(rect.right - _decoration.border.right.width, rect.top + _decoration.border.top.width);
- path.lineTo(rect.right, rect.top);
- path.close();
- canvas.drawPath(path, paint);
-
- paint.color = _decoration.border.right.color;
- path = new Path();
- path.moveTo(rect.right, rect.top);
- path.lineTo(rect.right - _decoration.border.right.width, rect.top + _decoration.border.top.width);
- path.lineTo(rect.right - _decoration.border.right.width, rect.bottom - _decoration.border.bottom.width);
- path.lineTo(rect.right, rect.bottom);
- path.close();
- canvas.drawPath(path, paint);
-
- paint.color = _decoration.border.bottom.color;
- path = new Path();
- path.moveTo(rect.right, rect.bottom);
- path.lineTo(rect.right - _decoration.border.right.width, rect.bottom - _decoration.border.bottom.width);
- path.lineTo(rect.left + _decoration.border.left.width, rect.bottom - _decoration.border.bottom.width);
- path.lineTo(rect.left, rect.bottom);
- path.close();
- canvas.drawPath(path, paint);
-
- paint.color = _decoration.border.left.color;
- path = new Path();
- path.moveTo(rect.left, rect.bottom);
- path.lineTo(rect.left + _decoration.border.left.width, rect.bottom - _decoration.border.bottom.width);
- path.lineTo(rect.left + _decoration.border.left.width, rect.top + _decoration.border.top.width);
- path.lineTo(rect.left, rect.top);
- path.close();
- canvas.drawPath(path, paint);
- }
- }
-}
« no previous file with comments | « sky/sdk/lib/framework/editing2/keyboard.dart ('k') | sky/sdk/lib/framework/painting/shadows.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698