private void Initialize() { ApiExtensibility.Register(typeof(Windows.UI.Core.ICoreWindowExtension), o => new CoreWindowExtension(o)); ApiExtensibility.Register(typeof(Windows.UI.ViewManagement.IApplicationViewExtension), o => new ApplicationViewExtension(o)); ApiExtensibility.Register(typeof(Windows.Graphics.Display.IDisplayInformationExtension), o => _displayInformationExtension ??= new DisplayInformationExtension(o)); _renderer = new Renderer(); _displayInformationExtension !.Renderer = _renderer; bool EnqueueNative(DispatcherQueuePriority priority, DispatcherQueueHandler callback) { _eventLoop.Schedule(() => callback()); return(true); } void Dispatch(System.Action d) { _eventLoop.Schedule(() => d()); } Windows.System.DispatcherQueue.EnqueueNativeOverride = EnqueueNative; Windows.UI.Core.CoreDispatcher.DispatchOverride = Dispatch; Windows.UI.Core.CoreDispatcher.HasThreadAccessOverride = () => _isDispatcherThread; void CreateApp(ApplicationInitializationCallbackParams _) { var app = _appBuilder(); app.Host = this; } WUX.Application.Start(CreateApp, _args); }
private void Initialize() { ApiExtensibility.Register(typeof(Windows.UI.Core.ICoreWindowExtension), o => new CoreWindowExtension(o)); ApiExtensibility.Register(typeof(Windows.UI.ViewManagement.IApplicationViewExtension), o => new ApplicationViewExtension(o)); ApiExtensibility.Register(typeof(Windows.Graphics.Display.IDisplayInformationExtension), o => _displayInformationExtension ??= new DisplayInformationExtension(o)); void Dispatch(System.Action d) => _eventLoop.Schedule(() => d()); void CreateApp(ApplicationInitializationCallbackParams _) { var app = _appBuilder(); app.Host = this; } Windows.UI.Core.CoreDispatcher.DispatchOverride = Dispatch; Windows.UI.Core.CoreDispatcher.HasThreadAccessOverride = () => _isDispatcherThread; _renderer = new Renderer(); _displayInformationExtension !.Renderer = _renderer; CoreServices.Instance.ContentRootCoordinator.CoreWindowContentRootSet += OnCoreWindowContentRootSet; WUX.Application.StartWithArguments(CreateApp); }
partial void InitializePlatform() { if (ApiExtensibility.CreateInstance <ISystemNavigationManagerPreviewExtension>(this, out var extension)) { _extension = extension; } }
public void Run() { ApiExtensibility.Register(typeof(Windows.UI.Core.ICoreWindowExtension), o => new TizenCoreWindowExtension(o, _tizenApplication.Canvas)); ApiExtensibility.Register(typeof(Windows.UI.ViewManagement.IApplicationViewExtension), o => new TizenApplicationViewExtension(o, _tizenApplication.Window)); ApiExtensibility.Register(typeof(IDisplayInformationExtension), o => new TizenDisplayInformationExtension(o, _tizenApplication.Window)); ApiExtensibility.Register(typeof(IVibrationDeviceExtension), o => new TizenVibrationDeviceExtension(o)); ApiExtensibility.Register(typeof(ISimpleHapticsControllerExtension), o => new TizenSimpleHapticsControllerExtension(o)); ApiExtensibility.Register(typeof(IBadgeUpdaterExtension), o => new TizenBadgeUpdaterExtension(o)); ApiExtensibility.Register(typeof(IAnalyticsInfoExtension), o => new TizenAnalyticsInfoExtension(o)); ApiExtensibility.Register(typeof(IPackageIdExtension), o => new TizenPackageIdExtension(o)); ApiExtensibility.Register(typeof(IDataTransferManagerExtension), o => new TizenDataTransferManagerExtension(o)); ApiExtensibility.Register(typeof(IContactPickerExtension), o => new TizenContactPickerExtension(o)); ApiExtensibility.Register(typeof(ILauncherExtension), o => new TizenLauncherExtension(o)); void CreateApp(ApplicationInitializationCallbackParams _) { var app = _appBuilder(); app.Host = this; } WUX.Window.Current.OnNativeSizeChanged( new Windows.Foundation.Size( _tizenApplication.Window.ScreenSize.Width, _tizenApplication.Window.ScreenSize.Height)); WinUI.Application.StartWithArguments(CreateApp); }
static ContactPicker() { if (_contactPickerExtension == null) { ApiExtensibility.CreateInstance(typeof(ContactPicker), out _contactPickerExtension); } }
partial void InitPlatform() { if (!ApiExtensibility.CreateInstance(typeof(SimpleHapticsController), out _simpleHapticsControllerExtension)) { throw new InvalidOperationException($"Unable to find ISimpleHapticsControllerExtension extension"); } }
private static void EnsureExtensionInitialized() { if (_vibrationDeviceExtension == null) { ApiExtensibility.CreateInstance(typeof(VibrationDevice), out _vibrationDeviceExtension); } }
partial void InitializePartial() { if (!ApiExtensibility.CreateInstance(this, out _coreWindowExtension)) { // throw new InvalidOperationException($"Unable to find ICoreWindowExtension extension"); } }
static WpfHost() { ApiExtensibility.Register(typeof(Windows.UI.Core.ICoreWindowExtension), o => new WpfUIElementPointersSupport(o)); ApiExtensibility.Register(typeof(Windows.UI.ViewManagement.IApplicationViewExtension), o => new WpfApplicationViewExtension(o)); ApiExtensibility.Register(typeof(WinUI.IApplicationExtension), o => new WpfApplicationExtension(o)); ApiExtensibility.Register(typeof(IDisplayInformationExtension), o => new WpfDisplayInformationExtension(o)); }
partial void Initialize() { if (!ApiExtensibility.CreateInstance(this, out _displayInformationExtension)) { throw new InvalidOperationException($"Unable to find IDisplayInformationExtension extension"); } }
public ApplicationView() { if (!ApiExtensibility.CreateInstance(this, out _applicationViewExtension)) { throw new InvalidOperationException($"Unable to find IApplicationViewExtension extension"); } }
static WpfHost() { ApiExtensibility.Register(typeof(Windows.UI.Core.ICoreWindowExtension), o => new WpfCoreWindowExtension(o)); ApiExtensibility.Register(typeof(Windows.UI.ViewManagement.IApplicationViewExtension), o => new WpfApplicationViewExtension(o)); ApiExtensibility.Register(typeof(ISystemThemeHelperExtension), o => new WpfSystemThemeHelperExtension(o)); ApiExtensibility.Register(typeof(IDisplayInformationExtension), o => new WpfDisplayInformationExtension(o)); ApiExtensibility.Register(typeof(Windows.ApplicationModel.DataTransfer.DragDrop.Core.IDragDropExtension), o => new WpfDragDropExtension(o)); }
public DragDropManager(Window window) { _window = window; if (ApiExtensibility.CreateInstance <IDragDropExtension>(this, out var extension)) { _hostExtension = extension; } }
/// <summary> /// Assert that the native overlay layer for Skia targets is initialized in time for UI to appear. /// </summary> public void AssertIssue8641NativeOverlayInitialized() { #if __SKIA__ var textBox = new TextBox(); var textBoxView = new TextBoxView(textBox); ApiExtensibility.CreateInstance <ITextBoxViewExtension>(textBoxView, out var textBoxViewExtension); Assert.IsTrue(textBoxViewExtension.IsNativeOverlayLayerInitialized); #endif }
private static SystemTheme GetSystemTheme() { if (_systemThemeHelperExtension == null) { ApiExtensibility.CreateInstance(typeof(SystemThemeHelper), out _systemThemeHelperExtension); } return(_systemThemeHelperExtension?.GetSystemTheme() ?? SystemTheme.Light); }
public Application(IntPtr javaReference, JniHandleOwnership transfer) : base(() => new App(), javaReference, transfer) { ConfigureUniversalImageLoader(); ApiExtensibility.Register( typeof(IWebAuthenticationBrokerProvider), _ => new ChromeCustomTabsProvider()); }
static WebAuthenticationBroker() { ApiExtensibility.CreateInstance(null, out _authenticationBrokerProvider); // If no custom extension found, default to internal one. if (_authenticationBrokerProvider == null) { _authenticationBrokerProvider = new WebAuthenticationBrokerProvider(); } }
private void TryInitializeSpanningRectsExtension() { if (_defaultSpanningRects == null && _applicationViewSpanningRects == null) { if (!ApiExtensibility.CreateInstance <IApplicationViewSpanningRects>(this, out _applicationViewSpanningRects)) { _defaultSpanningRects = new List <Rect>(0); } } }
/// <summary> /// Initializes the singleton application object. This is the first line of authored code /// executed, and as such is the logical equivalent of main() or WinMain(). /// </summary> public App() { // Register the IFileSavePickerExtension for iOS. #if __IOS__ ApiExtensibility.Register(typeof(Uno.Extensions.Storage.Pickers.IFileSavePickerExtension), (picker) => new FolderSavePickerExtension(picker)); #endif ConfigureFilters(global::Uno.Extensions.LogExtensionPoint.AmbientLoggerFactory); this.InitializeComponent(); this.Suspending += OnSuspending; }
static WpfHost() { DefaultStyleKeyProperty.OverrideMetadata(typeof(WpfHost), new WpfFrameworkPropertyMetadata(typeof(WpfHost))); ApiExtensibility.Register(typeof(Windows.UI.Core.ICoreWindowExtension), o => new WpfCoreWindowExtension(o)); ApiExtensibility.Register(typeof(Windows.UI.ViewManagement.IApplicationViewExtension), o => new WpfApplicationViewExtension(o)); ApiExtensibility.Register(typeof(ISystemThemeHelperExtension), o => new WpfSystemThemeHelperExtension(o)); ApiExtensibility.Register(typeof(IDisplayInformationExtension), o => new WpfDisplayInformationExtension(o)); ApiExtensibility.Register(typeof(Windows.ApplicationModel.DataTransfer.DragDrop.Core.IDragDropExtension), o => new WpfDragDropExtension(o)); ApiExtensibility.Register(typeof(IFileOpenPickerExtension), o => new FileOpenPickerExtension(o)); ApiExtensibility.Register(typeof(IFileSavePickerExtension), o => new FileSavePickerExtension(o)); ApiExtensibility.Register <TextBoxView>(typeof(ITextBoxViewExtension), o => new TextBoxViewExtension(o)); }
public TextBoxView(TextBox textBox) { _textBox = new WeakReference <TextBox>(textBox); if (!ApiExtensibility.CreateInstance(this, out _textBoxExtension)) { if (this.Log().IsEnabled(LogLevel.Warning)) { this.Log().LogWarning( "No TextBoxView implementation is available " + "for this Skia target. Functionality will be limited."); } } }
public DragDropManager(Window window) { _window = window; #if __MACOS__ // Dependency injection not currently supported on macOS _hostExtension = new MacOSDragDropExtension(this); #else if (ApiExtensibility.CreateInstance <IDragDropExtension>(this, out var extension)) { _hostExtension = extension; } #endif }
private static void TryInitializeHingeAngleSensor(HingeAngleSensor owner) { if (_hingeAngleSensor != null) { return; } lock (_syncLock) { if (_hingeAngleSensor == null && !ApiExtensibility.CreateInstance(owner, out _hingeAngleSensor)) { owner.Log().Warn("You need to reference Uno.UI.DualScreen NuGet package from your project to use this feature."); } } }
public Application() { Current = this; Package.SetEntryAssembly(this.GetType().Assembly); if (!_startInvoked) { throw new InvalidOperationException("The application must be started using Application.Start first, e.g. Windows.UI.Xaml.Application.Start(_ => new App());"); } ApiExtensibility.CreateInstance(this, out _applicationExtension); CoreDispatcher.Main.RunAsync(CoreDispatcherPriority.Normal, Initialize); }
private async Task <IUICommand> ShowInnerAsync(CancellationToken ct) { #if __IOS__ || __MACOS__ || __ANDROID__ || __WASM__ if (WinRTFeatureConfiguration.MessageDialog.UseNativeDialog) { return(await ShowNativeAsync(ct)); } #endif if (!ApiExtensibility.CreateInstance <IMessageDialogExtension>(this, out var extension)) { throw new InvalidOperationException("MessageDialog extension is not registered"); } return(await extension.ShowAsync(ct)); }
public PointerManager(InputManager inputManager) { if (_pointerExtension is null) { ApiExtensibility.CreateInstance(typeof(PointerManager), out _pointerExtension); // TODO: Add IPointerExtension implementation to all Skia targets and create instance per XamlRoot https://github.com/unoplatform/uno/issues/8978 } _inputManager = inputManager; if (_inputManager._contentRoot.Type == ContentRootType.CoreWindow) { Windows.UI.Xaml.Window.Current.CoreWindow.PointerMoved += (c, e) => OnPointerMoved(e); Windows.UI.Xaml.Window.Current.CoreWindow.PointerEntered += (c, e) => OnPointerEntered(e); Windows.UI.Xaml.Window.Current.CoreWindow.PointerExited += (c, e) => OnPointerExited(e); Windows.UI.Xaml.Window.Current.CoreWindow.PointerPressed += (c, e) => OnPointerPressed(e); Windows.UI.Xaml.Window.Current.CoreWindow.PointerReleased += (c, e) => OnPointerReleased(e); Windows.UI.Xaml.Window.Current.CoreWindow.PointerWheelChanged += (c, e) => OnPointerWheelChanged(e); Windows.UI.Xaml.Window.Current.CoreWindow.PointerCancelled += (c, e) => OnPointerCancelled(e); } }
public void Run() { ApiExtensibility.Register(typeof(Windows.UI.Core.ICoreWindowExtension), o => new TizenUIElementPointersSupport(o, _tizenApplication.Canvas)); ApiExtensibility.Register(typeof(Windows.UI.ViewManagement.IApplicationViewExtension), o => new TizenApplicationViewExtension(o, _tizenApplication.Window)); ApiExtensibility.Register(typeof(IApplicationExtension), o => new TizenApplicationExtension(o)); ApiExtensibility.Register(typeof(IDisplayInformationExtension), o => new TizenDisplayInformationExtension(o, _tizenApplication.Window)); void CreateApp(ApplicationInitializationCallbackParams _) { var app = _appBuilder(); app.Host = this; } WUX.Window.Current.OnNativeSizeChanged( new Windows.Foundation.Size( _tizenApplication.Window.ScreenSize.Width, _tizenApplication.Window.ScreenSize.Height)); WinUI.Application.Start(CreateApp, _args); }
static WpfHost() { DefaultStyleKeyProperty.OverrideMetadata(typeof(WpfHost), new WpfFrameworkPropertyMetadata(typeof(WpfHost))); ApiExtensibility.Register(typeof(Windows.UI.Core.ICoreWindowExtension), o => new WpfCoreWindowExtension(o)); ApiExtensibility.Register <Windows.UI.Xaml.Application>(typeof(IApplicationExtension), o => new WpfApplicationExtension(o)); ApiExtensibility.Register(typeof(Windows.UI.ViewManagement.IApplicationViewExtension), o => new WpfApplicationViewExtension(o)); ApiExtensibility.Register(typeof(ISystemThemeHelperExtension), o => new WpfSystemThemeHelperExtension(o)); ApiExtensibility.Register(typeof(IDisplayInformationExtension), o => new WpfDisplayInformationExtension(o)); ApiExtensibility.Register(typeof(Windows.ApplicationModel.DataTransfer.DragDrop.Core.IDragDropExtension), o => new WpfDragDropExtension(o)); ApiExtensibility.Register(typeof(IFileOpenPickerExtension), o => new FileOpenPickerExtension(o)); ApiExtensibility.Register <FolderPicker>(typeof(IFolderPickerExtension), o => new FolderPickerExtension(o)); ApiExtensibility.Register(typeof(IFileSavePickerExtension), o => new FileSavePickerExtension(o)); ApiExtensibility.Register(typeof(IConnectionProfileExtension), o => new WindowsConnectionProfileExtension(o)); ApiExtensibility.Register <TextBoxView>(typeof(ITextBoxViewExtension), o => new TextBoxViewExtension(o)); ApiExtensibility.Register(typeof(ILauncherExtension), o => new LauncherExtension(o)); ApiExtensibility.Register(typeof(IClipboardExtension), o => new ClipboardExtensions(o)); ApiExtensibility.Register(typeof(IAnalyticsInfoExtension), o => new AnalyticsInfoExtension()); ApiExtensibility.Register(typeof(ISystemNavigationManagerPreviewExtension), o => new SystemNavigationManagerPreviewExtension()); }
public void Run() { Gtk.Application.Init(); ApiExtensibility.Register(typeof(Windows.UI.Core.ICoreWindowExtension), o => new GtkUIElementPointersSupport(o)); _window = new Gtk.Window("Uno Host"); _window.SetDefaultSize(1024, 800); _window.SetPosition(Gtk.WindowPosition.Center); _window.DeleteEvent += delegate { Gtk.Application.Quit(); }; Windows.UI.Core.CoreDispatcher.DispatchOverride = d => { if (Gtk.Application.EventsPending()) { Gtk.Application.RunIteration(false); } GLib.Idle.Add(delegate { Console.WriteLine("iteration"); try { d(); } catch (Exception e) { Console.WriteLine(e); } return(false); }); }; _window.Realized += (s, e) => { WUX.Window.Current.OnNativeSizeChanged(new Windows.Foundation.Size(_window.AllocatedWidth, _window.AllocatedHeight)); }; _window.SizeAllocated += (s, e) => { WUX.Window.Current.OnNativeSizeChanged(new Windows.Foundation.Size(e.Allocation.Width, e.Allocation.Height)); }; var area = new UnoDrawingArea(); _window.Add(area); /* avoids double invokes at window level */ area.AddEvents((int)( Gdk.EventMask.PointerMotionMask | Gdk.EventMask.ButtonPressMask | Gdk.EventMask.ButtonReleaseMask )); _window.ShowAll(); WUX.Application.Start(_ => _appBuilder()); Gtk.Application.Run(); }
public void Run() { Gtk.Application.Init(); ApiExtensibility.Register(typeof(Windows.UI.Core.ICoreWindowExtension), o => new GtkUIElementPointersSupport(o)); ApiExtensibility.Register(typeof(Windows.UI.ViewManagement.IApplicationViewExtension), o => new GtkApplicationViewExtension(o)); ApiExtensibility.Register(typeof(IApplicationExtension), o => new GtkApplicationExtension(o)); ApiExtensibility.Register(typeof(Windows.Graphics.Display.IDisplayInformationExtension), o => _displayInformationExtension ??= new GtkDisplayInformationExtension(o, _window)); _window = new Gtk.Window("Uno Host"); _window.SetDefaultSize(1024, 800); _window.SetPosition(Gtk.WindowPosition.Center); _window.DeleteEvent += delegate { Gtk.Application.Quit(); }; Windows.UI.Core.CoreDispatcher.DispatchOverride = d => { if (Gtk.Application.EventsPending()) { Gtk.Application.RunIteration(false); } GLib.Idle.Add(delegate { if (this.Log().IsEnabled(Microsoft.Extensions.Logging.LogLevel.Trace)) { this.Log().Trace($"Iteration"); } try { d(); } catch (Exception e) { Console.WriteLine(e); } return(false); }); }; _window.Realized += (s, e) => { WUX.Window.Current.OnNativeSizeChanged(new Windows.Foundation.Size(_window.AllocatedWidth, _window.AllocatedHeight)); }; _window.SizeAllocated += (s, e) => { WUX.Window.Current.OnNativeSizeChanged(new Windows.Foundation.Size(e.Allocation.Width, e.Allocation.Height)); }; _area = new UnoDrawingArea(); _window.Add(_area); /* avoids double invokes at window level */ _area.AddEvents((int)( Gdk.EventMask.PointerMotionMask | Gdk.EventMask.ButtonPressMask | Gdk.EventMask.ButtonReleaseMask )); _window.ShowAll(); void CreateApp(ApplicationInitializationCallbackParams _) { var app = _appBuilder(); app.Host = this; } WUX.Application.Start(CreateApp, _args); UpdateWindowPropertiesFromPackage(); Gtk.Application.Run(); }