Пример #1
0
 public static void UnregisterAllShortcutActions(IntPtr hwnd)
 {
     foreach (int id in ShortcutActionManager.Instance.Actions.Keys)
     {
         ShortcutKeyToolkit.UnregisterShortcutKey(hwnd, id);
     }
 }
Пример #2
0
 public static void RegisterAllShortcutActions(IntPtr hwnd)
 {
     foreach (ActionInfo ai in ConfigurationManager.Instance.GetCurrentUserConfiguration().UserData.actions)
     {
         if (ai.activated)
         {
             ShortcutKeyToolkit.RegisterShortcutKey(hwnd, ai.id,
                                                    ShortcutKeyToolkit.StringToKeys(ai.shortcutKeys));
         }
     }
 }
Пример #3
0
        internal Configuration GetCurrentUserConfiguration()
        {
            if (currentUserConfig != null)
            {
                return(currentUserConfig);
            }
            else
            {
                currentUserConfig = new Configuration();

                FileInfo file = new FileInfo(GetUserConfigFileName());
                if (!file.Exists)
                {
                    currentUserConfig.UserData = new UserData();

                    foreach (var action in ShortcutActionManager.Instance.Actions.Values)
                    {
                        currentUserConfig.AddShortcutAction(action.Id,
                                                            ShortcutKeyToolkit.KeysToString(action.ShortcutKeys), action.Activated);
                    }

                    Logger.Log("config", "user config not exists, new config created in memory.");
                }
                else
                {
                    try
                    {
                        using (FileStream fs = file.Open(FileMode.Open,
                                                         FileAccess.Read, FileShare.Read))
                        {
                            XmlSerializer serializer = new XmlSerializer(typeof(UserData));
                            currentUserConfig.UserData = serializer.Deserialize(fs) as UserData;
                        }
                    }
                    catch (Exception ex)
                    {
                        Logger.Log("config", "load user config failed: " + ex.Message);
                    }

                    if (currentUserConfig.UserData == null)
                    {
                        currentUserConfig.UserData = new UserData();
                    }
                }
            }

            return(currentUserConfig);
        }
Пример #4
0
        public void SaveConfig()
        {
            Configuration config = ConfigurationManager.Instance.GetCurrentUserConfiguration();

            config.UserData.actions.Clear();

            foreach (ShortcutAction sa in actions.Values)
            {
                config.UserData.actions.Add(new unvell.JustCapture.XML.ActionInfo
                {
                    id           = sa.Id,
                    activated    = sa.Activated,
                    shortcutKeys = ShortcutKeyToolkit.KeysToString(sa.ShortcutKeys),
                });
            }

            config.Dirty = true;

            ConfigurationManager.Instance.SaveConfiguration(config);
        }
Пример #5
0
        private void UpdateShortcutKeys(Keys keys)
        {
            Enum[] splittedKeys = ShortcutKeyToolkit.ConvertToEnumArray(keys);
            bool   found        = false;

            foreach (Keys k in splittedKeys)
            {
                if (modifierKeys.IndexOf(k) == -1)
                {
                    found = true;
                    break;
                }
            }

            Keys rsKeys;

            if (!found)
            {
                Text   = string.Empty;
                rsKeys = Keys.None;
            }
            else
            {
                Text = ShortcutKeyToolkit.KeysToString(keys);

                rsKeys = keys;
            }

            if (rsKeys != shortcutKeys)
            {
                shortcutKeys = rsKeys;

                if (ShortcutKeyChanged != null)
                {
                    ShortcutKeyChanged(this, null);
                }
            }
        }
Пример #6
0
 internal void SetShortcutKey(string keys)
 {
     UpdateShortcutKeys(ShortcutKeyToolkit.StringToKeys(keys));
 }
Пример #7
0
        public SettingForm()
        {
            InitializeComponent();

            InitCulture();

            int r = 0;

            foreach (ShortcutAction action in ShortcutActionManager.Instance.Actions.Values)
            {
                if (action.HideInList)
                {
                    continue;
                }

                ShortcutControlInfo sci = new ShortcutControlInfo
                {
                    Action = action,
                };

                sci.CheckBox = new CheckBox()
                {
                    Text = action.Name, Dock = DockStyle.Fill, Tag = sci
                };
                sci.CheckBox.CheckedChanged += new EventHandler(CheckBox_CheckedChanged);

                unvell.JustCapture.XML.ActionInfo ai = (ConfigurationManager.Instance.GetCurrentUserConfiguration().GetAction(action.Id));

                if (ai != null)
                {
                    sci.CheckBox.Checked = ai.activated;
                }
                sci.KeyField = new ShortcutTextbox()
                {
                    ShortcutKeys = ai == null? Keys.None  :ShortcutKeyToolkit.StringToKeys(ai.shortcutKeys),
                    Dock         = DockStyle.Fill,
                    Tag          = sci
                };

                table.Controls.Add(sci.CheckBox, 0, r);
                table.Controls.Add(sci.KeyField, 1, r);

                scis.Add(sci);
                r++;
            }

            if (RegistryToolkit.PermissionToWriteSystemStartup())
            {
                chkStartup.Enabled = true;
            }
            else
            {
                chkStartup.Enabled      = false;
                imgNoPermission.Visible = true;
                labNoPermission.Visible = true;
            }

            chkStartup.Checked = RegistryToolkit.IsStartupProcessExists(ProductInfo.ProductName);

            chkStartup.CheckedChanged += (s, e) =>
            {
                if (chkStartup.Checked)
                {
                    RegistryToolkit.SetStartupProcess(ProductInfo.ProductName, Application.ExecutablePath);
                }
                else
                {
                    // try delete value of registry
                    if (!RegistryToolkit.RemoveStartupProcess(ProductInfo.ProductName))
                    {
                        // if deleting is failed, try write a non-existed value to start up registry
                        if (!RegistryToolkit.SetStartupProcess(ProductInfo.ProductName, string.Empty))
                        {
                            // if value cannot be replaced with an invalid application path,
                            // check on and tell user the startup item cannot be removed
                            imgNoPermission.Visible = labNoPermission.Visible = true;
                            chkStartup.Checked      = true;
                        }
                    }
                }
            };

            // show toolbar
            chkShowToolboxInCapturer.Checked = ConfigurationManager.Instance.IsCurrentUserSetting(
                UserConfigKey.CF_Toolstrip, true);

            // restore last selected region
            chkRestorePreviousRegion.Checked = ConfigurationManager.Instance.IsCurrentUserSetting(
                UserConfigKey.User_RestoreLastSelectRegion, true);

            // check for updates
            chkCheckForUpdates.Checked = ConfigurationManager.Instance.IsCurrentUserSetting(
                UserConfigKey.User_EnableCheckForUpdates, true);

            outerLineColorComboBox.CurrentColor = FileToolkit.DecodeColor(ConfigurationManager.Instance.GetCurrentUserSetting(
                                                                              UserConfigKey.CF_Selection_OuterColor, Color.Black.Name));
            innerLineColorComboBox.CurrentColor = FileToolkit.DecodeColor(ConfigurationManager.Instance.GetCurrentUserSetting(
                                                                              UserConfigKey.CF_Selection_InnerColor, Color.Gold.Name));
            thumbColorComboBox.CurrentColor = FileToolkit.DecodeColor(ConfigurationManager.Instance.GetCurrentUserSetting(
                                                                          UserConfigKey.CF_Selection_ThumbColor, Color.SkyBlue.Name));

            // show coordinate info
            chkShowCoordinateInfo.Checked = ConfigurationManager.Instance.IsCurrentUserSetting(UserConfigKey.CF_Show_Coordinate_Info, true);

            // magnifier scale
            string magnifierScaleStr = ConfigurationManager.Instance.GetCurrentUserSetting(UserConfigKey.CF_Magnifier_Scale, "2");
            int    magnifierScale    = 2;

            int.TryParse(magnifierScaleStr, out magnifierScale);
            trkMagnifierScale.ValueChanged += (s, e) => UpdateMagnifierValue();
            trkMagnifierScale.Value         = magnifierScale;

            regionSelectionSamplePanel.Paint += (s, e) =>
            {
                Graphics g = e.Graphics;

                Rectangle rect = regionSelectionSamplePanel.ClientRectangle;

                rect.Inflate(-10, -10);
                RangeHandlerEdit.UpdateRangeHandlers(rect, thumbs);

                rect.Inflate(3, 3);
                GraphicsToolkit.DrawDoubleLineRectangle(g, rect, outerLineColorComboBox.CurrentColor,
                                                        innerLineColorComboBox.CurrentColor);

                RangeHandlerEdit.DrawRangeHandlerPos(g, thumbs, thumbColorComboBox.CurrentColor);
            };

            outerLineColorComboBox.ColorSelected += (s, e) => regionSelectionSamplePanel.Invalidate();
            innerLineColorComboBox.ColorSelected += (s, e) => regionSelectionSamplePanel.Invalidate();
            thumbColorComboBox.ColorSelected     += (s, e) => regionSelectionSamplePanel.Invalidate();

            languageCombo.SelectedValueChanged += (s, e) =>
            {
                CultureInfo selectedCulture = MainForm.SupportedCultures[languageCombo.SelectedIndex];

                if (LangResource.Culture != selectedCulture)
                {
                    LangResource.Culture = selectedCulture;
                    InitCulture();
                }
            };

            ReloadSupportedLanguageList();

            chkShowCoordinateInfo.Checked = ConfigurationManager.Instance.IsCurrentUserSetting(
                UserConfigKey.CF_Show_Coordinate_Info, true);
        }