Skip to content

Commit 565f86b

Browse files
committed
add: 终端效果预览区域
1 parent 6ee6b67 commit 565f86b

File tree

5 files changed

+413
-266
lines changed

5 files changed

+413
-266
lines changed

llcomNext/LLCOM/Controls/TerminalColorPriview.axaml

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -48,82 +48,82 @@
4848
<Border
4949
Grid.Row="0"
5050
Grid.Column="0"
51-
Background="{Binding MainColor.Code40, RelativeSource={RelativeSource TemplatedParent}}"
51+
Background="{Binding MainColor.Code30, RelativeSource={RelativeSource TemplatedParent}}"
5252
Classes="PreviewSquare" />
5353
<Border
5454
Grid.Row="0"
5555
Grid.Column="1"
56-
Background="{Binding MainColor.Code41, RelativeSource={RelativeSource TemplatedParent}}"
56+
Background="{Binding MainColor.Code31, RelativeSource={RelativeSource TemplatedParent}}"
5757
Classes="PreviewSquare" />
5858
<Border
5959
Grid.Row="0"
6060
Grid.Column="2"
61-
Background="{Binding MainColor.Code42, RelativeSource={RelativeSource TemplatedParent}}"
61+
Background="{Binding MainColor.Code32, RelativeSource={RelativeSource TemplatedParent}}"
6262
Classes="PreviewSquare" />
6363
<Border
6464
Grid.Row="0"
6565
Grid.Column="3"
66-
Background="{Binding MainColor.Code43, RelativeSource={RelativeSource TemplatedParent}}"
66+
Background="{Binding MainColor.Code33, RelativeSource={RelativeSource TemplatedParent}}"
6767
Classes="PreviewSquare" />
6868
<Border
6969
Grid.Row="0"
7070
Grid.Column="4"
71-
Background="{Binding MainColor.Code44, RelativeSource={RelativeSource TemplatedParent}}"
71+
Background="{Binding MainColor.Code34, RelativeSource={RelativeSource TemplatedParent}}"
7272
Classes="PreviewSquare" />
7373
<Border
7474
Grid.Row="0"
7575
Grid.Column="5"
76-
Background="{Binding MainColor.Code45, RelativeSource={RelativeSource TemplatedParent}}"
76+
Background="{Binding MainColor.Code35, RelativeSource={RelativeSource TemplatedParent}}"
7777
Classes="PreviewSquare" />
7878
<Border
7979
Grid.Row="0"
8080
Grid.Column="6"
81-
Background="{Binding MainColor.Code46, RelativeSource={RelativeSource TemplatedParent}}"
81+
Background="{Binding MainColor.Code36, RelativeSource={RelativeSource TemplatedParent}}"
8282
Classes="PreviewSquare" />
8383
<Border
8484
Grid.Row="0"
8585
Grid.Column="7"
86-
Background="{Binding MainColor.Code47, RelativeSource={RelativeSource TemplatedParent}}"
86+
Background="{Binding MainColor.Code37, RelativeSource={RelativeSource TemplatedParent}}"
8787
Classes="PreviewSquare" />
8888
<Border
8989
Grid.Row="1"
9090
Grid.Column="0"
91-
Background="{Binding MainColor.Code30, RelativeSource={RelativeSource TemplatedParent}}"
91+
Background="{Binding MainColor.Code90, RelativeSource={RelativeSource TemplatedParent}}"
9292
Classes="PreviewSquare" />
9393
<Border
9494
Grid.Row="1"
9595
Grid.Column="1"
96-
Background="{Binding MainColor.Code31, RelativeSource={RelativeSource TemplatedParent}}"
96+
Background="{Binding MainColor.Code91, RelativeSource={RelativeSource TemplatedParent}}"
9797
Classes="PreviewSquare" />
9898
<Border
9999
Grid.Row="1"
100100
Grid.Column="2"
101-
Background="{Binding MainColor.Code32, RelativeSource={RelativeSource TemplatedParent}}"
101+
Background="{Binding MainColor.Code92, RelativeSource={RelativeSource TemplatedParent}}"
102102
Classes="PreviewSquare" />
103103
<Border
104104
Grid.Row="1"
105105
Grid.Column="3"
106-
Background="{Binding MainColor.Code33, RelativeSource={RelativeSource TemplatedParent}}"
106+
Background="{Binding MainColor.Code93, RelativeSource={RelativeSource TemplatedParent}}"
107107
Classes="PreviewSquare" />
108108
<Border
109109
Grid.Row="1"
110110
Grid.Column="4"
111-
Background="{Binding MainColor.Code34, RelativeSource={RelativeSource TemplatedParent}}"
111+
Background="{Binding MainColor.Code94, RelativeSource={RelativeSource TemplatedParent}}"
112112
Classes="PreviewSquare" />
113113
<Border
114114
Grid.Row="1"
115115
Grid.Column="5"
116-
Background="{Binding MainColor.Code35, RelativeSource={RelativeSource TemplatedParent}}"
116+
Background="{Binding MainColor.Code95, RelativeSource={RelativeSource TemplatedParent}}"
117117
Classes="PreviewSquare" />
118118
<Border
119119
Grid.Row="1"
120120
Grid.Column="6"
121-
Background="{Binding MainColor.Code36, RelativeSource={RelativeSource TemplatedParent}}"
121+
Background="{Binding MainColor.Code96, RelativeSource={RelativeSource TemplatedParent}}"
122122
Classes="PreviewSquare" />
123123
<Border
124124
Grid.Row="1"
125125
Grid.Column="7"
126-
Background="{Binding MainColor.Code37, RelativeSource={RelativeSource TemplatedParent}}"
126+
Background="{Binding MainColor.Code97, RelativeSource={RelativeSource TemplatedParent}}"
127127
Classes="PreviewSquare" />
128128
</Grid>
129129
</Grid>
Lines changed: 86 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,111 @@
11
using Avalonia.Media;
2+
using CommunityToolkit.Mvvm.ComponentModel;
23

34
namespace LLCOM.Models;
45

5-
public class TerminalColorScheme(string name)
6+
public partial class TerminalColorScheme(string name) : ObservableObject
67
{
7-
public string Name { get; set; } = name;
8+
public void RefreshData(TerminalColorScheme colorScheme)
9+
{
10+
this.Name = colorScheme.Name;
11+
this.Foreground = colorScheme.Foreground;
12+
this.Background = colorScheme.Background;
13+
this.Cursor = colorScheme.Cursor;
14+
this.SelectionBackground = colorScheme.SelectionBackground;
15+
this.Code30 = colorScheme.Code30;
16+
this.Code31 = colorScheme.Code31;
17+
this.Code32 = colorScheme.Code32;
18+
this.Code33 = colorScheme.Code33;
19+
this.Code34 = colorScheme.Code34;
20+
this.Code35 = colorScheme.Code35;
21+
this.Code36 = colorScheme.Code36;
22+
this.Code37 = colorScheme.Code37;
23+
this.Code90 = colorScheme.Code90;
24+
this.Code91 = colorScheme.Code91;
25+
this.Code92 = colorScheme.Code92;
26+
this.Code93 = colorScheme.Code93;
27+
this.Code94 = colorScheme.Code94;
28+
this.Code95 = colorScheme.Code95;
29+
this.Code96 = colorScheme.Code96;
30+
this.Code97 = colorScheme.Code97;
31+
}
832

9-
public required IBrush Foreground { get; set; }
10-
public required IBrush Background { get; set; }
11-
public required IBrush Cursor { get; set; }
12-
public required IBrush SelectionBackground { get; set; }
33+
[ObservableProperty]
34+
private string _name = name;
35+
36+
[ObservableProperty]
37+
private IBrush _foreground;
38+
39+
[ObservableProperty]
40+
private IBrush _background;
41+
42+
[ObservableProperty]
43+
private IBrush _cursor;
44+
45+
[ObservableProperty]
46+
private IBrush _selectionBackground;
1347

1448
//black
15-
public required IBrush Code40 { get; set; }
49+
[ObservableProperty]
50+
private IBrush _code30;
51+
1652
//red
17-
public required IBrush Code41 { get; set; }
53+
[ObservableProperty]
54+
private IBrush _code31;
55+
1856
//green
19-
public required IBrush Code42 { get; set; }
57+
[ObservableProperty]
58+
private IBrush _code32;
59+
2060
//yellow
21-
public required IBrush Code43 { get; set; }
61+
[ObservableProperty]
62+
private IBrush _code33;
63+
2264
//blue
23-
public required IBrush Code44 { get; set; }
65+
[ObservableProperty]
66+
private IBrush _code34;
67+
2468
//purple
25-
public required IBrush Code45 { get; set; }
69+
[ObservableProperty]
70+
private IBrush _code35;
71+
2672
//cyan
27-
public required IBrush Code46 { get; set; }
73+
[ObservableProperty]
74+
private IBrush _code36;
75+
2876
//white
29-
public required IBrush Code47 { get; set; }
77+
[ObservableProperty]
78+
private IBrush _code37;
3079

3180
//bright black
32-
public required IBrush Code30 { get; set; }
81+
[ObservableProperty]
82+
private IBrush _code90;
83+
3384
//bright red
34-
public required IBrush Code31 { get; set; }
85+
[ObservableProperty]
86+
private IBrush _code91;
87+
3588
//bright green
36-
public required IBrush Code32 { get; set; }
89+
[ObservableProperty]
90+
private IBrush _code92;
91+
3792
//bright yellow
38-
public required IBrush Code33 { get; set; }
93+
[ObservableProperty]
94+
private IBrush _code93;
95+
3996
//bright blue
40-
public required IBrush Code34 { get; set; }
97+
[ObservableProperty]
98+
private IBrush _code94;
99+
41100
//bright purple
42-
public required IBrush Code35 { get; set; }
101+
[ObservableProperty]
102+
private IBrush _code95;
103+
43104
//bright cyan
44-
public required IBrush Code36 { get; set; }
105+
[ObservableProperty]
106+
private IBrush _code96;
107+
45108
//bright white
46-
public required IBrush Code37 { get; set; }
109+
[ObservableProperty]
110+
private IBrush _code97;
47111
}

llcomNext/LLCOM/Services/Setting.cs

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using System.Threading.Tasks;
66
using Avalonia.Media;
77
using CommunityToolkit.Mvvm.ComponentModel;
8+
using LLCOM.Models;
89

910
namespace LLCOM.Services;
1011

@@ -139,12 +140,33 @@ public FontFamily? TerminalFontFamily
139140
[ObservableProperty]
140141
private string _terminalFont = Database.Get(nameof(TerminalFont), "").Result;
141142

143+
142144
//终端模式的主题
145+
private TerminalColorScheme? _terminalTheme = null;
146+
public TerminalColorScheme TerminalTheme
147+
{
148+
get
149+
{
150+
if (_terminalTheme == null)
151+
{
152+
_terminalTheme = new TerminalColorScheme("");
153+
if (TerminalThemeIndex < 0 || TerminalThemeIndex >= TerminalColorSchemes.List.Length)
154+
_terminalTheme.RefreshData(TerminalColorSchemes.List[0]);
155+
else
156+
_terminalTheme.RefreshData(TerminalColorSchemes.List[TerminalThemeIndex]);
157+
}
158+
return _terminalTheme;
159+
}
160+
}
143161
[ObservableProperty]
144-
private int _terminalTheme = Database.Get(nameof(TerminalTheme), 0).Result;
145-
146-
147-
162+
private int _terminalThemeIndex = Database.Get(nameof(TerminalThemeIndex), 0).Result;
163+
//主题配置变了,更新一下
164+
partial void OnTerminalThemeIndexChanged(int value)
165+
{
166+
TerminalTheme.RefreshData(TerminalColorSchemes.List[value]);
167+
}
168+
169+
148170
public Setting()
149171
{
150172
PropertyChanged += async (sender, e) =>

0 commit comments

Comments
 (0)