Skip to content

Commit

Permalink
fix timeselector for sim
Browse files Browse the repository at this point in the history
  • Loading branch information
HendrikMennen committed Jul 26, 2023
1 parent 6259bb9 commit 4c5185a
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 86 deletions.
27 changes: 9 additions & 18 deletions src/OneWare.Core/Views/Controls/TimeSelectorBox.axaml.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using Avalonia;
using System.Numerics;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Controls.Primitives;
using DynamicData;
Expand All @@ -7,9 +8,6 @@ namespace OneWare.Core.Views.Controls
{
public partial class TimeSelectorBox : UserControl
{
public static readonly StyledProperty<bool> RoundInputProperty =
AvaloniaProperty.Register<TimeSelectorBox, bool>(nameof(RoundInput));

public static readonly StyledProperty<bool> AdjustInputToWaitUnitProperty =
AvaloniaProperty.Register<TimeSelectorBox, bool>(nameof(WaitUnit));

Expand All @@ -22,18 +20,12 @@ public partial class TimeSelectorBox : UserControl
public static readonly StyledProperty<string> LabelProperty =
AvaloniaProperty.Register<TimeSelectorBox, string>(nameof(Label));

public static readonly StyledProperty<double> InputProperty =
AvaloniaProperty.Register<TimeSelectorBox, double>(nameof(Input));
public static readonly StyledProperty<long> InputProperty =
AvaloniaProperty.Register<TimeSelectorBox, long>(nameof(Input));

public static readonly StyledProperty<int> WaitUnitProperty =
AvaloniaProperty.Register<TimeSelectorBox, int>(nameof(WaitUnit));

public bool RoundInput
{
get => GetValue(RoundInputProperty);
set => SetValue(RoundInputProperty, value);
}

public bool AdjustInputToWaitUnit
{
get => GetValue(AdjustInputToWaitUnitProperty);
Expand Down Expand Up @@ -65,7 +57,7 @@ public int WaitUnit
set => SetValue(WaitUnitProperty, value);
}

public double Input
public long Input
{
get => GetValue(InputProperty);
set => SetValue(InputProperty, value);
Expand All @@ -82,7 +74,7 @@ protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs chang
{
if (AdjustInputToWaitUnit)
{
Input = PicoSeconds / Math.Pow(1000, WaitUnit);
Input = PicoSeconds / (long)BigInteger.Pow(1000, WaitUnit);
}
else
{
Expand All @@ -95,19 +87,18 @@ protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs chang
}
if (change.Property == FemtoSecondsProperty)
{
Input = FemtoSeconds / Math.Pow(1000, WaitUnit) / 1000;
Input = FemtoSeconds / (long)BigInteger.Pow(1000, WaitUnit) / 1000;
}
if (change.Property == PicoSecondsProperty)
{
Input = PicoSeconds / Math.Pow(1000, WaitUnit);
Input = PicoSeconds / (long)BigInteger.Pow(1000, WaitUnit);
}
if (RoundInput) Input = Math.Round(Input);
base.OnPropertyChanged(change);
}

private void CalculateResultFromInput()
{
PicoSeconds = (long)(Math.Pow(1000, WaitUnit) * Input);
PicoSeconds = (long)(BigInteger.Pow(1000, WaitUnit) * Input);
FemtoSeconds = PicoSeconds * 1000;
}
}
Expand Down
28 changes: 14 additions & 14 deletions src/OneWare.Vcd.Viewer/Views/VcdView.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,18 @@
<ColumnDefinition MinWidth="150" Width="*" />
</Grid.ColumnDefinitions>

<Grid RowDefinitions="*, 5, *, 30">
<TreeView Grid.Row="0" BorderThickness="0" Background="{DynamicResource ThemeControlLowBrush}"
<Grid RowDefinitions="30, *, 5, *">
<Border BorderThickness="0 0 0 1" BorderBrush="{DynamicResource ThemeBorderLowBrush}">
<StackPanel Height="26" Orientation="Horizontal" Margin="5 0" Spacing="5">
<Button VerticalAlignment="Center" Command="{Binding Refresh}">
<Image Height="15" Source="{DynamicResource VsImageLib.RefreshGrey16X}"/>
</Button>
<TextBlock VerticalAlignment="Center" Text="Threads"/>
<ComboBox MinWidth="50" ItemsSource="{Binding LoadingThreadOptions}" SelectedItem="{Binding LoadingThreads}"/>
</StackPanel>
</Border>

<TreeView Grid.Row="1" BorderThickness="0" Background="{DynamicResource ThemeControlLowBrush}"
ItemsSource="{Binding Scopes, FallbackValue={x:Null}}"
SelectedItem="{Binding SelectedScope}">
<TreeView.Styles>
Expand All @@ -42,9 +52,9 @@
<GridSplitter Background="{DynamicResource ThemeBackgroundBrush}"
Height="5" HorizontalAlignment="Stretch" BorderThickness="0 1"
BorderBrush="{DynamicResource ThemeBorderLowBrush}"
Grid.Row="1" />
Grid.Row="2" />

<ListBox BorderThickness="0" Background="{DynamicResource ThemeControlLowBrush}" Grid.Row="2"
<ListBox BorderThickness="0" Background="{DynamicResource ThemeControlLowBrush}" Grid.Row="3"
SelectedItem="{Binding SelectedSignal}"
ItemsSource="{Binding SelectedScope.Signals, FallbackValue={x:Null}}">
<ListBox.Styles>
Expand Down Expand Up @@ -78,16 +88,6 @@
</DataTemplate>
</ListBox.DataTemplates>
</ListBox>

<Border Grid.Row="3" BorderThickness="0 1 0 0" BorderBrush="{DynamicResource ThemeBorderLowBrush}">
<StackPanel Height="26" Orientation="Horizontal" Margin="5 0" Spacing="5">
<Button VerticalAlignment="Center" Command="{Binding Refresh}">
<Image Height="15" Source="{DynamicResource VsImageLib.RefreshGrey16X}"/>
</Button>
<TextBlock VerticalAlignment="Center" Text="Threads"/>
<ComboBox MinWidth="50" ItemsSource="{Binding LoadingThreadOptions}" SelectedItem="{Binding LoadingThreads}"/>
</StackPanel>
</Border>
</Grid>

<GridSplitter BorderThickness="1 0" BorderBrush="{DynamicResource ThemeBorderLowBrush}"
Expand Down
108 changes: 54 additions & 54 deletions src/OneWare.WaveFormViewer/Views/WaveFormView.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,66 +25,17 @@
</UserControl.Resources>

<Grid Background="{DynamicResource ThemeControlLowBrush}" Name="TopPartGrid"
RowDefinitions="*,22,Auto">
RowDefinitions="Auto,*, 22">
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="150" Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>

<ScrollViewer Padding="3,0,3,0" Name="TextPartScroll"
Bounds="{Binding #SimulatorScaleRenderer.TextAreaBounds, Mode=OneWayToSource}"
Grid.Column="0" Grid.Row="0" HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Hidden">
<ItemsControl Padding="5, 0, 5, 0" ItemsSource="{Binding Signals}">
<ItemsControl.ItemTemplate>
<DataTemplate x:DataType="models:WaveModel">
<DockPanel Background="Transparent" ContextMenu="{StaticResource WaveModelContextMenu}"
Height="{DynamicResource LineHeight}">
<StackPanel VerticalAlignment="Center" Orientation="Horizontal" DockPanel.Dock="Left">
<TextBlock Text="{Binding Signal.Name}" />
<TextBlock Text=" = " />
<TextBlock Text="{Binding MarkerValue}" FontWeight="Bold" Foreground="{DynamicResource ThemeAccentBrush}" />
</StackPanel>
</DockPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>

<GridSplitter Background="{DynamicResource ThemeControlLowBrush}" Width="2" VerticalAlignment="Stretch"
Grid.Row="0"
Grid.Column="1" />

<controls:WaveFormScale IsHitTestVisible="False" Margin="2,0,1,0" Name="SimulatorScaleRenderer"
Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" Grid.RowSpan="2" />

<ScrollViewer ClipToBounds="True" Name="SimPartScroll" Grid.Row="0" Grid.Column="2"
HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Visible">
<ItemsControl ItemsSource="{Binding Signals}">
<ItemsControl.ItemTemplate>
<DataTemplate x:DataType="models:WaveModel">
<controls:Wave
Height="{DynamicResource LineHeight}"
Max="{Binding $parent[UserControl].((viewModels:WaveFormViewModel)DataContext).Max, FallbackValue={x:Null}}"
ZoomMultiply="{Binding $parent[UserControl].((viewModels:WaveFormViewModel)DataContext).ZoomMultiply, FallbackValue={x:Null}}"
Offset="{Binding $parent[UserControl].((viewModels:WaveFormViewModel)DataContext).Offset, FallbackValue={x:Null}}"
VerticalAlignment="Stretch" HorizontalAlignment="Stretch"
ExtendSignals="{Binding $parent[UserControl].((viewModels:WaveFormViewModel)DataContext).ExtendSignals, FallbackValue={x:Null}}"
LoadingOffset="{Binding $parent[UserControl].((viewModels:WaveFormViewModel)DataContext).LoadingMarkerOffset, FallbackValue={x:Null}}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>

<controls:WaveFormEffects Name="SimulatorEffectsRenderer" VerticalAlignment="Stretch"
IsHitTestVisible="False" Margin="0 0 1 0"
HorizontalAlignment="Stretch" Grid.Row="0" Grid.Column="2" />

<Border Grid.Column="0" Height="30" Grid.ColumnSpan="3" Grid.Row="2"

<Border Grid.Column="0" Height="30" Grid.ColumnSpan="3"
Background="{DynamicResource ThemeBackgroundBrush}"
BorderBrush="{DynamicResource ThemeBorderLowBrush}"
BorderThickness="0, 1, 0, 0">
BorderThickness="0, 0, 0, 1">
<DockPanel LastChildFill="False">
<StackPanel Classes="HToolBar" DockPanel.Dock="Left">

Expand All @@ -97,7 +48,7 @@
<Image Source="{DynamicResource BoxIcons.RegularChevronRight}" />
</Button>

<controls1:TimeSelectorBox RoundInput="False" AdjustInputToWaitUnit="True" FemtoSeconds="{Binding Offset}" Width="130"/>
<controls1:TimeSelectorBox AdjustInputToWaitUnit="True" FemtoSeconds="{Binding Offset, Mode=TwoWay}" Width="130"/>

<Border Classes="SplitterBorder" />

Expand Down Expand Up @@ -134,5 +85,54 @@

</DockPanel>
</Border>

<ScrollViewer Padding="3,0,3,0" Name="TextPartScroll"
Bounds="{Binding #SimulatorScaleRenderer.TextAreaBounds, Mode=OneWayToSource}"
Grid.Column="0" Grid.Row="1" HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Hidden">
<ItemsControl Padding="5, 0, 5, 0" ItemsSource="{Binding Signals}">
<ItemsControl.ItemTemplate>
<DataTemplate x:DataType="models:WaveModel">
<DockPanel Background="Transparent" ContextMenu="{StaticResource WaveModelContextMenu}"
Height="{DynamicResource LineHeight}">
<StackPanel VerticalAlignment="Center" Orientation="Horizontal" DockPanel.Dock="Left">
<TextBlock Text="{Binding Signal.Name}" />
<TextBlock Text=" = " />
<TextBlock Text="{Binding MarkerValue}" FontWeight="Bold" Foreground="{DynamicResource ThemeAccentBrush}" />
</StackPanel>
</DockPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>

<GridSplitter Background="{DynamicResource ThemeControlLowBrush}" Width="2" VerticalAlignment="Stretch"
Grid.Row="1"
Grid.Column="1" />

<controls:WaveFormScale IsHitTestVisible="False" Margin="2,0,1,0" Name="SimulatorScaleRenderer"
Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3" Grid.RowSpan="2" />

<ScrollViewer ClipToBounds="True" Name="SimPartScroll" Grid.Row="1" Grid.Column="2"
HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Visible">
<ItemsControl ItemsSource="{Binding Signals}">
<ItemsControl.ItemTemplate>
<DataTemplate x:DataType="models:WaveModel">
<controls:Wave
Height="{DynamicResource LineHeight}"
Max="{Binding $parent[UserControl].((viewModels:WaveFormViewModel)DataContext).Max, FallbackValue={x:Null}}"
ZoomMultiply="{Binding $parent[UserControl].((viewModels:WaveFormViewModel)DataContext).ZoomMultiply, FallbackValue={x:Null}}"
Offset="{Binding $parent[UserControl].((viewModels:WaveFormViewModel)DataContext).Offset, FallbackValue={x:Null}}"
VerticalAlignment="Stretch" HorizontalAlignment="Stretch"
ExtendSignals="{Binding $parent[UserControl].((viewModels:WaveFormViewModel)DataContext).ExtendSignals, FallbackValue={x:Null}}"
LoadingOffset="{Binding $parent[UserControl].((viewModels:WaveFormViewModel)DataContext).LoadingMarkerOffset, FallbackValue={x:Null}}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>

<controls:WaveFormEffects Name="SimulatorEffectsRenderer" VerticalAlignment="Stretch"
IsHitTestVisible="False" Margin="0 0 1 0"
HorizontalAlignment="Stretch" Grid.Row="1" Grid.Column="2" />
</Grid>
</UserControl>

0 comments on commit 4c5185a

Please sign in to comment.