예제 #1
0
        void TagPanelVisibleChanged(object sender, EventArgs e)
        {
            FTagsTextBox.Text = FTagsTextBox.Text.Trim();
            FTagsTextBox.Focus();
            FToolTip.Hide(FRichTextBox);

            if (PendingRedraw)
            {
                Redraw();
            }
        }
예제 #2
0
        void RichTextBoxMouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            //if cloned via ctrl+click the self is now hidden
            //and we don't want the nodebrowser to vanish yet
            if (Visible)
            {
                //hack: called only to re-focus active patch
                //after this mouseup set the focus to the already hidden NodeBrowser window
                OnCreateNodeFromString("");

                FTagsTextBox.Focus();
            }
        }
예제 #3
0
        void RichTextBoxMouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            if (FHoverLine < 0 || FHoverLine >= FRichTextBox.Lines.Length)
            {
                return;
            }

            string username = FRichTextBox.Lines[FHoverLine].Trim();

            FRichTextBox.SelectionStart = FRichTextBox.GetFirstCharIndexFromLine(FHoverLine) + 1;
            FTagsTextBox.Focus();

            //as plugin in its own window
            if (AllowDragDrop)
            {
                var selNode = FSelectionList[FHoverLine + ScrolledLine];
                FTagsTextBox.DoDragDrop(string.Format("{0}||{1}", selNode.Systemname, selNode.Filename), DragDropEffects.All);
                return;
            }
            //else popped up on doubleclick
            else if (e.Button == MouseButtons.Left)
            {
                CreateNodeFromHoverLine();
            }
            else
            {
                try
                {
                    var selNode = FSelectionList[FHoverLine + ScrolledLine];
                    if (e.Button == MouseButtons.Middle)
                    {
                        OnShowNodeReference(selNode);
                    }
                    else
                    {
                        FTagsTextBox.Text = "";
                        OnShowHelpPatch(selNode);
                    }
                }
                catch //username is a filename..do nothing
                {}
            }
        }
예제 #4
0
        public void Initialize(string text)
        {
            if (string.IsNullOrEmpty(text))
            {
                FTagsTextBox.Text = "";
            }
            else
            {
                FTagsTextBox.Text = text.Trim();
            }

            FTagsTextBox.SelectAll();

            FHoverLine   = -1;
            ScrolledLine = 0;

            //            if (NeedsUpdate)
            //                Redraw();
            RedrawSelection();
        }
예제 #5
0
        void FTagsTextBoxKeyDown(object sender, KeyEventArgs e)
        {
            if ((e.KeyCode == Keys.Enter) || (e.KeyCode == Keys.Return))
            {
                if (!e.Shift)
                {
                    CreateNodeFromHoverLine();
                }
            }
            else if (e.KeyCode == Keys.Escape)
            {
                OnCreateNode(null);
            }
            else if ((FTagsTextBox.Lines.Length < 2) && (e.KeyCode == Keys.Down))
            {
                FHoverLine += 1;
                //if this is exceeding the FSelectionList.Count -> jump to line 0
                if (FHoverLine + ScrolledLine >= FSelectionList.Count)
                {
                    FHoverLine   = 0;
                    ScrolledLine = 0;
                }
                //if this is exceeding the currently visible lines -> scroll down a line
                else if (FHoverLine >= FVisibleLines)
                {
                    ScrolledLine += 1;
                    FHoverLine    = FVisibleLines - 1;
                }

                RedrawSelection();
                ShowToolTip(0);
            }
            else if ((FTagsTextBox.Lines.Length < 2) && (e.KeyCode == Keys.Up))
            {
                FHoverLine -= 1;
                //if this is exceeding the currently visible lines -> scroll up a line
                if ((FHoverLine == -1) && (ScrolledLine > 0))
                {
                    ScrolledLine -= 1;
                    FHoverLine    = 0;
                }
                //if we are now < 0 -> jump to last entry
                else if (FHoverLine < 0)
                {
                    FHoverLine   = Math.Min(FSelectionList.Count, FVisibleLines) - 1;
                    ScrolledLine = FSelectionList.Count;
                }

                RedrawSelection();
                ShowToolTip(0);
            }
            else if ((e.KeyCode == Keys.Left) || (e.KeyCode == Keys.Right))
            {
                if (FHoverLine != -1)
                {
                    FHoverLine = -1;
                    FTagsTextBox.SelectionStart = FTagsTextBox.Text.Length;
                    RedrawSelection();
                }
            }
            else if ((e.Control) && (e.KeyCode == Keys.A))
            {
                FTagsTextBox.SelectAll();
            }
        }
예제 #6
0
 public void AfterShow()
 {
     this.FRichTextBox.Resize += this.HandleRichTextBoxResize;
     FTagsTextBox.Focus();
 }