新图标 (#573)

* Add files via upload

Icons added.

* 图标微调

现在图标具有较小的圆角与经过微调的配色,激活状态图标的窗口堆叠顺序与之前不同。

* UI: 更新图标

* UI: 优化关于界面 1

* docs: 更新 README

* docs: 更新 README

* docs: 更新 README

* docs: 更新 README_EN

* 修复 ICO 导出错误

* chore: 添加头图
Co-authored-by: WluhWluh <52004526+WluhWluh@users.noreply.github.com>

* UI: 优化关于页面 2

* SVG 锚点精简

清理了 SVG 文件中的多余锚点,压缩了文件大小。图标外观无变化故不更新其他导出的文件。

* UI: 优化关于页面 3

* UI: 本地化

* chore: 更新窗口截图

---------

Co-authored-by: 刘旭 <34770031+Blinue@users.noreply.github.com>
Co-authored-by: 刘旭 <blinue@outlook.com>
This commit is contained in:
WluhWluh 2023-04-26 21:24:21 +08:00 committed by GitHub
commit c60daa049a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
53 changed files with 516 additions and 162 deletions

View file

@ -1,9 +1,23 @@
# Magpie
[![许可协议](https://img.shields.io/github/license/Blinue/Magpie)](./LICENSE)
[![build](https://github.com/Blinue/Magpie/actions/workflows/build.yml/badge.svg)](https://github.com/Blinue/Magpie/actions/workflows/build.yml)
[![All Contributors](https://img.shields.io/github/all-contributors/Blinue/Magpie)](#%E8%B4%A1%E7%8C%AE%E8%80%85-)
[![GitHub all releases](https://img.shields.io/github/downloads/Blinue/Magpie/total)](https://github.com/Blinue/Magpie/releases)
<br>
<br>
<p align="center">
<img src="https://raw.githubusercontent.com/Blinue/Magpie/18eabcbdd6de2420ee5d749b43e6e5aa7b3d042e/src/Magpie/Icons/PNG/Magpie%20Icon%20Full%20Disabled/256.png" width="128px" height="128px" alt="Logo of Magpie">
</p>
<h1 align="center">Magpie</h1>
<p align="center">
<a href="./LICENSE">
<img alt="许可协议" src="https://img.shields.io/github/license/Blinue/Magpie">
</a>
<a href="https://github.com/Blinue/Magpie/actions/workflows/build.yml">
<img alt="build" src="https://github.com/Blinue/Magpie/actions/workflows/build.yml/badge.svg">
</a>
<a href="#%E8%B4%A1%E7%8C%AE%E8%80%85-">
<img alt="All Contributors" src="https://img.shields.io/github/all-contributors/Blinue/Magpie">
</a>
<a href="https://github.com/Blinue/Magpie/releases">
<img alt="GitHub all releases" src="https://img.shields.io/github/downloads/Blinue/Magpie/total">
</a>
</p>
🌍 **简体中文** | [English](./README_EN.md)

View file

@ -1,9 +1,23 @@
# MAGPIE
[![License](https://img.shields.io/github/license/Blinue/Magpie)](./LICENSE)
[![build](https://github.com/Blinue/Magpie/actions/workflows/build.yml/badge.svg)](https://github.com/Blinue/Magpie/actions/workflows/build.yml)
[![All Contributors](https://img.shields.io/github/all-contributors/Blinue/Magpie)](#%E8%B4%A1%E7%8C%AE%E8%80%85-)
[![GitHub all releases](https://img.shields.io/github/downloads/Blinue/Magpie/total)](https://github.com/Blinue/Magpie/releases)
<br>
<br>
<p align="center">
<img src="https://raw.githubusercontent.com/Blinue/Magpie/18eabcbdd6de2420ee5d749b43e6e5aa7b3d042e/src/Magpie/Icons/PNG/Magpie%20Icon%20Full%20Disabled/256.png" width="128px" height="128px" alt="Logo of Magpie">
</p>
<h1 align="center">Magpie</h1>
<p align="center">
<a href="./LICENSE">
<img alt="License" src="https://img.shields.io/github/license/Blinue/Magpie">
</a>
<a href="https://github.com/Blinue/Magpie/actions/workflows/build.yml">
<img alt="build" src="https://github.com/Blinue/Magpie/actions/workflows/build.yml/badge.svg">
</a>
<a href="#%E8%B4%A1%E7%8C%AE%E8%80%85-">
<img alt="All Contributors" src="https://img.shields.io/github/all-contributors/Blinue/Magpie">
</a>
<a href="https://github.com/Blinue/Magpie/releases">
<img alt="GitHub all releases" src="https://img.shields.io/github/downloads/Blinue/Magpie/total">
</a>
</p>
:earth_africa: [简体中文](./README.md) | **English**

42
Settings.XamlStyler Normal file
View file

@ -0,0 +1,42 @@
{
"AttributesTolerance": 1,
"KeepFirstAttributeOnSameLine": true,
"MaxAttributeCharactersPerLine": 0,
"MaxAttributesPerLine": 1,
"NewlineExemptionElements": "RadialGradientBrush, GradientStop, LinearGradientBrush, ScaleTransform, SkewTransform, RotateTransform, TranslateTransform, Trigger, Condition, Setter",
"SeparateByGroups": false,
"AttributeIndentation": 0,
"AttributeIndentationStyle": 1,
"RemoveDesignTimeReferences": false,
"IgnoreDesignTimeReferencePrefix": false,
"EnableAttributeReordering": true,
"AttributeOrderingRuleGroups": [
"x:Class",
"xmlns, xmlns:x",
"xmlns:*",
"x:Key, Key, x:Name, Name, x:Uid, Uid, Title",
"Grid.Row, Grid.RowSpan, Grid.Column, Grid.ColumnSpan, Canvas.Left, Canvas.Top, Canvas.Right, Canvas.Bottom",
"Width, Height, MinWidth, MinHeight, MaxWidth, MaxHeight",
"Margin, Padding, HorizontalAlignment, VerticalAlignment, HorizontalContentAlignment, VerticalContentAlignment, Panel.ZIndex",
"*:*, *",
"PageSource, PageIndex, Offset, Color, TargetName, Property, Value, StartPoint, EndPoint",
"mc:Ignorable, d:IsDataSource, d:LayoutOverrides, d:IsStaticText",
"Storyboard.*, From, To, Duration"
],
"FirstLineAttributes": "",
"OrderAttributesByName": true,
"PutEndingBracketOnNewLine": false,
"RemoveEndingTagOfEmptyElement": true,
"SpaceBeforeClosingSlash": true,
"RootElementLineBreakRule": 0,
"ReorderVSM": 2,
"ReorderGridChildren": false,
"ReorderCanvasChildren": false,
"ReorderSetters": 0,
"FormatMarkupExtension": true,
"NoNewLineMarkupExtensions": "x:Bind, Binding",
"ThicknessSeparator": 2,
"ThicknessAttributes": "Margin, Padding, BorderThickness, ThumbnailClipMargin",
"FormatOnSave": true,
"CommentPadding": 2,
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 163 KiB

Before After
Before After

BIN
img/Repo card.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 153 KiB

Before After
Before After

View file

@ -10,124 +10,135 @@
<StackPanel HorizontalAlignment="Stretch"
ChildrenTransitions="{StaticResource SettingsCardsAnimations}"
Orientation="Vertical">
<local:SettingsGroup x:Uid="About_Version"
Margin="0,-24,0,0">
<StackPanel ChildrenTransitions="{StaticResource SettingsCardsAnimations}"
Orientation="Vertical">
<muxc:Expander HorizontalAlignment="Stretch"
HorizontalContentAlignment="Stretch"
Style="{StaticResource SettingExpanderStyle}">
<muxc:Expander.Header>
<local:SettingsCard Title="{x:Bind ViewModel.Version, Mode=OneTime}"
Style="{StaticResource ExpanderHeaderSettingStyle}">
<local:SettingsCard.Icon>
<FontIcon Glyph="&#xE895;" />
</local:SettingsCard.Icon>
<local:SettingsCard.Description>
<HyperlinkButton x:Uid="About_Version_ReleaseNotes"
NavigateUri="{x:Bind ViewModel.ReleaseNotesLink, Mode=OneTime}" />
</local:SettingsCard.Description>
<local:SettingsCard.ActionContent>
<StackPanel>
<Button x:Uid="About_Version_CheckForUpdates"
Click="{x:Bind ViewModel.CheckForUpdates}"
IsEnabled="{x:Bind ViewModel.IsDownloadingOrLater, Mode=OneWay, Converter={StaticResource NegationConverter}}"
Visibility="{x:Bind ViewModel.IsCheckingForUpdates, Mode=OneWay, Converter={StaticResource NegativeVisibilityConverter}}" />
<StackPanel Orientation="Horizontal"
Spacing="8"
Visibility="{x:Bind ViewModel.IsCheckingForUpdates, Mode=OneWay}">
<muxc:ProgressRing Width="20"
Height="20"
VerticalAlignment="Center"
IsActive="True" />
<TextBlock x:Uid="About_Version_CheckingForUpdates"
VerticalAlignment="Center" />
</StackPanel>
</StackPanel>
</local:SettingsCard.ActionContent>
</local:SettingsCard>
</muxc:Expander.Header>
<muxc:Expander.Content>
<StackPanel Orientation="Vertical">
<local:SettingsCard Style="{StaticResource ExpanderContentSettingStyle}">
<CheckBox x:Uid="About_Version_AutoCheckForUpdates"
IsChecked="{x:Bind ViewModel.IsAutoCheckForUpdates, Mode=TwoWay}" />
</local:SettingsCard>
<local:SettingsCard Style="{StaticResource ExpanderContentSettingStyle}">
<CheckBox x:Uid="About_Version_AutoCheckForPreviewUpdates"
IsChecked="{x:Bind ViewModel.IsCheckForPreviewUpdates, Mode=TwoWay}" />
</local:SettingsCard>
</StackPanel>
</muxc:Expander.Content>
</muxc:Expander>
<StackPanel>
<muxc:InfoBar x:Uid="About_Version_CheckForUpdatesFailed"
Margin="0,2,0,0"
IsOpen="{x:Bind ViewModel.IsErrorWhileChecking, Mode=TwoWay}"
Severity="Error"
Visibility="{x:Bind ViewModel.IsErrorWhileChecking, Mode=OneWay}" />
<muxc:InfoBar x:Uid="About_Version_UpdateToDate"
Margin="0,2,0,0"
IsOpen="{x:Bind ViewModel.IsNoUpdate, Mode=TwoWay}"
Severity="Success"
Visibility="{x:Bind ViewModel.IsNoUpdate, Mode=OneWay}" />
<muxc:InfoBar Title="{x:Bind ViewModel.UpdateCardTitle, Mode=OneWay}"
Margin="0,2,0,0"
IsClosable="{x:Bind ViewModel.IsUpdateCardClosable, Mode=OneWay}"
IsOpen="{x:Bind ViewModel.IsUpdateCardOpen, Mode=TwoWay}"
Severity="Informational"
Visibility="{x:Bind ViewModel.IsUpdateCardOpen, Mode=OneWay}">
<StackPanel>
<Grid Margin="0,0,25,16"
ColumnSpacing="12"
Visibility="{x:Bind ViewModel.IsDownloadingOrLater, Mode=OneWay}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<muxc:ProgressBar Grid.Column="0"
Margin="0"
Padding="0"
VerticalAlignment="Center"
IsIndeterminate="{x:Bind ViewModel.IsNoDownloadProgress, Mode=OneWay}"
Maximum="1"
Minimum="0"
ShowError="{x:Bind ViewModel.IsErrorWhileDownloading, Mode=OneWay}"
Value="{x:Bind ViewModel.DownloadProgress, Mode=OneWay}" />
<StackPanel Grid.Column="1"
Margin="0,-2,0,0"
VerticalAlignment="Center">
<TextBlock x:Uid="About_Version_UpdateToDate_Downloading"
Visibility="{x:Bind ViewModel.IsDownloading, Mode=OneWay}" />
<TextBlock x:Uid="About_Version_UpdateToDate_DownloadFailed"
Margin="0,0,-48,0"
Visibility="{x:Bind ViewModel.IsErrorWhileDownloading, Mode=OneWay}" />
<TextBlock x:Uid="About_Version_UpdateToDate_Installing"
Visibility="{x:Bind ViewModel.IsInstalling, Mode=OneWay}" />
</StackPanel>
</Grid>
<StackPanel Margin="0,0,0,16"
Orientation="Horizontal">
<Button x:Uid="About_Version_UpdateCard_DownloadAndInstall"
Click="{x:Bind ViewModel.DownloadAndInstall}"
Style="{StaticResource AccentButtonStyle}"
Visibility="{x:Bind ViewModel.IsAvailable, Mode=OneWay}" />
<Button x:Uid="About_Version_UpdateCard_Retry"
Click="{x:Bind ViewModel.Retry}"
Visibility="{x:Bind ViewModel.IsErrorWhileDownloading, Mode=OneWay}" />
<Button x:Uid="About_Version_UpdateCard_Cancel"
Click="{x:Bind ViewModel.Cancel}"
IsEnabled="{x:Bind ViewModel.IsDownloading, Mode=OneWay}"
Visibility="{x:Bind ViewModel.IsCancelButtonVisible, Mode=OneWay}" />
<HyperlinkButton x:Uid="About_Version_UpdateCard_ReleaseNotes"
Margin="8,0,0,0"
VerticalAlignment="Center"
NavigateUri="{x:Bind ViewModel.UpdateReleaseNotesLink, Mode=OneWay}" />
</StackPanel>
</StackPanel>
</muxc:InfoBar>
<StackPanel Margin="0,10,0,0"
Orientation="Vertical">
<StackPanel Orientation="Horizontal"
Spacing="20">
<Image Width="64"
Height="64"
Source="{x:Bind ViewModel.Logo, Mode=OneWay}" />
<StackPanel Margin="0,-4,0,0"
VerticalAlignment="Center"
Orientation="Vertical"
Spacing="4">
<TextBlock FontSize="24"
Text="Magpie" />
<TextBlock FontSize="{StaticResource SecondaryTextFontSize}"
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
Text="{x:Bind ViewModel.Version, Mode=OneTime}" />
</StackPanel>
</StackPanel>
<StackPanel>
<Button Margin="0,15,0,0"
Click="{x:Bind ViewModel.CheckForUpdates}"
IsEnabled="{x:Bind ViewModel.IsCheckForUpdatesButtonEnabled, Mode=OneWay}"
Style="{StaticResource AccentButtonStyle}">
<Grid>
<TextBlock x:Uid="About_Version_CheckForUpdates"
Visibility="{x:Bind ViewModel.IsCheckingForUpdates, Mode=OneWay, Converter={StaticResource NegativeVisibilityConverter}}" />
<StackPanel Orientation="Horizontal"
Spacing="8">
<muxc:ProgressRing Width="16"
Height="16"
VerticalAlignment="Center"
Foreground="White"
IsActive="True"
Visibility="{x:Bind ViewModel.IsCheckingForUpdates, Mode=OneWay}" />
<TextBlock x:Uid="About_Version_CheckingForUpdates"
VerticalAlignment="Center"
Visibility="{x:Bind ViewModel.IsCheckingForUpdates, Mode=OneWay}" />
</StackPanel>
</Grid>
</Button>
</StackPanel>
<StackPanel ChildrenTransitions="{StaticResource SettingsCardsAnimations}"
Orientation="Vertical">
<muxc:InfoBar x:Uid="About_Version_CheckForUpdatesFailed"
Margin="0,10,0,0"
IsOpen="{x:Bind ViewModel.IsErrorWhileChecking, Mode=TwoWay}"
Severity="Error"
Visibility="{x:Bind ViewModel.IsErrorWhileChecking, Mode=OneWay}" />
<muxc:InfoBar x:Uid="About_Version_UpdateToDate"
Margin="0,10,0,0"
IsOpen="{x:Bind ViewModel.IsNoUpdate, Mode=TwoWay}"
Severity="Success"
Visibility="{x:Bind ViewModel.IsNoUpdate, Mode=OneWay}" />
<muxc:InfoBar Title="{x:Bind ViewModel.UpdateCardTitle, Mode=OneWay}"
Margin="0,10,0,0"
IsClosable="{x:Bind ViewModel.IsUpdateCardClosable, Mode=OneWay}"
IsOpen="{x:Bind ViewModel.IsUpdateCardOpen, Mode=TwoWay}"
Severity="Informational"
Visibility="{x:Bind ViewModel.IsUpdateCardOpen, Mode=OneWay}">
<StackPanel>
<Grid Margin="0,0,25,16"
ColumnSpacing="12"
Visibility="{x:Bind ViewModel.IsDownloadingOrLater, Mode=OneWay}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<muxc:ProgressBar Grid.Column="0"
Margin="0"
Padding="0"
VerticalAlignment="Center"
IsIndeterminate="{x:Bind ViewModel.IsNoDownloadProgress, Mode=OneWay}"
Maximum="1"
Minimum="0"
ShowError="{x:Bind ViewModel.IsErrorWhileDownloading, Mode=OneWay}"
Value="{x:Bind ViewModel.DownloadProgress, Mode=OneWay}" />
<StackPanel Grid.Column="1"
Margin="0,-2,0,0"
VerticalAlignment="Center">
<TextBlock x:Uid="About_Version_UpdateToDate_Downloading"
Visibility="{x:Bind ViewModel.IsDownloading, Mode=OneWay}" />
<TextBlock x:Uid="About_Version_UpdateToDate_DownloadFailed"
Margin="0,0,-48,0"
Visibility="{x:Bind ViewModel.IsErrorWhileDownloading, Mode=OneWay}" />
<TextBlock x:Uid="About_Version_UpdateToDate_Installing"
Visibility="{x:Bind ViewModel.IsInstalling, Mode=OneWay}" />
</StackPanel>
</Grid>
<StackPanel Margin="0,0,0,16"
Orientation="Horizontal">
<Button x:Uid="About_Version_UpdateCard_DownloadAndInstall"
Click="{x:Bind ViewModel.DownloadAndInstall}"
Style="{StaticResource AccentButtonStyle}"
Visibility="{x:Bind ViewModel.IsAvailable, Mode=OneWay}" />
<Button x:Uid="About_Version_UpdateCard_Retry"
Click="{x:Bind ViewModel.Retry}"
Visibility="{x:Bind ViewModel.IsErrorWhileDownloading, Mode=OneWay}" />
<Button x:Uid="About_Version_UpdateCard_Cancel"
Click="{x:Bind ViewModel.Cancel}"
IsEnabled="{x:Bind ViewModel.IsDownloading, Mode=OneWay}"
Visibility="{x:Bind ViewModel.IsCancelButtonVisible, Mode=OneWay}" />
<HyperlinkButton x:Uid="About_Version_UpdateCard_ReleaseNotes"
Margin="8,0,0,0"
VerticalAlignment="Center"
NavigateUri="{x:Bind ViewModel.UpdateReleaseNotesLink, Mode=OneWay}" />
</StackPanel>
</StackPanel>
</muxc:InfoBar>
</StackPanel>
</StackPanel>
<local:SettingsGroup x:Uid="About_Version_UpdateSettings">
<local:SettingsCard x:Uid="About_Version_UpdateSettings_AutoCheckForUpdates">
<local:SettingsCard.Icon>
<FontIcon Glyph="&#xECC5;" />
</local:SettingsCard.Icon>
<local:SettingsCard.ActionContent>
<ToggleSwitch x:Uid="ToggleSwitch"
IsOn="{x:Bind ViewModel.IsAutoCheckForUpdates, Mode=TwoWay}" />
</local:SettingsCard.ActionContent>
</local:SettingsCard>
<local:SettingsCard x:Uid="About_Version_UpdateSettings_CheckForPreviewUpdates">
<local:SettingsCard.Icon>
<FontIcon Glyph="&#xED56;" />
</local:SettingsCard.Icon>
<local:SettingsCard.ActionContent>
<ToggleSwitch x:Uid="ToggleSwitch"
IsOn="{x:Bind ViewModel.IsCheckForPreviewUpdates, Mode=TwoWay}" />
</local:SettingsCard.ActionContent>
</local:SettingsCard>
</local:SettingsGroup>
<local:SettingsGroup x:Uid="About_Feedback">
<Button MinHeight="60"

View file

@ -7,9 +7,11 @@
#include "UpdateService.h"
#include "AppSettings.h"
#include "StrUtils.h"
#include "IconHelper.h"
using namespace winrt;
using namespace Windows::ApplicationModel::Resources;
using namespace Windows::UI::Xaml::Media::Imaging;
namespace winrt::Magpie::App::implementation {
@ -35,14 +37,29 @@ AboutViewModel::AboutViewModel() {
UpdateService::Get().IsShowOnHomePage(false);
}
});
// 异步加载 Logo
([](AboutViewModel* that)->fire_and_forget {
wchar_t exePath[MAX_PATH];
GetModuleFileName(NULL, exePath, MAX_PATH);
auto weakThis = that->get_weak();
SoftwareBitmapSource bitmap;
co_await bitmap.SetBitmapAsync(IconHelper::ExtractIconFromExe(exePath, 256, USER_DEFAULT_SCREEN_DPI));
if (!weakThis.get()) {
co_return;
}
that->_logo = std::move(bitmap);
that->_propertyChangedEvent(*that, PropertyChangedEventArgs(L"Logo"));
})(this);
}
hstring AboutViewModel::Version() const noexcept {
return MAGPIE_TAG_W;
}
Uri AboutViewModel::ReleaseNotesLink() const noexcept {
return Uri(StrUtils::ConcatW(L"https://github.com/Blinue/Magpie/releases/tag/", MAGPIE_TAG_W));
ResourceLoader resourceLoader = ResourceLoader::GetForCurrentView();
hstring versionStr = resourceLoader.GetString(L"About_Version_Version");
return versionStr + StrUtils::ConcatW(L" ", MAGPIE_TAG_W + 1, L" | x64");
}
fire_and_forget AboutViewModel::CheckForUpdates() {
@ -58,6 +75,10 @@ void AboutViewModel::IsCheckForPreviewUpdates(bool value) noexcept {
_propertyChangedEvent(*this, PropertyChangedEventArgs(L"IsCheckForPreviewUpdates"));
}
bool AboutViewModel::IsCheckForUpdatesButtonEnabled() const noexcept {
return !IsCheckingForUpdates() && !IsDownloadingOrLater();
}
bool AboutViewModel::IsAutoCheckForUpdates() const noexcept {
return AppSettings::Get().IsAutoCheckForUpdates();
}
@ -203,6 +224,7 @@ void AboutViewModel::Retry() {
void AboutViewModel::_UpdateService_StatusChanged(UpdateStatus status) {
_propertyChangedEvent(*this, PropertyChangedEventArgs(L"IsCheckingForUpdates"));
_propertyChangedEvent(*this, PropertyChangedEventArgs(L"IsCheckForUpdatesButtonEnabled"));
_propertyChangedEvent(*this, PropertyChangedEventArgs(L"IsErrorWhileChecking"));
_propertyChangedEvent(*this, PropertyChangedEventArgs(L"IsNoUpdate"));
_propertyChangedEvent(*this, PropertyChangedEventArgs(L"IsAvailable"));

View file

@ -15,15 +15,19 @@ struct AboutViewModel : AboutViewModelT<AboutViewModel> {
_propertyChangedEvent.remove(token);
}
hstring Version() const noexcept;
Imaging::SoftwareBitmapSource Logo() const noexcept {
return _logo;
}
Uri ReleaseNotesLink() const noexcept;
hstring Version() const noexcept;
fire_and_forget CheckForUpdates();
bool IsCheckForPreviewUpdates() const noexcept;
void IsCheckForPreviewUpdates(bool value) noexcept;
bool IsCheckForUpdatesButtonEnabled() const noexcept;
bool IsAutoCheckForUpdates() const noexcept;
void IsAutoCheckForUpdates(bool value) noexcept;
@ -68,6 +72,8 @@ private:
WinRTUtils::EventRevoker _updateStatusChangedRevoker;
WinRTUtils::EventRevoker _downloadProgressChangedRevoker;
WinRTUtils::EventRevoker _showOnHomePageChangedRevoker;
Imaging::SoftwareBitmapSource _logo{ nullptr };
};
}

View file

@ -2,11 +2,13 @@ namespace Magpie.App {
runtimeclass AboutViewModel : Windows.UI.Xaml.Data.INotifyPropertyChanged {
AboutViewModel();
Windows.UI.Xaml.Media.Imaging.SoftwareBitmapSource Logo { get; };
String Version { get; };
Windows.Foundation.Uri ReleaseNotesLink { get; };
void CheckForUpdates();
Boolean IsCheckingForUpdates { get; };
Boolean IsCheckForUpdatesButtonEnabled { get; };
Boolean IsAutoCheckForUpdates;
Boolean IsCheckForPreviewUpdates;

View file

@ -558,23 +558,20 @@
<data name="About_Version.Title" xml:space="preserve">
<value>Version</value>
</data>
<data name="About_Version_AutoCheckForPreviewUpdates.Content" xml:space="preserve">
<data name="About_Version_UpdateSettings_CheckForPreviewUpdates.Title" xml:space="preserve">
<value>Check for preview updates</value>
</data>
<data name="About_Version_AutoCheckForUpdates.Content" xml:space="preserve">
<data name="About_Version_UpdateSettings_AutoCheckForUpdates.Title" xml:space="preserve">
<value>Check for updates automatically</value>
</data>
<data name="About_Version_CheckForUpdates.Content" xml:space="preserve">
<data name="About_Version_CheckForUpdates.Text" xml:space="preserve">
<value>Check for updates</value>
</data>
<data name="About_Version_CheckForUpdatesFailed.Title" xml:space="preserve">
<value>Failed to check for updates, please try again later</value>
</data>
<data name="About_Version_CheckingForUpdates.Text" xml:space="preserve">
<value>Checking for updates…</value>
</data>
<data name="About_Version_ReleaseNotes.Content" xml:space="preserve">
<value>Release notes</value>
<value>Checking for updates</value>
</data>
<data name="About_Version_UpdateCard_Cancel.Content" xml:space="preserve">
<value>Cancel</value>
@ -775,4 +772,10 @@
<data name="ImportLegacyDialog_Title" xml:space="preserve">
<value>Import ScaleModels.json</value>
</data>
<data name="About_Version_UpdateSettings.Title" xml:space="preserve">
<value>Update settings</value>
</data>
<data name="About_Version_Version" xml:space="preserve">
<value>Version</value>
</data>
</root>

View file

@ -582,23 +582,20 @@
<data name="About_Version.Title" xml:space="preserve">
<value>Версия</value>
</data>
<data name="About_Version_AutoCheckForPreviewUpdates.Content" xml:space="preserve">
<data name="About_Version_UpdateSettings_CheckForPreviewUpdates.Title" xml:space="preserve">
<value>Проверять предварительные обновления</value>
</data>
<data name="About_Version_AutoCheckForUpdates.Content" xml:space="preserve">
<data name="About_Version_UpdateSettings_AutoCheckForUpdates.Title" xml:space="preserve">
<value>Автоматически проверять наличие обновлений</value>
</data>
<data name="About_Version_CheckForUpdates.Content" xml:space="preserve">
<data name="About_Version_CheckForUpdates.Text" xml:space="preserve">
<value>Проверить наличие обновлений</value>
</data>
<data name="About_Version_CheckForUpdatesFailed.Title" xml:space="preserve">
<value>Не удалось проверить наличие обновлений, повторите попытку позже</value>
</data>
<data name="About_Version_CheckingForUpdates.Text" xml:space="preserve">
<value>Проверяем обновления…</value>
</data>
<data name="About_Version_ReleaseNotes.Content" xml:space="preserve">
<value>Примечания к выпуску</value>
<value>Проверяем обновления</value>
</data>
<data name="About_Version_UpdateCard_Cancel.Content" xml:space="preserve">
<value>Отмена</value>

View file

@ -558,23 +558,20 @@
<data name="About_Version.Title" xml:space="preserve">
<value>程序版本</value>
</data>
<data name="About_Version_AutoCheckForPreviewUpdates.Content" xml:space="preserve">
<data name="About_Version_UpdateSettings_CheckForPreviewUpdates.Title" xml:space="preserve">
<value>检查预览版更新</value>
</data>
<data name="About_Version_AutoCheckForUpdates.Content" xml:space="preserve">
<data name="About_Version_UpdateSettings_AutoCheckForUpdates.Title" xml:space="preserve">
<value>自动检查更新</value>
</data>
<data name="About_Version_CheckForUpdates.Content" xml:space="preserve">
<data name="About_Version_CheckForUpdates.Text" xml:space="preserve">
<value>检查更新</value>
</data>
<data name="About_Version_CheckForUpdatesFailed.Title" xml:space="preserve">
<value>检查更新失败,请稍后重试</value>
</data>
<data name="About_Version_CheckingForUpdates.Text" xml:space="preserve">
<value>正在检查更新…</value>
</data>
<data name="About_Version_ReleaseNotes.Content" xml:space="preserve">
<value>发行说明</value>
<value>正在检查更新</value>
</data>
<data name="About_Version_UpdateCard_Cancel.Content" xml:space="preserve">
<value>取消</value>
@ -775,4 +772,10 @@
<data name="ImportLegacyDialog_Title" xml:space="preserve">
<value>导入 ScaleModels.json</value>
</data>
<data name="About_Version_UpdateSettings.Title" xml:space="preserve">
<value>更新设置</value>
</data>
<data name="About_Version_Version" xml:space="preserve">
<value>版本</value>
</data>
</root>

View file

@ -498,20 +498,17 @@
<data name="About_Version.Title" xml:space="preserve">
<value>程式版本</value>
</data>
<data name="About_Version_AutoCheckForPreviewUpdates.Content" xml:space="preserve">
<data name="About_Version_UpdateSettings_CheckForPreviewUpdates.Title" xml:space="preserve">
<value>檢查預覽版程式</value>
</data>
<data name="About_Version_CheckForUpdates.Content" xml:space="preserve">
<data name="About_Version_CheckForUpdates.Text" xml:space="preserve">
<value>檢查更新</value>
</data>
<data name="About_Version_CheckForUpdatesFailed.Title" xml:space="preserve">
<value>檢查更新失敗,請稍後重試</value>
</data>
<data name="About_Version_CheckingForUpdates.Text" xml:space="preserve">
<value>正在檢查更新…</value>
</data>
<data name="About_Version_ReleaseNotes.Content" xml:space="preserve">
<value>新版特性</value>
<value>正在檢查更新</value>
</data>
<data name="About_Version_UpdateCard_Cancel.Content" xml:space="preserve">
<value>取消</value>
@ -754,7 +751,7 @@
<data name="About_Feedback_ReportBug.Title" xml:space="preserve">
<value>報告錯誤</value>
</data>
<data name="About_Version_AutoCheckForUpdates.Content" xml:space="preserve">
<data name="About_Version_UpdateSettings_AutoCheckForUpdates.Title" xml:space="preserve">
<value>自動檢查更新</value>
</data>
<data name="Profile_SourceWindow_CaptureTitleBar.Title" xml:space="preserve">

View file

@ -17,7 +17,8 @@
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ToggleSwitch">
<Grid Background="{TemplateBinding Background}"
<Grid Margin="0,-4,0,-4"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{TemplateBinding CornerRadius}">

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

View file

@ -0,0 +1,94 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="_layer_" data-name="layer" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512">
<defs>
<style>
.cls-1 {
fill: url(#_gradient_2);
filter: url(#drop-shadow-2);
}
.cls-2 {
fill: url(#_gradient_5-2);
filter: url(#drop-shadow-4);
}
.cls-3 {
fill: url(#_gradient_30);
filter: url(#drop-shadow-3);
}
.cls-4 {
clip-path: url(#clippath);
}
.cls-5 {
fill: none;
}
.cls-6 {
fill: url(#_gradient_5);
filter: url(#drop-shadow-1);
}
.cls-7 {
fill: url(#_gradient_16);
}
</style>
<clipPath id="clippath">
<path class="cls-5" d="M463.82,211.04h-15.82V82c0-9.94-8.06-18-18-18H114c-9.94,0-18,8.06-18,18v110H50c-9.94,0-18,8.06-18,18v188c0,9.94,8.06,18,18,18H219.35v25.63c-4.08,9.17-7.8,18.5-11.09,27.84-7.51,21.33,20.59,28.46,26.6,8.17,3.4-11.49,7.4-22.82,11.92-33.97h24.86c58.33,0,77.77-22.06,89.29-34.84,16.02-17.76,29.8-37.11,38.34-56.84h30.73c9.94,0,18-8.06,18-18v-62.09c8.12-11.13,17.28-22.88,27.72-35.44,8.4-10.11,1.24-25.43-11.9-25.43Z"/>
</clipPath>
<linearGradient id="_gradient_16" data-name="gradient 16" x1="117.27" y1="53.27" x2="426.73" y2="362.73" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#bec3cd"/>
<stop offset=".96" stop-color="#afb4b9"/>
<stop offset="1" stop-color="#afb4b9"/>
</linearGradient>
<linearGradient id="_gradient_5" data-name="gradient 5" x1="53.27" y1="181.27" x2="298.73" y2="426.73" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#727980"/>
<stop offset="1" stop-color="#46494e"/>
</linearGradient>
<filter id="drop-shadow-1" filterUnits="userSpaceOnUse">
<feOffset dx="0" dy="6"/>
<feGaussianBlur result="blur" stdDeviation="12"/>
<feFlood flood-color="#040000" flood-opacity=".25"/>
<feComposite in2="blur" operator="in"/>
<feComposite in="SourceGraphic"/>
</filter>
<linearGradient id="_gradient_2" data-name="gradient 2" x1="219.35" y1="327.36" x2="479.34" y2="327.36" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#168dd5"/>
<stop offset="1" stop-color="#066abd"/>
</linearGradient>
<filter id="drop-shadow-2" filterUnits="userSpaceOnUse">
<feOffset dx="0" dy="6"/>
<feGaussianBlur result="blur-2" stdDeviation="12"/>
<feFlood flood-color="#040000" flood-opacity=".25"/>
<feComposite in2="blur-2" operator="in"/>
<feComposite in="SourceGraphic"/>
</filter>
<linearGradient id="_gradient_30" data-name="gradient 30" x1="277.36" y1="345.88" x2="323.66" y2="392.19" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#fff"/>
<stop offset="1" stop-color="#b9b9c8"/>
</linearGradient>
<filter id="drop-shadow-3" filterUnits="userSpaceOnUse">
<feOffset dx="0" dy="6"/>
<feGaussianBlur result="blur-3" stdDeviation="12"/>
<feFlood flood-color="#040000" flood-opacity=".25"/>
<feComposite in2="blur-3" operator="in"/>
<feComposite in="SourceGraphic"/>
</filter>
<linearGradient id="_gradient_5-2" data-name="gradient 5" x1="349.37" y1="103.31" x2="408.69" y2="162.63" xlink:href="#_gradient_5"/>
<filter id="drop-shadow-4" filterUnits="userSpaceOnUse">
<feOffset dx="0" dy="6"/>
<feGaussianBlur result="blur-4" stdDeviation="12"/>
<feFlood flood-color="#040000" flood-opacity=".25"/>
<feComposite in2="blur-4" operator="in"/>
<feComposite in="SourceGraphic"/>
</filter>
</defs>
<g class="cls-4">
<rect class="cls-7" x="96" y="64" width="352" height="288" rx="18" ry="18"/>
<rect class="cls-6" x="32" y="192" width="288" height="224" rx="18" ry="18"/>
<path class="cls-1" d="M475.72,236.47c-24.53,29.52-42.08,54.64-55.46,77.49-3.06,5.22-8.64,8.45-14.69,8.45h-11.82s6.07,9.87,6.07,9.87c2.81,4.57,3.28,10.18,1.33,15.18-8.3,21.3-22.97,42.27-40.22,61.39-11.52,12.78-30.96,34.84-89.29,34.84h-52.29v-38.44c0-113.71,97.94-194.2,205.2-194.2h39.27c13.14,0,20.3,15.32,11.9,25.43Z"/>
<path class="cls-3" d="M208.26,469.47c30.47-86.49,95.67-167.17,179.61-213.56,6.77-3.51,12.57,5.9,6.13,10.31-76.34,47.99-133.72,125.68-159.14,211.42-6.01,20.28-34.12,13.16-26.6-8.17Z"/>
<path class="cls-2" d="M396,172h0c-30.93,0-56-25.07-56-56h0c0-4.42,3.58-8,8-8h48c4.42,0,8,3.58,8,8v48c0,4.42-3.58,8-8,8Z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.4 KiB

View file

@ -0,0 +1,94 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="_layer_" data-name="layer" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512">
<defs>
<style>
.cls-1 {
fill: url(#_gradient_5);
}
.cls-2 {
fill: url(#_gradient_2-2);
filter: url(#drop-shadow-4);
}
.cls-3 {
fill: url(#_gradient_2);
filter: url(#drop-shadow-2);
}
.cls-4 {
fill: url(#_gradient_30);
filter: url(#drop-shadow-3);
}
.cls-5 {
clip-path: url(#clippath);
}
.cls-6 {
fill: none;
}
.cls-7 {
fill: url(#_gradient_16);
filter: url(#drop-shadow-1);
}
</style>
<clipPath id="clippath">
<path class="cls-6" d="M463.82,211.04h-15.82V82c0-9.94-8.06-18-18-18H114c-9.94,0-18,8.06-18,18v110H50c-9.94,0-18,8.06-18,18v188c0,9.94,8.06,18,18,18H219.35v25.63c-4.08,9.17-7.8,18.5-11.09,27.84-7.51,21.33,20.59,28.46,26.6,8.17,3.4-11.49,7.4-22.82,11.92-33.97h24.86c58.33,0,77.77-22.06,89.29-34.84,16.02-17.76,29.8-37.11,38.34-56.84h30.73c9.94,0,18-8.06,18-18v-62.09c8.12-11.13,17.28-22.88,27.72-35.44,8.4-10.11,1.24-25.43-11.9-25.43Z"/>
</clipPath>
<linearGradient id="_gradient_5" data-name="gradient 5" x1="53.27" y1="181.27" x2="298.73" y2="426.73" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#727980"/>
<stop offset="1" stop-color="#46494e"/>
</linearGradient>
<linearGradient id="_gradient_16" data-name="gradient 16" x1="117.27" y1="53.27" x2="426.73" y2="362.73" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#bec3cd"/>
<stop offset=".96" stop-color="#afb4b9"/>
<stop offset="1" stop-color="#afb4b9"/>
</linearGradient>
<filter id="drop-shadow-1" filterUnits="userSpaceOnUse">
<feOffset dx="0" dy="6"/>
<feGaussianBlur result="blur" stdDeviation="12"/>
<feFlood flood-color="#040000" flood-opacity=".25"/>
<feComposite in2="blur" operator="in"/>
<feComposite in="SourceGraphic"/>
</filter>
<linearGradient id="_gradient_2" data-name="gradient 2" x1="219.35" y1="327.36" x2="479.34" y2="327.36" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#168dd5"/>
<stop offset="1" stop-color="#066abd"/>
</linearGradient>
<filter id="drop-shadow-2" filterUnits="userSpaceOnUse">
<feOffset dx="0" dy="6"/>
<feGaussianBlur result="blur-2" stdDeviation="12"/>
<feFlood flood-color="#040000" flood-opacity=".25"/>
<feComposite in2="blur-2" operator="in"/>
<feComposite in="SourceGraphic"/>
</filter>
<linearGradient id="_gradient_30" data-name="gradient 30" x1="277.36" y1="345.88" x2="323.66" y2="392.19" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#fff"/>
<stop offset="1" stop-color="#b9b9c8"/>
</linearGradient>
<filter id="drop-shadow-3" filterUnits="userSpaceOnUse">
<feOffset dx="0" dy="6"/>
<feGaussianBlur result="blur-3" stdDeviation="12"/>
<feFlood flood-color="#040000" flood-opacity=".25"/>
<feComposite in2="blur-3" operator="in"/>
<feComposite in="SourceGraphic"/>
</filter>
<linearGradient id="_gradient_2-2" data-name="gradient 2" x1="349.37" y1="103.31" x2="408.69" y2="162.63" xlink:href="#_gradient_2"/>
<filter id="drop-shadow-4" filterUnits="userSpaceOnUse">
<feOffset dx="0" dy="6"/>
<feGaussianBlur result="blur-4" stdDeviation="12"/>
<feFlood flood-color="#040000" flood-opacity=".25"/>
<feComposite in2="blur-4" operator="in"/>
<feComposite in="SourceGraphic"/>
</filter>
</defs>
<g class="cls-5">
<rect class="cls-1" x="32" y="192" width="288" height="224" rx="18" ry="18"/>
<rect class="cls-7" x="96" y="64" width="352" height="288" rx="18" ry="18"/>
<path class="cls-3" d="M475.72,236.47c-24.53,29.52-42.08,54.64-55.46,77.49-3.06,5.22-8.64,8.45-14.69,8.45h-11.82s6.07,9.87,6.07,9.87c2.81,4.57,3.28,10.18,1.33,15.18-8.3,21.3-22.97,42.27-40.22,61.39-11.52,12.78-30.96,34.84-89.29,34.84h-52.29v-38.44c0-113.71,97.94-194.2,205.2-194.2h39.27c13.14,0,20.3,15.32,11.9,25.43Z"/>
<path class="cls-4" d="M208.26,469.47c30.47-86.49,95.67-167.17,179.61-213.56,6.77-3.51,12.57,5.9,6.13,10.31-76.34,47.99-133.72,125.68-159.14,211.42-6.01,20.28-34.12,13.16-26.6-8.17Z"/>
<path class="cls-2" d="M396,172h0c-30.93,0-56-25.07-56-56h0c0-4.42,3.58-8,8-8h48c4.42,0,8,3.58,8,8v48c0,4.42-3.58,8-8,8Z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.4 KiB

View file

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="_layer_" data-name="layer" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512">
<defs>
<style>
.cls-1 {
fill: url(#_gradient_30);
filter: url(#drop-shadow-2);
}
.cls-2 {
clip-path: url(#clippath);
}
.cls-3 {
fill: none;
}
.cls-4 {
fill: url(#_gradient_2);
filter: url(#drop-shadow-1);
}
</style>
<clipPath id="clippath">
<path class="cls-3" d="M449.99,32h-63.14C214.41,32,56.93,161.41,56.93,344.23v58.53c-6.58,14.77-12.53,29.7-17.83,44.75-12.08,34.29,33.11,45.75,42.77,13.14,5.47-18.46,11.88-36.69,19.15-54.61h39.99c93.79,0,125.04-35.47,143.56-56.01,27.74-30.75,51.32-64.46,64.67-98.71,3.13-8.03,2.38-17.06-2.14-24.41l-9.77-15.87h19c9.73,0,18.7-5.18,23.62-13.58,21.52-36.73,49.73-77.11,89.17-124.58,13.5-16.25,1.99-40.88-19.14-40.88Z"/>
</clipPath>
<linearGradient id="_gradient_2" data-name="gradient 2" x1="56.93" y1="219.02" x2="474.94" y2="219.02" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#168dd5"/>
<stop offset="1" stop-color="#066abd"/>
</linearGradient>
<filter id="drop-shadow-1" filterUnits="userSpaceOnUse">
<feOffset dx="0" dy="9.65"/>
<feGaussianBlur result="blur" stdDeviation="19.29"/>
<feFlood flood-color="#040000" flood-opacity=".25"/>
<feComposite in2="blur" operator="in"/>
<feComposite in="SourceGraphic"/>
</filter>
<linearGradient id="_gradient_30" data-name="gradient 30" x1="150.2" y1="248.8" x2="224.65" y2="323.25" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#fff"/>
<stop offset="1" stop-color="#b9b9c8"/>
</linearGradient>
<filter id="drop-shadow-2" filterUnits="userSpaceOnUse">
<feOffset dx="0" dy="9.65"/>
<feGaussianBlur result="blur-2" stdDeviation="19.29"/>
<feFlood flood-color="#040000" flood-opacity=".25"/>
<feComposite in2="blur-2" operator="in"/>
<feComposite in="SourceGraphic"/>
</filter>
</defs>
<g class="cls-2">
<path class="cls-4" d="M469.12,72.88c-39.44,47.47-67.65,87.85-89.17,124.58-4.92,8.4-13.89,13.58-23.62,13.58h-19s9.77,15.87,9.77,15.87c4.52,7.34,5.27,16.37,2.14,24.41-13.35,34.25-36.93,67.96-64.67,98.71-18.53,20.54-49.77,56.01-143.56,56.01H56.93v-61.81C56.93,161.41,214.41,32,386.85,32h63.14c21.13,0,32.64,24.63,19.14,40.88Z"/>
<path class="cls-1" d="M39.1,447.51C88.09,308.45,192.91,178.73,327.87,104.14c10.89-5.64,20.21,9.48,9.86,16.58-122.74,77.16-214.99,202.07-255.86,339.92-9.67,32.61-54.86,21.15-42.77-13.14Z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 59 KiB

Before After
Before After

View file

@ -44,6 +44,7 @@ bool MainWindow::Create(HINSTANCE hInstance, const RECT& windowRect, bool isMaxi
// https://stackoverflow.com/questions/69715610/how-to-initialize-the-background-color-of-win32-app-to-something-other-than-whit
SetWindowPos(hWnd, NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
ShowWindow(hWnd, isMaximized ? SW_SHOWMAXIMIZED : SW_SHOWNORMAL);
Win32Utils::SetForegroundWindow(hWnd);
});
});