|
7 | 7 | xmlns:materialIcons="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
|
8 | 8 | xmlns:pgc="clr-namespace:Avalonia.PropertyGrid.Controls;assembly=Avalonia.PropertyGrid"
|
9 | 9 | xmlns:amxc="using:Avalonia.Markup.Xaml.Converters"
|
| 10 | + xmlns:paz="using:Avalonia.Controls.PanAndZoom" |
10 | 11 | mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
11 | 12 | x:Class="OpenLoco.Gui.Views.ImageTableView"
|
12 | 13 | x:DataType="vm:ImageTableViewModel">
|
|
17 | 18 |
|
18 | 19 | <DockPanel>
|
19 | 20 | <StackPanel DockPanel.Dock="Top" Orientation="Horizontal">
|
20 |
| - <Button Command="{Binding ImportImagesCommand}" HorizontalAlignment="Stretch" Margin="2" Padding="2" ToolTip.Tip="Import from Directory"> |
| 21 | + <Button Command="{Binding ImportImagesCommand}" HorizontalAlignment="Stretch" Margin="2" Padding="2" ToolTip.Tip="Import a directory of .pngs"> |
21 | 22 | <DockPanel>
|
22 | 23 | <materialIcons:MaterialIcon Kind="FolderUpload" Width="24" Height="24" Margin="2" />
|
23 |
| - <TextBlock HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="4">Import from Directory</TextBlock> |
| 24 | + <TextBlock HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="4">Import</TextBlock> |
24 | 25 | </DockPanel>
|
25 | 26 | </Button>
|
26 |
| - <Button Command="{Binding ExportImagesCommand}" HorizontalAlignment="Stretch" Margin="2" Padding="2" ToolTip.Tip="Export to Directory"> |
| 27 | + <Button Command="{Binding ExportImagesCommand}" HorizontalAlignment="Stretch" Margin="2" Padding="2" ToolTip.Tip="Export all images as .pngs to a directory"> |
27 | 28 | <DockPanel>
|
28 | 29 | <materialIcons:MaterialIcon Kind="FolderDownload" Width="24" Height="24" Margin="2" />
|
29 |
| - <TextBlock HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="4">Export to Directory</TextBlock> |
| 30 | + <TextBlock HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="4">Export</TextBlock> |
30 | 31 | </DockPanel>
|
31 | 32 | </Button>
|
32 |
| - <Button HorizontalAlignment="Stretch" Margin="2" Padding="2" ToolTip.Tip="Select background colour"> |
| 33 | + <Button HorizontalAlignment="Stretch" Margin="2" Padding="2" ToolTip.Tip="Background colour"> |
33 | 34 | <DockPanel>
|
34 | 35 | <materialIcons:MaterialIcon Kind="Palette" Width="24" Height="24" Margin="2" />
|
35 |
| - <TextBlock HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="4">Select background colour</TextBlock> |
| 36 | + <TextBlock HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="4">Background colour</TextBlock> |
36 | 37 | </DockPanel>
|
37 | 38 | <Button.Flyout >
|
38 | 39 | <Flyout>
|
|
43 | 44 | <Button Command="{Binding CropAllImagesCommand}" HorizontalAlignment="Stretch" Margin="2" Padding="2" ToolTip.Tip="Crops all images and adjusts offsets">
|
44 | 45 | <DockPanel>
|
45 | 46 | <materialIcons:MaterialIcon Kind="Crop" Width="24" Height="24" Margin="2" />
|
46 |
| - <TextBlock HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="4">Crop all images</TextBlock> |
| 47 | + <TextBlock HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="4">Crop all</TextBlock> |
47 | 48 | </DockPanel>
|
48 | 49 | </Button>
|
49 | 50 | <!--<ComboBox ItemsSource="{Binding ColourSwatchesArr}" SelectedItem="{Binding SelectedColourSwatch}" HorizontalAlignment="Stretch" VerticalAlignment="Center" />-->
|
|
95 | 96 | </DockPanel>
|
96 | 97 | <Button.Flyout >
|
97 | 98 | <Flyout>
|
98 |
| - <ColorView Name="ImageColorViewBorder" Palette="" Color="Gray" IsColorModelVisible="False" IsColorSpectrumVisible="False" IsColorComponentsVisible="False" /> |
| 99 | + <ColorView Name="ImageColorViewBorder" Palette="" Color="Gold" IsColorModelVisible="False" IsColorSpectrumVisible="False" IsColorComponentsVisible="False" /> |
99 | 100 | </Flyout>
|
100 | 101 | </Button.Flyout>
|
101 | 102 | </Button>
|
|
111 | 112 | </Button.Flyout>
|
112 | 113 | </Button>
|
113 | 114 | </StackPanel>
|
114 |
| - <Grid> |
115 |
| - <!-- Bounding box --> |
116 |
| - <Rectangle Fill="{Binding #ImageColorViewPreviewBackground.Color, ConverterParameter={x:Static Brushes.Transparent}, Converter={StaticResource ColorToBrushConverter}}" Stroke="{Binding #ImageColorViewBorder.Color, ConverterParameter={x:Static Brushes.Transparent}, Converter={StaticResource ColorToBrushConverter}}" StrokeThickness="1.0" Width="{Binding SelectedBitmapPreviewBorder.Width}" Height="{Binding SelectedBitmapPreviewBorder.Height}" Opacity="1.0"> |
117 |
| - <Rectangle.RenderTransform> |
118 |
| - <ScaleTransform ScaleX="{Binding Zoom}" ScaleY="{Binding Zoom}" /> |
119 |
| - </Rectangle.RenderTransform> |
120 |
| - </Rectangle> |
121 |
| - <Image Name="AnimationPreviewPP" Source="{Binding SelectedBitmapPreview}" RenderOptions.BitmapInterpolationMode="None" Stretch="None" Height="{Binding AnimationWindowHeight}" Width="256"> |
122 |
| - <Image.RenderTransform> |
123 |
| - <ScaleTransform ScaleX="{Binding Zoom}" ScaleY="{Binding Zoom}" /> |
124 |
| - </Image.RenderTransform> |
125 |
| - </Image> |
126 |
| - <!-- Origin point --> |
127 |
| - <Rectangle Fill="{Binding #ImageColorViewOriginPoint.Color, ConverterParameter={x:Static Brushes.Transparent}, Converter={StaticResource ColorToBrushConverter}}" Width="1" Height="1" Opacity="1.0"> |
128 |
| - <Rectangle.RenderTransform> |
129 |
| - <ScaleTransform ScaleX="{Binding Zoom}" ScaleY="{Binding Zoom}" /> |
130 |
| - </Rectangle.RenderTransform> |
131 |
| - </Rectangle> |
132 |
| - </Grid> |
133 |
| - <TextBlock HorizontalAlignment="Center" Text="{Binding AnimationSpeed, StringFormat='Animation FPS: {0}'}"></TextBlock> |
| 115 | + <ScrollViewer Grid.Row="4" Grid.Column="1" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"> |
| 116 | + <paz:ZoomBorder Name="ZoomBorder" MinWidth="256" MinHeight="256" Stretch="Uniform" ZoomSpeed="1.2" MinZoomX="0.5" MaxZoomX="30" MinZoomY="0.5" MaxZoomY="30" ClipToBounds="True" Focusable="True" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" PanButton="Left" Background="{Binding #ImageColorViewPreviewBackground.Color, ConverterParameter={x:Static Brushes.Transparent}, Converter={StaticResource ColorToBrushConverter}}" > |
| 117 | + <Canvas Width="{Binding SelectedG1ElementSize.Width}" Height="{Binding SelectedG1ElementSize.Height}" HorizontalAlignment="Center" VerticalAlignment="Center" Background="Gray"> |
| 118 | + <!--Bounding box--> |
| 119 | + <Rectangle Canvas.Top="-1" Canvas.Left="-1" StrokeThickness="1.0" Width="{Binding SelectedBitmapPreviewBorder.Width}" Height="{Binding SelectedBitmapPreviewBorder.Height}" Opacity="1.0" Fill="{Binding #ImageColorViewPreviewBackground.Color, ConverterParameter={x:Static Brushes.Transparent}, Converter={StaticResource ColorToBrushConverter}}" Stroke="{Binding #ImageColorViewBorder.Color, ConverterParameter={x:Static Brushes.Transparent}, Converter={StaticResource ColorToBrushConverter}}" /> |
| 120 | + <!--Image--> |
| 121 | + <Image Name="AnimationPreviewPP" Source="{Binding SelectedBitmapPreview}" RenderOptions.BitmapInterpolationMode="None" Stretch="None"/> |
| 122 | + <!--Origin point--> |
| 123 | + <Rectangle Canvas.Left="{Binding SelectedG1ElementOffset.X}" Canvas.Top="{Binding SelectedG1ElementOffset.Y}" Width="1" Height="1" Opacity="1.0" Fill="{Binding #ImageColorViewOriginPoint.Color, ConverterParameter={x:Static Brushes.Transparent}, Converter={StaticResource ColorToBrushConverter}}" /> |
| 124 | + </Canvas> |
| 125 | + </paz:ZoomBorder> |
| 126 | + </ScrollViewer> |
| 127 | + <TextBlock HorizontalAlignment="Center" Text="{Binding #ZoomBorder.ZoomX, StringFormat='Zoom: {0:F2}x | \'R\' to reset'}"></TextBlock> |
| 128 | + <!--<Slider Minimum="1" Maximum="10" Value="{Binding ZoomBorder.ZoomX}" />--> |
| 129 | + <TextBlock Margin="0, 16, 0, 0" HorizontalAlignment="Center" Text="{Binding AnimationSpeed, StringFormat='Animation FPS: {0}'}"></TextBlock> |
134 | 130 | <Slider Minimum="1" Maximum="80" Value="{Binding AnimationSpeed}" />
|
135 |
| - <TextBlock HorizontalAlignment="Center" Text="{Binding Zoom, StringFormat='Zoom: {0}x'}"></TextBlock> |
136 |
| - <Slider Minimum="1" Maximum="10" Value="{Binding Zoom}" /> |
137 | 131 | </StackPanel>
|
138 | 132 | <ScrollViewer>
|
139 | 133 | <pgc:PropertyGrid x:Name="propertyGrid_imageProps" Margin="8" MinWidth="256" DataContext="{Binding SelectedG1Element}" DockPanel.Dock="Right" ShowTitle="False" AllowFilter="False" AllowQuickFilter="False" ShowStyle="Tiled"></pgc:PropertyGrid>
|
|
0 commit comments