Add RTL support for WinForms dialogs

This commit is contained in:
pizzaboxer 2024-06-29 23:20:28 +04:00
parent b3a8691b29
commit 2ddc5efbef
No known key found for this signature in database
GPG Key ID: 59D4A1DBAD0F2BA8
3 changed files with 16 additions and 0 deletions

View File

@ -8,6 +8,8 @@ namespace Bloxstrap
{ {
public static CultureInfo CurrentCulture = CultureInfo.InvariantCulture; public static CultureInfo CurrentCulture = CultureInfo.InvariantCulture;
public static bool RightToLeft { get; private set; } = false;
public static readonly Dictionary<string, string> SupportedLocales = new() public static readonly Dictionary<string, string> SupportedLocales = new()
{ {
{ "nil", Strings.Enums_Theme_Default }, // /shrug { "nil", Strings.Enums_Theme_Default }, // /shrug
@ -83,6 +85,8 @@ namespace Bloxstrap
if (identifier == "ar" || identifier == "he") if (identifier == "ar" || identifier == "he")
{ {
RightToLeft = true;
handler = new((sender, _) => handler = new((sender, _) =>
{ {
var window = (Window)sender; var window = (Window)sender;

View File

@ -94,6 +94,17 @@ namespace Bloxstrap.UI.Elements.Bootstrapper.Base
{ {
Text = App.Settings.Prop.BootstrapperTitle; Text = App.Settings.Prop.BootstrapperTitle;
Icon = App.Settings.Prop.BootstrapperIcon.GetIcon(); Icon = App.Settings.Prop.BootstrapperIcon.GetIcon();
if (Locale.RightToLeft)
{
this.RightToLeft = RightToLeft.Yes;
this.RightToLeftLayout = true;
}
else
{
this.RightToLeft = RightToLeft.No;
this.RightToLeftLayout = false;
}
} }
#region WinForms event handlers #region WinForms event handlers

View File

@ -75,6 +75,7 @@ namespace Bloxstrap.UI.Elements.Bootstrapper
{ {
Icon = new TaskDialogIcon(App.Settings.Prop.BootstrapperIcon.GetIcon()), Icon = new TaskDialogIcon(App.Settings.Prop.BootstrapperIcon.GetIcon()),
Caption = App.Settings.Prop.BootstrapperTitle, Caption = App.Settings.Prop.BootstrapperTitle,
RightToLeftLayout = Locale.RightToLeft,
Buttons = { TaskDialogButton.Cancel }, Buttons = { TaskDialogButton.Cancel },
ProgressBar = new TaskDialogProgressBar() ProgressBar = new TaskDialogProgressBar()