litesoft
@ 947
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
// This Source Code is in the Public Domain per: http://unlicense.org package org.litesoft.render; public class ChildAdjustStruct { private int mIndex; protected ChildAdjustStruct mPrev, mNext; private int mMaxShrinkAllowed = 0; private int mAdjustBy = 0; public ChildAdjustStruct( int pIndex, int pMaxShrinkAllowed ) { mIndex = pIndex; mPrev = mNext = this; mMaxShrinkAllowed = pMaxShrinkAllowed; } public int getIndex() { return mIndex; } public int getMaxShrinkAllowed() { return mMaxShrinkAllowed; } public int getAdjustBy() { return mAdjustBy; } public void insertBefore( ChildAdjustStruct pChild ) { ChildAdjustStruct zPrev = pChild.mPrev; pChild.mPrev = zPrev.mNext = this; this.mNext = pChild; this.mPrev = zPrev; } public void unlink() { ChildAdjustStruct zNext = mNext; ChildAdjustStruct zPrev = mPrev; zNext.mPrev = zPrev; zPrev.mNext = zNext; clearLinks(); } public void clearLinks() { mPrev = mNext = null; } public int incAdjustBy() { mAdjustBy++; return 1; } public int incAdjustBy( int pBy ) { mAdjustBy += pBy; return pBy; } public int decAdjustBy() { if ( mMaxShrinkAllowed > 0 ) { mMaxShrinkAllowed--; mAdjustBy--; return 1; } return 0; } public int decAdjustBy( int pBy ) { if ( pBy > mMaxShrinkAllowed ) { pBy = mMaxShrinkAllowed; } mMaxShrinkAllowed -= pBy; mAdjustBy -= pBy; return pBy; } public String toString() { return mIndex + " x " + mAdjustBy; } } |