* Update ncrunch config.
* Tidy up reflection and multi-binding APIs:
- Move `BindingBase` and `MultiBinding` into Avalonia.Base
- `BindingBase` becomes a true base class for all bindings, and contains only the `Instance` method
- Properties common between reflection and compiled bindings are moved into `StandardBindingBase`
- `Binding` is moved to Avalonia.Base and renamed to `ReflectionBinding`
- A compatibility shim for `Binding` remains in Avalonia.Markup
- Remove `IBinding` and `IBinding2`
- Remove `ITreeDataTemplate's usage of `InstancedBinding`
- Remove `NativeMenuBarPresenter`s usage of `InstancedBinding`
- Remove `InstancedBinding` as it is now unused
This required an update to the DataGrid submodule: cell data validation has been temporarily removed as this used `InstancedBinding`.
* `Instance()` => `CreateInstance()`.
The use of "Instance" as a verb is quite unusual apparently ;)
* Seal classes where appropriate.
* Seal classes where appropriate.
* Remove `StandardBindingBase`.
Simply duplicate the members in reflection and compiled binding classes.
* Delete deleted submodule directory.
* Add missing attribute.
Fixes compile error.
* Fix reference to removed class.
* Update suppressions.
* Handle Datavalidations on base class "Control"
this removes the need to override it in any sub-classing control and also allowes developers to add validation support for other properties / controls by overriding Metadata
* Revert changes on Button.
The current behavior is that button gets disabled and until we decide if this is desired, keep this behavior.
* Added missing class event handler methods
* Moved handling of Holding event in Control to the class method
* Exposed Gesture.RightTappedEvent as InputElement.RightTapped and added a class handler
This event was already being raised, but you wouldn't know about it unless you looked into Avalonia's internals
* add text selection handles
* only show selectors on pen and touch input
* show mobile themed context menu on mobile
* cleanup and track textbox layout changes with EffectiveViewportChanged
* make SelectionHandleType as clr property
* fix custom flyouts not showing with selection handles
* simplify text context menu for mobile.
* cleanup
* address review, simplify styles, add docs
* remove unused resource
* remove unused event handler, reformat selection canvas class
* prevent thumb positions from swapping
* adjust caret position when touch pointer moves
* cleanup, disable scrolling in textbox when intent is selection
* add hold size to platform settings, reduce hold size
* use class handler for control hold event
* improve holding interaction with textbox
* remove GetHoldSize method
* inprove touch input pointer over detection
* improve hold support in textbox
* fix tests
* remove selection updates on hold
* make pointer event args for holding event internal
---------
Co-authored-by: Max Katz <maxkatz6@outlook.com>
* Add Loaded/Unloaded events
* Don't allow OnLoaded() twice unless OnUnloaded() is called
* Call OnLoadedCore within Render()
* Call OnLoadedCore() from OnAttachedToVisualTreeCore by scheduling it on the dispatcher
* Improve comments
* Queue loaded events
* Make the loaded queue static
* Make more members static per review
* Make sure control wasn't already scheduling for Loaded event
* Add locks around HashSet usage for when enumerating
* Remove from loaded queue in OnUnloadedCore() as failsafe
* Make Window raise its own Loaded/Unloaded events
* Attempt to fix leak tests to work with Loaded events
* Make WindowBase raise its own Loaded/Unloaded events
* Move hotkey leak tests to the LeakTest project
* Address some code review comments
* Attempt at actually queueing Loaded events again
* Fix typo
* Minor improvements
* Update controls benchmark
Co-authored-by: Max Katz <maxkatz6@outlook.com>
Co-authored-by: Jumar Macato <16554748+jmacato@users.noreply.github.com>