* Add new SaveFilePickerWithResultAsync API to the base
* Add SaveFilePickerWithResultAsync stub impl
* Control Catalog SaveFilePickerWithResultAsync sample with XML and JSON types
* Make SaveFilePickerResult a struct
* Add managed picker implementation
* Make SaveFilePickerResult a readonly struct
* Windows implementation of SaveFilePickerWithResultAsync
* Test impl for dbus
* Reuse the file type object (FTO) so StorageFile consumer can match exactly the right FTO when receiving the SaveFilePicker's result.
* Add Gtk impl
* Avalonia.Native: surface selected save dialog filters
* macOS: report selected NSSavePanel filter
* Modify the conditional in case there's duplicate descriptions of FTO's in DBusSystemDialog.cs
* Instantiate FPFT as fallback
* Pass the mime/pattern to instantiated FPFT
* Update API diff
* Fix review comments
---------
Co-authored-by: Max Katz <maxkatz6@outlook.com>
* [OSX] Implemented IOSurface/MTLSharedEvent interop APIs
* Bump Xcode?
* Xcode?
* APIDiff
* Use different XCode versions because of how awesome appium is
* A hack for crapium
* Replace SkiaMetalApi usages
* Update API suppressions
---------
Co-authored-by: Timothy Miller <innerlogic4321@gmail.com>
Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
* add SplitViewPanePlacement settings for Top and Bottom.
* remove duplicated styles.
* add missing transparent fills of lightdismiss area.
* add simple theme support for splitview pane placement top/bottom.
* Add unit test for all color format Brush parsing
* Support parsing all known color formats in Brush.Parse()
* Update property syntax
* Remove unnecessary usings
* Use an actual hex color
* Fix new brush test
* Switch order of brush parsing so known color optimizations are used
* Add more documentation comments to KnownColors
* Fix displayed text in BorderPage
InnerBorderEdge not InnerBorder
* - Adjusts the overhang calculation so it matches what WPF produces
- Fixes baseline alignment for inline controls
* Adjust OverhangTrailing
Add unit test
* Only run overhang unit test on Windows
* Added failing test for OSXThickTitleBar single title area click produce double click #19320
* Fixed OSXThickTitleBar title area click duplication and event delays until the event-tracking-loop is completed
* IntegrationTestApp. Move event counter controls to a separate column. Fixes Changing_Size_Should_Not_Change_Position test
* Move pointer tests to Default group to avoid interference
* Try to fix CI crash
* Try disabling test
* Fix CI test. Collection back to Default
* CI fix. Return back empty test.
* CI fix. Minimal bug test
* CI test. Add double click test
* CI fix. Remove double click test.
---------
Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
* Add AnalyzerProject.targets targets
* PrivateAssets on Workspaces.Common
* Migrate AvaloniaNameSourceGenerator to IIncrementalGenerator
* Remove outdated lins in the generator readme
* Add GlobPattern.ToString
* Fix tests
* Formatting
* Redo pipeline, make steps more independent from each other, compilation should be reused between dependency changes
* Split XAML parsing and type resolution into separated steps
* Restore CompilationReferencesComparer usage
* Revert "Restore CompilationReferencesComparer usage"
This reverts commit c51341990b.
* Split ResolvedNamesProvider pipeline step, process files in parallel
* Add comment
* Switch back to EquatableList
* Add cancellation to the incremenetal source gen
* Rethrow cancellation exception
* xml documentatation for paragraph properties
* TextTestApp
* text test files renamed parameter
* glyph ink bounds
* shaped buffer make selected row visible
* text test app force light theme
* text test app distinguish start and end distance marks
---------
Co-authored-by: Jan Kučera <miloush@users.noreply.github.com>
Co-authored-by: Benedikt Stebner <Gillibald@users.noreply.github.com>
Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
* Add CanMinimize and CanMaximize to Window
* Win32 impl for CanMinimize/CanMaximize
* Add CanResize/CanMinimize/CanMaximize samples to control catalog
* X11 impl for CanMinimize/CanMaximize
* macOS impl for CanMinimize/CanMaximize
* Win32: don't allow restore when the window isn't resizable
* Additional documentation for CanMinimize/CanMaximize
* Add CanMinimize/CanMaximize logic to CaptionButtons
* Use START_COM_ARP_CALL
* Added CanMinimize/CanMaximize integration tests
* Fixed CanMaximize tests on macOS
* IsEditable combox box with text bindings
* Update after #18405 api review
* ComboBox tests for IsEditable
* remove unneeded error being throw when combox is editable and doesn't have text binding properties
* Changes after code review
* only do naviagtion check if combo box is editable
* Fix editable ComboBox tab navigation
* combobox code review improvements
---------
Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
* Added failing test for OSXThickTitleBar drag events outside thick title area
* MacOS. Added event tracking loop for drag events started in thick titlebar (NSToolbar)
* Review fix: forward events to AppKit during tracking loop (#19320)
* add lifetime with view factory on android
* rename android lifetime interface
* add warning when using ISingleViewApplicationLifetime for android, set current main activity reference on OnResume
* fix nit
* Only start ScrollGesture when left click pressed, also `GetCurrentPoint(null)` behaves the same as root visual
* Allow right-click pen to select items on press
* Add context menus to even items on ListBox page for testing
* Avoid global static in UpdateSelectionFromPointerEvent
* Revert "Avoid global static in UpdateSelectionFromPointerEvent"
This reverts commit 2562d73e83.
* Add comment to UpdateSelectionFromPointerEvent
* Use fully mocked rendering for list box test
* Add pen selection tests
* TouchTestHelper should use correct inputs
* Implemented IClipboard.TryGetInProcessDataObjectAsync for X11
* [Win32] Implemented TryGetInProcessDataObjectAsync
* Rest of the platforms
* Run `nuke ValidateApiDiff`
---------
Co-authored-by: Max Katz <maxkatz6@outlook.com>
* Fix XamlTypeExtensionNode not being handled on the x:DataType transformer
* Add testt with complex DataType
* Make vm:MainWindowViewModel+TestItem nested type generic on BindingDemo
* Added new test: changing window size should not change position
* Removed unnecessary window placement assignment to fix window position shifting due to incorrect workspace coordinate usage
* Fixed test because buttons went off the window on tiny screen resolutions
* Make test Windows specific
* Use `Bounds` instead of `Width` and `Height` properties as they are "requested" size rather than actual size (see #18060)
* fix accelerator behavior for menu items and labels
* add elements with matching accelerator to test cycling in sub menus
* Add AccessKeyHandler tests for accelerators with more than one match
* Implement accelerator behavior based on WPF handling
* Remove commented code
* Remove OnAccessKey override => handled by DefaultMenuInteractionHandler
* remove obsolete test
* handle OnAccessKeyPressed for selected tab item
* fix unit tests
* use AccessKeyEvent instead of AccessKeyPressedEvent in unit tests
* navigate menu with and without ALT key
* Revert formatting changes in Tests
* Fix AccessKeyHandler comments
* move private types to bottom
* Remove lock statements, optimize removal of AccessKeyRegistrations
* remove call to Dispatcher.UIThread.Post
* simplifiy AccessKeyHandler.SortByHierarchy
* remove unnecessary method AccessKeyHandler.GetTargetsForSender
* regenerate API suppression file
* revert unneeded changes in MenuPage.axaml
* correct formatting changes
* do not sort by hierarchy if too few targets
* make AccessKeyEventArgs internal
* make AccessKeyPressedEventArgs internal
---------
Co-authored-by: Hans Docsek <hans.docsek@gmail.com>
Changed the adapter index in the for loop to correctly iterate through available adapters. This ensures that the correct adapter is selected based on its Luid.
* Move automation interfaces to the Avalonia.Win32.Automation with DisableRuntimeMarshalling and use [GeneratedComInterface] marshalling
* Various fixes for the new windows accessibility
* Numerge Avalonia.Win32.Automation into Avalonia.Win32
* Suppress Avalonia.Win32 API warnings, these interfaces never were part of the public API
* Fix IRawElementProviderSimple2 definition on legacy COM interop
* Some changes after review
* More consistent COM method names
* Fix folder hierarchy
* Rewrite SafeArrayMarshaller to use arrays as managed type
* Add ManagedObjectWrapper where's possible
* Throw an exception for unsupported SafeArrayRef scenario
---------
Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
* Do not reset the selected range when the TextBox loses focus
Do not render selection highlight when the TextBox doesn't has focus
* Invalidate TextLayout when the focus is lost
* Make ClearSelectionAfterFocusLost optional
Make inactive selection highlight optional
* Make sure changes to ShowSelectionHighlight invalidate the visual and text layout
* Implemented GLib-based dispatcher
This should allow running Avalonia on the same thread as another UI toolkit that supports running on top of GRunLoop (e. g. GTK)
* Force-drain the X11 event queue, since g_runloop_quit won't exit the loop otherwise
* Show Avalonia context menu and toolip...
In native text box in integration test app. Only implemented for win32 right now.
This is to test the two popup behaviors required for native controls:
- The context menu needs focus to be transferred to Avalonia
- The ToolTip must not transfer focus to Avalonia
* Added Popup.TakesFocusFromNativeControl.
By default, if a popup is shown when a native control is focused, focus is transferred back to Avalonia in order for the popup to receive input. If this property is set to false, then the shown popup will not receive input until it receives an interaction which explicitly focuses the popup, such as a mouse click.
The effect of this property can be seen in the Embedding tag of the IntegrationTestApp: hovering over the native text box shows an Avalonia `ToolTip` which does not steal focus from the native text box. Right-clicking to open an Avalonia `ContextMenu` does steal focus so the menu items can be selected using the arrow keys.
Currently only implemented on a win32.
* Show tooltip and context menu on macOS.
* Implement TakeFocus on macOS.
* Add integration tests.
Only tested on win32 so far.
* Integration tests won't work on macOS.
As can be expected at this point, really.
* Update API diff.