aboutsummaryrefslogtreecommitdiffstats
path: root/Software/.metadata/.plugins/org.eclipse.core.resources/.history/9f/f00f480b1515001a1004f953c999aac4
stat options
Period:
Authors:

Commits per author per week (path 'Software/.metadata/.plugins/org.eclipse.core.resources/.history/9f/f00f480b1515001a1004f953c999aac4')

AuthorW27 2026W28 2026W29 2026W30 2026Total
Total00000
<UserControl x:Class="Tango.Stubs.UI.Views.MainView"
             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:mahapps="http://metro.mahapps.com/winfx/xaml/controls"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:views="clr-namespace:Tango.Stubs.UI.Views"
             xmlns:fa="http://schemas.fontawesome.io/icons/"
             xmlns:local="clr-namespace:Tango.Stubs.UI.Views"
             xmlns:vm="clr-namespace:Tango.Stubs.UI.ViewModels"
             xmlns:System="clr-namespace:System;assembly=mscorlib"
             xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI"
             xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI"
             xmlns:transport="clr-namespace:Tango.Transport.Adapters;assembly=Tango.Transport"
             mc:Ignorable="d" 
             d:DesignHeight="720" d:DesignWidth="1280">

        <UserControl.Resources>

                <ObjectDataProvider x:Key="baudRates" MethodName="GetValues"
                            ObjectType="{x:Type System:Enum}">
                        <ObjectDataProvider.MethodParameters>
                                <x:Type TypeName="transport:UsbSerialBaudRates"/>
                        </ObjectDataProvider.MethodParameters>
                </ObjectDataProvider>

                <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"></BooleanToVisibilityConverter>
                <converters:EnumToDescriptionConverter x:Key="EnumToDescriptionConverter" />
                <Style BasedOn="{StaticResource MetroTabItem}" TargetType="{x:Type TabItem}">
                        <Style.Triggers>
                                <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self},Path=IsSelected}" Value="True">
                                        <Setter Property="Background" Value="#007ACC"></Setter>
                                </DataTrigger>
                        </Style.Triggers>
                        <Setter Property="mahapps:ControlsHelper.HeaderFontSize" Value="12"></Setter>
                        <Setter Property="HeaderTemplate">
                                <Setter.Value>
                                        <DataTemplate>
                                                <Border>
                                                        <StackPanel Orientation="Horizontal">
                                                                <mahapps:ProgressRing Width="5" Height="5" Margin="0 0 5 0" Foreground="White" Visibility="{Binding IsRunning,Converter={StaticResource BooleanToVisibilityConverter}}"></mahapps:ProgressRing>
                                                                <TextBlock Text="{Binding Title}" ToolTip="{Binding File}" Foreground="Gainsboro" VerticalAlignment="Center"></TextBlock>
                                                                <Button Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.CloseTabCommand}" CommandParameter="{Binding}" Margin="5 0 0 0" Cursor="Hand" Width="24" Height="24" VerticalAlignment="Center" Style="{DynamicResource MetroCircleButtonStyle}" mahapps:ButtonHelper.PreserveTextCase="True" BorderThickness="0">
                                                                        <StackPanel Orientation="Horizontal">
                                                                                <fa:ImageAwesome Width="10" Height="10" Icon="Close" Foreground="Gainsboro"></fa:ImageAwesome>
                                                                        </StackPanel>
                                                                </Button>
                                                        </StackPanel>
                                                </Border>
                                        </DataTemplate>
                                </Setter.Value>
                        </Setter>
                        <Setter Property="ContentTemplate">
                                <Setter.Value>
                                        <DataTemplate>
                                                <Grid Background="#181818">
                                                        <controls:ScriptEditorControl Text="{Binding Code,Mode=TwoWay}" InsertSnippetCommand="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.InsertSnippetCommand,Mode=TwoWay}" SaveCommand="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.SaveCommand}" HighlightTypes="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.HighlightTypes}" IntellisenseTypes="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.IntellisenseTypes}" RunCommand="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.RunCommand}" StopCommand="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.StopCommand}" />
                                                </Grid>
                                        </DataTemplate>
                                </Setter.Value>
                        </Setter>
                </Style>
        </UserControl.Resources>
        <UserControl.Style>
                <Style TargetType="UserControl">
                        <Style.Triggers>
                                <DataTrigger Binding="{Binding IsRunning}" Value="True">
                                        <Setter Property="Cursor" Value="AppStarting"></Setter>
                                </DataTrigger>
                        </Style.Triggers>
                </Style>
        </UserControl.Style>
        <Grid>
                <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="1*"/>
                </Grid.RowDefinitions>

                <Grid>
                        <Menu IsMainMenu="True" BorderThickness="0">
                                <MenuItem Header="File">
                                        <MenuItem Header="New" Command="{Binding NewCommand}">
                                                <MenuItem.Icon>
                                                        <fa:ImageAwesome Icon="FileOutline" Width="12" Foreground="Gainsboro" Margin="2" />
                                                </MenuItem.Icon>
                                        </MenuItem>
                                        <Separator/>
                                        <MenuItem Header="Open" MinWidth="150" Command="{Binding OpenCommand}">
                                                <MenuItem.Icon>
                                                        <fa:ImageAwesome Icon="FolderOutline" Width="12" Foreground="Gainsboro" Margin="2" />
                                                </MenuItem.Icon>
                                        </MenuItem>
                                        <Separator/>
                                        <MenuItem Header="Save" Command="{Binding SaveCommand}">
                                                <MenuItem.Icon>
                                                        <fa:ImageAwesome Icon="Save" Width="12" Foreground="Gainsboro" Margin="2" />
                                                </MenuItem.Icon>
                                        </MenuItem>
                                        <MenuItem Header="Save as" Command="{Binding SaveAsCommand}">
                                                <MenuItem.Icon>
                                                        <Grid>
                                                                <fa:ImageAwesome Icon="Save" Width="10" Foreground="Gainsboro" Margin="2" />
                                                                <fa:ImageAwesome Icon="Save" Width="10" Foreground="Gainsboro" Margin="2 -5 -5 2" />
                                                        </Grid>
                                                </MenuItem.Icon>
                                        </MenuItem>
                                        <Separator/>
                                        <MenuItem Header="Exit" Command="{Binding ExitCommand}">
                                                <MenuItem.Icon>
                                                        <fa:ImageAwesome Icon="SignOut" Width="12" Foreground="Gainsboro" Margin="2" />
                                                </MenuItem.Icon>
                                        </MenuItem>
                                </MenuItem>
                                <MenuItem Header="Edit">
                                        <MenuItem Header="Cut" MinWidth="150" Command="Cut">
                                                <MenuItem.Icon>
                                                        <fa:ImageAwesome Icon="Cut" Width="12" Foreground="Gainsboro" Margin="2" />
                                                </MenuItem.Icon>
                                        </MenuItem>
                                        <Separator/>
                                        <MenuItem Header="Copy" Command="Copy">
                                                <MenuItem.Icon>
                                                        <fa:ImageAwesome Icon="Copy" Width="12" Foreground="Gainsboro" Margin="2" />
                                                </MenuItem.Icon>
                                        </MenuItem>
                                        <MenuItem Header="Paste" Command="Paste">
                                                <MenuItem.Icon>
                                                        <fa:ImageAwesome Icon="Paste" Width="12" Foreground="Gainsboro" Margin="2" />
                                                </MenuItem.Icon>
                                        </MenuItem>
                                        <Separator/>
                                        <MenuItem Header="Undo" Command="Undo">
                                                <MenuItem.Icon>
                                                        <fa:ImageAwesome Icon="Undo" Width="12" Foreground="Gainsboro" Margin="2" />
                                                </MenuItem.Icon>
                                        </MenuItem>
                                        <MenuItem Header="Redo" Command="Redo">
                                                <MenuItem.Icon>
                                                        <fa:ImageAwesome Icon="Repeat" Width="12" Foreground="Gainsboro" Margin="2" />
                                                </MenuItem.Icon>
                                        </MenuItem>
                                </MenuItem>
                                <MenuItem Header="Wizard" ItemsSource="{Binding CreateGroups}">
                                        <MenuItem.ItemContainerStyle>
                                                <Style TargetType="{x:Type MenuItem}">
                                                        <Setter Property="Padding" Value="2"></Setter>
                                                        <Setter Property="Command" Value="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.CreateItemCommand}" />
                                                        <Setter Property="CommandParameter" Value="{Binding}"></Setter>
                                                </Style>
                                        </MenuItem.ItemContainerStyle>
                                        <MenuItem.ItemTemplate>
                                                <HierarchicalDataTemplate DataType="{x:Type vm:CreateGroupVM}" ItemsSource="{Binding Path=Items}">
                                                        <TextBlock Text="{Binding Name}"/>
                                                </HierarchicalDataTemplate>
                                        </MenuItem.ItemTemplate>
                                </MenuItem>
                                <MenuItem Header="Examples" ItemsSource="{Binding Examples}">
                                        <MenuItem.ItemContainerStyle>
                                                <Style TargetType="{x:Type MenuItem}">
                                                        <Setter Property="Padding" Value="2"></Setter>
                                                        <Setter Property="Command" Value="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.CreateExampleCommand}" />
                                                        <Setter Property="CommandParameter" Value="{Binding}"></Setter>
                                                </Style>
                                        </MenuItem.ItemContainerStyle>
                                        <MenuItem.ItemTemplate>
                                                <DataTemplate>
                                                        <TextBlock Text="{Binding Name}" ToolTip="{Binding Code}"></TextBlock>
                                                </DataTemplate>
                                        </MenuItem.ItemTemplate>
                                </MenuItem>
                                <MenuItem Header="Build">
                                        <MenuItem Header="Run (F5)" MinWidth="150" Command="{Binding RunCommand}" >
                                                <MenuItem.Icon>
                                                        <fa:ImageAwesome Icon="Play" Width="12" Margin="2">
                                                                <fa:ImageAwesome.Style>
                                                                        <Style TargetType="fa:ImageAwesome">
                                                                                <Setter Property="Foreground" Value="#8DD28A"></Setter>
                                                                                <Style.Triggers>
                                                                                        <Trigger Property="IsEnabled" Value="False">
                                                                                                <Setter Property="Foreground" Value="Gray"></Setter>
                                                                                        </Trigger>
                                                                                </Style.Triggers>
                                                                        </Style>
                                                                </fa:ImageAwesome.Style>
                                                        </fa:ImageAwesome>
                                                </MenuItem.Icon>
                                        </MenuItem>
                                        <MenuItem Header="Stop" Command="{Binding StopCommand}" IsEnabled="False">
                                                <MenuItem.Icon>
                                                        <fa:ImageAwesome Icon="Stop" Width="12" Margin="2">
                                                                <fa:ImageAwesome.Style>
                                                                        <Style TargetType="fa:ImageAwesome">
                                                                                <Setter Property="Foreground" Value="#F38B76"></Setter>
                                                                                <Style.Triggers>
                                                                                        <Trigger Property="IsEnabled" Value="False">
                                                                                                <Setter Property="Foreground" Value="Gray"></Setter>
                                                                                        </Trigger>
                                                                                </Style.Triggers>
                                                                        </Style>
                                                                </fa:ImageAwesome.Style>
                                                        </fa:ImageAwesome>
                                                </MenuItem.Icon>
                                        </MenuItem>
                                </MenuItem>
                        </Menu>
                </Grid>

                <Grid Grid.Row="2">
                        <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="1019*"/>
                                <ColumnDefinition Width="220"/>
                        </Grid.ColumnDefinitions>
                        <Grid.RowDefinitions>
                                <RowDefinition Height="1*"/>
                                <RowDefinition Height="5"/>
                                <RowDefinition Height="0.5*"/>
                        </Grid.RowDefinitions>

                        <Grid>
                                <TabControl x:Name="tabControl" Margin="5" ItemsSource="{Binding CodeTabs}" SelectedItem="{Binding SelectedCodeTab}">

                                </TabControl>

                                <Grid HorizontalAlignment="Right" Margin="0 45 40 0" VerticalAlignment="Top" Visibility="{Binding IsRunning,Converter={StaticResource BooleanToVisibilityConverter}}">
                                        <StackPanel Orientation="Horizontal">
                                                <mahapps:ProgressRing Foreground="#007ACC" Width="20" Height="20"></mahapps:ProgressRing>
                                                <TextBlock Text="Running..." FontStyle="Italic" Margin="10 0 0 0" FontSize="14" VerticalAlignment="Center"></TextBlock>
                                        </StackPanel>
                                </Grid>
                        </Grid>

                        <Grid Grid.Column="1" Grid.RowSpan="3">
                                <Grid VerticalAlignment="Bottom" Height="25" Background="#007ACC">

                                </Grid>
                                <DockPanel>
                                        <GroupBox Header="COMMUNICATION PORT" VerticalAlignment="Top" DockPanel.Dock="Top" Margin="0 2 0 0">
                                                <StackPanel>
                                                        <ComboBox Margin="0 10 0 0" BorderThickness="0" ItemsSource="{Binding Ports}" Height="35" SelectedItem="{Binding SelectedPort}"></ComboBox>
                                                        <ComboBox Margin="0 10 0 0" BorderThickness="0" ItemsSource="{Binding Source={StaticResource baudRates}}" Height="35" SelectedItem="{Binding BaudRate}" SelectedIndex="0">
                                                                <ComboBox.ItemTemplate>
                                                                        <DataTemplate>
                                                                                <TextBlock Text="{Binding Path=.,Converter={StaticResource EnumToDescriptionConverter}}" />
                                                                        </DataTemplate>
                                                                </ComboBox.ItemTemplate>
                                                        </ComboBox>
                                                </StackPanel>
                                        </GroupBox>

                                        <GroupBox Header="CONNECTION" DockPanel.Dock="Bottom" VerticalAlignment="Bottom" Margin="0 10 0 25">
                                                <StackPanel>
                                                        <Button Height="50" MinWidth="100" mahapps:ButtonHelper.PreserveTextCase="True" BorderThickness="0" Command="{Binding ToggleConnectionCommand}">
                                                                <Button.Style>
                                                                        <Style TargetType="Button" BasedOn="{StaticResource AccentedSquareButtonStyle}">
                                                                                <Style.Triggers>
                                                                                        <DataTrigger Binding="{Binding IsConnected}" Value="False">
                                                                                                <Setter Property="Content">
                                                                                                        <Setter.Value>
                                                                                                                <StackPanel Orientation="Horizontal">
                                                                                                                        <fa:ImageAwesome Icon="Link" Width="16"></fa:ImageAwesome>
                                                                                                                        <TextBlock VerticalAlignment="Center" Margin="10 0 10 0">CONNECT</TextBlock>
                                                                                                                </StackPanel>
                                                                                                        </Setter.Value>
                                                                                                </Setter>
                                                                                        </DataTrigger>
                                                                                        <DataTrigger Binding="{Binding IsConnected}" Value="True">
                                                                                                <Setter Property="Content">
                                                                                                        <Setter.Value>
                                                                                                                <StackPanel Orientation="Horizontal">
                                                                                                                        <fa:ImageAwesome Icon="Unlink" Width="16"></fa:ImageAwesome>
                                                                                                                        <TextBlock VerticalAlignment="Center" Margin="10 0 10 0">DISCONNECT</TextBlock>
                                                                                                                </StackPanel>
                                                                                                        </Setter.Value>
                                                                                                </Setter>
                                                                                        </DataTrigger>
                                                                                </Style.Triggers>
                                                                        </Style>
                                                                </Button.Style>
                                                        </Button>
                                                </StackPanel>
                                        </GroupBox>

                                        <GroupBox Header="STUB SNIPPETS" Margin="0 10 0 0">
                                                <Grid>
                                                        <ListBox BorderThickness="0" ItemsSource="{Binding StubSnippets}" HorizontalContentAlignment="Stretch" SelectedItem="{Binding SelectedStubSnippet}">
                                                                <ListBox.ItemContainerStyle>
                                                                        <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}">
                                                                                <Setter Property="Padding" Value="0"></Setter>
                                                                                <Setter Property="Margin" Value="0 2 0 2"></Setter>
                                                                                <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter>
                                                                        </Style>
                                                                </ListBox.ItemContainerStyle>
                                                                <ListBox.ItemTemplate>
                                                                        <DataTemplate>
                                                                                <Border BorderThickness="1" BorderBrush="#007ACC" Padding="8" Background="Transparent">
                                                                                        <Border.InputBindings>
                                                                                                <MouseBinding Gesture="LeftDoubleClick" Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.StubSnippetSelectedCommand}"/>
                                                                                        </Border.InputBindings>
                                                                                        <Grid>
                                                                                                <fa:ImageAwesome Icon="ArrowLeft" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="5 0 0 0" Foreground="#007ACC" Width="16" Height="16"></fa:ImageAwesome>
                                                                                                <TextBlock VerticalAlignment="Center" FontSize="11" HorizontalAlignment="Center" Text="{Binding Name}"></TextBlock>
                                                                                        </Grid>
                                                                                </Border>
                                                                        </DataTemplate>
                                                                </ListBox.ItemTemplate>
                                                        </ListBox>
                                                </Grid>
                                        </GroupBox>
                                </DockPanel>
                        </Grid>

                        <GridSplitter Margin="5 0 5 0" Grid.Row="1" Height="5" HorizontalAlignment="Stretch" VerticalAlignment="Center">
                                <GridSplitter.Background>
                                        <LinearGradientBrush>
                                                <GradientStop/>
                                                <GradientStop Color="#007ACC" Offset="0.5"/>
                                                <GradientStop Offset="1"/>
                                        </LinearGradientBrush>
                                </GridSplitter.Background>
                        </GridSplitter>

                        <Grid Grid.Row="2">
                                <Grid.RowDefinitions>
                                        <RowDefinition Height="1*"/>
                                        <RowDefinition Height="25"/>
                                </Grid.RowDefinitions>
                                <GroupBox Header="Response">
                                        <Grid Background="#151515">
                                                <TextBox x:Name="txtLog" PreviewMouseDown="txtLog_PreviewMouseUp" FontFamily="Lucida Console" TextChanged="TextBox_TextChanged" Background="Transparent" BorderThickness="0" AcceptsReturn="True" VerticalScrollBarVisibility="Visible" Padding="5" IsReadOnly="True" TextWrapping="Wrap" FontSize="11" Foreground="Gainsboro"></TextBox>

                                                <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0 -32 -6 0">
                                                        <CheckBox VerticalAlignment="Center" Margin="0 0 20 0" IsChecked="{Binding AppendLogAuto}">Auto Logging</CheckBox>
                                                        <CheckBox x:Name="chkScroll" IsChecked="True" VerticalAlignment="Center" Margin="0 0 20 0">Scroll To End</CheckBox>
                                                        <Button Width="80" Height="25" Command="{Binding ClearCommand}">CLEAR</Button>
                                                </StackPanel>
                                        </Grid>
                                </GroupBox>
                                <StatusBar Background="#007ACC" Grid.Row="1">
                                        <TextBlock Text="{Binding Status}"></TextBlock>
                                </StatusBar>
                        </Grid>
                </Grid>
        </Grid>
</UserControl>