aboutsummaryrefslogtreecommitdiff
path: root/src/Java/binnie/craftgui/core
diff options
context:
space:
mode:
authorDraknyte1 <Draknyte1@hotmail.com>2016-02-19 17:38:35 +1000
committerDraknyte1 <Draknyte1@hotmail.com>2016-02-19 17:38:35 +1000
commit7011e367ac5ccc34473283d6245bc2cec93b835e (patch)
treecc5675471f1101631bec2cde9713cb9c0004cc8f /src/Java/binnie/craftgui/core
parentc68c67d74f39c3eb075ac29e88936a1976ef089b (diff)
downloadGT5-Unofficial-7011e367ac5ccc34473283d6245bc2cec93b835e.tar.gz
GT5-Unofficial-7011e367ac5ccc34473283d6245bc2cec93b835e.tar.bz2
GT5-Unofficial-7011e367ac5ccc34473283d6245bc2cec93b835e.zip
Removed Hard dependency on gregtech as another Project and added dev versions of all requires libs.
Also started work on GT-EU EnderIO conduits, adding @Optional annotations where possible and a few other nice things.
Diffstat (limited to 'src/Java/binnie/craftgui/core')
-rw-r--r--src/Java/binnie/craftgui/core/Attribute.java9
-rw-r--r--src/Java/binnie/craftgui/core/CraftGUI.java10
-rw-r--r--src/Java/binnie/craftgui/core/ITooltip.java6
-rw-r--r--src/Java/binnie/craftgui/core/ITooltipHelp.java6
-rw-r--r--src/Java/binnie/craftgui/core/ITopLevelWidget.java29
-rw-r--r--src/Java/binnie/craftgui/core/IWidget.java138
-rw-r--r--src/Java/binnie/craftgui/core/IWidgetAttribute.java3
-rw-r--r--src/Java/binnie/craftgui/core/RenderStage.java8
-rw-r--r--src/Java/binnie/craftgui/core/Tooltip.java84
-rw-r--r--src/Java/binnie/craftgui/core/TopLevelWidget.java248
-rw-r--r--src/Java/binnie/craftgui/core/Widget.java499
-rw-r--r--src/Java/binnie/craftgui/core/geometry/CraftGUIUtil.java77
-rw-r--r--src/Java/binnie/craftgui/core/geometry/IArea.java143
-rw-r--r--src/Java/binnie/craftgui/core/geometry/IBorder.java126
-rw-r--r--src/Java/binnie/craftgui/core/geometry/IPoint.java83
-rw-r--r--src/Java/binnie/craftgui/core/geometry/Position.java41
-rw-r--r--src/Java/binnie/craftgui/core/geometry/TextJustification.java25
-rw-r--r--src/Java/binnie/craftgui/core/renderer/Renderer.java252
-rw-r--r--src/Java/binnie/craftgui/core/renderer/TextureType.java8
19 files changed, 0 insertions, 1795 deletions
diff --git a/src/Java/binnie/craftgui/core/Attribute.java b/src/Java/binnie/craftgui/core/Attribute.java
deleted file mode 100644
index 5d73f58ae2..0000000000
--- a/src/Java/binnie/craftgui/core/Attribute.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package binnie.craftgui.core;
-
-public enum Attribute
- implements IWidgetAttribute
-{
- MouseOver, CanFocus, NeedsDeletion, AlwaysOnTop, BlockTooltip;
-
- private Attribute() {}
-}
diff --git a/src/Java/binnie/craftgui/core/CraftGUI.java b/src/Java/binnie/craftgui/core/CraftGUI.java
deleted file mode 100644
index 3cce3493cf..0000000000
--- a/src/Java/binnie/craftgui/core/CraftGUI.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package binnie.craftgui.core;
-
-import binnie.craftgui.core.renderer.Renderer;
-import binnie.craftgui.resource.minecraft.CraftGUIResourceManager;
-
-public class CraftGUI
-{
- public static CraftGUIResourceManager ResourceManager;
- public static Renderer Render;
-}
diff --git a/src/Java/binnie/craftgui/core/ITooltip.java b/src/Java/binnie/craftgui/core/ITooltip.java
deleted file mode 100644
index 634ce476d5..0000000000
--- a/src/Java/binnie/craftgui/core/ITooltip.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package binnie.craftgui.core;
-
-public abstract interface ITooltip
-{
- public abstract void getTooltip(Tooltip paramTooltip);
-}
diff --git a/src/Java/binnie/craftgui/core/ITooltipHelp.java b/src/Java/binnie/craftgui/core/ITooltipHelp.java
deleted file mode 100644
index f01744ab6f..0000000000
--- a/src/Java/binnie/craftgui/core/ITooltipHelp.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package binnie.craftgui.core;
-
-public abstract interface ITooltipHelp
-{
- public abstract void getHelpTooltip(Tooltip paramTooltip);
-}
diff --git a/src/Java/binnie/craftgui/core/ITopLevelWidget.java b/src/Java/binnie/craftgui/core/ITopLevelWidget.java
deleted file mode 100644
index 2e209b3ea6..0000000000
--- a/src/Java/binnie/craftgui/core/ITopLevelWidget.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package binnie.craftgui.core;
-
-import binnie.craftgui.core.geometry.IPoint;
-
-public abstract interface ITopLevelWidget
- extends IWidget
-{
- public abstract void setMousePosition(int paramInt1, int paramInt2);
-
- public abstract IPoint getAbsoluteMousePosition();
-
- public abstract IWidget getFocusedWidget();
-
- public abstract IWidget getMousedOverWidget();
-
- public abstract IWidget getDraggedWidget();
-
- public abstract boolean isFocused(IWidget paramIWidget);
-
- public abstract boolean isMouseOver(IWidget paramIWidget);
-
- public abstract boolean isDragged(IWidget paramIWidget);
-
- public abstract void updateTopLevel();
-
- public abstract void widgetDeleted(IWidget paramIWidget);
-
- public abstract IPoint getDragDistance();
-}
diff --git a/src/Java/binnie/craftgui/core/IWidget.java b/src/Java/binnie/craftgui/core/IWidget.java
deleted file mode 100644
index cd85fa7a40..0000000000
--- a/src/Java/binnie/craftgui/core/IWidget.java
+++ /dev/null
@@ -1,138 +0,0 @@
-package binnie.craftgui.core;
-
-import binnie.craftgui.core.geometry.IArea;
-import binnie.craftgui.core.geometry.IPoint;
-import binnie.craftgui.events.Event;
-import binnie.craftgui.events.EventHandler;
-import java.util.List;
-
-public abstract interface IWidget
-{
- public abstract IWidget getParent();
-
- public abstract void deleteChild(IWidget paramIWidget);
-
- public abstract void deleteAllChildren();
-
- public abstract ITopLevelWidget getSuperParent();
-
- public abstract boolean isTopLevel();
-
- public abstract IPoint getPosition();
-
- public abstract IPoint pos();
-
- public abstract void setPosition(IPoint paramIPoint);
-
- public abstract IPoint getSize();
-
- public abstract IPoint size();
-
- public abstract void setSize(IPoint paramIPoint);
-
- public abstract IPoint getOriginalPosition();
-
- public abstract IPoint getAbsolutePosition();
-
- public abstract IPoint getOriginalAbsolutePosition();
-
- public abstract IPoint getOffset();
-
- public abstract IArea getArea();
-
- public abstract IArea area();
-
- public abstract void setOffset(IPoint paramIPoint);
-
- public abstract IPoint getMousePosition();
-
- public abstract IPoint getRelativeMousePosition();
-
- public abstract void setColour(int paramInt);
-
- public abstract int getColour();
-
- public abstract void render();
-
- public abstract void updateClient();
-
- public abstract void enable();
-
- public abstract void disable();
-
- public abstract void show();
-
- public abstract void hide();
-
- public abstract boolean calculateIsMouseOver();
-
- public abstract boolean isEnabled();
-
- public abstract boolean isVisible();
-
- public abstract boolean isFocused();
-
- public abstract boolean isMouseOver();
-
- public abstract boolean isDragged();
-
- public abstract boolean isChildVisible(IWidget paramIWidget);
-
- public abstract boolean isChildEnabled(IWidget paramIWidget);
-
- public abstract boolean canMouseOver();
-
- public abstract boolean canFocus();
-
- public abstract IWidget addWidget(IWidget paramIWidget);
-
- public abstract List<IWidget> getWidgets();
-
- public abstract void callEvent(Event paramEvent);
-
- public abstract void recieveEvent(Event paramEvent);
-
- public abstract void onUpdateClient();
-
- public abstract void delete();
-
- public abstract void onDelete();
-
- public abstract <T> T getWidget(Class<T> paramClass);
-
- public abstract IArea getCroppedZone();
-
- public abstract void setCroppedZone(IWidget paramIWidget, IArea paramIArea);
-
- public abstract boolean isCroppedWidet();
-
- public abstract IWidget getCropWidget();
-
- public abstract boolean isMouseOverWidget(IPoint paramIPoint);
-
- public abstract int getLevel();
-
- public abstract boolean isDescendant(IWidget paramIWidget);
-
- public abstract List<IWidgetAttribute> getAttributes();
-
- public abstract boolean hasAttribute(IWidgetAttribute paramIWidgetAttribute);
-
- public abstract boolean addAttribute(IWidgetAttribute paramIWidgetAttribute);
-
- public abstract <E extends Event> void addEventHandler(EventHandler<E> paramEventHandler);
-
- public abstract <E extends Event> void addSelfEventHandler(EventHandler<E> paramEventHandler);
-
- public abstract boolean contains(IPoint paramIPoint);
-
- public abstract float x();
-
- public abstract float y();
-
- public abstract float w();
-
- public abstract float h();
-
- public abstract void onRender(RenderStage paramRenderStage);
-}
diff --git a/src/Java/binnie/craftgui/core/IWidgetAttribute.java b/src/Java/binnie/craftgui/core/IWidgetAttribute.java
deleted file mode 100644
index 87d994ca43..0000000000
--- a/src/Java/binnie/craftgui/core/IWidgetAttribute.java
+++ /dev/null
@@ -1,3 +0,0 @@
-package binnie.craftgui.core;
-
-public abstract interface IWidgetAttribute {}
diff --git a/src/Java/binnie/craftgui/core/RenderStage.java b/src/Java/binnie/craftgui/core/RenderStage.java
deleted file mode 100644
index e710c833e6..0000000000
--- a/src/Java/binnie/craftgui/core/RenderStage.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package binnie.craftgui.core;
-
-public enum RenderStage
-{
- PreChildren, PostChildren, PostSiblings;
-
- private RenderStage() {}
-}
diff --git a/src/Java/binnie/craftgui/core/Tooltip.java b/src/Java/binnie/craftgui/core/Tooltip.java
deleted file mode 100644
index 4afb7f6bc5..0000000000
--- a/src/Java/binnie/craftgui/core/Tooltip.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package binnie.craftgui.core;
-
-import java.util.ArrayList;
-import java.util.List;
-import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
-import net.minecraftforge.fluids.FluidStack;
-
-public class Tooltip
-{
- public void add(String string)
- {
- this.tooltip.add(string);
- }
-
- public String getLine(int index)
- {
- String string = (String)getList().get(index);
- return string;
- }
-
- public void add(List list)
- {
- for (Object obj : list) {
- this.tooltip.add((String)obj);
- }
- }
-
- List<String> tooltip = new ArrayList();
-
- public List<String> getList()
- {
- return this.tooltip;
- }
-
- public boolean exists()
- {
- return this.tooltip.size() > 0;
- }
-
- public static enum Type
- implements Tooltip.ITooltipType
- {
- Standard, Help, Information, User, Power;
-
- private Type() {}
- }
-
- public void setType(ITooltipType type)
- {
- this.type = type;
- }
-
- ITooltipType type = Type.Standard;
- public int maxWidth = 256;
-
- public void setMaxWidth(int w)
- {
- this.maxWidth = w;
- }
-
- public ITooltipType getType()
- {
- return this.type;
- }
-
- public void add(ItemStack item, String string)
- {
- NBTTagCompound nbt = new NBTTagCompound();
- item.writeToNBT(nbt);
- nbt.setByte("nbt-type", (byte)105);
- add("~~~" + nbt.toString() + "~~~" + string);
- }
-
- public void add(FluidStack item, String string)
- {
- NBTTagCompound nbt = new NBTTagCompound();
- item.writeToNBT(nbt);
- nbt.setByte("nbt-type", (byte)102);
- add("~~~" + nbt.toString() + "~~~" + string);
- }
-
- public static abstract interface ITooltipType {}
-}
diff --git a/src/Java/binnie/craftgui/core/TopLevelWidget.java b/src/Java/binnie/craftgui/core/TopLevelWidget.java
deleted file mode 100644
index 6f2cdd18a6..0000000000
--- a/src/Java/binnie/craftgui/core/TopLevelWidget.java
+++ /dev/null
@@ -1,248 +0,0 @@
-package binnie.craftgui.core;
-
-import binnie.craftgui.core.geometry.IArea;
-import binnie.craftgui.core.geometry.IPoint;
-import binnie.craftgui.events.EventMouse.Down;
-import binnie.craftgui.events.EventMouse.Down.Handler;
-import binnie.craftgui.events.EventMouse.Drag;
-import binnie.craftgui.events.EventMouse.Move;
-import binnie.craftgui.events.EventMouse.Up;
-import binnie.craftgui.events.EventMouse.Up.Handler;
-import binnie.craftgui.events.EventWidget.EndDrag;
-import binnie.craftgui.events.EventWidget.EndMouseOver;
-import binnie.craftgui.events.EventWidget.GainFocus;
-import binnie.craftgui.events.EventWidget.LoseFocus;
-import binnie.craftgui.events.EventWidget.StartDrag;
-import binnie.craftgui.events.EventWidget.StartDrag.Handler;
-import binnie.craftgui.events.EventWidget.StartMouseOver;
-import java.util.ArrayDeque;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Deque;
-import java.util.List;
-import java.util.ListIterator;
-import org.lwjgl.input.Mouse;
-
-public abstract class TopLevelWidget
- extends Widget
- implements ITopLevelWidget
-{
- public TopLevelWidget()
- {
- super(null);
-
- addEventHandler(new EventMouse.Down.Handler()
- {
- public void onEvent(EventMouse.Down event)
- {
- TopLevelWidget.this.setDraggedWidget(TopLevelWidget.this.mousedOverWidget, event.getButton());
- TopLevelWidget.this.setFocusedWidget(TopLevelWidget.this.mousedOverWidget);
- }
- });
- addEventHandler(new EventMouse.Up.Handler()
- {
- public void onEvent(EventMouse.Up event)
- {
- TopLevelWidget.this.setDraggedWidget(null);
- }
- });
- addEventHandler(new EventWidget.StartDrag.Handler()
- {
- public void onEvent(EventWidget.StartDrag event)
- {
- TopLevelWidget.this.dragStart = TopLevelWidget.this.getRelativeMousePosition();
- }
- });
- }
-
- IWidget mousedOverWidget = null;
- IWidget draggedWidget = null;
- IWidget focusedWidget = null;
-
- public void setMousedOverWidget(IWidget widget)
- {
- if (this.mousedOverWidget == widget) {
- return;
- }
- if (this.mousedOverWidget != null) {
- callEvent(new EventWidget.EndMouseOver(this.mousedOverWidget));
- }
- this.mousedOverWidget = widget;
- if (this.mousedOverWidget != null) {
- callEvent(new EventWidget.StartMouseOver(this.mousedOverWidget));
- }
- }
-
- public void setDraggedWidget(IWidget widget)
- {
- setDraggedWidget(widget, -1);
- }
-
- public void setDraggedWidget(IWidget widget, int button)
- {
- if (this.draggedWidget == widget) {
- return;
- }
- if (this.draggedWidget != null) {
- callEvent(new EventWidget.EndDrag(this.draggedWidget));
- }
- this.draggedWidget = widget;
- if (this.draggedWidget != null) {
- callEvent(new EventWidget.StartDrag(this.draggedWidget, button));
- }
- }
-
- public void setFocusedWidget(IWidget widget)
- {
- IWidget newWidget = widget;
- if (this.focusedWidget == newWidget) {
- return;
- }
- if ((newWidget != null) && (!newWidget.canFocus())) {
- newWidget = null;
- }
- if (this.focusedWidget != null) {
- callEvent(new EventWidget.LoseFocus(this.focusedWidget));
- }
- this.focusedWidget = newWidget;
- if (this.focusedWidget != null) {
- callEvent(new EventWidget.GainFocus(this.focusedWidget));
- }
- }
-
- public IWidget getMousedOverWidget()
- {
- return this.mousedOverWidget;
- }
-
- public IWidget getDraggedWidget()
- {
- return this.draggedWidget;
- }
-
- public IWidget getFocusedWidget()
- {
- return this.focusedWidget;
- }
-
- public boolean isMouseOver(IWidget widget)
- {
- return getMousedOverWidget() == widget;
- }
-
- public boolean isDragged(IWidget widget)
- {
- return getDraggedWidget() == widget;
- }
-
- public boolean isFocused(IWidget widget)
- {
- return getFocusedWidget() == widget;
- }
-
- public void updateTopLevel()
- {
- setMousedOverWidget(calculateMousedOverWidget());
- if ((getFocusedWidget() != null) && ((!getFocusedWidget().isVisible()) || (!getFocusedWidget().isEnabled()))) {
- setFocusedWidget(null);
- }
- if (!Mouse.isButtonDown(0)) {
- if (this.draggedWidget != null) {
- setDraggedWidget(null);
- }
- }
- }
-
- private IWidget calculateMousedOverWidget()
- {
- Deque<IWidget> queue = calculateMousedOverWidgets();
- while (!queue.isEmpty())
- {
- IWidget widget = (IWidget)queue.removeFirst();
- if ((widget.isEnabled()) && (widget.isVisible()) && (widget.canMouseOver())) {
- if ((widget.isEnabled()) && (widget.isVisible()) && (widget.canMouseOver()) && (widget.calculateIsMouseOver())) {
- return widget;
- }
- }
- }
- return null;
- }
-
- public Deque<IWidget> calculateMousedOverWidgets()
- {
- Deque<IWidget> list = new ArrayDeque();
- for (IWidget widget : getQueuedWidgets(this)) {
- if (widget.calculateIsMouseOver()) {
- list.addLast(widget);
- }
- }
- return list;
- }
-
- private Collection<IWidget> getQueuedWidgets(IWidget widget)
- {
- List<IWidget> widgets = new ArrayList();
-
- boolean addChildren = true;
- if (widget.isCroppedWidet()) {
- addChildren = widget.getCroppedZone().contains(widget.getCropWidget().getRelativeMousePosition());
- }
- if (addChildren)
- {
- ListIterator<IWidget> li = widget.getWidgets().listIterator(widget.getWidgets().size());
- while (li.hasPrevious())
- {
- IWidget child = (IWidget)li.previous();
- widgets.addAll(getQueuedWidgets(child));
- }
- }
- widgets.add(widget);
-
- return widgets;
- }
-
- protected IPoint mousePosition = new IPoint(0.0F, 0.0F);
-
- public void setMousePosition(int x, int y)
- {
- float dx = x - this.mousePosition.x();
- float dy = y - this.mousePosition.y();
- if ((dx != 0.0F) || (dy != 0.0F)) {
- if (getDraggedWidget() != null) {
- callEvent(new EventMouse.Drag(getDraggedWidget(), dx, dy));
- } else {
- callEvent(new EventMouse.Move(this, dx, dy));
- }
- }
- if ((this.mousePosition.x() != x) || (this.mousePosition.y() != y))
- {
- this.mousePosition = new IPoint(x, y);
- setMousedOverWidget(calculateMousedOverWidget());
- }
- }
-
- public IPoint getAbsoluteMousePosition()
- {
- return this.mousePosition;
- }
-
- public void widgetDeleted(IWidget widget)
- {
- if (isMouseOver(widget)) {
- setMousedOverWidget(null);
- }
- if (isDragged(widget)) {
- setDraggedWidget(null);
- }
- if (isFocused(widget)) {
- setFocusedWidget(null);
- }
- }
-
- IPoint dragStart = IPoint.ZERO;
-
- public IPoint getDragDistance()
- {
- return getRelativeMousePosition().sub(this.dragStart);
- }
-}
diff --git a/src/Java/binnie/craftgui/core/Widget.java b/src/Java/binnie/craftgui/core/Widget.java
deleted file mode 100644
index 448bcbaed6..0000000000
--- a/src/Java/binnie/craftgui/core/Widget.java
+++ /dev/null
@@ -1,499 +0,0 @@
-package binnie.craftgui.core;
-
-import binnie.craftgui.core.geometry.IArea;
-import binnie.craftgui.core.geometry.IPoint;
-import binnie.craftgui.core.renderer.Renderer;
-import binnie.craftgui.events.Event;
-import binnie.craftgui.events.EventHandler;
-import binnie.craftgui.events.EventHandler.Origin;
-import binnie.craftgui.events.EventWidget.ChangeColour;
-import binnie.craftgui.events.EventWidget.ChangeOffset;
-import binnie.craftgui.events.EventWidget.ChangePosition;
-import binnie.craftgui.events.EventWidget.ChangeSize;
-import binnie.craftgui.events.EventWidget.Disable;
-import binnie.craftgui.events.EventWidget.Enable;
-import binnie.craftgui.events.EventWidget.Hide;
-import binnie.craftgui.events.EventWidget.Show;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.ConcurrentModificationException;
-import java.util.List;
-
-public class Widget
- implements IWidget
-{
- public Widget(IWidget parent)
- {
- this.parent = parent;
- if (parent != null) {
- parent.addWidget(this);
- }
- }
-
- private IWidget parent = null;
- private List<IWidget> subWidgets = new ArrayList();
- private List<IWidgetAttribute> attributes = new ArrayList();
-
- public List<IWidgetAttribute> getAttributes()
- {
- return this.attributes;
- }
-
- public boolean hasAttribute(IWidgetAttribute attribute)
- {
- return this.attributes.contains(attribute);
- }
-
- public boolean addAttribute(IWidgetAttribute attribute)
- {
- return this.attributes.add(attribute);
- }
-
- public final void deleteChild(IWidget child)
- {
- if (child == null) {
- return;
- }
- child.delete();
- this.subWidgets.remove(child);
- }
-
- public final void deleteAllChildren()
- {
- while (!this.subWidgets.isEmpty()) {
- deleteChild((IWidget)this.subWidgets.get(0));
- }
- }
-
- public final IWidget getParent()
- {
- return this.parent;
- }
-
- public final ITopLevelWidget getSuperParent()
- {
- return isTopLevel() ? (ITopLevelWidget)this : this.parent.getSuperParent();
- }
-
- public final IWidget addWidget(IWidget widget)
- {
- if ((this.subWidgets.size() != 0) && (((IWidget)this.subWidgets.get(this.subWidgets.size() - 1)).hasAttribute(Attribute.AlwaysOnTop))) {
- this.subWidgets.add(this.subWidgets.size() - 1, widget);
- } else {
- this.subWidgets.add(widget);
- }
- onAddChild(widget);
- return widget;
- }
-
- protected void onAddChild(IWidget widget) {}
-
- public final List<IWidget> getWidgets()
- {
- return this.subWidgets;
- }
-
- public final boolean isTopLevel()
- {
- return this instanceof ITopLevelWidget;
- }
-
- private IPoint position = new IPoint(0.0F, 0.0F);
- private IPoint size = new IPoint(0.0F, 0.0F);
- private IPoint offset = new IPoint(0.0F, 0.0F);
- IArea cropArea;
- IWidget cropWidget;
-
- public final IPoint pos()
- {
- return this.position.add(this.offset);
- }
-
- public final IPoint size()
- {
- return this.size;
- }
-
- public final IArea area()
- {
- return getArea();
- }
-
- public final IPoint getPosition()
- {
- return pos();
- }
-
- public final IArea getArea()
- {
- return new IArea(IPoint.ZERO, size());
- }
-
- public final IPoint getOriginalPosition()
- {
- return this.position;
- }
-
- boolean cropped = false;
-
- public IArea getCroppedZone()
- {
- return this.cropArea;
- }
-
- public void setCroppedZone(IWidget relative, IArea area)
- {
- this.cropArea = area;
- this.cropped = true;
- this.cropWidget = relative;
- }
-
- public final IPoint getAbsolutePosition()
- {
- return isTopLevel() ? getPosition() : getParent().getAbsolutePosition().add(getPosition());
- }
-
- public final IPoint getOriginalAbsolutePosition()
- {
- return isTopLevel() ? getOriginalPosition() : getParent().getOriginalPosition().sub(getOriginalPosition());
- }
-
- public final IPoint getSize()
- {
- return size();
- }
-
- public final IPoint getOffset()
- {
- return this.offset;
- }
-
- public final void setPosition(IPoint vector)
- {
- if (!vector.equals(this.position))
- {
- this.position = new IPoint(vector);
- callEvent(new EventWidget.ChangePosition(this));
- }
- }
-
- public final void setSize(IPoint vector)
- {
- if (!vector.equals(this.size))
- {
- this.size = new IPoint(vector);
- callEvent(new EventWidget.ChangeSize(this));
- }
- }
-
- public final void setOffset(IPoint vector)
- {
- if (vector != this.offset)
- {
- this.offset = new IPoint(vector);
- callEvent(new EventWidget.ChangeOffset(this));
- }
- }
-
- int colour = 16777215;
-
- public final void setColour(int colour)
- {
- if (this.colour != colour)
- {
- this.colour = colour;
- callEvent(new EventWidget.ChangeColour(this));
- }
- }
-
- public final int getColour()
- {
- return this.colour;
- }
-
- public boolean canMouseOver()
- {
- return hasAttribute(Attribute.MouseOver);
- }
-
- public boolean canFocus()
- {
- return hasAttribute(Attribute.CanFocus);
- }
-
- private Collection<EventHandler> globalEventHandlers = new ArrayList();
-
- public void addEventHandler(EventHandler handler)
- {
- this.globalEventHandlers.add(handler);
- }
-
- public void addSelfEventHandler(EventHandler handler)
- {
- addEventHandler(handler.setOrigin(EventHandler.Origin.Self, this));
- }
-
- public final void callEvent(Event event)
- {
- getSuperParent().recieveEvent(event);
- }
-
- public final void recieveEvent(Event event)
- {
- for (EventHandler handler : this.globalEventHandlers) {
- if (handler.handles(event)) {
- handler.onEvent(event);
- }
- }
- try
- {
- for (IWidget child : getWidgets()) {
- child.recieveEvent(event);
- }
- }
- catch (ConcurrentModificationException e) {}
- }
-
- public final IPoint getMousePosition()
- {
- return getSuperParent().getAbsoluteMousePosition();
- }
-
- public final IPoint getRelativeMousePosition()
- {
- return isTopLevel() ? getMousePosition() : getParent().getRelativeMousePosition().sub(getPosition());
- }
-
- public boolean isCroppedWidet()
- {
- return this.cropped;
- }
-
- public final IWidget getCropWidget()
- {
- return this.cropWidget == null ? this : this.cropWidget;
- }
-
- public final void render()
- {
- if (isVisible())
- {
- CraftGUI.Render.preRender(this);
- onRender(RenderStage.PreChildren);
- for (IWidget widget : getWidgets()) {
- widget.render();
- }
- for (IWidget widget : getWidgets())
- {
- CraftGUI.Render.preRender(widget);
- widget.onRender(RenderStage.PostSiblings);
- CraftGUI.Render.postRender(widget);
- }
- onRender(RenderStage.PostChildren);
- CraftGUI.Render.postRender(this);
- }
- }
-
- public final void updateClient()
- {
- if (!isVisible()) {
- return;
- }
- if (getSuperParent() == this) {
- ((ITopLevelWidget)this).updateTopLevel();
- }
- onUpdateClient();
-
- List<IWidget> deletedWidgets = new ArrayList();
- for (IWidget widget : getWidgets()) {
- if (widget.hasAttribute(Attribute.NeedsDeletion)) {
- deletedWidgets.add(widget);
- } else {
- widget.updateClient();
- }
- }
- for (IWidget widget : deletedWidgets) {
- deleteChild(widget);
- }
- }
-
- public final boolean calculateIsMouseOver()
- {
- IPoint mouse = getRelativeMousePosition();
- if (!this.cropped) {
- return isMouseOverWidget(mouse);
- }
- IWidget cropRelative = this.cropWidget != null ? this.cropWidget : this;
- IPoint pos = IPoint.sub(cropRelative.getAbsolutePosition(), getAbsolutePosition());
- IPoint size = new IPoint(this.cropArea.size().x(), this.cropArea.size().y());
- boolean inCrop = (mouse.x() > pos.x()) && (mouse.y() > pos.y()) && (mouse.x() < pos.x() + size.x()) && (mouse.y() < pos.y() + size.y());
-
- return (inCrop) && (isMouseOverWidget(mouse));
- }
-
- public boolean isMouseOverWidget(IPoint relativeMouse)
- {
- return getArea().contains(relativeMouse);
- }
-
- private boolean enabled = true;
- private boolean visible = true;
-
- public final void enable()
- {
- this.enabled = true;
- callEvent(new EventWidget.Enable(this));
- }
-
- public final void disable()
- {
- this.enabled = false;
- callEvent(new EventWidget.Disable(this));
- }
-
- public final void show()
- {
- this.visible = true;
- callEvent(new EventWidget.Show(this));
- }
-
- public final void hide()
- {
- this.visible = false;
- callEvent(new EventWidget.Hide(this));
- }
-
- public boolean isEnabled()
- {
- return (this.enabled) && ((isTopLevel()) || ((getParent().isEnabled()) && (getParent().isChildEnabled(this))));
- }
-
- public final boolean isVisible()
- {
- return (this.visible) && ((isTopLevel()) || ((getParent().isVisible()) && (getParent().isChildVisible(this))));
- }
-
- public final boolean isFocused()
- {
- return getSuperParent().isFocused(this);
- }
-
- public final boolean isDragged()
- {
- return getSuperParent().isDragged(this);
- }
-
- public final boolean isMouseOver()
- {
- return getSuperParent().isMouseOver(this);
- }