예제 #1
0
      public static bool checkClicked(int value)
      {
          clicked = value;
          rangeOk = false;
          type    = xmlMarkerType.none;
          if ((fCTB != null) && (clicked >= 0))
          {
              if (gcode.loggerTrace)
              {
                  Logger.Trace("checkClicked Line {0}  {1}", clicked, fCTB.Lines[clicked]);
              }
              if (fCTB.Lines[clicked].Contains(xmlMarker.groupStart))
              {
                  type = xmlMarkerType.Group;
              }
              else if (fCTB.Lines[clicked].Contains(xmlMarker.groupEnd))
              {
                  type = xmlMarkerType.Group;
              }
              else if (fCTB.Lines[clicked].Contains(xmlMarker.figureStart))
              {
                  type = xmlMarkerType.Figure;
              }
              else if (fCTB.Lines[clicked].Contains(xmlMarker.figureEnd))
              {
                  type = xmlMarkerType.Figure;
              }
              else if (fCTB.Lines[clicked].Contains(xmlMarker.passStart))
              {
                  type = xmlMarkerType.Pass;
              }
              else if (fCTB.Lines[clicked].Contains(xmlMarker.contourStart))
              {
                  type = xmlMarkerType.Contour;
              }
              else if (fCTB.Lines[clicked].Contains(xmlMarker.fillStart))
              {
                  type = xmlMarkerType.Fill;
              }

              if ((type == xmlMarkerType.none) || (type == xmlMarkerType.Figure))
              {
                  findRange(xmlMarker.figureStart, xmlMarker.figureEnd);
              }
              else if (type == xmlMarkerType.Group)
              {
                  findRange(xmlMarker.groupStart, xmlMarker.groupEnd);
              }

              if (rangeOk)
              {
                  setSelection();
              }
          }
          return(rangeOk);
      }
예제 #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();
        }