| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- using System;
- using Avalonia.Controls;
- using Avalonia.Native;
- namespace Avalonia
- {
- public static class AvaloniaNativePlatformExtensions
- {
- public static T UseAvaloniaNative<T>(this T builder)
- where T : AppBuilderBase<T>, new()
- {
- builder.UseWindowingSubsystem(() =>
- {
- var platform = AvaloniaNativePlatform.Initialize(
- AvaloniaLocator.Current.GetService<AvaloniaNativePlatformOptions>() ??
- new AvaloniaNativePlatformOptions());
- builder.AfterSetup (x=>
- {
- platform.SetupApplicationName();
- platform.SetupApplicationMenuExporter();
- });
- });
- return builder;
- }
- }
- /// <summary>
- /// OSX backend options.
- /// </summary>
- public class AvaloniaNativePlatformOptions
- {
- /// <summary>
- /// Deferred renderer would be used when set to true. Immediate renderer when set to false. The default value is true.
- /// </summary>
- /// <remarks>
- /// Avalonia has two rendering modes: Immediate and Deferred rendering.
- /// Immediate re-renders the whole scene when some element is changed on the scene. Deferred re-renders only changed elements.
- /// </remarks>
- public bool UseDeferredRendering { get; set; } = true;
- /// <summary>
- /// Determines whether to use GPU for rendering in your project. The default value is true.
- /// </summary>
- public bool UseGpu { get; set; } = true;
- /// <summary>
- /// Embeds popups to the window when set to true. The default value is false.
- /// </summary>
- public bool OverlayPopups { get; set; }
- /// <summary>
- /// This property should be used in case you want to build Avalonia OSX native part by yourself
- /// and make your Avalonia app run with it. The default value is null.
- /// </summary>
- public string AvaloniaNativeLibraryPath { get; set; }
- }
- // ReSharper disable once InconsistentNaming
- /// <summary>
- /// OSX front-end options.
- /// </summary>
- public class MacOSPlatformOptions
- {
- /// <summary>
- /// Determines whether to show your application in the dock when it runs. The default value is true.
- /// </summary>
- public bool ShowInDock { get; set; } = true;
- /// <summary>
- /// By default, Avalonia adds items like Quit, Hide to the OSX Application Menu.
- /// You can prevent Avalonia from adding those items to the OSX Application Menu with this property. The default value is false.
- /// </summary>
- public bool DisableDefaultApplicationMenuItems { get; set; }
-
- /// <summary>
- /// Gets or sets a value indicating whether the native macOS menu bar will be enabled for the application.
- /// </summary>
- public bool DisableNativeMenus { get; set; }
- }
- }
|