Commit graph

665 commits

Author SHA1 Message Date
Admin
0a1e93a89e align mathtypes to WGSL 2025-12-02 11:43:12 +01:00
Julián Montes de Oca
7ff2574dfc Android: Implement ShowClipboardActions with native ActionMode (#821)
Cx API:
- Implement existing ShowClipboardActions
- Add HideClipboardActions
- Cross-platform API ready for iOS implementation

Android Implementation:
- Native ActionMode integration with floating toolbar (API 23+)
- JNI bindings for showing/hiding menu and handling clipboard actions
- Event system for Copy/Cut/Paste/Select All actions
- Smart menu state management based on selection and clipboard

TextInput Integration:
- Long press selects word and shows menu
- Double tap and long press selects word and shows menu
- Selection preservation when tapping selected text
2025-11-22 10:06:05 +01:00
Eddy Bruel
7a514c0565 Fix bug in label areas 2025-11-17 14:58:31 +01:00
Kevin Boos
7bbb42a1b3 Fix modal; enable widgets to block scrolling except within a certain area (#819)
* Fix modal event handling behavior

Everything now works as expected, *except* for Scroll events that seem to
still be received by views beneath the modal, e.g., an underlying PortalList.

* Enable widgets to block scrolling, except within a certain area

* This is important for Modals to prevent scrolling of background widgets
  whilst still allowing the inner `content` view to be scrolled.
* Modals are now forcibly full-screen (or rather, full-window)
  in order to properly ensure that scrolling-allowed areas
  always stay relevant, as the Modal can no longer be contained
  within a non-full-window parent widget/view.

* remove errant log statement
2025-11-13 08:45:36 +01:00
Eddy Bruel
ecc9f811ee Wrap walk metrics into struct 2025-11-10 16:20:51 +01:00
wyenox
ba66ff9359 "app focus" events renamed to "window focus" (#818) 2025-11-07 22:59:54 +01:00
wyenox
267fdcb371 fix window-level focus issues (#817) 2025-11-07 19:04:41 +01:00
Julián Montes de Oca
fe3565d544 Enable drag scrolling by default in Scroll*Views (#810) 2025-11-03 17:16:22 +01:00
Eddy Bruel
0952c37076 Add descender to walks 2025-11-03 14:36:06 +01:00
alanpoon
0f54ba9d24 Added set_texture for RotatedImage (#806) 2025-10-30 22:20:52 +01:00
Eddy Bruel
fadc7c315e Prefer Right over Right { wrap: false } in DSL 2025-10-30 16:04:52 +01:00
Eddy Bruel
de1c50317d Implement per-row alignment for rightward flowing turtles 2025-10-30 12:43:18 +01:00
Eddy Bruel
cdcae82792 Unify Size::Right and Size::RightWrap 2025-10-28 09:20:57 +01:00
Eddy Bruel
5ae24ac81a Fix 2025-10-27 11:19:22 +01:00
Eddy Bruel
090aa10932 Remove spurious printlns 2025-10-27 11:13:50 +01:00
Admin
76cce72dc9 Fused Id and LiveId 2025-10-25 20:53:30 +02:00
Admin
096c9d1daa dont turn on touch scroll by default, fix gradient 2025-10-25 20:03:29 +02:00
Julián Montes de Oca
c85f72f00d Add focus loss detection to TextInput, for keyboard dismissal (#802)
TextInput now self-detects when user taps outside its area and dismisses the keyboard.
The tap event is not consumed.

Fixes keyboard staying open when tapping widgets that don't grab focus.
2025-10-25 19:42:32 +02:00
Julián Montes de Oca
062b9930f7 Add touch-based drag scrolling to ScrollBar (#799)
* Add drag and flick scrolling to ScrollBars

* Move touch-based drag and flick implementation to ScrollBar
2025-10-25 19:41:36 +02:00
Julián Montes de Oca
5b4b963e7d Fix Markdown and HTML ordered list numbering and alignment (#794)
* Fix numbered markdown lists repeating the first number

* Refactor list item padding calculation to accommodate multi-digit markers and fix alignment
2025-10-25 19:36:41 +02:00
Eddy Bruel
07fbece97f Rethink selection drag scrolling as a post-op during draw 2025-10-24 11:40:36 +02:00
Eddy Bruel
3634a1c9e1 Implement vertical selection drag scrolling for TextInput 2025-10-23 10:48:02 +02:00
Eddy Bruel
9af5173fae Add ascender to selection rects 2025-10-21 12:24:33 +02:00
alanpoon
7f8002bddc allow apply_over for image_scale and image_pan (#788) 2025-10-18 10:12:21 +02:00
Admin
efd7825fab moved id/value out 2025-10-13 11:19:58 +02:00
Eddy Bruel
6c2faed432 Implement min/max fits 2025-09-25 16:09:28 +02:00
makepaddev
602dd42d36 fix elided lifetime warnings 2025-09-09 21:37:52 +02:00
Admin
53f799a84a ai fixup 2025-09-09 09:37:35 +02:00
Admin
8550f83b1a sync load image sizes 2025-07-22 11:58:12 +02:00
Kevin Boos
17f60d02ca Create PageFlip child widget within set_active_page() (#783)
This allows an app dev/user to create and populate a new widget
within the PageFlip parent widget *before* waiting for it to be drawn.
Previously, the child widgets within PageFlip were either created
upon app load (which is inefficient) or upon draw (which is too late).
2025-07-21 20:52:34 +02:00
Julián Montes de Oca
cb5134c788 Rework StackNavigation into an actual Stack (#766)
* Refactor stack navigation into a proper stack

 - Replace show_stack_view_by_id with push/pop/popToRoot methods
- Add proper navigation stack with history tracking
- Fix animation transitions between consecutive views
- Add stack inspection methods (depth, can_pop, current_view)
- Maintain backward compatibility with deprecated methods
- Update action enum to use Push/Pop/PopToRoot variants

* Add support for multiple instances of StackNavigation.

- Introduced full-screen flag necessary to disable full-screen positioning and sliding animations when needed.
2025-07-12 02:11:27 +02:00
alanpoon
939c8c5b1d fix_small_spinner_not_showing (#782)
* fix_small_spinner_not_showing

* remove debug
2025-07-12 02:11:16 +02:00
Kevin Boos
69d99edaef Add PortalList::is_filling_viewport() (#781)
* Update old `windows-targets` dep version to reduce lockfile duplicates

All other crates in the Rust ecosystem depend on `windows-targets`
v0.52.*, so this small change vastly reduces the number of duplicate
`windows-*` crate dependencies that cargo must download and track in the lockfile.

Also address minor compiler warnings in AdaptiveView.

* Add `PortalList::is_filling_viewport()`

This is needed in order for an app to be able to take action
upon a portal list's viewport not being completely full.
For example, if you're showing a chat room, you can fetch older events
until there is enough history to fill the entire viewport.
2025-07-12 02:11:05 +02:00
Kevin Boos
31c2476c4d Update old windows-targets dep version to reduce lockfile duplicates (#780)
All other crates in the Rust ecosystem depend on `windows-targets`
v0.52.*, so this small change vastly reduces the number of duplicate
`windows-*` crate dependencies that cargo must download and track in the lockfile.

Also address minor compiler warnings in AdaptiveView.
2025-07-12 02:10:51 +02:00
okapii
7b90db8e25 Fix dropdown 2025-07-10 16:17:19 +02:00
okapii
755f4114d9 Dropdown code cleanup 2025-07-10 15:52:57 +02:00
okapii
9f9a1ee93b Add Gradient support to icon shaders (button, checkbox, radio) 2025-07-10 15:13:12 +02:00
okapii
f8e511fec1 Fixes 2025-07-10 14:48:34 +02:00
okapii
2f7c8827c9 Light theme refinements 2025-07-10 14:15:27 +02:00
okapii
79745230d7 Variable name consistency fix 2025-07-10 14:07:21 +02:00
okapii
8ebc7b8b18 Theme application and theme optimizations (improving active state stylings) 2025-07-10 14:03:12 +02:00
okapii
48433b8708 Consistent theme application and rotary focus state optimizations 2025-07-10 13:56:13 +02:00
okapii
2eeff07359 Cleanup pass: proper theme vairable application 2025-07-10 13:39:40 +02:00
okapii
738c01d5c7 Improve UV mapping support of widgets 2025-07-10 12:34:24 +02:00
okapii
532453f4bb Further complete dither support 2025-07-10 12:24:32 +02:00
okapii
41454afd24 Button: make the flat variant the base one 2025-07-10 12:11:15 +02:00
okapii
9478bf7b41 Complete gradient dither support 2025-07-10 12:04:09 +02:00
okapii
8731210c4f Dropdown: gradient refactor 2025-07-10 11:21:38 +02:00
okapii
3bfb34bf10 RadioButton: gradient refactor 2025-07-10 11:21:38 +02:00
okapii
9814b81948 RadioButton: Gradient refactor 2025-07-10 11:21:38 +02:00