ScriptEditor.xaml 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <wpf:ThemableWindow x:Class="InABox.DynamicGrid.ScriptEditor"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  5. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  6. xmlns:wpf="clr-namespace:InABox.Wpf;assembly=InABox.Wpf"
  7. xmlns:local="clr-namespace:InABox.DynamicGrid"
  8. xmlns:editor="clr-namespace:RoslynPad.Editor;assembly=RoslynPad.Editor.Windows"
  9. mc:Ignorable="d"
  10. Title="ScriptEditor" Height="800" Width="1200" WindowStartupLocation="CenterScreen" Closing="Window_Closing"
  11. Loaded="OnLoaded">
  12. <Window.CommandBindings>
  13. <CommandBinding x:Name="SaveCommandBinding" Command="{x:Static local:ScriptEditor.SaveCommand}"
  14. Executed="SaveCommandBinding_Executed"
  15. CanExecute="SaveCommandBinding_CanExecute" />
  16. </Window.CommandBindings>
  17. <Grid Margin="0" x:Name="Grid" Background="Silver">
  18. <Grid.RowDefinitions>
  19. <RowDefinition Height="Auto" />
  20. <RowDefinition Height="*" />
  21. <RowDefinition Height="5" />
  22. <RowDefinition Height="100" />
  23. <!--<RowDefinition Height="40" />-->
  24. </Grid.RowDefinitions>
  25. <Grid.ColumnDefinitions>
  26. <ColumnDefinition Width="80" />
  27. <ColumnDefinition Width="*" />
  28. <ColumnDefinition Width="80" />
  29. <ColumnDefinition Width="80" />
  30. </Grid.ColumnDefinitions>
  31. <ToolBar Grid.Row="0" Grid.ColumnSpan="4" Margin="-1,0,0,0">
  32. <Button x:Name="SaveButton" ToolTip="Save &amp; Close" Click="SaveButton_Click" IsEnabled="false">
  33. <Image Source="pack://application:,,,/Resources/disk.png" Height="32" Width="32" />
  34. </Button>
  35. <Separator />
  36. <Button x:Name="CopyButton" ToolTip="Copy" Click="CopyButton_Click" IsEnabled="true">
  37. <Image Source="pack://application:,,,/Resources/copy.png" Height="32" Width="32" />
  38. </Button>
  39. <Button x:Name="CutButton" ToolTip="Cut" Click="CutButton_Click" IsEnabled="true">
  40. <Image Source="pack://application:,,,/Resources/cut.png" Height="32" Width="32" />
  41. </Button>
  42. <Button x:Name="PasteButton" ToolTip="Paste" Click="PasteButton_Click" IsEnabled="true">
  43. <Image Source="pack://application:,,,/Resources/paste.png" Height="32" Width="32" />
  44. </Button>
  45. <Separator />
  46. <Button x:Name="UndoButton" ToolTip="Undo" Click="UndoButton_Click" IsEnabled="true">
  47. <Image Source="pack://application:,,,/Resources/undo.png" Height="32" Width="32" />
  48. </Button>
  49. <Button x:Name="RedoButton" ToolTip="Redo" Click="RedoButton_Click" IsEnabled="true">
  50. <Image Source="pack://application:,,,/Resources/redo.png" Height="32" Width="32" />
  51. </Button>
  52. <Separator />
  53. <Button x:Name="PrintButton" ToolTip="Print" Click="PrintButton_Click" IsEnabled="false">
  54. <Image Source="pack://application:,,,/Resources/print.png" Height="32" Width="32" />
  55. </Button>
  56. <Separator />
  57. <Button x:Name="CompileButton" ToolTip="Execute" Click="CompileButton_Click" IsEnabled="true">
  58. <Image Source="pack://application:,,,/Resources/tick.png" Height="32" Width="32" />
  59. </Button>
  60. <Button x:Name="RunButton" ToolTip="Execute" Click="RunButton_Click" IsEnabled="true">
  61. <Image Source="pack://application:,,,/Resources/run.png" Height="32" Width="32" />
  62. </Button>
  63. </ToolBar>
  64. <Grid Grid.Row="1" Grid.ColumnSpan="4" Margin="2,2,2,0">
  65. <Grid.ColumnDefinitions>
  66. <ColumnDefinition Width="*" />
  67. <ColumnDefinition Width="Auto" />
  68. <ColumnDefinition Width="Auto" />
  69. </Grid.ColumnDefinitions>
  70. <editor:RoslynCodeEditor
  71. x:Name="Roslyn"
  72. Loaded="Roslyn_Loaded"
  73. PreviewKeyDown="Roslyn_PreviewKeyDown"
  74. TextChanged="Roslyn_TextChanged"
  75. IsReadOnly="false"
  76. HorizontalScrollBarVisibility="Auto"
  77. VerticalScrollBarVisibility="Auto"
  78. ShowLineNumbers="true"
  79. FontFamily="Courier New"
  80. FontSize="12"
  81. Grid.Column="0" />
  82. <GridSplitter Grid.Column="1" ResizeDirection="Columns" />
  83. <DockPanel x:Name="SnippetPanel" Grid.Column="2" Width="150" Visibility="Collapsed">
  84. <ComboBox x:Name="SnippetSection" DockPanel.Dock="Top" Margin="0,0,0,2"
  85. SelectionChanged="SnippetSection_SelectionChanged" />
  86. <ListView x:Name="SnippetList" HorizontalAlignment="Stretch"
  87. MouseDoubleClick="Snippets_MouseDoubleClick" Background="WhiteSmoke" BorderBrush="Gray"
  88. BorderThickness="0.75">
  89. <ListView.ItemTemplate>
  90. <DataTemplate>
  91. <Border BorderBrush="Gray" BorderThickness="0.75" Background="LightYellow" Margin="0"
  92. HorizontalAlignment="Stretch">
  93. <TextBlock Height="Auto" TextWrapping="Wrap" Margin="4,0,4,0" TextAlignment="Left"
  94. Text="{Binding}" VerticalAlignment="Center" HorizontalAlignment="Stretch" />
  95. </Border>
  96. </DataTemplate>
  97. </ListView.ItemTemplate>
  98. </ListView>
  99. </DockPanel>
  100. </Grid>
  101. <GridSplitter Grid.Row="2" Grid.ColumnSpan="4" ResizeDirection="Rows" Height="2" />
  102. <ListBox x:Name="Errors" Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="4" Margin="0,0,0,0"
  103. SelectionChanged="Errors_SelectionChanged" PreviewMouseDown="Errors_PreviewMouseDown" />
  104. <GridSplitter HorizontalAlignment="Left" Height="100" Margin="-115,494,0,0" Grid.Row="1" Grid.RowSpan="2"
  105. VerticalAlignment="Top" Width="5" />
  106. </Grid>
  107. </wpf:ThemableWindow>