private void lstKeywords_MouseDown(object sender, MouseEventArgs e) { if (OnKeywordSelected != null) { OnKeywordSelectedEventArgs args = new OnKeywordSelectedEventArgs(); int index = lstKeywords.IndexFromPoint(e.X, e.Y); args.Index = index; if (e.Button == MouseButtons.Left) { args.Mouse = OnKeywordSelectedEventArgs.MouseButton.Left; } else if (e.Button == MouseButtons.Right) { args.Mouse = OnKeywordSelectedEventArgs.MouseButton.Right; } if ((ModifierKeys & Keys.Control) == Keys.Control) { args.Key = OnKeywordSelectedEventArgs.KeyboardButton.Ctrl; } else if ((ModifierKeys & Keys.Shift) == Keys.Shift) { args.Key = OnKeywordSelectedEventArgs.KeyboardButton.Shift; } args.MatchWord = toolBtnMatchWord.Checked; args.MatchCase = toolBtnMatchCase.Checked; args.WrapSearch = toolBtnWrapSearch.Checked; OnKeywordSelected(null, args); } }
private void OnKeywordSelected(Object sender, OnKeywordSelectedEventArgs args) { int index = args.Index; if (index < 0 || index >= keywords.Count) { return; } bool isSelectedIndexChanged = false; if (index != lastSelectedIndex) { isSelectedIndexChanged = true; lastSelectedIndex = index; view.ShowStatusMessage(Properties.Resources.quick_search_status_initial_message, Color.Black); } KeywordModel keyword = keywords[index]; if (args.Mouse == OnKeywordSelectedEventArgs.MouseButton.Left) { if (args.Key == OnKeywordSelectedEventArgs.KeyboardButton.Ctrl) { LaunchNppSearchDialogWithKeyword(keyword); } else if (args.Key == OnKeywordSelectedEventArgs.KeyboardButton.Shift) { ShowSearchingIndication(); using (Scintilla sci = new Scintilla()) { int pos = sci.SearchBackward(keyword.ToString(), keyword.Type == KeywordType.RegExp, args.MatchWord, args.MatchCase, args.WrapSearch); ShowSearchResult(sci, pos); } } else if (args.Key == OnKeywordSelectedEventArgs.KeyboardButton.None) { if (!isSelectedIndexChanged) { ShowSearchingIndication(); using (Scintilla sci = new Scintilla()) { int pos = sci.SearchForward(keyword.ToString(), keyword.Type == KeywordType.RegExp, args.MatchWord, args.MatchCase, args.WrapSearch); ShowSearchResult(sci, pos); } } } } }