Tokamak/Sources/TokamakGTK/Views
Carson Katri 03513dd5b3
Custom Layout Engine for Fiber Reconciler (#472)
* Initial Reconciler using visitor pattern

* Preliminary static HTML renderer using the new reconciler

* Add environment

* Initial DOM renderer

* Nearly-working and simplified reconciler

* Working reconciler for HTML/DOM renderers

* Rename files, and split code across files

* Add some documentation and refinements

* Remove GraphRendererTests

* Initial layout engine (only implemented for the TestRenderer)

* Layout engine for the DOM renderer

* Refined layout pass

* Revise positioning and restoration of position styles on .update

* Re-add Optional.body for StackReconciler-based renderers

* Add text measurement

* Add spacing to StackLayout

* Add benchmarks to compare the stack/fiber reconcilers

* Fix some issues created for the StackReconciler, and add update benchmarks

* Add BenchmarkState.measure to only calculate the time to update

* Fix hang in update shallow benchmark

* Fix build errors

* Address build issues

* Remove File.swift headers

* Rename Element -> FiberElement and Element.Data -> FiberElement.Content

* Add doc comment explaining unowned usage

* Add doc comments explaining implicitly unwrapped optionals

* Attempt to use Swift instead of JS for applying mutations

* Fix issue with not applying updates to DOMFiberElement

* Add comment explaining manual implementation of Hashable for PropertyInfo

* Fix linter issues

* Remove dynamicMember label from subscript

* Re-enable carton test

* Attempt GTK fix

* Add option to disable layout in the FiberReconciler

* Re-enable TokamakDemo with StackReconciler

* Restore CI config

* Restore CI config

* Add file headers and cleanup structure

* Add 'px' to font-size in test outputs

* Remove extra newlines

* Keep track of 'elementChildren' so children are positioned in the correct order

* Use a ViewVisitor to pass the correct View type to the proposeSize function

* Add support for view modifiers

* Add frame modifier to demonstrate modifiers

* Fix TestRenderer

* Remove unused property

* Fix doc comment

* Fix linter issues and refactor slightly

* Fix benchmark builds

* Attempt to fix benchmarks

* Fix sibling layout issues

* Restore original demo

* Address review comments

* Remove maxAxis and fitAxis properties

* Use switch instead of ternary operators

* Add more documentation to layout steps

* Resolve reconciler issue due to alternate child not being cleared/released

* Apply suggestions from code review

Co-authored-by: Max Desiatov <max@desiatov.com>

* Reuse Text resolution code.

* Add more documentation

* Fix typo

* Use structs for LayoutComputers

* Update AlignmentID demo

* Fix weird formatting

Co-authored-by: Max Desiatov <max@desiatov.com>
2022-05-30 15:49:26 -04:00
..
Button.swift Add basic GTK renderer code (#333) 2020-12-26 16:11:06 +00:00
Image.swift Add `aspectRatio` modifier (#422) 2021-07-12 16:59:24 -04:00
List.swift Replace `ViewDeferredToRenderer`, fix renderer tests (#408) 2021-06-07 17:24:02 +01:00
NavigationView.swift Replace `ViewDeferredToRenderer`, fix renderer tests (#408) 2021-06-07 17:24:02 +01:00
Picker.swift Add basic GTK renderer code (#333) 2020-12-26 16:11:06 +00:00
ScrollView.swift Replace `ViewDeferredToRenderer`, fix renderer tests (#408) 2021-06-07 17:24:02 +01:00
Stack.swift Custom Layout Engine for Fiber Reconciler (#472) 2022-05-30 15:49:26 -04:00
Text.swift Add basic GTK renderer code (#333) 2020-12-26 16:11:06 +00:00
TextField.swift Add `Toolbar` implementation for HTML renderer (#169) 2021-08-05 16:17:30 +01:00