1
0

feat: add icon resources for editor

This commit is contained in:
2025-11-16 15:44:14 +08:00
parent df4a7252c1
commit 1d8cb1a783
87 changed files with 2431 additions and 4 deletions

View File

@@ -0,0 +1,38 @@
<Window x:Class="BallanceTasEditor.Views.AboutDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:BallanceTasEditor.Views"
mc:Ignorable="d" WindowStartupLocation="CenterOwner" WindowStyle="ToolWindow"
Title="About Ballance TAS Editor" Width="340" Height="480" Icon="/Assets/MenuAbout.ico">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<!-- 图标 -->
<ContentControl Grid.Row="0" Content="{StaticResource IconApp}"
Width="64" Height="64" HorizontalAlignment="Center" Margin="10" />
<!-- 应用名称和简介 -->
<TextBlock Grid.Row="1" Text="Ballance TAS Editor" FontSize="20" FontWeight="Bold" HorizontalAlignment="Center" Margin="10" />
<TextBlock Grid.Row="2" Text="Stable, Robust and Free TAS Editor" TextAlignment="Center" Margin="10" />
<!-- 详情(版权信息等) -->
<TextBox Grid.Row="3" IsReadOnly="True" TextWrapping="Wrap" Margin="10"
ScrollViewer.VerticalScrollBarVisibility="Visible" ScrollViewer.HorizontalScrollBarVisibility="Disabled"
Text="Copyright © 2021-2025 yyc12345. All rights reserved.&#13;
&#13;
Program: yyc12345 &#13;
Icon design: plAer_2 &#13;
&#13;
Version: 1.2 stable&#13;
Build Date: October 21, 2025&#13;"/>
<!-- 确认按钮 -->
<Button Grid.Row="4" Content="OK" MinWidth="80" HorizontalAlignment="Center" Margin="10" Padding="5"/>
</Grid>
</Window>

View File

@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace BallanceTasEditor.Views {
/// <summary>
/// Interaction logic for AboutDialog.xaml
/// </summary>
public partial class AboutDialog : Window {
public AboutDialog() {
InitializeComponent();
}
}
}

View File

@@ -0,0 +1,12 @@
<Window x:Class="BallanceTasEditor.Views.GotoDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:BallanceTasEditor.Views"
mc:Ignorable="d"
Title="GotoDialog" Height="450" Width="800">
<Grid>
</Grid>
</Window>

View File

@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace BallanceTasEditor.Views {
/// <summary>
/// Interaction logic for GotoDialog.xaml
/// </summary>
public partial class GotoDialog : Window {
public GotoDialog() {
InitializeComponent();
}
}
}

View File

@@ -4,9 +4,133 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:BallanceTasEditor.Views"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800" Icon="/Assets/App.ico">
mc:Ignorable="d" WindowStartupLocation="CenterScreen"
Title="Ballance TAS Editor" Height="600" Width="800" Icon="/Assets/App.ico">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<Menu Grid.Row="0">
<MenuItem Header="_File" Padding="5">
<MenuItem Header="_New File" Icon="{StaticResource IconMenuNewFile}" InputGestureText="Ctrl+N" Click="MenuItem_Click_3"/>
<MenuItem Header="_Open File" Icon="{StaticResource IconMenuOpenFile}" InputGestureText="Ctrl+O"/>
<Separator/>
<MenuItem Header="_Save File" Icon="{StaticResource IconMenuSaveFile}" InputGestureText="Ctrl+S"/>
<MenuItem Header="Save File As ..." Icon="{StaticResource IconMenuSaveFileAs}"/>
<MenuItem Header="Save File then _Run Game" Icon="{StaticResource IconMenuSaveFileThenRunGame}" InputGestureText="B"/>
<Separator/>
<MenuItem Header="Close File" Icon="{StaticResource IconMenuCloseFile}"/>
<MenuItem Header="Exit" Icon="{StaticResource IconMenuExit}"/>
</MenuItem>
<MenuItem Header="_Edit" Padding="5">
<MenuItem Header="_Undo" Icon="{StaticResource IconMenuUndo}" InputGestureText="Ctrl+Z"/>
<MenuItem Header="_Redo" Icon="{StaticResource IconMenuRedo}" InputGestureText="Ctrl+Y"/>
<Separator/>
<MenuItem Header="Previous Page" Icon="{StaticResource IconPanelPreviousPage}" InputGestureText="A"/>
<MenuItem Header="Previous Item" Icon="{StaticResource IconPanelPreviousItem}" InputGestureText="S"/>
<MenuItem Header="Next Page" Icon="{StaticResource IconPanelNextPage}" InputGestureText="D"/>
<MenuItem Header="Next Item" Icon="{StaticResource IconPanelNextItem}" InputGestureText="F"/>
<MenuItem Header="Goto Item" Icon="{StaticResource IconPanelGoto}" InputGestureText="G"/>
<Separator/>
<MenuItem Header="Select Mode" Icon="{StaticResource IconMenuSelectMode}"/>
<MenuItem Header="Fill Mode" Icon="{StaticResource IconMenuFillMode}"/>
<MenuItem Header="Draw Mode" Icon="{StaticResource IconMenuDrawMode}"/>
<Separator/>
<MenuItem Header="Uniform FPS"/>
<Separator/>
<MenuItem Header="Preference" Icon="{StaticResource IconMenuPreference}" InputGestureText="Ctrl+P" Click="MenuItem_Click"/>
</MenuItem>
<MenuItem Header="_Help" Padding="5">
<MenuItem Header="Report Bug" Icon="{StaticResource IconMenuReportBug}"/>
<MenuItem Header="About" Icon="{StaticResource IconMenuAbout}" Click="MenuItem_Click_1"/>
</MenuItem>
</Menu>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<StackPanel Orientation="Horizontal" Grid.Column="0">
<Button Margin="5" Padding="5">
<StackPanel Orientation="Horizontal">
<ContentControl Content="{StaticResource IconToolBtnSelectMode}" Width="24" Height="24"/>
<TextBlock Text="Select Mode" VerticalAlignment="Center"/>
</StackPanel>
</Button>
<Button Margin="5" Padding="5">
<StackPanel Orientation="Horizontal">
<ContentControl Content="{StaticResource IconToolBtnFillMode}" Width="24" Height="24"/>
<TextBlock Text="Fill Mode" VerticalAlignment="Center"/>
</StackPanel>
</Button>
<Button Margin="5" Padding="5">
<StackPanel Orientation="Horizontal">
<ContentControl Content="{StaticResource IconToolBtnDrawMode}" Width="24" Height="24"/>
<TextBlock Text="Draw Mode" VerticalAlignment="Center"/>
</StackPanel>
</Button>
</StackPanel>
<Button Grid.Column="1" Margin="5" Padding="5">
<StackPanel Orientation="Horizontal">
<ContentControl Content="{StaticResource IconToolBtnSaveFileThenRunGame}" Width="24" Height="24"/>
<TextBlock Text="Save then Run Game" VerticalAlignment="Center"/>
</StackPanel>
</Button>
</Grid>
<Grid Grid.Row="2">
<Grid VerticalAlignment="Center" HorizontalAlignment="Center" AllowDrop="True">
<Rectangle StrokeThickness="4" Stroke="Gray" StrokeDashArray="4 4" Fill="Transparent"/>
<StackPanel Orientation="Horizontal" Margin="20">
<ContentControl Content="{StaticResource IconDragAndDrop}" Width="24" Height="24" Margin="5" VerticalAlignment="Center"/>
<TextBlock Margin="5" Text="Open or Drop a TAS File for Editing" Foreground="Gray" FontSize="16" VerticalAlignment="Center"/>
</StackPanel>
</Grid>
<Grid.ContextMenu>
<ContextMenu>
<MenuItem Header="Set" Icon="{StaticResource IconCtxMenuSet}"/>
<MenuItem Header="Unset" Icon="{StaticResource IconCtxMenuUnset}"/>
<MenuItem Header="Flip" Icon="{StaticResource IconCtxMenuFlip}"/>
<Separator/>
<MenuItem Header="Cut" Icon="{StaticResource IconCtxMenuCut}" InputGestureText="Ctrl+X"/>
<MenuItem Header="Copy" Icon="{StaticResource IconCtxMenuCopy}" InputGestureText="Ctrl+C"/>
<MenuItem Header="Paste after This" Icon="{StaticResource IconCtxMenuPaste}" InputGestureText="Ctrl+V"/>
<MenuItem Header="Paste before This"/>
<Separator/>
<MenuItem Header="Delete This" Icon="{StaticResource IconCtxMenuDelete}"/>
<MenuItem Header="Delete after This" InputGestureText="Del"/>
<MenuItem Header="Delete before This" InputGestureText="Backspace"/>
<Separator/>
<MenuItem Header="Add after This" Icon="{StaticResource IconCtxMenuAdd}" Click="MenuItem_Click_2"/>
<MenuItem Header="Add before This"/>
<Separator/>
<MenuItem Header="Set FPS"/>
</ContextMenu>
</Grid.ContextMenu>
</Grid>
<StatusBar Grid.Row="3">
<!-- 这玩意要逆序排列才能达到我想要的需求也是奇葩 -->
<StatusBarItem Content="v1.2 stable" DockPanel.Dock="Right" Foreground="Gray" FontStyle="Italic"/>
<Separator DockPanel.Dock="Right"/>
<StatusBarItem Content="$PasteMode" DockPanel.Dock="Right"/>
<Separator DockPanel.Dock="Right"/>
<StatusBarItem Content="$Selection" DockPanel.Dock="Right"/>
<Separator DockPanel.Dock="Right"/>
<StatusBarItem Content="$ToolMode" DockPanel.Dock="Right"/>
<Separator DockPanel.Dock="Right"/>
<StatusBarItem Content="$Status" HorizontalAlignment="Stretch"/>
</StatusBar>
</Grid>
</Window>

View File

@@ -21,5 +21,30 @@ namespace BallanceTasEditor.Views {
public MainWindow() {
InitializeComponent();
}
private void MenuItem_Click(object sender, RoutedEventArgs e) {
var dialog = new PreferenceDialog();
dialog.Owner = this;
dialog.ShowDialog();
}
private void MenuItem_Click_1(object sender, RoutedEventArgs e) {
var dialog = new AboutDialog();
dialog.Owner = this;
dialog.ShowDialog();
}
private void MenuItem_Click_2(object sender, RoutedEventArgs e) {
// TODO; Change Title and Icon
var dialog = new SetupCountAndFpsDialog();
dialog.Owner = this;
dialog.ShowDialog();
}
private void MenuItem_Click_3(object sender, RoutedEventArgs e) {
var dialog = new SetupCountAndFpsDialog();
dialog.Owner = this;
dialog.ShowDialog();
}
}
}

View File

@@ -0,0 +1,58 @@
<Window x:Class="BallanceTasEditor.Views.PreferenceDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:BallanceTasEditor.Views"
mc:Ignorable="d" WindowStartupLocation="CenterOwner" WindowStyle="ToolWindow"
Title="Editor Preference" Height="450" Width="400" Icon="/Assets/MenuPreference.ico">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<ScrollViewer Grid.Row="0" VerticalScrollBarVisibility="Visible">
<StackPanel Orientation="Vertical">
<GroupBox Header="Editor Layout" Margin="10" Padding="10">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<RadioButton Content="Horizontal Layout" GroupName="EditorLayout" Grid.Column="0"/>
<RadioButton Content="Vertical Layout" GroupName="EditorLayout" Grid.Column="1"/>
</Grid>
</GroupBox>
<GroupBox Header="Paste Behavior" Margin="10" Padding="10">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<RadioButton Content="Insert Paste" GroupName="PasteBehavior" Grid.Column="0"/>
<RadioButton Content="Overwritten Paste" GroupName="PasteBehavior" Grid.Column="1"/>
</Grid>
</GroupBox>
<GroupBox Header="Frame Count" Margin="10" Padding="10">
<TextBox Padding="3"/>
</GroupBox>
<GroupBox Header="Game Path" Margin="10" Padding="10">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<TextBox IsReadOnly="True" Padding="3" Grid.Column="0"/>
<Button Content="Browse" Margin="5,0,0,0" MinWidth="80" Grid.Column="1"/>
</Grid>
</GroupBox>
</StackPanel>
</ScrollViewer>
<StackPanel Grid.Row="1" HorizontalAlignment="Right" Orientation="Horizontal" Margin="10">
<Button Content="OK" IsDefault="True" Padding="5" Margin="5" MinWidth="80"/>
<Button Content="Cancel" Padding="5" Margin="5" MinWidth="80"/>
</StackPanel>
</Grid>
</Window>

View File

@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace BallanceTasEditor.Views {
/// <summary>
/// Interaction logic for PreferenceDialog.xaml
/// </summary>
public partial class PreferenceDialog : Window {
public PreferenceDialog() {
InitializeComponent();
}
}
}

View File

@@ -0,0 +1,64 @@
<Window x:Class="BallanceTasEditor.Views.SetupCountAndFpsDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:BallanceTasEditor.Views"
mc:Ignorable="d" WindowStartupLocation="CenterOwner" WindowStyle="ToolWindow"
Title="Setup Count and FPS" Height="250" Width="400">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Grid.Row="0" Text="Count" VerticalAlignment="Center"/>
<TextBlock Grid.Column="0" Grid.Row="1" Text="FPS" VerticalAlignment="Center"/>
<TextBlock Grid.Column="0" Grid.Row="2" Text="Delta Time" VerticalAlignment="Center"/>
<TextBox Margin="5" Padding="3" Grid.Row="0" Grid.Column="1" VerticalAlignment="Center"/>
<TextBox Margin="5" Padding="3" Grid.Row="1" Grid.Column="1" VerticalAlignment="Center"/>
<TextBlock Margin="5" Padding="3" Grid.Row="2" Grid.Column="1" VerticalAlignment="Center" Text="N/A"/>
</Grid>
</Grid>
<StackPanel Grid.Row="1" HorizontalAlignment="Right" Orientation="Horizontal" Margin="10">
<Button IsDefault="True" Padding="5" Margin="5" MinWidth="80">
<Button.Content>
<StackPanel Orientation="Horizontal">
<ContentControl Content="{StaticResource IconBtnOk}" Width="24" Height="24"/>
<TextBlock Text="OK" VerticalAlignment="Center"/>
</StackPanel>
</Button.Content>
</Button>
<Button Padding="5" Margin="5" MinWidth="80">
<Button.Content>
<StackPanel Orientation="Horizontal">
<ContentControl Content="{StaticResource IconBtnCancel}" Width="24" Height="24"/>
<TextBlock Text="Cancel" VerticalAlignment="Center"/>
</StackPanel>
</Button.Content>
</Button>
</StackPanel>
</Grid>
</Window>

View File

@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace BallanceTasEditor.Views {
/// <summary>
/// Interaction logic for SetupCountAndFpsDialog.xaml
/// </summary>
public partial class SetupCountAndFpsDialog : Window {
public SetupCountAndFpsDialog() {
InitializeComponent();
}
}
}