- RGB to color code
- Homemade key polling with more keys than JLine
- Handle resize event
- Custom ML for RichText
- Clipping mode
- Buffer concept where you can put things before printing them -> widgets will update first, we know their height, then we can draw from outside the widget
- Remove Options'
get()
- Generalize directional methods.
- Don't link panels in
split()
, do it in different constructor - Write
getNext(direction)
for focus navigation - Remove resizing from split, resizing will be done dynamically at redraw
- Remove position, do everything with relative translations (remove absolute)
- Update dimensions has to recursively go down and update right with stuff
- Debug mode for frame
- Focus ring around panel
- Color schemes
- All widgets take `Varying[T] for parameters
- Adds themselves as subscribers for change
- Callback is just redraw for now
- Split panel into tabs
- Make all plot types handle negative values and indices
- Generalize graph grid + legends
- Only redraw needed
- Detect height changes -> request redraw
- Make all plot types handle floats
-
split()
version with weight - Scrollbars for long content
- Support multiple sets of values in scatter plot
- Generalize plot coordinate helpers
- Convert current things to RichText
- Handle out of bound values for plots
- Transition from FramePanel to SplitLayout
- Inherit from new Layout class with markAll, redraw
- ColumnLayout
- AbsoluteLayout
- In widget
draw()
, compute all lengths first to determine if enough room -> Display "Not enough room" - Graph widgets have optional height parameter
- Widgets:
- Bar graph
- Big text display
- SevenSegment
- Input
- Radio and RadioGroup
- BitMap
- Scatter plot
- HeatMap
- Slider
- CheckBox
- Histogram
- Progressbar, displays percentage
- TextBox
- Console, grabs stdout and stderr
- Terminal, along with an input field, spawns a bash