Refactor Widget

This commit is contained in:
2021-03-10 22:13:35 +01:00
parent 6a3ae8447e
commit e0ae21a899
4 changed files with 27 additions and 46 deletions

View File

@@ -3,11 +3,8 @@ package com.bartlomiejpluta.base.api.game.gui;
public abstract class Component implements Widget { public abstract class Component implements Widget {
protected Widget parent; protected Widget parent;
protected float absX; protected float x;
protected float absY; protected float y;
protected float width;
protected float height;
protected float marginTop; protected float marginTop;
protected float marginRight; protected float marginRight;
@@ -29,43 +26,29 @@ public abstract class Component implements Widget {
} }
@Override @Override
public float getAbsoluteX() { public float getX() {
return absX; return x;
} }
@Override @Override
public float getAbsoluteY() { public float getY() {
return absY; return y;
} }
@Override @Override
public void setAbsoluteX(float x) { public void setX(float x) {
this.absX = x; this.x = x;
} }
@Override @Override
public void setAbsoluteY(float y) { public void setY(float y) {
this.absY = y; this.y = y;
} }
@Override @Override
public float getWidth() { public void setPosition(float x, float y) {
return width; this.x = x;
} this.y = y;
@Override
public float getHeight() {
return height;
}
@Override
public void setWidth(float width) {
this.width = width;
}
@Override
public void setHeight(float height) {
this.height = height;
} }
@Override @Override

View File

@@ -31,14 +31,14 @@ public class HBox extends Container {
@Override @Override
public void draw(Screen screen, GUI gui) { public void draw(Screen screen, GUI gui) {
var currentX = absX + paddingLeft; var currentX = x + paddingLeft;
var currentY = absY + paddingTop; var currentY = y + paddingTop;
for (var child : children) { for (var child : children) {
var childAbsX = currentX + child.getMarginLeft(); var childAbsX = currentX + child.getMarginLeft();
var childAbsY = currentY + child.getMarginTop(); var childAbsY = currentY + child.getMarginTop();
child.setAbsoluteX(childAbsX); child.setX(childAbsX);
child.setAbsoluteY(childAbsY); child.setY(childAbsY);
currentX += child.getMarginLeft() + child.getWidth() + child.getMarginRight(); currentX += child.getMarginLeft() + child.getWidth() + child.getMarginRight();

View File

@@ -31,14 +31,14 @@ public class VBox extends Container {
@Override @Override
public void draw(Screen screen, GUI gui) { public void draw(Screen screen, GUI gui) {
var currentX = absX + paddingLeft; var currentX = x + paddingLeft;
var currentY = absY + paddingTop; var currentY = y + paddingTop;
for (var child : children) { for (var child : children) {
var childAbsX = currentX + child.getMarginLeft(); var childAbsX = currentX + child.getMarginLeft();
var childAbsY = currentY + child.getMarginTop(); var childAbsY = currentY + child.getMarginTop();
child.setAbsoluteX(childAbsX); child.setX(childAbsX);
child.setAbsoluteY(childAbsY); child.setY(childAbsY);
currentY += child.getMarginTop() + child.getHeight() + child.getMarginBottom(); currentY += child.getMarginTop() + child.getHeight() + child.getMarginBottom();

View File

@@ -5,22 +5,20 @@ import com.bartlomiejpluta.base.api.game.screen.Screen;
public interface Widget { public interface Widget {
Widget getParent(); Widget getParent();
float getAbsoluteX(); float getX();
float getAbsoluteY(); float getY();
void setAbsoluteX(float x); void setX(float x);
void setAbsoluteY(float y); void setY(float y);
void setPosition(float x, float y);
float getWidth(); float getWidth();
float getHeight(); float getHeight();
void setWidth(float width);
void setHeight(float height);
void setMargin(float top, float right, float bottom, float left); void setMargin(float top, float right, float bottom, float left);
void setMargin(float top, float rightLeft, float bottom); void setMargin(float top, float rightLeft, float bottom);