blob: b72759b58d3185d6301197693da8a9ebfe5c344d [file] [log] [blame] [edit]
// Copyright 2014 The Flutter 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';
class RenderSolidColorBox extends RenderDecoratedBox {
RenderSolidColorBox(this.backgroundColor, { this.desiredSize = Size.infinite })
: super(decoration: BoxDecoration(color: backgroundColor));
final Size desiredSize;
final Color backgroundColor;
@override
double computeMinIntrinsicWidth(double height) {
return desiredSize.width == double.infinity ? 0.0 : desiredSize.width;
}
@override
double computeMaxIntrinsicWidth(double height) {
return desiredSize.width == double.infinity ? 0.0 : desiredSize.width;
}
@override
double computeMinIntrinsicHeight(double width) {
return desiredSize.height == double.infinity ? 0.0 : desiredSize.height;
}
@override
double computeMaxIntrinsicHeight(double width) {
return desiredSize.height == double.infinity ? 0.0 : desiredSize.height;
}
@override
void performLayout() {
size = constraints.constrain(desiredSize);
}
@override
void handleEvent(PointerEvent event, BoxHitTestEntry entry) {
if (event is PointerDownEvent) {
decoration = const BoxDecoration(color: Color(0xFFFF0000));
} else if (event is PointerUpEvent) {
decoration = BoxDecoration(color: backgroundColor);
}
}
}