コード例 #1
0
ファイル: Program.cs プロジェクト: zk2013/ReClass.NET
        static void Main(string[] args)
        {
            DesignMode = false;             // The designer doesn't call Main()

            CommandLineArgs = new CommandLineArgs(args);

            try
            {
                DpiUtil.ConfigureProcess();
            }
            catch
            {
            }

            MonoSpaceFont = new FontEx
            {
                Font   = new Font("Courier New", DpiUtil.ScaleIntX(13), GraphicsUnit.Pixel),
                Width  = DpiUtil.ScaleIntX(8),
                Height = DpiUtil.ScaleIntY(16)
            };

            NativeMethods.EnableDebugPrivileges();

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture;

            Settings = SettingsSerializer.Load();
            Logger   = new GuiLogger();

#if !DEBUG
            try
            {
#endif
            using (var coreFunctions = new CoreFunctionsManager())
            {
                RemoteProcess = new RemoteProcess(coreFunctions);

                MainForm = new MainForm();

                Application.Run(MainForm);

                RemoteProcess.Dispose();
            }
#if !DEBUG
        }

        catch (Exception ex)
        {
            ShowException(ex);
        }
#endif

            SettingsSerializer.Save(Settings);
        }
コード例 #2
0
 private void pbGo_Click(object sender, EventArgs e)
 {
     myLogger         = new GuiLogger(false);
     myLogger.CFSLog += new CFSLogHandler(GuiLogger_CFSLog);
     this.tbLog.Text  = "starting to restore from " + tbFirstFile.Text + " to " + tbOutPath.Text;
     yourLogger       = Logger.setLogger(myLogger);
     restorer         = new CFSRestore(tbFirstFile.Text, tbOutPath.Text);
     restorer.CFSRestoreCompletion += new CFSRestoreCompletionHandler(CFSRestore_CFSRestoreCompletion);
     restoThread = new Thread(new ThreadStart(restorer.Restore));
     busy        = true;
     restoThread.Start();
     Thread.Sleep(500);
     manageGuiState();
 }
コード例 #3
0
ファイル: ModLoaderBridge.cs プロジェクト: Tahvohck/Modnix
 internal void CheckSetup()
 {
     lock (this) {
         if (ModLoader.NeedSetup)
         {
             App.Log("Initiating ModLoader");
             var logger = new GuiLogger();
             ModLoader.SetLog(logger);
             logger.Filters.Add(LogFilters.AddPrefix("Loader┊"));
             App.Log("Setup ModLoader");
             ModLoader.Setup();
             Sandbox.EnqueueSandbox();
         }
     }
 }
コード例 #4
0
        private void LogCurrentEpochResult(
            string message, int guiLogIntensity,
            int currentEpoch, int plannedEpochCount
            )
        {
            bool shouldLogToGui = (currentEpoch % guiLogIntensity == 0) ||
                                  currentEpoch == plannedEpochCount;

            if (shouldLogToGui)
            {
                GuiLogger.LogWriteLine(message);
            }

            NLogLogger.Info(message);
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: tralivali1234/ReClass.NET
        static void Main()
        {
            DesignMode = false;             // The designer doesn't call Main()

            try
            {
                DpiUtil.ConfigureProcess();
            }
            catch
            {
            }

            NativeMethods.EnableDebugPrivileges();

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture;

            Settings = Settings.Load(Constants.SettingsFile);
            Logger   = new GuiLogger();
#if DEBUG
            using (var coreFunctions = new CoreFunctionsManager())
            {
                MainForm = new MainForm(coreFunctions);

                Application.Run(MainForm);
            }
#else
            try
            {
                using (var nativeHelper = new CoreFunctionsManager())
                {
                    MainForm = new MainForm(nativeHelper);

                    Application.Run(MainForm);
                }
            }
            catch (Exception ex)
            {
                ShowException(ex);
            }
#endif

            Settings.Save(Settings, Constants.SettingsFile);
        }
コード例 #6
0
ファイル: MainForm.cs プロジェクト: bakakamo/TadaBuild
 public GuiThreadLogger(GuiLogger owner, Thread thread)
     : base(thread)
 {
     _owner = owner;
     if (Thread.CurrentThread == _owner.RunnerThread)
     {
         _treeView = _owner._owner._mainTreeView;
     }
     else
     {
         _treeView = (TreeView)_owner._owner.Invoke(new AddTreeViewDelegate(_owner._owner.AddTreeView), thread != null ? thread.Name : string.Format("Unknown thread: {0}", Thread.CurrentThread.Name));
     }
 }
コード例 #7
0
ファイル: Program.cs プロジェクト: zanzo420/ReClass.NET
        static void Main(string[] args)
        {
            DesignMode = false;             // The designer doesn't call Main()

            CommandLineArgs = new CommandLineArgs(args);

            try
            {
                DpiUtil.ConfigureProcess();
                DpiUtil.TrySetDpiFromCurrentDesktop();
            }
            catch
            {
                // ignored
            }

            MonoSpaceFont = new FontEx
            {
                Font   = new Font("Courier New", DpiUtil.ScaleIntX(13), GraphicsUnit.Pixel),
                Width  = DpiUtil.ScaleIntX(8),
                Height = DpiUtil.ScaleIntY(16)
            };

            NativeMethods.EnableDebugPrivileges();

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture;

            Settings = SettingsSerializer.Load();
            Logger   = new GuiLogger();

            if (!NativeMethods.IsUnix() && Settings.RunAsAdmin && !WinUtil.IsAdministrator)
            {
                WinUtil.RunElevated(Process.GetCurrentProcess().MainModule?.FileName, args.Length > 0 ? string.Join(" ", args) : null);
                return;
            }

#if !DEBUG
            try
            {
#endif
            using (var coreFunctions = new CoreFunctionsManager())
            {
                RemoteProcess = new RemoteProcess(coreFunctions);

                MainForm = new MainForm();

                Application.Run(MainForm);

                RemoteProcess.Dispose();
            }
#if !DEBUG
        }

        catch (Exception ex)
        {
            ShowException(ex);
        }
#endif

            SettingsSerializer.Save(Settings);
        }
コード例 #8
0
ファイル: PatternsViewModel.cs プロジェクト: smartfish/PT.PM
        public PatternsViewModel(PatternUserControl patternUserControl)
        {
            patternsListBox      = patternUserControl.Find <ListBox>("PatternsListBox");
            patternTextBox       = patternUserControl.Find <TextBox>("PatternData");
            patternErrorsListBox = patternUserControl.Find <ListBox>("PatternErrors");
            logger = patternUserControl.Find <TextBox>("Logger");

            Dispatcher.UIThread.InvokeAsync(async() =>
            {
                bool error = false;
                if (!string.IsNullOrEmpty(Settings.PatternsFileName))
                {
                    try
                    {
                        PatternsFileName = Settings.PatternsFileName;
                        SelectedPattern  = Patterns.FirstOrDefault(p => p.Key == Settings.SelectedPatternKey) ?? Patterns.FirstOrDefault();
                    }
                    catch (Exception ex)
                    {
                        await MessageBox.ShowDialog(ex.Message);
                        error = true;
                    }
                }

                if (string.IsNullOrEmpty(Settings.PatternsFileName) || error)
                {
                    Settings.PatternsFileName = Settings.DefaultPatternsFileName;
                    SelectedPattern           = Patterns.FirstOrDefault();
                    SavePatterns();
                    Settings.Save();
                }
            });

            patternsListBox.DoubleTapped += (object sender, Avalonia.Interactivity.RoutedEventArgs e) =>
            {
                OpenPatternAction();
            };

            patternErrorsListBox.DoubleTapped += (object sender, Avalonia.Interactivity.RoutedEventArgs e) =>
            {
                GuiHelpers.ProcessErrorOnDoubleClick(patternErrorsListBox, patternTextBox);
            };

            patternLogger = new GuiLogger(PatternErrors)
            {
                LogPatternErrors = true
            };
            patternLogger.LogEvent += PatternLogger_LogEvent;
            dslProcessor.Logger     = patternLogger;

            patternTextBox.GetObservable(TextBox.CaretIndexProperty)
            .Subscribe(UpdatePatternCaretIndex);

            patternTextBox.GetObservable(TextBox.TextProperty)
            .Throttle(TimeSpan.FromMilliseconds(250))
            .Subscribe(str =>
            {
                if (SelectedPattern != null)
                {
                    Value = str;
                }
            });

            OpenPatterns = ReactiveCommand.Create(async() =>
            {
                SavePatterns();
                var openFileDialog = new OpenFileDialog
                {
                    Title = "Select patterns database",
                };
                var fileNames = await openFileDialog.ShowAsync(ServiceLocator.MainWindow);
                if (fileNames != null)
                {
                    try
                    {
                        PatternsFileName = fileNames.First();
                    }
                    catch (Exception ex)
                    {
                        await MessageBox.ShowDialog(ex.Message);
                        Settings.PatternsFileName = Settings.DefaultPatternsFileName;
                        Settings.Save();
                        SelectedPattern = Patterns.FirstOrDefault();
                        ServiceLocator.MainWindowViewModel.ActivateWindow();
                    }
                }
            });

            CreatePattern = ReactiveCommand.Create(() =>
            {
                SavePatterns();
                PatternViewModel newPatternViewMode = CreateNewPattern();
                Patterns.Add(newPatternViewMode);
                SelectedPattern = newPatternViewMode;
                SavePatterns();
            });

            RemovePattern = ReactiveCommand.Create(async() =>
            {
                if (SelectedPattern != null && await MessageBox.ShowDialog($"Do you want to remove {SelectedPattern}?", messageBoxType: MessageBoxType.YesNo))
                {
                    Patterns.Remove(SelectedPattern);
                    SelectedPattern = Patterns.LastOrDefault();
                    SavePatterns();
                }
            });

            OpenPattern = ReactiveCommand.Create(OpenPatternAction);

            SavePattern = ReactiveCommand.Create(() => SavePatterns());

            void OpenPatternAction()
            {
                if (patternsListBox.SelectedItem != null)
                {
                    SelectedPattern = (PatternViewModel)patternsListBox.SelectedItem;
                }
            }
        }
コード例 #9
0
 private void LogInfoUsingBothLoggers(string message)
 {
     GuiLogger.LogWriteLine(message);
     NLogLogger.Info(message);
 }
コード例 #10
0
        public PatternsViewModel(PatternUserControl patternUserControl)
        {
            patternsListBox      = patternUserControl.Find <ListBox>("PatternsListBox");
            patternTextBox       = patternUserControl.Find <TextEditor>("PatternData");
            patternErrorsListBox = patternUserControl.Find <ListBox>("PatternErrors");
            logger = patternUserControl.Find <TextBox>("Logger");

            Dispatcher.UIThread.InvokeAsync(async() =>
            {
                bool error = false;
                if (!string.IsNullOrEmpty(Settings.PatternsFileName))
                {
                    try
                    {
                        PatternsFileName = Settings.PatternsFileName;
                        SelectedPattern  = Patterns.FirstOrDefault(p => p.Key == Settings.SelectedPatternKey) ?? Patterns.FirstOrDefault();
                    }
                    catch (Exception ex)
                    {
                        await MessageBox.ShowDialog(ex.Message);
                        error = true;
                    }
                }

                if (string.IsNullOrEmpty(Settings.PatternsFileName) || error)
                {
                    Settings.PatternsFileName = Settings.DefaultPatternsFileName;
                    SelectedPattern           = Patterns.FirstOrDefault();
                    SavePatterns();
                    Settings.Save();
                }
            });

            patternsListBox.DoubleTapped += (sender, e) =>
            {
                OpenPatternAction();
            };

            patternErrorsListBox.DoubleTapped += (sender, e) =>
            {
                GuiUtils.ProcessErrorOnDoubleClick(patternErrorsListBox, patternTextBox);
            };

            patternLogger           = GuiLogger.CreatePatternLogger(PatternErrors);
            patternLogger.LogEvent += PatternLogger_LogEvent;
            dslProcessor.Logger     = patternLogger;

            Observable.Timer(TimeSpan.Zero, TimeSpan.FromMilliseconds(200), RxApp.MainThreadScheduler)
            .Subscribe(_ => UpdatePatternCaretIndex());

            var patternTextBoxObserable = Observable.FromEventPattern <EventHandler, EventArgs>(
                h => patternTextBox.TextChanged += h,
                h => patternTextBox.TextChanged -= h);

            patternTextBoxObserable
            .Throttle(TimeSpan.FromMilliseconds(250))
            .ObserveOn(RxApp.MainThreadScheduler)
            .Subscribe(str =>
            {
                if (SelectedPattern != null)
                {
                    Value = patternTextBox.Text;
                }
            });

            OpenPatterns = ReactiveCommand.Create(async() =>
            {
                SavePatterns();
                var openFileDialog = new OpenFileDialog
                {
                    Title = "Select patterns database",
                };
                var fileNames = await openFileDialog.ShowAsync(ServiceLocator.MainWindow);
                if (fileNames != null)
                {
                    try
                    {
                        PatternsFileName = fileNames.First();
                    }
                    catch (Exception ex)
                    {
                        await MessageBox.ShowDialog(ex.Message);
                        Settings.PatternsFileName = Settings.DefaultPatternsFileName;
                        Settings.Save();
                        SelectedPattern = Patterns.FirstOrDefault();
                        ServiceLocator.MainWindowViewModel.ActivateWindow();
                    }
                }
            });

            CreatePattern = ReactiveCommand.Create(() =>
            {
                SavePatterns();
                PatternViewModel newPatternViewMode = CreateNewPattern();
                Patterns.Add(newPatternViewMode);
                SelectedPattern = newPatternViewMode;
                SavePatterns();
            });

            RemovePattern = ReactiveCommand.Create(async() =>
            {
                if (SelectedPattern != null && await MessageBox.ShowDialog($"Do you want to remove {SelectedPattern}?", messageBoxType: MessageBoxType.YesNo))
                {
                    Patterns.Remove(SelectedPattern);
                    SelectedPattern = Patterns.LastOrDefault();
                    SavePatterns();
                }
            });

            OpenPattern = ReactiveCommand.Create(OpenPatternAction);

            SavePattern = ReactiveCommand.Create(() => SavePatterns());

            void OpenPatternAction()
            {
                if (patternsListBox.SelectedItem != null)
                {
                    SelectedPattern = (PatternViewModel)patternsListBox.SelectedItem;
                }
            }
        }