- Fix issue #67 (The Japanese text is displayed strangely), thanks to PR #68 by @junogura
- Upgrade to libui 0.1.2 (final version of 0.1.2.pre)
- New
code_entry
control [ALPHA/EXPERIMENTAL/INCOMPLETE/UNSTABLE] (similar tocode_area
, but with code editing functionality). - New examples/basic_code_entry.rb
- Update examples/basic_code_area.rb to have padding inside the
code_area
and no window padding anymore - Have
code_area
handle italic syntax highlighting styles - Support
code_area
font_family
andfont_size
options - Controls prepend
Parent
mixin to keep track of their children viachildren
attribute - tab_item always generates a vertical_box root container (root_proxy) before adding its child content within it (also, it does not generate a horizontal_box anymore by default if it had no content to start, yet a vertical_box all the time)
- Upgrade to glimmer 2.7.9
- Fix issue in
code_area
not recognizing indentation
- Fix issue with getting error "superclass mismatch for class Array" when
concurrent-ruby
is included in a desktop applications as it is required to loadconcurrent-ruby
beforeglimmer
, so nowglimmer-dsl-libui
will attempt loadingconcurrent-ruby
if available or default to old behavior otherwise.
- Custom Control Component Slots (containers that could accept content within different parts of a Custom Component)
- Fix issue with not being able to add content to the body root of a custom control by opening a block when invoking the custom control keyword
- Support Content Data-Binding to multiple model attributes via
computed_by
option (e.g.content(@game, :scale, computed_by: [:width, :height])
orcontent(@game, computed_by: [:scale, :width, :height])
will rebuild content on changes to:scale
,:width
, or:height
)
- Fix issue with applying a
transform
inside aGlimmer::LibUI::Application
,Glimmer::LibUI::CustomControl
,Glimmer::LibUI::CustomWindow
, orGlimmer::LibUI::CustomShape
(it otherwise worked when using Glimmer GUI DSL in top-level object) - Refactor/simplify examples by removing unnecessary
vertical_box
/horizontal_box
uses
- Fix issue with
table
checkbox_text_color_column
checkbox edits not working
- Organize scaffolded application menus under a
menu_bar
method - Optimize performance of startup time, cutting ~26ms by delaying load of certain gems until needed:
- Cut ~16ms of startup time by not loading
perfect-shape
gem until area canvas graphics are used - Cut ~10ms of startup time by not loading
color
gem until used byGlimmer::LibUI.interpret_color
method
- Cut ~16ms of startup time by not loading
- Optimize performance of scaffolding, cutting ~54ms by not loading
facets
gem completely, yet load used part of facets only ('facets/string/titlecase') - Optimize performance of glimmer command listing of gems, cutting ~54ms by not loading
facets
gem completely, yet load used part of facets only ('facets/string/titlecase') - Fix issue with
listener_expression.rb
failing forTextProxy
due to not havingcan_handle_listener?
method. - Fix issue with
TextProxy.can_handle_listener?
crashing whentext
is nested underarea
on_draw
- Support table explicit data-binding with a model attribute that returns an Enumerator (instead of an Array)
- Fix issue with Content Data-Binding not working
- Fix issue with not successfully processing layout properties (e.g.
stretchy
) when nested under custom controls/windows
- Support nesting
on_mouse_*
listeners undertext
- Fix issue with getting error when nesting property content under custom controls/shapes/windows (fixes
examples/basic_custom_shape.rb
)
- Refactor
examples/dynamic_form.rb
- Freeze LibUI version at 0.1.2.pre because 0.1.3.pre has issues like preventing the ability to close window with CMD+Q shortcut by default on Mac
- Control
content
data-binding to generate nested controls dynamically based on a model attribute change examples/dynamic_form.rb
to demonstrate controlcontent
data-binding
- In Snake example, change snake direction on key press instead of key release to be more responsive for players who are not used to releasing pressed keys quickly
- In Snake example, fix issue with detecting collision too soon if a snake fills the entire space horizontally or vertically
- In Snake example, fix issue of hearing beeps on every direction change because of not properly informing LibUI when the area key down event is handled
- In Snake example, refactor
Snake::Model::Snake
to be more readable like high-level game domain rules (especiallymove
method)
- Scaffold custom shape
- Scaffold custom shape gem
- List Custom Shape Gems (expected name format:
glimmer-libui-cs-gemname-namespace
) viaglimmer list:gems:customshape[query]
- Support Custom Shapes by mixing in
Glimmer::LibUI::CustomShape
to abstract composite shapes/text/image concepts inside anarea
examples/basic_custom_shape.rb
example- Support nesting listeners under a Custom Shape that will automatically get added to its
body_root
control - Support nesting listeners under a Custom Control that will automatically get added to its
body_root
control - Do not include
Glimmer
in top-level class when scaffolding Applications/Custom-Window-gems as it is unnecessary
- Scaffold Custom Control Gem via
glimmer scaffold:gem:customcontrol[name,namespace]
(or alias:glimmer scaffold:gem:cc[name,namespace]
) - List Custom Control Gems (expected name format:
glimmer-libui-cc-gemname-namespace
) viaglimmer list:gems:customcontrol[query]
(or alias:glimmer list:gems:cc[query]
)
- Scaffold Custom Window Gem via
glimmer scaffold:gem:customwindow[name,namespace]
(or alias:glimmer scaffold:gem:cw[name,namespace]
) - List Custom Window Gems (expected name format:
glimmer-libui-cw-gemname-namespace
) viaglimmer list:gems:customwindow[query]
(or alias:glimmer list:gems:cw[query]
) - List Glimmer DSLs via
glimmer list:gems:dsl[query]
- Scaffold Custom Control via
glimmer scaffold:customcontrol[name,namespace]
(or alias:glimmer scaffold:cc[name,namespace]
)
- Scaffold Custom Window via
glimmer scaffold:customwindow[name,namespace]
(or alias:glimmer scaffold:cw[name,namespace]
)
- Application Scaffolding via
glimmer scaffold[app_name]
includes a Model layer
- Add
glimmer
commandsglimmer package:gem
,glimmer package:gemspec
, andglimmer package:clean
- Scaffold an application via Glimmer Command:
glimmer scaffold[app_name]
- Hide unsupported Scaffolding tasks in Glimmer Command
- Add missing Glimmer Command gem dependencies:
rake
,rake-tui
,text-table
,puts_debuggerer
- Support
glimmer
command to more conveniently run applications (glimmer app_path
) and examples (glimmer examples
)
- Support
composite_shape
keyword (alias:shape
) as aggregate (composite) shape that can have arbitrary shapes, text, transforms underneath, which inherit itsfill
/stroke
colors andtransform
.composite_shape
also supports nesting mouse listeners, which check mouse click point containment against all nested shapes automatically. - New
examples/basic_composite_shape.rb
with use ofshape
+ drag and drop support for moving shapes and click support for changing shape colors - Invert
Glimmer::LibUI::ControlProxy::KEYWORD_ALIASES
to enable adding multiple aliases per keyword - Support
Glimmer::LibUI::Shape::KEYWORD_ALIASES
to enable adding multiple aliases per keyword - Small update for
examples/button_counter.rb
- Upgrade to
perfect-shape
gem version 1.0.8 to fix a crashing issue inexamples/shape_coloring.rb
- Support ability for
area
on_key_event
/on_key_down
/on_key_up
listeners to return a boolean value indicating whether they handled a key event or not in case some key events need to be left to other operating system key handlers like COMMAND+Q for the Mac quit menu item - Update
examples/tetris.rb
to returnfalse
in itson_key_down
listener for unhandled events - Update
examples/area_gallery.rb
to returnfalse
in itson_key_event
/on_key_down
/on_key_up
listeners for unhandled events
- Fix issue with hearing "fonk" sound on every key press when handling
on_key_event
/on_key_down
/on_key_up
listeners (by returning expected1
value if the listeners are handled properly or otherwise allowing the "fonk" sound to ring when the listeners are not handled) - Update examples/tetris.rb with COMMAND+Q shortcut for quitting on the Mac and ALT+F4 shortcut for quitting on Windows/Linux
- Fix issue 46 (GTK Error rendering table with zero initial elements), which happens when explicitly data-binding table cell_rows to an empty array
table
sortable
property (default:true
) to enable automatic table sorting support whencell_rows
is anArray
(does not sort ifcell_rows
is a lazy enumerable)- Fix issue with not auto-checking checkboxes for zero-or-many table selection in
examples/basic_table_selection2.rb
- Rename
examples/basic_table_selection.rb
toexamples/basic_table_selection3.rb
and add newexamples/basic_table_selection.rb
with automatedtable
selection viasortable
property (default:true
) - Disable automatic sorting by default in
refined_table
(set itstable
sortable
property tofalse
) since it does not sort over the entire collection, yet the visible collection only - Disable
sortable
sorting fortable
button_column
since it does not make sense for it
table
selection
data-binding supporttable
columnsort_indicator
data-binding support- New
examples/basic_table_selection2.rb
that usesselection
,selection_mode
,header_visible
, andsort_indicator
data-binding support
table
on_selection_changed
listener arguments now provide extra arguments ofselection
,added_selection
,removed_selection
after first argument (table
)- Update
examples/basic_table_selection.rb
to use newon_selection_changed
arguments ofselection
,added_selection
, andremoved_selection
table
columnon_clicked
listener (can be nested undertext_column
,text_color_column
,button_column
,checkbox_column
,checkbox_text_color_column
,image_column
,image_text_color_column
,image_text_column
, andprogress_bar_column
)table
columnsort_indicator
property (can benil
,:ascending
[aliases::asc
,:a
],:descending
[aliases::desc
,:d
])table
columnset_sort_indicator
alias forsort_indicator=
can accept an option ofreset_columns: false
to avoid resetting sort indicator of other columns when setting sort indicator on a specific columntable
header_visible
property (Boolean)- Fix issue with
table
selection_mode
getting set tonil
if not specified
- Upgrade to libui v0.1.2.pre (including newer libui-ng with table selection API)
table
on_row_clicked
,on_row_double_clicked
, andon_selection_changed
listenerstable
selection
property (includingselection=
attribute writer)table
selection_mode
property supporting values::zero_or_many
,:none
,:zero_or_one
, and:one
- Support
radio_buttons
selected
value ofnil
, treating as-1
to clear selected radio button. examples/basic_table_selection.rb
- Fix issue with
examples/lazy_table.rb
not working in Windows due to error: block inapply_windows_fix
: undefined method<<
for#:each
> (NoMethodError
)@cell_rows << new_row
examples/lazy_table.rb
(4 versions) table lazy loading with a million rows viaEnumerator
orEnumerator::Lazy
to enable instant app startup time- Support
table
cell_rows
implicit data-binding to a collection of models (only supported an array of arrays before in implicit data-binding)
- Upgrade to
libui
Ruby gem version 0.1.0.pre.0, which includes a newer C libui alpha release (libui-ng Nov 13, 2022) - Support table
cell_rows
Enumerator
orEnumerator::Lazy
value to do lazy loading of data upon display of rows instead of immediate loading of all table data, thus improving performance of table initial render for very large datasets - Fix issue with
table
progress_bar_column
not getting updated successfully on Windows if there were dual or triple columns before it. - Fix issue with
table
progress_bar_column
not getting updated successfully on Windows if data-binding table to an array of models instead of an array of arrays - Fix issue with
table
checkbox_column
checkbox editing not working in Mac by including a new C libui-ng release - Fix issue with
table
checkbox_text_column
checkbox editing not working in Mac or Windows by including a new C libui-ng release - Update examples/basic_table_checkbox.rb to enable editing checkbox values
- Update examples/basic_table_checkbox_text.rb to enable editing checkbox/text values
- [final] Optimize
table
scrolling performance when having many rows and columns (prevent recalculation ofexpanded_cell_rows
on every cell evaluation). Resolve: #38 - [final]
refined_table
pagination: false
option to disable pagination, but keep filtering. - [final] Fix issue with
Glimmer::LibUI::interpret_color
support for[r, g, b, a]
Array
-based colors, returning[r, g, b]
only without alpha value - [final] Fix issue "Cannot add rows to a table that started empty": #36
- [final]
window
#open
method as alias to#show
- [final]
window
#focused?
read-only property - [final] Document
window
on_focus_changed
listener - [final] Update
examples/basic_child_window.rb
to demoon_focus_changed
andfocused?
- [final]
open_folder
support - [final] examples/control_gallery.rb now includes an "Open Folder" File menu item
- Optimize
table
scrolling performance when having many rows and columns (prevent recalculation ofexpanded_cell_rows
on every cell evaluation). Resolve: #38 refined_table
pagination: false
option to disable pagination, but keep filtering.- Fix issue with
Glimmer::LibUI::interpret_color
support for[r, g, b, a]
Array
-based colors, returning[r, g, b]
only without alpha value
- Fix issue "Cannot add rows to a table that started empty": #36
window
#open
method as alias to#show
window
#focused?
read-only property- Document
window
on_focus_changed
listener - Update
examples/basic_child_window.rb
to demoon_focus_changed
andfocused?
open_folder
support- examples/control_gallery.rb now includes an "Open Folder" File menu item
- Update examples/gp2_notepad.rb to avoid sorting ( thank you @kojix2 )
- Fix issue with
refined_table
crashing whencell_rows
containsnil
values for some of the cells.
- New examples/gp2_notepad.rb
- Update support for
refined_table
column-specific term filtering to do an exact term filtering when entering a double-quoted column value (e.g. first_name:"John Doe")
- Support
refined_table
AND-based filtering by treating multiple words as WORD1 AND WORD2, etc... - Support
refined_table
exact term filtering by surrounding word by double-quotes - Support
refined_table
column-specific term (column_name:term) filtering by concatenating column name (with or without double quotes) with column value (with or without double quotes) using colon - Support
refined_table
filter
option that should be alambda
that acceptstext, query
args and returnstrue
orfalse
for whether thetext
matches thequery
(Glimmer::LibUI::CustomControl::RefinedTable::FILTER_DEFAULT
is the default value)
- Fix issue with selecting a
radio_menu_item
causing a crash when included with other types ofmenu_item
under amenu
- New
refined_table
filter_query
option to set initial filter - Support
refined_table
filter_query=(new_query)
method to enable setting a newfilter_query
programmatically after initial rendering, automatically filtering table content - Support
refined_table
model_array=(new_array)
method to enable setting a newmodel_array
programmatically after initial rendering, automatically filtering byfilter_query
if any - Rename
refined_table
paginated_model_array
attribute torefined_model_array
to represent its paginated filtered model array
CustomWindow.launch(...)
returns the launched application/custom-window (e.g.PaginatedRefinedTable.launch
returns thePaginatedRefinedTable
instance that was automatically constructed)CustomWindow.launched_application
/CustomWindow.launched_custom_window
returns the launched application of a previous.launch
call. This can be useful for rescuing errors and performing cleanup on the view object attributes after.launch
returned.
- Ensure disabling pagination buttons in
refined_table
if page is at beginning or end - Add a "of #{page_count} pages" label after the text control in
refined_table
pagination area - Page count ("of #{page_count} pages" label) can be shown by setting
visible_page_count: true
inrefined_table
options - Correct initial
page
option passed torefined_table
if out of range - If
refined_table
model_array
has no more than a single page of data, then hide pagination buttons
refined_table
custom control that renders atable
with filtering and pagination, thus being able to handle a large data set (e.g. 50,000)- New examples/paginated_refined_table.rb
- Fix an issue with rendering table content changes when the number of rows changes with new content that is not a subset of the old content or a container of it
- Basic Child Window example
- Modify default window closing behavior to autodetect if the window is a child window (not the main window), and if closed, ensure that does not quit the app.
- Accept
true
andfalse
as return values foron_closing
window listener as aliases to1
and0
- Fix issue with rendering table content changes when having many rows
- Upgrade
perfect-shape
gem to 1.0.5 to address Ruby 3.1 issue withmatrix
gem getting extracted from Ruby into a bundled gem
- Upgrade to perfect-shape 1.0.4
- Update examples/shape_coloring.rb with basic drag and drop support
- Support
#move_by(x_delta, y_delta)
(aliastranslate
) method on all shapes andpath
(e.g. useful in drag and drop) - Support
#move(x, y)
method on all shapes andpath
to move to x,y coordinate directly - Support
#min_x
minimum x coordinate of shape/path
(of top-left corner) - Support
#min_y
minimum y coordinate of shape/path
(of top-left corner) - Support
#max_x
maximum x coordinate of shape/path
(of bottom-right corner) - Support
#max_y
maximum y coordinate of shape/path
(of bottom-right corner) - Support
#center_point
(Array
of x,y) center point of shape/path
- Support
#center_x
center x coordinate of shape/path
- Support
#center_y
center y coordinate of shape/path
- Support nesting area mouse listeners underneath shapes directly given the newly added support for the
include?(x, y)
method, which can be used to detect if a mouse event fired for a specific shape - examples/shape_coloring.rb
- Upgrade to glimmer v2.7.3
- Upgrade to perfect-shape v1.0.3
- Support
path
/figure
/shape#contain?
,#include?
, and#bounding_box
methods via perfect-shape algorithms applying the path winding rule (akadraw_fill_mode
)
- Support
code_area
class-based custom control as a code-syntax-highlightedarea
control using therouge
gem examples/basic_code_area.rb
- Handle hex colors that have a 3-digit shorthand
- Stop annoying false negative logs when using
Glimmer::LibUI::CustomWindow
- Support Custom Window keywords (aka Applications) using
Glimmer::LibUI::CustomWindow
or alias ofGlimmer::LibUI::Application
- Refactor examples/class_based_custom_controls.rb to use
Glimmer::LibUI::Application
(alias:Glimmer::LibUI::CustomWindow
)
- Upgrade to glimmer 2.7.1 and document its support for keyed data-binding
- Support class-based custom controls
- examples/class_based_custom_controls.rb example
- Rename examples/method_based_custom_keyword.rb example to examples/method_based_custom_controls.rb
- Upgrade to libui 0.0.15 (with official Mac ARM64 support)
- Update README with Area Animation
spinner
custom control
- Support
figure
bounding_box
(minx, miny, width, height),contain?
method (checking if shape contains point inside) andinclude?
method (checking on outline if stroked and inside if filled?) - Have
path
draw_fill_mode
return:winding
or:alternate
whiledraw_fill_mode_value
returns0
or1
respectively
- Support
polyline
bounding_box
(minx, miny, width, height),contain?
method (checking if shape contains point inside) andinclude?
method (checking on outline if stroked and inside if filled?) - Support
polygon
bounding_box
(minx, miny, width, height),contain?
method (checking if shape contains point inside) andinclude?
method (checking on outline if stroked and inside if filled?) - Support
polybezier
bounding_box
(minx, miny, width, height),contain?
method (checking if shape contains point inside) andinclude?
method (checking on outline if stroked and inside if filled?)
- Support
line
bounding_box
(minx, miny, width, height),contain?
method (checking if shape contains point inside) andinclude?
method (checking on outline if stroked and inside if filled?) - Support
bezier
bounding_box
(minx, miny, width, height),contain?
method (checking if shape contains point inside) andinclude?
method (checking on outline if stroked and inside if filled?)
- Upgrade to libui 0.0.14
- Alter
Shape#contain?
to supportoutline:
anddistance_tolerance:
options as per perfect-shape gem - Support
arc
bounding_box
(minx, miny, width, height),contain?
method (checking if shape contains point inside) andinclude?
method (checking on outline if stroked and inside if filled?) - Support
circle
bounding_box
(minx, miny, width, height),contain?
method (checking if shape contains point inside) andinclude?
method (checking on outline if stroked and inside if filled?)
- Upgrade to glimmer 2.6.0
- Support
rectangle
bounding_box
(minx, miny, width, height),contain?
method (checking if shape contains point inside) andinclude?
method (checking on outline if stroked and inside if filled?) - Support
square
bounding_box
(minx, miny, width, height),contain?
method (checking if shape contains point inside) andinclude?
method (checking on outline if stroked and inside if filled?)
- examples/tetris.rb "Show Next Block Preview" menu item under "View" menu
- examples/tetris.rb "Speed" menu
- Fix issue with examples/tetris.rb not accelerating upon level ups
- Pause via spacebar in examples/snake.rb (all versions)
- Upgrade to glimmer 2.5.5
- New examples/area_based_custom_controls.rb
- Fix issue with calling
destroy
multiple times on children ofvertical_box
/horizontal_box
/form
(worked only the first time before this fix)
- Have
line
optionally support 4 arguments instead of 2 to use outside of afigure
- Have
bezier
optionally support 8 arguments instead of 6 to use outside of afigure
- Minor fix to
observe
keyword code (had the wrong DSL name)
- Support setting
table
cell_rows
after thetable
definition completed (e.g.@table.cell_rows = data
aftertable {}
curly braces closed already) - Support adding to
table
cell_rows
piecemeal after thetable
definition completed (e.g.data.each { |row| @table.cell_rows << row }
aftertable {}
curly braces closed already) - Support notifying observers of control property changes when calling the
set_attribute
version of attribute writers, not justattribute=
- Hide background field in examples/custom_draw_text.rb on Windows since it is not supported there
- Fix issue with
quit_menu_item
click resulting in a stack overflow on Windows
- Remove Windows workaround of always adding an extra row at the bottom of
table
as it is no longer necessary after adding a better workaround (on Windows, add & remove row just after constructingtable
to get rid of double-delete glitch) - Improved parsing code of examples/cpu_percentage.rb for Windows to make it more resilient
- Upgrade to glimmer 2.5.3 to silently ignore frozen observables with
observe(*args, ignore_frozen: true)
- Added equalizer gem dependency to properly provide equality methods for
Glimmer::LibUI::ControlProxy::ImageProxy
- Upgrade to glimmer 2.5.1
- Fix issue on Windows with
table
having image column crashing when empty
- Support ability to attach multiple listeners on a control (e.g. multiple
on_changed {}
onentry
or multipleon_clicked
onbutton
) - Ensure clearing custom listeners on
#destroy
of a control - Add
on_destroyed
as alias foron_destroy
listener onwindow
- Avoid wasting time on
destroy
of a control (e.g. freeing resources) when the main window is getting destroyed, thus closing entire application instantaneously - Have validation in examples/form_table.rb complain about nil values (no value entered)
- Fix Reset button in examples/meta_example.rb when on a version other than version 1
- Fix issue with calling
#destroy
onopen_type_features
- Support passing width or height alone to
image
keyword, calculating the other dimension automatically while preserving original aspect ratio - Support passing x and y coordinates to
image
keyword as 2nd and 3rd arguments of 5 arguments (file, x, y, width, height) - Support passing x, y, width, height to
image
keyword as options kwargs
- Shorten height of examples/cpu_percentage.rb
- Optimize
table
image
object by caching for multiple images sharing the same arguments
- Support
table
data-binding to model rows when utilizing dual-columns or triple-columns (e.g. columns having color and/or a checkbox in addition to text) - Support passing
table
image
/image_text
cell_rows
image
data as file path/image args directly (without usingimage
keyword) - Add examples/basic_table_color.rb version that data-binds to model rows instead of raw data
- Simplify examples/basic_table_color.rb to pass image data as file-path/width/height arguments directly
- Simplify examples/basic_table_image.rb to pass image data as file url directly
- Simplify examples/basic_table_image_text.rb to pass image data as file url directly
- Fix issue with hex color support for colors starting with
'#'
- Support
table
cell_rows
explicit bidirectional data-binding (with<=>
sign) - Support
table
cell_rows
explicit bidirectional data-binding with model-based rows (notArray
s of column cells) by expecting model attributes to match underscored column names - Support specifying
column_attributes
asHash
map (e.g.{'State/Province' => :state}
) intable
cell_rows
explicit bidirectional data-binding with model-based rows (notArray
s of column cells) - Support specifying
column_attributes
asArray
(e.g.[:name, :email, :phone, :city, :state]
) intable
cell_rows
explicit bidirectional data-binding with model-based rows (notArray
s of column cells) - Ensure
post_add_content
is not called on controls and shapes during Shine syntax data-binding - Improve examples/basic_table_button.rb with bidirectional data-binding for
table
cell_rows
- Improve examples/form_table.rb with bidirectional data-binding for
table
cell_rows
- Ensure examples/meta_example.rb has examples sorted
- Fix minor issue in examples/meta_example.rb by deselecting radio in basic examples when selecting an advanced example (and vice versa)
- examples/cpu_percentage.rb
- Bring back non-data-binding versions of examples/snake.rb and examples/tic_tac_toe.rb for educational purposes
- Support unidirectional data-binding on all control properties that support bidirectional data-binding
- Fix issue in examples/snake.rb with double-turn causing instant death due to snake illogically going back against itself
- Support
checkbox
checked
bidirectional data-binding (with<=>
sign) - Support
check_menu_item
checked
bidirectional data-binding (with<=>
sign) - Support
radio_menu_item
checked
bidirectional data-binding (with<=>
sign) - Support
radio_buttons
selected
property bidirectional data-binding (with<=>
sign) - Improve examples/tetris.rb with bidirectional data-binding for
check_menu_item
/radio_menu_item
checked
- Update default dimensions of Meta-Example to
1000x500
- Fix minor issue with Meta-Example selecting first radio button in Advanced examples despite it not being the truly selected example on launch of the app (now, it starts explicitly deselected)
- Fix minor issue with Meta-Example showing basic examples as advanced
- Support
date_time_picker
/date_picker
/time_picker
time
bidirectional data-binding (with<=>
sign) - Support
combobox
selected
/selected_item
bidirectional data-binding (with<=>
sign) - Support
editable_combobox
text
bidirectional data-binding (with<=>
sign) - Improve examples/date_time_picker.rb with bidirectional data-binding for
date_time_picker
time
- Improve examples/midi_player.rb with bidirectional data-binding for
combobox
selected
/selected_item
- Support
slider
value
bidirectional data-binding (with<=>
sign) - Support
color_button
color
bidirectional data-binding (with<=>
sign) - Support
font_button
font
write-only unidirectional data-binding (with<=>
sign) - Improve examples/color_button.rb with bidirectional data-binding for
color_button
color
- Improve examples/histogram.rb with bidirectional data-binding for
color_button
color
- Improve examples/font_button.rb with bidirectional data-binding for
font_button
font
- Support
spinbox
value
bidirectional data-binding (with<=>
sign) - Improve examples/dynamic_area.rb with bidirectional data-binding for
spinbox
value
- Improve examples/histogram.rb with bidirectional data-binding for
spinbox
value
- Improve examples/timer.rb with bidirectional data-binding for
spinbox
value
- Fix issue with data-binding shapes and attributed strings, which broke Snake and Tic Tac Toe examples
- Support
entry
text
bidirectional data-binding (with<=>
sign) - Support
search_entry
text
property bidirectional data-binding (with<=>
sign) - Support
multiline_entry
text
property bidirectional data-binding (with<=>
sign) - Support
non_wrapping_multiline_entry
text
property bidirectional data-binding (with<=>
sign) - Improve examples/basic_entry.rb with bidirectional data-binding for
entry
text
- Improve examples/form.rb with bidirectional data-binding for
entry
text
- Improve examples/form_table.rb with bidirectional data-binding for
entry
text
- Improve examples/login.rb with bidirectional data-binding for
entry
text
- Improve examples/method_based_custom_keyword.rb with bidirectional data-binding for
entry
text
- Improve examples/meta_example.rb with bidirectional data-binding for
non_wrapping_multiline_entry
text
- examples/button_counter.rb (takes advantage of unidirectional data-binding)
- Ensure that upon re-opening
#content {}
ofarea
,path
, shapes,image
,table
,text
, and general controls,post_add_content
initialization is prevented from running multiple times where inappropriate. - Document
LibUI
API methods - Fix issue with examples/meta_example.rb showing more versions in counts than available
- Document
observe
keyword - Document unidirectional data-binding in more detail (like
:before_read
,:on_read
, and:after_read
options) - Simplify examples/tetris.rb with
observe
keyword - Simplify examples/method_based_custom_keyword.rb with
observe
keyword - Simplify examples/color_the_circles.rb with
observe
keyword - Simplify examples/snake.rb with
observe
keyword
- Upgrade to LibUI 0.0.13
- Support general control/shape/attributed_string property unidirectional data-binding (with
<=
sign or<=>
) - Support
observe
DSL keyword for simple model observation outside of GUI (e.g.observe(model, attribute) { do_something }
) - Simplify examples/snake.rb with data-binding and make smaller (20x20) to be more challenging and fun
- Simplify examples/tic_tac_toe.rb with data-binding
- Fix issue with
Shape#redraw
method callingAreaProxy#auto_redraw
instead ofAreaProxy#redraw
- Fixed Area Gallery example (all versions) after a recent refactoring broke it
- New examples/basic_scrolling_area.rb
- Smart defaults for
scrolling_area
control + conveniencewidth
andheight
attributes - Simplify examples/basic_area.rb (all versions) by nesting shapes directly under
area
- Support
#content {}
method infigure
to be able to reopen afigure
's content to add more shapes in.
- Support nesting shapes directly under
area
to represent paths having one shape, and nestingfill
/stroke
within the shapes (notpath
) - Simplify examples/area_gallery.rb (all versions) by nesting shapes directly under
area
- Simplify examples/basic_transform.rb by nesting shapes directly under
area
(and provide original version as 2nd version) - Simplify examples/color_the_circles.rb by nesting shapes directly under
area
- Simplify examples/dynamic_area.rb (all versions) by nesting shapes directly under
area
- Simplify examples/histogram.rb (all versions) by nesting shapes directly under
area
- Simplify examples/tetris.rb by nesting shapes directly under
area
- Simplify examples/tic_tac_toe.rb by nesting shapes directly under
area
- Simplify examples/snake.rb by nesting shapes directly under
area
- Add a second tab to examples/meta_example.rb to fit more examples
- Upgrade glimmer to 2.5.0
- Fix issue in examples/tic_tac_toe.rb permitting change of symbol in marked area
- Update Style Guide and add an example for each bullet point
- Fix issue with attempting to free
image
as an object from memory by mistake when used as a control (not an object fortable
)
- Support building
image_column
image
objects in atable
viafile
property (simplify through automation of use ofimage_part
for.png
image files given thatchunky_png
is now included in the gem) - Support Web URL as
image
controlfile
property - Add
key_code
as alias tokey_value
inarea_key_event
Hash
- Fix issue with editing
text_color_column
intable
havingeditable true
property - Fix issue with editing
checkbox_text_column
text intable
havingeditable true
oreditable_text true
property
- Upgrade to glimmer 2.4.1
- Add
chunky_png
gem to support.png
images natively - New
image
Glimmer custom control that can be nested underarea
to render an image (it is not part of LibUI, so it has some performance caveats, but is better than nothing and is fast with smaller image width/height)
- Support hex colors as
String
with'#'
prefix (e.g. '#ffaa92')
- Improve examples/tetris.rb by having high score dialog pause the game if running and resume after closed
- Adjust Area Gallery example text size to 11 in Windows/Linux
- Fix
Glimmer::LibUI::timer {}
behavior so that the block return value will not affect repetition outcome if it isInteger
(only Booleans affect it) - Fix Tetris down button for Windows (it was going too fast before making tetrominos invisible before they hit the bottom)
- Fix Tetris double-downs (or multiple downs) happening after game over (it was firing an additional down timer after game over by mistake before)
- Fix Tetris by prechecking Turn Left on Up radio menu item since it is the one selected upon launch of the game
- Fix Tic-Tac-Toe text-size for Windows/Linux
- examples/snake.rb implemented test-first
- examples/tic_tac_toe.rb
Glimmer::LibUI::enum_names
provides all possible enum names to use withGlimmer::LibUI::enum_symbols(enum_name)
- Document all
Glimmer::LibUI
custom operations - Fix issue with retrieving
Glimmer::LibUI::enum_symbols
for:at
enum name
- Improve examples/tetris.rb with menus, high score dialog, and options
- Prevent examples/tetris.rb
window
from being resized - Support
window
resizable
property (resizable false
means one cannot resizewindow
) - Support calling
window.content_size = [x, y]
as an alternative towindow.set_content_size(x, y)
- Fix issue with hooking
on_content_size_changed
listener towindow
- Fix issue with using
window
content_size
property getter
- Improve examples/tetris.rb with a score board (indicating next Tetromino, score, level, and lines)
- Add instant down action to examples/tetris.rb upon hitting the space button
- Support
polygon
(closed figure of lines),polyline
(open figure of lines), andpolybezier
(open figure of beziers) shape keywords to use underpath
- Improve examples/tetris.rb with bevel block 3D look and restarting upon game over
- Update examples/area_gallery.rb to add uses of
polygon
,polyline
, andpolybezier
- Refactor examples/histogram.rb to utilize new
polygon
andpolyline
keywords - Support
area
request_auto_redraw
,pause_auto_redraw
, andresume_auto_redraw
, operations, andauto_redraw_enabled
property.
- Tetris example - basic version with simple color squares
- Document all examples with Windows screenshots
- Fix examples/basic_transform.rb issue on Windows where it shows an uncentered different graphic than what is shown on Mac and Linux
- Make examples/meta_example.rb output catch up more quickly with event puts statements
- Fix examples/color_the_circles.rb on Windows (it was crashing upon losing)
- Revise examples/meta_example.rb to avoid blocking upon launching examples, thus permitting launching multiple examples at the same time
- Automatically provide shifted
:key
characters inarea_key_event
provided inarea
key listenerson_key_event
,on_key_down
, andon_key_up
given that libui does not support out of the box (e.g.!
for SHIFT+1) - Support
message_box
as an alias formsg_box
(andmessage_box_error
formsg_box_error
too) - Tolerate
nil
input for any widgetString
attributes (e.g.entry
text
attribute) - Fix issue regarding
arc
s andcircle
s on Windows by auto-starting a figure if not started already (on Mac and Linux that is not needed) - Fix Color The Shapes (Circles) and rename back to Color The Circles due to fixing
circle
support on Windows
- Rename examples/color_the_circles.rb to examples/color_the_shapes.rb to fix/make compatible with Windows by rendering only Squares on Windows, but Squares and Circles on Mac/Linux
- Fix examples/basic_table_button.rb double-deletion issue on Windows via a temporary workaround (generating an extra empty row on Windows only)
- Fix examples/basic_table_checkbox.rb , examples/basic_table_checkbox_text.rb , and examples/basic_table_color.rb on Windows
- Fix examples/basic_table_progress_bar.rb crash due to an issue on Windows when switching from -1 to a positive value
- Fix examples/area_gallery.rb (all its versions) by disabling arc/circle on Windows where they don't work due to issue in libui
- Fix girb on Windows
- Removed redundant
table
on_change notification - Fix issue with supplying a font without all its keys (e.g. missing
:weight
) to attributedstring
nested undertext
, tolerating missing font keys. - Fix issue with examples/color_the_circles.rb when clicking outside the playing area causing this error:
examples/color_the_circles.rb:82:in `block in color_circle': undefined method `include?' for nil:NilClass (NoMethodError)
from examples/color_the_circles.rb:81:in `each'
from examples/color_the_circles.rb:81:in `find'
from examples/color_the_circles.rb:81:in `color_circle'
from examples/color_the_circles.rb:212:in `block (4 levels) in launch'
- Upgrade to glimmer 2.4.0
- Upgrade to LibUI 0.0.12
- Support passing
string
value as an argument to attributedstring
keyword - Support setting
string
value as a property on attributedstring
keyword (automatically redrawing)
- Fix issue with running examples that rely on local assets from gem (they work fine from locally cloned project)
- Fix issue with not showing puts output in Basic Table Button and Editable Table examples when run from Meta Example
- New examples/method_based_custom_keyword.rb
- Update examples/form.rb to have two more fields
- Update color_button example to show how to preset initial color
- Support
path
fill
/stroke
:type
of:linear_gradient
- Support
path
fill
/stroke
:type
of:radial_gradient
- Add text to Area Gallery examples
- Update variable names in examples/meta_example.rb to be more meaningful
- Update examples/meta_example.rb to show terminal/command-line output for run examples
- Upgrade to glimmer 2.3.0
- Use glimmer 2.3.0 to support automatic table row change when performing a direct deep row/column update in
cell_rows
(e.g.data[3][0] = 'new value'
) as opposed to a general shallow row update (e.g.data[3] = ['new value', 'other new value']
<- already supported)
- Support
table
on_changed
listener to report all changes (of operation type:deleted
,:changed
,:inserted
) - Support
table
on_edited
listener to report changes happening through direct table editing only - Default value of
text
width
argument looks into x and adjusts by leaving the same space on the right side
- New examples/basic_table_color.rb
- Support
background_color_column
fortable
- Support
text_color_column
fortable
- Support
checkbox_text_color_column
fortable
- Support
image_text_color_column
fortable
- Support
string
control property:open_type_features
- Auto-free attributed string objects from memory
- Support attributed
string
underline_color
property (built-in enum symbols and custom color)
- Support examples/custom_draw_text.rb
- Support stable
text
control nestable underarea
- Support
string
control property:background
- Support
string
control property:font
- Support
string
control property:underline
- Enhance
combobox
to acceptString
value forselected
item instead of justInteger
index - Add
selected_item
read-only property tocombobox
to return selected itemString
value - Fix
color
property support forstring
to accept 255-based rgb values - Fix issue with alternating string colors in examples/basic_draw_text.rb
- Update examples/midi_player.rb to read sounds locally from gem
- Support examples/basic_draw_text.rb
- Support dynamic
text
control to be called inarea
on_draw
listener - Support
text
controldefault_font
property - Support
string
control nestable undertext
to represent an attributed/unattributed string (depending on nestable properties) - Support
string
control property:color
- Support enum symbols for
align
property oftext
control - Support enum symbols for
:italic
font descriptor key (in addition to numbers) - Support enum symbols for
:stretch
font descriptor key (in addition to numbers) - Support enum symbols for
:weight
font descriptor key (in addition to numbers)
- Automatically add
vertical_box
parent toarea
if it did not have a box parent (otherwise, it seems not to show up on Linux, even when directly undergrid
)
- Have examples/timer.rb show
msg_box
on finish - Have examples/color_the_circles.rb push colored circles when colored behind uncolored circles to keep uncolored circles visible
- Fix non-blocking dialog issue on Linux with examples/color_the_circles.rb
- Support all
LibUI
methods throughGlimmer::LibUI
(with some enhanced, liketimer
andqueue_main
, which accept blocks)
- Support examples/timer.rb
- Support examples/color_the_circles.rb
- Support
timer
andqueue_main
with simple blocks throughGlimmer::LibUI.timer(time_in_seconds=0.1, repeat: true, &block)
andGlimmer::LibUI.queue_main(&block)
- Support
radio_menu_item
(similar tocheck_menu_item
, but auto-unchecks siblingradio_menu_item
s when checked) - Support degrees for arc arguments (instead of radians)
- Support
circle
shape and use in examples/area_gallery.rb (all versions) - Support
Glimmer::LibUI.x11_colors
to obtain all available X11 color symbols - Support
#include?
method incircle
,rectangle
, andsquare
to test containment of a pointx
,y
coordinates
- New examples/login.rb
- Amend examples/form_table.rb with use of a
search_entry
to support table filtering - Support
password_entry
control - Support
search_entry
control - Fix issue with setting control
enabled
property
- Upgrade to glimmer 2.2.1
- Add a 3rd tab to examples/grid.rb showcasing the halign and valign properties
- Support
grid
halign
/valign
symbol values of:fill
(default),:start
,:center
,:end
- Add
key_value
toarea_key_event
Hash
- Add
ext_key_value
toarea_key_event
Hash
- Support
area
listener:on_key_event
- Support
area
listener:on_key_down
- Support
area
listener:on_key_up
- Support
area
listener:on_mouse_event
- Support
area
listener:on_mouse_down
- Support
area
listener:on_mouse_up
- Support
area
listener:on_mouse_drag_start
- Support
area
listener:on_mouse_drag
- Support
area
listener:on_mouse_drop
- Support
area
listener:on_mouse_crossed
- Support
area
listener:on_mouse_enter
- Support
area
listener:on_mouse_exit
- Support
area
listener:on_drag_broken
- Support
stroke
:dashes
and use in examples/area_gallery.rb - Support symbol values for draw_line_cap (
:round
,:square
,:flat
) and draw_line_join (:miter
,:round
,:bevel
) and draw_fill_mode (:winding
and:alternate
)
- Update default
window
width
to190
- Improve layout of examples/meta_example.rb
- Enhance examples/meta_example.rb to enable choosing versions with a spinbox instead of adding them to examples list
- Nest control proxies under
Glimmer::LibUI::ControlProxy
namespace - Nest shapes under
Glimmer::LibUI::Shape
namespace - Nest
vertical_box
andhorizontal_box
underGlimmer::LibUI::ControlProxy::Box
namespace - Nest columns under
Glimmer::LibUI::ControlProxy::Column
namespace - Nest menu item proxies under
Glimmer::LibUI::ControlProxy::MenuItemProxy
namespace - Nest date time picker proxies under
Glimmer::LibUI::ControlProxy::DateTimePickerProxy
namespace - Nest multiline entry proxies under
Glimmer::LibUI::ControlProxy::MultinlineEntryProxy
namespace - Support
time_picker
control explicitly - Support X11 color names (via color gem)
- Support passing :red, :green, :blue, :alpha keys to fill/stroke (not just :r,:g,:b,:a)
- Support 3-number hex color shorthand
- Support ability to set fill/stroke to x11/Integer/String color directly (e.g.
fill 'steelblue'
, optionally with extra hash key/value pairs e.g.fill 0x238232, a: 0.5
) - Support ability to set color_button.color to {color: x11/Integer/String}
- Default main_window_proxy first argument for
msg_box
/msg_box_error
(and empty strings for following args if not passed) - Default main_window_proxy argument for
open_file
andsave_file
- Support examples/histogram.rb
- Support examples/basic_transform.rb
- Support
color_button
color=
/set_color
setter - Switch
color_button
color
API to return a hash of{:r, :g, :b, :a}
instead of an array for consistency with other libui APIs (like fill and stroke brush) - Implement
color_button
fine-grained setters (e.g.cg.red = 144
) - Support hex colors in
color_button
(by passing an Integer 0xFFBBAA or String hex 'ffbbaa') andpath
fill
andstroke
(with:color
key) - Eliminate need for passing
area_draw_params
topath
when declared underneatharea
on_draw
listener - Support
path
transform
property for buildingmatrix
objects (either throughpath { transform {operations} }
directly or throughm1 = matrix {operations}; path { transform m1 }
to reuse a matrix) - Support
area
transform
property for buildingmatrix
objects (either througharea { transform {operations} }
directly or throughm1 = matrix {operations}; area { transform m1 }
to reuse a matrix) - Ensure
matrix
rotate
method accepts degrees (not radians) - Support
matrix
multiply
method that accepts aGlimmer::LibUI::MatrixProxy
object - Support
matrix
invertible?
property that returns a Boolean - Automatically reparent an
area
that is added directly underwindow
withvertical_box
. This fixes issue with display ofarea
added directly underwindow
in Linux.
- Update examples/basic_table_progress_bar.rb with a listener
- Set default values for shape parameters and support passing shape parameters as properties inside their body (e.g.
rectangle {x 2; y 3; width 400; height 800}
) - New examples/area_gallery2.rb (utilizing properties instead of args)
- New examples/area_gallery3.rb (semi-declarative on_draw dynamic paths)
- New examples/area_gallery4.rb (utilizing properties instead of args with semi-declarative on_draw dynamic paths)
- New examples/area_gallery.rb
- Support
figure(x = nil, y = nil) {}
(draw_path_new_figure
) - Support
closed true
property inside nested figure (draw_path_close_figure
) - Support
line
- Support
bezier
- Support
arc
(draw_path_arc_to
ifdraw_path_new_figure
was called already ordraw_path_new_figure_with_arc
if parent is a figure without x,y) - Support
square
withx
,y
, andlength
properties
- Support re-opening a control by using
#content {...}
- Ensure destroying
path
/rectangle
after drawing if it is declared insideon_draw
- Observe
path
fill
andstroke
hashes for changes and automatically redraw area accordingly - New examples/dynamic_area2.rb (using stable paths)
- Support
area
listener:on_draw
- New examples/basic_area2.rb
- Support examples/basic_area.rb
- Support
area
control - Support
path(fill_mode)
control - Support
rectangle(x, y, width, height)
figure - Support
path
fill
property - Support
path
stroke
property
- Support automatic table row change when updating a row in
cell_rows
(e.g.data[3] = ['new', 'row', 'cell', 'values']
) - Support
editable
property forcheckbox_column
(checkbox editing only works in Windows due to a libui limitation) - Support
editable
,editable_checkbox
, andeditable_text
properties forcheckbox_text_column
(checkbox editing only works in Windows due to a libui limitation) - Fix examples/basic_table_checkbox_text.rb by removing
editable
property
- New examples/form_table.rb
- Support automatic table row insertion upon inserting data rows into
cell_rows
- New examples/basic_table_progress_bar.rb
- Support table
progress_bar_column
- New examples/basic_table_checkbox_text.rb
- Support table
checkbox_text_column
- New examples/basic_table_checkbox.rb
- Support table
checkbox_column
- Improve support for table row deletion upon actual
cell_rows
deletion by handling multiple-row deletion not just single-row deletion
- Have
image
not requirewidth
andheight
if it only has oneimage_part
(defaults toimage_part
width
andheight
) - Upgrade to LibUI version 0.0.10
- New examples/basic_table_button.rb
- Support table
button_column
- Support table
button_column
enabled
property - Support
on_clicked
listener forbutton_column
- Support automatic table cell value reading management (table row deletion upon actual
cell_rows
deletion due to implicit data-binding)
- New examples/editable_column_table_image_text.rb
- Support table
image_text_column
- New examples/editable_column_table.rb
- Support
editable
property fortext_column
- New examples/editable_table.rb
- Support editable
table
control - Fix issue with table
text_column
repeating the first column as the second
- Support examples/basic_table_image.rb
- Support table
image_column
- Support
image
andimage_part
for building images from rgba byte arrays - Rename
Glimmer::LibUI::ControlProxy.all_control_proxies
toGlimmer::LibUI::ControlProxy.control_proxies
- Add
Glimmer::LibUI::ControlProxy.image_proxies
- Support examples/basic_table.rb
- Support non-editable
table
control - Support table
text_column
- Support table
cell_rows
property as anArray
(rows) ofArray
s (row columns) of cell values
- Support ability to instantiate without args and set args as properties afterwards inside block (e.g.
window { title 'Greeter'; content_size 300, 400; button {text 'Greet'; on_clicked {puts 'Hi'}} }
)- window (was supported before, but changed default title to empty string)
- button
- checkbox
- group
- label
- New examples/form.rb
- Support
form
control and child attributes ofstretchy
andlabel
- Smart defaults for
form
child attributesstretchy
(true
) andlabel
(''
)
- New examples/grid.rb
- Support
grid
control and child attributes ofleft
,top
,xspan
,yspan
,hexpand
,halign
,vexpand
, andvalign
- Smart defaults for
grid
child attributesleft
(0
),top
(0
),xspan
(1
),yspan
(1
),hexpand
(false
),halign
(0
),vexpand
(false
), andvalign
(0
)
- Support examples/date_time_picker.rb
- Support
date_time_picker
,date_picker
, andtime_picker
controls havingtime
/time=
/set_time
property
- Have examples/meta_example.rb allow code editing to enable experimentation and learning
- Fix issue with examples/meta_example using puts_debuggerer (a development gem)
- New examples/basic_color.rb
- Support
color_button
color
property - Proper destroy of controls (deleting from parent
box
,window
, orgroup
first) - On the Mac only, if no menu is specified, add a Quit menu item automatically to allow quitting with CMD+Q
- Support examples/font_button.rb
- Support
font_button
control - Add File -> Quit menu item to examples/meta_example.rb
- Glimmer Style Guide added to README.md
- Build a meta-example (example of examples)
- Add
?
suffixed aliases to all boolean property methods - Make C bool properties return boolean in Ruby (not
1
or0
) - Support passing boolean values to C bool properties in addition to
1
or0
- Support passing boolean values to C bool constructor args in addition to
1
or0
- Update all examples to utilize booleans
- Make
window
propertiestitle
='Glimmer'
,content_size
=150
,150
&has_menubar
=1
if not specified as args in constructor - Have string properties (e.g.
text
andtitle
) returnString
not fiddle pointer
- Make
padded 1
the default inhorizontal_box
andvertical_box
to achieve nicer looking GUI by default - Make
margined 1
the default ingroup
to achieve nicer looking GUI by default - Destroy main window upon hitting quit on quit menu item
- Rename
ControlProxy::all_controls
toControlProxy::all_control_proxies
to more accurately describe its contents - Add
ControlProxy::main_window_proxy
method to retrieve main window proxy - Define a
#window_proxy
method onControlProxy
to retrievewindow
control proxy for any control
- Make listener block provide Ruby proxy object as optional argument (not Fiddle pointer)
- Handle
tab_item
scenario where it has an empty block or no block (auto-generate emptyhorizontal_box
content as a smart default to avoid crashing) - Support
non_wrapping_multiline_entry
propeties/operations viaLibUI.multiline_entry_*
methods (enhancing them to accept Ruby objects in addition to pointers) - Support splatting
items
array forradio_buttons
,editable_combobox
, andcombobox
items - Fix issue with
menu_item
on_clicked
listeners crashing in examples/control_gallery.rb due to garbage collection
- Support examples/control_gallery.rb
- Support
open_file
andsave_file
- Support
quit_menu_item
withon_clicked
listener - Support
preferences_menu_item
andabout_menu_item
- Support
check_menu_item
andseparator_menu_item
- Support
enabled=
&set_enabled
on all controls (makingenabled
property read/write by relying onenable
/disable
operations) - Support
visible=
&set_visible
on all controls (makingvisible
property read/write by relying onshow
/hide
operations) - Support
horizontal_box
andvertical_box
propeties (padded
) & operations (append
,delete
) viaLibUI.box_*
methods - Support
editable_combobox
,radio_buttons
, andgroup
- Support
tab
andtab_item
- Fix issue with always setting menu item text to 'Version' (correctly set to passed argument instead)
- Support examples/midi_player.rb
- Support
combobox
items
attribute to append text value array declaratively - Support
menu
andmenu_item
controls
- Support examples/simple_notepad.rb
- Support
vertical_box
andhorizontal_box
- Support examples/basic_entry.rb
- LibUI general control and window support
- LibUI listener support
- LibUI property support
- girb (Glimmer IRB)
- Support examples/basic_window.rb
- Support examples/basic_button.rb