コード例 #1
0
ファイル: FrmQuickSearch.cs プロジェクト: nex3z/NppLogGazer
        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);
            }
        }
コード例 #2
0
        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);
                        }
                    }
                }
            }
        }