Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
v1.0.0 - 2026-07-25
This is the first version with all of libui-ng's full widget set.
Added
- New examples in
eg/:timer.pl- demonstratesuiTimerby printing timestamps every secondhello_world.pl- minimal "Hello, World!" windowcontrolgallery.pl- port of the upstream libui-ng control gallery showcasing basic controls, numbers, lists, and data chooserscalculator.pl- basic calculator with grid layout, menus, and a settings dialogclock.pl- animated analog clock usinguiArea,uiTimer, and draw matrix transformsdatetime.pl- demonstratesuiDateTimePickerwith date, time, and combined pickersfontpicker.pl- demonstratesuiFontButtonand reading font propertiesform.pl- demonstratesuiFormlayout with various control typesgraph.pl- plots mathematical functions from editable spinbox data pointsgrid.pl- demonstratesuiNewGridwith cell spanning and stretchy controlsgroup.pl- demonstratesuiNewGroup,uiGroupSetMargined, and dynamic group titlesimage.pl- demonstratesuiNewImageand image columns in a tablematrix.pl- animateduiDrawMatrixtransforms (translate, scale, rotate, skew)menu.pl- demonstrates all menu types: items, check items, separators, enable/disable, and submenusnotepad.pl- multi-document tabbed text editor with file open/save and dirty trackingquiz.pl- interactive multiple-choice quiz with navigation, scoring, and results reviewscrollarea.pl- demonstratesuiNewScrollingAreawith a large interactive mapseparators.pl- demonstratesuiNewHorizontalSeparatoranduiNewVerticalSeparatorstopwatch.pl- start/stop/lap timer usinguiTimerandTime::HiRestab.pl- demonstratesuiTabwith append, insert, delete, margined, and selection trackingtable.pl- demonstratesuiNewTableModelwith sortable columnstext_attributes.pl- demonstratesuiAttributedStringwith styled text renderingbittorrent_threads.pl- multi-threaded BitTorrent client using ithreads for background networking
Changed
uiNewAreaanduiNewScrollingAreawrap callbacks (Draw,MouseEvent,KeyEvent). to tansparently handle casting opaque pointers to useful structs.
0.02 - 2023-03-11
Added
- New widgets:
LibUI::Area(very rough)LibUI::ScrollingArea
- New example scripts:
eg/demo.pl: very basic, "Hello, World!" type of exampleeg/widgets.pl: demo of (nearly all) basic controlseg/histogram.pl: demo ofLibUI::Areaand related functions
- New enum and structs:
LibUI::Area::Handler,::KeyEvent,::MouseEvent,::Modifiers
Changed
- Renamed widgets to fit existing pattern:
LibUI::HorizontalSeparator=>LibUI::HSeparatorLibUI::VerticalSeparator=>LibUI::VSeparator
0.01 - 2022-12-07
Added
- Original version