windows-reactor add properties for pane length/footer and text box appearance#4676
Open
kennykerr wants to merge 4 commits into
Open
windows-reactor add properties for pane length/footer and text box appearance#4676kennykerr wants to merge 4 commits into
windows-reactor add properties for pane length/footer and text box appearance#4676kennykerr wants to merge 4 commits into
Conversation
This was referenced Jul 2, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
Adds missing WinUI 3 surface area to windows-reactor (notably NavigationView pane configuration and TextBox border styling) by extending the generated WinUI property set and generalizing border prop dispatch through IControl, with accompanying tests and samples.
Changes:
- Add
NavigationView::open_pane_length(f64)(viawinui.toml/generated bindings) andNavigationView::pane_footer(Element)mounted through the existing pane-slot reconciler path. - Add
TextBox::border_brush(BrushBinding)andTextBox::border_thickness(Thickness)and routeBorderBrush/BorderThicknessthrough a generalizedIControlfallback in the WinUI backend. - Add tests validating the new props and add runnable samples demonstrating the new APIs.
Reviewed changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| docs/crates/windows-reactor.md | Documents the backend dispatch behavior for background/foreground/border props. |
| crates/tools/reactor/src/winui.toml | Adds NavigationView.OpenPaneLength to codegen inputs. |
| crates/tools/reactor/src/generated.txt | Regenerated reactor interface/property inventory to include OpenPaneLength. |
| crates/tools/reactor/src/base.txt | Adds IControl setters for BorderBrush/BorderThickness and INavigationView.put_PaneFooter. |
| crates/tests/libs/reactor/tests/controls_shell.rs | Adds a test for NavigationView open pane length and pane footer mounting. |
| crates/tests/libs/reactor/tests/controls_input.rs | Adds a test for TextBox border brush/thickness prop emission. |
| crates/tests/libs/reactor_selftest/src/bindings.rs | Regenerated selftest WinUI bindings (adds IControl border setters and INavigationView footer/open pane length). |
| crates/samples/reactor/samples/examples/text_box_border.rs | New sample showcasing TextBox border customization. |
| crates/samples/reactor/samples/examples/navigation_view_pane.rs | New sample showcasing NavigationView open pane length and pane footer. |
| crates/libs/reactor/src/widgets/text_box.rs | Adds border_brush/border_thickness fields + builders and emits the new props. |
| crates/libs/reactor/src/widgets/navigation_view.rs | Adds open_pane_length and pane_footer and exposes footer via pane_element(). |
| crates/libs/reactor/src/style.rs | Adds Color::transparent() helper. |
| crates/libs/reactor/src/generated.rs | Regenerated widget-to-prop bindings to emit Prop::OpenPaneLength for NavigationView. |
| crates/libs/reactor/src/bindings.rs | Regenerated WinUI bindings (adds IControl border setters and INavigationView footer/open pane length). |
| crates/libs/reactor/src/backend/winui/mod.rs | Generalizes border brush/thickness dispatch via IControl; wires NavigationView pane slot to SetPaneFooter. |
| crates/libs/reactor/src/backend/winui/generated_set_prop.rs | Adds OpenPaneLength dispatch for Handle::NavigationView. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds the missing WinUI properties requested in #4669 and #4671.
NavigationViewgainsopen_pane_length(f64)(declarative, viawinui.toml) andpane_footer(impl Into<Element>), which mounts arbitrary content in the pane's footer slot (reusing the existingpane_elementreconciler path — distinct from the built-insettings_visiblegear).TextBoxgainsborder_brush/border_thicknessbuilders, mirroringBorder(directColoror theme-ref).To support this, the backend's
BorderBrush/BorderThicknessdispatch is generalized fromBorder-only to anyControlvia a singleIControlcast — matching the existingset_background/set_foregroundpattern — plus aColor::transparent()helper for borderless inputs. Covered by two new automated tests and two runnable samples (navigation_view_pane,text_box_border);fmt/clippy/test_reactorclean andtool_reactorregen is idempotent.Two new samples to validate: