Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
 partial void InitializePlatform()
 {
     if (ApiExtensibility.CreateInstance <ISystemNavigationManagerPreviewExtension>(this, out var extension))
     {
         _extension = extension;
     }
 }
Exemple #4
0
        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);
     }
 }
Exemple #8
0
 partial void InitializePartial()
 {
     if (!ApiExtensibility.CreateInstance(this, out _coreWindowExtension))
     {
         //	throw new InvalidOperationException($"Unable to find ICoreWindowExtension extension");
     }
 }
Exemple #9
0
 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");
     }
 }
Exemple #11
0
 public ApplicationView()
 {
     if (!ApiExtensibility.CreateInstance(this, out _applicationViewExtension))
     {
         throw new InvalidOperationException($"Unable to find IApplicationViewExtension extension");
     }
 }
Exemple #12
0
 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));
 }
Exemple #13
0
 public DragDropManager(Window window)
 {
     _window = window;
     if (ApiExtensibility.CreateInstance <IDragDropExtension>(this, out var extension))
     {
         _hostExtension = extension;
     }
 }
Exemple #14
0
        /// <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);
        }
Exemple #16
0
        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();
            }
        }
Exemple #18
0
 private void TryInitializeSpanningRectsExtension()
 {
     if (_defaultSpanningRects == null && _applicationViewSpanningRects == null)
     {
         if (!ApiExtensibility.CreateInstance <IApplicationViewSpanningRects>(this, out _applicationViewSpanningRects))
         {
             _defaultSpanningRects = new List <Rect>(0);
         }
     }
 }
Exemple #19
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;
        }
Exemple #20
0
        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));
        }
Exemple #21
0
 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.");
         }
     }
 }
Exemple #22
0
        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.");
         }
     }
 }
Exemple #24
0
        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);
        }
Exemple #25
0
    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);
            }
        }
Exemple #27
0
        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);
        }
Exemple #28
0
        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());
        }
Exemple #29
0
        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();
        }
Exemple #30
0
        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();
        }