Пример #1
0
        private void fCTBCodeMarkLine(bool select = true)     // after click on gcode line, mark text and graphics
        {
            if ((fCTBCodeClickedLineNow <= fCTBCode.LinesCount) && (fCTBCodeClickedLineNow >= 0))
            {
                fCTBBookmark = new Bookmark(fCTBCode, "marked", fCTBCodeClickedLineNow);
                if (fCTBCodeClickedLineNow != fCTBCodeClickedLineLast)
                {
                    fCTBCode.UnbookmarkLine(fCTBCodeClickedLineLast);
                    fCTBCode.BookmarkLine(fCTBCodeClickedLineNow);
                    fCTBCodeClickedLineLast = fCTBCodeClickedLineNow;

                    // Set marker in drawing
                    Place tst = fCTBCode.Selection.Start;
                    VisuGCode.setPosMarkerLine(fCTBCodeClickedLineNow, !isStreaming);

                    if ((fCTBCode.Lines[tst.iLine].Contains(xmlMarker.groupStart)) || (fCTBCode.Lines[tst.iLine].Contains(xmlMarker.groupEnd)))
                    {
                        VisuGCode.markSelectedGroup(tst.iLine);
                    }

                    if (select && codeSelection.checkClicked(fCTBCodeClickedLineNow))
                    {
                        setFigureIsMarked(true);
                        fCTBCode.DoCaretVisible();
                    }
                    else
                    {
                        setFigureIsMarked(false);
                    }

                    pictureBox1.Invalidate(); // avoid too much events
                    toolStrip_tb_StreamLine.Text = fCTBCodeClickedLineNow.ToString();
                }
            }
        }
Пример #2
0
        private void findFigureMarkSelection(xmlMarkerType marker, int clickedLine, bool collapse = true)   // called by click on figure in 2D view
        {
            if (manualEdit)
            {
                return;
            }
            if (logDetailed)
            {
                Logger.Trace(" findFigureMarkSelection marker:{0}  line:{1}  collapse:{2}", marker, clickedLine, collapse);
            }
            fCTBCode.Selection.ColumnSelectionMode = false;
            statusStripClear(2);
            enableBlockCommands(false);
            markedBlockType = marker;
            Color highlight = Color.GreenYellow;

            if (marker == xmlMarkerType.Group)
            {
                if (xmlMarker.GetGroupCount() > 0)
                {
                    if (collapse)
                    {
                        fCTBCode.CollapseAllFoldingBlocks(); foldLevel = 1;
                    }
                    if (xmlMarker.GetGroup(clickedLine))
                    {
                        fCTBCode.ExpandFoldedBlock(xmlMarker.lastGroup.lineStart);
                        enableBlockCommands(setTextSelection(xmlMarker.lastGroup.lineStart, xmlMarker.lastGroup.lineEnd));
                        VisuGCode.markSelectedGroup(xmlMarker.lastGroup.lineStart);
                        statusStripSet(2, string.Format("Marked: {0}", fCTBCode.Lines[xmlMarker.lastGroup.lineStart]), highlight);
                        pictureBox1.Invalidate();
                        fCTBCode.Invalidate();
                    }
                }
                else if (xmlMarker.GetFigureCount() > 0)
                {
                    if (collapse)
                    {
                        foldBlocks2();
                    }
                    markedBlockType = xmlMarkerType.Figure;
                    if (xmlMarker.GetFigure(clickedLine))
                    {
                        enableBlockCommands(setTextSelection(xmlMarker.lastFigure.lineStart, xmlMarker.lastFigure.lineEnd));
                        VisuGCode.setPosMarkerLine(fCTBCodeClickedLineNow, false);      //!isStreaming);	// 2020-08-24 don't highlight in setPosMarkerLine - was done (or deselect) before in setPosMarkerNearBy
                        statusStripSet(2, string.Format("Marked: {0}", fCTBCode.Lines[xmlMarker.lastFigure.lineStart]), highlight);
                        fCTBCode.Invalidate();
                    }
                }
            }
            else if (marker == xmlMarkerType.Figure)
            {
                if (xmlMarker.GetGroupCount() > 0)
                {
                    if (collapse)
                    {
                        foldBlocks2();
                    }
                }
                else
                {
                    if (collapse)
                    {
                        fCTBCode.CollapseAllFoldingBlocks(); foldLevel = 1;
                    }
                }
                if (xmlMarker.GetFigure(clickedLine))
                {
                    enableBlockCommands(setTextSelection(xmlMarker.lastFigure.lineStart, xmlMarker.lastFigure.lineEnd));
                    VisuGCode.setPosMarkerLine(fCTBCodeClickedLineNow, false);          //!isStreaming);	// 2020-08-24 don't highlight in setPosMarkerLine - was done (or deselect) before in setPosMarkerNearBy
                    statusStripSet(2, string.Format("Marked: {0}", fCTBCode.Lines[xmlMarker.lastFigure.lineStart]), highlight);
                    fCTBCode.Invalidate();
                }
                if (xmlMarker.lastFigure.lineStart < fCTBCode.LinesCount)
                {
                    fCTBCode.ExpandFoldedBlock(xmlMarker.lastFigure.lineStart);
                }
            }
            else if (marker == xmlMarkerType.Line)
            {
                if (xmlMarker.GetGroupCount() > 0)
                {
                    if (collapse)
                    {
                        foldBlocks2();
                    }
                }
                else
                {
                    if (collapse)
                    {
                        fCTBCode.CollapseAllFoldingBlocks(); foldLevel = 1;
                    }
                }
                if (xmlMarker.GetFigure(clickedLine))
                {
                    fCTBCode.ExpandFoldedBlock(xmlMarker.lastFigure.lineStart);
                }
                if (clickedLine == xmlMarker.lastFigure.lineStart)
                {
                    clickedLine++;
                }

                fCTBCodeClickedLineNow = clickedLine;

                setTextSelection(clickedLine, clickedLine);
                enableBlockCommands(false, true);
            }
            fCTBCodeClickedLineNow = xmlMarker.lastFigure.lineStart;
            fCTBCode.DoCaretVisible();
            this.Invalidate();
        }
Пример #3
0
        private void findFigureMarkSelection(xmlMarkerType marker, int clickedLine, bool collapse = true)   // called by click on figure in 2D view
        {
            if (manualEdit)
            {
                return;
            }
            fCTBCode.Selection.ColumnSelectionMode = false;
            statusStripClear(2);
            enableBlockCommands(false);
            markedBlockType = marker;

            if (marker == xmlMarkerType.Group)
            {
                if (xmlMarker.GetGroupCount() > 0)
                {
                    if (collapse)
                    {
                        fCTBCode.CollapseAllFoldingBlocks(); foldLevel = 1;
                    }
                    if (xmlMarker.GetGroup(clickedLine))
                    {
                        fCTBCode.ExpandFoldedBlock(xmlMarker.lastGroup.lineStart);
                        enableBlockCommands(setTextSelection(xmlMarker.lastGroup.lineStart, xmlMarker.lastGroup.lineEnd));
                        VisuGCode.markSelectedGroup(xmlMarker.lastGroup.lineStart);
                        statusStripSet(2, string.Format("Marked: {0}", fCTBCode.Lines[xmlMarker.lastGroup.lineStart]), SystemColors.Control);
                        pictureBox1.Invalidate();
                        fCTBCode.Invalidate();
                    }
                }
                else if (xmlMarker.GetFigureCount() > 0)
                {
                    if (collapse)
                    {
                        foldBlocks2();
                    }
                    markedBlockType = xmlMarkerType.Figure;
                    if (xmlMarker.GetFigure(clickedLine))
                    {
                        enableBlockCommands(setTextSelection(xmlMarker.lastFigure.lineStart, xmlMarker.lastFigure.lineEnd));
                        VisuGCode.setPosMarkerLine(fCTBCodeClickedLineNow, !isStreaming);
                        statusStripSet(2, string.Format("Marked: {0}", fCTBCode.Lines[xmlMarker.lastFigure.lineStart]), SystemColors.Control);
                    }
                }
            }
            else if (marker == xmlMarkerType.Figure)
            {
                if (xmlMarker.GetGroupCount() > 0)
                {
                    if (collapse)
                    {
                        foldBlocks2();
                    }
                }
                else
                {
                    if (collapse)
                    {
                        fCTBCode.CollapseAllFoldingBlocks(); foldLevel = 1;
                    }
                }
                if (xmlMarker.GetFigure(clickedLine))
                {
                    enableBlockCommands(setTextSelection(xmlMarker.lastFigure.lineStart, xmlMarker.lastFigure.lineEnd));
                    VisuGCode.setPosMarkerLine(fCTBCodeClickedLineNow, !isStreaming);
                    statusStripSet(2, string.Format("Marked: {0}", fCTBCode.Lines[xmlMarker.lastFigure.lineStart]), SystemColors.Control);
                    fCTBCode.Invalidate();
                }
                fCTBCode.ExpandFoldedBlock(xmlMarker.lastFigure.lineStart);
            }
            else if (marker == xmlMarkerType.Line)
            {
                if (xmlMarker.GetGroupCount() > 0)
                {
                    if (collapse)
                    {
                        foldBlocks2();
                    }
                }
                else
                {
                    if (collapse)
                    {
                        fCTBCode.CollapseAllFoldingBlocks(); foldLevel = 1;
                    }
                }
                if (xmlMarker.GetFigure(clickedLine))
                {
                    fCTBCode.ExpandFoldedBlock(xmlMarker.lastFigure.lineStart);
                }
                if (clickedLine == xmlMarker.lastFigure.lineStart)
                {
                    clickedLine++;
                }

                fCTBCodeClickedLineNow = clickedLine;

                setTextSelection(clickedLine, clickedLine);
                enableBlockCommands(false, true);
            }
            fCTBCodeClickedLineNow = xmlMarker.lastFigure.lineStart;
            fCTBCode.DoCaretVisible();
        }