diff options
| author | Victoria Plitt <Victoria.Plitt@twine-s.com> | 2019-03-28 18:06:45 +0200 |
|---|---|---|
| committer | Victoria Plitt <Victoria.Plitt@twine-s.com> | 2019-03-28 18:06:45 +0200 |
| commit | a706aefd3dbf0552205dc0c850e2eba06bbf6e34 (patch) | |
| tree | db56a55fd25740e8b8b94156555c3b192770ad7f | |
| parent | 5f241ab7a605f38c40a73308c622a1646b8f53d7 (diff) | |
| download | Tango-a706aefd3dbf0552205dc0c850e2eba06bbf6e34.tar.gz Tango-a706aefd3dbf0552205dc0c850e2eba06bbf6e34.zip | |
Added "NewProjectDialog" dialog , styles and icons
25 files changed, 1106 insertions, 27 deletions
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Controls/ErrorData.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Controls/ErrorData.cs new file mode 100644 index 000000000..2dc07ba3f --- /dev/null +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Controls/ErrorData.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Core; + +namespace Tango.Scripting.IDE.Controls +{ + public class ErrorData: ExtendedObject + { + private string _severity; + private string _error; + private string _project; + private string _code; + + public string Description + { + get { return _error; } + set + { + _error = value; + RaisePropertyChangedAuto(); + } + } + public string Severity + { + get { return _severity; } + set + { + _severity = value; + RaisePropertyChangedAuto(); + } + } + public string Project + { + get { return _project; } + set + { + _project = value; + RaisePropertyChangedAuto(); + } + } + public string Code + { + get { return _code; } + set { _code = value; } + } + + public string File { get; set; } + public string Line { get; set; } + public string SuppressionState { get; set; } + } +} diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/AddNewControl.xaml b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/AddNewControl.xaml new file mode 100644 index 000000000..e5857e5a5 --- /dev/null +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/AddNewControl.xaml @@ -0,0 +1,130 @@ +<UserControl x:Class="Tango.Scripting.IDE.Dialogs.AddNewControl" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:Tango.Scripting.IDE.Dialogs" + mc:Ignorable="d" + xmlns:global="clr-namespace:Tango.Scripting.IDE" + d:DesignHeight="450" d:DesignWidth="800" d:DataContext="{d:DesignInstance Type=local:NewProjectDialogVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.NewProjectDialogVM}"> + <UserControl.Resources> + <ResourceDictionary> + <ResourceDictionary.MergedDictionaries> + <ResourceDictionary Source="/Tango.Scripting.IDE;component/Themes/DarkThemesColors.xaml"/> + <ResourceDictionary Source="/Tango.Scripting.IDE;component/Themes/Shared.xaml"/> + </ResourceDictionary.MergedDictionaries> + <Style TargetType="TextBlock"> + <Setter Property="Foreground" Value="{DynamicResource ControlTextBrush}" /> + </Style> + <Style TargetType="TextBox"> + <Setter Property="Foreground" Value="{DynamicResource ControlTextBrush}" /> + <Setter Property="Background" Value="{DynamicResource ListBorder}" /> + <Setter Property="BorderThickness" Value="1"/> + <Setter Property="BorderBrush" Value="{DynamicResource ListBorder}"/> + </Style> + + <Style TargetType="Label"> + <Setter Property="Foreground" Value="{DynamicResource ControlTextBrush}" /> + </Style> + </ResourceDictionary> + </UserControl.Resources> + <Grid Background="{DynamicResource Window.Background}"> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="*"/> + <ColumnDefinition Width="240"/> + </Grid.ColumnDefinitions> + <Grid.RowDefinitions> + <RowDefinition Height="*"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="5"/> + </Grid.RowDefinitions> + <Border Background="{DynamicResource Background.Static}" BorderThickness="0" Grid.Column="0" Grid.Row="0" > + <Border BorderThickness="0" Margin="5" Background="{DynamicResource Window.Background}"> + <ListView x:Name="ProjectTypes" ItemsSource="{Binding ProjectTypes}" Background="Transparent" ScrollViewer.VerticalScrollBarVisibility="Auto" SelectedItem="{Binding SelectedProjectType,Mode=TwoWay}" BorderBrush="Transparent" IsSynchronizedWithCurrentItem="True"> + <ListView.ItemTemplate> + <DataTemplate> + <Border Padding="2"> + <WrapPanel> + <Image Stretch="Fill" Height="30" Source="{Binding Path=SmallImage}"/> + <TextBlock Text="{Binding Name}" Margin="20,5,0,0" Foreground="{DynamicResource ControlTextBrush}"/> + </WrapPanel> + </Border> + </DataTemplate> + </ListView.ItemTemplate> + <ListView.Resources> + <Style TargetType="{x:Type ListViewItem}"> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type ListViewItem}"> + <Border x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true"> + <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" /> + </Border> + <ControlTemplate.Triggers> + <MultiTrigger> + <MultiTrigger.Conditions> + <Condition Property="Selector.IsSelectionActive" Value="False" /> + <Condition Property="IsSelected" Value="True" /> + </MultiTrigger.Conditions> + <Setter Property="Background" TargetName="Bd" Value="{DynamicResource ControlBrushColorKey}" /> + </MultiTrigger> + <MultiTrigger> + <MultiTrigger.Conditions> + <Condition Property="Selector.IsSelectionActive" Value="True" /> + <Condition Property="IsSelected" Value="True" /> + </MultiTrigger.Conditions> + <Setter Property="Background" TargetName="Bd" Value="{DynamicResource ControlBrushColorKey}" /> + </MultiTrigger> + </ControlTemplate.Triggers> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + </ListView.Resources> + </ListView> + </Border> + </Border> + <Grid x:Name="ProjectImage" Grid.Column="1" Grid.Row="0" Background="{DynamicResource Background.Static}"> + <Grid.RowDefinitions> + <RowDefinition Height="Auto" MinHeight="40"/> + <RowDefinition Height="*"/> + </Grid.RowDefinitions> + <TextBlock Grid.Row="0" Text="{Binding SelectedDescription}" Margin="10" TextWrapping="Wrap"/> + <Border Grid.Row="1" BorderThickness="0"> + <Border Width="126" Height="126" VerticalAlignment="Center" HorizontalAlignment="Center"> + <Image Stretch="Uniform" Source="{Binding Path=LargeImage}" + VerticalAlignment="Center" + HorizontalAlignment="Center" /> + </Border> + </Border> + </Grid> + + <Border Grid.Row="1" Grid.ColumnSpan="2" Margin="10" > + <Grid x:Name="ProjectNameGrid" Grid.Row="1" Grid.ColumnSpan="2"> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="110"/> + <ColumnDefinition Width="*"/> + <ColumnDefinition Width="240"/> + </Grid.ColumnDefinitions> + <Grid.RowDefinitions> + <RowDefinition Height="24"/> + <RowDefinition Height="5"/> + <RowDefinition Height="24"/> + <RowDefinition Height="5"/> + <RowDefinition Height="24"/> + </Grid.RowDefinitions> + + <TextBlock Grid.Column="0" Grid.Row="0">Name:</TextBlock> + <TextBox Grid.Column="1" Grid.Row="0" VerticalAlignment="Center" Text="{Binding ProjectName}"/> + <TextBlock Grid.Column="0" Grid.Row="2" >Location</TextBlock> + <Border Background="{DynamicResource ListBorder}" Grid.Column="1" Grid.Row="2" Margin="0,2,0,2" BorderBrush="{DynamicResource Button.Static.Border}"> + <ComboBox Style="{DynamicResource TangoComboboxStyle}" VerticalAlignment="Stretch" SelectedItem="{Binding ProjectLocation}" ItemsSource="{Binding Locations}" HorizontalAlignment="Stretch" BorderBrush="Transparent"/> + </Border> + <Button Style="{DynamicResource TangoButtonStyle}" Grid.Column="2" Grid.Row="2" Width="80" HorizontalAlignment="Left" Margin="20,0,0,0"> Browse...</Button> + <TextBlock Grid.Column="0" Grid.Row="4" >Solution name:</TextBlock> + <TextBox Grid.Column="1" Grid.Row="4" VerticalAlignment="Center" Text="{Binding SolutionName}"/> + + </Grid> + </Border> + + </Grid> +</UserControl> diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/AddNewControl.xaml.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/AddNewControl.xaml.cs new file mode 100644 index 000000000..cdbea2199 --- /dev/null +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/AddNewControl.xaml.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.Scripting.IDE.Dialogs +{ + /// <summary> + /// Interaction logic for AddNewControl.xaml + /// </summary> + public partial class AddNewControl : UserControl + { + public AddNewControl() + { + InitializeComponent(); + } + + } +} diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialog.xaml b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialog.xaml index 7942a7165..9fa8422c9 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialog.xaml +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialog.xaml @@ -1,12 +1,35 @@ -<UserControl x:Class="Tango.Scripting.IDE.Dialogs.NewProjectDialog" +<Window x:Class="Tango.Scripting.IDE.Dialogs.NewProjectDialog" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:global="clr-namespace:Tango.Scripting.IDE" xmlns:local="clr-namespace:Tango.Scripting.IDE.Dialogs" mc:Ignorable="d" - d:DesignHeight="450" d:DesignWidth="800"> - <Grid> - + Title="Add New Project" + WindowStyle="ToolWindow" + ResizeMode="NoResize" ShowInTaskbar="False" WindowStartupLocation="CenterScreen" + FontSize="12" + Height="630" Width="950" > + <Window.Resources> + <ResourceDictionary> + <ResourceDictionary.MergedDictionaries> + <ResourceDictionary Source="/Tango.Scripting.IDE;component/Themes/DarkThemesColors.xaml"/> + <ResourceDictionary Source="/Tango.Scripting.IDE;component/Themes/ButtonStyle.xaml"/> + </ResourceDictionary.MergedDictionaries> + </ResourceDictionary> + </Window.Resources> + <Grid Background="{DynamicResource Window.Background}"> + <Grid.RowDefinitions> + <RowDefinition Height="*"/> + <RowDefinition Height="40"/> + </Grid.RowDefinitions> + <local:AddNewControl Grid.Row="0" Margin="10,10,10,0"/> + <Border Grid.Row="1"> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" > + <Button Style="{DynamicResource TangoButtonStyle}" Click="OKDialog" IsDefault="True" Width="80" Height="24">OK</Button> + <Button Margin="8,0,15,0" Style="{DynamicResource TangoButtonStyle}" Click="CancelDialog" Width="80" Height="24">Cancel</Button> + </StackPanel> + </Border> </Grid> -</UserControl> +</Window> diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialog.xaml.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialog.xaml.cs index 376190e3a..f3e05e35f 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialog.xaml.cs +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialog.xaml.cs @@ -1,4 +1,5 @@ -using System; + +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -18,11 +19,34 @@ namespace Tango.Scripting.IDE.Dialogs /// <summary> /// Interaction logic for NewProjectDialog.xaml /// </summary> - public partial class NewProjectDialog : UserControl + public partial class NewProjectDialog : Window { - public NewProjectDialog() + static string _sAddNewProjectTitle = "Add New Project"; + static string _sNewProjectTitle = "New Project"; + protected bool _bNewProject; + + + public NewProjectDialog(bool bNewProject) { + _bNewProject = bNewProject; + InitializeComponent(); + Title = bNewProject ? _sAddNewProjectTitle : _sNewProjectTitle; + + } + private void CancelDialog(object sender, RoutedEventArgs e) + { + // Dialog box canceled + DialogResult = false; + } + + private void OKDialog(object sender, RoutedEventArgs e) + { + // Don't accept the dialog box if there is invalid data + // if (!IsValid(this)) return; + + // Dialog box accepted + DialogResult = true; } } } diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialogVM.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialogVM.cs index 3c25e70f3..f7e31b75a 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialogVM.cs +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialogVM.cs @@ -1,14 +1,92 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Windows.Media.Imaging; +using Tango.Scripting.IDE.ProjectTypes; using Tango.SharedUI; namespace Tango.Scripting.IDE.Dialogs { - public class NewProjectDialogVM : ViewModel + public class NewProjectDialogVM : DialogViewVM { + public ObservableCollection<IProjectType> ProjectTypes { get; set; } + public List<String> Locations { get; set; } + private IProjectType _selectedProjectType = null; + public IProjectType SelectedProjectType + { + get { return _selectedProjectType; } + set { _selectedProjectType = value; + RaisePropertyChangedAuto(); + RaisePropertyChanged("LargeImage"); + RaisePropertyChanged("SelectedDescription"); + } + } + private BitmapSource _defaultLargeImage = ProjectType.GetImage("Images/test.png"); + public BitmapSource LargeImage + { + get + { + if (SelectedProjectType != null) + return SelectedProjectType.LargeImage; + else return _defaultLargeImage; + } + } + public string SelectedDescription + { + get + { + if (SelectedProjectType != null) + return SelectedProjectType.Description; + return ""; + } + } + private String _projectName = "App1"; + public String ProjectName + { + get { return _projectName; } + set { _projectName = value; RaisePropertyChangedAuto(); } + } + private String _projectLocation; + public String ProjectLocation + { + get { return _projectLocation; } + set { _projectLocation = value; RaisePropertyChangedAuto(); } + } + + private String _solutionName = "App1"; + public String SolutionName + { + get { return _solutionName; } + set { _solutionName = value; RaisePropertyChangedAuto(); } + } + public NewProjectDialogVM() : base() + { + ProjectTypes = new ObservableCollection<IProjectType>(); + RegisterProjectType(new StubProjectType()); + RegisterProjectType(new UnitTestProjectType()); + + _selectedProjectType = ProjectTypes.FirstOrDefault(); + + string workingDirectory = Environment.CurrentDirectory; + _projectLocation = Directory.GetParent(workingDirectory).Parent.Parent.FullName; + + Locations = new List<string>(); + Locations.Add(_projectLocation); + + } + public void RegisterProjectType(IProjectType projectType) + { + ProjectTypes.Add(projectType); + } + + public void UnRegisterProjectItemHandler(IProjectType projectType) + { + ProjectTypes.Remove(projectType); + } } } diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/IProjectType.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/IProjectType.cs index ed9ff51a8..19a234db3 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/IProjectType.cs +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/IProjectType.cs @@ -16,6 +16,7 @@ namespace Tango.Scripting.IDE String Description { get; } - BitmapSource Image { get; } + BitmapSource SmallImage { get; } + BitmapSource LargeImage { get; } } } diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/checklist.png b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/checklist.png Binary files differnew file mode 100644 index 000000000..fc3e7a416 --- /dev/null +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/checklist.png diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/checklist_white126.png b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/checklist_white126.png Binary files differnew file mode 100644 index 000000000..a49c21379 --- /dev/null +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/checklist_white126.png diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/checklist_white_32.png b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/checklist_white_32.png Binary files differnew file mode 100644 index 000000000..e904220a7 --- /dev/null +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/checklist_white_32.png diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/storyboard_white32.png b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/storyboard_white32.png Binary files differnew file mode 100644 index 000000000..875611302 --- /dev/null +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/storyboard_white32.png diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/storyboard_white_126.png b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/storyboard_white_126.png Binary files differnew file mode 100644 index 000000000..a06e8e1c8 --- /dev/null +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/storyboard_white_126.png diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/test.png b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/test.png Binary files differnew file mode 100644 index 000000000..1d60a840f --- /dev/null +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/test.png diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectType.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectType.cs new file mode 100644 index 000000000..4b3f6085b --- /dev/null +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectType.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Media.Imaging; +using Tango.SharedUI.Helpers; + +namespace Tango.Scripting.IDE +{ + public abstract class ProjectType : IProjectType + { + private static Dictionary<String, BitmapSource> _imageCache; + + static ProjectType() + { + _imageCache = new Dictionary<string, BitmapSource>(); + } + + public abstract string Name { get; } + public abstract string Description { get; } + public abstract BitmapSource SmallImage { get; } + public abstract BitmapSource LargeImage { get; } + + public static BitmapSource GetImage(String name) + { + if (_imageCache.ContainsKey(name)) + { + return _imageCache[name]; + } + else + { + var image = ResourceHelper.GetImageFromResources(name); + _imageCache.Add(name, image); + return image; + } + } + + public abstract IProject NewProject(string projectPath); + } +} diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectTypes/StubProjectType.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectTypes/StubProjectType.cs index 4450f4a39..b26d45cff 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectTypes/StubProjectType.cs +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectTypes/StubProjectType.cs @@ -10,9 +10,9 @@ using Tango.Scripting.IDE.Projects; namespace Tango.Scripting.IDE.ProjectTypes { - public class StubProjectType : IProjectType + public class StubProjectType : ProjectType { - public IProject NewProject(string projectPath) + public override IProject NewProject(string projectPath) { StubProject project = new StubProject(); @@ -39,8 +39,9 @@ namespace Tango.Scripting.IDE.ProjectTypes return project; } - public string Name => "Unit Test Project"; - public string Description => "Create a unit test project template."; - public BitmapSource Image { get; } + public override string Name => "Stub Project"; + public override string Description => "Create a stub project template."; + public override BitmapSource SmallImage => GetImage("Images/storyboard_white32.png"); + public override BitmapSource LargeImage => GetImage("Images/storyboard_white_126.png"); } } diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectTypes/UnitTestProjectType.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectTypes/UnitTestProjectType.cs index 4519e5aca..01926a2ba 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectTypes/UnitTestProjectType.cs +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectTypes/UnitTestProjectType.cs @@ -10,9 +10,9 @@ using Tango.Scripting.IDE.Projects; namespace Tango.Scripting.IDE.ProjectTypes { - public class UnitTestProjectType : IProjectType + public class UnitTestProjectType : ProjectType { - public IProject NewProject(string projectPath) + public override IProject NewProject(string projectPath) { UnitTestProject project = new UnitTestProject(); @@ -36,8 +36,10 @@ namespace Tango.Scripting.IDE.ProjectTypes return project; } - public string Name => "Unit Test Project"; - public string Description => "Create a unit test project template."; - public BitmapSource Image { get; } + public override string Name => "Unit Test Project"; + public override string Description => "Create a unit test project template."; + public override BitmapSource SmallImage => GetImage("Images/checklist_white_32.png"); + public override BitmapSource LargeImage => GetImage("Images/checklist_white126.png"); + } } diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEView2.xaml b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEView2.xaml index a28101a17..e2f7de2ad 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEView2.xaml +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEView2.xaml @@ -24,7 +24,10 @@ </Grid.RowDefinitions> <Menu Grid.Row="0" HorizontalAlignment="Stretch" Margin="0,0,0,0" Style="{DynamicResource TangoMenuStyle}"> <MenuItem Header="File"> - <MenuItem Header="New"></MenuItem> + <MenuItem Header="New"> + <MenuItem Header="New Project" Command="{Binding NewProjectCommand}"> + </MenuItem> + </MenuItem> <MenuItem Header="Open"></MenuItem> <MenuItem Header="Start page"></MenuItem> <Separator/> @@ -111,8 +114,19 @@ <Grid Grid.Row="2" Background="{DynamicResource Background.Static}"> <Border BorderThickness="0" Margin="1,0,0,2"> <TabControl TabStripPlacement="Bottom" Style="{DynamicResource TangoTabControlStyle}"> - <TabItem Header="Error list">error list</TabItem> - <TabItem Header="Output">output</TabItem> + <TabItem Header="Error list"> + <DataGrid Background="{DynamicResource TabItem.Content.Static}" Style="{DynamicResource TangoDataGridStyle}" Padding="2,5,2,0" + ColumnHeaderStyle="{DynamicResource TangoDataGridColumnHeaderStyle}" ItemsSource="{Binding ErrorList}" + CanUserSortColumns="True" + CanUserResizeColumns="True" + IsReadOnly="True"/> + </TabItem> + <TabItem Header="Output"> + <ListBox ScrollViewer.VerticalScrollBarVisibility="Visible" + ScrollViewer.HorizontalScrollBarVisibility="Visible"> + + </ListBox> + </TabItem> </TabControl> </Border> </Grid> @@ -122,7 +136,7 @@ <Grid Grid.Column="2"> <GroupBox Margin="0,0,5,5" Header="Solution Explorer" BorderThickness="1" Style="{DynamicResource TangoGroupBoxStyle}" > - <TreeView Style="{DynamicResource TangoTreeViewStyle}" ItemsSource="{Binding Solution.Projects}" Background="{DynamicResource TabItem.Content.Static}" > + <TreeView Style="{DynamicResource TangoTreeViewStyle}" ItemsSource="{Binding Solution.Projects}" Background="{DynamicResource TabItem.Content.Static}" Padding="0,8,0,0"> <TreeView.ItemTemplate> <HierarchicalDataTemplate ItemsSource="{Binding Path=Items}" DataType="{x:Type local:IProject}"> <controls:SolutionItemControl SolutionItem="{Binding}" OpenCommand="{Binding ElementName=control,Path=DataContext.OpenProjectItemCommand}" /> diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEViewVM.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEViewVM.cs index e52b58775..634b4d64d 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEViewVM.cs +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEViewVM.cs @@ -4,7 +4,10 @@ using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Windows; +using System.Windows.Media.Imaging; using Tango.Core.Commands; +using Tango.Scripting.IDE.Controls; using Tango.Scripting.IDE.Projects; using Tango.Scripting.IDE.ProjectTypes; using Tango.SharedUI; @@ -14,6 +17,7 @@ namespace Tango.Scripting.IDE public class ScriptIDEViewVM : ViewModel { private List<IProjectType> _projectTypes; + public ObservableCollection<ErrorData> ErrorList { get; set; } #region Properties @@ -44,11 +48,11 @@ namespace Tango.Scripting.IDE get { return _openProjectItems; } set { _openProjectItems = value; RaisePropertyChangedAuto(); } } - + #endregion #region Commands - + public RelayCommand NewProjectCommand { get; set; } public RelayCommand<IProjectItem> OpenProjectItemCommand { get; set; } public RelayCommand<IProjectItem> CloseProjectItemCommand { get; set; } @@ -61,13 +65,16 @@ namespace Tango.Scripting.IDE { _projectTypes = new List<IProjectType>(); OpenProjectItems = new ObservableCollection<IProjectItem>(); + ErrorList = new ObservableCollection<ErrorData>(); RegisterProjectType(new StubProjectType()); + RegisterProjectType(new UnitTestProjectType()); Solution = new Solution(); Solution.Projects.Add(_projectTypes.First().NewProject("Test Project.stub")); //Init Commands + NewProjectCommand = new RelayCommand(AddNewProject); OpenProjectItemCommand = new RelayCommand<IProjectItem>(OpenProjectItem); CloseProjectItemCommand = new RelayCommand<IProjectItem>(CloseProjectItem); } @@ -102,7 +109,17 @@ namespace Tango.Scripting.IDE { _projectTypes.Remove(projectType); } - + /// <summary> + /// Open a dialog to create a new project + /// </summary> + private void AddNewProject() + { + Dialogs.NewProjectDialog dialog = new Dialogs.NewProjectDialog(true); + if(dialog.ShowDialog() == true) + { + MessageBox.Show("You said: OK"); + } + } #endregion } } diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Tango.Scripting.IDE.csproj b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Tango.Scripting.IDE.csproj index 5dde283e0..645978cac 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Tango.Scripting.IDE.csproj +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Tango.Scripting.IDE.csproj @@ -37,6 +37,7 @@ <Reference Include="MahApps.Metro, Version=1.5.0.23, Culture=neutral, PublicKeyToken=f4fb5a3c4d1e5b4f, processorArchitecture=MSIL"> <HintPath>..\packages\MahApps.Metro.1.5.0\lib\net45\MahApps.Metro.dll</HintPath> </Reference> + <Reference Include="PresentationFramework.Aero2" /> <Reference Include="System" /> <Reference Include="System.Data" /> <Reference Include="System.Drawing" /> @@ -65,9 +66,13 @@ <Reference Include="PresentationFramework" /> </ItemGroup> <ItemGroup> + <Compile Include="Controls\ErrorData.cs" /> <Compile Include="Controls\SharedResourceDictionary.cs" /> <Compile Include="Controls\SolutionItemControl.cs" /> <Compile Include="Controls\TabConrolClose.cs" /> + <Compile Include="Dialogs\AddNewControl.xaml.cs"> + <DependentUpon>AddNewControl.xaml</DependentUpon> + </Compile> <Compile Include="Dialogs\NewProjectDialog.xaml.cs"> <DependentUpon>NewProjectDialog.xaml</DependentUpon> </Compile> @@ -86,6 +91,7 @@ <Compile Include="IProject.cs" /> <Compile Include="Project.cs" /> <Compile Include="Projects\UnitTestProject.cs" /> + <Compile Include="ProjectType.cs" /> <Compile Include="ProjectTypes\StubProjectType.cs" /> <Compile Include="ProjectTypes\UnitTestProjectType.cs" /> <Compile Include="ScriptIDEView.xaml.cs"> @@ -97,6 +103,11 @@ <Compile Include="ScriptIDEViewVM.cs" /> <Compile Include="Solution.cs" /> <Compile Include="Projects\StubProject.cs" /> + <Compile Include="ViewModelLocator.cs" /> + <Page Include="Dialogs\AddNewControl.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> <Page Include="Dialogs\NewProjectDialog.xaml"> <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> @@ -117,6 +128,10 @@ <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> + <Page Include="Themes\ButtonStyle.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> <Page Include="Themes\ComboboxStyle.xaml"> <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> @@ -125,6 +140,10 @@ <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> + <Page Include="Themes\DataGridStyle.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> <Page Include="Themes\Generic.xaml"> <Generator>MSBuild:Compile</Generator> <SubType>Designer</SubType> @@ -137,6 +156,10 @@ <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> + <Page Include="Themes\ScrollViewerStyle.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> <Page Include="Themes\Shared.xaml"> <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> @@ -216,5 +239,21 @@ <ItemGroup> <Resource Include="Images\OpenFolder_16x.png" /> </ItemGroup> + <ItemGroup> + <Resource Include="Images\checklist.png" /> + </ItemGroup> + <ItemGroup> + <Resource Include="Images\checklist_white_32.png" /> + </ItemGroup> + <ItemGroup> + <Resource Include="Images\checklist_white126.png" /> + </ItemGroup> + <ItemGroup> + <Resource Include="Images\storyboard_white32.png" /> + <Resource Include="Images\storyboard_white_126.png" /> + </ItemGroup> + <ItemGroup> + <Resource Include="Images\test.png" /> + </ItemGroup> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/ButtonStyle.xaml b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/ButtonStyle.xaml new file mode 100644 index 000000000..21ed3b4b8 --- /dev/null +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/ButtonStyle.xaml @@ -0,0 +1,52 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:local="clr-namespace:Tango.Scripting.IDE.Themes"> + + <Style x:Key="FocusVisual"> + <Setter Property="Control.Template"> + <Setter.Value> + <ControlTemplate> + <Rectangle Margin="2" SnapsToDevicePixels="true" Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" StrokeThickness="1" StrokeDashArray="1 2"/> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + <Style x:Key="TangoButtonStyle" TargetType="{x:Type Button}"> + <Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/> + <Setter Property="Background" Value="{DynamicResource Button.Static.Background}"/> + <Setter Property="BorderBrush" Value="{DynamicResource Button.Static.Border}"/> + <Setter Property="Foreground" Value="{DynamicResource ControlForegroundKey}"/> + <Setter Property="BorderThickness" Value="1"/> + <Setter Property="HorizontalContentAlignment" Value="Center"/> + <Setter Property="VerticalContentAlignment" Value="Center"/> + <Setter Property="Padding" Value="1"/> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type Button}"> + <Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="true"> + <ContentPresenter x:Name="contentPresenter" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> + </Border> + <ControlTemplate.Triggers> + <Trigger Property="IsDefaulted" Value="true"> + <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource Button.MouseOver.Border}"/> + </Trigger> + <Trigger Property="IsMouseOver" Value="true"> + <Setter Property="Background" TargetName="border" Value="{DynamicResource Button.MouseOver.Background}"/> + <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource Button.MouseOver.Border}"/> + </Trigger> + <Trigger Property="IsPressed" Value="true"> + <Setter Property="Background" TargetName="border" Value="{DynamicResource Button.Pressed.Background}"/> + <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource Button.Pressed.Border}"/> + </Trigger> + <Trigger Property="IsEnabled" Value="false"> + <Setter Property="Background" TargetName="border" Value="{DynamicResource Button.Disabled.Background}"/> + <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource Button.Disabled.Border}"/> + <Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="{DynamicResource Button.Disabled.Foreground}"/> + </Trigger> + </ControlTemplate.Triggers> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + +</ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/DarkThemesColors.xaml b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/DarkThemesColors.xaml index 867c89032..011b26c0d 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/DarkThemesColors.xaml +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/DarkThemesColors.xaml @@ -11,6 +11,8 @@ <SolidColorBrush x:Key="Grip.Submenu.Background.Static" Color="#FF3F3F46"/> <SolidColorBrush x:Key="Grip.Submenu.Background.Selected" Color="#FF007ACC"/> + <SolidColorBrush x:Key="Window.Background" Color="#FF1F1F20"/> + <SolidColorBrush x:Key="Control.Border.Static" Color="#FF555555"/> <SolidColorBrush x:Key="Background.Static" Color="#FF2D2D30"/> <SolidColorBrush x:Key="ControlTextBrush" Color="#FFF0F0F0"/> @@ -62,4 +64,34 @@ <SolidColorBrush x:Key="ComboboxItemBackground" Color="#FF1F1F20"/> <SolidColorBrush x:Key="ComboboxItemMouseOverBackground" Color="#FF3F3F46"/> + <SolidColorBrush x:Key="DataGrid.MouseOver" Color="#FF3E3E40"/> + <SolidColorBrush x:Key="DataGrid.Border" Color="#FF3E3E40"/> + <SolidColorBrush x:Key="DataGrid.Row.Selection" Color="#FF007ACC"/> + + <SolidColorBrush x:Key="ScrollBar.Static.Background" Color="#FF3E3E42"/> + <SolidColorBrush x:Key="ScrollBar.Static.Border" Color="#FF3E3E42"/> + <SolidColorBrush x:Key="ScrollBar.Pressed.Glyph" Color="#FF1C97EA"/> + <SolidColorBrush x:Key="ScrollBar.MouseOver.Glyph" Color="#FF1C97EA"/> + <SolidColorBrush x:Key="ScrollBar.Disabled.Glyph" Color="#FF636363"/> + <SolidColorBrush x:Key="ScrollBar.Static.Glyph" Color="#FF9E9E9E"/> + <SolidColorBrush x:Key="ScrollBar.MouseOver.Background" Color="Transparent"/> + <SolidColorBrush x:Key="ScrollBar.MouseOver.Border" Color="Transparent"/> + <SolidColorBrush x:Key="ScrollBar.Pressed.Background" Color="Transparent"/> + <SolidColorBrush x:Key="ScrollBar.Pressed.Border" Color="Transparent"/> + <SolidColorBrush x:Key="ScrollBar.Disabled.Background" Color="#FF646464"/> + <SolidColorBrush x:Key="ScrollBar.Disabled.Border" Color="#F0F0F0"/> + <SolidColorBrush x:Key="ScrollBar.MouseOver.Thumb" Color="#FF7F7F7F"/> + <SolidColorBrush x:Key="ScrollBar.Pressed.Thumb" Color="#FF999999"/> + <SolidColorBrush x:Key="ScrollBar.Static.Thumb" Color="#FF555555"/> + + <SolidColorBrush x:Key="Button.Static.Background" Color="#FF3F3F46"/> + <SolidColorBrush x:Key="Button.Static.Border" Color="#FF555555"/> + <SolidColorBrush x:Key="Button.MouseOver.Background" Color="Transparent"/> + <SolidColorBrush x:Key="Button.MouseOver.Border" Color="#FF0097FB"/> + <SolidColorBrush x:Key="Button.Pressed.Background" Color="#FF007ACC"/> + <SolidColorBrush x:Key="Button.Pressed.Border" Color="#FF007ACC"/> + <SolidColorBrush x:Key="Button.Disabled.Background" Color="#FF252526"/> + <SolidColorBrush x:Key="Button.Disabled.Border" Color="#FF434346"/> + <SolidColorBrush x:Key="Button.Disabled.Foreground" Color="#FF434346"/> + </ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/DataGridStyle.xaml b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/DataGridStyle.xaml new file mode 100644 index 000000000..5ec4c7ff4 --- /dev/null +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/DataGridStyle.xaml @@ -0,0 +1,248 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero2" + xmlns:local="clr-namespace:Tango.Scripting.IDE.Themes"> + <Style x:Key="TangoDataGridStyle" TargetType="{x:Type DataGrid}"> + <Setter Property="Background" Value="{DynamicResource Menu.Background}"/> + <Setter Property="Foreground" Value="{DynamicResource ControlTextBrush}"/> + <Setter Property="BorderBrush" Value="{DynamicResource DataGrid.Border}"/> + <Setter Property="BorderThickness" Value="0"/> + <Setter Property="RowDetailsVisibilityMode" Value="VisibleWhenSelected"/> + <Setter Property="ScrollViewer.CanContentScroll" Value="true"/> + <Setter Property="ScrollViewer.PanningMode" Value="Both"/> + <Setter Property="Stylus.IsFlicksEnabled" Value="False"/> + <Setter Property="GridLinesVisibility" Value="None"/> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type DataGrid}"> + <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="True"> + <ScrollViewer x:Name="DG_ScrollViewer" Focusable="false"> + <ScrollViewer.Template> + <ControlTemplate TargetType="{x:Type ScrollViewer}"> + <Grid > + <Grid.ColumnDefinitions> + <ColumnDefinition Width="Auto"/> + <ColumnDefinition Width="*"/> + <ColumnDefinition Width="Auto"/> + </Grid.ColumnDefinitions> + <Grid.RowDefinitions> + <RowDefinition Height="Auto"/> + <RowDefinition Height="*"/> + <RowDefinition Height="Auto"/> + </Grid.RowDefinitions> + <!--<Button Background="Transparent" Command="{x:Static DataGrid.SelectAllCommand}" Focusable="false" Style="{DynamicResource {ComponentResourceKey ResourceId=DataGridSelectAllButtonStyle, TypeInTargetAssembly={x:Type DataGrid}}}" Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.All}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" Width="{Binding CellsPanelHorizontalOffset, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>--> + <DataGridColumnHeadersPresenter x:Name="PART_ColumnHeadersPresenter" Grid.Column="1" Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.Column}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/> + <ScrollContentPresenter x:Name="PART_ScrollContentPresenter" CanContentScroll="{TemplateBinding CanContentScroll}" Grid.ColumnSpan="2" Grid.Row="1"/> + <ScrollBar x:Name="PART_VerticalScrollBar" Grid.Column="2" Maximum="{TemplateBinding ScrollableHeight}" Orientation="Vertical" Grid.Row="1" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportHeight}"/> + <Grid Grid.Column="1" Grid.Row="2"> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="{Binding NonFrozenColumnsViewportHorizontalOffset, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/> + <ColumnDefinition Width="*"/> + </Grid.ColumnDefinitions> + <ScrollBar x:Name="PART_HorizontalScrollBar" Grid.Column="1" Maximum="{TemplateBinding ScrollableWidth}" Orientation="Horizontal" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportWidth}"/> + </Grid> + </Grid> + </ControlTemplate> + </ScrollViewer.Template> + <ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/> + </ScrollViewer> + </Border> + </ControlTemplate> + </Setter.Value> + </Setter> + <Style.Triggers> + <MultiTrigger> + <MultiTrigger.Conditions> + <Condition Property="IsGrouping" Value="true"/> + <Condition Property="VirtualizingPanel.IsVirtualizingWhenGrouping" Value="false"/> + </MultiTrigger.Conditions> + <Setter Property="ScrollViewer.CanContentScroll" Value="false"/> + </MultiTrigger> + </Style.Triggers> + <Style.Resources> + <Style TargetType="{x:Type DataGridRow}"> + <Setter Property="Background" Value="Transparent"/> + <Setter Property="BorderBrush" Value="Transparent"/> + <Setter Property="BorderThickness" Value="0,0,0,0" /> + <Setter Property="SnapsToDevicePixels" Value="true"/> + <Setter Property="Validation.ErrorTemplate" Value="{x:Null}"/> + <Setter Property="ValidationErrorTemplate"> + <Setter.Value> + <ControlTemplate> + <TextBlock Foreground="Red" Margin="2,0,0,0" Text="!" VerticalAlignment="Center"/> + </ControlTemplate> + </Setter.Value> + </Setter> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type DataGridRow}"> + <Border x:Name="DGR_Border" BorderBrush="{TemplateBinding BorderBrush}" + BorderThickness="0" Background="{TemplateBinding Background}" + SnapsToDevicePixels="True"> + <SelectiveScrollingGrid> + <SelectiveScrollingGrid.ColumnDefinitions> + <ColumnDefinition Width="Auto"/> + <ColumnDefinition Width="*"/> + </SelectiveScrollingGrid.ColumnDefinitions> + <SelectiveScrollingGrid.RowDefinitions> + <RowDefinition Height="*"/> + <RowDefinition Height="Auto"/> + </SelectiveScrollingGrid.RowDefinitions> + <DataGridCellsPresenter Grid.Column="1" ItemsPanel="{TemplateBinding ItemsPanel}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/> + <DataGridDetailsPresenter Grid.Column="1" Grid.Row="1" SelectiveScrollingGrid.SelectiveScrollingOrientation="{Binding AreRowDetailsFrozen, ConverterParameter={x:Static SelectiveScrollingOrientation.Vertical}, Converter={x:Static DataGrid.RowDetailsScrollingConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" Visibility="{TemplateBinding DetailsVisibility}"/> + <!--<DataGridRowHeader Grid.RowSpan="2" SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical" Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.Row}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>--> + </SelectiveScrollingGrid> + </Border> + <ControlTemplate.Triggers> + + <Trigger Property="IsMouseOver" Value="True"> + <Setter TargetName="DGR_Border" Property="Background" Value="{DynamicResource DataGrid.Row.Selection}" /> + </Trigger> + <Trigger Property="IsSelected" Value="True"> + <Setter TargetName="DGR_Border" Property="BorderBrush" Value="{DynamicResource DataGrid.Row.Selection}" /> + <Setter TargetName="DGR_Border" Property="Background" Value="{DynamicResource DataGrid.Row.Selection}" /> + </Trigger> + </ControlTemplate.Triggers> + </ControlTemplate> + </Setter.Value> + </Setter> + <Style.Triggers> + <Trigger Property="IsNewItem" Value="True"> + <Setter Property="Margin" Value="{Binding NewItemMargin, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/> + </Trigger> + </Style.Triggers> + </Style> + <Style TargetType="{x:Type DataGridCell}"> + <Setter Property="Background" Value="Transparent"/> + <Setter Property="BorderBrush" Value="Transparent"/> + <Setter Property="BorderThickness" Value="0"/> + <Setter Property="Foreground" Value="{DynamicResource ControlTextBrush}"/> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type DataGridCell}"> + <!--<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="0" Background="Transparent" SnapsToDevicePixels="True">--> + <ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/> + <!--</Border>--> + </ControlTemplate> + </Setter.Value> + </Setter> + <Style.Triggers> + <Trigger Property="IsSelected" Value="True"> + <Setter Property="Background" Value="Blue"/> + <Setter Property="BorderBrush" Value="{DynamicResource DataGrid.MouseOver}"/> + </Trigger> + <Trigger Property="IsKeyboardFocusWithin" Value="True"> + <Setter Property="BorderBrush" Value="{DynamicResource DataGrid.MouseOver}"/> + </Trigger> + <MultiTrigger> + <MultiTrigger.Conditions> + <Condition Property="IsSelected" Value="true"/> + <Condition Property="Selector.IsSelectionActive" Value="false"/> + </MultiTrigger.Conditions> + <Setter Property="Background" Value="{DynamicResource DataGrid.MouseOver}"/> + <Setter Property="BorderBrush" Value="{DynamicResource DataGrid.MouseOver}"/> + <Setter Property="Foreground" Value="{DynamicResource ControlTextBrush}"/> + </MultiTrigger> + <Trigger Property="IsEnabled" Value="false"> + <Setter Property="Foreground" Value="{DynamicResource ControlTextBrush}"/> + </Trigger> + </Style.Triggers> + </Style> + <Style TargetType="{x:Type TextBlock}" > + <Setter Property="TextTrimming" Value="CharacterEllipsis"/> + <Setter Property="TextWrapping" Value="NoWrap"/> + <Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=Text }" /> + </Style> + </Style.Resources> + </Style> + <Style x:Key="ColumnHeaderGripperStyle" TargetType="{x:Type Thumb}"> + <Setter Property="Width" Value="8"/> + <Setter Property="Background" Value="Transparent"/> + <Setter Property="Cursor" Value="SizeWE"/> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type Thumb}"> + <Border Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}"/> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + <Style x:Key="TangoDataGridColumnHeaderStyle" TargetType="{x:Type DataGridColumnHeader}"> + <Setter Property="VerticalContentAlignment" Value="Center"/> + <Setter Property="ContentTemplate"> + <Setter.Value> + <DataTemplate> + <TextBlock TextTrimming="CharacterEllipsis" Text="{Binding}" TextAlignment="Right" TextWrapping="NoWrap"/> + </DataTemplate> + </Setter.Value> + </Setter> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type DataGridColumnHeader}"> + <Grid> + <Themes:DataGridHeaderBorder x:Name="hBorder" BorderBrush="{DynamicResource DataGrid.Border}" + BorderThickness="0,1,1,1" + Background="Transparent" + IsClickable="{TemplateBinding CanUserSort}" + IsPressed="{TemplateBinding IsPressed}" + IsHovered="{TemplateBinding IsMouseOver}" + Padding="{TemplateBinding Padding}" + SortDirection="{TemplateBinding SortDirection}" + SeparatorBrush="{TemplateBinding SeparatorBrush}" + SeparatorVisibility="{TemplateBinding SeparatorVisibility}"> + <Grid> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="Auto"/> + <ColumnDefinition Width="*"/> + </Grid.ColumnDefinitions> + <ContentPresenter Grid.Column="0" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Margin="6,2,4,2"/> + <Path x:Name="SortArrow" + Grid.Column="1" + HorizontalAlignment="Right" VerticalAlignment="Center" + Width="8" Height="6" Margin="2,0,5,0" + Stretch="Fill" Opacity="0.5" Fill="{DynamicResource ControlTextBrush}" + RenderTransformOrigin="0.5,0.4" + Visibility="Collapsed" + Data="M0,0 L1,0 0.5,1 z" /> + </Grid> + </Themes:DataGridHeaderBorder> + <Thumb x:Name="PART_LeftHeaderGripper" HorizontalAlignment="Left" Style="{StaticResource ColumnHeaderGripperStyle}"/> + <Thumb x:Name="PART_RightHeaderGripper" HorizontalAlignment="Right" Style="{StaticResource ColumnHeaderGripperStyle}"/> + </Grid> + + <ControlTemplate.Triggers> + <Trigger Property="SortDirection" Value="Ascending"> + <Setter TargetName="SortArrow" Property="Visibility" Value="Visible" /> + <Setter TargetName="SortArrow" Property="RenderTransform"> + <Setter.Value> + <RotateTransform Angle="180" /> + </Setter.Value> + </Setter> + </Trigger> + <Trigger Property="SortDirection" Value="Descending"> + <Setter TargetName="SortArrow" Property="Visibility" Value="Visible" /> + </Trigger> + + <Trigger Property='IsMouseOver' Value='True'> + <Setter TargetName="hBorder" Property="Background" Value="{DynamicResource DataGrid.MouseOver}"></Setter> + </Trigger> + </ControlTemplate.Triggers> + </ControlTemplate> + </Setter.Value> + </Setter> + + </Style> + + <Style x:Key="RowHeaderGripperStyle" TargetType="{x:Type Thumb}"> + <Setter Property="Height" Value="8"/> + <Setter Property="Background" Value="Transparent"/> + <Setter Property="Cursor" Value="SizeNS"/> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type Thumb}"> + <Border Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}"/> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> +</ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/ScrollViewerStyle.xaml b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/ScrollViewerStyle.xaml new file mode 100644 index 000000000..56c047424 --- /dev/null +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/ScrollViewerStyle.xaml @@ -0,0 +1,258 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:local="clr-namespace:Tango.Scripting.IDE.Themes"> + + <ControlTemplate x:Key="ScrollViewerControlTemplate1" TargetType="{x:Type ScrollViewer}"> + <Grid x:Name="Grid" Background="{DynamicResource ScrollBar.Static.Background}"> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="*"/> + <ColumnDefinition Width="Auto"/> + </Grid.ColumnDefinitions> + <Grid.RowDefinitions> + <RowDefinition Height="*"/> + <RowDefinition Height="Auto"/> + </Grid.RowDefinitions> + <Rectangle x:Name="Corner" Grid.Column="1" Fill="{DynamicResource ScrollBar.Static.Background}" Grid.Row="1"/> + <ScrollContentPresenter x:Name="PART_ScrollContentPresenter" CanContentScroll="{TemplateBinding CanContentScroll}" CanHorizontallyScroll="False" CanVerticallyScroll="False" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" Grid.Column="0" Margin="{TemplateBinding Padding}" Grid.Row="0"/> + <ScrollBar x:Name="PART_VerticalScrollBar" AutomationProperties.AutomationId="VerticalScrollBar" Cursor="Arrow" Grid.Column="1" Maximum="{TemplateBinding ScrollableHeight}" Minimum="0" Grid.Row="0" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportHeight}"/> + <ScrollBar x:Name="PART_HorizontalScrollBar" AutomationProperties.AutomationId="HorizontalScrollBar" Cursor="Arrow" Grid.Column="0" Maximum="{TemplateBinding ScrollableWidth}" Minimum="0" Orientation="Horizontal" Grid.Row="1" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportWidth}"/> + </Grid> + </ControlTemplate> + <Style x:Key="FocusVisual"> + <Setter Property="Control.Template"> + <Setter.Value> + <ControlTemplate> + <Rectangle Margin="2" SnapsToDevicePixels="true" Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" StrokeThickness="1" StrokeDashArray="1 2"/> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + <Style x:Key="ScrollBarButton" TargetType="{x:Type RepeatButton}"> + <Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/> + <Setter Property="BorderThickness" Value="0"/> + <Setter Property="HorizontalContentAlignment" Value="Center"/> + <Setter Property="VerticalContentAlignment" Value="Center"/> + <Setter Property="Padding" Value="1"/> + <Setter Property="Focusable" Value="false"/> + <Setter Property="IsTabStop" Value="false"/> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type RepeatButton}"> + <Border x:Name="border" BorderBrush="Transparent" BorderThickness="0" Background="{DynamicResource ScrollBar.Static.Background}" SnapsToDevicePixels="true"> + <ContentPresenter x:Name="contentPresenter" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> + </Border> + <ControlTemplate.Triggers> + <Trigger Property="IsEnabled" Value="false"> + <Setter Property="Opacity" TargetName="contentPresenter" Value="0.56"/> + <!--<Setter Property="Background" TargetName="border" Value="{StaticResource ScrollBar.Disabled.Background}"/> + <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource ScrollBar.Disabled.Border}"/>--> + </Trigger> + </ControlTemplate.Triggers> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + <Style x:Key="RepeatButtonTransparent" TargetType="{x:Type RepeatButton}"> + <Setter Property="OverridesDefaultStyle" Value="true"/> + <Setter Property="Background" Value="Transparent"/> + <Setter Property="Focusable" Value="false"/> + <Setter Property="IsTabStop" Value="false"/> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type RepeatButton}"> + <Rectangle Fill="{TemplateBinding Background}" Height="{TemplateBinding Height}" Width="{TemplateBinding Width}"/> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + <Style x:Key="ScrollBarThumbVertical" TargetType="{x:Type Thumb}"> + <Setter Property="OverridesDefaultStyle" Value="true"/> + <Setter Property="IsTabStop" Value="false"/> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type Thumb}"> + <Rectangle x:Name="rectangle" Fill="{DynamicResource ScrollBar.Static.Thumb}" Height="{TemplateBinding Height}" SnapsToDevicePixels="True" Width="{TemplateBinding Width}" Margin="4,0,4,0"/> + <ControlTemplate.Triggers> + <Trigger Property="IsMouseOver" Value="true"> + <Setter Property="Fill" TargetName="rectangle" Value="{DynamicResource ScrollBar.MouseOver.Thumb}"/> + </Trigger> + <Trigger Property="IsDragging" Value="true"> + <Setter Property="Fill" TargetName="rectangle" Value="{DynamicResource ScrollBar.Pressed.Thumb}"/> + </Trigger> + </ControlTemplate.Triggers> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + <Style x:Key="ScrollBarThumbHorizontal" TargetType="{x:Type Thumb}"> + <Setter Property="OverridesDefaultStyle" Value="true"/> + <Setter Property="IsTabStop" Value="false"/> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type Thumb}" > + <Rectangle x:Name="rectangle" Fill="{DynamicResource ScrollBar.Static.Thumb}" Height="{TemplateBinding Height}" + SnapsToDevicePixels="True" Width="{TemplateBinding Width}" Margin="0,4,0,4"/> + <ControlTemplate.Triggers> + <Trigger Property="IsMouseOver" Value="true"> + <Setter Property="Fill" TargetName="rectangle" Value="{DynamicResource ScrollBar.MouseOver.Thumb}"/> + </Trigger> + <Trigger Property="IsDragging" Value="true"> + <Setter Property="Fill" TargetName="rectangle" Value="{DynamicResource ScrollBar.Pressed.Thumb}"/> + </Trigger> + </ControlTemplate.Triggers> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + <Style TargetType="{x:Type ScrollBar}"> + <Setter Property="Stylus.IsPressAndHoldEnabled" Value="false"/> + <Setter Property="Stylus.IsFlicksEnabled" Value="false"/> + <Setter Property="Background" Value="{DynamicResource ScrollBar.Static.Background}"/> + <Setter Property="BorderBrush" Value="{DynamicResource ScrollBar.Static.Border}"/> + <Setter Property="Foreground" Value="{DynamicResource ControlForegroundKey}"/> + <Setter Property="BorderThickness" Value="1,0"/> + <Setter Property="Width" Value="18"/> + <Setter Property="MinWidth" Value="18"/> + <Setter Property="OverridesDefaultStyle" Value="True"/> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type ScrollBar}"> + <Grid x:Name="Bg" SnapsToDevicePixels="true"> + <Grid.RowDefinitions> + <RowDefinition MaxHeight="{DynamicResource {x:Static SystemParameters.VerticalScrollBarButtonHeightKey}}"/> + <RowDefinition Height="0.00001*"/> + <RowDefinition MaxHeight="{DynamicResource {x:Static SystemParameters.VerticalScrollBarButtonHeightKey}}"/> + </Grid.RowDefinitions> + <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="0" Background="{TemplateBinding Background}" Grid.Row="1"/> + <RepeatButton x:Name="PART_LineUpButton" Command="{x:Static ScrollBar.LineUpCommand}" IsEnabled="{TemplateBinding IsMouseOver}" Style="{StaticResource ScrollBarButton}"> + <Path x:Name="ArrowTop" Data="M 0 10 L 20 10 L 10 0 Z" Fill="{DynamicResource ScrollBar.Static.Glyph}" Margin="2,2,2,1" Stretch="Uniform"/> + </RepeatButton> + <Track x:Name="PART_Track" IsDirectionReversed="true" IsEnabled="{TemplateBinding IsMouseOver}" Grid.Row="1"> + <Track.DecreaseRepeatButton> + <RepeatButton Command="{x:Static ScrollBar.PageUpCommand}" Style="{StaticResource RepeatButtonTransparent}"/> + </Track.DecreaseRepeatButton> + <Track.IncreaseRepeatButton> + <RepeatButton Command="{x:Static ScrollBar.PageDownCommand}" Style="{StaticResource RepeatButtonTransparent}"/> + </Track.IncreaseRepeatButton> + <Track.Thumb> + <Thumb Style="{StaticResource ScrollBarThumbVertical}"/> + </Track.Thumb> + </Track> + <RepeatButton x:Name="PART_LineDownButton" Command="{x:Static ScrollBar.LineDownCommand}" IsEnabled="{TemplateBinding IsMouseOver}" Grid.Row="2" Style="{StaticResource ScrollBarButton}"> + <Path x:Name="ArrowBottom" Data="M 0 0 L 10 10 L 20 0 Z" Fill="{DynamicResource ScrollBar.Static.Glyph}" Margin="2,1,2,2" Stretch="Uniform"/> + </RepeatButton> + </Grid> + <ControlTemplate.Triggers> + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding IsMouseOver, ElementName=PART_LineDownButton}" Value="true"/> + <Condition Binding="{Binding IsPressed, ElementName=PART_LineDownButton}" Value="true"/> + </MultiDataTrigger.Conditions> + <Setter Property="Fill" TargetName="ArrowBottom" Value="{DynamicResource ScrollBar.Pressed.Glyph}"/> + </MultiDataTrigger> + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding IsMouseOver, ElementName=PART_LineUpButton}" Value="true"/> + <Condition Binding="{Binding IsPressed, ElementName=PART_LineUpButton}" Value="true"/> + </MultiDataTrigger.Conditions> + <Setter Property="Fill" TargetName="ArrowTop" Value="{DynamicResource ScrollBar.Pressed.Glyph}"/> + </MultiDataTrigger> + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding IsMouseOver, ElementName=PART_LineDownButton}" Value="true"/> + <Condition Binding="{Binding IsPressed, ElementName=PART_LineDownButton}" Value="false"/> + </MultiDataTrigger.Conditions> + <Setter Property="Fill" TargetName="ArrowBottom" Value="{DynamicResource ScrollBar.MouseOver.Glyph}"/> + </MultiDataTrigger> + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding IsMouseOver, ElementName=PART_LineUpButton}" Value="true"/> + <Condition Binding="{Binding IsPressed, ElementName=PART_LineUpButton}" Value="false"/> + </MultiDataTrigger.Conditions> + <Setter Property="Fill" TargetName="ArrowTop" Value="{DynamicResource ScrollBar.MouseOver.Glyph}"/> + </MultiDataTrigger> + <Trigger Property="IsEnabled" Value="false"> + <Setter Property="Fill" TargetName="ArrowTop" Value="{DynamicResource ScrollBar.Disabled.Glyph}"/> + <Setter Property="Fill" TargetName="ArrowBottom" Value="{DynamicResource ScrollBar.Disabled.Glyph}"/> + </Trigger> + </ControlTemplate.Triggers> + </ControlTemplate> + </Setter.Value> + </Setter> + <Style.Triggers> + <Trigger Property="Orientation" Value="Horizontal"> + <Setter Property="Width" Value="Auto"/> + <Setter Property="MinWidth" Value="0"/> + <Setter Property="Height" Value="18"/> + <Setter Property="MinHeight" Value="18"/> + <Setter Property="BorderThickness" Value="0,1"/> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type ScrollBar}"> + <Grid x:Name="Bg" SnapsToDevicePixels="true"> + <Grid.ColumnDefinitions> + <ColumnDefinition MaxWidth="{DynamicResource {x:Static SystemParameters.HorizontalScrollBarButtonWidthKey}}"/> + <ColumnDefinition Width="0.00001*"/> + <ColumnDefinition MaxWidth="{DynamicResource {x:Static SystemParameters.HorizontalScrollBarButtonWidthKey}}"/> + </Grid.ColumnDefinitions> + <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Grid.Column="1"/> + <RepeatButton x:Name="PART_LineLeftButton" Command="{x:Static ScrollBar.LineLeftCommand}" IsEnabled="{TemplateBinding IsMouseOver}" Style="{StaticResource ScrollBarButton}"> + <Path x:Name="ArrowLeft" Data="M 0 10 L 10 0 L 10 20 Z" Fill="{DynamicResource ScrollBar.Static.Glyph}" Margin="2,2,1,2" Stretch="Uniform"/> + </RepeatButton> + <Track x:Name="PART_Track" Grid.Column="1" IsEnabled="{TemplateBinding IsMouseOver}"> + <Track.DecreaseRepeatButton> + <RepeatButton Command="{x:Static ScrollBar.PageLeftCommand}" Style="{StaticResource RepeatButtonTransparent}"/> + </Track.DecreaseRepeatButton> + <Track.IncreaseRepeatButton> + <RepeatButton Command="{x:Static ScrollBar.PageRightCommand}" Style="{StaticResource RepeatButtonTransparent}"/> + </Track.IncreaseRepeatButton> + <Track.Thumb> + <Thumb Style="{StaticResource ScrollBarThumbHorizontal}"/> + </Track.Thumb> + </Track> + <RepeatButton x:Name="PART_LineRightButton" Grid.Column="2" Command="{x:Static ScrollBar.LineRightCommand}" IsEnabled="{TemplateBinding IsMouseOver}" Style="{StaticResource ScrollBarButton}"> + <Path x:Name="ArrowRight" Data="M 0 0 L 10 10 L 0 20 Z" Fill="{DynamicResource ScrollBar.Static.Glyph}" Margin="1,2,2,2" Stretch="Uniform"/> + </RepeatButton> + </Grid> + <ControlTemplate.Triggers> + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding IsMouseOver, ElementName=PART_LineRightButton}" Value="true"/> + <Condition Binding="{Binding IsPressed, ElementName=PART_LineRightButton}" Value="true"/> + </MultiDataTrigger.Conditions> + <Setter Property="Fill" TargetName="ArrowRight" Value="{DynamicResource ScrollBar.Pressed.Glyph}"/> + </MultiDataTrigger> + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding IsMouseOver, ElementName=PART_LineLeftButton}" Value="true"/> + <Condition Binding="{Binding IsPressed, ElementName=PART_LineLeftButton}" Value="true"/> + </MultiDataTrigger.Conditions> + <Setter Property="Fill" TargetName="ArrowLeft" Value="{DynamicResource ScrollBar.Pressed.Glyph}"/> + </MultiDataTrigger> + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding IsMouseOver, ElementName=PART_LineRightButton}" Value="true"/> + <Condition Binding="{Binding IsPressed, ElementName=PART_LineRightButton}" Value="false"/> + </MultiDataTrigger.Conditions> + <Setter Property="Fill" TargetName="ArrowRight" Value="{DynamicResource ScrollBar.MouseOver.Glyph}"/> + </MultiDataTrigger> + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding IsMouseOver, ElementName=PART_LineLeftButton}" Value="true"/> + <Condition Binding="{Binding IsPressed, ElementName=PART_LineLeftButton}" Value="false"/> + </MultiDataTrigger.Conditions> + <Setter Property="Fill" TargetName="ArrowLeft" Value="{DynamicResource ScrollBar.MouseOver.Glyph}"/> + </MultiDataTrigger> + <Trigger Property="IsEnabled" Value="false"> + <Setter Property="Fill" TargetName="ArrowLeft" Value="{DynamicResource ScrollBar.Disabled.Glyph}"/> + <Setter Property="Fill" TargetName="ArrowRight" Value="{DynamicResource ScrollBar.Disabled.Glyph}"/> + </Trigger> + </ControlTemplate.Triggers> + </ControlTemplate> + </Setter.Value> + </Setter> + </Trigger> + </Style.Triggers> + </Style> + +</ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/Shared.xaml b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/Shared.xaml index fd5dc19dd..9b196411b 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/Shared.xaml +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/Shared.xaml @@ -7,5 +7,8 @@ <ResourceDictionary Source="ToolbarStyle.xaml"/> <ResourceDictionary Source="TreeViewItem.xaml"/> <ResourceDictionary Source="ComboboxStyle.xaml"/> + <ResourceDictionary Source="DataGridStyle.xaml"/> + <ResourceDictionary Source="ScrollViewerStyle.xaml"/> + <ResourceDictionary Source="ButtonStyle.xaml"/> </ResourceDictionary.MergedDictionaries> </ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ViewModelLocator.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ViewModelLocator.cs new file mode 100644 index 000000000..71cb6cd19 --- /dev/null +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ViewModelLocator.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Core.DI; +using Tango.Scripting.IDE.Dialogs; + +namespace Tango.Scripting.IDE +{ + /// <summary> + /// This class contains static references to all the view models in the + /// application and provides an entry point for the bindings. + /// </summary> + public static class ViewModelLocator + { + /// <summary> + /// Initializes a new instance of the ViewModelLocator class. + /// </summary> + static ViewModelLocator() + { + TangoIOC.Default.Register<NewProjectDialogVM>(); + } + + public static NewProjectDialogVM NewProjectDialogVM + { + get + { + return TangoIOC.Default.GetInstance<NewProjectDialogVM>(); + } + } + } +} |
