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.
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();
| 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
Use p6doc: e.g. p6doc Libui::Button
Examples:
Controlgallery Tab: Basic Controls
Linux
./examples/controlgallery-linux.png
Windows
./examples/controlgallery-windows.png
Macos
./examples/controlgallery-macos.png
License
Artistic License 2.0
Author
Travis Gibson