Categories And Scissor

The scissor code should now properly cut all controls from going past the parent.
This commit is contained in:
JacobTech 2024-08-27 10:55:36 -04:00
parent ab73abc7c7
commit 2dee38084e
6 changed files with 36 additions and 8 deletions

View File

@ -9,23 +9,30 @@ public enum ConsoleLog : long
None = 0,
[Shared.GlobalAttributes.DisplayName("OpenGL Errors")]
[Description("Show OpenGL Major Errors")]
[Category("Rendering")]
BigErrosForOpenGL = 1,
[Shared.GlobalAttributes.DisplayName("OpenGL Medium Errors")]
[Description("Show OpenGL Medium Errors")]
[Category("Rendering")]
MediumErrosForOpenGL = 2,
[Shared.GlobalAttributes.DisplayName("OpenGL Small Errors")]
[Description("Show OpenGL Small Errors")]
[Category("Rendering")]
LowErrosForOpenGL = 4,
[Shared.GlobalAttributes.DisplayName("OpenGL Info")]
[Description("Show OpenGL Info")]
[Category("Rendering")]
InfoForOpenGL = 8,
[Shared.GlobalAttributes.DisplayName("Log Frames")]
[Description("Shows draw fram message in the console")]
[Category("Rendering")]
DrawFrames = 16,
[Shared.GlobalAttributes.DisplayName("Show Missing Charters")]
[Description("Show Missing Charters")]
[Category("Rendering")]
ShowMissingChar = 32,
[Shared.GlobalAttributes.DisplayName("GLFW Errors")]
[Description("Show GLFW Errors")]
[Category("Rendering")]
ShowErrorsForGLFW = 64
}

View File

@ -48,7 +48,7 @@ public class AdvancedGradientLabel : LabelBase
base.LoadToParent(window, win);
}
public override void Draw(int x, int y, int ww, int hh)
public override void Draw(int x, int y, int sx, int sy, int sw, int sh)
{
if (Visible && Loaded && this.Font is not null && Colors.Length > 1)
{

View File

@ -550,7 +550,7 @@ public class LuskiLabel : LabelBase
private List<SubHitBox> Links = new();
public override void Draw(int x, int y, int ww, int hh)
public override void Draw(int x, int y, int sx, int sy, int sw, int sh)
{
if (Visible && Loaded)
{

View File

@ -143,6 +143,7 @@ public class ServerRoleOptions : UserControl
NeedMax.Clear();
Type PropType = typeof(ServerPermission);
IEnumerable<ServerPermission> values = Enum.GetValues(PropType).Cast<ServerPermission>();
Dictionary<string, UserControl> Cats = new();
foreach (var val in values)
{
try
@ -150,10 +151,27 @@ public class ServerRoleOptions : UserControl
MemberInfo? enumValueMemberInfo = Globals.GetMemberInfo(PropType, val);
string description = Globals.GetAttribute<DescriptionAttribute, ServerPermission>(enumValueMemberInfo!, val).Description;
string Name = Globals.GetAttribute<DisplayNameAttribute, ServerPermission>(enumValueMemberInfo!, val).DisplayName;
string cat = Globals.GetAttribute<CategoryAttribute, ServerPermission>(enumValueMemberInfo!, val).Category;
if (cat.ToLower() == "internal") continue;
if (!Cats.ContainsKey(cat))
{
UserControl c = new UserControl()
{
BackgroundColor = Page.BackgroundColor,
Size = new(Page.Size.X, 50.ScaleInt())
};
Label tmp = new(Globals.DefaultFont)
{
Text = cat + " Permissions"
};
tmp.SetLocation(2.ScaleInt(), (int)((c.Size.Y - tmp.Font.PixelHeight)/2));
c.Controls.Add(tmp);
Page.Controls.Add(c);
Cats.Add(cat, c);
}
if (Name.ToLower() == "view this") continue;
Globals.AddBool(Page, Name, description + " in the server.", r.ServerPermissions.HasFlag(val), _ =>
UserControl tc = Globals.AddBool(Cats[cat], Name, description + " in the server.", r.ServerPermissions.HasFlag(val), _ =>
{
TempPermissions ^= val;
if (TempPermissions != r.ServerPermissions)
@ -165,6 +183,8 @@ public class ServerRoleOptions : UserControl
Warning.Visible = false;
}
}, NeedMax);
tc.SetLocation(tc.Location.X, Cats[cat].Size.Y);
Cats[cat].SetSize(Cats[cat].Size.X, Cats[cat].Size.Y + tc.Size.Y);
}
catch

View File

@ -260,7 +260,7 @@ public static class Globals
public static API Luski { get; } = new();
public static MainScreenWindow ms;
public static void AddBool(IParent parent, string Name, string description, bool s, Action<bool> a, List<Label>? List = null)
public static UserControl AddBool(IParent parent, string Name, string description, bool s, Action<bool> a, List<Label>? List = null)
{
ToggleSwitch ts = new()
{
@ -309,6 +309,7 @@ public static class Globals
};
tc.ForceDistanceUpdate(parent);
parent.Controls.Add(tc);
return tc;
}
public static void AddBool<TEnum>(IParent parent, Type t, TEnum e, bool s, Action<bool> a, List<Label>? List = null) where TEnum : Enum

View File

@ -22,8 +22,8 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="GraphicsManager" Version="1.1.0-alpha35" />
<PackageReference Include="Luski.net" Version="2.0.1-alpha14" />
<PackageReference Include="GraphicsManager" Version="1.1.0-alpha50" />
<PackageReference Include="Luski.net" Version="2.0.1-alpha15" />
</ItemGroup>
<ItemGroup>