public static void UnregisterAllShortcutActions(IntPtr hwnd) { foreach (int id in ShortcutActionManager.Instance.Actions.Keys) { ShortcutKeyToolkit.UnregisterShortcutKey(hwnd, id); } }
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)); } } }
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); }
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); }
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); } } }
internal void SetShortcutKey(string keys) { UpdateShortcutKeys(ShortcutKeyToolkit.StringToKeys(keys)); }
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); }