1 21 package org.lobobrowser.html.renderer; 22 23 class LineMargin { 24 private final int clearX; 25 private final int clearY; 26 private final LineMargin next; 27 28 public LineMargin(LineMargin next, int cleary, int totalXOffset) { 29 super(); 30 this.next = next; 31 this.clearY = cleary; 32 this.clearX = totalXOffset; 33 } 34 35 public int getClearY() { 36 return clearY; 37 } 38 39 public LineMargin getNext() { 40 return next; 41 } 42 43 public int getOffset() { 44 return clearX; 45 } 46 47 public boolean equals(Object other) { 48 if(!(other instanceof LineMargin)) { 49 return false; 50 } 51 LineMargin olm = (LineMargin) other; 52 return olm.clearX == this.clearX && olm.clearY == this.clearY && 53 org.lobobrowser.util.Objects.equals(olm.next, this.next); 54 } 55 56 public LineMargin translated(int yoffset, int xoffset) { 57 int newClearY = this.clearY - yoffset; 58 int newOffsetX = this.clearX - xoffset; 59 if(newOffsetX < 0) { 60 newOffsetX = 0; 61 } 62 LineMargin oldNext = this.next; 63 LineMargin newNext = oldNext == null ? null : oldNext.translated(yoffset, xoffset); 64 return new LineMargin(newNext, newClearY, newOffsetX); 65 } 66 } 67 | Popular Tags |