Glimmer DSL for SWT v4.18.5.0 Release Notes

    • ๐Ÿ”€ Automatic sync_exec usage from threads other than the GUI thread, thus absolving software engineers from the need to use sync_exec explicitly anymore.
    • ๐Ÿ”€ auto_exec keyword to automatically use sync_exec with SWT code when needed (running from a thread other than GUI thread)
    • ๐Ÿ”€ Implement sync_exec: option in bind keyword with table, tree, combo, and list data-binding (other data-binding types than the standard)
    • Add async_exec option to bind keyword (covering data_binding_expression.rb with async_exec properly)
    • ๐Ÿ‘Œ Support tree multi-selection data-binding
    • Hello, Tree! sample
    • โœจ Enhance Hello, Canvas! with Shape Movement
    • โž• Add Jars.lock to scaffold .gitignore file
    • โž• Add Glimmer::GUI alias for Glimmer::UI module, thus permitting inclusion of Glimmer::GUI::CustomWidget, Glimmer::GUI::CustomShell, and Glimmer::GUI::CustomWindow
    • Provide a quick method for grabbing all available cursor/color options off of SWTProxy (SWTProxy.cursor_options, SWTProxy.cursor_styles, SWTProxy.color_options, SWTProxy.color_styles)
    • โœ‚ Remove explicit git gem dependency given that it is installed via juwelier during scaffolding and is not needed otherwise
    • ๐Ÿ‘Œ Support partial image shape drawing by passing source and destination dimensions to image shape [documented in docs]
    • ๐Ÿ‘Œ Support alternate Canvas Shape DSL syntax for image by passing nested properties
    • ๐Ÿ‘ Canvas Shape DSL argument data-binding support for image
    • ๐Ÿ‘Œ Support alternate Canvas Shape DSL syntax for rectangle by passing nested properties
    • ๐Ÿ‘ Canvas Shape DSL argument data-binding support for rectangle(x, y, width, height, fill: false) standard rectangle, which can be optionally filled
    • ๐Ÿ‘ Canvas Shape DSL argument data-binding support for rectangle(x, y, width, height, arcWidth = 60, arcHeight = 60, fill: false, round: true) round rectangle, which can be optionally filled, and takes optional extra round angle arguments
    • 0๏ธโƒฃ Canvas Shape DSL argument data-binding support for rectangle(x, y, width, height, vertical = true, fill: true, gradient: true) gradient rectangle, which is always filled, and takes an optional extra argument to specify true for vertical gradient (default) and false for horizontal gradient
    • ๐Ÿ‘ Canvas Shape DSL argument data-binding support for arc(x, y, width, height, startAngle, arcAngle, fill: false) arc is part of a circle within an oval area, denoted by start angle (degrees) and end angle (degrees)
    • ๐Ÿ‘ Canvas Shape DSL argument data-binding support for focus(x, y, width, height) this is just like rectangle but its foreground color is always that of the OS widget focus color (useful when capturing user interaction via a shape)
    • ๐Ÿ‘ Canvas Shape DSL argument data-binding support for line(x1, y1, x2, y2) line
    • ๐Ÿ‘ Canvas Shape DSL argument data-binding support for oval(x, y, width, height, fill: false) oval if width does not match heigh and circle if width matches height. Can be optionally filled.
    • ๐Ÿ‘ Canvas Shape DSL argument data-binding support for point(x, y) point
    • ๐Ÿ‘ Canvas Shape DSL argument data-binding support for polygon(pointArray, fill: false) polygon consisting of points, which close automatically to form a shape that can be optionally filled (when points only form a line, it does not show up as filled)
    • ๐Ÿ‘ Canvas Shape DSL argument data-binding support for polyline(pointArray) polyline is just like a polygon, but it does not close up to form a shape, remaining open (unless the points close themselves by having the last point or an intermediate point match the first)
    • Canvas Shape DSL argument data-binding support for text(string, x, y, flags = nil) text with optional flags (flag format is swt(comma_separated_flags) where flags can be :draw_delimiter (i.e. new lines), :draw_tab, :draw_mnemonic, and :draw_transparent as explained in GC API)
    • โšก๏ธ Update Hello, Button!, Hello, Table! sample, Hello, Checkbox Group! sample, Hello, Radio Group! sample, Hello, Combo! sample, Hello, List Single Selection! sample, Hello, List Multi Selection! sample to utilize a CustomShell
    • ๐Ÿ”จ Refactor all samples to rely on Glimmer::UI::CustomShell given its new class launch method for productive app declaration
    • ๐Ÿ›  Fix issue with logging remaining async in debug mode
    • ๐Ÿ›  Fix issue with combo, list, radio group, and checkbox group not supporting nested data-binding