private KeyBindItem GetBindItem(GamePadButtonType type) { string line = Parse.KeysToString(Controller.GetProfile(), XInputWrapper.GamePadButtons[type]); KeyBindItem item = new KeyBindItem(Controller.GetLanguage()[type.ToString()], line); item.InputChanged = () => { AssignKeystroke(Controller.GetProfile(), type, item.GetText()); }; item.SetContextMenu(_menu); return(item); }
public override void InitElements() { _menu = new ContextMenu(GetHandler(), _copy, _paste, _clear, _manualMode); _menu.SetBackground(50, 50, 50); _menu.SetShadow(5, 0, 0, Color.FromArgb(210, 0, 0, 0)); Factory.Styles.GetContextMenuItemStyle().SetStyle(_copy, _paste, _clear, _manualMode); _copy.AddItem(Factory.Items.GetImageMenuItem(Factory.Resources.CopyIcon, Color.FromArgb(12, 180, 105))); _paste.AddItem(Factory.Items.GetImageMenuItem(Factory.Resources.PasteIcon, Color.FromArgb(173, 139, 186))); _clear.AddItem(Factory.Items.GetImageMenuItem(Factory.Resources.ClearIcon, Color.FromArgb(200, 116, 116))); _manualMode.AddItem(Factory.Items.GetImageMenuItem(Factory.Resources.PlusIcon, Color.FromArgb(10, 168, 232))); _copy.EventMouseClick += (sender, args) => { if (_menu.ReturnFocus != null) { TextEdit field = _menu.ReturnFocus as TextEdit; if (field != null) { CommonService.SetClipboardString(field.GetText()); } } }; _paste.EventMouseClick += (sender, args) => { if (_menu.ReturnFocus != null) { TextEdit field = _menu.ReturnFocus as TextEdit; if (field != null) { field.SetText(CommonService.GetClipboardString()); } } }; _clear.EventMouseClick += (sender, args) => { if (_menu.ReturnFocus != null) { TextEdit field = _menu.ReturnFocus as TextEdit; if (field != null) { field.Clear(); } } }; _manualMode.EventMouseClick += (sender, args) => { if (_menu.ReturnFocus != null) { TextEdit field = _menu.ReturnFocus as TextEdit; if (field != null) { ManualKeyBinder mkb = new ManualKeyBinder(); mkb.OnCloseDialog += () => { string result = mkb.Result; if (!result.Equals(String.Empty)) { field.SetText(result); KeyBindItem parent = field.GetParent() as KeyBindItem; parent?.InputChanged?.Invoke(); } }; mkb.Show(GetHandler()); } } }; _leftBinds.SetSpacing(0, 10); _rightBinds.SetSpacing(0, 10); AddItems( _leftBinds, _rightBinds ); UpdateUI(); }