public Grid GetOperatorGrid(bool needsBottomBorder, int number, double fontSize)
        {
            Grid grid = new Grid();

            ThirdTask.MarkupOperatorOrOperandGrid(ref grid, needsBottomBorder);

            TextBox numberTextBox = new TextBox()
            {
                Text = (number + 1).ToString(), Background = Data.ApplicationBackground, BorderThickness = Data.NullThickness, TextWrapping = TextWrapping.Wrap, FontSize = fontSize, HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center, IsReadOnly = true
            };
            TextBox operatorTextBox = new TextBox()
            {
                Text = GetOperatorName(), Background = Data.ApplicationBackground, BorderThickness = Data.NullThickness, TextWrapping = TextWrapping.Wrap, FontSize = fontSize, HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center, IsReadOnly = true
            };
            TextBox f1jTextBox = new TextBox()
            {
                Text = Locations.Count.ToString(), Background = Data.ApplicationBackground, BorderThickness = Data.NullThickness, TextWrapping = TextWrapping.Wrap, FontSize = fontSize, HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center, IsReadOnly = true, Cursor = Cursors.Hand
            };

            WPF_Methods.SetToolTip(ref f1jTextBox, WPF_Methods.CreateToolTip("Позиции оператора", ThirdTask.GetLocations(this)));

            WPF_Methods.AddToGrid(ref grid, (numberTextBox, 1, 1), (operatorTextBox, 3, 1), (f1jTextBox, 5, 1));
            ThirdTask.MakeBordersInOperatorOrOperandGrid(ref grid, needsBottomBorder);
            return(grid);
        }
        public MainWindow()
        {
            InitializeComponent();

            StartPerformingTasks += StartPerformingTasksHandler;
            TasksPerformed       += TasksPerformedHandler;

            Data.Code.StartCodeChanging += StartCodeChanging_Handler;
            Data.Code.EndCodeChanging   += EndCodeChanging_Handler;

            WPF_Methods.SetToolTip(ref RTBScrollViewer, "Для начала и завершения редактирования кода произведите двойной щелчок", Brushes.Linen);
        }
Example #3
0
        private static void MarkupFunctionGrid(ref Grid grid, bool needsBottomBorder)
        {
            ColumnDefinition leftBorder = new ColumnDefinition()
            {
                Width = new GridLength(Data.GridBorderWidthInFunctionGrid, GridUnitType.Pixel)
            };
            ColumnDefinition nameColumn = new ColumnDefinition()
            {
                Width = new GridLength(1, GridUnitType.Star)
            };
            ColumnDefinition firstSplitterColumn = new ColumnDefinition()
            {
                Width = new GridLength(Data.GridBorderWidthInFunctionGrid, GridUnitType.Pixel)
            };
            ColumnDefinition linesColumn = new ColumnDefinition()
            {
                Width = new GridLength(1, GridUnitType.Star)
            };
            ColumnDefinition secondSplitterColumn = new ColumnDefinition()
            {
                Width = new GridLength(Data.GridBorderWidthInFunctionGrid, GridUnitType.Pixel)
            };
            ColumnDefinition groupColumn = new ColumnDefinition()
            {
                Width = new GridLength(Data.GroupWidth, GridUnitType.Pixel)
            };
            ColumnDefinition fourthSplitterColumn = new ColumnDefinition()
            {
                Width = new GridLength(Data.GridBorderWidthInFunctionGrid, GridUnitType.Pixel)
            };
            ColumnDefinition groupClarificationColumn = new ColumnDefinition()
            {
                Width = new GridLength(3, GridUnitType.Star)
            };
            ColumnDefinition rightBorder = new ColumnDefinition()
            {
                Width = new GridLength(Data.GridBorderWidthInFunctionGrid, GridUnitType.Pixel)
            };

            WPF_Methods.AddToColumnsDefinitionsOfGrid(ref grid, leftBorder, nameColumn, firstSplitterColumn, linesColumn, secondSplitterColumn, /*infoColumn, thirdSplitterColumn,*/ groupColumn, fourthSplitterColumn, groupClarificationColumn, rightBorder);
            WPF_Methods.MakeRowWithBordersInGrid(ref grid, needsBottomBorder, Data.GridBorderWidthInFunctionGrid);
        }
Example #4
0
        private static void MarkupGrid(ref Grid grid, bool needsBottomBorder)
        {
            ColumnDefinition leftBorder = new ColumnDefinition()
            {
                Width = new GridLength(Data.GridBorderWidthInCodeBlocksGrid, GridUnitType.Pixel)
            };
            ColumnDefinition numberColumn = new ColumnDefinition()
            {
                Width = new GridLength(Data.NumberWidth, GridUnitType.Pixel)
            };
            ColumnDefinition firstSplitterColumn = new ColumnDefinition()
            {
                Width = new GridLength(Data.GridBorderWidthInCodeBlocksGrid, GridUnitType.Pixel)
            };
            ColumnDefinition operatorColumn = new ColumnDefinition()
            {
                Width = new GridLength(1, GridUnitType.Star)
            };
            ColumnDefinition secondSplitterColumn = new ColumnDefinition()
            {
                Width = new GridLength(Data.GridBorderWidthInCodeBlocksGrid, GridUnitType.Pixel)
            };
            ColumnDefinition startAndEndLinesColumn = new ColumnDefinition()
            {
                Width = new GridLength(1, GridUnitType.Star)
            };
            ColumnDefinition thirdSplitterColumn = new ColumnDefinition()
            {
                Width = new GridLength(Data.GridBorderWidthInCodeBlocksGrid, GridUnitType.Pixel)
            };
            ColumnDefinition nestingLevelColumn = new ColumnDefinition()
            {
                Width = new GridLength(1, GridUnitType.Star)
            };
            ColumnDefinition rightBorder = new ColumnDefinition()
            {
                Width = new GridLength(Data.GridBorderWidthInCodeBlocksGrid, GridUnitType.Pixel)
            };

            WPF_Methods.AddToColumnsDefinitionsOfGrid(ref grid, leftBorder, numberColumn, firstSplitterColumn, operatorColumn, secondSplitterColumn, startAndEndLinesColumn, thirdSplitterColumn, nestingLevelColumn, rightBorder);
            WPF_Methods.MakeRowWithBordersInGrid(ref grid, needsBottomBorder, Data.GridBorderWidthInCodeBlocksGrid);
        }
Example #5
0
        public Grid GetGrid(int number, bool needsBottomBorder, double fontSize, Brush background)
        {
            Grid grid = new Grid();

            MarkupGrid(ref grid, needsBottomBorder);

            string lines;

            if (Operator == Data.IF.Text)
            {
                List <CodeBlock> list = FirstTask.Get_IF_ConnectedBlocks(this);
                if (list.Count > 0)
                {
                    CodeBlock last = list.Last();
                    lines = (StartLine + 1).ToString() + " ... " + (last.EndLine + 1).ToString();
                }
                else
                {
                    lines = (StartLine + 1).ToString() + " ... " + (EndLine + 1).ToString();
                }
            }
            else
            {
                lines = (StartLine + 1).ToString() + " ... " + (EndLine + 1).ToString();
            }
            string @operator = Operator;

            if (Operator == Data.DO.Text)
            {
                @operator += " " + Data.WHILE.Text;
            }
            if (Operator == Data.QUESTION_MARK)
            {
                @operator = "Тернарный";
            }

            TextBox numberTextBox = new TextBox()
            {
                Text = number.ToString(), Background = background, BorderThickness = Data.NullThickness, TextWrapping = TextWrapping.Wrap, FontSize = fontSize, IsReadOnly = true, Cursor = Cursors.Arrow
            };
            TextBox operatorTextBox = new TextBox()
            {
                Text = @operator, Background = background, BorderThickness = Data.NullThickness, TextWrapping = TextWrapping.Wrap, FontSize = fontSize, IsReadOnly = true, Cursor = Cursors.Arrow, HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center
            };
            TextBox linesTextBox = new TextBox()
            {
                Text = lines, Background = background, BorderThickness = Data.NullThickness, TextWrapping = TextWrapping.Wrap, FontSize = fontSize, IsReadOnly = true, Cursor = Cursors.Arrow, HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center
            };
            TextBox nestingLevelTextBox = new TextBox()
            {
                Text = NestingLevel.ToString(), Background = background, BorderThickness = Data.NullThickness, TextWrapping = TextWrapping.Wrap, FontSize = fontSize, IsReadOnly = true, Cursor = Cursors.Arrow, HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center
            };

            if (Operator == Data.SWITCH.Text)
            {
                string     caption     = "Уровни вложенности ветвей оператора";
                List <int> indexes     = FirstTask.CASE_And_DEFAULT_LinesIndexesOf_SWITCH_Block(this);
                Grid       toolTipGrid = new Grid();
                toolTipGrid.ColumnDefinitions.Add(new ColumnDefinition());
                int toolTipGridRowCounter = 0;
                foreach (int index in indexes)
                {
                    CodeBlock block = FirstTask.GetBlockByStartLine(index);
                    toolTipGrid.RowDefinitions.Add(new RowDefinition());
                    if (index == indexes.Last())
                    {
                        WPF_Methods.AddToGrid(ref toolTipGrid, (block.GetGrid(toolTipGridRowCounter + 1, true, Data.UsualTextFontSize, Data.ToolTipTextBackground), 0, toolTipGridRowCounter++));
                    }
                    else
                    {
                        WPF_Methods.AddToGrid(ref toolTipGrid, (block.GetGrid(toolTipGridRowCounter + 1, false, Data.UsualTextFontSize, Data.ToolTipTextBackground), 0, toolTipGridRowCounter++));
                    }
                }
                WPF_Methods.SetToolTip(ref operatorTextBox, WPF_Methods.CreateToolTipWithGrid(caption, toolTipGrid));
            }

            WPF_Methods.AddToGrid(ref grid, (numberTextBox, 1, 1), (operatorTextBox, 3, 1), (linesTextBox, 5, 1), (nestingLevelTextBox, 7, 1));
            MakeBordersInGrid(ref grid, needsBottomBorder);
            return(grid);
        }
Example #6
0
 private static void MakeBordersInGrid(ref Grid grid, bool needsBottomBorder)
 {
     WPF_Methods.MakeBorderRectangles(ref grid, needsBottomBorder, Data.GridBorderWidthInCodeBlocksGrid);
     WPF_Methods.MakeGridSplitters(ref grid, Data.GridBorderWidthInCodeBlocksGrid, (2, 1), (4, 1), (6, 1));
 }