Skip to content

Commit

Permalink
Slightly simplified chat messages, fixed logout navigation, discarded…
Browse files Browse the repository at this point in the history
… unused parameters
  • Loading branch information
Arcidev committed Aug 13, 2024
1 parent e8831ae commit 045adf9
Show file tree
Hide file tree
Showing 9 changed files with 53 additions and 23 deletions.
20 changes: 20 additions & 0 deletions Client.UI/Utilities/VisulTreeExtension.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
using System.Windows;
using System.Windows.Media;

namespace Client.UI.Utilities
{
public static class VisulTreeExtension
{
public static T FindParent<T>(this DependencyObject obj) where T : DependencyObject
{
if (obj == null)
return null;

obj = VisualTreeHelper.GetParent(obj);
if (obj is T)
return obj as T;

return FindParent<T>(obj);
}
}
}
8 changes: 6 additions & 2 deletions Client.UI/ViewModels/MainGame/ChatMessageViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,12 @@

namespace Client.UI.ViewModels.MainGame
{
public record ChatMessageViewModel(string Author, string Message, ChatMessageType Type = ChatMessageType.Message)
public record ChatMessageViewModel(string Author, string Message, ChatMessageType Type)
{
public bool ShowAuthor => Type == ChatMessageType.Message;
public string Text => Type switch
{
ChatMessageType.Message => $"{Author}> {Message}",
_ => Message,
};
}
}
11 changes: 6 additions & 5 deletions Client.UI/ViewModels/MainGame/ChatWindowViewModel.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using Arci.Networking.Data;
using Client.Logic.Enums;
using Client.UI.Controls;
using Client.UI.Enums;
using Client.UI.Resources;
using System;
using System.Collections.ObjectModel;
Expand Down Expand Up @@ -99,7 +100,7 @@ public void Write(string name, string msg)
{
Application.Current.Dispatcher.Invoke(() =>
{
Messages.Add(new ChatMessageViewModel(name, msg));
Messages.Add(new ChatMessageViewModel(name, msg, ChatMessageType.Message));
});
}

Expand Down Expand Up @@ -177,15 +178,15 @@ private void ListCommands()

Application.Current.Dispatcher.Invoke(() =>
{
Messages.Add(new ChatMessageViewModel(string.Empty, commandsStr.ToString(), Enums.ChatMessageType.System));
Messages.Add(new ChatMessageViewModel(string.Empty, commandsStr.ToString(), ChatMessageType.System));
});
}

private void HandleInvalidCommand()
{
Application.Current.Dispatcher.Invoke(() =>
{
Messages.Add(new ChatMessageViewModel(string.Empty, Texts.InvalidCommand, Enums.ChatMessageType.System));
Messages.Add(new ChatMessageViewModel(string.Empty, Texts.InvalidCommand, ChatMessageType.System));
});
}

Expand All @@ -195,7 +196,7 @@ void FormatSyntaxError()
{
Application.Current.Dispatcher.Invoke(() =>
{
Messages.Add(new ChatMessageViewModel(string.Empty, string.Format(Texts.InvalidSyntax, $"/{whisper} [name] [message]"), Enums.ChatMessageType.System));
Messages.Add(new ChatMessageViewModel(string.Empty, string.Format(Texts.InvalidSyntax, $"/{whisper} [name] [message]"), ChatMessageType.System));
});
}

Expand Down Expand Up @@ -230,7 +231,7 @@ void FormatSyntaxError()
{
Application.Current.Dispatcher.Invoke(() =>
{
Messages.Add(new ChatMessageViewModel(string.Empty, string.Format(Texts.InvalidSyntax, $"/{friend} [{addFriend}/{acceptFriend}/{denyFriend}/{removeFriend}] [name]"), Enums.ChatMessageType.System));
Messages.Add(new ChatMessageViewModel(string.Empty, string.Format(Texts.InvalidSyntax, $"/{friend} [{addFriend}/{acceptFriend}/{denyFriend}/{removeFriend}] [name]"), ChatMessageType.System));
});
}

Expand Down
2 changes: 1 addition & 1 deletion Client.UI/ViewModels/MainGame/MainMenuViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public MainMenuViewModel()
}

usersWindow = new UserListWindow();
usersWindow.Closed += (obj, args) =>
usersWindow.Closed += (_, _) =>
{
(usersWindow.DataContext as IDisposable)?.Dispose();
usersWindow = null;
Expand Down
15 changes: 5 additions & 10 deletions Client.UI/Views/Game/Chat.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,22 +37,17 @@
<ItemsControl ItemsSource="{Binding Messages}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<StackPanel.Style>
<Style TargetType="StackPanel">
<TextBlock Text="{Binding Text, Mode=OneWay}" TextWrapping="Wrap">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding Type}" Value="{x:Static enums:ChatMessageType.System}">
<Setter Property="TextElement.Foreground" Value="OrangeRed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</StackPanel.Style>
<StackPanel Orientation="Horizontal" Visibility="{Binding ShowAuthor, Converter={StaticResource BooleanToVisibilityConverter}}">
<TextBlock Text="{Binding Author, Mode=OneWay}" />
<TextBlock Text=">&#160;" />
</StackPanel>
<TextBlock Text="{Binding Message, Mode=OneWay}" />
</StackPanel>
</TextBlock.Style>
</TextBlock>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Expand Down
10 changes: 8 additions & 2 deletions Client.UI/Views/Game/MainMenu.xaml.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
using Client.UI.Views.Settings;
using Client.UI.Utilities;
using Client.UI.Views.Settings;
using Client.UI.Views.User;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;

namespace Client.UI.Views.Game
{
Expand All @@ -15,7 +18,10 @@ public MainMenu()
Loaded += (_, _) => NavigationService.RemoveBackEntry();
}

private void LogoutButton_Click(object sender, RoutedEventArgs e) => NavigationService.GoBack();
private void LogoutButton_Click(object sender, RoutedEventArgs e)
{
this.FindParent<GamePage>()?.NavigationService.Navigate(new Login());
}

private void ChangePassword_Click(object sender, RoutedEventArgs e)
{
Expand Down
2 changes: 1 addition & 1 deletion Client.UI/Views/User/CreateAccount.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public CreateAccount()
{
InitializeComponent();

Loaded += (obj, args) => App.SetGame(null);
Loaded += (_, _) => App.SetGame(null);
}

private async void CreateAccountBtn_Click(object sender, System.Windows.RoutedEventArgs e)
Expand Down
6 changes: 5 additions & 1 deletion Client.UI/Views/User/Login.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,11 @@ public Login()
{
InitializeComponent();

Loaded += (obj, args) => App.SetGame(null);
Loaded += (_, _) =>
{
App.SetGame(null);
NavigationService.RemoveBackEntry();
};
}

private async void LoginBtn_Click(object sender, System.Windows.RoutedEventArgs e)
Expand Down
2 changes: 1 addition & 1 deletion Client.UI/Views/User/UserListWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ public partial class UserListWindow : Window
public UserListWindow()
{
InitializeComponent();
Loaded += (obj, args) =>
Loaded += (_, _) =>
{
if (DataContext is not UserListViewModel vm)
return;
Expand Down

0 comments on commit 045adf9

Please sign in to comment.