Exemplo n.º 1
0
        private void fCTBCode_TextChanged(object sender, FastColoredTextBoxNS.TextChangedEventArgs e)
        {
            e.ChangedRange.ClearStyle(StyleComment);
            e.ChangedRange.SetStyle(StyleComment, "(\\(.*\\))", System.Text.RegularExpressions.RegexOptions.Compiled);
            e.ChangedRange.SetStyle(StyleCommentxml, "(\\(<.*\\))", System.Text.RegularExpressions.RegexOptions.Compiled);
            e.ChangedRange.SetStyle(StyleGWord, "(G\\d{1,2})", System.Text.RegularExpressions.RegexOptions.Compiled);
            e.ChangedRange.SetStyle(StyleMWord, "(M\\d{1,2})", System.Text.RegularExpressions.RegexOptions.Compiled);
            e.ChangedRange.SetStyle(StyleFWord, "(F\\d+)", System.Text.RegularExpressions.RegexOptions.Compiled);
            e.ChangedRange.SetStyle(StyleSWord, "(S\\d+)", System.Text.RegularExpressions.RegexOptions.Compiled);
            e.ChangedRange.SetStyle(StyleLineN, "(N\\d+)", System.Text.RegularExpressions.RegexOptions.Compiled);
            e.ChangedRange.SetStyle(StyleTool, "(T\\d{1,2})", System.Text.RegularExpressions.RegexOptions.Compiled);
            e.ChangedRange.SetStyle(StyleXAxis, "[XIxi]{1}-?\\d+(.\\d+)?", System.Text.RegularExpressions.RegexOptions.Compiled);
            e.ChangedRange.SetStyle(StyleYAxis, "[YJyj]{1}-?\\d+(.\\d+)?", System.Text.RegularExpressions.RegexOptions.Compiled);
            e.ChangedRange.SetStyle(StyleZAxis, "[Zz]{1}-?\\d+(.\\d+)?", System.Text.RegularExpressions.RegexOptions.Compiled);
            e.ChangedRange.SetStyle(StyleAAxis, "[AaBbCcUuVvWw]{1}-?\\d+(.\\d+)?", System.Text.RegularExpressions.RegexOptions.Compiled);

            e.ChangedRange.ClearFoldingMarkers();
            e.ChangedRange.SetFoldingMarkers(xmlMarker.fillStart, xmlMarker.fillEnd);
            e.ChangedRange.SetFoldingMarkers(xmlMarker.contourStart, xmlMarker.contourEnd);
            e.ChangedRange.SetFoldingMarkers(xmlMarker.clearanceStart, xmlMarker.clearanceEnd);
            e.ChangedRange.SetFoldingMarkers(xmlMarker.revolutionStart, xmlMarker.revolutionEnd);
            e.ChangedRange.SetFoldingMarkers(xmlMarker.passStart, xmlMarker.passEnd);
            e.ChangedRange.SetFoldingMarkers(xmlMarker.figureStart, xmlMarker.figureEnd);
            e.ChangedRange.SetFoldingMarkers(xmlMarker.groupStart, xmlMarker.groupEnd);
            if (Properties.Settings.Default.importCodeFold)
            {
                fCTBCode.CollapseAllFoldingBlocks();
            }

            codeBlocksToolStripMenuItem.Enabled = VisuGCode.codeBlocksAvailable();
            codeSelection.setFCTB = fCTBCode;
        }
 private void transformEnd()
 {
     VisuGCode.getGCodeLines(fCTBCode.Lines);                    // get code path
     VisuGCode.calcDrawingArea();                                // calc ruler dimension
     VisuGCode.drawMachineLimit(toolTable.getToolCordinates());
     pictureBox1.Invalidate();                                   // resfresh view
     update_GCode_Depending_Controls();                          // update GUI controls
     updateControls();                                           // update control enable
     enableCmsCodeBlocks(VisuGCode.codeBlocksAvailable());
     this.Cursor = Cursors.Default;
     setEditMode(false);
 }
Exemplo n.º 3
0
        // find closest coordinate in GCode and mark
        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
            if (logDetailed)
            {
                Logger.Trace("pictureBox1_MouseDown e.x:{0} y:{1}  absPos-x:{2:0.00} y:{3:0.00}", e.X, e.Y, picAbsPos.X, picAbsPos.Y);
            }
            pictureBox1.Focus();
            moveTranslationOld = new xyPoint(e.X, e.Y);
            allowZoom          = false;
            if (e.Button == MouseButtons.Left)
            {
                if ((fCTBCode.LinesCount > 2) && !posIsMoving)
                {
                    int line = 0;
                    posMoveStart = picAbsPos;
                    posMoveTmp   = posMoveStart;
                    posMoveEnd   = posMoveStart;

                    if (manualEdit)
                    {
                        newCodeEnd();
                    }
                    if (Panel.ModifierKeys == Keys.Alt)
                    {
                        line = VisuGCode.setPosMarkerNearBy(picAbsPos, false);         // find line with coord nearby, mark / unmark figure
                        fCTBCodeClickedLineNow = line;
                        findFigureMarkSelection(xmlMarkerType.Line, line, (foldLevel > 0));
                    }
                    else if (Panel.ModifierKeys == Keys.Control)               //Keys.Alt)
                    {
                        line = VisuGCode.setPosMarkerNearBy(picAbsPos, false); // find line with coord nearby, mark / unmark figure
                        fCTBCodeClickedLineNow = line;
                        findFigureMarkSelection(xmlMarkerType.Group, line, (foldLevel > 0));
                    }
                    else
                    {
                        line = VisuGCode.setPosMarkerNearBy(picAbsPos);         // find line with coord nearby, mark / unmark figure
                        fCTBCodeClickedLineNow = line;
                        findFigureMarkSelection(xmlMarkerType.Figure, line, (foldLevel > 0));
                    }

                    cmsPicBoxMoveToMarkedPosition.ToolTipText = "Work X: " + grbl.posMarker.X.ToString() + "   Y: " + grbl.posMarker.Y.ToString();
                    enableBlockCommands(VisuGCode.getHighlightStatus() > 0);
                    if (VisuGCode.codeBlocksAvailable())
                    {
                        statusStripSet(1, Localization.getString("statusStripeClickKeys2"), Color.LightGreen);
                    }
                    posIsMoving = false;
                }
            }
        }
Exemplo n.º 4
0
        private void fCTBCode_Click(object sender, EventArgs e)         // click into FCTB with mouse
        {
//            if (gcode.loggerTrace && logMain) Logger.Trace("Event  fCTBCode_Click");
            fCTBCodeClickedLineNow = fCTBCode.Selection.ToLine;
//            statusStripSet2(string.Format("Clicked: {0}", fCTBCodeClickedLineNow),SystemColors.Control);
            markedBlockType = xmlMarkerType.none;
            if (manualEdit)
            {
                return;
            }

            enableBlockCommands(false);       // disable CMS-Menu block-move items
            fCTBCode.DoCaretVisible();

            if (Panel.ModifierKeys == Keys.Alt)
            {
                findFigureMarkSelection(xmlMarkerType.Group, fCTBCodeClickedLineNow);
            }
            else if (Panel.ModifierKeys == Keys.Control)
            {
                findFigureMarkSelection(xmlMarkerType.Figure, fCTBCodeClickedLineNow);
            }

            else if (xmlMarker.isFoldingMarkerFigure(fCTBCodeClickedLineNow))
            {
                findFigureMarkSelection(xmlMarkerType.Figure, fCTBCodeClickedLineNow, (foldLevel > 0));
            }                                                                                           // 2020-08-21 add , (foldLevel>0)
            else if (xmlMarker.isFoldingMarkerGroup(fCTBCodeClickedLineNow))
            {
                findFigureMarkSelection(xmlMarkerType.Group, fCTBCodeClickedLineNow, (foldLevel > 0));
            }                                                                                           // 2020-08-21 add , (foldLevel>0)

            if (VisuGCode.codeBlocksAvailable())
            {
                statusStripSet(1, Localization.getString("statusStripeClickKeys"), Color.LightGreen);
                //             statusStripSet(2, fCTBCode.Lines[fCTBCodeClickedLineNow], Color.Orange);
            }

            fCTBCodeMarkLine(true);             // set Bookmark and marker in 2D-View
            //          statusStripSet(2, fCTBCode.Lines[fCTBCodeClickedLineNow], Color.Orange);
        }
Exemplo n.º 5
0
        private void fCTBCode_TextChanged(object sender, FastColoredTextBoxNS.TextChangedEventArgs e)
        {
            if (gcode.loggerTrace)
            {
                Logger.Trace("Event  fCTBCode_TextChanged  manualEdit:{0}", manualEdit);
            }
            e.ChangedRange.ClearStyle(StyleComment);
            e.ChangedRange.SetStyle(StyleComment, "(\\(.*\\))", System.Text.RegularExpressions.RegexOptions.Compiled);
            e.ChangedRange.SetStyle(StyleCommentxml, "(\\(<.*\\))", System.Text.RegularExpressions.RegexOptions.Compiled);
            e.ChangedRange.SetStyle(StyleGWord, "(G\\d{1,2})", System.Text.RegularExpressions.RegexOptions.Compiled);
            e.ChangedRange.SetStyle(StyleMWord, "(M\\d{1,2})", System.Text.RegularExpressions.RegexOptions.Compiled);
            e.ChangedRange.SetStyle(StyleFWord, "(F\\d+)", System.Text.RegularExpressions.RegexOptions.Compiled);
            e.ChangedRange.SetStyle(StyleSWord, "(S\\d+)", System.Text.RegularExpressions.RegexOptions.Compiled);
            e.ChangedRange.SetStyle(StyleLineN, "(N\\d+)", System.Text.RegularExpressions.RegexOptions.Compiled);
            e.ChangedRange.SetStyle(StyleTool, "(T\\d{1,2})", System.Text.RegularExpressions.RegexOptions.Compiled);
            e.ChangedRange.SetStyle(StyleXAxis, "[XIxi]{1}-?\\d+(.\\d+)?", System.Text.RegularExpressions.RegexOptions.Compiled);
            e.ChangedRange.SetStyle(StyleYAxis, "[YJyj]{1}-?\\d+(.\\d+)?", System.Text.RegularExpressions.RegexOptions.Compiled);
            e.ChangedRange.SetStyle(StyleZAxis, "[Zz]{1}-?\\d+(.\\d+)?", System.Text.RegularExpressions.RegexOptions.Compiled);
            e.ChangedRange.SetStyle(StyleAAxis, "[AaBbCcUuVvWw]{1}-?\\d+(.\\d+)?", System.Text.RegularExpressions.RegexOptions.Compiled);

            e.ChangedRange.ClearFoldingMarkers();
            e.ChangedRange.SetFoldingMarkers(xmlMarker.headerStart, xmlMarker.headerEnd);
            e.ChangedRange.SetFoldingMarkers(xmlMarker.fillStart, xmlMarker.fillEnd);
            e.ChangedRange.SetFoldingMarkers(xmlMarker.contourStart, xmlMarker.contourEnd);
            e.ChangedRange.SetFoldingMarkers(xmlMarker.clearanceStart, xmlMarker.clearanceEnd);
            e.ChangedRange.SetFoldingMarkers(xmlMarker.revolutionStart, xmlMarker.revolutionEnd);
            e.ChangedRange.SetFoldingMarkers(xmlMarker.passStart, xmlMarker.passEnd);
            e.ChangedRange.SetFoldingMarkers(xmlMarker.figureStart, xmlMarker.figureEnd);
            e.ChangedRange.SetFoldingMarkers(xmlMarker.groupStart, xmlMarker.groupEnd);

            if (!manualEdit)
            {
                if (Properties.Settings.Default.importCodeFold)
                {
                    foldBlocks2(); fCTBCode.CollapseAllFoldingBlocks(); foldLevel = 1;
                }

                enableCmsCodeBlocks(VisuGCode.codeBlocksAvailable());
            }
        }
Exemplo n.º 6
0
 private void cmsPicBoxPasteFromClipboard_Click(object sender, EventArgs e)
 {
     unDo.setCode(fCTBCode.Text, cmsPicBoxPasteFromClipboard.Text, this);
     loadFromClipboard();
     enableCmsCodeBlocks(VisuGCode.codeBlocksAvailable());
 }
Exemplo n.º 7
0
        private void fCTBCode_KeyDown(object sender, KeyEventArgs e)    // key up down
        {
//            if (gcode.loggerTrace && logMain) Logger.Trace("Event  fCTBCode_KeyDown {0} {1} {2}  clickedLine {3}", e.KeyValue, ModifierKeys, markedBlockType.ToString(), fCTBCodeClickedLineNow);
            int key = e.KeyValue;

            #region key up
            if (key == 38) // up
            {              //if (!(fCTBCodeClickedLineNow > 0))
                //     return;
                if (Panel.ModifierKeys == Keys.Control)
                {
                    moveSelectedCodeBlockUp();
                }
                else if (Panel.ModifierKeys == (Keys.Control | Keys.Shift))
                {
                    moveSelectedCodeBlockUp(true);
                }
                else
                {
                    if (markedBlockType == xmlMarkerType.Figure)
                    {
                        clearTextSelection(0);
                        markedBlockType = xmlMarkerType.none;
                        enableBlockCommands(false);                                 // disable CMS-Menu block-move items
                        xmlMarker.GetFigure(xmlMarker.lastFigure.lineStart, -1);    // find figure before
                        fCTBCodeClickedLineNow = xmlMarker.lastFigure.lineEnd;
                        if (gcode.loggerTrace && logMain)
                        {
                            Logger.Trace("Figure up found {0}  {1}", xmlMarker.lastFigure.lineStart, xmlMarker.lastFigure.lineEnd);
                        }
                        findFigureMarkSelection(xmlMarkerType.Figure, fCTBCodeClickedLineNow);
                        enableBlockCommands(false);                                 // no idea why, code is selected, but not colored. Moving up/down of blocks doesn't work - better disable "isMarked"
                        //                     statusStripSet(2, fCTBCode.Lines[fCTBCodeClickedLineNow], Color.Orange);
                    }
                    else if (markedBlockType == xmlMarkerType.Group)
                    {
                        clearTextSelection(0);
                        markedBlockType = xmlMarkerType.none;
                        enableBlockCommands(false);                               // disable CMS-Menu block-move items
                        xmlMarker.GetGroup(xmlMarker.lastGroup.lineStart, -1);    // find figure before
                        fCTBCodeClickedLineNow = xmlMarker.lastGroup.lineEnd;
                        if (gcode.loggerTrace && logMain)
                        {
                            Logger.Trace("Group up found {0}  {1}", xmlMarker.lastGroup.lineStart, xmlMarker.lastGroup.lineEnd);
                        }
                        findFigureMarkSelection(xmlMarkerType.Group, fCTBCodeClickedLineNow);
                        enableBlockCommands(false);                                 // no idea why, code is selected, but not colored. Moving up/down of blocks doesn't work - better disable "isMarked"
                        //                  statusStripSet(2, fCTBCode.Lines[fCTBCodeClickedLineNow], Color.Orange);
                    }
                    else
                    {
                        fCTBCodeClickedLineNow -= 1;
                        if (fCTBCodeClickedLineNow < 1)
                        {
                            fCTBCodeClickedLineNow = 1;
                        }
                        while (fCTBCode.GetVisibleState(fCTBCodeClickedLineNow) == VisibleState.Hidden)
                        {
                            fCTBCodeClickedLineNow -= 1;
                        }
                        if (gcode.loggerTrace && logMain)
                        {
                            Logger.Trace("Else up {0} ", markedBlockType.ToString());
                        }
                    }
                    fCTBCodeMarkLine();             // set Bookmark and marker in 2D-View
                    fCTBCode.DoCaretVisible();
                }
                statusStripClear(1);
                if (VisuGCode.codeBlocksAvailable() && figureIsMarked)
                {
                    statusStripSet(1, Localization.getString("statusStripeUpKeys"), Color.LightGreen);
                }
                //           else
                //               statusStripClear(2);
            }
            #endregion
            #region key down
            else if (key == 40) // down
            {                   //if (!(fCTBCodeClickedLineNow < (fCTBCode.Lines.Count - 1)))
                //     return;
                if (Panel.ModifierKeys == Keys.Control)
                {
                    moveSelectedCodeBlockDown();
                }
                else if (Panel.ModifierKeys == (Keys.Control | Keys.Shift))
                {
                    moveSelectedCodeBlockDown(true);
                }
                else
                {
                    if (markedBlockType == xmlMarkerType.Figure)
                    {
                        clearTextSelection(0);
                        markedBlockType = xmlMarkerType.none;
                        enableBlockCommands(false);                                 // disable CMS-Menu block-move items
                        xmlMarker.GetFigure(xmlMarker.lastFigure.lineStart, 1);
                        fCTBCodeClickedLineNow = xmlMarker.lastFigure.lineStart;
                        if (gcode.loggerTrace && logMain)
                        {
                            Logger.Trace(" Figure down found {0}  {1}", xmlMarker.lastFigure.lineStart, xmlMarker.lastFigure.lineEnd);
                        }
                        findFigureMarkSelection(xmlMarkerType.Figure, fCTBCodeClickedLineNow);
                        enableBlockCommands(false);                                 // no idea why, code is selected, but not colored. Moving up/down of blocks doesn't work - better disable "isMarked"
                        //                statusStripSet(2, fCTBCode.Lines[fCTBCodeClickedLineNow], Color.Orange);
                    }
                    else if (markedBlockType == xmlMarkerType.Group)
                    {
                        clearTextSelection(0);
                        markedBlockType = xmlMarkerType.none;
                        enableBlockCommands(false);                                 // disable CMS-Menu block-move items
                        xmlMarker.GetGroup(xmlMarker.lastGroup.lineStart, 1);
                        fCTBCodeClickedLineNow = xmlMarker.lastGroup.lineStart;
                        if (gcode.loggerTrace && logMain)
                        {
                            Logger.Trace(" Group down found {0}  {1}", xmlMarker.lastGroup.lineStart, xmlMarker.lastGroup.lineEnd);
                        }
                        findFigureMarkSelection(xmlMarkerType.Group, fCTBCodeClickedLineNow);
                        enableBlockCommands(false);                                 // no idea why, code is selected, but not colored. Moving up/down of blocks doesn't work - better disable "isMarked"
                        //                statusStripSet(2, fCTBCode.Lines[fCTBCodeClickedLineNow], Color.Orange);
                    }
                    else
                    {
                        fCTBCodeClickedLineNow += 1;
                        if (fCTBCodeClickedLineNow >= fCTBCode.LinesCount)
                        {
                            fCTBCodeClickedLineNow = fCTBCode.LinesCount - 1;
                        }
                        while (fCTBCode.GetVisibleState(fCTBCodeClickedLineNow) == VisibleState.Hidden)
                        {
                            fCTBCodeClickedLineNow += 1;
                        }
                    }
                    fCTBCodeMarkLine();                 // set Bookmark and marker in 2D-View
                    fCTBCode.DoCaretVisible();
                }
                statusStripClear(1);
                if (VisuGCode.codeBlocksAvailable() && figureIsMarked)
                {
                    statusStripSet(1, Localization.getString("statusStripeDownKeys"), Color.LightGreen);
                    //                   statusStripSet(2, fCTBCode.Lines[fCTBCodeClickedLineNow], Color.Orange);
                }
                //              else
                //                  statusStripClear(2);
            }
            #endregion

            else if (!manualEdit && ((key == 8) || (key == 46)))    // delete
            {
                unDo.setCode(fCTBCode.Text, "Delete", this);
                resetView = true;
            }
            else if (((key >= 32) && (key <= 127)) || (key == (char)13))
            {
                setEditMode(true);
            }
        }