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

Unified Diff: client/layout/SizingFunctions.dart

Issue 9382027: Move client/{base, observable, layout, touch, util, view} to samples/ui_lib . (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: '' Created 8 years, 10 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 | « client/layout/GridTracks.dart ('k') | client/layout/ViewLayout.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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;
-}
-
« no previous file with comments | « client/layout/GridTracks.dart ('k') | client/layout/ViewLayout.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698