// TODO: make sure it updates when changing key bindings.
        public void UpdateTexts()
        {
            lock (Helpers.locker)
            {

                var key_bindings = Options.Instance.key_bindings;
                VerticalScrollStep.ToolTip = "How fast mouse wheel 'spins' when you press "
                    + key_bindings[Key.ScrollUp].ToString() + "/"
                    + key_bindings[Key.ScrollDown].ToString();

                HorizontalScrollStep.ToolTip = "How fast mouse wheel 'spins' when you press "
                    + key_bindings[Key.ScrollLeft].ToString() + "/"
                    + key_bindings[Key.ScrollRight].ToString();

                string calibration_buttons = key_bindings[Key.CalibrateUp].ToString() + "/"
                    + key_bindings[Key.CalibrateLeft].ToString() + "/"
                    + key_bindings[Key.CalibrateDown].ToString() + "/"
                    + key_bindings[Key.CalibrateRight].ToString();


                CalibrationStep.ToolTip = "How fast the cursor moves when you press " + calibration_buttons;

                ClickFreezeTimeMs.ToolTip =
                    "How long the cursor will be frozen when you click stuff. \n" +
                    "\n" +
                    "The cursor may shake when controlled by eyes. This makes some problems.\n" +
                    "Imagine you want to click something, but instead, you get a tiny Drag&Drop because the cursor moved during the click.\n" +
                    "Freezing the cursor after clicks solves this problem.";

                CalibrationFreezeTimeMs.ToolTip =
                    "How long cursor will be frozen when you calibrate (" + calibration_buttons + "). \n" +
                    "\n" +
                    "Helps clicking little areas when cursor is shaking.";

                DoubleSpeedUpTimeMs.ToolTip =
                    "Frequent presses speed-up calibration and scrolling. \n" +
                    "If you press " + calibration_buttons + " twice during this time then the second press will move cursor twice farther.";

                QuadrupleSpeedUpTimeMs.ToolTip =
                    "Frequent presses speed-up calibration and scrolling. \n" +
                    "If you press " + calibration_buttons + " twice during this time then the second press will move cursor four times farther.";

                ModifierShortPressTimeMs.ToolTip =
                    "If you press " + key_bindings[Key.Modifier] + " for a short period of time this press will go to OS. \n" +
                    "The reason this option exists is to make Windows Start Menu available.\n" +
                    "If you see Start Menu more often than you want then decrease this time.\n" +
                    "If you cannot open Start Menu because " + Helpers.application_name + " intercepts your key presses then increase it.";

                SmootheningPointsCount.ToolTip =
                    "Number of gaze points used to smooth the cursor position. \n" +
                    "The resulting cursor position is the arithmetic mean of these points.";

                SmotheningZoneRadius.ToolTip =
                    "A distance after which the cursor stop being smooth.\n" +
                    "If you move your gaze quickly farther than this value the cursor will jump instantly to the new gaze point.";

                string calibration_view_hotkeys = Helpers.GetModifierString() + " + " +
                    Options.Instance.key_bindings[Key.ShowCalibrationView].ToString();

                CalibrationModeLabel.ToolTip = CalibrationModeCombo.ToolTip =
                "When you use " + calibration_buttons + " " + Helpers.application_name + " slowly gathers data to increase accuracy.\n" +
                    "The algorithm is a bit tricky. It can use different data and different amounts of data.\n" +
                    "To be honest I don't know what parameters are optimal. Trying to figure it out. \n\n" +
                    "Modes:\n" +
                    "1.'Simple & Fast' uses as little data as reasonable. \n" +
                    "   * Quick learning period. \n" +
                    "   * Rough (but probably the best possible) precision. \n" +
                    "   * Absolutely best when the Eye Tracker device has a poor fixation. \n" +
                    "   * No extra CPU load.\n" +
                    "   * Recommended.\n" +
                    "2.'Multidimensional' uses much more data than 'Simple & Fast'. \n" +
                    "   * Tracks head position. \n" +
                    "   * Long learning period (months of using). \n" +
                    "   * Rough initial precision. \n" +
                    "   * When learned it may provide precison better than 'Simple & Fast'. \n" +
                    "   * This mode is experimental.\n" +
                    "   * !!! DON'T use this mode if the Eye Tracker device has a poor fixation !!!";

                AdvancedCalibrationSettings.ToolTip = 
                    "Understanding advanced calibration settings may be challenging.\n" +
                    "It's easy to make things worse by changing this settings.\n" +
                    "Proceed only if you understand exactly what you are doing.";

                System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
                FileVersionInfo fileVersionInfo = FileVersionInfo.GetVersionInfo(assembly.Location);
                TextBlockVersion.Text = "Version: " + fileVersionInfo.FileMajorPart + "." + fileVersionInfo.FileMinorPart + "." + fileVersionInfo.FileBuildPart;
            }
        }
示例#2
0
 public static string GetModifierString()
 {
     return(Helpers.GetKeyString(Options.Instance.key_bindings[Key.Modifier], Options.Instance.key_bindings.is_modifier_e0));
 }