<mahapps:MetroWindow x:Class="Tango.Protobuf.UI.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Tango.Protobuf.UI"
xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:System="clr-namespace:System;assembly=mscorlib"
xmlns:proto="clr-namespace:Tango.Protobuf;assembly=Tango.Protobuf"
xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI"
xmlns:fa="http://schemas.fontawesome.io/icons/"
mc:Ignorable="d"
Title="Tango Protobuf Compilation Utility" Height="600" Width="1000" TitleCaps="False" BorderBrush="Gray" BorderThickness="1" WindowStartupLocation="CenterScreen" Background="#202020" Foreground="Gainsboro" DataContext="{Binding RelativeSource={RelativeSource Self}}">
<Window.Resources>
<converters:EnumToDescriptionConverter x:Key="EnumToDescriptionConverter"></converters:EnumToDescriptionConverter>
<ObjectDataProvider x:Key="languages" MethodName="GetValues"
ObjectType="{x:Type System:Enum}">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="proto:CompilerLanguage"/>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="80" />
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Grid>
<Polygon Fill="#151515" HorizontalAlignment="Right" VerticalAlignment="Top" Points="80,0 400,0 400,80 0,80"></Polygon>
<Polygon Fill="#151515" HorizontalAlignment="Left" VerticalAlignment="Top" Points="0,0 100,0 200,80 0,80"></Polygon>
</Grid>
<Grid Margin="15 0 15 0" VerticalAlignment="Center">
<StackPanel Orientation="Horizontal">
<Menu HorizontalAlignment="Left" Width="100" VerticalAlignment="Center" Background="Transparent">
<MenuItem Header="File" Background="Transparent">
<MenuItem Header="Load File"/>
<MenuItem Header="Load Folder" Command="{Binding LoadFolderCommand}" />
</MenuItem>
</Menu>
</StackPanel>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
<TextBox Width="100" Margin="0 0 10 0" BorderThickness="1" BorderBrush="DimGray" Height="28" x:Name="txtIncludes"></TextBox>
<Button Margin="5" Style="{StaticResource AccentedSquareButtonStyle}" mahapps:ButtonHelper.PreserveTextCase="True" BorderThickness="0" Command="{Binding CompileCommand}">
<StackPanel Orientation="Horizontal">
<fa:ImageAwesome Icon="Code" Width="16"></fa:ImageAwesome>
<TextBlock VerticalAlignment="Center" Margin="10 0 10 0">Compile</TextBlock>
</StackPanel>
</Button>
<ComboBox Margin="5" Width="80" BorderThickness="0" ItemsSource="{Binding Source={StaticResource languages}}" SelectedItem="{Binding CompilerLanguage,Mode=TwoWay}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Converter={StaticResource EnumToDescriptionConverter}}"></TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<Button Margin="30 5 5 5" Style="{StaticResource AccentedSquareButtonStyle}" mahapps:ButtonHelper.PreserveTextCase="True" BorderThickness="0" Command="{Binding SaveCommand}">
<StackPanel Orientation="Horizontal">
<fa:ImageAwesome Icon="Save" Width="16"></fa:ImageAwesome>
<TextBlock VerticalAlignment="Center" Margin="20 0 20 0">Save</TextBlock>
</StackPanel>
</Button>
</StackPanel>
</Grid>
<Grid Grid.Row="1" Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="224*"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="195*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="100*"/>
</Grid.ColumnDefinitions>
<Grid>
<GroupBox Header="Proto Files">
<TreeView Background="Transparent">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type local:DirectoryItem}"
ItemsSource="{Binding Items}">
<StackPanel Orientation="Horizontal">
<fa:ImageAwesome Icon="Folder" Foreground="Orange" Width="16" Height="16"></fa:ImageAwesome>
<TextBlock Margin="5 0 0 0" Text="{Binding Path=Name}" ToolTip="{Binding Path=Path}" />
</StackPanel>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type local:FileItem}">
<StackPanel Orientation="Horizontal">
<fa:ImageAwesome Icon="File" Foreground="Gainsboro" Width="16" Height="16"></fa:ImageAwesome>
<TextBlock Margin="5 0 0 0" Text="{Binding Path=Name}" ToolTip="{Binding Path=Path}" />
</StackPanel>
</DataTemplate>
</TreeView.Resources>
<TreeView HorizontalAlignment="Stretch" VerticalAlignment="Stretch" HorizontalContentAlignment="Left" ItemsSource="{Binding SourceItems}" SelectedItemChanged="Source_TreeView_SelectedItemChanged" />
</TreeView>
</GroupBox>
</Grid>
<GridSplitter Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Stretch" Width="5" Background="#151515"></GridSplitter>
<Grid Grid.Column="2">
<GroupBox Header="Compiled Files">
<TreeView Background="Transparent">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type proto:CompilerFolderResult}"
ItemsSource="{Binding Results}">
<StackPanel Orientation="Horizontal">
<fa:ImageAwesome Icon="Folder" Foreground="Orange" Width="16" Height="16"></fa:ImageAwesome>
<TextBlock Margin="5 0 0 0" Text="{Binding Path=Name}" ToolTip="{Binding Path=RelativePath}" />
</StackPanel>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type proto:CompilerFileResult}">
<StackPanel Orientation="Horizontal">
<fa:ImageAwesome Icon="Code" Foreground="Gainsboro" Width="16" Height="16"></fa:ImageAwesome>
<TextBlock Margin="5 0 0 0" Text="{Binding Path=Name}" />
</StackPanel>
</DataTemplate>
</TreeView.Resources>
<TreeView HorizontalAlignment="Stretch" VerticalAlignment="Stretch" HorizontalContentAlignment="Left" ItemsSource="{Binding TargetItems}" SelectedItemChanged="Source_TreeView_SelectedItemChanged" />
</TreeView>
</GroupBox>
</Grid>
<GridSplitter Grid.Row="1" Grid.ColumnSpan="3" Height="5" Background="#151515" VerticalAlignment="Center" HorizontalAlignment="Stretch"></GridSplitter>
<Grid Grid.Row="2" Grid.ColumnSpan="3">
<GroupBox Header="Preview">
<TextBox Text="{Binding CurrentContent}" Background="#101010" FontFamily="Lucida Console" BorderThickness="0" Padding="5" AcceptsReturn="True" TextWrapping="NoWrap" IsReadOnly="True" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"></TextBox>
</GroupBox>
</Grid>
</Grid>
</Grid>
</mahapps:MetroWindow>