Libui ===== Perl6 binding to [andlabs/libui](https://github.com/andlabs/libui) ------------------------------------------------------------------ andlabs/libui is currently alpha software. This binding works with the current release, 0.4.1. It does not have full functionality, and is subject to change as andlabs/libui changes underneath it. The raw bindings accessible in Libui::Raw should be feature-complete, but only some widgets have an object-oriented implementation. ### Cross-platform: Windows, Mac, Linux This library provides an object-oriented interface to libui. Shared libraries ui.dll, libui.dylib, and libui.so are provided in resources. #### Windows Windows requires a 64-bit Visual C++ Redistributable to properly function. #### Linux Linux requires GTK3. Debian: `apt install libgtk-3-0` ### Basic Use: use Libui; Libui::Init; my Libui::App $app .= new("test"); #This allows the window to be closed #when the titlebar's close button is clicked $app.window.closing.tap({$app.exit}); $app.run(); ### Widgets Provided:
Widget Description
Button A button with a label
Checkbox A checkbox with a label
Combobox A simple combobox
ColorButton A button for selecting a color
EditableCombobox A combobox that can be edited
Entry Text input, can be disabled
FontButton A button for selecting a font (Incomplete: Cannot set programmatically)
Form A container that takes labels for its contents
Grid A container that aligns widgets for window design
Group A container that provides a title for a set of items
Label Displays a single line of text
Menu Creates a single column of an application menu
MultilineEntry An entry that allows multiple lines
Time and Date Pickers Allows choosing of a date and/or time
ProgressBar Displays a progress bar
RadioButton A set of radio buttons
Separator A simple vertical or horizontal separator
Slider A draggable slider for choosing a value in a range
Spinbox A numerical input with a minimum and maximum range
Tab A set named tabs for placing items in
Window Contains any other widget, cannot be embedded in a container
VBox, HBox A vertical or horizontal box for grouping items
#### Install from CPAN with: `zef install Libui` #### Documentation View on the web: [https://github.com/Garland-g/perl6-libui/wiki](https://github.com/Garland-g/perl6-libui/wiki) Use p6doc: e.g. `p6doc Libui::Button` Examples: --------- ### Controlgallery Tab: Basic Controls #### Linux [./examples/controlgallery-linux.png](./examples/controlgallery-linux.png) #### Windows [./examples/controlgallery-windows.png](./examples/controlgallery-windows.png) #### Macos [./examples/controlgallery-macos.png](./examples/controlgallery-macos.png) ### License [Artistic License 2.0](./LICENSE) ### Author Travis Gibson