Index: client/layout/SizingFunctions.dart |
=================================================================== |
--- client/layout/SizingFunctions.dart (revision 4144) |
+++ client/layout/SizingFunctions.dart (working copy) |
@@ -1,149 +0,0 @@ |
-// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
-// for details. 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 has classes representing the grid sizing functions |
- |
-/** |
- * Represents the sizing function used for the min or max of a row or column. |
- */ |
-// TODO(jmesserly): rename to GridSizing, or make internal |
-class SizingFunction { |
- const SizingFunction(); |
- |
- bool get isContentSized() => isMinContentSized || isMaxContentSized; |
- bool get isMinContentSized() => false; |
- bool get isMaxContentSized() => false; |
- bool get isFraction() => false; |
- |
- num resolveLength(num gridSize) => 0; |
- |
- num get fractionValue() => 0; |
- |
- // TODO(jmesserly): this is only needed because FixedSizing is mutable |
- SizingFunction clone() => this; |
-} |
- |
-/** |
- * Fixed size reprensents a length as defined by CSS3 Values spec. |
- * Can also be a percentage of the Grid element's logical width (for columns) |
- * or logical height (for rows). When the width or height of the Grid element |
- * is undefined, the percentage is ignored and the Grid Track will be |
- * auto-sized. |
- */ |
-class FixedSizing extends SizingFunction { |
- final String units; |
- final num length; |
- |
- // TODO(jmesserly): kind of ugly to have this mutable property here, but |
- // we need to correctly track whether we're content sized during a layout |
- bool _contentSized; |
- |
- FixedSizing(this.length, [this.units = 'px']) |
- : super(), |
- _contentSized = false { |
- if (units != 'px' && units != '%') { |
- // TODO(jmesserly): support other unit types |
- throw new UnsupportedOperationException('Units other than px and %'); |
- } |
- } |
- |
- // TODO(jmesserly): this is only needed because of our mutable property |
- FixedSizing clone() => new FixedSizing(length, units); |
- |
- bool get isMinContentSized() => _contentSized; |
- |
- num resolveLength(num gridSize) { |
- if (units == '%') { |
- if (gridSize == null) { |
- // Use content size when the grid doesn't have an absolute size in this |
- // dimension |
- _contentSized = true; |
- return 0; |
- } |
- _contentSized = false; |
- return (length / 100) * gridSize; |
- } else { |
- return length; |
- } |
- } |
- |
- String toString() => 'FixedSizing: ${length}${units} $_contentSized'; |
-} |
- |
- |
-/** |
- * Fraction is a non-negative floating-point number followed by 'fr'. Each |
- * fraction value takes a share of the remaining space proportional to its |
- * number. |
- */ |
-class FractionSizing extends SizingFunction { |
- final num fractionValue; |
- FractionSizing(this.fractionValue) : super() {} |
- |
- bool get isFraction() => true; |
- |
- String toString() => 'FixedSizing: ${fractionValue}fr'; |
-} |
- |
-class MinContentSizing extends SizingFunction { |
- const MinContentSizing() : super(); |
- |
- bool get isMinContentSized() => true; |
- |
- String toString() => 'MinContentSizing'; |
-} |
- |
-class MaxContentSizing extends SizingFunction { |
- const MaxContentSizing() : super(); |
- |
- bool get isMaxContentSized() { return true; } |
- |
- String toString() => 'MaxContentSizing'; |
-} |
- |
-/** The min and max sizing functions for a track. */ |
-class TrackSizing { |
- /** The min sizing function for the track. */ |
- final SizingFunction min; |
- |
- /** The min sizing function for the track. */ |
- final SizingFunction max; |
- |
- const TrackSizing.auto() |
- : min = const MinContentSizing(), |
- max = const MaxContentSizing(); |
- |
- TrackSizing(this.min, this.max) {} |
- |
- // TODO(jmesserly): this is only needed because FixedSizing is mutable |
- TrackSizing clone() => new TrackSizing(min.clone(), max.clone()); |
-} |
- |
-/** Represents a GridTrack breadth property. */ |
-// TODO(jmesserly): these classes could be replaced with reflection/mirrors |
-interface _BreadthAccumulator { |
- void setSize(GridTrack t, num value); |
- num getSize(GridTrack t); |
- |
- SizingFunction getSizingFunction(GridTrack t); |
-} |
- |
-class _UsedBreadthAccumulator implements _BreadthAccumulator { |
- const _UsedBreadthAccumulator(); |
- |
- void setSize(GridTrack t, num value) { t.usedBreadth = value; } |
- num getSize(GridTrack t) => t.usedBreadth; |
- |
- SizingFunction getSizingFunction(GridTrack t) => t.minSizing; |
-} |
- |
-class _MaxBreadthAccumulator implements _BreadthAccumulator { |
- const _MaxBreadthAccumulator(); |
- |
- void setSize(GridTrack t, num value) { t.maxBreadth = value; } |
- num getSize(GridTrack t) => t.maxBreadth; |
- |
- SizingFunction getSizingFunction(GridTrack t) => t.maxSizing; |
-} |
- |