A new start to the GUI API.

This is a minature system based on Microsoft's excellent work on the
Visual Studio platform. We'll be adopting concepts from that platform and
adjusting it for our unique needs

Signed-off-by: Chris Sanders <zidane@outlook.com>
Add ClickType, expand ControlClickedEvent

Add onClicked to Control. If the ControlClickedEvent is never cancelled,
this method is called. It isn't required to implement in children and is a
handy method to simply perform code if you don't care if the event was
cancelled by another addon

Signed-off-by: Chris Sanders <zidane@outlook.com>
Add ControlDoubleClickedEvent on double click

Adjust ControlClickEvent's toString to account for this

Signed-off-by: Chris Sanders <zidane@outlook.com>
Add ControlHoveredEvent and onHovered

This event is fired when the mouse hovers or stops hovering over a x, y
coordinate within the bounds of the control. Pressed keyboard keys are
available to give more control to the addon developer and do neat stuff
with hovering.

Hovering is only fired once for hovering a x, y and for leaving. If the
mouse doesn't move a render tick, hover won't be fired till it moves again

Signed-off-by: Chris Sanders <zidane@outlook.com>
Add ControlFocusedEvent and onFocused

This is fired when a control gains/loses focus. Focus is a generic term
and the behavior of it is defined by the control itself. The currently
focused control will be tracked by the Screen object (in a future commit)

Signed-off-by: Chris Sanders <zidane@outlook.com>
Expose render callback to the addon API.

Due to the severity of calling an event for each rendering, onRender is
provided. dt is time since last render (in ms) to allow "over time" render
effects

Signed-off-by: Chris Sanders <zidane@outlook.com>
Add ControlEnable/VisibilityActionEvents

Added license headers to gui package classes.

Signed-off-by: Chris Sanders <zidane@outlook.com>
Update build.gradle

- Update to MinecraftForge version 10.12.1.1062
- Add 'Shadow' plugin
- Add 'caustic-lwjgl' as a dependency and include in final JAR

Signed-off-by: Steven Downer <grinch@outlook.com>
Update README

Signed-off-by: Steven Downer <grinch@outlook.com>
Add LabelBase, GuiRenderer

GuiRenderer uses the amazing Caustic rendering lib by @DDoS to do
GUIRendering. Right now its simply a test to see what would be possible.

LabelBase will be used by all controls that need text and position on
screen with Caustic's StringModel

Signed-off-by: Chris Sanders <zidane@outlook.com>
Fix GuiRenderer.java file name

Signed-off-by: Steven Downer <grinch@outlook.com>
Re-add 'build' task, add flow-math

Signed-off-by: Steven Downer <grinch@outlook.com>
Remove flow-math as a compile dependency

Signed-off-by: Steven Downer <grinch@outlook.com>
Potential fix for Travis-CI compilation errors

Signed-off-by: Steven Downer <grinch@outlook.com>
Another attempt to fix Travis

Signed-off-by: Steven Downer <grinch@outlook.com>
Make GUIRenderer addon aware, render test text

Signed-off-by: Chris Sanders <zidane@outlook.com>
Expose GuiRenderer to the API

Signed-off-by: Chris Sanders <zidane@outlook.com>
Cleanup/expose camera to API

Signed-off-by: Chris Sanders <zidane@outlook.com>
Forgot this

Signed-off-by: Chris Sanders <zidane@outlook.com>
Test work on font rendering

Signed-off-by: Chris Sanders <zidane@outlook.com>