// 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:sky' as sky; import 'package:sky/rendering.dart'; class RenderSolidColorBox extends RenderDecoratedBox { final Size desiredSize; final Color backgroundColor; RenderSolidColorBox(Color backgroundColor, { this.desiredSize: Size.infinite }) : backgroundColor = backgroundColor, super(decoration: new BoxDecoration(backgroundColor: backgroundColor)); double getMinIntrinsicWidth(BoxConstraints constraints) { return constraints.constrainHeight( this.desiredSize == Size.infinite ? 0.0 : desiredSize.width ); } double getMaxIntrinsicWidth(BoxConstraints constraints) { return constraints.constrainWidth( this.desiredSize == Size.infinite ? 0.0 : desiredSize.width ); } double getMinIntrinsicHeight(BoxConstraints constraints) { return constraints.constrainHeight( this.desiredSize == Size.infinite ? 0.0 : desiredSize.height ); } double getMaxIntrinsicHeight(BoxConstraints constraints) { return constraints.constrainHeight( this.desiredSize == Size.infinite ? 0.0 : desiredSize.height ); } void performLayout() { size = constraints.constrain(desiredSize); } EventDisposition handleEvent(sky.Event event, BoxHitTestEntry entry) { if (event.type == 'pointerdown') { decoration = new BoxDecoration(backgroundColor: const Color(0xFFFF0000)); return EventDisposition.processed; } else if (event.type == 'pointerup') { decoration = new BoxDecoration(backgroundColor: backgroundColor); return EventDisposition.processed; } return EventDisposition.ignored; } }