home *** CD-ROM | disk | FTP | other *** search
- package com.sun.java.swing;
-
- import java.io.Serializable;
-
- public class SizeRequirements implements Serializable {
- public int minimum;
- public int preferred;
- public int maximum;
- public float alignment;
-
- public SizeRequirements() {
- this.minimum = 0;
- this.preferred = 0;
- this.maximum = 0;
- this.alignment = 0.5F;
- }
-
- public SizeRequirements(int var1, int var2, int var3, float var4) {
- this.minimum = var1;
- this.preferred = var2;
- this.maximum = var3;
- this.alignment = var4 > 1.0F ? 1.0F : (var4 < 0.0F ? 0.0F : var4);
- }
-
- public String toString() {
- return "[" + this.minimum + "," + this.preferred + "," + this.maximum + "]@" + this.alignment;
- }
-
- public static SizeRequirements getTiledSizeRequirements(SizeRequirements[] var0) {
- SizeRequirements var1 = new SizeRequirements();
-
- for(int var2 = 0; var2 < var0.length; ++var2) {
- SizeRequirements var3 = var0[var2];
- var1.minimum = (int)Math.min((long)var1.minimum + (long)var3.minimum, 2147483647L);
- var1.preferred = (int)Math.min((long)var1.preferred + (long)var3.preferred, 2147483647L);
- var1.maximum = (int)Math.min((long)var1.maximum + (long)var3.maximum, 2147483647L);
- }
-
- return var1;
- }
-
- public static SizeRequirements getAlignedSizeRequirements(SizeRequirements[] var0) {
- SizeRequirements var1 = new SizeRequirements();
- SizeRequirements var2 = new SizeRequirements();
-
- for(int var3 = 0; var3 < var0.length; ++var3) {
- SizeRequirements var4 = var0[var3];
- int var5 = (int)(var4.alignment * (float)var4.minimum);
- int var6 = var4.minimum - var5;
- var1.minimum = Math.max(var5, var1.minimum);
- var2.minimum = Math.max(var6, var2.minimum);
- var5 = (int)(var4.alignment * (float)var4.preferred);
- var6 = var4.preferred - var5;
- var1.preferred = Math.max(var5, var1.preferred);
- var2.preferred = Math.max(var6, var2.preferred);
- var5 = (int)(var4.alignment * (float)var4.maximum);
- var6 = var4.maximum - var5;
- var1.maximum = Math.max(var5, var1.maximum);
- var2.maximum = Math.max(var6, var2.maximum);
- }
-
- int var8 = (int)Math.min((long)var1.minimum + (long)var2.minimum, 2147483647L);
- int var11 = (int)Math.min((long)var1.preferred + (long)var2.preferred, 2147483647L);
- int var14 = (int)Math.min((long)var1.maximum + (long)var2.maximum, 2147483647L);
- float var7 = 0.0F;
- if (var8 > 0) {
- var7 = (float)var1.minimum / (float)var8;
- var7 = var7 > 1.0F ? 1.0F : (var7 < 0.0F ? 0.0F : var7);
- }
-
- return new SizeRequirements(var8, var11, var14, var7);
- }
-
- public static void calculateTiledPositions(int var0, SizeRequirements var1, SizeRequirements[] var2, int[] var3, int[] var4) {
- if (var0 > var1.preferred) {
- expandedTile(var0, var1, var2, var3, var4);
- } else {
- compressedTile(var0, var1, var2, var3, var4);
- }
- }
-
- public static void calculateAlignedPositions(int var0, SizeRequirements var1, SizeRequirements[] var2, int[] var3, int[] var4) {
- int var5 = (int)((float)var0 * var1.alignment);
- int var6 = var0 - var5;
-
- for(int var7 = 0; var7 < var2.length; ++var7) {
- SizeRequirements var8 = var2[var7];
- int var9 = (int)((float)var8.maximum * var8.alignment);
- int var10 = var8.maximum - var9;
- int var11 = Math.min(var5, var9);
- int var12 = Math.min(var6, var10);
- var3[var7] = var5 - var11;
- var4[var7] = (int)Math.min((long)var11 + (long)var12, 2147483647L);
- }
-
- }
-
- private static void compressedTile(int var0, SizeRequirements var1, SizeRequirements[] var2, int[] var3, int[] var4) {
- int var5 = Math.min(var1.preferred - var0, var1.preferred - var1.minimum);
- float var6 = var1.preferred - var1.minimum == 0 ? 0.0F : (float)var5 / (float)(var1.preferred - var1.minimum);
- int var7 = 0;
-
- for(int var8 = 0; var8 < var4.length; ++var8) {
- var3[var8] = var7;
- SizeRequirements var9 = var2[var8];
- int var10 = (int)(var6 * (float)(var9.preferred - var9.minimum));
- var4[var8] = var9.preferred - var10;
- var7 = (int)Math.min((long)var7 + (long)var4[var8], 2147483647L);
- }
-
- }
-
- private static void expandedTile(int var0, SizeRequirements var1, SizeRequirements[] var2, int[] var3, int[] var4) {
- int var5 = Math.min(var0 - var1.preferred, var1.maximum - var1.preferred);
- float var6 = var1.maximum - var1.preferred == 0 ? 0.0F : (float)var5 / (float)(var1.maximum - var1.preferred);
- int var7 = 0;
-
- for(int var8 = 0; var8 < var4.length; ++var8) {
- var3[var8] = var7;
- SizeRequirements var9 = var2[var8];
- int var10 = (int)(var6 * (float)(var9.maximum - var9.preferred));
- var4[var8] = (int)Math.min((long)var9.preferred + (long)var10, 2147483647L);
- var7 = (int)Math.min((long)var7 + (long)var4[var8], 2147483647L);
- }
-
- }
- }
-