예제 #1
0
        private void RunEditor(string initialFile)
        {
            var editor = new FormEditor();

            editor.Show();
            var options = new OdysseyOptions
            {
                PreventExit      = chkPreventExit.Checked,
                ExcludeGibberish = chkExcludeGibberish.Checked,
                DisableClipboard = chkDisableClipboard.Checked,
                InitialFile      = initialFile
            };

            if (rbTimeGoal.Checked)
            {
                options.TimeGoal = TimeSpan.FromMinutes((int)numTimePeriod.Value);
            }

            if (rbWordGoal.Checked)
            {
                options.WordGoal = (int)numWordGoal.Value;
            }

            editor.SetOptions(options);
            Close();
        }
예제 #2
0
        public void SetOptions(OdysseyOptions odysseyOptions)
        {
            Options = odysseyOptions;
            if (Options.TimeGoal != null)
            {
                _startTime = DateTime.Now;
            }
            WindowState = FormWindowState.Maximized;
            if (Options.PreventExit)
            {
                odysseyToolStrip1.Padding = new Padding(0, 10, 0, 0);
                TopMost         = true;
                FormBorderStyle = FormBorderStyle.None;
                tmrEnsureNoClose.Start();
                _mGlobalHook          = Hook.GlobalEvents();
                _mGlobalHook.KeyDown += (sender, e) =>
                {
                    if (!Options.PreventExit)
                    {
                        return;
                    }
                    if (e.KeyCode == Keys.Escape || e.KeyCode == Keys.LWin || e.KeyCode == Keys.RWin)
                    {
                        e.Handled = true;
                    }
                };
            }

            if (Options.InitialFile != null)
            {
                textBox.LoadFile(Options.InitialFile);
            }

            tmrCheckCompletion.Start();
        }