makepad/examples/uizoo/src
Kevin Boos 88348503c6
StackNavigation: swipe back to the previous view, and follow Android's predictive back gesture (#1308)
* iOS: give long presses the uid of the touch they came from

The long-press recognizer always sent uid 0, while touch uids are `UITouch`
pointers, so a widget matching a long press to the touch it captured never saw
one on iOS. Now the long press carries the uid of the active touch under it.

* StackNavigation: swipe back to the previous view, plus Android predictive back

* A rightward swipe anywhere on a stack view drags it 1:1 and reveals the view beneath,
  then on release it either finishes popping or springs back (distance + fling velocity)
* Android's predictive back gesture drives the same reveal via a new `Event::BackGesture`,
  and cargo-makepad now opts apps in with `enableOnBackInvokedCallback`
* Only a view that owns Back can be swiped, so modals and popups in front of it block it
* Widgets keep their own drags with `cx.claim_finger_drag()` (`TextInput`, `Slider`, `Splitter`)
* Apps pick the revealed view via `InteractivePop*` actions and `set_interactive_pop_view()`

* Swipe back: leave owned drags, open overlays and UI zoom alone

* The views see each move first, so a scroller that takes the finger (`claim_finger_gesture`)
  or a popover that press opened keeps it, and nothing swipes while an overlay holds the pointer
* The slop is in the OS's points, so UI zoom can't make swipes start before long presses do
* Sideways and 2D drags claim their finger: `Toggle`'s knob, horizontal `ScrollBar` thumbs, `Carousel`,
  `RangeSlider`, `PlaybackBar`, `Rating`, `ValueInput`, `Kanban`, sideways `WheelPicker`s, FAB controls,
  `Video` seeking, `Tab` strips, and the chart, color, glass, waveform, data grid and map widgets
* New `StackNavigationRef::has_pending_interactive_pop()` for apps that handle Back themselves

* Mail, Reminders, Notes, Calculator: follow swipes and back gestures on their stacks

These apps take Back before their UI sees it, so the Back that ends a predictive back gesture
never reached their stack, and a swipe's pop went around their own history. Now they leave Back
to the stack while `has_pending_interactive_pop()`, reveal the screen they'd go back to on
`InteractivePopStarted`, and go back in their own state on `InteractivePopCommitted`. Also
mentions the swipe in the StackNavigation story and the uizoo docs.
2026-10-12 22:39:19 +02:00
..
app.rs platform+widgets: sploded 3D inspect view, the tweaker design-feedback suite, script math-AOT and docs channel, pointer-pin and pixel-probe, modal layout, map warp 2026-08-29 09:26:24 +02:00
demofiletree.rs platform+widgets: sploded 3D inspect view, the tweaker design-feedback suite, script math-AOT and docs channel, pointer-pin and pixel-probe, modal layout, map warp 2026-08-29 09:26:24 +02:00
layout_templates.rs Switch to SLUG/DrawGlyph font drawing stack (#1042) 2026-04-16 22:50:48 +02:00
lib.rs Switch to SLUG/DrawGlyph font drawing stack (#1042) 2026-04-16 22:50:48 +02:00
main.rs gltf example! 2026-02-16 15:51:24 +01:00
tab_adaptiveview.rs Restore StackNavigation widget, add examples to ui-zoo (#892) 2026-02-26 13:54:36 +01:00
tab_align_scroll.rs Switch to SLUG/DrawGlyph font drawing stack (#1042) 2026-04-16 22:50:48 +02:00
tab_button.rs fix up uizoo 2026-02-23 18:00:19 +01:00
tab_checkbox.rs fix up uizoo 2026-02-23 18:00:19 +01:00
tab_dropdown.rs examples: datagrid, portallist_hit, render_to_texture, splat_bench 2026-08-23 01:34:36 +02:00
tab_filetree.rs gltf example! 2026-02-16 15:51:24 +01:00
tab_glasspanel.rs Windows Blur, System Composition (#940) 2026-03-12 14:57:09 +01:00
tab_html.rs Add RowAlign::Baseline: rows that line up their walks' text baselines (#1270) 2026-09-28 21:10:39 +02:00
tab_icon.rs fix dx11 memleak 2026-02-23 18:30:26 +01:00
tab_iconset.rs gltf example! 2026-02-16 15:51:24 +01:00
tab_image.rs Add CropToFill image fit variant, improve ImageFit docs (#1102) 2026-06-05 07:18:35 +02:00
tab_imageblend.rs gltf example! 2026-02-16 15:51:24 +01:00
tab_label.rs Add ellipsis text truncation support (text_overflow + max_lines) (#1014) 2026-04-06 16:29:24 +02:00
tab_layout.rs tools, arch, docs, workspace, examples, sqlite, wasm_bridge 2026-09-15 13:40:33 +02:00
tab_linklabel.rs fix up uizoo 2026-02-23 18:00:19 +01:00
tab_markdown.rs Html/Markdown fixes: sub/superscript, table outlines/alignment, etc (#1051) 2026-04-18 10:29:50 +02:00
tab_pageflip.rs gltf example! 2026-02-16 15:51:24 +01:00
tab_portallist.rs oops. uids 2026-03-08 08:42:49 +01:00
tab_radiobutton.rs gltf example! 2026-02-16 15:51:24 +01:00
tab_rotary.rs gltf example! 2026-02-16 15:51:24 +01:00
tab_rotatedimage.rs gltf example! 2026-02-16 15:51:24 +01:00
tab_scrollbar.rs Switch to SLUG/DrawGlyph font drawing stack (#1042) 2026-04-16 22:50:48 +02:00
tab_slider.rs gltf example! 2026-02-16 15:51:24 +01:00
tab_slidesview.rs gltf example! 2026-02-16 15:51:24 +01:00
tab_slug.rs Switch to SLUG/DrawGlyph font drawing stack (#1042) 2026-04-16 22:50:48 +02:00
tab_spinner.rs gltf example! 2026-02-16 15:51:24 +01:00
tab_stacknavigation.rs StackNavigation: swipe back to the previous view, and follow Android's predictive back gesture (#1308) 2026-10-12 22:39:19 +02:00
tab_textinput.rs TextInput: support single-line horizontal scrolling when text overflows (#1012) 2026-04-06 16:28:35 +02:00
tab_video.rs feat : add advance vide player example (#1138) 2026-07-23 12:16:19 +02:00
tab_view.rs Fix circle view (#887) 2026-02-26 08:17:49 +01:00
tab_widgetsoverview.rs gltf example! 2026-02-16 15:51:24 +01:00