Compare commits
34 Commits
main
...
58-migrate
Author | SHA1 | Date | |
---|---|---|---|
6b40c72ffd | |||
9fbd72c148 | |||
b8d66a13a0 | |||
9e46f3054c | |||
123b3bebe3 | |||
0384026b84 | |||
ffda46d8b1 | |||
5180254244 | |||
b01d6842be | |||
1e159efe4b | |||
c4e27d2550 | |||
002c054e11 | |||
e7c690ac1d | |||
371d4e59cf | |||
a638744b43 | |||
6fc441b65b | |||
0de99a095c | |||
6a67e7aff4 | |||
7157386bb7 | |||
0d05658143 | |||
f0b58de4b9 | |||
df997f6cc7 | |||
0e121e718d | |||
08b318b93b | |||
9295b6f5ec | |||
c39be82a59 | |||
8f82bfbd86 | |||
d0e6dd13cd | |||
144267dc9e | |||
9f910f5d49 | |||
ed32764da8 | |||
c9713cb615 | |||
1ee1a268f9 | |||
58b7c37295 |
@ -1,5 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="TaskProjectConfiguration">
|
||||
<server type="Gitlab" url="https://devops.tsommer.org" />
|
||||
</component>
|
||||
<component name="com.jetbrains.rider.android.RiderAndroidMiscFileCreationComponent">
|
||||
<option name="ENSURE_MISC_FILE_EXISTS" value="true" />
|
||||
</component>
|
||||
|
@ -7,7 +7,4 @@
|
||||
<inspection_tool class="SubjectLimit" enabled="true" level="ERROR" enabled_by_default="true" />
|
||||
</profile>
|
||||
</component>
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
|
||||
</component>
|
||||
</project>
|
15
I18N Commander/.run/Editor.run.xml
Normal file
@ -0,0 +1,15 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Editor" type="RunExe" factoryName=".NET Executable">
|
||||
<option name="EXE_PATH" value="/Applications/Godot.app/Contents/MacOS/Godot" />
|
||||
<option name="PROGRAM_PARAMETERS" value="--path "$PROJECT_DIR$/App" --editor" />
|
||||
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="PASS_PARENT_ENVS" value="1" />
|
||||
<option name="USE_EXTERNAL_CONSOLE" value="0" />
|
||||
<option name="USE_MONO" value="0" />
|
||||
<option name="RUNTIME_ARGUMENTS" value="" />
|
||||
<option name="RUNTIME_TYPE" value="coreclr" />
|
||||
<method v="2">
|
||||
<option name="Build Solution" enabled="true" />
|
||||
</method>
|
||||
</configuration>
|
||||
</component>
|
15
I18N Commander/.run/Player.run.xml
Normal file
@ -0,0 +1,15 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Player" type="RunExe" factoryName=".NET Executable">
|
||||
<option name="EXE_PATH" value="/Applications/Godot.app/Contents/MacOS/Godot" />
|
||||
<option name="PROGRAM_PARAMETERS" value="--path "$PROJECT_DIR$/App"" />
|
||||
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="PASS_PARENT_ENVS" value="1" />
|
||||
<option name="USE_EXTERNAL_CONSOLE" value="0" />
|
||||
<option name="USE_MONO" value="0" />
|
||||
<option name="RUNTIME_ARGUMENTS" value="" />
|
||||
<option name="RUNTIME_TYPE" value="coreclr" />
|
||||
<method v="2">
|
||||
<option name="Build Solution" enabled="true" />
|
||||
</method>
|
||||
</configuration>
|
||||
</component>
|
2
I18N Commander/App/.gitattributes
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
# Normalize EOL for all files that Git considers text files.
|
||||
* text=auto eol=lf
|
2
I18N Commander/App/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
# Godot 4+ specific ignores
|
||||
.godot/
|
15
I18N Commander/App/App.csproj
Normal file
@ -0,0 +1,15 @@
|
||||
<Project Sdk="Godot.NET.Sdk/4.2.0">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<EnableDynamicLoading>true</EnableDynamicLoading>
|
||||
<AssemblyName>App</AssemblyName>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Remove="obj\**" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Remove="obj\**" />
|
||||
</ItemGroup>
|
||||
</Project>
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.3 KiB |
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://csxeqym474oxu"
|
||||
path="res://.godot/imported/icons8-language-512.png-f077a2b18c06d1aaad9f9dc30a3a6ad7.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/icons/icons8-language-512.png"
|
||||
dest_files=["res://.godot/imported/icons8-language-512.png-f077a2b18c06d1aaad9f9dc30a3a6ad7.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cp33pga3vuk5k"
|
||||
path="res://.godot/imported/icons8-new-window-512.png-a618aa4884e2d1037cb64d9a2996cda7.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/icons/icons8-new-window-512.png"
|
||||
dest_files=["res://.godot/imported/icons8-new-window-512.png-a618aa4884e2d1037cb64d9a2996cda7.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
1
I18N Commander/App/icon.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg height="128" width="128" xmlns="http://www.w3.org/2000/svg"><rect x="2" y="2" width="124" height="124" rx="14" fill="#363d52" stroke="#212532" stroke-width="4"/><g transform="scale(.101) translate(122 122)"><g fill="#fff"><path d="M105 673v33q407 354 814 0v-33z"/><path fill="#478cbf" d="m105 673 152 14q12 1 15 14l4 67 132 10 8-61q2-11 15-15h162q13 4 15 15l8 61 132-10 4-67q3-13 15-14l152-14V427q30-39 56-81-35-59-83-108-43 20-82 47-40-37-88-64 7-51 8-102-59-28-123-42-26 43-46 89-49-7-98 0-20-46-46-89-64 14-123 42 1 51 8 102-48 27-88 64-39-27-82-47-48 49-83 108 26 42 56 81zm0 33v39c0 276 813 276 813 0v-39l-134 12-5 69q-2 10-14 13l-162 11q-12 0-16-11l-10-65H447l-10 65q-4 11-16 11l-162-11q-12-3-14-13l-5-69z"/><path d="M483 600c3 34 55 34 58 0v-86c-3-34-55-34-58 0z"/><circle cx="725" cy="526" r="90"/><circle cx="299" cy="526" r="90"/></g><g fill="#414042"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></g></svg>
|
After Width: | Height: | Size: 950 B |
37
I18N Commander/App/icon.svg.import
Normal file
@ -0,0 +1,37 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://nydkfoij0mbk"
|
||||
path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://icon.svg"
|
||||
dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
33
I18N Commander/App/project.godot
Normal file
@ -0,0 +1,33 @@
|
||||
; Engine configuration file.
|
||||
; It's best edited using the editor UI and not directly,
|
||||
; since the parameters that go here are not all obvious.
|
||||
;
|
||||
; Format:
|
||||
; [section] ; section goes between []
|
||||
; param=value ; assign values to parameters
|
||||
|
||||
config_version=5
|
||||
|
||||
[application]
|
||||
|
||||
config/name="I18N Commander"
|
||||
run/main_scene="res://scenes/loading_screen.tscn"
|
||||
config/features=PackedStringArray("4.2", "C#", "GL Compatibility")
|
||||
run/low_processor_mode=true
|
||||
config/icon="res://icon.svg"
|
||||
|
||||
[display]
|
||||
|
||||
window/size/initial_position_type=3
|
||||
window/stretch/aspect="ignore"
|
||||
window/ios/hide_home_indicator=false
|
||||
window/ios/hide_status_bar=false
|
||||
|
||||
[dotnet]
|
||||
|
||||
project/assembly_name="App"
|
||||
|
||||
[rendering]
|
||||
|
||||
renderer/rendering_method="gl_compatibility"
|
||||
renderer/rendering_method.mobile="gl_compatibility"
|
27
I18N Commander/App/scenes/BtnIcon.cs
Normal file
@ -0,0 +1,27 @@
|
||||
using Godot;
|
||||
|
||||
namespace App.scenes;
|
||||
|
||||
public partial class BtnIcon : Control
|
||||
{
|
||||
[Export]
|
||||
[ExportGroup("Data")]
|
||||
public string Text { get; set; } = string.Empty;
|
||||
|
||||
[Export]
|
||||
[ExportGroup("Data")]
|
||||
public Texture2D Icon { get; set; }
|
||||
|
||||
#region Overrides of Node
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
var button = this.GetNode<Button>("%btn");
|
||||
button.Text = this.Text;
|
||||
button.Icon = this.Icon;
|
||||
|
||||
base._Ready();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
14
I18N Commander/App/scenes/BtnIcon.tscn
Normal file
@ -0,0 +1,14 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://d0x0yv7nevod7"]
|
||||
|
||||
[ext_resource type="Script" path="res://scenes/BtnIcon.cs" id="1_b787p"]
|
||||
|
||||
[node name="btn_icon" type="MarginContainer"]
|
||||
theme_override_constants/margin_left = 6
|
||||
theme_override_constants/margin_top = 6
|
||||
theme_override_constants/margin_right = 6
|
||||
theme_override_constants/margin_bottom = 6
|
||||
script = ExtResource("1_b787p")
|
||||
|
||||
[node name="btn" type="Button" parent="."]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
68
I18N Commander/App/scenes/loading_screen.tscn
Normal file
@ -0,0 +1,68 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://qm7ovimcfc3h"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://csxeqym474oxu" path="res://assets/icons/icons8-language-512.png" id="1_1ya62"]
|
||||
[ext_resource type="PackedScene" uid="uid://d0x0yv7nevod7" path="res://scenes/BtnIcon.tscn" id="2_gp72s"]
|
||||
[ext_resource type="Texture2D" uid="uid://cp33pga3vuk5k" path="res://assets/icons/icons8-new-window-512.png" id="3_4v5hm"]
|
||||
[ext_resource type="Theme" uid="uid://uqhultm05f5a" path="res://theme/ui_theme_dark.tres" id="3_7idnl"]
|
||||
|
||||
[node name="frame" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme = ExtResource("3_7idnl")
|
||||
|
||||
[node name="center" type="CenterContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -152.0
|
||||
offset_top = -51.5
|
||||
offset_right = 152.0
|
||||
offset_bottom = 51.5
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="vbox" type="VBoxContainer" parent="center"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="hboxHeader" type="HBoxContainer" parent="center/vbox"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="iconMargin" type="MarginContainer" parent="center/vbox/hboxHeader"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/margin_left = 6
|
||||
theme_override_constants/margin_top = 6
|
||||
theme_override_constants/margin_right = 6
|
||||
theme_override_constants/margin_bottom = 6
|
||||
|
||||
[node name="icon" type="TextureRect" parent="center/vbox/hboxHeader/iconMargin"]
|
||||
layout_mode = 2
|
||||
texture = ExtResource("1_1ya62")
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="header" type="Label" parent="center/vbox/hboxHeader"]
|
||||
custom_minimum_size = Vector2(300, 2.08165e-12)
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 36
|
||||
text = "I18N Commander"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
autowrap_mode = 2
|
||||
|
||||
[node name="hboxButtons" type="HBoxContainer" parent="center/vbox"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="btn_icon" parent="center/vbox/hboxButtons" instance=ExtResource("2_gp72s")]
|
||||
layout_mode = 2
|
||||
Text = "Create Project"
|
||||
Icon = ExtResource("3_4v5hm")
|
||||
|
||||
[node name="btnRecentProjects" type="OptionButton" parent="center/vbox/hboxButtons"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
141
I18N Commander/App/theme/Test UI.tscn
Normal file
@ -0,0 +1,141 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://q3mnarw6b66l"]
|
||||
|
||||
[ext_resource type="Theme" uid="uid://uqhultm05f5a" path="res://theme/ui_theme_dark.tres" id="1_x217b"]
|
||||
|
||||
[node name="Main" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme = ExtResource("1_x217b")
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/MarginContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/MarginContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Button" type="Button" parent="VBoxContainer/MarginContainer/VBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Create Unit"
|
||||
|
||||
[node name="Button2" type="Button" parent="VBoxContainer/MarginContainer/VBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Delete"
|
||||
|
||||
[node name="CheckButton" type="CheckButton" parent="VBoxContainer/MarginContainer/VBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="CheckButton2" type="CheckButton" parent="VBoxContainer/MarginContainer/VBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Auto Save"
|
||||
|
||||
[node name="OptionButton" type="OptionButton" parent="VBoxContainer/MarginContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
item_count = 3
|
||||
popup/item_0/text = "Option 1"
|
||||
popup/item_0/id = 0
|
||||
popup/item_1/text = "Option 2"
|
||||
popup/item_1/id = 1
|
||||
popup/item_1/disabled = true
|
||||
popup/item_2/text = "Option 3"
|
||||
popup/item_2/id = 2
|
||||
|
||||
[node name="MenuButton" type="MenuButton" parent="VBoxContainer/MarginContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
toggle_mode = false
|
||||
text = "Mein Menü"
|
||||
alignment = 0
|
||||
item_count = 5
|
||||
popup/item_0/text = "Option 1"
|
||||
popup/item_0/id = 0
|
||||
popup/item_1/text = "Option 2"
|
||||
popup/item_1/id = 1
|
||||
popup/item_2/text = "Option 3"
|
||||
popup/item_2/id = 2
|
||||
popup/item_3/text = "Settings"
|
||||
popup/item_3/id = 4
|
||||
popup/item_3/separator = true
|
||||
popup/item_4/text = "Auto Save"
|
||||
popup/item_4/checkable = 1
|
||||
popup/item_4/id = 3
|
||||
|
||||
[node name="MarginContainer2" type="MarginContainer" parent="VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="TabContainer" type="TabContainer" parent="VBoxContainer/MarginContainer2"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Tab1" type="TabBar" parent="VBoxContainer/MarginContainer2/TabContainer"]
|
||||
layout_mode = 2
|
||||
clip_tabs = false
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/MarginContainer2/TabContainer/Tab1"]
|
||||
layout_mode = 0
|
||||
offset_right = 132.0
|
||||
offset_bottom = 101.0
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/MarginContainer2/TabContainer/Tab1/MarginContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Button" type="Button" parent="VBoxContainer/MarginContainer2/TabContainer/Tab1/MarginContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Load"
|
||||
|
||||
[node name="Button2" type="Button" parent="VBoxContainer/MarginContainer2/TabContainer/Tab1/MarginContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Store"
|
||||
|
||||
[node name="Tab2" type="TabBar" parent="VBoxContainer/MarginContainer2/TabContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
clip_tabs = false
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/MarginContainer2/TabContainer/Tab2"]
|
||||
layout_mode = 0
|
||||
offset_right = 24.0
|
||||
offset_bottom = 24.0
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/MarginContainer2/TabContainer/Tab2/MarginContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Button" type="Button" parent="VBoxContainer/MarginContainer2/TabContainer/Tab2/MarginContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "STart"
|
||||
|
||||
[node name="Button2" type="Button" parent="VBoxContainer/MarginContainer2/TabContainer/Tab2/MarginContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Stop"
|
||||
|
||||
[node name="TabBar" type="TabBar" parent="VBoxContainer/MarginContainer2/TabContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
clip_tabs = false
|
||||
|
||||
[node name="TabBar2" type="TabBar" parent="VBoxContainer/MarginContainer2/TabContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
clip_tabs = false
|
||||
|
||||
[node name="TabBar3" type="TabBar" parent="VBoxContainer/MarginContainer2/TabContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
clip_tabs = false
|
||||
|
||||
[node name="TabBar4" type="TabBar" parent="VBoxContainer/MarginContainer2/TabContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
clip_tabs = false
|
21
I18N Commander/App/theme/btn/d_style_box_flat_focus.tres
Normal file
@ -0,0 +1,21 @@
|
||||
[gd_resource type="StyleBoxFlat" format=3 uid="uid://chaurklijlgu7"]
|
||||
|
||||
[resource]
|
||||
content_margin_left = 16.0
|
||||
content_margin_top = 16.0
|
||||
content_margin_right = 16.0
|
||||
content_margin_bottom = 16.0
|
||||
bg_color = Color(0.309804, 0.309804, 0.309804, 1)
|
||||
skew = Vector2(2.08165e-12, 2.08165e-12)
|
||||
border_width_left = 4
|
||||
border_width_top = 4
|
||||
border_width_right = 4
|
||||
border_width_bottom = 4
|
||||
border_color = Color(0.0509804, 0.0509804, 0.0509804, 1)
|
||||
border_blend = true
|
||||
corner_radius_top_left = 6
|
||||
corner_radius_top_right = 6
|
||||
corner_radius_bottom_right = 6
|
||||
corner_radius_bottom_left = 6
|
||||
shadow_size = 2
|
||||
shadow_offset = Vector2(1, 1)
|
21
I18N Commander/App/theme/btn/d_style_box_flat_hover.tres
Normal file
@ -0,0 +1,21 @@
|
||||
[gd_resource type="StyleBoxFlat" format=3 uid="uid://l1tjpnljc6c1"]
|
||||
|
||||
[resource]
|
||||
content_margin_left = 16.0
|
||||
content_margin_top = 16.0
|
||||
content_margin_right = 16.0
|
||||
content_margin_bottom = 16.0
|
||||
bg_color = Color(0.309804, 0.309804, 0.309804, 1)
|
||||
skew = Vector2(2.08165e-12, 2.08165e-12)
|
||||
border_width_left = 3
|
||||
border_width_top = 3
|
||||
border_width_right = 3
|
||||
border_width_bottom = 3
|
||||
border_color = Color(0.0509804, 0.0509804, 0.0509804, 1)
|
||||
border_blend = true
|
||||
corner_radius_top_left = 6
|
||||
corner_radius_top_right = 6
|
||||
corner_radius_bottom_right = 6
|
||||
corner_radius_bottom_left = 6
|
||||
shadow_size = 2
|
||||
shadow_offset = Vector2(1, 1)
|
19
I18N Commander/App/theme/btn/d_style_box_flat_norm.tres
Normal file
@ -0,0 +1,19 @@
|
||||
[gd_resource type="StyleBoxFlat" format=3 uid="uid://tj810ebe65el"]
|
||||
|
||||
[resource]
|
||||
content_margin_left = 16.0
|
||||
content_margin_top = 16.0
|
||||
content_margin_right = 16.0
|
||||
content_margin_bottom = 16.0
|
||||
bg_color = Color(0.239216, 0.239216, 0.239216, 1)
|
||||
skew = Vector2(2.08165e-12, 2.08165e-12)
|
||||
border_width_left = 2
|
||||
border_width_top = 2
|
||||
border_width_right = 2
|
||||
border_width_bottom = 2
|
||||
border_color = Color(0, 0, 0, 1)
|
||||
border_blend = true
|
||||
corner_radius_top_left = 6
|
||||
corner_radius_top_right = 6
|
||||
corner_radius_bottom_right = 6
|
||||
corner_radius_bottom_left = 6
|
21
I18N Commander/App/theme/btn/d_style_box_flat_press.tres
Normal file
@ -0,0 +1,21 @@
|
||||
[gd_resource type="StyleBoxFlat" format=3 uid="uid://he0mxms4j1q7"]
|
||||
|
||||
[resource]
|
||||
content_margin_left = 16.0
|
||||
content_margin_top = 16.0
|
||||
content_margin_right = 16.0
|
||||
content_margin_bottom = 16.0
|
||||
bg_color = Color(0.4, 0.4, 0.4, 1)
|
||||
skew = Vector2(2.08165e-12, 2.08165e-12)
|
||||
border_width_left = 3
|
||||
border_width_top = 3
|
||||
border_width_right = 3
|
||||
border_width_bottom = 3
|
||||
border_color = Color(0.380392, 0.380392, 0.380392, 1)
|
||||
border_blend = true
|
||||
corner_radius_top_left = 6
|
||||
corner_radius_top_right = 6
|
||||
corner_radius_bottom_right = 6
|
||||
corner_radius_bottom_left = 6
|
||||
shadow_size = 2
|
||||
shadow_offset = Vector2(1, 1)
|
17
I18N Commander/App/theme/btn/l_style_box_flat_hover.tres
Normal file
@ -0,0 +1,17 @@
|
||||
[gd_resource type="StyleBoxFlat" format=3 uid="uid://d0s01k14o6kda"]
|
||||
|
||||
[resource]
|
||||
content_margin_left = 16.0
|
||||
content_margin_top = 16.0
|
||||
content_margin_right = 16.0
|
||||
content_margin_bottom = 16.0
|
||||
bg_color = Color(0.980392, 0.980392, 0.980392, 1)
|
||||
border_width_left = 3
|
||||
border_width_top = 3
|
||||
border_width_right = 3
|
||||
border_width_bottom = 3
|
||||
border_color = Color(0.129412, 0.129412, 0.129412, 1)
|
||||
corner_radius_top_left = 6
|
||||
corner_radius_top_right = 6
|
||||
corner_radius_bottom_right = 6
|
||||
corner_radius_bottom_left = 6
|
17
I18N Commander/App/theme/btn/l_style_box_flat_norm.tres
Normal file
@ -0,0 +1,17 @@
|
||||
[gd_resource type="StyleBoxFlat" format=3 uid="uid://cilpphe2p81om"]
|
||||
|
||||
[resource]
|
||||
content_margin_left = 16.0
|
||||
content_margin_top = 16.0
|
||||
content_margin_right = 16.0
|
||||
content_margin_bottom = 16.0
|
||||
bg_color = Color(0.980392, 0.980392, 0.980392, 1)
|
||||
border_width_left = 3
|
||||
border_width_top = 3
|
||||
border_width_right = 3
|
||||
border_width_bottom = 3
|
||||
border_color = Color(0.129412, 0.129412, 0.129412, 1)
|
||||
corner_radius_top_left = 6
|
||||
corner_radius_top_right = 6
|
||||
corner_radius_bottom_right = 6
|
||||
corner_radius_bottom_left = 6
|
17
I18N Commander/App/theme/btn/l_style_box_flat_press.tres
Normal file
@ -0,0 +1,17 @@
|
||||
[gd_resource type="StyleBoxFlat" format=3 uid="uid://dv2hxit6cs1cx"]
|
||||
|
||||
[resource]
|
||||
content_margin_left = 16.0
|
||||
content_margin_top = 16.0
|
||||
content_margin_right = 16.0
|
||||
content_margin_bottom = 16.0
|
||||
bg_color = Color(0.878431, 0.878431, 0.878431, 1)
|
||||
border_width_left = 5
|
||||
border_width_top = 5
|
||||
border_width_right = 5
|
||||
border_width_bottom = 5
|
||||
border_color = Color(0.129412, 0.129412, 0.129412, 1)
|
||||
corner_radius_top_left = 6
|
||||
corner_radius_top_right = 6
|
||||
corner_radius_bottom_right = 6
|
||||
corner_radius_bottom_left = 6
|
3
I18N Commander/App/theme/checkBtn/style_box_empty.tres
Normal file
@ -0,0 +1,3 @@
|
||||
[gd_resource type="StyleBoxEmpty" format=3 uid="uid://batay7mp6vfon"]
|
||||
|
||||
[resource]
|
3
I18N Commander/App/theme/checkbox/style_box_empty.tres
Normal file
@ -0,0 +1,3 @@
|
||||
[gd_resource type="StyleBoxEmpty" format=3 uid="uid://bgka0t482q0dh"]
|
||||
|
||||
[resource]
|
4
I18N Commander/App/theme/panel/d_style_box_flat.tres
Normal file
@ -0,0 +1,4 @@
|
||||
[gd_resource type="StyleBoxFlat" format=3 uid="uid://cens6ndafk28w"]
|
||||
|
||||
[resource]
|
||||
bg_color = Color(0.160784, 0.160784, 0.160784, 1)
|
4
I18N Commander/App/theme/panel/l_style_box_flat.tres
Normal file
@ -0,0 +1,4 @@
|
||||
[gd_resource type="StyleBoxFlat" format=3 uid="uid://b2nkgvg40j6tc"]
|
||||
|
||||
[resource]
|
||||
bg_color = Color(0.780392, 0.780392, 0.780392, 1)
|
@ -0,0 +1,4 @@
|
||||
[gd_resource type="StyleBoxFlat" format=3 uid="uid://bumfybajbkybi"]
|
||||
|
||||
[resource]
|
||||
bg_color = Color(0.2, 0.2, 0.2, 1)
|
13
I18N Commander/App/theme/tabs/tab_hover_style_box_flat.tres
Normal file
@ -0,0 +1,13 @@
|
||||
[gd_resource type="StyleBoxFlat" format=3 uid="uid://cv1sqjb5pjrov"]
|
||||
|
||||
[resource]
|
||||
content_margin_left = 48.0
|
||||
content_margin_top = 48.0
|
||||
content_margin_right = 48.0
|
||||
content_margin_bottom = 48.0
|
||||
bg_color = Color(0.39, 0.39, 0.39, 1)
|
||||
border_width_left = 6
|
||||
border_width_top = 12
|
||||
border_width_right = 6
|
||||
border_width_bottom = 12
|
||||
border_color = Color(0.2, 0.2, 0.2, 1)
|
@ -0,0 +1,13 @@
|
||||
[gd_resource type="StyleBoxFlat" format=3 uid="uid://b8v8084ty86la"]
|
||||
|
||||
[resource]
|
||||
content_margin_left = 48.0
|
||||
content_margin_top = 48.0
|
||||
content_margin_right = 48.0
|
||||
content_margin_bottom = 48.0
|
||||
bg_color = Color(0.239216, 0.239216, 0.239216, 1)
|
||||
border_width_left = 6
|
||||
border_width_top = 12
|
||||
border_width_right = 6
|
||||
border_width_bottom = 12
|
||||
border_color = Color(0.2, 0.2, 0.2, 1)
|
@ -0,0 +1,13 @@
|
||||
[gd_resource type="StyleBoxFlat" format=3 uid="uid://dp37edlumlbaj"]
|
||||
|
||||
[resource]
|
||||
content_margin_left = 48.0
|
||||
content_margin_top = 48.0
|
||||
content_margin_right = 48.0
|
||||
content_margin_bottom = 48.0
|
||||
bg_color = Color(0.160784, 0.160784, 0.160784, 1)
|
||||
border_width_left = 6
|
||||
border_width_top = 12
|
||||
border_width_right = 6
|
||||
border_width_bottom = 12
|
||||
border_color = Color(0.2, 0.2, 0.2, 1)
|
63
I18N Commander/App/theme/ui_theme_dark.tres
Normal file
@ -0,0 +1,63 @@
|
||||
[gd_resource type="Theme" load_steps=12 format=3 uid="uid://uqhultm05f5a"]
|
||||
|
||||
[ext_resource type="StyleBox" uid="uid://chaurklijlgu7" path="res://theme/btn/d_style_box_flat_focus.tres" id="1_uspte"]
|
||||
[ext_resource type="StyleBox" uid="uid://l1tjpnljc6c1" path="res://theme/btn/d_style_box_flat_hover.tres" id="2_pm5yo"]
|
||||
[ext_resource type="StyleBox" uid="uid://tj810ebe65el" path="res://theme/btn/d_style_box_flat_norm.tres" id="3_p1mf5"]
|
||||
[ext_resource type="StyleBox" uid="uid://he0mxms4j1q7" path="res://theme/btn/d_style_box_flat_press.tres" id="4_a7p74"]
|
||||
[ext_resource type="StyleBox" uid="uid://bgka0t482q0dh" path="res://theme/checkbox/style_box_empty.tres" id="5_1ugrl"]
|
||||
[ext_resource type="StyleBox" uid="uid://batay7mp6vfon" path="res://theme/checkBtn/style_box_empty.tres" id="6_i1h00"]
|
||||
[ext_resource type="StyleBox" uid="uid://cens6ndafk28w" path="res://theme/panel/d_style_box_flat.tres" id="7_3s8mj"]
|
||||
[ext_resource type="StyleBox" uid="uid://dp37edlumlbaj" path="res://theme/tabs/tab_selected_style_box_flat.tres" id="8_4hym3"]
|
||||
[ext_resource type="StyleBox" uid="uid://b8v8084ty86la" path="res://theme/tabs/tab_not_used_style_box_flat.tres" id="8_5xc56"]
|
||||
[ext_resource type="StyleBox" uid="uid://bumfybajbkybi" path="res://theme/tabs/background_style_box_flat.tres" id="8_l6mbx"]
|
||||
[ext_resource type="StyleBox" uid="uid://cv1sqjb5pjrov" path="res://theme/tabs/tab_hover_style_box_flat.tres" id="9_5ci7o"]
|
||||
|
||||
[resource]
|
||||
Button/constants/h_separation = 6
|
||||
Button/font_sizes/font_size = 32
|
||||
Button/styles/focus = ExtResource("1_uspte")
|
||||
Button/styles/hover = ExtResource("2_pm5yo")
|
||||
Button/styles/normal = ExtResource("3_p1mf5")
|
||||
Button/styles/pressed = ExtResource("4_a7p74")
|
||||
CheckBox/constants/h_separation = 16
|
||||
CheckBox/font_sizes/font_size = 32
|
||||
CheckBox/styles/disabled = ExtResource("5_1ugrl")
|
||||
CheckBox/styles/focus = ExtResource("5_1ugrl")
|
||||
CheckBox/styles/hover = ExtResource("5_1ugrl")
|
||||
CheckBox/styles/hover_pressed = ExtResource("5_1ugrl")
|
||||
CheckBox/styles/normal = ExtResource("5_1ugrl")
|
||||
CheckBox/styles/pressed = ExtResource("5_1ugrl")
|
||||
CheckButton/font_sizes/font_size = 32
|
||||
CheckButton/styles/focus = ExtResource("6_i1h00")
|
||||
CheckButton/styles/hover = ExtResource("6_i1h00")
|
||||
CheckButton/styles/hover_pressed = ExtResource("6_i1h00")
|
||||
CheckButton/styles/normal = ExtResource("6_i1h00")
|
||||
CheckButton/styles/pressed = ExtResource("6_i1h00")
|
||||
Label/font_sizes/font_size = 32
|
||||
LineEdit/font_sizes/font_size = 32
|
||||
MarginContainer/constants/margin_bottom = 12
|
||||
MarginContainer/constants/margin_left = 12
|
||||
MarginContainer/constants/margin_right = 12
|
||||
MarginContainer/constants/margin_top = 12
|
||||
Panel/styles/panel = ExtResource("7_3s8mj")
|
||||
PopupMenu/font_sizes/font_separator_size = 32
|
||||
PopupMenu/font_sizes/font_size = 32
|
||||
TabBar/font_sizes/font_size = 32
|
||||
TabContainer/font_sizes/font_size = 32
|
||||
TabContainer/styles/tab_focus = ExtResource("8_4hym3")
|
||||
TabContainer/styles/tab_hovered = ExtResource("9_5ci7o")
|
||||
TabContainer/styles/tab_selected = ExtResource("8_4hym3")
|
||||
TabContainer/styles/tab_unselected = ExtResource("8_5xc56")
|
||||
TabContainer/styles/tabbar_background = ExtResource("8_l6mbx")
|
||||
TextEdit/font_sizes/font_size = 32
|
||||
Tree/constants/children_hl_line_width = 4
|
||||
Tree/constants/draw_guides = 0
|
||||
Tree/constants/draw_relationship_lines = 1
|
||||
Tree/constants/h_separation = 12
|
||||
Tree/constants/inner_item_margin_left = 12
|
||||
Tree/constants/parent_hl_line_width = 4
|
||||
Tree/constants/relationship_line_width = 4
|
||||
Tree/constants/scrollbar_h_separation = 12
|
||||
Tree/constants/v_separation = 8
|
||||
Tree/font_sizes/font_size = 32
|
||||
Tree/font_sizes/title_button_font_size = 32
|
34
I18N Commander/App/theme/ui_theme_light.tres
Normal file
@ -0,0 +1,34 @@
|
||||
[gd_resource type="Theme" load_steps=5 format=3 uid="uid://w3bmkb0q753m"]
|
||||
|
||||
[ext_resource type="StyleBox" uid="uid://cilpphe2p81om" path="res://theme/btn/l_style_box_flat_norm.tres" id="1_21txx"]
|
||||
[ext_resource type="StyleBox" uid="uid://b2nkgvg40j6tc" path="res://theme/panel/l_style_box_flat.tres" id="1_87qhj"]
|
||||
[ext_resource type="StyleBox" uid="uid://d0s01k14o6kda" path="res://theme/btn/l_style_box_flat_hover.tres" id="1_apys2"]
|
||||
[ext_resource type="StyleBox" uid="uid://dv2hxit6cs1cx" path="res://theme/btn/l_style_box_flat_press.tres" id="3_cpdnc"]
|
||||
|
||||
[resource]
|
||||
Button/colors/font_color = Color(0.160784, 0.160784, 0.160784, 1)
|
||||
Button/colors/font_focus_color = Color(0.160784, 0.160784, 0.160784, 1)
|
||||
Button/colors/font_hover_color = Color(0.160784, 0.160784, 0.160784, 1)
|
||||
Button/colors/font_hover_pressed_color = Color(0.160784, 0.160784, 0.160784, 1)
|
||||
Button/colors/font_pressed_color = Color(0.160784, 0.160784, 0.160784, 1)
|
||||
Button/colors/icon_disabled_color = Color(0.160784, 0.160784, 0.160784, 1)
|
||||
Button/constants/h_separation = 6
|
||||
Button/font_sizes/font_size = 32
|
||||
Button/styles/hover = ExtResource("1_apys2")
|
||||
Button/styles/normal = ExtResource("1_21txx")
|
||||
Button/styles/pressed = ExtResource("3_cpdnc")
|
||||
CheckBox/constants/h_separation = 16
|
||||
CheckBox/font_sizes/font_size = 32
|
||||
CheckButton/font_sizes/font_size = 32
|
||||
Label/font_sizes/font_size = 32
|
||||
LineEdit/font_sizes/font_size = 32
|
||||
MarginContainer/constants/margin_bottom = 12
|
||||
MarginContainer/constants/margin_left = 12
|
||||
MarginContainer/constants/margin_right = 12
|
||||
MarginContainer/constants/margin_top = 12
|
||||
Panel/styles/panel = ExtResource("1_87qhj")
|
||||
PopupMenu/font_sizes/font_separator_size = 32
|
||||
PopupMenu/font_sizes/font_size = 32
|
||||
TabBar/font_sizes/font_size = 32
|
||||
TabContainer/font_sizes/font_size = 32
|
||||
TextEdit/font_sizes/font_size = 32
|
@ -2,7 +2,7 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Library</OutputType>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<LangVersion>default</LangVersion>
|
||||
|
@ -5,11 +5,9 @@ VisualStudioVersion = 17.3.32519.111
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Processor", "Processor\Processor.csproj", "{E24B7026-05BE-434D-9481-7CA5785BC7A8}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UI WinForms", "UI WinForms\UI WinForms.csproj", "{5AE84E7C-3141-46CA-B390-4E42878B6195}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DataModel", "DataModel\DataModel.csproj", "{D18DD193-3F93-4D21-92DC-BA0E26B0342A}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UI MAUI", "UI MAUI\UI MAUI.csproj", "{BA8BE958-0DCC-4054-B731-DF911AECC429}"
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "App", "App\App.csproj", "{CA2AB6BD-472A-4906-BF5A-84263EF345B6}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
@ -21,20 +19,14 @@ Global
|
||||
{E24B7026-05BE-434D-9481-7CA5785BC7A8}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{E24B7026-05BE-434D-9481-7CA5785BC7A8}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E24B7026-05BE-434D-9481-7CA5785BC7A8}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{5AE84E7C-3141-46CA-B390-4E42878B6195}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{5AE84E7C-3141-46CA-B390-4E42878B6195}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{5AE84E7C-3141-46CA-B390-4E42878B6195}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{5AE84E7C-3141-46CA-B390-4E42878B6195}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{D18DD193-3F93-4D21-92DC-BA0E26B0342A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{D18DD193-3F93-4D21-92DC-BA0E26B0342A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{D18DD193-3F93-4D21-92DC-BA0E26B0342A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{D18DD193-3F93-4D21-92DC-BA0E26B0342A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{BA8BE958-0DCC-4054-B731-DF911AECC429}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{BA8BE958-0DCC-4054-B731-DF911AECC429}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{BA8BE958-0DCC-4054-B731-DF911AECC429}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
||||
{BA8BE958-0DCC-4054-B731-DF911AECC429}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{BA8BE958-0DCC-4054-B731-DF911AECC429}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{BA8BE958-0DCC-4054-B731-DF911AECC429}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
||||
{CA2AB6BD-472A-4906-BF5A-84263EF345B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{CA2AB6BD-472A-4906-BF5A-84263EF345B6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{CA2AB6BD-472A-4906-BF5A-84263EF345B6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{CA2AB6BD-472A-4906-BF5A-84263EF345B6}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<LangVersion>default</LangVersion>
|
||||
|
@ -1,26 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<Application xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:local="clr-namespace:UI_MAUI"
|
||||
x:Class="UI_MAUI.App">
|
||||
<Application.Resources>
|
||||
<ResourceDictionary>
|
||||
|
||||
<Color x:Key="PageBackgroundColor">#512bdf</Color>
|
||||
<Color x:Key="PrimaryTextColor">White</Color>
|
||||
|
||||
<Style TargetType="Label">
|
||||
<Setter Property="TextColor" Value="{DynamicResource PrimaryTextColor}" />
|
||||
<Setter Property="FontFamily" Value="OpenSansRegular" />
|
||||
</Style>
|
||||
|
||||
<Style TargetType="Button">
|
||||
<Setter Property="TextColor" Value="{DynamicResource PrimaryTextColor}" />
|
||||
<Setter Property="FontFamily" Value="OpenSansRegular" />
|
||||
<Setter Property="BackgroundColor" Value="#2b0b98" />
|
||||
<Setter Property="Padding" Value="14,10" />
|
||||
</Style>
|
||||
|
||||
</ResourceDictionary>
|
||||
</Application.Resources>
|
||||
</Application>
|
@ -1,10 +0,0 @@
|
||||
namespace UI_MAUI;
|
||||
|
||||
public partial class App : Application
|
||||
{
|
||||
public App()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
this.MainPage = new MainPage();
|
||||
}
|
||||
}
|
@ -1,17 +0,0 @@
|
||||
<div class="offcanvas offcanvas-bottom" tabindex="-1" id="@this.Name" aria-labelledby="@this.Name-Header" style="@this.AssistantHeight">
|
||||
<div class="offcanvas-header">
|
||||
<h4 class="offcanvas-title d-flex align-items-center" id="@this.Name-Header">
|
||||
@if (this.IsIconAvailable)
|
||||
{
|
||||
<Icon Filename="@this.IconName" Size="35" Classes="me-2" AltText="@this.HeaderIconAltText"/>
|
||||
}
|
||||
@this.HeaderText
|
||||
</h4>
|
||||
<button class="btn btn-secondary" type="button" data-bs-toggle="offcanvas" data-bs-target="#@this.Name">
|
||||
Cancel
|
||||
</button>
|
||||
</div>
|
||||
<div class="offcanvas-body">
|
||||
@this.ChildContent
|
||||
</div>
|
||||
</div>
|
@ -1,32 +0,0 @@
|
||||
using Microsoft.AspNetCore.Components;
|
||||
|
||||
namespace UI_MAUI.Components;
|
||||
|
||||
public partial class Assistant : ComponentBase
|
||||
{
|
||||
[Parameter]
|
||||
public string HeaderText { get; set; } = string.Empty;
|
||||
|
||||
[Parameter]
|
||||
public string Name { get; set; } = "Assistant";
|
||||
|
||||
[Parameter]
|
||||
public string IconName { get; set; } = string.Empty;
|
||||
|
||||
[Parameter]
|
||||
public Height BaseHeight { get; set; } = new(60, 40, 50);
|
||||
|
||||
public readonly record struct Height(int Phone, int Desktop, int Tablet);
|
||||
|
||||
[Parameter]
|
||||
public RenderFragment ChildContent { get; set; }
|
||||
|
||||
private string AssistantHeight =>
|
||||
DeviceInfo.Idiom == DeviceIdiom.Phone ? $"--bs-offcanvas-height: {this.BaseHeight.Phone}vh;" :
|
||||
DeviceInfo.Idiom == DeviceIdiom.Tablet ? $"--bs-offcanvas-height: {this.BaseHeight.Tablet}vh;" :
|
||||
$"--bs-offcanvas-height: {this.BaseHeight.Desktop}vh;";
|
||||
|
||||
private string HeaderIconAltText => $"Icon: {this.HeaderText}";
|
||||
|
||||
private bool IsIconAvailable => !string.IsNullOrWhiteSpace(this.IconName);
|
||||
}
|
@ -1 +0,0 @@
|
||||
<img src="icons/@this.Filename" class="d-inline-block @this.Classes" width="@this.Size" height="@this.Size" alt="@this.AltText" />
|
@ -1,18 +0,0 @@
|
||||
using Microsoft.AspNetCore.Components;
|
||||
|
||||
namespace UI_MAUI.Components;
|
||||
|
||||
public partial class Icon : ComponentBase
|
||||
{
|
||||
[Parameter]
|
||||
public string Filename { get; set; } = string.Empty;
|
||||
|
||||
[Parameter]
|
||||
public string AltText { get; set; } = string.Empty;
|
||||
|
||||
[Parameter]
|
||||
public ushort Size { get; set; } = 35;
|
||||
|
||||
[Parameter]
|
||||
public string Classes { get; set; } = string.Empty;
|
||||
}
|
@ -1,22 +0,0 @@
|
||||
<li class="nav-item">
|
||||
@if (DeviceInfo.Idiom == DeviceIdiom.Desktop || DeviceInfo.Idiom == DeviceIdiom.Tablet)
|
||||
{
|
||||
<a class="nav-link active" aria-current="page" href="@this.Route">
|
||||
@if (this.ShowIcon)
|
||||
{
|
||||
<Icon Filename="@this.IconFilename" Size="25" AltText="@this.AltText" />
|
||||
}
|
||||
<span class="ms-1 align-middle">@this.Text</span>
|
||||
</a>
|
||||
}
|
||||
else
|
||||
{
|
||||
<a class="nav-link active" aria-current="page" href="@this.Route" @onclick="@this.Navigate" data-bs-toggle="collapse" data-bs-target="#navbarContent">
|
||||
@if (this.ShowIcon)
|
||||
{
|
||||
<Icon Filename="@this.IconFilename" Size="25" AltText="@this.AltText" />
|
||||
}
|
||||
<span class="ms-1 align-middle">@this.Text</span>
|
||||
</a>
|
||||
}
|
||||
</li>
|
@ -1,25 +0,0 @@
|
||||
using Microsoft.AspNetCore.Components;
|
||||
|
||||
namespace UI_MAUI.Components;
|
||||
|
||||
public partial class NavItem : ComponentBase
|
||||
{
|
||||
[Parameter]
|
||||
public string Route { get; set; }
|
||||
|
||||
[Parameter]
|
||||
public string Text { get; set; }
|
||||
|
||||
[Parameter]
|
||||
public bool ShowIcon { get; set; } = false;
|
||||
|
||||
[Parameter]
|
||||
public string IconFilename { get; set; } = string.Empty;
|
||||
|
||||
[Inject]
|
||||
public NavigationManager NavigationManager { get; set; }
|
||||
|
||||
private string AltText => $"Navigation: {this.Text}";
|
||||
|
||||
private void Navigate() => this.NavigationManager.NavigateTo(this.Route);
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
<Router AppAssembly="@typeof(Main).Assembly">
|
||||
<Found Context="routeData">
|
||||
<RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
|
||||
<FocusOnNavigate RouteData="@routeData" Selector="h1" />
|
||||
</Found>
|
||||
<NotFound>
|
||||
<LayoutView Layout="@typeof(MainLayout)">
|
||||
<p role="alert">Sorry, there's nothing at this address.</p>
|
||||
</LayoutView>
|
||||
</NotFound>
|
||||
</Router>
|
@ -1,14 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:local="clr-namespace:UI_MAUI"
|
||||
x:Class="UI_MAUI.MainPage"
|
||||
BackgroundColor="{DynamicResource PageBackgroundColor}">
|
||||
|
||||
<BlazorWebView HostPage="wwwroot/index.html">
|
||||
<BlazorWebView.RootComponents>
|
||||
<RootComponent Selector="#app" ComponentType="{x:Type local:Main}" />
|
||||
</BlazorWebView.RootComponents>
|
||||
</BlazorWebView>
|
||||
|
||||
</ContentPage>
|
@ -1,9 +0,0 @@
|
||||
namespace UI_MAUI;
|
||||
|
||||
public partial class MainPage : ContentPage
|
||||
{
|
||||
public MainPage()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
}
|
||||
}
|
@ -1,51 +0,0 @@
|
||||
using DataModel.Database.Common;
|
||||
using Microsoft.Maui.LifecycleEvents;
|
||||
|
||||
#if WINDOWS
|
||||
using Microsoft.UI;
|
||||
using Microsoft.UI.Windowing;
|
||||
using Windows.Graphics;
|
||||
#endif
|
||||
|
||||
namespace UI_MAUI;
|
||||
|
||||
public static class MauiProgram
|
||||
{
|
||||
public static MauiApp CreateMauiApp()
|
||||
{
|
||||
var builder = MauiApp.CreateBuilder();
|
||||
builder.UseMauiApp<App>();
|
||||
builder.ConfigureFonts(fonts =>
|
||||
{
|
||||
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
|
||||
});
|
||||
|
||||
#if WINDOWS
|
||||
builder.ConfigureLifecycleEvents(events =>
|
||||
{
|
||||
events.AddWindows(wndLifeCycleBuilder =>
|
||||
{
|
||||
wndLifeCycleBuilder.OnWindowCreated(window =>
|
||||
{
|
||||
var nativeWindowHandle = WinRT.Interop.WindowNative.GetWindowHandle(window);
|
||||
var win32WindowsId = Win32Interop.GetWindowIdFromWindow(nativeWindowHandle);
|
||||
var appWindow = AppWindow.GetFromWindowId(win32WindowsId);
|
||||
|
||||
const int width = 1366;
|
||||
const int height = 768;
|
||||
appWindow.ResizeClient(new SizeInt32(width, height));
|
||||
});
|
||||
});
|
||||
});
|
||||
#endif
|
||||
|
||||
builder.Services.AddMauiBlazorWebView();
|
||||
builder.Services.AddSingleton<DataContextFactory>();
|
||||
|
||||
#if DEBUG
|
||||
builder.Services.AddBlazorWebViewDeveloperTools();
|
||||
#endif
|
||||
|
||||
return builder.Build();
|
||||
}
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
namespace UI_MAUI;
|
||||
|
||||
public readonly record struct NavigationTarget(string Text, string Route, string IconFilename)
|
||||
{
|
||||
private static readonly NavigationTarget SETTINGS = new("Project settings", "settings", "settings.svg");
|
||||
private static readonly NavigationTarget TRANSLATION = new("Translation", "translation", "translation.svg");
|
||||
private static readonly NavigationTarget LOAD_PROJECT = new("Load Project", "load", "load.svg");
|
||||
|
||||
public static IEnumerable<NavigationTarget> GetAll()
|
||||
{
|
||||
yield return LOAD_PROJECT;
|
||||
yield return SETTINGS;
|
||||
yield return TRANSLATION;
|
||||
}
|
||||
};
|
@ -1,42 +0,0 @@
|
||||
@page "/"
|
||||
@page "/load"
|
||||
|
||||
<h1>Load a Project</h1>
|
||||
|
||||
<ul>
|
||||
@foreach (var recentProject in this.recentProjects)
|
||||
{
|
||||
<li>@recentProject.Path</li>
|
||||
}
|
||||
</ul>
|
||||
|
||||
<div>
|
||||
<button class="btn btn-secondary me-2 mb-2" type="button" data-bs-toggle="offcanvas" data-bs-target="#Assistant">
|
||||
<Icon Filename="add-project.svg" Size="25" AltText="Icon: Create new project"/>
|
||||
Create new project
|
||||
</button>
|
||||
<button class="btn btn-secondary me-2 mb-2" type="button">
|
||||
<Icon Filename="load.svg" Size="25" AltText="Icon: Open project"/>
|
||||
Open project
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<Assistant HeaderText="Create new project" IconName="add-project.svg" BaseHeight="new Assistant.Height(40, 55, 40)">
|
||||
<div class="mb-3">
|
||||
<label for="projectName" class="form-label fw-bold">Project Name:</label>
|
||||
<input type="text" class="form-control" id="projectName" placeholder="Type a project name" @bind="this.newProjectName" @bind:event="oninput" @onkeydown="this.ReevaluateState">
|
||||
</div>
|
||||
|
||||
@if (DeviceInfo.Idiom == DeviceIdiom.Desktop)
|
||||
{
|
||||
<div class="mb-3">
|
||||
<label for="projectPath" class="form-label fw-bold">Project destination:</label>
|
||||
<div class="input-group" id="projectPath">
|
||||
<button class="btn btn-primary" type="button" @onclick="@this.ChooseProjectDestination">Choose destination</button>
|
||||
<input type="text" class="form-control" value="@this.newProjectDestination" aria-label="The chosen project path" disabled readonly>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
<button class="btn btn-secondary" type="button" @onclick="this.CreateProject" disabled="@this.CannotCreateProject()">Create project</button>
|
||||
</Assistant>
|
@ -1,88 +0,0 @@
|
||||
using System.Text;
|
||||
using System.Text.Json.Serialization;
|
||||
using DataModel.Database.Common;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
|
||||
namespace UI_MAUI.Pages;
|
||||
|
||||
public partial class LoadProject
|
||||
{
|
||||
private readonly List<RecentProject> recentProjects = new();
|
||||
|
||||
[Inject]
|
||||
public DataContextFactory DataContextFactory { get; set; }
|
||||
|
||||
private string newProjectName = string.Empty;
|
||||
private string newProjectDestination = string.Empty;
|
||||
|
||||
#region Overrides of ComponentBase
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
await base.OnInitializedAsync();
|
||||
await this.LoadRecentProjects();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private readonly record struct RecentProject(string Path, string Name, bool Available);
|
||||
|
||||
private async Task LoadRecentProjects()
|
||||
{
|
||||
var appDataDirectory = FileSystem.Current.AppDataDirectory;
|
||||
var recentProjectsFile = Path.Join(appDataDirectory, "recentProjects.json");
|
||||
if (!File.Exists(recentProjectsFile))
|
||||
await File.WriteAllTextAsync(recentProjectsFile, string.Empty, Encoding.UTF8);
|
||||
|
||||
// Read the JSON data from that file & decode it to an array of recent projects:
|
||||
}
|
||||
|
||||
private async Task WriteRecentProjects()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private Task ChooseProjectDestination()
|
||||
{
|
||||
try
|
||||
{
|
||||
#if WINDOWS
|
||||
return this.ChooseProjectDestinationWindows();
|
||||
#elif MACCATALYST
|
||||
return this.ChooseProjectDestinationMacOS();
|
||||
#else
|
||||
return Task.CompletedTask;
|
||||
#endif
|
||||
}
|
||||
finally
|
||||
{
|
||||
this.StateHasChanged();
|
||||
}
|
||||
}
|
||||
|
||||
private Task CreateProject()
|
||||
{
|
||||
// TODO: Need to wait for the project to be created. Afterwards, we need to close the dialog. Meanwhile, we need to show a loading indicator.
|
||||
#warning TODO: Create project
|
||||
|
||||
#if WINDOWS
|
||||
return this.CreateProjectWindows();
|
||||
#elif MACCATALYST
|
||||
return Task.CompletedTask;
|
||||
#else
|
||||
return Task.CompletedTask;
|
||||
#endif
|
||||
}
|
||||
|
||||
private bool CannotCreateProject()
|
||||
{
|
||||
if (DeviceInfo.Idiom == DeviceIdiom.Desktop)
|
||||
return string.IsNullOrWhiteSpace(this.newProjectName) || string.IsNullOrWhiteSpace(this.newProjectDestination);
|
||||
else if (DeviceInfo.Idiom == DeviceIdiom.Phone || DeviceInfo.Idiom == DeviceIdiom.Tablet)
|
||||
return string.IsNullOrWhiteSpace(this.newProjectName);
|
||||
else
|
||||
return true;
|
||||
}
|
||||
|
||||
private void ReevaluateState() => this.StateHasChanged();
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<application android:allowBackup="true" android:icon="@mipmap/app" android:roundIcon="@mipmap/app_round" android:supportsRtl="true"></application>
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
</manifest>
|
@ -1,10 +0,0 @@
|
||||
using Android.App;
|
||||
using Android.Content.PM;
|
||||
using Android.OS;
|
||||
|
||||
namespace UI_MAUI;
|
||||
|
||||
[Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)]
|
||||
public class MainActivity : MauiAppCompatActivity
|
||||
{
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
using Android.App;
|
||||
using Android.Runtime;
|
||||
|
||||
namespace UI_MAUI;
|
||||
|
||||
[Application]
|
||||
public class MainApplication : MauiApplication
|
||||
{
|
||||
public MainApplication(IntPtr handle, JniHandleOwnership ownership) : base(handle, ownership)
|
||||
{
|
||||
}
|
||||
|
||||
protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
#if ANDROID
|
||||
|
||||
namespace UI_MAUI.Pages;
|
||||
|
||||
public partial class LoadProject
|
||||
{
|
||||
}
|
||||
|
||||
#endif
|
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="colorPrimary">#512BD4</color>
|
||||
<color name="colorPrimaryDark">#2B0B98</color>
|
||||
<color name="colorAccent">#2B0B98</color>
|
||||
</resources>
|
@ -1,9 +0,0 @@
|
||||
using Foundation;
|
||||
|
||||
namespace UI_MAUI;
|
||||
|
||||
[Register("AppDelegate")]
|
||||
public class AppDelegate : MauiUIApplicationDelegate
|
||||
{
|
||||
protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
|
||||
}
|
@ -1,30 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>UIDeviceFamily</key>
|
||||
<array>
|
||||
<integer>1</integer>
|
||||
<integer>2</integer>
|
||||
</array>
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
<array>
|
||||
<string>arm64</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations~ipad</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>XSAppIconAssets</key>
|
||||
<string>Assets.xcassets/appicon.appiconset</string>
|
||||
</dict>
|
||||
</plist>
|
@ -1,13 +0,0 @@
|
||||
#if MACCATALYST
|
||||
|
||||
namespace UI_MAUI.Pages;
|
||||
|
||||
public partial class LoadProject
|
||||
{
|
||||
private Task ChooseProjectDestinationMacOS()
|
||||
{
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
using ObjCRuntime;
|
||||
using UIKit;
|
||||
|
||||
namespace UI_MAUI;
|
||||
|
||||
public class Program
|
||||
{
|
||||
// This is the main entry point of the application.
|
||||
static void Main(string[] args)
|
||||
{
|
||||
// if you want to use a different Application Delegate class from "AppDelegate"
|
||||
// you can specify it here.
|
||||
UIApplication.Main(args, null, typeof(AppDelegate));
|
||||
}
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
<maui:MauiWinUIApplication
|
||||
x:Class="UI_MAUI.WinUI.App"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:maui="using:Microsoft.Maui"
|
||||
xmlns:local="using:UI_MAUI.WinUI">
|
||||
|
||||
</maui:MauiWinUIApplication>
|
@ -1,18 +0,0 @@
|
||||
namespace UI_MAUI.WinUI;
|
||||
|
||||
/// <summary>
|
||||
/// Provides application-specific behavior to supplement the default Application class.
|
||||
/// </summary>
|
||||
public partial class App : MauiWinUIApplication
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes the singleton application object. This is the first line of authored code
|
||||
/// executed, and as such is the logical equivalent of main() or WinMain().
|
||||
/// </summary>
|
||||
public App()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
}
|
||||
|
||||
protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
|
||||
}
|
@ -1,43 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Package
|
||||
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
|
||||
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
|
||||
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
|
||||
IgnorableNamespaces="uap rescap">
|
||||
|
||||
<Identity Name="maui-package-name-placeholder" Publisher="CN=User Name" Version="0.0.0.0" />
|
||||
|
||||
<Properties>
|
||||
<DisplayName>$placeholder$</DisplayName>
|
||||
<PublisherDisplayName>User Name</PublisherDisplayName>
|
||||
<Logo>$placeholder$.png</Logo>
|
||||
</Properties>
|
||||
|
||||
<Dependencies>
|
||||
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.17763.0" MaxVersionTested="10.0.19041.0" />
|
||||
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.19041.0" />
|
||||
</Dependencies>
|
||||
|
||||
<Resources>
|
||||
<Resource Language="x-generate" />
|
||||
</Resources>
|
||||
|
||||
<Applications>
|
||||
<Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="$targetentrypoint$">
|
||||
<uap:VisualElements
|
||||
DisplayName="$placeholder$"
|
||||
Description="$placeholder$"
|
||||
Square150x150Logo="$placeholder$.png"
|
||||
Square44x44Logo="$placeholder$.png"
|
||||
BackgroundColor="transparent">
|
||||
<uap:DefaultTile Square71x71Logo="$placeholder$.png" Wide310x150Logo="$placeholder$.png" Square310x310Logo="$placeholder$.png" />
|
||||
<uap:SplashScreen Image="$placeholder$.png" />
|
||||
</uap:VisualElements>
|
||||
</Application>
|
||||
</Applications>
|
||||
|
||||
<Capabilities>
|
||||
<rescap:Capability Name="runFullTrust" />
|
||||
</Capabilities>
|
||||
|
||||
</Package>
|
@ -1,38 +0,0 @@
|
||||
#if WINDOWS
|
||||
|
||||
namespace UI_MAUI.Pages;
|
||||
|
||||
using Windows.Storage.Pickers;
|
||||
using WindowsSavePicker = Windows.Storage.Pickers.FileSavePicker;
|
||||
|
||||
public partial class LoadProject
|
||||
{
|
||||
private async Task ChooseProjectDestinationWindows()
|
||||
{
|
||||
var saveDialog = new WindowsSavePicker
|
||||
{
|
||||
CommitButtonText = "Create the project here",
|
||||
SuggestedStartLocation = PickerLocationId.DocumentsLibrary,
|
||||
FileTypeChoices =
|
||||
{
|
||||
new KeyValuePair<string, IList<string>>("I18N Commander Projects", new List<string> { ".i18nc" }),
|
||||
}
|
||||
};
|
||||
|
||||
var hwnd = ((MauiWinUIWindow)App.Current.Windows[0].Handler.PlatformView).WindowHandle;
|
||||
WinRT.Interop.InitializeWithWindow.Initialize(saveDialog, hwnd);
|
||||
|
||||
var result = await saveDialog.PickSaveFileAsync();
|
||||
if(result is null)
|
||||
return;
|
||||
|
||||
this.newProjectDestination = result.Path;
|
||||
}
|
||||
|
||||
private async Task CreateProjectWindows() => await Task.Run(() =>
|
||||
{
|
||||
this.DataContextFactory.CreateDataContext(this.newProjectDestination);
|
||||
});
|
||||
}
|
||||
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<assemblyIdentity version="1.0.0.0" name="UI MAUI.WinUI.app"/>
|
||||
|
||||
<application xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<windowsSettings>
|
||||
<!-- The combination of below two tags have the following effect:
|
||||
1) Per-Monitor for >= Windows 10 Anniversary Update
|
||||
2) System < Windows 10 Anniversary Update
|
||||
-->
|
||||
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true/PM</dpiAware>
|
||||
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2, PerMonitor</dpiAwareness>
|
||||
</windowsSettings>
|
||||
</application>
|
||||
</assembly>
|
@ -1,9 +0,0 @@
|
||||
using Foundation;
|
||||
|
||||
namespace UI_MAUI;
|
||||
|
||||
[Register("AppDelegate")]
|
||||
public class AppDelegate : MauiUIApplicationDelegate
|
||||
{
|
||||
protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
|
||||
}
|
@ -1,32 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>UIDeviceFamily</key>
|
||||
<array>
|
||||
<integer>1</integer>
|
||||
<integer>2</integer>
|
||||
</array>
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
<array>
|
||||
<string>arm64</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations~ipad</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>XSAppIconAssets</key>
|
||||
<string>Assets.xcassets/appicon.appiconset</string>
|
||||
</dict>
|
||||
</plist>
|
@ -1,9 +0,0 @@
|
||||
#if IOS
|
||||
|
||||
namespace UI_MAUI.Pages;
|
||||
|
||||
public partial class LoadProject
|
||||
{
|
||||
}
|
||||
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
using ObjCRuntime;
|
||||
using UIKit;
|
||||
|
||||
namespace UI_MAUI;
|
||||
|
||||
public class Program
|
||||
{
|
||||
// This is the main entry point of the application.
|
||||
static void Main(string[] args)
|
||||
{
|
||||
// if you want to use a different Application Delegate class from "AppDelegate"
|
||||
// you can specify it here.
|
||||
UIApplication.Main(args, null, typeof(AppDelegate));
|
||||
}
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
{
|
||||
"profiles": {
|
||||
"Windows Machine": {
|
||||
"commandName": "MsixPackage",
|
||||
"nativeDebugging": false
|
||||
}
|
||||
}
|
||||
}
|
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 12 48 30" width="512px" height="512px"><linearGradient id="gCW9sGJUkBnBLRc40wQXGa" x1="25.447" x2="44.728" y1="4.921" y2="36.29" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#42a3f2"/><stop offset="1" stop-color="#42a4eb"/></linearGradient><path fill="url(#gCW9sGJUkBnBLRc40wQXGa)" d="M42,8H19l11,30h12c1.105,0,2-0.895,2-2V10C44,8.895,43.105,8,42,8z"/><linearGradient id="gCW9sGJUkBnBLRc40wQXGb" x1="3.865" x2="23.412" y1="9.86" y2="41.663" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#1d59b3"/><stop offset="1" stop-color="#195bbc"/></linearGradient><path fill="url(#gCW9sGJUkBnBLRc40wQXGb)" d="M19,8H6c-1.105,0-2,0.895-2,2v26c0,1.105,0.895,2,2,2h8v7.998 c0,0.891,1.077,1.337,1.707,0.707L24.412,38H30L19,8z"/><path fill="#fff" d="M12,25h6v2h-6V25z"/><path fill="#fff" d="M12.109,29L15,20l2.906,9h2.11L16,17h-2l-4,12H12.109z"/><linearGradient id="gCW9sGJUkBnBLRc40wQXGc" x1="29.064" x2="38.79" y1="23.554" y2="23.554" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#11408a"/><stop offset="1" stop-color="#103f8f"/></linearGradient><path fill="url(#gCW9sGJUkBnBLRc40wQXGc)" d="M29.064,27.223c0.061-0.031,4.994-3.219,7.936-9.115L38.79,19 c-3.082,6.25-7.457,9.292-8.509,10L29.064,27.223z"/><linearGradient id="gCW9sGJUkBnBLRc40wQXGd" x1="28" x2="40" y1="23.5" y2="23.5" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#11408a"/><stop offset="1" stop-color="#103f8f"/></linearGradient><path fill="url(#gCW9sGJUkBnBLRc40wQXGd)" d="M38,29c0,0-5-2.583-7.769-6.998L32,21c2.333,3.833,6.981,6.26,6.981,6.26L38,29z M28,18h12v2 H28V18z"/><linearGradient id="gCW9sGJUkBnBLRc40wQXGe" x1="33" x2="35" y1="18" y2="18" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#11408a"/><stop offset="1" stop-color="#103f8f"/></linearGradient><path fill="url(#gCW9sGJUkBnBLRc40wQXGe)" d="M33,16h2v4h-2V16z"/></svg>
|
Before Width: | Height: | Size: 1.9 KiB |
@ -1,15 +0,0 @@
|
||||
Any raw assets you want to be deployed with your application can be placed in
|
||||
this directory (and child directories). Deployment of the asset to your application
|
||||
is automatically handled by the following `MauiAsset` Build Action within your `.csproj`.
|
||||
|
||||
<MauiAsset Include="Resources\Raw\**" LogicalName="%(RecursiveDir)%(Filename)%(Extension)" />
|
||||
|
||||
These files will be deployed with you package and will be accessible using Essentials:
|
||||
|
||||
async Task LoadMauiAsset()
|
||||
{
|
||||
using var stream = await FileSystem.OpenAppPackageFileAsync("AboutAssets.txt");
|
||||
using var reader = new StreamReader(stream);
|
||||
|
||||
var contents = reader.ReadToEnd();
|
||||
}
|
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="512px" height="512px"><linearGradient id="gCW9sGJUkBnBLRc40wQXGa" x1="25.447" x2="44.728" y1="4.921" y2="36.29" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#42a3f2"/><stop offset="1" stop-color="#42a4eb"/></linearGradient><path fill="url(#gCW9sGJUkBnBLRc40wQXGa)" d="M42,8H19l11,30h12c1.105,0,2-0.895,2-2V10C44,8.895,43.105,8,42,8z"/><linearGradient id="gCW9sGJUkBnBLRc40wQXGb" x1="3.865" x2="23.412" y1="9.86" y2="41.663" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#1d59b3"/><stop offset="1" stop-color="#195bbc"/></linearGradient><path fill="url(#gCW9sGJUkBnBLRc40wQXGb)" d="M19,8H6c-1.105,0-2,0.895-2,2v26c0,1.105,0.895,2,2,2h8v7.998 c0,0.891,1.077,1.337,1.707,0.707L24.412,38H30L19,8z"/><path fill="#fff" d="M12,25h6v2h-6V25z"/><path fill="#fff" d="M12.109,29L15,20l2.906,9h2.11L16,17h-2l-4,12H12.109z"/><linearGradient id="gCW9sGJUkBnBLRc40wQXGc" x1="29.064" x2="38.79" y1="23.554" y2="23.554" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#11408a"/><stop offset="1" stop-color="#103f8f"/></linearGradient><path fill="url(#gCW9sGJUkBnBLRc40wQXGc)" d="M29.064,27.223c0.061-0.031,4.994-3.219,7.936-9.115L38.79,19 c-3.082,6.25-7.457,9.292-8.509,10L29.064,27.223z"/><linearGradient id="gCW9sGJUkBnBLRc40wQXGd" x1="28" x2="40" y1="23.5" y2="23.5" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#11408a"/><stop offset="1" stop-color="#103f8f"/></linearGradient><path fill="url(#gCW9sGJUkBnBLRc40wQXGd)" d="M38,29c0,0-5-2.583-7.769-6.998L32,21c2.333,3.833,6.981,6.26,6.981,6.26L38,29z M28,18h12v2 H28V18z"/><linearGradient id="gCW9sGJUkBnBLRc40wQXGe" x1="33" x2="35" y1="18" y2="18" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#11408a"/><stop offset="1" stop-color="#103f8f"/></linearGradient><path fill="url(#gCW9sGJUkBnBLRc40wQXGe)" d="M33,16h2v4h-2V16z"/></svg>
|
Before Width: | Height: | Size: 1.9 KiB |
@ -1,44 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<?xaml-comp compile="true" ?>
|
||||
<ResourceDictionary
|
||||
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
|
||||
|
||||
<Color x:Key="Primary">#512BD4</Color>
|
||||
<Color x:Key="Secondary">#DFD8F7</Color>
|
||||
<Color x:Key="Tertiary">#2B0B98</Color>
|
||||
<Color x:Key="White">White</Color>
|
||||
<Color x:Key="Black">Black</Color>
|
||||
<Color x:Key="Gray100">#E1E1E1</Color>
|
||||
<Color x:Key="Gray200">#C8C8C8</Color>
|
||||
<Color x:Key="Gray300">#ACACAC</Color>
|
||||
<Color x:Key="Gray400">#919191</Color>
|
||||
<Color x:Key="Gray500">#6E6E6E</Color>
|
||||
<Color x:Key="Gray600">#404040</Color>
|
||||
<Color x:Key="Gray900">#212121</Color>
|
||||
<Color x:Key="Gray950">#141414</Color>
|
||||
<SolidColorBrush x:Key="PrimaryBrush" Color="{StaticResource Primary}"/>
|
||||
<SolidColorBrush x:Key="SecondaryBrush" Color="{StaticResource Secondary}"/>
|
||||
<SolidColorBrush x:Key="TertiaryBrush" Color="{StaticResource Tertiary}"/>
|
||||
<SolidColorBrush x:Key="WhiteBrush" Color="{StaticResource White}"/>
|
||||
<SolidColorBrush x:Key="BlackBrush" Color="{StaticResource Black}"/>
|
||||
<SolidColorBrush x:Key="Gray100Brush" Color="{StaticResource Gray100}"/>
|
||||
<SolidColorBrush x:Key="Gray200Brush" Color="{StaticResource Gray200}"/>
|
||||
<SolidColorBrush x:Key="Gray300Brush" Color="{StaticResource Gray300}"/>
|
||||
<SolidColorBrush x:Key="Gray400Brush" Color="{StaticResource Gray400}"/>
|
||||
<SolidColorBrush x:Key="Gray500Brush" Color="{StaticResource Gray500}"/>
|
||||
<SolidColorBrush x:Key="Gray600Brush" Color="{StaticResource Gray600}"/>
|
||||
<SolidColorBrush x:Key="Gray900Brush" Color="{StaticResource Gray900}"/>
|
||||
<SolidColorBrush x:Key="Gray950Brush" Color="{StaticResource Gray950}"/>
|
||||
|
||||
<Color x:Key="Yellow100Accent">#F7B548</Color>
|
||||
<Color x:Key="Yellow200Accent">#FFD590</Color>
|
||||
<Color x:Key="Yellow300Accent">#FFE5B9</Color>
|
||||
<Color x:Key="Cyan100Accent">#28C2D1</Color>
|
||||
<Color x:Key="Cyan200Accent">#7BDDEF</Color>
|
||||
<Color x:Key="Cyan300Accent">#C3F2F4</Color>
|
||||
<Color x:Key="Blue100Accent">#3E8EED</Color>
|
||||
<Color x:Key="Blue200Accent">#72ACF1</Color>
|
||||
<Color x:Key="Blue300Accent">#A7CBF6</Color>
|
||||
|
||||
</ResourceDictionary>
|
@ -1,384 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<?xaml-comp compile="true" ?>
|
||||
<ResourceDictionary
|
||||
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
|
||||
|
||||
<Style TargetType="ActivityIndicator">
|
||||
<Setter Property="Color" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource White}}" />
|
||||
</Style>
|
||||
|
||||
<Style TargetType="IndicatorView">
|
||||
<Setter Property="IndicatorColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray500}}"/>
|
||||
<Setter Property="SelectedIndicatorColor" Value="{AppThemeBinding Light={StaticResource Gray950}, Dark={StaticResource Gray100}}"/>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="Border">
|
||||
<Setter Property="Stroke" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray500}}" />
|
||||
<Setter Property="StrokeShape" Value="Rectangle"/>
|
||||
<Setter Property="StrokeThickness" Value="1"/>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="BoxView">
|
||||
<Setter Property="Color" Value="{AppThemeBinding Light={StaticResource Gray950}, Dark={StaticResource Gray200}}" />
|
||||
</Style>
|
||||
|
||||
<Style TargetType="Button">
|
||||
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource White}, Dark={StaticResource Primary}}" />
|
||||
<Setter Property="BackgroundColor" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource White}}" />
|
||||
<Setter Property="FontFamily" Value="OpenSansRegular"/>
|
||||
<Setter Property="FontSize" Value="14"/>
|
||||
<Setter Property="CornerRadius" Value="8"/>
|
||||
<Setter Property="Padding" Value="14,10"/>
|
||||
<Setter Property="VisualStateManager.VisualStateGroups">
|
||||
<VisualStateGroupList>
|
||||
<VisualStateGroup x:Name="CommonStates">
|
||||
<VisualState x:Name="Normal" />
|
||||
<VisualState x:Name="Disabled">
|
||||
<VisualState.Setters>
|
||||
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray950}, Dark={StaticResource Gray200}}" />
|
||||
<Setter Property="BackgroundColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray600}}" />
|
||||
</VisualState.Setters>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
</VisualStateGroupList>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="CheckBox">
|
||||
<Setter Property="Color" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource White}}" />
|
||||
<Setter Property="VisualStateManager.VisualStateGroups">
|
||||
<VisualStateGroupList>
|
||||
<VisualStateGroup x:Name="CommonStates">
|
||||
<VisualState x:Name="Normal" />
|
||||
<VisualState x:Name="Disabled">
|
||||
<VisualState.Setters>
|
||||
<Setter Property="Color" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
|
||||
</VisualState.Setters>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
</VisualStateGroupList>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="DatePicker">
|
||||
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray900}, Dark={StaticResource White}}" />
|
||||
<Setter Property="BackgroundColor" Value="Transparent" />
|
||||
<Setter Property="FontFamily" Value="OpenSansRegular"/>
|
||||
<Setter Property="FontSize" Value="14"/>
|
||||
<Setter Property="VisualStateManager.VisualStateGroups">
|
||||
<VisualStateGroupList>
|
||||
<VisualStateGroup x:Name="CommonStates">
|
||||
<VisualState x:Name="Normal" />
|
||||
<VisualState x:Name="Disabled">
|
||||
<VisualState.Setters>
|
||||
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray500}}" />
|
||||
</VisualState.Setters>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
</VisualStateGroupList>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="Editor">
|
||||
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Black}, Dark={StaticResource White}}" />
|
||||
<Setter Property="BackgroundColor" Value="Transparent" />
|
||||
<Setter Property="FontFamily" Value="OpenSansRegular"/>
|
||||
<Setter Property="FontSize" Value="14" />
|
||||
<Setter Property="PlaceholderColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray500}}" />
|
||||
<Setter Property="VisualStateManager.VisualStateGroups">
|
||||
<VisualStateGroupList>
|
||||
<VisualStateGroup x:Name="CommonStates">
|
||||
<VisualState x:Name="Normal" />
|
||||
<VisualState x:Name="Disabled">
|
||||
<VisualState.Setters>
|
||||
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
|
||||
</VisualState.Setters>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
</VisualStateGroupList>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="Entry">
|
||||
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Black}, Dark={StaticResource White}}" />
|
||||
<Setter Property="BackgroundColor" Value="Transparent" />
|
||||
<Setter Property="FontFamily" Value="OpenSansRegular"/>
|
||||
<Setter Property="FontSize" Value="14" />
|
||||
<Setter Property="PlaceholderColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray500}}" />
|
||||
<Setter Property="VisualStateManager.VisualStateGroups">
|
||||
<VisualStateGroupList>
|
||||
<VisualStateGroup x:Name="CommonStates">
|
||||
<VisualState x:Name="Normal" />
|
||||
<VisualState x:Name="Disabled">
|
||||
<VisualState.Setters>
|
||||
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
|
||||
</VisualState.Setters>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
</VisualStateGroupList>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="Frame">
|
||||
<Setter Property="HasShadow" Value="False" />
|
||||
<Setter Property="BorderColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray950}}" />
|
||||
<Setter Property="CornerRadius" Value="8" />
|
||||
</Style>
|
||||
|
||||
<Style TargetType="ImageButton">
|
||||
<Setter Property="Opacity" Value="1" />
|
||||
<Setter Property="BorderColor" Value="Transparent"/>
|
||||
<Setter Property="BorderWidth" Value="0"/>
|
||||
<Setter Property="CornerRadius" Value="0"/>
|
||||
<Setter Property="VisualStateManager.VisualStateGroups">
|
||||
<VisualStateGroupList>
|
||||
<VisualStateGroup x:Name="CommonStates">
|
||||
<VisualState x:Name="Normal" />
|
||||
<VisualState x:Name="Disabled">
|
||||
<VisualState.Setters>
|
||||
<Setter Property="Opacity" Value="0.5" />
|
||||
</VisualState.Setters>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
</VisualStateGroupList>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="Label">
|
||||
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray900}, Dark={StaticResource White}}" />
|
||||
<Setter Property="FontFamily" Value="OpenSansRegular" />
|
||||
<Setter Property="FontSize" Value="14" />
|
||||
<Setter Property="VisualStateManager.VisualStateGroups">
|
||||
<VisualStateGroupList>
|
||||
<VisualStateGroup x:Name="CommonStates">
|
||||
<VisualState x:Name="Normal" />
|
||||
<VisualState x:Name="Disabled">
|
||||
<VisualState.Setters>
|
||||
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
|
||||
</VisualState.Setters>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
</VisualStateGroupList>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="ListView">
|
||||
<Setter Property="SeparatorColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray500}}" />
|
||||
<Setter Property="RefreshControlColor" Value="{AppThemeBinding Light={StaticResource Gray900}, Dark={StaticResource Gray200}}" />
|
||||
</Style>
|
||||
|
||||
<Style TargetType="Picker">
|
||||
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray900}, Dark={StaticResource White}}" />
|
||||
<Setter Property="TitleColor" Value="{AppThemeBinding Light={StaticResource Gray900}, Dark={StaticResource Gray200}}" />
|
||||
<Setter Property="BackgroundColor" Value="Transparent" />
|
||||
<Setter Property="FontFamily" Value="OpenSansRegular"/>
|
||||
<Setter Property="FontSize" Value="14"/>
|
||||
<Setter Property="VisualStateManager.VisualStateGroups">
|
||||
<VisualStateGroupList>
|
||||
<VisualStateGroup x:Name="CommonStates">
|
||||
<VisualState x:Name="Normal" />
|
||||
<VisualState x:Name="Disabled">
|
||||
<VisualState.Setters>
|
||||
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
|
||||
<Setter Property="TitleColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
|
||||
</VisualState.Setters>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
</VisualStateGroupList>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="ProgressBar">
|
||||
<Setter Property="ProgressColor" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource White}}" />
|
||||
<Setter Property="VisualStateManager.VisualStateGroups">
|
||||
<VisualStateGroupList>
|
||||
<VisualStateGroup x:Name="CommonStates">
|
||||
<VisualState x:Name="Normal" />
|
||||
<VisualState x:Name="Disabled">
|
||||
<VisualState.Setters>
|
||||
<Setter Property="ProgressColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
|
||||
</VisualState.Setters>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
</VisualStateGroupList>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="RadioButton">
|
||||
<Setter Property="Background" Value="Transparent"/>
|
||||
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Black}, Dark={StaticResource White}}" />
|
||||
<Setter Property="FontFamily" Value="OpenSansRegular"/>
|
||||
<Setter Property="FontSize" Value="14"/>
|
||||
<Setter Property="VisualStateManager.VisualStateGroups">
|
||||
<VisualStateGroupList>
|
||||
<VisualStateGroup x:Name="CommonStates">
|
||||
<VisualState x:Name="Normal" />
|
||||
<VisualState x:Name="Disabled">
|
||||
<VisualState.Setters>
|
||||
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
|
||||
</VisualState.Setters>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
</VisualStateGroupList>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="RefreshView">
|
||||
<Setter Property="RefreshColor" Value="{AppThemeBinding Light={StaticResource Gray900}, Dark={StaticResource Gray200}}" />
|
||||
</Style>
|
||||
|
||||
<Style TargetType="SearchBar">
|
||||
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray900}, Dark={StaticResource White}}" />
|
||||
<Setter Property="PlaceholderColor" Value="{StaticResource Gray500}" />
|
||||
<Setter Property="CancelButtonColor" Value="{StaticResource Gray500}" />
|
||||
<Setter Property="BackgroundColor" Value="Transparent" />
|
||||
<Setter Property="FontFamily" Value="OpenSansRegular" />
|
||||
<Setter Property="FontSize" Value="14" />
|
||||
<Setter Property="VisualStateManager.VisualStateGroups">
|
||||
<VisualStateGroupList>
|
||||
<VisualStateGroup x:Name="CommonStates">
|
||||
<VisualState x:Name="Normal" />
|
||||
<VisualState x:Name="Disabled">
|
||||
<VisualState.Setters>
|
||||
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
|
||||
<Setter Property="PlaceholderColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
|
||||
</VisualState.Setters>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
</VisualStateGroupList>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="SearchHandler">
|
||||
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray900}, Dark={StaticResource White}}" />
|
||||
<Setter Property="PlaceholderColor" Value="{StaticResource Gray500}" />
|
||||
<Setter Property="BackgroundColor" Value="Transparent" />
|
||||
<Setter Property="FontFamily" Value="OpenSansRegular" />
|
||||
<Setter Property="FontSize" Value="14" />
|
||||
<Setter Property="VisualStateManager.VisualStateGroups">
|
||||
<VisualStateGroupList>
|
||||
<VisualStateGroup x:Name="CommonStates">
|
||||
<VisualState x:Name="Normal" />
|
||||
<VisualState x:Name="Disabled">
|
||||
<VisualState.Setters>
|
||||
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
|
||||
<Setter Property="PlaceholderColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
|
||||
</VisualState.Setters>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
</VisualStateGroupList>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="Shadow">
|
||||
<Setter Property="Radius" Value="15" />
|
||||
<Setter Property="Opacity" Value="0.5" />
|
||||
<Setter Property="Brush" Value="{AppThemeBinding Light={StaticResource White}, Dark={StaticResource White}}" />
|
||||
<Setter Property="Offset" Value="10,10" />
|
||||
</Style>
|
||||
|
||||
<Style TargetType="Slider">
|
||||
<Setter Property="MinimumTrackColor" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource White}}" />
|
||||
<Setter Property="MaximumTrackColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray600}}" />
|
||||
<Setter Property="ThumbColor" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource White}}" />
|
||||
<Setter Property="VisualStateManager.VisualStateGroups">
|
||||
<VisualStateGroupList>
|
||||
<VisualStateGroup x:Name="CommonStates">
|
||||
<VisualState x:Name="Normal" />
|
||||
<VisualState x:Name="Disabled">
|
||||
<VisualState.Setters>
|
||||
<Setter Property="MinimumTrackColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}"/>
|
||||
<Setter Property="MaximumTrackColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}"/>
|
||||
<Setter Property="ThumbColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}"/>
|
||||
</VisualState.Setters>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
</VisualStateGroupList>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="SwipeItem">
|
||||
<Setter Property="BackgroundColor" Value="{AppThemeBinding Light={StaticResource White}, Dark={StaticResource Black}}" />
|
||||
</Style>
|
||||
|
||||
<Style TargetType="Switch">
|
||||
<Setter Property="OnColor" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource White}}" />
|
||||
<Setter Property="ThumbColor" Value="{StaticResource White}" />
|
||||
<Setter Property="VisualStateManager.VisualStateGroups">
|
||||
<VisualStateGroupList>
|
||||
<VisualStateGroup x:Name="CommonStates">
|
||||
<VisualState x:Name="Normal" />
|
||||
<VisualState x:Name="Disabled">
|
||||
<VisualState.Setters>
|
||||
<Setter Property="OnColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
|
||||
<Setter Property="ThumbColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
|
||||
</VisualState.Setters>
|
||||
</VisualState>
|
||||
<VisualState x:Name="On">
|
||||
<VisualState.Setters>
|
||||
<Setter Property="OnColor" Value="{AppThemeBinding Light={StaticResource Secondary}, Dark={StaticResource Gray200}}" />
|
||||
<Setter Property="ThumbColor" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource White}}" />
|
||||
</VisualState.Setters>
|
||||
</VisualState>
|
||||
<VisualState x:Name="Off">
|
||||
<VisualState.Setters>
|
||||
<Setter Property="ThumbColor" Value="{AppThemeBinding Light={StaticResource Gray400}, Dark={StaticResource Gray500}}" />
|
||||
</VisualState.Setters>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
</VisualStateGroupList>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="TimePicker">
|
||||
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray900}, Dark={StaticResource White}}" />
|
||||
<Setter Property="Background" Value="Transparent"/>
|
||||
<Setter Property="FontFamily" Value="OpenSansRegular"/>
|
||||
<Setter Property="FontSize" Value="14"/>
|
||||
<Setter Property="VisualStateManager.VisualStateGroups">
|
||||
<VisualStateGroupList>
|
||||
<VisualStateGroup x:Name="CommonStates">
|
||||
<VisualState x:Name="Normal" />
|
||||
<VisualState x:Name="Disabled">
|
||||
<VisualState.Setters>
|
||||
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
|
||||
</VisualState.Setters>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
</VisualStateGroupList>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="Page" ApplyToDerivedTypes="True">
|
||||
<Setter Property="Padding" Value="0"/>
|
||||
<Setter Property="BackgroundColor" Value="{AppThemeBinding Light={StaticResource White}, Dark={StaticResource Black}}" />
|
||||
</Style>
|
||||
|
||||
<Style TargetType="Shell" ApplyToDerivedTypes="True">
|
||||
<Setter Property="Shell.BackgroundColor" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource Gray950}}" />
|
||||
<Setter Property="Shell.ForegroundColor" Value="{OnPlatform WinUI={StaticResource Primary}, Default={StaticResource White}}" />
|
||||
<Setter Property="Shell.TitleColor" Value="{AppThemeBinding Light={StaticResource White}, Dark={StaticResource White}}" />
|
||||
<Setter Property="Shell.DisabledColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray950}}" />
|
||||
<Setter Property="Shell.UnselectedColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray200}}" />
|
||||
<Setter Property="Shell.NavBarHasShadow" Value="False" />
|
||||
<Setter Property="Shell.TabBarBackgroundColor" Value="{AppThemeBinding Light={StaticResource White}, Dark={StaticResource Black}}" />
|
||||
<Setter Property="Shell.TabBarForegroundColor" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource White}}" />
|
||||
<Setter Property="Shell.TabBarTitleColor" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource White}}" />
|
||||
<Setter Property="Shell.TabBarUnselectedColor" Value="{AppThemeBinding Light={StaticResource Gray900}, Dark={StaticResource Gray200}}" />
|
||||
</Style>
|
||||
|
||||
<Style TargetType="NavigationPage">
|
||||
<Setter Property="BarBackgroundColor" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource Gray950}}" />
|
||||
<Setter Property="BarTextColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource White}}" />
|
||||
<Setter Property="IconColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource White}}" />
|
||||
</Style>
|
||||
|
||||
<Style TargetType="TabbedPage">
|
||||
<Setter Property="BarBackgroundColor" Value="{AppThemeBinding Light={StaticResource White}, Dark={StaticResource Gray950}}" />
|
||||
<Setter Property="BarTextColor" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource White}}" />
|
||||
<Setter Property="UnselectedTabColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray950}}" />
|
||||
<Setter Property="SelectedTabColor" Value="{AppThemeBinding Light={StaticResource Gray950}, Dark={StaticResource Gray200}}" />
|
||||
</Style>
|
||||
|
||||
</ResourceDictionary>
|
@ -1,25 +0,0 @@
|
||||
@inherits LayoutComponentBase
|
||||
|
||||
<nav class="navbar navbar-dark bg-dark navbar-expand-sm p-0">
|
||||
<div class="container-fluid ps-1">
|
||||
<div class="navbar-brand p-0">
|
||||
<Icon Filename="translation.svg" Size="35" AltText="App Icon" />
|
||||
<span class="fw-bold">I18N</span> <span class="fs-6">Commander</span>
|
||||
</div>
|
||||
<button class="navbar-toggler p-0 my-1" type="button" data-bs-toggle="collapse" data-bs-target="#navbarContent" aria-controls="navbarContent" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<Icon Filename="nav-toggle.svg" AltText="Toggles menu" Size="35" />
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarContent">
|
||||
<ul class="navbar-nav me-auto">
|
||||
@foreach (var (text, route, iconFilename) in NavigationTarget.GetAll())
|
||||
{
|
||||
<NavItem Text="@text" Route="@route" ShowIcon="@(!string.IsNullOrWhiteSpace(iconFilename))" IconFilename="@iconFilename" />
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="container-fluid">
|
||||
@Body
|
||||
</div>
|
@ -1,52 +0,0 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.Razor">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net6.0-android;net6.0-ios;net6.0-maccatalyst</TargetFrameworks>
|
||||
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net6.0-windows10.0.19041.0</TargetFrameworks>
|
||||
<OutputType>Exe</OutputType>
|
||||
<AssemblyName>I18N Commander</AssemblyName>
|
||||
<RootNamespace>UI_MAUI</RootNamespace>
|
||||
<UseMaui>true</UseMaui>
|
||||
<SingleProject>true</SingleProject>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<EnableDefaultCssItems>false</EnableDefaultCssItems>
|
||||
<ValidateExecutableReferencesMatchSelfContained>false</ValidateExecutableReferencesMatchSelfContained>
|
||||
|
||||
<!-- Display name -->
|
||||
<ApplicationTitle>I18N Commander</ApplicationTitle>
|
||||
|
||||
<!-- App Identifier -->
|
||||
<ApplicationId>org.tsommer.i18n-commander</ApplicationId>
|
||||
<ApplicationIdGuid>6D8A5F75-4C32-4807-AC75-CD934671D139</ApplicationIdGuid>
|
||||
|
||||
<!-- Versions -->
|
||||
<ApplicationDisplayVersion>1.0</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>1</ApplicationVersion>
|
||||
|
||||
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">14.2</SupportedOSPlatformVersion>
|
||||
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'">14.0</SupportedOSPlatformVersion>
|
||||
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">23.0</SupportedOSPlatformVersion>
|
||||
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.17763.0</SupportedOSPlatformVersion>
|
||||
<TargetPlatformMinVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.17763.0</TargetPlatformMinVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<!-- App Icon -->
|
||||
<MauiIcon Include="Resources\AppIcon\app.svg" />
|
||||
|
||||
<!-- Splash Screen -->
|
||||
<MauiSplashScreen Include="Resources\Splash\splash.svg" BaseSize="128,128" />
|
||||
|
||||
<!-- Custom Fonts -->
|
||||
<MauiFont Include="Resources\Fonts\*" />
|
||||
|
||||
<!-- Raw Assets (also remove the "Resources\Raw" prefix) -->
|
||||
<MauiAsset Include="Resources\Raw\**" LogicalName="%(RecursiveDir)%(Filename)%(Extension)" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\DataModel\DataModel.csproj" />
|
||||
<ProjectReference Include="..\Processor\Processor.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
@ -1,9 +0,0 @@
|
||||
@using System.Net.Http
|
||||
@using Microsoft.AspNetCore.Components.Forms
|
||||
@using Microsoft.AspNetCore.Components.Routing
|
||||
@using Microsoft.AspNetCore.Components.Web
|
||||
@using Microsoft.AspNetCore.Components.Web.Virtualization
|
||||
@using Microsoft.JSInterop
|
||||
@using UI_MAUI
|
||||
@using UI_MAUI.Shared
|
||||
@using UI_MAUI.Components;
|
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="512px" height="512px"><linearGradient id="PJGLEK~gN3IlHg2NgKbnSa" x1="24" x2="24" y1="654.016" y2="645.747" gradientTransform="matrix(1 0 0 -1 0 660.724)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#eba600"/><stop offset="1" stop-color="#c28200"/></linearGradient><path fill="url(#PJGLEK~gN3IlHg2NgKbnSa)" d="M24.414,10.414l-2.536-2.536C21.316,7.316,20.553,7,19.757,7H5C3.895,7,3,7.895,3,9v30 c0,1.105,0.895,2,2,2h38c1.105,0,2-0.895,2-2V13c0-1.105-0.895-2-2-2H25.828C25.298,11,24.789,10.789,24.414,10.414z"/><linearGradient id="PJGLEK~gN3IlHg2NgKbnSb" x1="24" x2="24" y1="649.87" y2="619.741" gradientTransform="matrix(1 0 0 -1 0 660.724)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffd869"/><stop offset="1" stop-color="#fec52b"/></linearGradient><path fill="url(#PJGLEK~gN3IlHg2NgKbnSb)" d="M21.586,14.414l3.268-3.268C24.947,11.053,25.074,11,25.207,11H43c1.105,0,2,0.895,2,2v26 c0,1.105-0.895,2-2,2H5c-1.105,0-2-0.895-2-2V15.5C3,15.224,3.224,15,3.5,15h16.672C20.702,15,21.211,14.789,21.586,14.414z"/><linearGradient id="PJGLEK~gN3IlHg2NgKbnSc" x1="28" x2="48" y1="409.276" y2="409.276" gradientTransform="translate(0 -371.276)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#21ad64"/><stop offset="1" stop-color="#088242"/></linearGradient><circle cx="38" cy="38" r="10" fill="url(#PJGLEK~gN3IlHg2NgKbnSc)"/><path fill="#fff" d="M38.5,43h-1c-0.276,0-0.5-0.224-0.5-0.5v-9c0-0.276,0.224-0.5,0.5-0.5h1c0.276,0,0.5,0.224,0.5,0.5 v9C39,42.776,38.776,43,38.5,43z"/><path fill="#fff" d="M33,38.5v-1c0-0.276,0.224-0.5,0.5-0.5h9c0.276,0,0.5,0.224,0.5,0.5v1c0,0.276-0.224,0.5-0.5,0.5h-9 C33.224,39,33,38.776,33,38.5z"/></svg>
|
Before Width: | Height: | Size: 1.7 KiB |
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="512px" height="512px"><path fill="#ffa000" d="M40,12H22l-4-4H8c-2.199,0-4,1.801-4,4v8h40v-4C44,13.801,42.199,12,40,12z"/><path fill="#ffca28" d="M40,12H8c-2.199,0-4,1.801-4,4v20c0,2.199,1.801,4,4,4h32c2.199,0,4-1.801,4-4V16 C44,13.801,42.199,12,40,12z"/><rect width="2" height="14.142" x="28" y="22.929" fill="#616161" transform="rotate(-45.001 29 30)"/><rect width="2" height="4.243" x="31.5" y="31.379" fill="#37474f" transform="rotate(-45.001 32.5 33.5)"/><path fill="#616161" d="M31,25c0,3.866-3.134,7-7,7s-7-3.134-7-7s3.134-7,7-7S31,21.134,31,25z"/><path fill="#64b5f6" d="M29,25c0,2.761-2.239,5-5,5s-5-2.239-5-5s2.239-5,5-5S29,22.239,29,25z"/></svg>
|
Before Width: | Height: | Size: 723 B |
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="512px" height="512px"><path fill="#546E7A" d="M6 14H42V18H6zM6 22H42V26H6zM6 30H42V34H6z"/><path fill="#2196F3" d="M24,45l-7-6.976h14L24,45z"/></svg>
|
Before Width: | Height: | Size: 217 B |
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="480px" height="480px"><path fill="#607D8B" d="M39.6,27.2c0.1-0.7,0.2-1.4,0.2-2.2s-0.1-1.5-0.2-2.2l4.5-3.2c0.4-0.3,0.6-0.9,0.3-1.4L40,10.8c-0.3-0.5-0.8-0.7-1.3-0.4l-5,2.3c-1.2-0.9-2.4-1.6-3.8-2.2l-0.5-5.5c-0.1-0.5-0.5-0.9-1-0.9h-8.6c-0.5,0-1,0.4-1,0.9l-0.5,5.5c-1.4,0.6-2.7,1.3-3.8,2.2l-5-2.3c-0.5-0.2-1.1,0-1.3,0.4l-4.3,7.4c-0.3,0.5-0.1,1.1,0.3,1.4l4.5,3.2c-0.1,0.7-0.2,1.4-0.2,2.2s0.1,1.5,0.2,2.2L4,30.4c-0.4,0.3-0.6,0.9-0.3,1.4L8,39.2c0.3,0.5,0.8,0.7,1.3,0.4l5-2.3c1.2,0.9,2.4,1.6,3.8,2.2l0.5,5.5c0.1,0.5,0.5,0.9,1,0.9h8.6c0.5,0,1-0.4,1-0.9l0.5-5.5c1.4-0.6,2.7-1.3,3.8-2.2l5,2.3c0.5,0.2,1.1,0,1.3-0.4l4.3-7.4c0.3-0.5,0.1-1.1-0.3-1.4L39.6,27.2z M24,35c-5.5,0-10-4.5-10-10c0-5.5,4.5-10,10-10c5.5,0,10,4.5,10,10C34,30.5,29.5,35,24,35z"/><path fill="#455A64" d="M24,13c-6.6,0-12,5.4-12,12c0,6.6,5.4,12,12,12s12-5.4,12-12C36,18.4,30.6,13,24,13z M24,30c-2.8,0-5-2.2-5-5c0-2.8,2.2-5,5-5s5,2.2,5,5C29,27.8,26.8,30,24,30z"/></svg>
|
Before Width: | Height: | Size: 990 B |
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="512px" height="512px"><linearGradient id="gCW9sGJUkBnBLRc40wQXGa" x1="25.447" x2="44.728" y1="4.921" y2="36.29" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#42a3f2"/><stop offset="1" stop-color="#42a4eb"/></linearGradient><path fill="url(#gCW9sGJUkBnBLRc40wQXGa)" d="M42,8H19l11,30h12c1.105,0,2-0.895,2-2V10C44,8.895,43.105,8,42,8z"/><linearGradient id="gCW9sGJUkBnBLRc40wQXGb" x1="3.865" x2="23.412" y1="9.86" y2="41.663" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#1d59b3"/><stop offset="1" stop-color="#195bbc"/></linearGradient><path fill="url(#gCW9sGJUkBnBLRc40wQXGb)" d="M19,8H6c-1.105,0-2,0.895-2,2v26c0,1.105,0.895,2,2,2h8v7.998 c0,0.891,1.077,1.337,1.707,0.707L24.412,38H30L19,8z"/><path fill="#fff" d="M12,25h6v2h-6V25z"/><path fill="#fff" d="M12.109,29L15,20l2.906,9h2.11L16,17h-2l-4,12H12.109z"/><linearGradient id="gCW9sGJUkBnBLRc40wQXGc" x1="29.064" x2="38.79" y1="23.554" y2="23.554" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#11408a"/><stop offset="1" stop-color="#103f8f"/></linearGradient><path fill="url(#gCW9sGJUkBnBLRc40wQXGc)" d="M29.064,27.223c0.061-0.031,4.994-3.219,7.936-9.115L38.79,19 c-3.082,6.25-7.457,9.292-8.509,10L29.064,27.223z"/><linearGradient id="gCW9sGJUkBnBLRc40wQXGd" x1="28" x2="40" y1="23.5" y2="23.5" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#11408a"/><stop offset="1" stop-color="#103f8f"/></linearGradient><path fill="url(#gCW9sGJUkBnBLRc40wQXGd)" d="M38,29c0,0-5-2.583-7.769-6.998L32,21c2.333,3.833,6.981,6.26,6.981,6.26L38,29z M28,18h12v2 H28V18z"/><linearGradient id="gCW9sGJUkBnBLRc40wQXGe" x1="33" x2="35" y1="18" y2="18" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#11408a"/><stop offset="1" stop-color="#103f8f"/></linearGradient><path fill="url(#gCW9sGJUkBnBLRc40wQXGe)" d="M33,16h2v4h-2V16z"/></svg>
|
Before Width: | Height: | Size: 1.9 KiB |
@ -1,18 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover" />
|
||||
<title>I18N Commander</title>
|
||||
<base href="/" />
|
||||
<link rel="stylesheet" href="css/bootstrap.min.css" />
|
||||
<link rel="stylesheet" href="css/app.css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="app">Loading...</div>
|
||||
|
||||
<script src="js/bootstrap.bundle.min.js"></script>
|
||||
<script src="_framework/blazor.webview.js" autostart="false"></script>
|
||||
</body>
|
||||
</html>
|
@ -1,76 +0,0 @@
|
||||
using DataModel.Database;
|
||||
|
||||
namespace UI_WinForms;
|
||||
|
||||
internal static class AppEvents
|
||||
{
|
||||
static AppEvents()
|
||||
{
|
||||
AppEvents.AddSomethingHandlers();
|
||||
}
|
||||
|
||||
internal static void ResetAllSubscriptions()
|
||||
{
|
||||
WhenSettingsChanged = null;
|
||||
WhenSectionChanged = null;
|
||||
WhenTextElementChanged = null;
|
||||
WhenTranslationChanged = null;
|
||||
|
||||
AppEvents.AddSomethingHandlers();
|
||||
}
|
||||
|
||||
#region Event: Settings changed
|
||||
|
||||
internal static event EventHandler? WhenSettingsChanged;
|
||||
|
||||
internal static void SettingsChanged() => WhenSettingsChanged?.Invoke(null, EventArgs.Empty);
|
||||
|
||||
#endregion
|
||||
|
||||
#region Event: Section was changed
|
||||
|
||||
// Section changed event which can be subscribed:
|
||||
internal static event EventHandler<Section>? WhenSectionChanged;
|
||||
|
||||
// Method to raise the section changed event:
|
||||
internal static void SectionChanged(Section section) => WhenSectionChanged?.Invoke(null, section);
|
||||
|
||||
#endregion
|
||||
|
||||
#region Event: Text element was changed
|
||||
|
||||
// Text element changed event which can be subscribed:
|
||||
internal static event EventHandler<TextElement?>? WhenTextElementChanged;
|
||||
|
||||
// Method to raise the text element changed event:
|
||||
internal static void TextElementChanged(TextElement? textElement) => WhenTextElementChanged?.Invoke(null, textElement);
|
||||
|
||||
#endregion
|
||||
|
||||
#region Translation was changed
|
||||
|
||||
// Translation changed event which can be subscribed:
|
||||
internal static event EventHandler<Translation?>? WhenTranslationChanged;
|
||||
|
||||
// Method to raise the translation changed event:
|
||||
internal static void TranslationChanged(Translation? translation) => WhenTranslationChanged?.Invoke(null, translation);
|
||||
|
||||
#endregion
|
||||
|
||||
#region Event: Something was changed
|
||||
|
||||
internal static event EventHandler? WhenSomethingChanged;
|
||||
|
||||
internal static void SomethingChanged() => WhenSomethingChanged?.Invoke(null, EventArgs.Empty);
|
||||
|
||||
private static void AddSomethingHandlers()
|
||||
{
|
||||
// Raise the something event when any of the other change-events are raised:
|
||||
WhenSectionChanged += (sender, args) => WhenSomethingChanged?.Invoke(sender, EventArgs.Empty);
|
||||
WhenTextElementChanged += (sender, args) => WhenSomethingChanged?.Invoke(sender, EventArgs.Empty);
|
||||
WhenTranslationChanged += (sender, args) => WhenSomethingChanged?.Invoke(sender, EventArgs.Empty);
|
||||
WhenSettingsChanged += (sender, args) => WhenSomethingChanged?.Invoke(sender, EventArgs.Empty);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
@ -1,185 +0,0 @@
|
||||
namespace UI_WinForms.Components
|
||||
{
|
||||
partial class LoaderStart
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.tableLayout = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.pictureBox = new System.Windows.Forms.PictureBox();
|
||||
this.labelTitle = new System.Windows.Forms.Label();
|
||||
this.flowLayoutButtons = new System.Windows.Forms.FlowLayoutPanel();
|
||||
this.buttonNew = new System.Windows.Forms.Button();
|
||||
this.buttonOpen = new System.Windows.Forms.Button();
|
||||
this.labelVersion = new System.Windows.Forms.Label();
|
||||
this.contextMenuRecentProjects = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tableLayout.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit();
|
||||
this.flowLayoutButtons.SuspendLayout();
|
||||
this.contextMenuRecentProjects.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// tableLayout
|
||||
//
|
||||
this.tableLayout.ColumnCount = 4;
|
||||
this.tableLayout.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||
this.tableLayout.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 128F));
|
||||
this.tableLayout.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 360F));
|
||||
this.tableLayout.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||
this.tableLayout.Controls.Add(this.pictureBox, 1, 1);
|
||||
this.tableLayout.Controls.Add(this.labelTitle, 2, 1);
|
||||
this.tableLayout.Controls.Add(this.flowLayoutButtons, 1, 2);
|
||||
this.tableLayout.Controls.Add(this.labelVersion, 1, 3);
|
||||
this.tableLayout.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tableLayout.Location = new System.Drawing.Point(0, 0);
|
||||
this.tableLayout.Name = "tableLayout";
|
||||
this.tableLayout.RowCount = 5;
|
||||
this.tableLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||
this.tableLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 128F));
|
||||
this.tableLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 66F));
|
||||
this.tableLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 40F));
|
||||
this.tableLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||
this.tableLayout.Size = new System.Drawing.Size(937, 465);
|
||||
this.tableLayout.TabIndex = 0;
|
||||
//
|
||||
// pictureBox
|
||||
//
|
||||
this.pictureBox.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.pictureBox.Image = global::UI_WinForms.Resources.Icons.icons8_language_512;
|
||||
this.pictureBox.Location = new System.Drawing.Point(227, 118);
|
||||
this.pictureBox.Name = "pictureBox";
|
||||
this.pictureBox.Size = new System.Drawing.Size(122, 122);
|
||||
this.pictureBox.TabIndex = 0;
|
||||
this.pictureBox.TabStop = false;
|
||||
//
|
||||
// labelTitle
|
||||
//
|
||||
this.labelTitle.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.labelTitle.Font = new System.Drawing.Font("Segoe UI", 28F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||
this.labelTitle.Location = new System.Drawing.Point(355, 115);
|
||||
this.labelTitle.Name = "labelTitle";
|
||||
this.labelTitle.Size = new System.Drawing.Size(354, 128);
|
||||
this.labelTitle.TabIndex = 1;
|
||||
this.labelTitle.Text = "I18N Commander";
|
||||
this.labelTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// flowLayoutButtons
|
||||
//
|
||||
this.tableLayout.SetColumnSpan(this.flowLayoutButtons, 2);
|
||||
this.flowLayoutButtons.Controls.Add(this.buttonNew);
|
||||
this.flowLayoutButtons.Controls.Add(this.buttonOpen);
|
||||
this.flowLayoutButtons.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.flowLayoutButtons.Location = new System.Drawing.Point(224, 243);
|
||||
this.flowLayoutButtons.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.flowLayoutButtons.Name = "flowLayoutButtons";
|
||||
this.flowLayoutButtons.Size = new System.Drawing.Size(488, 66);
|
||||
this.flowLayoutButtons.TabIndex = 2;
|
||||
//
|
||||
// buttonNew
|
||||
//
|
||||
this.buttonNew.Image = global::UI_WinForms.Resources.Icons.icons8_new_window_512;
|
||||
this.buttonNew.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.buttonNew.Location = new System.Drawing.Point(3, 3);
|
||||
this.buttonNew.Name = "buttonNew";
|
||||
this.buttonNew.Size = new System.Drawing.Size(200, 60);
|
||||
this.buttonNew.TabIndex = 0;
|
||||
this.buttonNew.Text = "New Project";
|
||||
this.buttonNew.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
|
||||
this.buttonNew.UseVisualStyleBackColor = true;
|
||||
this.buttonNew.Click += new System.EventHandler(this.buttonNew_Click);
|
||||
//
|
||||
// buttonOpen
|
||||
//
|
||||
this.buttonOpen.Image = global::UI_WinForms.Resources.Icons.icons8_open_file_under_cursor_512;
|
||||
this.buttonOpen.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.buttonOpen.Location = new System.Drawing.Point(209, 3);
|
||||
this.buttonOpen.Name = "buttonOpen";
|
||||
this.buttonOpen.Size = new System.Drawing.Size(259, 60);
|
||||
this.buttonOpen.TabIndex = 1;
|
||||
this.buttonOpen.Text = "Open Recent Project";
|
||||
this.buttonOpen.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
|
||||
this.buttonOpen.UseVisualStyleBackColor = true;
|
||||
this.buttonOpen.Click += new System.EventHandler(this.buttonOpen_Click);
|
||||
//
|
||||
// labelVersion
|
||||
//
|
||||
this.labelVersion.AutoSize = true;
|
||||
this.labelVersion.BackColor = System.Drawing.Color.LightGray;
|
||||
this.tableLayout.SetColumnSpan(this.labelVersion, 2);
|
||||
this.labelVersion.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.labelVersion.Location = new System.Drawing.Point(227, 309);
|
||||
this.labelVersion.Name = "labelVersion";
|
||||
this.labelVersion.Size = new System.Drawing.Size(482, 40);
|
||||
this.labelVersion.TabIndex = 3;
|
||||
this.labelVersion.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// contextMenuRecentProjects
|
||||
//
|
||||
this.contextMenuRecentProjects.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||
this.contextMenuRecentProjects.ImageScalingSize = new System.Drawing.Size(20, 20);
|
||||
this.contextMenuRecentProjects.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.toolStripMenuItem1});
|
||||
this.contextMenuRecentProjects.Name = "contextMenuRecentProjects";
|
||||
this.contextMenuRecentProjects.Size = new System.Drawing.Size(73, 26);
|
||||
this.contextMenuRecentProjects.Closing += new System.Windows.Forms.ToolStripDropDownClosingEventHandler(this.contextMenuRecentProjects_Closing);
|
||||
//
|
||||
// toolStripMenuItem1
|
||||
//
|
||||
this.toolStripMenuItem1.Name = "toolStripMenuItem1";
|
||||
this.toolStripMenuItem1.Size = new System.Drawing.Size(72, 22);
|
||||
//
|
||||
// LoaderStart
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(120F, 120F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.Controls.Add(this.tableLayout);
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||
this.Name = "LoaderStart";
|
||||
this.Size = new System.Drawing.Size(937, 465);
|
||||
this.tableLayout.ResumeLayout(false);
|
||||
this.tableLayout.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox)).EndInit();
|
||||
this.flowLayoutButtons.ResumeLayout(false);
|
||||
this.contextMenuRecentProjects.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private TableLayoutPanel tableLayout;
|
||||
private PictureBox pictureBox;
|
||||
private Label labelTitle;
|
||||
private FlowLayoutPanel flowLayoutButtons;
|
||||
private Button buttonNew;
|
||||
private Button buttonOpen;
|
||||
private ContextMenuStrip contextMenuRecentProjects;
|
||||
private ToolStripMenuItem toolStripMenuItem1;
|
||||
private Label labelVersion;
|
||||
}
|
||||
}
|
@ -1,206 +0,0 @@
|
||||
using System.ComponentModel;
|
||||
using Microsoft.Win32;
|
||||
using Version = Processor.Version;
|
||||
|
||||
namespace UI_WinForms.Components;
|
||||
|
||||
[DefaultEvent(nameof(LoadProject))]
|
||||
public partial class LoaderStart : UserControl
|
||||
{
|
||||
private bool areRecentProjectsVisible = false;
|
||||
|
||||
public LoaderStart()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
this.labelVersion.Text = Version.Text;
|
||||
}
|
||||
|
||||
#region Recent Projects
|
||||
|
||||
private static RegistryKey I18NCommanderKey => Registry.CurrentUser.OpenSubKey("Software", RegistryKeyPermissionCheck.ReadWriteSubTree)!.CreateSubKey("I18N Commander", RegistryKeyPermissionCheck.ReadWriteSubTree);
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the list of recent projects without any extras e.g. it does not prune the list of projects.
|
||||
/// </summary>
|
||||
private static List<string> RecentProjects
|
||||
{
|
||||
get
|
||||
{
|
||||
using var regKey = LoaderStart.I18NCommanderKey;
|
||||
var recentProjectsValue = regKey.GetValue("recentProjects");
|
||||
return recentProjectsValue switch
|
||||
{
|
||||
string[] list => new List<string>(list),
|
||||
_ => new List<string>(),
|
||||
};
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
using var regKey = LoaderStart.I18NCommanderKey;
|
||||
regKey.SetValue("recentProjects", value.ToArray(), RegistryValueKind.MultiString);
|
||||
}
|
||||
}
|
||||
|
||||
private static void UpdateRecentProjectsWithPruning(string latestUsedProjectPath)
|
||||
{
|
||||
var previousRecentList = LoaderStart.RecentProjects;
|
||||
|
||||
// Check, if the latest project is identical to the next project we open. In that case, we don't add it to the list.
|
||||
if (previousRecentList.Any() && previousRecentList[0] == latestUsedProjectPath)
|
||||
return;
|
||||
|
||||
// Add the next project to the list:
|
||||
previousRecentList.Insert(0, latestUsedProjectPath);
|
||||
|
||||
// Prune the list:
|
||||
if (previousRecentList.Count > 6)
|
||||
previousRecentList = previousRecentList.Take(6).ToList();
|
||||
|
||||
LoaderStart.RecentProjects = previousRecentList;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
// Opens the recent projects dropdown menu.
|
||||
private void buttonOpen_Click(object sender, EventArgs e)
|
||||
{
|
||||
if(this.DesignMode)
|
||||
return;
|
||||
|
||||
if(this.areRecentProjectsVisible)
|
||||
{
|
||||
this.areRecentProjectsVisible = false;
|
||||
this.contextMenuRecentProjects.Close();
|
||||
return;
|
||||
}
|
||||
|
||||
var recentProjects = LoaderStart.RecentProjects;
|
||||
this.contextMenuRecentProjects.Items.Clear();
|
||||
this.contextMenuRecentProjects.Items.Add("Browse for project...", Resources.Icons.icons8_browse_folder_512, (innerSender, args) => this.BrowseForProject());
|
||||
foreach (var recentProject in recentProjects)
|
||||
{
|
||||
var fileInfo = new FileInfo(recentProject);
|
||||
|
||||
// Split the file's path into each folder's name:
|
||||
var folderNames = fileInfo.DirectoryName!.Split(Path.DirectorySeparatorChar);
|
||||
|
||||
// Distinguish between I18N Commander projects and JSON imports:
|
||||
if (fileInfo.Extension == ".i18nc")
|
||||
{
|
||||
// Render this entry:
|
||||
var item = this.contextMenuRecentProjects.Items.Add($"{folderNames.Last()}: {fileInfo.Name}", Resources.Icons.icons8_document_512, (innerSender, args) => this.OpenRecentProject(innerSender, LoaderAction.LOAD_PROJECT));
|
||||
item.Tag = recentProject;
|
||||
}
|
||||
else if (fileInfo.Extension == ".json")
|
||||
{
|
||||
// Render this entry:
|
||||
var item = this.contextMenuRecentProjects.Items.Add($"{folderNames.Last()}: {fileInfo.Name}", Resources.Icons.icons8_git, (innerSender, args) => this.OpenRecentProject(innerSender, LoaderAction.IMPORT_JSON));
|
||||
item.Tag = recentProject;
|
||||
}
|
||||
}
|
||||
|
||||
var button = (sender as Button)!;
|
||||
this.contextMenuRecentProjects.Show(button, 0, button.Height);
|
||||
this.areRecentProjectsVisible = true;
|
||||
}
|
||||
|
||||
private void buttonNew_Click(object sender, EventArgs e)
|
||||
{
|
||||
if(this.DesignMode)
|
||||
return;
|
||||
|
||||
var saveDialog = new SaveFileDialog
|
||||
{
|
||||
AddExtension = true,
|
||||
CheckPathExists = true,
|
||||
CheckFileExists = false,
|
||||
CreatePrompt = false,
|
||||
OverwritePrompt = true,
|
||||
DereferenceLinks = true,
|
||||
DefaultExt = ".i18nc",
|
||||
Filter = "I18N Commander Files (*.i18nc)|*.i18nc",
|
||||
RestoreDirectory = true,
|
||||
Title = "Create a new I18N Commander file",
|
||||
};
|
||||
|
||||
var dialogResult = saveDialog.ShowDialog(this);
|
||||
if (dialogResult != DialogResult.OK)
|
||||
return;
|
||||
|
||||
var destinationFilePath = saveDialog.FileName;
|
||||
|
||||
// When the user chose an existing file, we delete it:
|
||||
// (note: the user already accepts overwriting the file)
|
||||
if (File.Exists(destinationFilePath))
|
||||
File.Delete(destinationFilePath);
|
||||
|
||||
LoaderStart.UpdateRecentProjectsWithPruning(destinationFilePath);
|
||||
this.OpenProject(LoaderAction.CREATE_NEW_PROJECT, destinationFilePath);
|
||||
}
|
||||
|
||||
private void BrowseForProject()
|
||||
{
|
||||
var openDialog = new OpenFileDialog
|
||||
{
|
||||
AddExtension = true,
|
||||
CheckPathExists = true,
|
||||
CheckFileExists = true,
|
||||
DereferenceLinks = true,
|
||||
DefaultExt = ".i18nc",
|
||||
|
||||
// I18N Commander files (*.i18nc) or JSON files (*.json):
|
||||
Filter = "I18N Commander Files (*.i18nc)|*.i18nc|JSON Files (*.json)|*.json",
|
||||
Multiselect = false,
|
||||
RestoreDirectory = true,
|
||||
Title = "Open an I18N Commander file or Import a JSON file",
|
||||
};
|
||||
var dialogResult = openDialog.ShowDialog(this);
|
||||
if (dialogResult != DialogResult.OK)
|
||||
return;
|
||||
|
||||
var projectFilePath = openDialog.FileName;
|
||||
LoaderStart.UpdateRecentProjectsWithPruning(projectFilePath);
|
||||
|
||||
// Check, if the user chose an I18N Commander file or a JSON file:
|
||||
if (projectFilePath.ToLowerInvariant().EndsWith(".i18nc", StringComparison.InvariantCulture))
|
||||
this.OpenProject(LoaderAction.LOAD_PROJECT, projectFilePath);
|
||||
else if (projectFilePath.ToLowerInvariant().EndsWith(".json", StringComparison.InvariantCulture))
|
||||
this.OpenProject(LoaderAction.IMPORT_JSON, projectFilePath);
|
||||
}
|
||||
|
||||
private void OpenRecentProject(object? sender, LoaderAction action)
|
||||
{
|
||||
if (sender is not ToolStripItem item)
|
||||
return;
|
||||
|
||||
var path = (item.Tag as string)!;
|
||||
LoaderStart.UpdateRecentProjectsWithPruning(path);
|
||||
this.OpenProject(action, path);
|
||||
}
|
||||
|
||||
private void OpenProject(LoaderAction action, string path)
|
||||
{
|
||||
// Hint: the project file might or might not exist (new project vs. recent project)
|
||||
this.LoadProject?.Invoke(this, new LoaderResult(action, path));
|
||||
}
|
||||
|
||||
private void contextMenuRecentProjects_Closing(object sender, ToolStripDropDownClosingEventArgs e)
|
||||
{
|
||||
this.areRecentProjectsVisible = false;
|
||||
}
|
||||
|
||||
[Category("Settings"), Description("When the user chooses a project to load.")]
|
||||
public event EventHandler<LoaderResult>? LoadProject;
|
||||
|
||||
public readonly record struct LoaderResult(LoaderAction Action, string DataFile);
|
||||
|
||||
public enum LoaderAction
|
||||
{
|
||||
NONE,
|
||||
|
||||
LOAD_PROJECT,
|
||||
CREATE_NEW_PROJECT,
|
||||
IMPORT_JSON,
|
||||
}
|
||||
}
|
@ -1,63 +0,0 @@
|
||||
<root>
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="contextMenuRecentProjects.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
251
I18N Commander/UI WinForms/Components/Main.Designer.cs
generated
@ -1,251 +0,0 @@
|
||||
namespace UI_WinForms.Components
|
||||
{
|
||||
partial class Main
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Main));
|
||||
this.tableLayout = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.splitContainerLR = new System.Windows.Forms.SplitContainer();
|
||||
this.sectionTree = new UI_WinForms.Components.SectionTree();
|
||||
this.splitContainerRTB = new System.Windows.Forms.SplitContainer();
|
||||
this.textElements = new UI_WinForms.Components.TextElements();
|
||||
this.translations = new UI_WinForms.Components.Translations();
|
||||
this.translationProgress = new UI_WinForms.Components.TranslationProgress();
|
||||
this.tabControl = new System.Windows.Forms.TabControl();
|
||||
this.tabTranslation = new System.Windows.Forms.TabPage();
|
||||
this.tabSettings = new System.Windows.Forms.TabPage();
|
||||
this.settings = new UI_WinForms.Components.Settings();
|
||||
this.imageList = new System.Windows.Forms.ImageList(this.components);
|
||||
this.tableLayout.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainerLR)).BeginInit();
|
||||
this.splitContainerLR.Panel1.SuspendLayout();
|
||||
this.splitContainerLR.Panel2.SuspendLayout();
|
||||
this.splitContainerLR.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainerRTB)).BeginInit();
|
||||
this.splitContainerRTB.Panel1.SuspendLayout();
|
||||
this.splitContainerRTB.Panel2.SuspendLayout();
|
||||
this.splitContainerRTB.SuspendLayout();
|
||||
this.tabControl.SuspendLayout();
|
||||
this.tabTranslation.SuspendLayout();
|
||||
this.tabSettings.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// tableLayout
|
||||
//
|
||||
this.tableLayout.ColumnCount = 1;
|
||||
this.tableLayout.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayout.Controls.Add(this.splitContainerLR, 0, 1);
|
||||
this.tableLayout.Controls.Add(this.translationProgress, 0, 0);
|
||||
this.tableLayout.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tableLayout.Location = new System.Drawing.Point(3, 3);
|
||||
this.tableLayout.Name = "tableLayout";
|
||||
this.tableLayout.RowCount = 2;
|
||||
this.tableLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
|
||||
this.tableLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayout.Size = new System.Drawing.Size(1237, 709);
|
||||
this.tableLayout.TabIndex = 0;
|
||||
//
|
||||
// splitContainerLR
|
||||
//
|
||||
this.splitContainerLR.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.splitContainerLR.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainerLR.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
|
||||
this.splitContainerLR.Location = new System.Drawing.Point(3, 23);
|
||||
this.splitContainerLR.Name = "splitContainerLR";
|
||||
//
|
||||
// splitContainerLR.Panel1
|
||||
//
|
||||
this.splitContainerLR.Panel1.Controls.Add(this.sectionTree);
|
||||
this.splitContainerLR.Panel1MinSize = 300;
|
||||
//
|
||||
// splitContainerLR.Panel2
|
||||
//
|
||||
this.splitContainerLR.Panel2.Controls.Add(this.splitContainerRTB);
|
||||
this.splitContainerLR.Size = new System.Drawing.Size(1231, 683);
|
||||
this.splitContainerLR.SplitterDistance = 319;
|
||||
this.splitContainerLR.TabIndex = 1;
|
||||
//
|
||||
// sectionTree
|
||||
//
|
||||
this.sectionTree.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.sectionTree.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||
this.sectionTree.Location = new System.Drawing.Point(0, 0);
|
||||
this.sectionTree.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||
this.sectionTree.Name = "sectionTree";
|
||||
this.sectionTree.Size = new System.Drawing.Size(317, 681);
|
||||
this.sectionTree.TabIndex = 0;
|
||||
//
|
||||
// splitContainerRTB
|
||||
//
|
||||
this.splitContainerRTB.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.splitContainerRTB.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainerRTB.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
|
||||
this.splitContainerRTB.Location = new System.Drawing.Point(0, 0);
|
||||
this.splitContainerRTB.Name = "splitContainerRTB";
|
||||
this.splitContainerRTB.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
||||
//
|
||||
// splitContainerRTB.Panel1
|
||||
//
|
||||
this.splitContainerRTB.Panel1.Controls.Add(this.textElements);
|
||||
this.splitContainerRTB.Panel1MinSize = 376;
|
||||
//
|
||||
// splitContainerRTB.Panel2
|
||||
//
|
||||
this.splitContainerRTB.Panel2.Controls.Add(this.translations);
|
||||
this.splitContainerRTB.Size = new System.Drawing.Size(908, 683);
|
||||
this.splitContainerRTB.SplitterDistance = 376;
|
||||
this.splitContainerRTB.TabIndex = 0;
|
||||
//
|
||||
// textElements
|
||||
//
|
||||
this.textElements.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.textElements.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||
this.textElements.Location = new System.Drawing.Point(0, 0);
|
||||
this.textElements.Name = "textElements";
|
||||
this.textElements.Size = new System.Drawing.Size(906, 374);
|
||||
this.textElements.TabIndex = 0;
|
||||
//
|
||||
// translations
|
||||
//
|
||||
this.translations.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.translations.Enabled = false;
|
||||
this.translations.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||
this.translations.Location = new System.Drawing.Point(0, 0);
|
||||
this.translations.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||
this.translations.Name = "translations";
|
||||
this.translations.Size = new System.Drawing.Size(906, 301);
|
||||
this.translations.TabIndex = 0;
|
||||
//
|
||||
// translationProgress
|
||||
//
|
||||
this.translationProgress.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.translationProgress.Location = new System.Drawing.Point(0, 0);
|
||||
this.translationProgress.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.translationProgress.Name = "translationProgress";
|
||||
this.translationProgress.Size = new System.Drawing.Size(1237, 20);
|
||||
this.translationProgress.TabIndex = 2;
|
||||
//
|
||||
// tabControl
|
||||
//
|
||||
this.tabControl.Alignment = System.Windows.Forms.TabAlignment.Left;
|
||||
this.tabControl.Controls.Add(this.tabTranslation);
|
||||
this.tabControl.Controls.Add(this.tabSettings);
|
||||
this.tabControl.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tabControl.ImageList = this.imageList;
|
||||
this.tabControl.Location = new System.Drawing.Point(0, 0);
|
||||
this.tabControl.Multiline = true;
|
||||
this.tabControl.Name = "tabControl";
|
||||
this.tabControl.Padding = new System.Drawing.Point(12, 12);
|
||||
this.tabControl.SelectedIndex = 0;
|
||||
this.tabControl.Size = new System.Drawing.Size(1317, 723);
|
||||
this.tabControl.TabIndex = 1;
|
||||
this.tabControl.SelectedIndexChanged += new System.EventHandler(this.tabControl_SelectedIndexChanged);
|
||||
//
|
||||
// tabTranslation
|
||||
//
|
||||
this.tabTranslation.Controls.Add(this.tableLayout);
|
||||
this.tabTranslation.ImageIndex = 1;
|
||||
this.tabTranslation.Location = new System.Drawing.Point(70, 4);
|
||||
this.tabTranslation.Name = "tabTranslation";
|
||||
this.tabTranslation.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabTranslation.Size = new System.Drawing.Size(1243, 715);
|
||||
this.tabTranslation.TabIndex = 0;
|
||||
this.tabTranslation.Text = "Translation";
|
||||
this.tabTranslation.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// tabSettings
|
||||
//
|
||||
this.tabSettings.Controls.Add(this.settings);
|
||||
this.tabSettings.ImageIndex = 0;
|
||||
this.tabSettings.Location = new System.Drawing.Point(70, 4);
|
||||
this.tabSettings.Name = "tabSettings";
|
||||
this.tabSettings.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabSettings.Size = new System.Drawing.Size(1243, 715);
|
||||
this.tabSettings.TabIndex = 1;
|
||||
this.tabSettings.Text = "Settings";
|
||||
this.tabSettings.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// settings
|
||||
//
|
||||
this.settings.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.settings.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||
this.settings.Location = new System.Drawing.Point(3, 3);
|
||||
this.settings.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||
this.settings.Name = "settings";
|
||||
this.settings.Size = new System.Drawing.Size(1237, 709);
|
||||
this.settings.TabIndex = 0;
|
||||
//
|
||||
// imageList
|
||||
//
|
||||
this.imageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit;
|
||||
this.imageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList.ImageStream")));
|
||||
this.imageList.TransparentColor = System.Drawing.Color.Transparent;
|
||||
this.imageList.Images.SetKeyName(0, "icons8-settings.svg.png");
|
||||
this.imageList.Images.SetKeyName(1, "icons8-language-45.png");
|
||||
//
|
||||
// Main
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.Controls.Add(this.tabControl);
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||
this.Name = "Main";
|
||||
this.Size = new System.Drawing.Size(1317, 723);
|
||||
this.tableLayout.ResumeLayout(false);
|
||||
this.splitContainerLR.Panel1.ResumeLayout(false);
|
||||
this.splitContainerLR.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainerLR)).EndInit();
|
||||
this.splitContainerLR.ResumeLayout(false);
|
||||
this.splitContainerRTB.Panel1.ResumeLayout(false);
|
||||
this.splitContainerRTB.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainerRTB)).EndInit();
|
||||
this.splitContainerRTB.ResumeLayout(false);
|
||||
this.tabControl.ResumeLayout(false);
|
||||
this.tabTranslation.ResumeLayout(false);
|
||||
this.tabSettings.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private TableLayoutPanel tableLayout;
|
||||
private SplitContainer splitContainerLR;
|
||||
private SplitContainer splitContainerRTB;
|
||||
private SectionTree sectionTree;
|
||||
private TextElements textElements;
|
||||
private TabControl tabControl;
|
||||
private TabPage tabTranslation;
|
||||
private TabPage tabSettings;
|
||||
private ImageList imageList;
|
||||
private Settings settings;
|
||||
private Translations translations;
|
||||
private TranslationProgress translationProgress;
|
||||
}
|
||||
}
|
@ -1,56 +0,0 @@
|
||||
using DataModel.Database;
|
||||
using Processor;
|
||||
using UI_WinForms.Dialogs;
|
||||
|
||||
namespace UI_WinForms.Components;
|
||||
|
||||
public partial class Main : UserControl
|
||||
{
|
||||
public Main()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
Program.RestartMainApp = false;
|
||||
|
||||
// Register the something changed event to trigger the export:
|
||||
AppEvents.WhenSomethingChanged += async (_, _) => await ExportProcessor.TriggerExport();
|
||||
|
||||
// Check, if the DeepL integration is enabled, but no API key is set:
|
||||
this.Load += async (sender, args) =>
|
||||
{
|
||||
var deepLAPIKey = await AppSettings.GetDeepLAPIKey();
|
||||
var deepLMode = await AppSettings.GetDeepLMode();
|
||||
if (deepLMode is not SettingDeepLMode.DISABLED && string.IsNullOrWhiteSpace(deepLAPIKey))
|
||||
{
|
||||
// Show the input dialog to ask the user for the DeepL API key:
|
||||
var inputDialog = InputDialog.Show(new InputDialog.Options
|
||||
{
|
||||
Title = "I18NCommander - DeepL API Key",
|
||||
Message = "The DeepL integration is enabled, but there is no API key set. Do you want to set one now?",
|
||||
OkButtonText = "Set API key",
|
||||
CancelButtonText = "No, thanks",
|
||||
ShowQuestionCheckbox = false,
|
||||
});
|
||||
|
||||
if (inputDialog.DialogResult == DialogResult.OK)
|
||||
{
|
||||
await AppSettings.SetDeepLAPIKey(inputDialog.Text);
|
||||
AppEvents.SettingsChanged();
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private void tabControl_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (this.settings.NeedRestart())
|
||||
{
|
||||
var result = MessageBox.Show("You need to restart the app for the changes to take effect. Do you want to restart?", "Restart required", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
|
||||
if(result == DialogResult.Yes)
|
||||
{
|
||||
Program.RestartMainApp = true;
|
||||
AppEvents.ResetAllSubscriptions();
|
||||
this.ParentForm!.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,386 +0,0 @@
|
||||
<root>
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="imageList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<data name="imageList.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs
|
||||
LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu
|
||||
SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAHEoAAAJNU0Z0AUkBTAIBAQIB
|
||||
AAFgAQABYAEAAS0BAAEtAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABtAMAAS0DAAEBAQABIAUAAZAB
|
||||
fvoAAw8BFAMTARkEAf8A/wAqAAMnATkDTgGWA1EBoQNRAaEDUQGhA04BlgMnATp8AAMLAQ4CUwFRAaIB
|
||||
XQFbAVoBxwMlATb/AP8AJgADEQEWA1EB8wE6AjkB/wE9ATwBOwH/AT0BPAE7Af8BPQE8ATsB/wE6AjkB
|
||||
/wNSAfQDEQEWeAADEgEYA10BzAG8AVsBGQH/AWICXgHXAxABFf8A/wAiAAM/AW4BRgFDAUIB/wHEAa8B
|
||||
pgH/AecBzQHCAf8B5wHNAcIB/wHnAc0BwgH/AcQBrgGmAf8BRgFDAUIB/wNAAXB4AAMSARgDXQHMAbwB
|
||||
WwEZAf8BvAFbARkB/wFhAV8BWwHYAyUBNwQB/wD/ABoAA1gBtwFXAVIBUAH/Ad4BxQG7Af8B5wHNAcIB
|
||||
/wHnAc0BwgH/AecBzQHCAf8B3gHFAbsB/wFXAVIBTwH/A1gBugQBdAADEgEYA10BzAG7AVsBGQH/AbwB
|
||||
WwEZAf8BvAFbARkB/wFjAl8B1QIaARkBI/8A8QADAwEEAyIBMQMpAT4DEgEYFAADEgEYA2AB2wF7AXAB
|
||||
bAH/AecBzQHCAf8B5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B5wHNAcIB/wF6AXABawH/A2AB2wMTARoU
|
||||
AAMSARcDKQE+AyIBMQMDAQRQAAMSARgDXQHMAbsBWwEZAf8BuwFbARkB/wG7AVsBGQH/AbwBWwEZAf8B
|
||||
YQJdAdQDIQEvBAH/AOUAAwIBAwM9AWkDWwHkA1cB7wNbAdADNgFZAwQBBQwAAygBOwNdAewBqwGaAZMB
|
||||
/wHnAc0BwgH/AecBzQHCAf8B5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8BqgGZAZIB/wNcAe0DKQE9DAAD
|
||||
AwEEAzYBVwNdAc8DVwHvA18B5QM+AWoDAgEDTAADEgEYA10BzAG7AVsBGgH/AbsBWwEZAf8BuwFbARkB
|
||||
/wG7AVsBGQH/AbsBWwEZAf8BXwFcAVsB0wMiATH/AOEAAwIBAwM0AVMDWAHxAW8BaQFmAf8BtwGrAaQB
|
||||
/wFdAVkBVwH/AzoB+wNRAaQDGQEiAwQBBQMJAQwDPwFuATgCNwH7AdwByAG+Af8B5wHOAcMB/wHnAc0B
|
||||
wgH/AecBzQHCAf8B5wHNAcIB/wHnAc0BwgH/AdgBwAG2Af8DKwH8A0ABcQMKAQ0DAwEEAxgBIANRAaIB
|
||||
OwE6ATkB+wFeAVcBVAH/AbYBowGbAf8BcAFnAWMB/wNZAfIDNQFVAwIBA0gAAxIBGANdAcwBuwFbARoB
|
||||
/wG7AVsBGgH/AbsBWwEZAf8BuwFbARkB/wG7AVsBGQH/AbsBWwEZAf8BYQJdAdQDGAEg/wDZAAMDAQQD
|
||||
PQFoA1gB8QF/AXQBbwH/AeMBzAHBAf8B7AHaAdAB/wHkAdUBywH/AacBnQGXAf8BUwFQAU8B/wNbAeQD
|
||||
TgGYA1UBtANdAewBeAFyAW4B/wHtAdwB0gH/AeoB1QHLAf8B5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B
|
||||
5wHNAcIB/wHnAc0BwgH/AXUBawFnAf8DXAHtA1YBtQNOAZcDXgHiAVMBTgFMAf8BpAGUAY0B/wHfAcYB
|
||||
uwH/AecBzQHCAf8B4wHJAb4B/wGAAXUBcAH/A1kB8gM+AWoDAwEERAADEgEYA10BzAG6AVsBGgH/AbsB
|
||||
WwEaAf8BuwFbARoB/wG7AVsBGgH/AbsBWwEZAf8BuwFbARkB/wG7AVsBGQH/AWECXAHWAyUBN/8A1QAD
|
||||
IQEvA14B4wFvAWoBZgH/AeMBzAHCAf8B5wHNAcIB/wHoAdABxQH/Ae0B3AHSAf8B7QHdAdMB/wHoAdkB
|
||||
zwH/AYQBfgF5Af8DNwH/AU4BTAFLAf8BtwGrAaUB/wHqAdsB0QH/Ae0B3QHTAf8B7QHdAdMB/wHrAdUB
|
||||
ywH/AecBzQHCAf8B5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B5QHLAcAB/wGzAaABmAH/AU0BSgFIAf8B
|
||||
NwI2Af8BgQF1AXEB/wHjAckBvwH/AecBzQHCAf8B5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B4wHJAb4B
|
||||
/wFwAWcBYwH/A18B5QMiATEkAAMhATADUgGgAlYBVAGrAlYBVAGrAlYBVAGrAlYBVAGrAlYBVAGrAlYB
|
||||
VAGrAlgBVgGzAXQBYgFVAe4BugFbARoB/wG6AVsBGgH/AbsBWwEaAf8BuwFbARoB/wG7AVsBGgH/AbsB
|
||||
WwEaAf8BuwFbARkB/wG7AVsBGQH/AWwCXwHlA1UBrQJWAVQBqwJWAVQBqwJWAVQBqwJUAVMBqQJWAVQB
|
||||
qwJWAVQBqwJWAVQBqwJWAVQBqwJWAVQBqwJWAVQBqwJWAVQBqwJWAVQBqwJWAVQBqwJWAVQBqwJWAVQB
|
||||
qwNSAaADIQEw/wCNAAMoATwDXAHtAbcBqwGkAf8B7AHbAdAB/wHpAdEBxgH/AecBzQHCAf8B6AHRAcYB
|
||||
/wHsAdoB0AH/Ae0B3QHTAf8B7AHcAdIB/wHeAc8BxgH/AewB3AHSAf8B7QHdAdMB/wHtAd0B0wH/Ae0B
|
||||
3QHTAf8B7QHdAdMB/wHtAd0B0wH/AeoB1QHLAf8B5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B5wHNAcIB
|
||||
/wHnAc0BwgH/AeYBzAHBAf8B2AHAAbYB/wHmAcwBwQH/AecBzQHCAf8B5wHNAcIB/wHnAc0BwgH/AecB
|
||||
zQHCAf8B5wHNAcIB/wHnAc0BwgH/AbEBngGXAf8DVwHvAykBPSAAAyABLgFxAV0BWgHsAbkBWgEaAf8B
|
||||
uQFaARoB/wG5AVoBGgH/AbkBWgEaAf8BuQFaARoB/wG6AVoBGgH/AboBWgEaAf8BugFbARoB/wG6AVsB
|
||||
GgH/AboBWwEaAf8BugFbARoB/wG6AVsBGgH/AboBWwEaAf8BuwFbARoB/wG7AVsBGgH/AbsBWwEaAf8B
|
||||
uwFbARkB/wG7AVsBGQH/AbsBWwEZAf8BuwFbARkB/wG7AVsBGQH/AbwBWwEZAf8BtQF1ASsB/AHsAaQB
|
||||
QgH/AewBpAFCAf8B7AGkAUIB/wHsAaQBQgH/AewBpAFCAf8B7AGkAUIB/wHsAaQBQgH/AewBpAFCAf8B
|
||||
6wGkAUIB/wHrAaQBQgH/AesBpAFCAf8B6wGkAUIB/wF3AW8BYQHrAyABLf8AiQADEAEVA1sBzQFcAVkB
|
||||
VgH/AeMB1AHLAf8B7QHcAdIB/wHpAdEBxgH/AecBzQHCAf8B6AHQAcUB/wHsAdsB0QH/Ae0B3QHTAf8B
|
||||
7QHdAdMB/wHtAd0B0wH/Ae0B3QHTAf8B7QHdAdMB/wHtAd0B0wH/Ae0B3QHTAf8B7QHdAdMB/wHtAdwB
|
||||
0gH/AesB1QHKAf8B5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B
|
||||
5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B3QHFAboB/wFaAVUB
|
||||
UgH/A10BzgMRARYgAAMzAVABgwFgAT8B9gG5AVoBGwH/AbkBWgEaAf8BuQFaARoB/wG5AVoBGgH/AbkB
|
||||
WgEaAf8BuQFaARoB/wG5AVoBGgH/AbkBWgEaAf8BugFaARoB/wG6AVsBGgH/AboBWwEaAf8BugFbARoB
|
||||
/wG6AVsBGgH/AboBWwEaAf8BugFbARoB/wG7AVsBGgH/AbsBWwEaAf8BuwFbARoB/wG7AVsBGQH/AbsB
|
||||
WwEZAf8BuwFbARkB/wGlAWkBJgH+Ab4BigFAAf0B7QGkAUIB/wHsAaQBQgH/AewBpAFCAf8B7AGkAUIB
|
||||
/wHsAaQBQgH/AewBpAFCAf8B7AGkAUIB/wHsAaQBQgH/AewBpAFCAf8B7AGkAUIB/wHsAaQBQgH/AesB
|
||||
pAFCAf8BlwF6AUgB9gMzAVD/AI0AAzMBUgNNAfoBpgGbAZUB/wHtAd0B0wH/AewB2wHQAf8B6QHRAcYB
|
||||
/wHrAdcB0AH/AewB2gHTAf8B7AHbAdEB/wHtAd0B0wH/Ae0B3QHTAf8B7QHdAdMB/wHtAd0B0wH/Ae0B
|
||||
3QHTAf8B7QHdAdMB/wHqAdoB0AH/AcYBuQGxAf8B6gHaAdAB/wHqAdUBygH/AecBzgHDAf8B5wHNAcIB
|
||||
/wHnAc0BwgH/AecBzQHCAf8B5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B5wHNAcIB/wHnAc0BwgH/AecB
|
||||
zQHCAf8B5wHNAcIB/wGhAZEBiwH/AToCOQH7AzUBViQAAzMBUQGMAVsBQAH3AbgBWgEbAf8BuQFaARsB
|
||||
/wG5AVoBGwH/AbkBWgEaAf8BuQFaARoB/wG5AVoBGgH/AbkBWgEaAf8BuQFaARoB/wG6AVoBGgH/AboB
|
||||
WgEaAf8BugFaARoB/wG6AVsBGgH/AboBWwEaAf8BugFbARoB/wG6AVsBGgH/AboBWwEaAf8BuwFbARoB
|
||||
/wG7AVsBGgH/AbsBWwEaAf8BuwFbARkB/wG7AVsBGQH/AaoBbwEqAf4BwwGZAUAB/QHtAaQBQgH/Ae0B
|
||||
pAFCAf8B7AGkAUIB/wHsAaQBQgH/AewBpAFCAf8B7AGkAUIB/wHsAaQBQgH/AewBpAFCAf8B7AGkAUIB
|
||||
/wHsAaQBQgH/AewBpAFCAf8B7AGkAUIB/wGXAXoBSAH2AzMBUf8AjQADAwEEA1ABnQFSAU8BTQH/AecB
|
||||
1wHNAf8B7QHdAdMB/wHwAeQB3wH/AfYB8gH3Af8B9QHxAfUB/wHtAdsB1QH/AewB2gHQAf8B7QHdAdMB
|
||||
/wHYAcoBwQH/AcYBuQGxAf8B6AHWAcwB/wHfAcsBwQH/Ac8BuwGxAf8BQQI/Af8BzwG6AbEB/wHfAcoB
|
||||
wAH/AaQBlgGPAf8BjwGCAXwB/wHmAcwBwQH/AecBzQHCAf8B5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B
|
||||
5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B4QHIAb4B/wFQAUwBSgH/A1EBogMDAQQkAAMzAVEBjAFbAUAB
|
||||
9wG4AVoBGwH/AbgBWgEbAf8BuAFaARsB/wG5AVoBGwH/AbkBWgEbAf8BuQFaARoB/wG5AVoBGgH/AbkB
|
||||
WgEaAf8BuQFaARoB/wG5AVoBGgH/AbkBWgEaAf8BugFaARoB/wG6AVsBGgH/AboBWwEaAf8BugFbARoB
|
||||
/wG6AVsBGgH/AboBWwEaAf8BugFbARoB/wG7AVsBGgH/AbsBWwEaAf8BuwFbARoB/wGzAXMBKwH8AewB
|
||||
owFBAf8B7QGkAUIB/wHtAaQBQgH/Ae0BpAFCAf8B7QGkAUIB/wHsAaQBQgH/AewBpAFCAf8B7AGkAUIB
|
||||
/wHsAaQBQgH/AewBpAFCAf8B7AGkAUIB/wHsAaQBQgH/AewBpAFCAf8BlwF6AUgB9gMzAVH/AJEAAxcB
|
||||
HwNdAd8BfwF5AXQB/wHsAdwB0gH/Ae0B3QHUAf8B9ALtAf8B8AHkAeIB/wHnAc0BwgH/AeUBzgHDAf8B
|
||||
uwGvAagB/wFGAUQBQwH/AU8BSwFJAf8B0AG3AawB/wHQAbcBrAH/AcQBrQGjAf8BOAI3Af8BxAGtAaMB
|
||||
/wHDAawBogH/AU8BSwFJAf8BZAFcAVkB/wHiAcgBvQH/AeYBzAHBAf8B5gHMAcEB/wHnAc0BwgH/AecB
|
||||
zQHCAf8B5wHNAcIB/wHnAc0BwgH/AeYBzAHBAf8BfgF0AW4B/wNeAeIDGAEgKAADMwFRAYwBWwFAAfcB
|
||||
uAFaARsB/wG4AVoBGwH/AbgBWgEbAf8BuAFaARsB/wG4AVoBGwH/AbkBWgEbAf8BuQFaARoB/wG5AVoB
|
||||
GgH/AbkBWgEaAf8BuQFaARoB/wG5AVoBGgH/AbkBWgEaAf8BugFaARoB/wG6AVoBGgH/AboBWwEaAf8B
|
||||
ugFbARoB/wG6AVsBGgH/AboBWwEaAf8BugFbARoB/wG6AVsBGgH/AbsBWwEaAf8BugGEATgB+wHtAaQB
|
||||
QgH/Ae0BpAFCAf8B7QGkAUIB/wHtAaQBQgH/Ae0BpAFCAf8B7QGkAUIB/wHtAaQBQgH/AewBpAFCAf8B
|
||||
7AGkAUIB/wHsAaQBQgH/AewBpAFCAf8B7AGkAUIB/wHsAaQBQgH/AZcBegFIAfYDMwFR/wCRAAMDAQQD
|
||||
TQGTAzYB/wHaAcoBwQH/Ae0B3QHTAf8B7gHfAdYB/wHtAd0B1AH/AeUBzgHDAf8BlgGIAYIB/wE4AjcB
|
||||
/wFsAWMBXwH/AbYBoQGYAf8B0AG3AawB/wHQAbcBrAH/AcwBtAGpAf8BnAGLAYQB/wHMAbQBqQH/AbYB
|
||||
ogGYAf8BVAFPAUwB/wGqAZcBjwH/Ac8BtgGsAf8BlAGFAYAB/wGvAZ4BlgH/AeYBzAHBAf8B5wHNAcIB
|
||||
/wHnAc0BwgH/AecBzQHCAf8B2QHAAbYB/wE3AjYB/wNOAZYDAwEEKAADMwFRAYwBWwFAAfcBuAFaARsB
|
||||
/wG4AVoBGwH/AbgBWgEbAf8BuAFaARsB/wG4AVoBGwH/AbgBWgEbAf8BuAFaARsB/wG5AVoBGwH/AbkB
|
||||
WgEaAf8BuQFaARoB/wG5AVoBGgH/AbkBWgEaAf8BuQFaARoB/wG5AVoBGgH/AboBWgEaAf8BugFaARoB
|
||||
/wG6AVsBGgH/AboBWwEaAf8BugFbARoB/wG6AVsBGgH/AaoBZgErAfwB1gGMAU0B/gHtAaQBQgH/Ae0B
|
||||
pAFCAf8B7QGkAUIB/wHtAaQBQgH/Ae0BpAFCAf8B7QGkAUIB/wHtAaQBQgH/Ae0BpAFCAf8B7QGkAUIB
|
||||
/wHsAaQBQgH/AewBpAFCAf8B7AGkAUIB/wHsAaQBQgH/AZcBegFIAfYDMwFR/wCRAAMJAQwDVgGyAUkB
|
||||
RgFFAf8B5gHPAcQB/wHtAdwB0gH/Ae0B3QHTAf8B7QHdAdMB/wG8AbABqAH/AjgBNwH/AXsBcAFrAf8B
|
||||
zgG1AaoB/wHQAbcBrAH/AdABtwGsAf8B0AG3AawB/wHQAbcBrAH/AdABtwGsAf8B0AG3AawB/wHPAbYB
|
||||
qwH/AcwBtAGpAf8BzwG2AasB/wGEAXcBcgH/AzUB/wGTAYUBfwH/AeYBzAHBAf8B5wHNAcIB/wHnAc0B
|
||||
wgH/AecBzQHCAf8B5gHMAcEB/wFQAUsBSgH/A1UBtAMJAQwoAAMzAVEBiwFbAUAB9wG3AVoBGwH/AbgB
|
||||
WgEbAf8BuAFaARsB/wG4AVoBGwH/AbgBWgEbAf8BuAFaARsB/wG4AVoBGwH/AbgBWgEbAf8BuQFaARsB
|
||||
/wG5AVoBGgH/AbkBWgEaAf8BuQFaARoB/wG5AVoBGgH/AbkBWgEaAf8BuQFaARoB/wG6AVoBGgH/AboB
|
||||
WgEaAf8BugFbARoB/wG6AVsBGgH/AboBWwEaAf8BrgFtATEB+wHuAaQBQgH/Ae0BpAFCAf8B7QGkAUIB
|
||||
/wHtAaQBQgH/Ae0BpAFCAf8B7QGkAUIB/wHtAaQBQgH/Ae0BpAFCAf8B7QGkAUIB/wHtAaQBQgH/Ae0B
|
||||
pAFCAf8B7AGkAUIB/wHsAaQBQgH/AewBpAFCAf8BlwF6AUgB9gMzAVH/AIkAAxMBGgMpAT0DQAFwA14B
|
||||
6wGvAZ8BmAH/AecBzQHCAf8B6QHRAcYB/wHsAdsB0AH/AdYByAG/Af8BRgFEAUMB/wFrAWIBXgH/Ac4B
|
||||
tQGqAf8B0AG3AawB/wHOAbYBqwH/AaIBkQGJAf8BaAFgAVwB/wFBAT8BPgH/AzUB/wFBAT4BPQH/AWgB
|
||||
XwFbAf8BogGQAYgB/wHNAbQBqgH/AZQBhQF+Af8BhAF3AXEB/wHPAbYBrAH/AeMByQG+Af8B5wHNAcIB
|
||||
/wHnAc0BwgH/AecBzQHCAf8B5wHNAcIB/wG0AaIBmgH/A14B6wM/AW4DKAE8AxMBGSAAAzMBUQGLAVsB
|
||||
QAH3AbcBWgEbAf8BtwFaARsB/wG4AVoBGwH/AbgBWgEbAf8BwwFyATwB/wHLAYUBVgH/Ab8BaQEwAf8B
|
||||
uAFaARsB/wG4AVoBGwH/AbkBWgEbAf8BuQFaARsB/wG9AWQBKAH/AcsBhQFWAf8BxQF2AUEB/wG5AVoB
|
||||
GgH/AbkBWgEaAf8BuQFaARoB/wG6AVoBGgH/AboBWwEaAf8BvgFVATUB/QHCAZcBQAH9Ae4BpAFCAf8B
|
||||
7gGkAUIB/wHeAZQBOgH/Ae0BowFCAf8B7QGkAUIB/wHtAaQBQgH/Ae0BpAFCAf8B7QGkAUIB/wHrAaIB
|
||||
QQH/Ad0BkwE6Af8B7QGkAUIB/wHtAaQBQgH/AewBpAFCAf8B7AGkAUIB/wGXAXoBSAH2AzMBUf8AfQAD
|
||||
EQEWA0ABcANYAboDYAHbA1wB7QMrAfwBdgFwAW0B/wHpAdkBzwH/AekB0QHHAf8B5wHNAcIB/wHoAdAB
|
||||
xQH/AYUBfQF3Af8BPgE8ATsB/wGxAZ0BlAH/AdABtwGsAf8BzgG2AasB/wGCAXUBcAH/AT0CPAH/AUsB
|
||||
YAFnAf8BcgGnAboB/wF9AbsB0gH/AXIBqAG8Af8BTAFhAWgB/wE9AjwB/wGBAXQBbwH/Ac0BtQGqAf8B
|
||||
zwG2AasB/wHAAakBnwH/AYUBeAFzAf8BoAGQAYkB/wHnAc0BwgH/AecBzQHCAf8B5wHNAcIB/wHlAcsB
|
||||
wAH/AXkBbwFqAf8COAE3AfsDXQHsA2AB2wNYAbgDQAFvAxEBFhQAAzMBUQGLAVsBQAH3AbcBWgEbAf8B
|
||||
twFaARsB/wG3AVoBGwH/AbcBWgEbAf8BzgGMAWEB/wH7AfUB8QH/Ad0BsQGTAf8BuAFaARsB/wG4AVoB
|
||||
GwH/AbgBWgEbAf8BuAFaARsB/wHWAaABfAH/AfsB9QHxAf8B1wGhAX4B/wG5AVoBGgH/AbkBWgEaAf8B
|
||||
uQFaARoB/wG5AVoBGgH/AbkBWgEaAf8BvgFiATwB/QHUAYkBTAH+Ae4BpAFCAf8B2QGPATgB/wGWAUwB
|
||||
FwH/AcUBegEuAf8B7AGjAUEB/wHtAaQBQgH/Ae0BpAFCAf8B6QGgAUAB/wG5AW0BJwH/AZgBSgEVAf8B
|
||||
3gGUAToB/wHtAaQBQgH/Ae0BpAFCAf8B7QGkAUIB/wGXAXoBSAH2AzMBUf8AeQADJgE4A1EB8wFGAUMB
|
||||
QgH/AVcBUgFPAf8BeQFvAWoB/wGqAZkBkgH/AdoBxgG9Af8B7QHcAdIB/wHtAd0B0wH/AewB2wHRAf8B
|
||||
6AHQAcYB/wHWAb4BtAH/AVcBUQFPAf8BZAFcAVgB/wHQAbcBrAH/AdABtwGsAf8BowGRAYkB/wE9AjwB
|
||||
/wFaAXsBiAH/AYsB1gHwAf8BjwHdAfkB/wGPAd0B+QH/AY8B3QH5Af8BiwHWAfEB/wFbAXwBiQH/AT0C
|
||||
PAH/AaIBkAGJAf8BzAG0AakB/wFNAUkBRwH/AUcBRAFCAf8BiwF/AXoB/wHmAc0BwgH/AecBzQHCAf8B
|
||||
5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B3QHEAboB/wGvAZ0BlgH/AX4BcwFvAf8BWQFUAVEB/wFHAUQB
|
||||
QwH/A1EB8wMnATkQAAMzAVEBiwFbAUAB9wG3AVoBGwH/AbcBWgEbAf8BtwFaARsB/wG3AVoBGwH/AbgB
|
||||
XgEgAf8B+QHxAewB/wH4Ae4B5wH/AckBgQFQAf8ByQGBAVAB/wHJAYEBUAH/AckBgQFQAf8B9AHlAdwB
|
||||
/wH7AfYB8wH/AcYBeAFEAf8BuQFaARoB/wG5AVoBGgH/AbkBWgEaAf8BuQFaARoB/wG5AVoBGgH/AasB
|
||||
awEwAfsB7gGkAUIB/wHtAaMBQgH/AbwBcgEqAf8BjQFCARIB/wGOAUIBEgH/Ab8BdAErAf8B6AGeAT8B
|
||||
/wHbAZEBOQH/AaMBVQEbAf8BjgE/ARAB/wGYAUoBFgH/AcwBggExAf8B7QGkAUIB/wHtAaQBQgH/Ae0B
|
||||
pAFCAf8BlwF6AUgB9gMzAVH/AHkAA04BlAE6AjkB/wHCAa0BpAH/Ad4BxQG7Af8B5wHNAcIB/wHnAc0B
|
||||
wgH/AecBzQHCAf8B6gHUAcoB/wHtAd0B0wH/Ae0B3QHTAf8B7AHbAdEB/wHFAbMBqgH/AUMBQAE/Af8B
|
||||
oAGOAYcB/wHQAbcBrAH/AdABtwGsAf8BagFhAV0B/wFKAV4BZQH/AYsB1gHwAf8BjwHdAfkB/wGPAd0B
|
||||
+QH/AY8B3QH5Af8BjwHdAfkB/wGPAd0B+QH/AYsB1gHxAf8BSwFgAWgB/wFoAWABXAH/Ac8BtgGrAf8B
|
||||
qAGWAY0B/wG4AaMBmQH/Ad0ByQG/Af8B6gHVAcoB/wHnAc0BwgH/AecBzQHCAf8B5wHNAcIB/wHnAc0B
|
||||
wgH/AecBzQHCAf8B5wHNAcIB/wHnAc0BwgH/AeABxwG9Af8BxgGxAacB/wE7AjkB/wNOAZYQAAMzAVEB
|
||||
iwFbAUAB9wG3AVoBGwH/AbcBWgEbAf8BtwFaARsB/wG3AVoBGwH/AbcBWwEcAf8B5gHGAbEZ/wHvAdkB
|
||||
ywH/Ab4BZwEtAf8BuAFaARsB/wG5AVoBGwH/AbkBWgEaAf8BuQFaARoB/wGiAWcBJgH+AcQBfgExAfwB
|
||||
7gGkAUIB/wHuAaQBQgH/AekBnwE/Af8BxwF9AS8B/wGTAUcBFQH/AY0BQQESAf8BpwFbAR4B/wGZAUwB
|
||||
FgH/AY4BQAERAf8BrwFhASEB/wHbAZEBOQH/AewBowFCAf8B7QGkAUIB/wHtAaQBQgH/Ae0BpAFCAf8B
|
||||
lwF6AUgB9gMzAVH/AHkAA1EBogE9ATwBOwH/AeYBzAHBAf8B5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B
|
||||
5wHNAcIB/wHnAc0BwgH/AeoB1AHJAf8B7QHdAdMB/wHtAd0B0wH/Ab0BsQGpAf8BNwI2Af8BxAGtAaMB
|
||||
/wHQAbcBrAH/AdABtwGsAf8BQwFAAT8B/wFwAaUBtwH/AY8B3QH5Af8BjwHdAfkB/wFsAZwBrQH/AToB
|
||||
QQFEAf8BagGaAasB/wGPAd0B+QH/AY8B3QH5Af8BcgGnAboB/wFBAT8BPgH/AdABtwGsAf8BzAGzAakB
|
||||
/wHEAa0BowH/Ac8BuwGxAf8B6gHaAdAB/wHrAdUBygH/AecBzQHCAf8B5wHNAcIB/wHnAc0BwgH/AecB
|
||||
zQHCAf8B5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B5wHNAcIB/wE9ATwBOwH/A1EBoRAAAzMBUQGLAVsB
|
||||
QQH3AbYBWgEcAf8BtwFaARsB/wG3AVoBGwH/AbcBWgEbAf8BtwFaARsB/wHUAZwBdgH/Af4B/QH8Af8B
|
||||
9gHqAeMB/wHjAcABqAH/AeQBwAGnAf8B8gHgAdQF/wHhAbgBnAH/AbgBWwEcAf8BuAFaARsB/wG4AVoB
|
||||
GwH/AbkBWgEbAf8BuQFaARsB/wGiAW4BMgH6Ae8BowFCAf8B7wGjAUIB/wHuAaQBQgH/Ae4BpAFCAf8B
|
||||
7gGkAUIB/wHNAYMBMgH/AZABRAETAf8BjAFAAREB/wGNAT8BEAH/AbgBbAEmAf8B7AGiAUEB/wHuAaQB
|
||||
QgH/Ae0BpAFCAf8B7QGkAUIB/wHtAaQBQgH/Ae0BpAFCAf8BlwF6AUgB9gMzAVH/AHkAA1EBogE9ATwB
|
||||
OwH/AeYBzAHBAf8B5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B
|
||||
6gHUAcoB/wHtAdwB0gH/AbgBrAGlAf8DMwH/Ac4BtQGqAf8B0AG3AawB/wHQAbcBrAH/ATgCNwH/AXwB
|
||||
uQHQAf8BjwHdAfkB/wGPAd0B+QH/AT0BRgFJAf8DMwH/ATsBQwFFAf8BjwHdAfkB/wGPAd0B+QH/AXwB
|
||||
uwHRAf8BNgI1Af8B0AG3AawB/wGcAYsBgwH/ATgCNwH/AUEBQAE/Af8BxwG6AbIB/wHtAdwB0gH/AeoB
|
||||
1QHKAf8B5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B5wHNAcIB
|
||||
/wE9ATwBOwH/A1EBoRAAAzMBUQGLAVsBQQH3AbYBWgEcAf8BtgFaARwB/wG3AVoBGwH/AbcBWgEbAf8B
|
||||
twFaARsB/wHFAXoBRwH/AfkB8gHtAf8B8QHeAdIB/wG9AWgBLwH/AboBYAEjAf8B6AHJAbQF/wHMAYgB
|
||||
WwH/AbgBWgEbAf8BuAFaARsB/wG4AVoBGwH/AbgBWgEbAf8BogFnAScB/gG6AYUBOQH7Ae8BowFCAf8B
|
||||
7wGjAUIB/wHvAaMBQgH/Ae8BpAFCAf8B7gGkAUIB/wHOAYMBMgH/AZEBRQETAf8BjAFAAREB/wGOAUAB
|
||||
EQH/AcUBeQEtAf8B7QGjAUIB/wHuAaQBQgH/Ae4BpAFCAf8B7gGkAUIB/wHtAaQBQgH/Ae0BpAFCAf8B
|
||||
lwF6AUgB9gMzAVH/AHkAA1EBogE9ATwBOwH/AeYBzAHBAf8B5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B
|
||||
5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B5wHNAcIB/wHqAdQBygH/Ab0BsQGqAf8CNwE2Af8BwwGsAaIB
|
||||
/wHQAbcBrAH/AdABtwGsAf8BQwFBAUAB/wFvAaMBtgH/AY8B3QH5Af8BjwHdAfkB/wFuAaABsQH/AT4B
|
||||
SAFLAf8BbQGeAa8B/wGPAd0B+QH/AY8B3QH5Af8BcQGmAbgB/wFCAUABPgH/AdABtwGsAf8BzAG0AakB
|
||||
/wHEAa0BowH/Ac8BuwGxAf8B6gHaAdAB/wHtAd0B0wH/Ae0B3QHTAf8B6wHVAcoB/wHnAc0BwgH/AecB
|
||||
zQHCAf8B5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B5wHNAcIB/wE9ATwBOwH/A1EBoRAAAzMBUQGLAVsB
|
||||
QQH3AbYBWgEcAf8BtgFaARwB/wG2AVoBHAH/AbYBWgEcAf8BtgFaARsB/wG4AV0BHwH/AfEB3wHSAf8B
|
||||
+gHzAe8B/wHHAX8BTgH/Ab4BaQEwAf8B9gHrAeQB/wH7AfUB8gH/AboBXwEhAf8BuAFaARsB/wG4AVoB
|
||||
GwH/AbgBWgEbAf8BuAFaARsB/wG+AVwBOgH9AdUBiAFMAf4B7wGjAUIB/wHvAaMBQgH/Ae8BowFCAf8B
|
||||
7wGjAUIB/wHpAZ0BPwH/AZcBSwEWAf8BjAFAAREB/wGsAWABIAH/AZEBQwESAf8BlQFGARQB/wHWAYsB
|
||||
NgH/Ae4BpAFCAf8B7gGkAUIB/wHuAaQBQgH/Ae4BpAFCAf8B7QGkAUIB/wGXAXoBSAH2AzMBUf8AeQAD
|
||||
TQGSAToCOQH/AcIBrQGkAf8B3QHFAboB/wHnAc0BwgH/AecBzQHCAf8B5wHNAcIB/wHnAc0BwgH/AecB
|
||||
zQHCAf8B5wHNAcIB/wHnAc0BwgH/AcYBtAGrAf8BRAFCAUEB/wGeAY0BhQH/AdABtwGsAf8B0AG3AawB
|
||||
/wFrAWIBXgH/AUkBXAFkAf8BiwHVAe8B/wGPAd0B+QH/AY8B3QH5Af8BjwHdAfkB/wGPAd0B+QH/AY8B
|
||||
3QH5Af8BiwHVAfAB/wFKAV4BZQH/AWkBYQFdAf8BzwG2AasB/wG2AaEBmAH/AcIBqwGhAf8B4AHMAcEB
|
||||
/wHtAd0B0wH/Ae0B3QHTAf8B7QHdAdMB/wHtAd0B0wH/AeoB1QHKAf8B5wHOAcMB/wHnAc0BwgH/AecB
|
||||
zQHCAf8B2wHDAbkB/wHBAawBpAH/AToCOQH/A04BlRAAAzMBUQGLAVsBQQH3AbYBWgEcAf8BtgFaARwB
|
||||
/wG2AVoBHAH/AbYBWgEcAf8BtgFaARwB/wG2AVoBGwH/AdYBoAF8Bf8B1wGjAYAB/wHNAYwBXwP/Af4B
|
||||
/wHdAbABkwH/AbcBWgEbAf8BuAFaARsB/wG4AVoBGwH/AbgBWgEbAf8BuAFaARsB/wG4AXoBKwH8Ae4B
|
||||
ogFBAf8B7wGjAUIB/wHvAaMBQgH/Ae8BowFCAf8B7wGjAUIB/wHRAYUBMwH/AZsBUAEZAf8BuQFtASgB
|
||||
/wHrAaABQQH/AbgBbAEmAf8BjgE/ARAB/wGoAVsBHgH/AewBoQFBAf8B7gGkAUIB/wHuAaQBQgH/Ae4B
|
||||
pAFCAf8B7gGkAUIB/wGXAXoBSAH2AzMBUf8AeQADIwEzA1gB7gFFAUMBQQH/AVYBUQFPAf8BeAFuAWoB
|
||||
/wGpAZgBkQH/AdgBwAG2Af8B5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B5wHNAcIB/wHXAb8BtQH/AVgB
|
||||
UgFQAf8BYgFbAVcB/wHPAbcBrAH/AdABtwGsAf8BpAGSAYoB/wE+AjwB/wFZAXgBhAH/AYoB1QHvAf8B
|
||||
jwHdAfkB/wGPAd0B+QH/AY8B3QH5Af8BiwHVAfAB/wFZAXoBhgH/AT0CPAH/AaMBkQGKAf8BzQG0AakB
|
||||
/wFWAVEBTgH/AU4BSgFIAf8BqAGdAZYB/wHtAd0B0wH/Ae0B3QHTAf8B7QHdAdMB/wHtAd0B0wH/Ae0B
|
||||
3AHSAf8B1wHDAboB/wGlAZUBjgH/AXUBawFnAf8BVQFQAU4B/wFEAUIBQQH/AlgBVwHxAyUBNhAAAzMB
|
||||
UQGLAVsBQQH3AbUBWgEcAf8BtgFaARwB/wG2AVoBHAH/AbYBWgEcAf8BtgFaARwB/wG2AVoBHAH/AbwB
|
||||
ZQErAf8B/AH4AfYB/wHuAdgByAH/AekBzQG6Af8B/QH6AfgB/wG/AW0BNQH/AbcBWgEbAf8BtwFaARsB
|
||||
/wG3AVoBGwH/AbgBWgEbAf8BugFcARwB/wHAAX4BKwH8AfABowFCAf8B7wGjAUIB/wHvAaMBQgH/Ae8B
|
||||
owFCAf8B7wGjAUIB/wHvAaMBQgH/AeMBlwE8Af8B6wGfAUAB/wHvAaMBQgH/AekBngE/Af8BpQFXARwB
|
||||
/wGPAUABEQH/AcQBeAEsAf8B7gGkAUIB/wHuAaQBQgH/Ae4BpAFCAf8B7gGkAUIB/wGYAXoBSAH2AzMB
|
||||
Uf8AfQADDAEQAzwBZgNWAbADXAHZA1oB6gNMAfoBcgFpAWUB/wHkAcoBvwH/AecBzQHCAf8B5wHNAcIB
|
||||
/wHnAc0BwgH/AYUBeQF1Af8BPgE8ATsB/wGvAZsBkgH/AdABtwGsAf8BzwG2AasB/wGFAXgBcgH/AT4B
|
||||
PQE8Af8BSQFcAWMB/wFvAaIBtQH/AXsBuQHPAf8BbwGjAbUB/wFKAV0BZAH/AT4CPAH/AYQBdwFxAf8B
|
||||
zAG0AakB/wHOAbYBqwH/Aa0BmgGRAf8BZwFgAV0B/wGgAZYBkQH/Ae0B3QHTAf8B7QHdAdMB/wHtAd0B
|
||||
0wH/AeoB2gHQAf8BcwFtAWoB/wE3AjYB+wNeAesDXwHaA1UBtAM9AWkDDgESFAADMwFRAYsBWgFBAfcB
|
||||
tQFaARwB/wG1AVoBHAH/AbYBWgEcAf8BtgFaARwB/wG2AVoBHAH/AbYBWgEcAf8BtgFaARwB/wHoAckB
|
||||
tQH/Af4C/QH/Af4B/QH8Af8B7gHXAcgB/wG4AV0BHwH/AbcBWgEbAf8BtwFaARsB/wG3AVoBGwH/AbcB
|
||||
WgEbAf8BpgFuASsB/gHKAZ8BQAH9AfABowFCAf8B8AGjAUIB/wHvAaMBQgH/AboBbgEpAf8BpgFbAR8B
|
||||
/wGnAVsBHwH/AacBWwEfAf8BpwFbAR8B/wGlAVgBHQH/AacBWQEdAf8BoAFSARkB/wGOAT8BEAH/AZAB
|
||||
QQERAf8BqAFbAR0B/wHPAYQBMgH/Ae4BpAFCAf8B7gGkAUIB/wGYAXoBSAH2AzMBUf8AiQADDwEUAyUB
|
||||
NwM9AWkDWgHpAa0BnAGUAf8B5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B0wG8AbIB/wFIAUUBRAH/AWgB
|
||||
YAFcAf8BzgG1AaoB/wHQAbcBrAH/Ac8BtgGrAf8BpQGTAYsB/wFrAWIBXgH/AUQBQgFAAf8COQE4Af8B
|
||||
RAFBAUAB/wFrAWIBXgH/AaQBkgGKAf8BzQG0AaoB/wGNAX8BeAH/AYABcwFuAf8BzgG3Aa0B/wHoAdYB
|
||||
zAH/Ae0B3QHTAf8B7QHdAdMB/wHtAd0B0wH/Ae0B3QHTAf8BtAGpAaIB/wNeAesDPwFtAycBOgMRARYg
|
||||
AAMzAVEBiwFaAUEB9wG1AVkBHAH/AbUBWQEcAf8BtQFaARwB/wG1AVoBHAH/AbYBWgEcAf8BtgFaARwB
|
||||
/wG2AVoBHAH/AdABlAFsAf8B/gH9AfwC/wL+Af8B2wGtAY4B/wG3AVsBHAH/AbcBWgEbAf8BtwFaARsB
|
||||
/wG3AVoBGwH/AbcBWgEbAf8BpwF9AUIB+gHwAaMBQgH/AfABowFCAf8B8AGjAUIB/wHwAaMBQgH/AaYB
|
||||
WwEfAf8BiwFAAREB/wGLAUABEQH/AYsBQAERAf8BjAFAAREB/wGNAUABEQH/AY8BPwEQAf8BjQE/ARAB
|
||||
/wGOAT8BEAH/AY4BPwEQAf8BjwE/ARAB/wHEAXgBLAH/Ae4BpAFCAf8B7gGkAUIB/wGYAXoBSAH2AzMB
|
||||
Uf8AkQADCAEKA1UBrwFJAUYBRAH/AeUBywHAAf8B5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8BuwGnAZ8B
|
||||
/wE5AjgB/wF0AWoBZQH/Ac4BtQGqAf8B0AG3AawB/wHQAbcBrAH/AdABtwGsAf8B0AG3AawB/wHQAbcB
|
||||
rAH/AdABtwGsAf8B0AG3AawB/wHQAbcBrAH/Ac8BtgGrAf8BhQF4AXMB/wM1Af8BkgGGAYEB/wHsAdsB
|
||||
0QH/Ae0B3QHTAf8B7QHdAdMB/wHtAd0B0wH/AesB2wHRAf8BSwFJAUgB/wNWAbMDCQEMKAADMwFRAYsB
|
||||
WgFBAfcBtQFZARwB/wG1AVkBHAH/AbUBWQEcAf8BtQFaARwB/wG1AVoBHAH/AbYBWgEcAf8BtgFaARwB
|
||||
/wHCAXUBQgH/AfUB6AHgAf8B+gH0Ae8B/wHKAYcBWgH/AbYBWgEcAf8BtgFaARsB/wG3AVoBGwH/AbcB
|
||||
WgEbAf8BoQFnASgB/gHBAZIBSwH7AfABowFCAf8B8AGjAUIB/wHwAaMBQgH/AfABowFCAf8B8AGjAUIB
|
||||
/wHwAaMBQgH/Ae8BowFCAf8B7wGjAUIB/wHvAaMBQgH/AY0BQAERAf8BpgFYARwB/wHvAaMBQgH/Ae8B
|
||||
owFCAf8B7wGjAUIB/wHvAaMBQgH/Ae8BpAFCAf8B7gGkAUIB/wHuAaQBQgH/AZgBegFIAfYDMwFR/wCR
|
||||
AAMDAQQDTgGUAzYB/wHWAb4BtAH/AecBzQHCAf8B5wHNAcIB/wHnAc0BwgH/AeQBygG/Af8BmwGMAYUB
|
||||
/wE6AjkB/wFoAWABXAH/Aa8BmwGSAf8BzwG2AawB/wHQAbcBrAH/AdABtwGsAf8B0AG3AawB/wHQAbcB
|
||||
rAH/AdABtwGsAf8B0AG3AawB/wHQAbcBrAH/AdABuQGuAf8BmQGMAYYB/wGyAaABmAH/AegB0AHFAf8B
|
||||
7AHbAdEB/wHxAeUB4QH/Ae0B3QHUAf8B3QHOAcUB/wM3Af8DTgGXAwMBBCgAAzMBUQGLAVoBQQH3AbUB
|
||||
WQEcAf8BtQFZARwB/wG1AVkBHAH/AbUBWQEcAf8BtQFaARwB/wG1AVoBHAH/AbUBWgEcAf8BtwFdASEB
|
||||
/wHBAXMBPgH/AcMBdgFCAf8BuAFfASMB/wG2AVoBHAH/AbYBWgEcAf8BtgFaARwB/wG3AVoBGwH/AZ0B
|
||||
XwEoAfsB8AGjAUIB/wHwAaMBQgH/AfABowFCAf8B8AGjAUIB/wHwAaMBQgH/AfABowFCAf8B8AGjAUIB
|
||||
/wHwAaMBQgH/AfABowFCAf8B7wGjAUIB/wGbAU8BGQH/AbEBYwEiAf8B7wGjAUIB/wHvAaMBQgH/Ae8B
|
||||
owFCAf8B7wGjAUIB/wHvAaMBQgH/Ae8BowFCAf8B7gGkAUIB/wGYAXoBSAH2AzMBUf8AkQADGAEgA14B
|
||||
4gF/AXQBbwH/AeYBzAHBAf8B5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B5wHNAcIB/wHkAcoBvwH/Ab4B
|
||||
qQGhAf8BSgFHAUUB/wE+ATwBOwH/AWIBWgFXAf8BpgGUAYwB/wHQAbcBrAH/AdABtwGsAf8BxQGuAaQB
|
||||
/wGeAY0BhgH/AZMBhAF9Af8B2QHDAbgB/wHoAdYBzAH/AewB3AHRAf8B6QHRAcYB/wHnAc0BwgH/AewB
|
||||
2AHSAf8B9wH0AfkB/wHyAegB5AH/AewB3AHSAf8BhgF+AXoB/wNeAeMDGAEhKAADMwFRAYsBWgFBAfcB
|
||||
tAFZARwB/wG1AVkBHAH/AbUBWQEcAf8BtQFZARwB/wG1AVkBHAH/AbUBWQEcAf8BtQFZARwB/wG1AVoB
|
||||
HAH/AbYBWgEcAf8BtgFaARwB/wG2AVoBHAH/AbYBWgEcAf8BtgFaARwB/wG2AVoBHAH/AaABZwEoAf4B
|
||||
vwF+ASsB/AHxAaMBQgH/AfABowFCAf8B8AGjAUIB/wHwAaMBQgH/AfABowFCAf8B8AGjAUIB/wHwAaMB
|
||||
QgH/AfABowFCAf8B8AGjAUIB/wHwAaMBQgH/AegBmwE+Af8B6QGdAT8B/wHvAaMBQgH/Ae8BowFCAf8B
|
||||
7wGjAUIB/wHvAaMBQgH/Ae8BowFCAf8B7wGjAUIB/wHvAaMBQgH/AZoBegFIAfYDMwFR/wCNAAMDAQQD
|
||||
UQGiAVEBTAFKAf8B4QHIAb4B/wHnAc0BwgH/AecBzQHCAf8B5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B
|
||||
5wHNAcIB/wHnAc0BwgH/AdUBvgG0Af8BiwF+AXgB/wFaAVUBUgH/AV8BWgFXAf8B2wHGAbsB/wHRAbwB
|
||||
sgH/AU8BTAFKAf8BRgFDAUIB/wFiAVsBWAH/AewB2wHRAf8B7QHdAdMB/wHtAd0B0wH/AewB2wHQAf8B
|
||||
6QHRAcYB/wHnAc0BwgH/AewB2gHUAf8B7AHbAdEB/wHtAd0B0wH/AekB2QHQAf8BVAFSAVAB/wNRAaQD
|
||||
BAEFJAADMwFRAYsBWgFBAfcBtAFZARwB/wG0AVkBHAH/AbUBWQEcAf8BtQFZARwB/wG1AVkBHAH/AbUB
|
||||
WQEcAf8BtQFZARwB/wG1AVkBHAH/AbUBWgEcAf8BtQFaARwB/wG2AVoBHAH/AbYBWgEcAf8BtgFaARwB
|
||||
/wG2AVoBHAH/AaYBbwEtAf4BxAGXAUAB/QHxAaMBQgH/AfEBowFCAf8B8AGjAUIB/wHwAaMBQgH/AfAB
|
||||
owFCAf8B8AGjAUIB/wHwAaMBQgH/AfABowFCAf8B8AGjAUIB/wHwAaMBQgH/AfABowFCAf8B8AGjAUIB
|
||||
/wHvAaMBQgH/Ae8BowFCAf8B7wGjAUIB/wHvAaMBQgH/Ae8BowFCAf8B7wGjAUIB/wHvAaMBQgH/AZoB
|
||||
egFIAfYDMwFR/wCNAAM1AVYBOgI5AfsBoQGRAYsB/wHnAc0BwgH/AecBzQHCAf8B5wHNAcIB/wHnAc0B
|
||||
wgH/AecBzQHCAf8B5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B5wHNAcIB/wHnAc0BwgH/AdkBwgG3Af8B
|
||||
1gHCAbkB/wHtAd0B0wH/AesB3AHSAf8ByQG9AbQB/wHJAbYBrQH/AdoBwgG4Af8B6AHRAcYB/wHsAdsB
|
||||
0AH/Ae0B3QHTAf8B7QHdAdMB/wHtAdsB0QH/AekB0gHHAf8B5wHNAcIB/wHoAdABxQH/AewB2gHQAf8B
|
||||
7QHdAdMB/wGpAZ4BmAH/ATsCOgH7AzYBWCQAAzMBUQGLAVoBQQH3AbQBWQEdAf8BtAFZAR0B/wG0AVkB
|
||||
HAH/AbQBWQEcAf8BtAFZARwB/wG1AVkBHAH/AbUBWQEcAf8BtQFZARwB/wG1AVkBHAH/AbUBWQEcAf8B
|
||||
tQFaARwB/wG1AVoBHAH/AbYBWgEcAf8BtgFaARwB/wGvAXABKwH8AfABogFBAf8B8QGjAUIB/wHxAaMB
|
||||
QgH/AfEBowFCAf8B8QGjAUIB/wHwAaMBQgH/AfABowFCAf8B8AGjAUIB/wHwAaMBQgH/AfABowFCAf8B
|
||||
8AGjAUIB/wHwAaMBQgH/AfABowFCAf8B8AGjAUIB/wHwAaMBQgH/Ae8BowFCAf8B7wGjAUIB/wHvAaMB
|
||||
QgH/Ae8BowFCAf8B7wGjAUIB/wGaAXoBSAH2AzMBUf8AiQADEQEWA10BzgFaAVUBUgH/Ad0BxQG6Af8B
|
||||
5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B5wHNAcIB/wHnAc0B
|
||||
wgH/AecBzQHCAf8B5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B6gHUAcoB/wHtAd4B1AH/Ae0B3QHTAf8B
|
||||
7AHbAdEB/wHoAdABxQH/AecBzQHCAf8B6QHRAcYB/wHtAdwB0gH/Ae0B3QHTAf8B7QHdAdMB/wHsAdsB
|
||||
0QH/AekB0QHGAf8B5wHNAcIB/wHoAdEBxgH/Ae0B3AHSAf8B5QHWAcwB/wFgAVwBWQH/A1sB0AMSARcg
|
||||
AAMzAVEBiwFaAUEB9wG0AVkBHQH/AbQBWQEdAf8BtAFZAR0B/wG0AVkBHAH/AbQBWQEcAf8BtAFZARwB
|
||||
/wG1AVkBHAH/AbUBWQEcAf8BtQFZARwB/wG1AVkBHAH/AbUBWQEcAf8BtQFaARwB/wG1AVoBHAH/AbYB
|
||||
WgEcAf8BuQF/ATcB+wHxAaMBQgH/AfEBowFCAf8B8QGjAUIB/wHxAaMBQgH/AfEBowFCAf8B8QGjAUIB
|
||||
/wHxAaMBQgH/AfABowFCAf8B8AGjAUIB/wHwAaMBQgH/AfABowFCAf8B8AGjAUIB/wHwAaMBQgH/AfAB
|
||||
owFCAf8B8AGjAUIB/wHwAaMBQgH/AfABowFCAf8B7wGjAUIB/wHvAaMBQgH/Ae8BowFCAf8BmgF6AUgB
|
||||
9gMzAVH/AIkAAygBPANcAe0BrgGcAZUB/wHnAc0BwgH/AecBzQHCAf8B5wHNAcIB/wHnAc0BwgH/AecB
|
||||
zQHCAf8B5wHNAcIB/wHmAcwBwQH/AdUBvQGzAf8B5AHKAcAB/wHnAc0BwgH/AecBzQHCAf8B5wHNAcIB
|
||||
/wHnAc0BwgH/AecBzgHDAf8B8QHmAeQB/wHwAeQB3gH/Ae0B3QHTAf8B7AHbAdAB/wHpAdEBxgH/AecB
|
||||
zQHCAf8B5wHPAcQB/wHbAcsBwgH/AewB3AHSAf8B7QHdAdMB/wHsAdsB0AH/AekB0QHGAf8B5wHNAcIB
|
||||
/wHoAdABxQH/AewB2gHQAf8BugGuAaYB/wNXAe8DKQE+IAADMwFRAYsBWgFBAfcBtAFZAR0B/wG0AVkB
|
||||
HQH/AbQBWQEdAf8BtAFZAR0B/wG0AVkBHQH/AbQBWQEcAf8BtAFZARwB/wG0AVkBHAH/AbUBWQEcAf8B
|
||||
tQFZARwB/wG1AVkBHAH/AbUBWQEcAf8BtQFZARwB/wGhAWIBKwH8AdgBiQFNAf4B8QGjAUIB/wHxAaMB
|
||||
QgH/AfEBowFCAf8B8QGjAUIB/wHxAaMBQgH/AfEBowFCAf8B8QGjAUIB/wHxAaMBQgH/AfEBowFCAf8B
|
||||
8AGjAUIB/wHwAaMBQgH/AfABowFCAf8B8AGjAUIB/wHwAaMBQgH/AfABowFCAf8B8AGjAUIB/wHwAaMB
|
||||
QgH/AfABowFCAf8B7wGjAUIB/wHvAaMBQgH/AZoBegFIAfYDMwFR/wCJAAMgAS4DXgHiAWkBYgFeAf8B
|
||||
4QHIAb0B/wHnAc0BwgH/AecBzQHCAf8B5wHNAcIB/wHnAc0BwgH/AeEByAG9Af8BfgFzAW4B/wM2Af8B
|
||||
RwFEAUMB/wGrAZoBkwH/AeMBygG/Af8B5wHNAcIB/wHnAc0BwgH/Ae4B3gHZAf8B9wH2AfwB/wH3AfYB
|
||||
+wH/AfAB4wHdAf8B7QHdAdMB/wHqAdkBzwH/AbEBoQGaAf8BSwFIAUYB/wE3AjYB/wF+AXcBcwH/AeYB
|
||||
1wHNAf8B7QHdAdMB/wHtAdwB0gH/AekB0QHGAf8B5wHNAcIB/wHjAcsBwQH/AW0BZwFjAf8DWwHkAyEB
|
||||
MCAAAzMBUQF/AWABQAH2AbMBWQEdAf8BswFZAR0B/wG0AVkBHQH/AbQBWQEdAf8BtAFZAR0B/wG0AVkB
|
||||
HQH/AbQBWQEdAf8BtAFZARwB/wG0AVkBHAH/AbUBWQEcAf8BtQFZARwB/wG1AVkBHAH/AbUBWQEcAf8B
|
||||
qgFnAS8B+wHyAaMBQgH/AfIBowFCAf8B8QGjAUIB/wHxAaMBQgH/AfEBowFCAf8B8QGjAUIB/wHxAaMB
|
||||
QgH/AfEBowFCAf8B8QGjAUIB/wHxAaMBQgH/AfEBowFCAf8B8AGjAUIB/wHwAaMBQgH/AfABowFCAf8B
|
||||
8AGjAUIB/wHwAaMBQgH/AfABowFCAf8B8AGjAUIB/wHwAaMBQgH/AfABowFCAf8B7wGjAUIB/wGaAXoB
|
||||
SAH2AzMBUf8AiQADAgEDAzsBZANZAe8BewFxAW0B/wHhAcgBvQH/AecBzQHCAf8B3gHFAbsB/wGiAZIB
|
||||
iwH/AVEBTAFLAf8DYAHgA00BkwNWAbADWgHpAW8BZgFiAf8B5wHNAcIB/wHqAdYBzwH/AfMB7AHuAf8B
|
||||
+AH3Af4B/wH3AfYB/QH/AfIB6QHoAf8B7gHeAdYB/wF8AXUBcQH/A1wB6gNWAbADTQGSA10B3wFQAU0B
|
||||
TAH/AaMBmQGTAf8B4QHSAckB/wHsAdsB0AH/AeMBzAHBAf8BfQFyAW0B/wNYAfEDPQFoAwMBBCAAAx0B
|
||||
KAFlAl4B3QGzAVkBHQH/AbMBWQEdAf8BswFZAR0B/wG0AVkBHQH/AbQBWQEdAf8BtAFZAR0B/wG0AVkB
|
||||
HQH/AbQBWQEdAf8BtAFZARwB/wG0AVkBHAH/AbQBWQEcAf8BtQFZARwB/wGiAWoBKgH+AcQBlQFAAf0B
|
||||
8gGjAUIB/wHyAaMBQgH/AfIBowFCAf8B8QGjAUIB/wHxAaMBQgH/AfEBowFCAf8B8QGjAUIB/wHxAaMB
|
||||
QgH/AfEBowFCAf8B8QGjAUIB/wHxAaMBQgH/AfEBowFCAf8B8QGjAUIB/wHwAaMBQgH/AfABowFCAf8B
|
||||
8AGjAUIB/wHwAaMBQgH/AfABowFCAf8B8AGjAUIB/wHwAaMBQgH/AfABowFCAf8CZQFeAd0DHQEo/wCN
|
||||
AAQCAzIBTwNZAe8BaQFiAV4B/wGxAZ4BlgH/AVsBVQFTAf8DTQH6A1EBngMYASADAwEEAwkBCwM/AWwD
|
||||
NgH7AdQBvQGzAf8B5wHNAcIB/wHoAdABxwH/AfMB6wHtAf8B7wHhAd8B/wHoAc8BxQH/AeABzAHCAf8D
|
||||
LQH8Az8BbgMJAQsDAwEEAxYBHgNQAZoDQQH5AVkBVgFUAf8BsAGlAZ4B/wFsAWcBYwH/A1QB8AMzAVID
|
||||
AgEDJAAEAQMaASQDPQFoAkEBQAFxAkEBQAFxAkEBQAFxAkEBQAFxAkEBQAFxAkEBQAFxAkEBQAFxAkEB
|
||||
QAFxAkEBQAFxAkEBQAFxAkEBQAFxAkEBQAFwAkEBQAFxA0EBcQNBAXEDQQFxA0EBcQNBAXEDQQFxA0EB
|
||||
cQNBAXEDQQFxA0EBcQNBAXEDQQFxA0EBcQNBAXEDQQFxA0EBcQNBAXEDQQFxA0EBcQNBAXEDPQFoAxoB
|
||||
JAQB/wCRAAQCAzsBZANeAeIDXAHtA1sBzQM0AVQDAwEEDAADJwE6A14B6wGlAZQBjgH/AecBzQHCAf8B
|
||||
5wHNAcIB/wHqAdYBzgH/AegBzgHEAf8B5wHNAcIB/wGxAZ8BlwH/A10B7AMpAT0MAAMCAQMDMwFRA1wB
|
||||
ywNcAe0DXgHjAz0BZwMCAQP/AP8AWgADAgEDAyABLQMoATsDEAEVFAADEgEXA18B2gF0AWsBZwH/AecB
|
||||
zQHCAf8B5wHNAcIB/wHnAc0BwgH/AecBzQHCAf8B5wHNAcIB/wGAAXUBcAH/A2AB2wMTARkUAAMPARQD
|
||||
KAE7AyABLgMCAQP/AP8AhgADVgGzAVUBUAFOAf8B3AHDAbkB/wHnAc0BwgH/AecBzQHCAf8B5wHNAcIB
|
||||
/wHhAcgBvQH/AVoBVAFSAf8DWAG6/wD/AK4AAz0BaQFEAUIBQQH/AcABqwGjAf8B5QHMAcEB/wHlAcwB
|
||||
wQH/AeUBzAHBAf8BxQGwAacB/wFIAUUBQwH/A0ABcf8A/wCuAAMNAREDUwHwAToCOQH/AT0COwH/AT0C
|
||||
OwH/AT0COwH/AToCOQH/A1EB8wMRARb/AP8AsgADJAE0A00BkgNRAaIDUQGiA1EBogNNAZMDJQE3/wD/
|
||||
AP8A/wD/AD0AAUIBTQE+BwABPgMAASgDAAG0AwABLQMAAQEBAAEBBQABOAEEFgAD/wEAB/8BxwP/AcAM
|
||||
AAL/AeABPwP/AYcD/wHADAAC/wHAAR8D/wGDA/8BwAwAAv8BwAEfA/8BgAP/AcAMAAL/AcABDwP/AYAD
|
||||
/wHADAAB/wEPAYABDwGHAv8BgAE/Av8BwAwAAf4BAwGAAQ4BAwL/AYABPwL/AcAMAAH8AwABAQL/AYAB
|
||||
HwL/AcAMAAH4BAAC/wGAAQ8C/wHADAAB+AQAAf8BgAMAAQMBwAwAAfgEAAH/BAABAQHADAAB+AQAAf8E
|
||||
AAEBAcAMAAH8AwABAQH/BAABAQHADAAB/AMAAQEB/wQAAQEBwAwAAf4DAAEDAf8EAAEBAcAMAAH+AwAB
|
||||
AwH/BAABAQHADAAB/gMAAQMB/wQAAQEBwAwAAfgEAAH/BAABAQHADAABwAQAAR8EAAEBAcAMAAGABAAB
|
||||
DwQAAQEBwAwAAYAEAAEPBAABAQHADAABgAQAAQ8EAAEBAcAMAAGABAABDwQAAQEBwAwAAYAEAAEPBAAB
|
||||
AQHADAABgAQAAQ8EAAEBAcAMAAGABAABDwQAAQEBwAwAAcAEAAEfBAABAQHADAAB+AQAAf8EAAEBAcAM
|
||||
AAH+AwABAwH/BAABAQHADAAB/gMAAQMB/wQAAQEBwAwAAf4DAAEDAf8EAAEBAcAMAAH8AwABAQH/BAAB
|
||||
AQHADAAB/AMAAQEB/wQAAQEBwAwAAfgEAAH/BAABAQHADAAB+AQAAf8EAAEBAcAMAAH4BAAB/wQAAQEB
|
||||
wAwAAfgEAAH/BAABAQHADAAB/AMAAQEB/wQAAQEBwAwAAf4BAwGAAQ4BAwb/AcAMAAH/AQ8BgAEPAYcG
|
||||
/wHADAAC/wHAAR8H/wHADAAC/wHAAR8H/wHADAAC/wHAAR8H/wHADAAC/wHgAT8H/wHADAAL/wHADAAL
|
||||
</value>
|
||||
</data>
|
||||
</root>
|