Skip to content

Commit

Permalink
update: MessageBox owner getter
Browse files Browse the repository at this point in the history
  • Loading branch information
emako committed Aug 15, 2024
1 parent f1be2e2 commit 3e0c8ba
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 25 deletions.
8 changes: 4 additions & 4 deletions src/Wpf.Ui.Violeta/Controls/MessageBox/MessageBox.Image.cs
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ public static Task<MessageBoxResult> InformationAsync(string messageBoxText, str
ShowAsync(messageBoxText, caption, button, MessageBoxImage.Information, MessageBoxResult.None);

public static Task<MessageBoxResult> InformationAsync(string messageBoxText, string caption, MessageBoxButton button, MessageBoxResult defaultResult) =>
ShowAsync(GetActiveWindow(), messageBoxText, caption, button, MessageBoxImage.Information, defaultResult);
ShowAsync(null!, messageBoxText, caption, button, MessageBoxImage.Information, defaultResult);

public static Task<MessageBoxResult> InformationAsync(Window owner, string messageBoxText, string caption, MessageBoxButton button) =>
ShowAsync(owner, messageBoxText, caption, button, MessageBoxImage.Information, MessageBoxResult.None);
Expand All @@ -106,7 +106,7 @@ public static Task<MessageBoxResult> WarningAsync(string messageBoxText, string
ShowAsync(messageBoxText, caption, button, MessageBoxImage.Warning, MessageBoxResult.None);

public static Task<MessageBoxResult> WarningAsync(string messageBoxText, string caption, MessageBoxButton button, MessageBoxResult defaultResult) =>
ShowAsync(GetActiveWindow(), messageBoxText, caption, button, MessageBoxImage.Warning, defaultResult);
ShowAsync(null!, messageBoxText, caption, button, MessageBoxImage.Warning, defaultResult);

public static Task<MessageBoxResult> WarningAsync(Window owner, string messageBoxText, string caption, MessageBoxButton button) =>
ShowAsync(owner, messageBoxText, caption, button, MessageBoxImage.Warning, MessageBoxResult.None);
Expand All @@ -124,7 +124,7 @@ public static Task<MessageBoxResult> QuestionAsync(string messageBoxText, string
ShowAsync(messageBoxText, caption, button, MessageBoxImage.Question, MessageBoxResult.None);

public static Task<MessageBoxResult> QuestionAsync(string messageBoxText, string caption, MessageBoxButton button, MessageBoxResult defaultResult) =>
ShowAsync(GetActiveWindow(), messageBoxText, caption, button, MessageBoxImage.Question, defaultResult);
ShowAsync(null!, messageBoxText, caption, button, MessageBoxImage.Question, defaultResult);

public static Task<MessageBoxResult> QuestionAsync(Window owner, string messageBoxText, string caption, MessageBoxButton button) =>
ShowAsync(owner, messageBoxText, caption, button, MessageBoxImage.Question, MessageBoxResult.None);
Expand All @@ -142,7 +142,7 @@ public static Task<MessageBoxResult> ErrorAsync(string messageBoxText, string ca
ShowAsync(messageBoxText, caption, button, MessageBoxImage.Error, MessageBoxResult.None);

public static Task<MessageBoxResult> ErrorAsync(string messageBoxText, string caption, MessageBoxButton button, MessageBoxResult defaultResult) =>
ShowAsync(GetActiveWindow(), messageBoxText, caption, button, MessageBoxImage.Error, defaultResult);
ShowAsync(null!, messageBoxText, caption, button, MessageBoxImage.Error, defaultResult);

public static Task<MessageBoxResult> ErrorAsync(Window owner, string messageBoxText, string caption, MessageBoxButton button) =>
ShowAsync(owner, messageBoxText, caption, button, MessageBoxImage.Error, MessageBoxResult.None);
Expand Down
39 changes: 20 additions & 19 deletions src/Wpf.Ui.Violeta/Controls/MessageBox/MessageBox.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ public static MessageBoxResult Show(string messageBoxText) =>
Show(messageBoxText, null!);

public static MessageBoxResult Show(string messageBoxText, string caption) =>
Show(GetActiveWindow(), messageBoxText, caption);
Show(null!, messageBoxText, caption);

public static MessageBoxResult Show(string messageBoxText, string caption, MessageBoxButton button) =>
Show(GetActiveWindow(), messageBoxText, caption, button);
Show(null!, messageBoxText, caption, button);

public static MessageBoxResult Show(string messageBoxText, string caption, MessageBoxButton button, MessageBoxImage icon) =>
Show(messageBoxText, caption, button, icon, MessageBoxResult.None);
Expand All @@ -33,16 +33,16 @@ public static MessageBoxResult Show(string messageBoxText, string caption, Messa
Show(messageBoxText, caption, button, icon, MessageBoxResult.None);

public static MessageBoxResult Show(string messageBoxText, string caption, MessageBoxButton button, MessageBoxImage icon, MessageBoxResult defaultResult) =>
Show(GetActiveWindow(), messageBoxText, caption, button, icon, defaultResult);
Show(null!, messageBoxText, caption, button, icon, defaultResult);

public static MessageBoxResult Show(string messageBoxText, string caption, MessageBoxButton button, MessageBoxSymbolGlyph icon, MessageBoxResult defaultResult) =>
Show(GetActiveWindow(), messageBoxText, caption, button, icon, defaultResult);
Show(null!, messageBoxText, caption, button, icon, defaultResult);

public static MessageBoxResult Show(string messageBoxText, string caption, MessageBoxButton button, string icon, MessageBoxResult defaultResult) =>
Show(GetActiveWindow(), messageBoxText, caption, button, icon, defaultResult);
Show(null!, messageBoxText, caption, button, icon, defaultResult);

public static MessageBoxResult Show(string messageBoxText, string caption, MessageBoxButton button, IconSource icon, MessageBoxResult defaultResult) =>
Show(GetActiveWindow(), messageBoxText, caption, button, icon, defaultResult);
Show(null!, messageBoxText, caption, button, icon, defaultResult);

public static MessageBoxResult Show(Window owner, string messageBoxText) =>
Show(owner, messageBoxText, null!);
Expand Down Expand Up @@ -76,7 +76,9 @@ public static MessageBoxResult Show(Window owner, string messageBoxText, string

public static MessageBoxResult Show(Window owner, string messageBoxText, string caption, MessageBoxButton button, IconSource icon, MessageBoxResult defaultResult)
{
owner ??= GetActiveWindow();
owner
??= Application.Current.Windows.OfType<Window>().FirstOrDefault(window => window.IsActive)
?? Application.Current.MainWindow;

MessageBoxDialog window = new()
{
Expand All @@ -100,13 +102,13 @@ public static Task<MessageBoxResult> ShowAsync(string messageBoxText) =>
ShowAsync(messageBoxText, null!);

public static Task<MessageBoxResult> ShowAsync(string messageBoxText, string caption) =>
ShowAsync(GetActiveWindow(), messageBoxText, caption);
ShowAsync(null!, messageBoxText, caption);

public static Task<MessageBoxResult> ShowAsync(Window owner, string messageBoxText) =>
ShowAsync(owner, messageBoxText, null!);

public static Task<MessageBoxResult> ShowAsync(string messageBoxText, string caption, MessageBoxButton button) =>
ShowAsync(GetActiveWindow(), messageBoxText, caption, button);
ShowAsync(null!, messageBoxText, caption, button);

public static Task<MessageBoxResult> ShowAsync(Window owner, string messageBoxText, string caption) =>
ShowAsync(owner, messageBoxText, caption, MessageBoxButton.OK);
Expand All @@ -127,16 +129,16 @@ public static Task<MessageBoxResult> ShowAsync(Window owner, string messageBoxTe
ShowAsync(owner, messageBoxText, caption, button, default(IconSource)!);

public static Task<MessageBoxResult> ShowAsync(string messageBoxText, string caption, MessageBoxButton button, MessageBoxImage icon, MessageBoxResult defaultResult) =>
ShowAsync(GetActiveWindow(), messageBoxText, caption, button, icon, defaultResult);
ShowAsync(null!, messageBoxText, caption, button, icon, defaultResult);

public static Task<MessageBoxResult> ShowAsync(string messageBoxText, string caption, MessageBoxButton button, MessageBoxSymbolGlyph icon, MessageBoxResult defaultResult) =>
ShowAsync(GetActiveWindow(), messageBoxText, caption, button, icon, defaultResult);
ShowAsync(null!, messageBoxText, caption, button, icon, defaultResult);

public static Task<MessageBoxResult> ShowAsync(string messageBoxText, string caption, MessageBoxButton button, string icon, MessageBoxResult defaultResult) =>
ShowAsync(GetActiveWindow(), messageBoxText, caption, button, icon, defaultResult);
ShowAsync(null!, messageBoxText, caption, button, icon, defaultResult);

public static Task<MessageBoxResult> ShowAsync(string messageBoxText, string caption, MessageBoxButton button, IconSource icon, MessageBoxResult defaultResult) =>
ShowAsync(GetActiveWindow(), messageBoxText, caption, button, icon, defaultResult);
ShowAsync(null!, messageBoxText, caption, button, icon, defaultResult);

public static Task<MessageBoxResult> ShowAsync(Window owner, string messageBoxText, string caption, MessageBoxButton button, MessageBoxImage icon) =>
ShowAsync(owner, messageBoxText, caption, button, icon, MessageBoxResult.None);
Expand Down Expand Up @@ -165,16 +167,15 @@ public static Task<MessageBoxResult> ShowAsync(Window owner, string messageBoxTe

Application.Current.Dispatcher.Invoke(() =>
{
owner
??= Application.Current.Windows.OfType<Window>().FirstOrDefault(window => window.IsActive)
?? Application.Current.MainWindow;

MessageBoxResult result = Show(owner, messageBoxText, caption, button, icon, defaultResult);

taskSource.TrySetResult(result);
});

return taskSource.Task;
}

private static Window GetActiveWindow()
{
return Application.Current.Windows.OfType<Window>()
.FirstOrDefault(window => window.IsActive);
}
}
3 changes: 2 additions & 1 deletion src/Wpf.Ui.Violeta/Controls/MessageBox/MessageBoxDialog.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,8 @@
Margin="0,0,16,0"
VerticalAlignment="Center"
Content="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.IconElement}"
IsTabStop="False" />
IsTabStop="False"
Visibility="Collapsed" />
<TextBlock
x:Name="UserIconBlock"
Width="36"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ private void OnGroupChanged(VisualStateGroup oldGroup, VisualStateGroup newGroup
UpdateCurrentStateName(newGroup?.CurrentState!);
}

private void OnCurrentStateChanged(object sender, VisualStateChangedEventArgs e)
private void OnCurrentStateChanged(object? sender, VisualStateChangedEventArgs e)
{
UpdateCurrentStateName(e.NewState);
}
Expand Down

0 comments on commit 3e0c8ba

Please sign in to comment.