Exemplo n.º 1
0
        /// <summary>
        /// Adds menu options under "Server" on the menu
        /// strip for each Language in LocalizationController
        /// </summary>
        private void SetupServerList()
        {
            string currentLanguage = LocalizationController.GetLanguageFromCode(LocalizationController.GetLanguage());

            for (int i = 0; i < ((LocalizationController.Language[])Enum.GetValues(typeof(LocalizationController.Language))).Length; ++i)
            {
                LocalizationController.Language language = (LocalizationController.Language)i;

                MenuItem menuItem = new MenuItem
                {
                    Header = language.ToString()
                };

                LanguageToolStripMenuItem.Items.Add(menuItem);
                menuItem.Click += (s, e) =>
                {
                    if (menuItem.IsChecked)
                    {
                        return;
                    }

                    CultureInfo cultureInfo = new CultureInfo(LocalizationController.GetCodeFromLanguage(language));
                    if (MessageBox.Show(Strings.ResourceManager.GetString("SwitchServer", cultureInfo),
                                        Strings.ResourceManager.GetString("Restart", cultureInfo), MessageBoxButton.YesNo,
                                        MessageBoxImage.Question) != MessageBoxResult.Yes)
                    {
                        return;
                    }
                    LocalizationController.SetLanguage(language);

                    isRestarting = true;

                    ProcessStartInfo startInfo = Process.GetCurrentProcess().StartInfo;
                    startInfo.FileName  = AppController.ExecutablePath;
                    startInfo.Arguments = $"{AppController.ParameterPrefix}restart";
                    Process.Start(startInfo);

                    System.Windows.Application.Current.Shutdown();
                };

                if (currentLanguage == language.ToString())
                {
                    menuItem.IsChecked = true;
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Application_Startup(object sender, StartupEventArgs e)
        {
            // Get the command line arguments and check
            // if the current session is a restart or
            // a minimized start
            string[] args = Environment.GetCommandLineArgs();
            if (args.Any(arg => arg == $"{AppController.ParameterPrefix}restart"))
            {
                isRestarted = true;
            }

            if (args.Any(arg => arg == $"{AppController.ParameterPrefix}minimized"))
            {
                startMinimized = true;
            }

            // Make sure only one instance is running
            // if the application is not currently restarting
            Mutex mutex = new Mutex(true, "GTAWChatLogAssistant", out bool isUnique);

            if (!isUnique && !isRestarted)
            {
                MessageBox.Show(Localization.Strings.OtherInstanceRunning, Localization.Strings.Error, MessageBoxButton.OK, MessageBoxImage.Error);
                Current.Shutdown();
                return;
            }

            // Check if settings already exist
            // for a previous assembly version
            if (!Settings.Default.HasPickedLanguage)
            {
                Settings.Default.Upgrade();
            }

            // Initialize the controllers and
            // display the server picker on the
            // first start, or the main window
            // on subsequent starts
            LocalizationController.InitializeLocale();
            AppController.InitializeServerIp();

            if (!Settings.Default.HasPickedLanguage)
            {
                //LanguagePickerWindow languagePicker = new LanguagePickerWindow();
                //languagePicker.Show();

                Settings.Default.LanguageCode      = LocalizationController.GetCodeFromLanguage(LocalizationController.Language.English);
                Settings.Default.HasPickedLanguage = true;
                Settings.Default.Save();
            }

            MainWindow mainWindow = new MainWindow(startMinimized);

            if (!startMinimized)
            {
                mainWindow.Show();
            }

            // Don't let the garbage
            // collector touch the Mutex
            GC.KeepAlive(mutex);
        }