コード例 #1
0
        static void Main(string[] args)
        {
            try
            {
                ApplicationArgs appArgs = ApplicationArgs.Parse(args);

                ExceptionsHandler.SetExceptionHandlers(appArgs.IsTestingMode);

                ProcessNameSetter.SetProcessName("linux");

                ThreadWaiterBuilder.Initialize(new GtkApplicationTimerBuilder());

                GuiMessage.Initialize(new GtkGuiMessage());

                if (appArgs.IsTestingMode)
                {
                    InstallTestAssembliesResolver(appArgs.PathToAssemblies);
                }

                // Tip: you could launch different windows depending on the
                // argument flags.
                Application.Init();
                WindowHandler.LaunchApplicationWindow();

                if (appArgs.IsTestingMode)
                {
                    WindowHandler.LaunchTest(appArgs.TestInfoFile, appArgs.PathToAssemblies);
                }

                Application.Run();
            }
            catch (Exception ex)
            {
                // You would track the exception here
                Console.Error.WriteLine($"{ex.GetType()}: {ex.Message}");
                Console.Error.WriteLine(ex.StackTrace);

                ExitCode = 1;
                Application.Quit();
            }
            finally
            {
                // You would dispose everything you need here.
                Environment.Exit(ExitCode);
            }
        }
コード例 #2
0
        void GuiMessage.IGuiMessage.ShowError(string title, string message)
        {
            ErrorDialog dialog = new ErrorDialog(
                title, message, WindowHandler.ApplicationWindow);

            WindowHandler.SetActiveDialogForTesting(dialog);

            try
            {
                dialog.RunModal();
            }
            finally
            {
                WindowHandler.RemoveDialogForTesting(dialog);
                dialog.Dispose();
            }
        }
コード例 #3
0
 void ApplicationWindow_DeleteEvent(object sender, DeleteEventArgs e)
 {
     WindowHandler.UnregisterApplicationWindow();
 }