예제 #1
0
        public GameRegistry()
        {
            For <IDownloadedAsset>().Use <DownloadedAsset>();

            switch (OperatingSystem.Detect())
            {
            case SupportedOperatingSystem.Linux:
                For <IParkitectPaths>().Use <LinuxParkitectPaths>();
                For <IParkitect>().Singleton().Use <LinuxParkitect>();
                break;

            case SupportedOperatingSystem.MacOSX:
                For <IParkitectPaths>().Use <MacOSXParkitectPaths>();
                For <IParkitect>().Singleton().Use <MacOSXParkitect>();
                break;

            case SupportedOperatingSystem.Windows:
                For <IParkitectPaths>().Use <WindowsParkitectPaths>();
                For <IParkitect>().Singleton().Use <WindowsParkitect>();
                break;

            default:
                throw new ArgumentOutOfRangeException("operating system not supported");
            }
        }
예제 #2
0
        private void TaskManager_TaskAdded(object sender, QueueableTaskEventArgs e)
        {
            var count = _taskManager.Count;

            DisplayName = count == 0 ? "Tasks" : $"Tasks ({count})";

            if (count == 1)
            {
                _taskViews.Clear();
                _taskManager.ClearCompleted();
            }
            Application.Invoke(() =>
            {
                var tv = new TaskView(e.Task);
                _taskViews.Add(tv);

                if (_tasksOfInterest.Contains(e.Task.GetType()))
                {
                    _mainView.SwitchToTab(4);

                    if (OperatingSystem.Detect() == SupportedOperatingSystem.Windows)
                    {
                        User32.SetForegroundWindow(Process.GetCurrentProcess().MainWindowHandle);
                    }
                }
                ReOrderTasks();
            });
        }
예제 #3
0
 public void HandleSizeChange()
 {
     // Stupid fix awgh...
     if (OperatingSystem.Detect() == SupportedOperatingSystem.MacOSX)
     {
         var backendHost = BackendHost as WidgetBackendHost;
         backendHost?.OnVisibleRectChanged();
     }
 }
예제 #4
0
        /// <summary>
        ///     Initializes a new instance of the <see cref="T:System.Net.WebClient" /> class.
        /// </summary>
        public NexusWebClient(IAuthManager authManager)
        {
            _authManager = authManager;

            var os = OperatingSystem.Detect();

            // Workaround: disable certificate cache on MacOSX.
            if (os == SupportedOperatingSystem.MacOSX)
            {
                ServicePointManager.ServerCertificateValidationCallback += (o, certificate, chain, errors) => true;
            }

            // Add a version number header of requests.
            var version = $"{Assembly.GetEntryAssembly().GetName().Version}-{os}";

            DefaultRequestHeaders.Add("X-ParkitectNexusInstaller-Version", version);
            DefaultRequestHeaders.Add("user-agent", $"ParkitectNexus/{version}");
        }