// 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 'package:flutter/rendering.dart';

import 'basic.dart';
import 'framework.dart';

class GridPaper extends StatelessComponent {
  GridPaper({
    Key key,
    this.color: const Color(0xFF000000),
    this.interval: 100.0
  }) : super(key: key);

  final Color color;
  final double interval;

  Widget build(BuildContext context) {
    return new IgnorePointer(child: new CustomPaint(
      onPaint: (PaintingCanvas canvas, Size size) {
        Paint linePaint = new Paint()
          ..color = color;
        for (double x = 0.0; x <= size.width; x += interval / 10.0) {
          linePaint.strokeWidth = (x % interval == 0.0) ? 1.0 : (x % (interval / 2.0) == 0.0) ? 0.5: 0.25;
          canvas.drawLine(new Point(x, 0.0), new Point(x, size.height), linePaint);
        }
        for (double y = 0.0; y <= size.height; y += interval / 10.0) {
          linePaint.strokeWidth = (y % interval == 0.0) ? 1.0 : (y % (interval / 2.0) == 0.0) ? 0.5: 0.25;
          canvas.drawLine(new Point(0.0, y), new Point(size.width, y), linePaint);
        }
      })
    );
  }
}
