Add reactive UI data binding and observable collections

Introduce observable and computed values, typed widget bindings, validation groups, UI properties, commands, and UI-thread delivery.

Add observable vector and list model support for incrementally updated collections, with filtering and source-row mapping.

Modernize the Flight Booker and CRUD examples and add focused data handling and collection examples demonstrating the new APIs.

Organize the UI binding headers under ui/databinding, expand test coverage for notification and lifetime semantics, and document API selection, validation, ownership, threading, and performance behavior.
This commit is contained in:
Martín Lucas Golini
2026-08-22 01:00:04 -03:00
parent b4e8f0312c
commit 36e54fe2a3
42 changed files with 3818 additions and 1243 deletions

View File

@@ -14,6 +14,7 @@
../../bin/assets/ui/breeze.css
../../bin/assets/ui/uitheme.css
../../docs/articles/cssspecification.md
../../docs/articles/uidatabinding.md
../../docs/articles/uiintroduction.md
../../external_projects.lua
../../include/eepp/audio/alresource.hpp
@@ -337,6 +338,14 @@
../../include/eepp/ui/css/stylesheetvariable.hpp
../../include/eepp/ui/css/timingfunction.hpp
../../include/eepp/ui/css/transitiondefinition.hpp
../../include/eepp/ui/databinding/uibindinggroup.hpp
../../include/eepp/ui/databinding/uicommand.hpp
../../include/eepp/ui/databinding/uidatabind.hpp
../../include/eepp/ui/databinding/uiobservedelivery.hpp
../../include/eepp/ui/databinding/uiproperty.hpp
../../include/eepp/ui/databinding/uivaluebinding.hpp
../../include/eepp/ui/databinding/uivalueconverter.hpp
../../include/eepp/ui/databinding/uivaluevalidation.hpp
../../include/eepp/ui/doc/foldrangetype.hpp
../../include/eepp/ui/doc/syntaxcolorscheme.hpp
../../include/eepp/ui/doc/syntaxdefinition.hpp
@@ -377,7 +386,6 @@
../../include/eepp/ui/uicodeeditor.hpp
../../include/eepp/ui/uicombobox.hpp
../../include/eepp/ui/uiconsole.hpp
../../include/eepp/ui/uidatabind.hpp
../../include/eepp/ui/uidropdownlist.hpp
../../include/eepp/ui/uieventdispatcher.hpp
../../include/eepp/ui/uifiledialog.hpp

View File

@@ -14,6 +14,7 @@
../../bin/assets/ui/breeze.css
../../bin/assets/ui/uitheme.css
../../docs/articles/cssspecification.md
../../docs/articles/uidatabinding.md
../../docs/articles/uiintroduction.md
../../external_projects.lua
../../include/eepp/audio/alresource.hpp
@@ -336,6 +337,14 @@
../../include/eepp/ui/css/stylesheetvariable.hpp
../../include/eepp/ui/css/timingfunction.hpp
../../include/eepp/ui/css/transitiondefinition.hpp
../../include/eepp/ui/databinding/uibindinggroup.hpp
../../include/eepp/ui/databinding/uicommand.hpp
../../include/eepp/ui/databinding/uidatabind.hpp
../../include/eepp/ui/databinding/uiobservedelivery.hpp
../../include/eepp/ui/databinding/uiproperty.hpp
../../include/eepp/ui/databinding/uivaluebinding.hpp
../../include/eepp/ui/databinding/uivalueconverter.hpp
../../include/eepp/ui/databinding/uivaluevalidation.hpp
../../include/eepp/ui/doc/foldrangetype.hpp
../../include/eepp/ui/doc/syntaxcolorscheme.hpp
../../include/eepp/ui/doc/syntaxdefinition.hpp
@@ -373,7 +382,6 @@
../../include/eepp/ui/uicodeeditor.hpp
../../include/eepp/ui/uicombobox.hpp
../../include/eepp/ui/uiconsole.hpp
../../include/eepp/ui/uidatabind.hpp
../../include/eepp/ui/uidropdownlist.hpp
../../include/eepp/ui/uieventdispatcher.hpp
../../include/eepp/ui/uifiledialog.hpp

View File

@@ -14,6 +14,7 @@
../../bin/assets/ui/breeze.css
../../bin/assets/ui/uitheme.css
../../docs/articles/cssspecification.md
../../docs/articles/uidatabinding.md
../../docs/articles/uiintroduction.md
../../external_projects.lua
../../include/eepp/audio/alresource.hpp
@@ -331,6 +332,14 @@
../../include/eepp/ui/css/stylesheetvariable.hpp
../../include/eepp/ui/css/timingfunction.hpp
../../include/eepp/ui/css/transitiondefinition.hpp
../../include/eepp/ui/databinding/uibindinggroup.hpp
../../include/eepp/ui/databinding/uicommand.hpp
../../include/eepp/ui/databinding/uidatabind.hpp
../../include/eepp/ui/databinding/uiobservedelivery.hpp
../../include/eepp/ui/databinding/uiproperty.hpp
../../include/eepp/ui/databinding/uivaluebinding.hpp
../../include/eepp/ui/databinding/uivalueconverter.hpp
../../include/eepp/ui/databinding/uivaluevalidation.hpp
../../include/eepp/ui/doc/syntaxcolorscheme.hpp
../../include/eepp/ui/doc/syntaxdefinition.hpp
../../include/eepp/ui/doc/syntaxdefinitionmanager.hpp
@@ -366,7 +375,6 @@
../../include/eepp/ui/uicodeeditor.hpp
../../include/eepp/ui/uicombobox.hpp
../../include/eepp/ui/uiconsole.hpp
../../include/eepp/ui/uidatabind.hpp
../../include/eepp/ui/uidropdownlist.hpp
../../include/eepp/ui/uieventdispatcher.hpp
../../include/eepp/ui/uifiledialog.hpp