PhysicalConnectivity/src/main/kotlin/net/shadowfacts/cacao
Shadowfacts 2198b5e10d
Fix weird tab appearance at certain resolutions
There's 1 physical pixel of error creeping in somewhere which was being
displayed below the selected tab. Workaround it by using a tab texture
which has transparent pixels below the bottom of the select tabs.
2021-03-06 19:10:24 -05:00
..
geometry Fix crash showing tooltip when mouse was on the edge between two tabs 2021-03-06 15:47:27 -05:00
util Add Redstone Emitter 2021-03-02 22:20:25 -05:00
view Fix not being able to open Redstone Emitter GUI 2021-03-06 15:53:25 -05:00
viewcontroller Fix weird tab appearance at certain resolutions 2021-03-06 19:10:24 -05:00
window Cacao: More docs 2021-02-28 12:19:09 -05:00
AbstractCacaoScreen.kt Start adding CacaoHandledScreen 2021-02-18 23:27:18 -05:00
CacaoHandledScreen.kt Add Redstone Emitter 2021-03-02 22:20:25 -05:00
CacaoScreen.kt Add Redstone Emitter 2021-03-02 22:20:25 -05:00
LayoutVariable.kt Add Cacao 2021-02-18 23:12:43 -05:00
README.md Add Cacao 2021-02-18 23:12:43 -05:00
Responder.kt Cacao: More docs 2021-02-28 12:19:09 -05:00

README.md

Cacao

Cacao is a UI framework for Fabric/Minecraft mods based on Apple's [Cocoa](https://en.wikipedia.org/wiki/Cocoa_(API) UI toolkit.

Architecture

Screen

A CacaoScreen is the object that acts as the interface between Minecraft GUI code and the Cacao framework.

The CacaoScreen draws Cacao views on screen and passes Minecraft input events to the appropriate Views. The CacaoScreen owns a group of Window objects which are displayed on screen, one on top of the other.

Window

A Window object has a root View Controller that it displays on screen.

The Window occupies the entire screen space and translates events from the screen to the root View Controller's View. It owns a Solver object that manages layout constraints. The window also handles screen resizing and re-lays out the view hierarchy.

View Controller

A ViewController object owns a view, receives lifecycle events for it, and is generally used to control the view.

Each View Controller has a single root View which in turn may have subviews.

View

A View object represents a single view on screen. It handles drawing, positioning, and directly handles input.