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); }
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); }
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); }
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); }
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)); }