Skip to content

Commit d0f5ec9

Browse files
authored
Merge branch 'master' into add-flags-dock
2 parents 5ac27e1 + da7ee2d commit d0f5ec9

28 files changed

Lines changed: 1563 additions & 303 deletions

ZXBStudio/BuildSystem/ZXProjectBuilder.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public class ZXProjectBuilder
2525

2626
if (ZXProjectManager.Current == null)
2727
{
28-
OutputLogWritter.WriteLine("No open projcet, aborting...");
28+
OutputLogWritter.WriteLine("No open project, aborting...");
2929
return null;
3030
}
3131

@@ -262,7 +262,7 @@ private static bool BuildNexFile(byte[] binary, ZXBuildSettings settings, ZXProj
262262
{
263263
if (ZXProjectManager.Current == null)
264264
{
265-
OutputLogWritter.WriteLine("No open projcet, aborting...");
265+
OutputLogWritter.WriteLine("No open project, aborting...");
266266
return null;
267267
}
268268

@@ -454,14 +454,14 @@ public static bool Export(ZXExportOptions Export, TextWriter OutputLogWritter)
454454
{
455455
if (ZXProjectManager.Current == null)
456456
{
457-
OutputLogWritter.WriteLine("No open projcet, aborting...");
457+
OutputLogWritter.WriteLine("No open project, aborting...");
458458
return false;
459459
}
460460

461461
var project = ZXProjectManager.Current;
462462

463463
Cleanup(project.ProjectPath);
464-
ZXBuildSettings? settings = null;
464+
ZXBuildSettings? settings;
465465
string? mainFile = null;
466466

467467
if (string.IsNullOrWhiteSpace(ZXOptions.Current.ZxbcPath) || string.IsNullOrWhiteSpace(ZXOptions.Current.ZxbasmPath))

ZXBStudio/DocumentEditors/ZXGraphics/ColorPickerControl.axaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,9 @@
77
x:Class="ZXBasicStudio.DocumentEditors.ZXGraphics.ColorPickerControl">
88
<Grid HorizontalAlignment="Center">
99
<Grid Name="grdMonochrome" IsVisible="False">
10-
<TextBlock>Monochrome...</TextBlock>
1110
</Grid>
1211
<Grid Name="grdZXSpectrum" IsVisible="False">
13-
<TextBlock>ZX Spectrum...</TextBlock>
12+
<Canvas Name="cnvZXSpectrum" Width="160" Height="40" Margin="4"/>
1413
</Grid>
1514
<Grid Name="grdNext" IsVisible="False">
1615
<TextBlock>Next...</TextBlock>

ZXBStudio/DocumentEditors/ZXGraphics/ColorPickerControl.axaml.cs

Lines changed: 82 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ namespace ZXBasicStudio.DocumentEditors.ZXGraphics
2121
public partial class ColorPickerControl : UserControl
2222
{
2323
private GraphicsModes graphicMode = GraphicsModes.Monochrome;
24-
24+
private Action<string, int> callBackCommand = null;
25+
private PaletteColor[] palette = null;
26+
private int selectedIndexColor = 0;
2527

2628
/// <summary>
2729
/// Constructor
@@ -32,19 +34,23 @@ public ColorPickerControl()
3234
}
3335

3436

35-
public bool Inicialize(GraphicsModes graphicMode, PaletteColor[] palette, int primaryColor, int secondaryColor, bool bright, bool flash)
37+
public bool Inicialize(GraphicsModes graphicMode, PaletteColor[] palette, int selectedIndexColor, Action<string, int> callBackCommand)
3638
{
3739
this.graphicMode = graphicMode;
40+
this.palette = palette;
41+
this.callBackCommand = callBackCommand;
42+
this.selectedIndexColor = selectedIndexColor;
3843

39-
grdMonochrome.IsVisible = true;
40-
grdZXSpectrum.IsVisible = true;
41-
grdNext.IsVisible = true;
44+
grdMonochrome.IsVisible = false;
45+
grdZXSpectrum.IsVisible = false;
46+
grdNext.IsVisible = false;
4247
switch (graphicMode)
4348
{
4449
case GraphicsModes.Monochrome:
4550
grdMonochrome.IsVisible = true;
4651
break;
4752
case GraphicsModes.ZXSpectrum:
53+
DrawZXSpectrum();
4854
grdZXSpectrum.IsVisible = true;
4955
break;
5056
case GraphicsModes.Next:
@@ -55,5 +61,76 @@ public bool Inicialize(GraphicsModes graphicMode, PaletteColor[] palette, int pr
5561

5662
return true;
5763
}
64+
65+
/// <summary>
66+
/// Draw colors for ZXSpectrum palette
67+
/// </summary>
68+
private void DrawZXSpectrum()
69+
{
70+
cnvZXSpectrum.Children.Clear();
71+
// Draw all colors
72+
int index = 0;
73+
for (int y = 0; y < 2; y++)
74+
{
75+
for (int x = 0; x < 8; x++)
76+
{
77+
var p = palette[index];
78+
var b = new SolidColorBrush(new Color(255, p.Red, p.Green, p.Blue));
79+
DrawRectangle(cnvZXSpectrum, x * 20, y * 20, 18, 18, Brushes.White, b, index);
80+
index++;
81+
82+
}
83+
}
84+
85+
// Draw selected color (ink)
86+
{
87+
int y = selectedIndexColor / 8;
88+
int x = selectedIndexColor % 8;
89+
DrawRectangle(cnvZXSpectrum, (x * 20) - 2, (y * 20) - 2, 22, 22, Brushes.Red, null, -1);
90+
}
91+
}
92+
93+
94+
private void DrawRectangle(Canvas canvas, int x, int y, int w, int h, IBrush? borderBrush, IBrush? colorBrush, int tag)
95+
{
96+
var r = new Rectangle();
97+
r.Width = w;
98+
r.Height = h;
99+
r.Tag = tag.ToString();
100+
if (borderBrush != null)
101+
{
102+
r.Stroke = borderBrush;
103+
r.StrokeThickness = 1;
104+
}
105+
if (colorBrush != null)
106+
{
107+
r.Fill = colorBrush;
108+
}
109+
canvas.Children.Add(r);
110+
Canvas.SetTop(r, y);
111+
Canvas.SetLeft(r, x);
112+
113+
r.Tapped += R_Tapped;
114+
}
115+
116+
117+
private void R_Tapped(object? sender, TappedEventArgs e)
118+
{
119+
if (sender == null)
120+
{
121+
return;
122+
}
123+
124+
Rectangle r = (Rectangle)sender;
125+
126+
int color = r.Tag.ToInteger();
127+
if (color >= 0)
128+
{
129+
selectedIndexColor = color;
130+
this.IsVisible = false;
131+
132+
callBackCommand?.Invoke("SELECT", selectedIndexColor);
133+
}
134+
}
58135
}
59136
}

ZXBStudio/DocumentEditors/ZXGraphics/FontGDUEditor.axaml.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -698,7 +698,6 @@ private void ZoomOut()
698698
{
699699
sldZoom.Value = v - 1;
700700
}
701-
702701
}
703702

704703
#endregion
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
using Avalonia;
2+
using Avalonia.Media;
3+
using System;
4+
using System.Collections.Generic;
5+
using System.Linq;
6+
using System.Text;
7+
using System.Threading.Tasks;
8+
9+
namespace ZXBasicStudio.DocumentEditors.ZXGraphics
10+
{
11+
public interface IZXBitmap : IImage
12+
{
13+
public PixelSize PixelSize { get; }
14+
}
15+
}

ZXBStudio/DocumentEditors/ZXGraphics/SpriteEditor.axaml

Lines changed: 29 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -8,45 +8,7 @@
88
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
99
Focusable="True"
1010
Background="#ff202020"
11-
x:Class="ZXBasicStudio.DocumentEditors.ZXGraphics.SpriteEditor">
12-
<UserControl.Styles>
13-
<Style Selector="Button.toolbar_r90">
14-
<Setter Property="Background" Value="#fff0f0f0" />
15-
<Setter Property="Width" Value="32" />
16-
<Setter Property="Height" Value="32" />
17-
<Setter Property="Padding" Value="4" />
18-
<Setter Property="CornerRadius" Value="4" />
19-
<Setter Property="RenderTransform">
20-
<Setter.Value>
21-
<RotateTransform Angle="90"/>
22-
</Setter.Value>
23-
</Setter>
24-
</Style>
25-
<Style Selector="Button.toolbar_r270">
26-
<Setter Property="Background" Value="#fff0f0f0" />
27-
<Setter Property="Width" Value="32" />
28-
<Setter Property="Height" Value="32" />
29-
<Setter Property="Padding" Value="4" />
30-
<Setter Property="CornerRadius" Value="4" />
31-
<Setter Property="RenderTransform">
32-
<Setter.Value>
33-
<RotateTransform Angle="270"/>
34-
</Setter.Value>
35-
</Setter>
36-
</Style>
37-
<Style Selector="Button.toolbar_hMirror">
38-
<Setter Property="Background" Value="#fff0f0f0" />
39-
<Setter Property="Width" Value="32" />
40-
<Setter Property="Height" Value="32" />
41-
<Setter Property="Padding" Value="4" />
42-
<Setter Property="CornerRadius" Value="4" />
43-
<Setter Property="RenderTransform">
44-
<Setter.Value>
45-
<ScaleTransform ScaleX="-1"/>
46-
</Setter.Value>
47-
</Setter>
48-
</Style>
49-
</UserControl.Styles>
11+
x:Class="ZXBasicStudio.DocumentEditors.ZXGraphics.SpriteEditor">
5012

5113
<Grid Name="grdMain" RowDefinitions="*,Auto">
5214
<Grid Name="grdEditor" Grid.RowSpan="2" ColumnDefinitions="180,4,*,4,200" Margin="0,8,0,0">
@@ -139,40 +101,55 @@
139101
</WrapPanel>
140102

141103
<local:SpritePatternEditor Name="ctrlEditor" Grid.Row="1" Background="#303030"/>
142-
104+
143105
<WrapPanel Orientation="Horizontal" Background="#ff202020" Grid.Row="2" Margin="10,5,10,5" Height="NaN">
144106
<TextBlock Name="txtZoom" Classes="dialog" Width="54">Zoom 24x</TextBlock>
145107
<Slider Name="sldZoom" Width="100" Minimum="1" Maximum="9" Value="6" VerticalAlignment="Center"/>
146108
<TextBlock Name="txtFrame" Classes="dialog" Width="55" Margin="8,4,0,0">Frame</TextBlock>
147109
<Slider Name="sldFrame" Width="100" Minimum="0" Maximum="0" Value="0" VerticalAlignment="Center"/>
148-
<Button Name="btnPaper" Classes="toobar" Margin="8,0,0,0">Paper</Button>
149-
<Button Name="btnInk" Classes="toobar" Margin="8,0,0,0">Ink</Button>
110+
111+
<Grid Name="btnPaper" Margin="8,0,0,0" ColumnDefinitions="*,16,Auto">
112+
<TextBlock Margin="10,5,5,5">Paper</TextBlock>
113+
<Border Grid.Column="1" BorderBrush="Red" BorderThickness="1" Width="20" Height="20">
114+
<Grid Name="grdPaper">
115+
<TextBlock Name="txtPaper" Grid.Column="2" HorizontalAlignment="Center">0</TextBlock>
116+
</Grid>
117+
</Border>
118+
</Grid>
119+
120+
<Grid Name="btnInk" Margin="8,0,0,0" ColumnDefinitions="*,16,Auto">
121+
<TextBlock Margin="10,5,5,5">Ink</TextBlock>
122+
<Border Grid.Column="1" BorderBrush="Red" BorderThickness="1" Width="20" Height="20">
123+
<Grid Name="grdInk">
124+
<TextBlock Name="txtInk" Grid.Column="2" HorizontalAlignment="Center">1</TextBlock>
125+
</Grid>
126+
</Border>
127+
</Grid>
128+
129+
<!--
150130
<Button Name="btnBright" Classes="toobar" Margin="8,0,0,0">Bright</Button>
151131
<Button Name="btnFlash" Classes="toobar" Margin="8,0,0,0">Flash</Button>
132+
-->
152133
</WrapPanel>
153134

154135
</Grid>
155136

156137
<GridSplitter ResizeDirection="Columns" Grid.Column="3" Classes="vertical"></GridSplitter>
157138

158-
<zxd:ZXDockingContainer Name="dockRight" DockingGroup="ZXGraphics" Grid.Column="4" RowDefinitions="*">
159-
<Grid RowDefinitions="120,4,*">
160-
161-
<zxd:ZXDockingControl Grid.Row="0" Name="dockPreview" Title="Preview" DockingGroup="ZXGraphics2" DesiredFloatingSize="200,400">
139+
<zxd:ZXDockingContainer Name="dockRight" DockingGroup="ZXGraphics" Grid.Column="4" RowDefinitions="*,4,4*" Background="Red">
140+
<zxd:ZXDockingControl Grid.Row="0" Name="dockPreview" Title="Preview" DockingGroup="ZXGraphics" DesiredFloatingSize="200,400">
162141
<zxd:ZXDockingControl.DockedControl>
163142
<local:SpritePreviewControl Name="ctrlPreview"></local:SpritePreviewControl>
164143
</zxd:ZXDockingControl.DockedControl>
165144
</zxd:ZXDockingControl>
166145

167146
<GridSplitter ResizeDirection="Rows" Grid.Row="1" Classes="horizontal"></GridSplitter>
168147

169-
<zxd:ZXDockingControl Grid.Row="2" Name="dockProperties" Title="Properties" DockingGroup="ZXGraphics2" DesiredFloatingSize="200,400">
170-
<zxd:ZXDockingControl.DockedControl>
148+
<zxd:ZXDockingControl Grid.Row="2" Name="dockProperties" Title="Properties" DockingGroup="ZXGraphics" DesiredFloatingSize="200,400">
149+
<zxd:ZXDockingControl.DockedControl>
171150
<local:SpritePropertiesControl Name="ctrlProperties"/>
172-
</zxd:ZXDockingControl.DockedControl>
173-
</zxd:ZXDockingControl>
174-
</Grid>
175-
151+
</zxd:ZXDockingControl.DockedControl>
152+
</zxd:ZXDockingControl>
176153
</zxd:ZXDockingContainer>
177154

178155
</Grid>

0 commit comments

Comments
 (0)