39 lines
1.3 KiB
C#
39 lines
1.3 KiB
C#
using GraphicsManager.Interfaces;
|
|
using GraphicsManager.Objects;
|
|
using Luski.net.Structures.Public;
|
|
using OpenTK.Mathematics;
|
|
|
|
namespace Luski.GUI.MainScreen.UI.LuskiControls;
|
|
|
|
public class ProfileView : UserControl
|
|
{
|
|
public SocketUser User { get; set; }
|
|
|
|
private ProfileView(IRenderObject user, SocketUser u, ServerProfile p, Role r, Color? c = null)
|
|
{
|
|
this.User = u;
|
|
base.Size = new(244.ScaleInt(), 44.ScaleInt());
|
|
base.BackgroundColor = new(34, 34, 34, 255);
|
|
user.Location = new(8.ScaleInt(), 6.ScaleInt(), 0);
|
|
user.ForceDistanceUpdate(this);
|
|
user.IgnoreHover = true;
|
|
Color4 col = r.Color.ToColor4();
|
|
if (c is not null) col = c.ToColor4();
|
|
Label uname = new(Globals.DefaultFont)
|
|
{
|
|
Text = p.DisplayName,
|
|
Color = col,
|
|
IgnoreHover = true
|
|
};
|
|
uname.Location = new(user.Location.X + user.Size.X + 8.ScaleInt(),
|
|
(user.Location.Y + (user.Size.Y / 2) - (uname.Size.Y / 2)), 0);
|
|
Controls.Add(uname);
|
|
Controls.Add(user);
|
|
}
|
|
|
|
public static async Task<ProfileView> Make(SocketUser u, ServerProfile p, Role r)
|
|
{
|
|
ProfileView m = new(await p.MakeRct(u, new(32.ScaleInt())), u, p, r);
|
|
return m;
|
|
}
|
|
} |