Skip to content

Commit d915586

Browse files
qol features implemented
1 parent f5f3f05 commit d915586

28 files changed

+745
-297
lines changed

Counter.sln

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00
33
# Visual Studio Version 17
44
VisualStudioVersion = 17.13.35716.79
55
MinimumVisualStudioVersion = 10.0.40219.1
6-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Counter", "Counter\Counter.csproj", "{B7ECF9E1-6808-4F83-BC8E-C6B940D82304}"
6+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnityHubNative.Net", "Counter\UnityHubNative.Net.csproj", "{B7ECF9E1-6808-4F83-BC8E-C6B940D82304}"
77
EndProject
8-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Windows", "Windows\Windows.csproj", "{48DAB9C0-0C77-40C4-BF07-F12C0BDA2C43}"
8+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnityHubNative.Net.Windows", "Windows\UnityHubNative.Net.Windows.csproj", "{48DAB9C0-0C77-40C4-BF07-F12C0BDA2C43}"
99
EndProject
1010
Global
1111
GlobalSection(SolutionConfigurationPlatforms) = preSolution

Counter/AboutDialogue.cs

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
using Avalonia.Controls;
2+
using Avalonia.Input;
3+
using Avalonia.Layout;
4+
using Avalonia.Media;
5+
using UnityHubNative.Net;
6+
7+
namespace UnityHubNative.Net;
8+
9+
sealed class AboutDialogue : Window
10+
{
11+
private Button _btn;
12+
13+
public AboutDialogue()
14+
{
15+
Content = CreateContent();
16+
_btn!.Focus();
17+
TransparencyLevelHint =
18+
[
19+
WindowTransparencyLevel.AcrylicBlur,
20+
WindowTransparencyLevel.Blur,
21+
];
22+
CanResize = false;
23+
SizeToContent = SizeToContent.WidthAndHeight;
24+
Background = Brushes.Transparent;
25+
WindowStartupLocation = WindowStartupLocation.CenterOwner;
26+
Focusable = true;
27+
}
28+
29+
private object? CreateContent()
30+
{
31+
return new DockPanel
32+
{
33+
Margin = new(5)
34+
}.AddChildren
35+
([
36+
new TextBlock
37+
{
38+
Text = "Unity Hub Native .Net " + Manifest.Version,
39+
FontSize = 25,
40+
HorizontalAlignment = HorizontalAlignment.Center,
41+
}.SetDock(Dock.Top),
42+
new TextBlock
43+
{
44+
Text = "© Saeed Barari 2025\n© Ravbug 2025",
45+
HorizontalAlignment = HorizontalAlignment.Center
46+
}.SetDock(Dock.Top),
47+
new TextBlock
48+
{
49+
Text = "Developed with Avalonia and inspired by UnityHubNative",
50+
HorizontalAlignment = HorizontalAlignment.Center
51+
}.SetDock(Dock.Top),
52+
_btn = new Button
53+
{
54+
Content = "Close",
55+
HotKey = new(Key.Escape),
56+
HorizontalAlignment = HorizontalAlignment.Center
57+
}.OnClick(Close)
58+
]);
59+
}
60+
}

Counter/Assets/Fonts/SEGUIVAR.TTF

-1.77 MB
Binary file not shown.

Counter/CommonTransitions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
using Avalonia.Controls;
44
using Avalonia.Layout;
55

6-
namespace Counter;
6+
namespace UnityHubNative.Net;
77

88
public static class CommonTransitions
99
{

Counter/ControlsExtensions.cs

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
using Avalonia.Input;
44
using Avalonia.Interactivity;
55

6-
namespace Counter;
6+
namespace UnityHubNative.Net;
77

88
public static class ControlsExtensions
99
{
@@ -58,13 +58,47 @@ public static Button OnClick(this Button button, Action callback)
5858
return button;
5959
}
6060

61+
public static MenuItem OnClick(this MenuItem menuItem, params Action<MenuItem, RoutedEventArgs>[] callbacks)
62+
{
63+
for (int i = 0; i < callbacks.Length; i++)
64+
{
65+
int index = 0;
66+
menuItem.Click += (obj, args) => callbacks[index]((MenuItem)obj!, args);
67+
}
68+
69+
return menuItem;
70+
}
71+
72+
public static MenuItem OnClick(this MenuItem menuItem, Action<MenuItem, RoutedEventArgs> callback)
73+
{
74+
menuItem.Click += (obj, args) => callback((MenuItem)obj!, args);
75+
return menuItem;
76+
}
77+
78+
public static MenuItem OnClick(this MenuItem menuItem, params Action[] callbacks)
79+
{
80+
for (int i = 0; i < callbacks.Length; i++)
81+
{
82+
int index = 0;
83+
menuItem.Click += (obj, args) => callbacks[index]();
84+
}
85+
86+
return menuItem;
87+
}
88+
89+
public static MenuItem OnClick(this MenuItem menuItem, Action callback)
90+
{
91+
menuItem.Click += (obj, args) => callback();
92+
return menuItem;
93+
}
94+
6195
public static Panel AddChildren(this Panel control, params Control[] children)
6296
{
6397
control.Children.AddRange(children);
6498
return control;
6599
}
66100

67-
public static ItemsControl AddItems(this ItemsControl control, params object[] items)
101+
public static T AddItems<T>(this T control, params object[] items) where T : ItemsControl
68102
{
69103
for (int i = 0; i < items.Length; i++)
70104
control.Items.Add(items[i]);

Counter/MainViewModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
namespace Counter;
1+
namespace UnityHubNative.Net;
22

33
internal class MainViewModel
44
{

0 commit comments

Comments
 (0)