From 413704d5a4f6bae2d0f60f10488c8862b1b61c27 Mon Sep 17 00:00:00 2001 From: chrisbell Date: Sun, 4 Jan 2026 19:32:58 -0600 Subject: [PATCH] Made a reusable profile button control --- .../CritterFolio.Android/MainActivity.cs | 2 +- .../CritterFolio/CritterFolio/App.axaml.cs | 3 + .../CritterFolio/CritterFolio/Assets/Icon.png | Bin 0 -> 38708 bytes .../CritterFolio/Controls/ProfileButton.axaml | 18 ++++++ .../Controls/ProfileButton.axaml.cs | 36 ++++++++++++ .../CritterFolio/Navigation.axaml | 5 +- .../CritterFolio/Pages/HomePage.axaml | 13 +++-- .../CritterFolio/Pages/HomePage.axaml.cs | 52 ++++++++++++----- .../CritterFolio/Pages/TestPage.axaml.cs | 2 +- .../CritterFolio/Styles/MainStyles.axaml | 17 ++++++ critterfolio/CritterFolio/CritterFolio/Sys.cs | 5 ++ icon.svg | 55 ++++++++++++++++++ 12 files changed, 185 insertions(+), 23 deletions(-) create mode 100644 critterfolio/CritterFolio/CritterFolio/Assets/Icon.png create mode 100644 critterfolio/CritterFolio/CritterFolio/Controls/ProfileButton.axaml create mode 100644 critterfolio/CritterFolio/CritterFolio/Controls/ProfileButton.axaml.cs create mode 100644 icon.svg diff --git a/critterfolio/CritterFolio/CritterFolio.Android/MainActivity.cs b/critterfolio/CritterFolio/CritterFolio.Android/MainActivity.cs index 3d6926c..ee07061 100644 --- a/critterfolio/CritterFolio/CritterFolio.Android/MainActivity.cs +++ b/critterfolio/CritterFolio/CritterFolio.Android/MainActivity.cs @@ -29,7 +29,7 @@ public class MainActivity : AvaloniaMainActivity { //base.OnBackPressed(); // CA1422: This call site is reachable on: 'Android' 21.0 and later. 'AvaloniaActivity.OnBackPressed()' is obsoleted on: 'Android' 33.0 and later. - // Just call exit from Sytem.Environment for now which does not shutdown cleanly + // Just call exit from System.Environment for now which does not shutdown cleanly Environment.Exit(0); } } diff --git a/critterfolio/CritterFolio/CritterFolio/App.axaml.cs b/critterfolio/CritterFolio/CritterFolio/App.axaml.cs index 58e996d..093ec86 100644 --- a/critterfolio/CritterFolio/CritterFolio/App.axaml.cs +++ b/critterfolio/CritterFolio/CritterFolio/App.axaml.cs @@ -35,6 +35,9 @@ public partial class App : Application DataContext = new MainViewModel() }; } + + // Other init stuff here + base.OnFrameworkInitializationCompleted(); } diff --git a/critterfolio/CritterFolio/CritterFolio/Assets/Icon.png b/critterfolio/CritterFolio/CritterFolio/Assets/Icon.png new file mode 100644 index 0000000000000000000000000000000000000000..6bb4ac39ce72254289916f877ee63e54b1bd9662 GIT binary patch literal 38708 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 literal 0 HcmV?d00001 diff --git a/critterfolio/CritterFolio/CritterFolio/Controls/ProfileButton.axaml b/critterfolio/CritterFolio/CritterFolio/Controls/ProfileButton.axaml new file mode 100644 index 0000000..6d5166b --- /dev/null +++ b/critterfolio/CritterFolio/CritterFolio/Controls/ProfileButton.axaml @@ -0,0 +1,18 @@ + + + diff --git a/critterfolio/CritterFolio/CritterFolio/Controls/ProfileButton.axaml.cs b/critterfolio/CritterFolio/CritterFolio/Controls/ProfileButton.axaml.cs new file mode 100644 index 0000000..5705a09 --- /dev/null +++ b/critterfolio/CritterFolio/CritterFolio/Controls/ProfileButton.axaml.cs @@ -0,0 +1,36 @@ +using System; +using Avalonia; +using Avalonia.Controls; +using Avalonia.Markup.Xaml; +using Avalonia.Media.Imaging; +using CritterFolio.DataModels; + +namespace CritterFolio.Controls; + +public partial class ProfileButton : UserControl +{ + + public event EventHandler? Clicked; + + public ProfileButton() + { + InitializeComponent(); + + MainButton.Click += (sender, args) => { Clicked?.Invoke(sender, args); }; + } + + public void Init(Critter critter) + { + try + { + var pfp = new Bitmap(critter.ProfileImagePath); + ProfileImage.Source = pfp; + } + catch (Exception e) + { + Console.WriteLine(e); + } + + ProfileNameLabel.Content = string.IsNullOrEmpty(critter.Name) ? "Critter" : critter.Name ; + } +} \ No newline at end of file diff --git a/critterfolio/CritterFolio/CritterFolio/Navigation.axaml b/critterfolio/CritterFolio/CritterFolio/Navigation.axaml index 4138280..2c527e5 100644 --- a/critterfolio/CritterFolio/CritterFolio/Navigation.axaml +++ b/critterfolio/CritterFolio/CritterFolio/Navigation.axaml @@ -10,8 +10,9 @@ x:Name="PageTitle" VerticalAlignment="Center" Foreground="{DynamicResource PrimaryForeground}" - Margin="20, 0, 0, 0" - FontSize="20"/> + Margin="10, 0, 0, 0" + FontSize="20" + FontWeight="Medium"/> diff --git a/critterfolio/CritterFolio/CritterFolio/Pages/HomePage.axaml b/critterfolio/CritterFolio/CritterFolio/Pages/HomePage.axaml index 0fbba20..a767e94 100644 --- a/critterfolio/CritterFolio/CritterFolio/Pages/HomePage.axaml +++ b/critterfolio/CritterFolio/CritterFolio/Pages/HomePage.axaml @@ -4,8 +4,13 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="CritterFolio.Pages.HomePage"> - - - - + + + + + + + + + diff --git a/critterfolio/CritterFolio/CritterFolio/Pages/HomePage.axaml.cs b/critterfolio/CritterFolio/CritterFolio/Pages/HomePage.axaml.cs index 5d74e23..ef819d9 100644 --- a/critterfolio/CritterFolio/CritterFolio/Pages/HomePage.axaml.cs +++ b/critterfolio/CritterFolio/CritterFolio/Pages/HomePage.axaml.cs @@ -4,6 +4,8 @@ using Avalonia.Controls; using Avalonia.Interactivity; using Avalonia.Markup.Xaml; using Avalonia.Media; +using CritterFolio.Controls; +using CritterFolio.DataModels; namespace CritterFolio.Pages; @@ -22,30 +24,50 @@ public partial class HomePage : Page base.Refresh(); Sys.Navigation?.SetTitle(Title); - - TestBttn.Click += TestPage; + CreateHeaderButtons(); - var headBtn = new Button() - { - Classes = { "headerBttn" }, - Content = "\ue248" - }; - - headBtn.Click += (sender, args) => - { - Console.WriteLine("Save button clicked"); - }; + AddButton.Click += AddButtonClicked; - Sys.Navigation?.AddHeaderButton(headBtn); + RefreshProfileButtons(); } - private void TestPage(object? sender, RoutedEventArgs args) + private void CreateHeaderButtons() + { + var settingsBttn = new Button() + { + Classes = { "headerBttn" }, + Content = "\ue270" + }; + + settingsBttn.Click += SettingsPage; + Sys.Navigation?.AddHeaderButton(settingsBttn); + } + + private void RefreshProfileButtons() + { + CritterStack.Children.Clear(); + } + + private void AddButtonClicked(object? sender, RoutedEventArgs e) + { + var newCritter = new Critter() + { + Name = "Toriel", + }; + + var newProfButton = new ProfileButton(); + newProfButton.Init(newCritter); + + CritterStack.Children.Add(newProfButton); + } + + private void SettingsPage(object? sender, RoutedEventArgs args) { Sys.Navigation?.PushPage(new TestPage()); } protected override void ClearConnections() { - TestBttn.Click -= TestPage; + AddButton.Click -= AddButtonClicked; } } \ No newline at end of file diff --git a/critterfolio/CritterFolio/CritterFolio/Pages/TestPage.axaml.cs b/critterfolio/CritterFolio/CritterFolio/Pages/TestPage.axaml.cs index 67e59b7..1b44c0d 100644 --- a/critterfolio/CritterFolio/CritterFolio/Pages/TestPage.axaml.cs +++ b/critterfolio/CritterFolio/CritterFolio/Pages/TestPage.axaml.cs @@ -6,7 +6,7 @@ namespace CritterFolio.Pages; public partial class TestPage : Page { - public override string Title { get; } = "Test"; + public override string Title { get; } = "Settings"; public TestPage() { diff --git a/critterfolio/CritterFolio/CritterFolio/Styles/MainStyles.axaml b/critterfolio/CritterFolio/CritterFolio/Styles/MainStyles.axaml index a9bbffb..a437b16 100644 --- a/critterfolio/CritterFolio/CritterFolio/Styles/MainStyles.axaml +++ b/critterfolio/CritterFolio/CritterFolio/Styles/MainStyles.axaml @@ -28,4 +28,21 @@ + + + + diff --git a/critterfolio/CritterFolio/CritterFolio/Sys.cs b/critterfolio/CritterFolio/CritterFolio/Sys.cs index 5b84dbe..0021a39 100644 --- a/critterfolio/CritterFolio/CritterFolio/Sys.cs +++ b/critterfolio/CritterFolio/CritterFolio/Sys.cs @@ -1,6 +1,11 @@ +using System; +using System.IO; + namespace CritterFolio; public static class Sys { + public static string UserDataPath => Path.Combine(AppContext.BaseDirectory, "UserData"); + public static Navigation? Navigation { get; set; } } \ No newline at end of file diff --git a/icon.svg b/icon.svg new file mode 100644 index 0000000..cce2fd3 --- /dev/null +++ b/icon.svg @@ -0,0 +1,55 @@ + + + +