From b31f61061e4b36b58f9ed3c7d74b26529f8d631e Mon Sep 17 00:00:00 2001 From: Booklordofthedings Date: Sun, 2 Jun 2024 23:05:04 +0200 Subject: [PATCH] aded checkbox basics --- assets/checkbox.png | Bin 0 -> 364 bytes assets/checkbox_checked.png | Bin 0 -> 443 bytes src/Controls/Checkbox.bf | 21 +++++++++++++++++++++ src/Controls/Label.bf | 13 ++++++++++++- src/Textures.bf | 2 ++ src/Theme.bf | 5 ++--- 6 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 assets/checkbox.png create mode 100644 assets/checkbox_checked.png create mode 100644 src/Controls/Checkbox.bf diff --git a/assets/checkbox.png b/assets/checkbox.png new file mode 100644 index 0000000000000000000000000000000000000000..5564dd22e77d8a9a4fe65995693f135f7fba546d GIT binary patch literal 364 zcmV-y0h9iTP)SbaM! zlm(?T{Vm+j50WPv=Z^v@I7et=K?``CS5AO(_x88PDiv;wId8{+0oA%C$92KJEK3y& zVz^&@oCE4tG*p56xWbbp%!!b^CCBh$aq0>P3HUG!q~f$`d42#x@pT9X!a$+`0000< KMNUMnLSTX+f0=;* literal 0 HcmV?d00001 diff --git a/assets/checkbox_checked.png b/assets/checkbox_checked.png new file mode 100644 index 0000000000000000000000000000000000000000..0a3ea8db4dacf3ea6a805c770f6dec555260a864 GIT binary patch literal 443 zcmV;s0Yv_ZP)K($=PN;IR<9FNz`>T$W)Nm?3$d|9L>QEEZg4;jiJU-spk1aL6s;JRAf5 z^qm%hFX7H1fI?j1pb+?`U?}`H1hL?%+~$FpaBB#Be?C5NEd(JF4K$n=54_0*Z^MQE z10Ez1z1=x4)xe3!WpOARoQPcNKNsUbi6}JObPEuz+o@aTd3OG-y2AUuXYjhNSw*Jh z0l9<@U5IeFtuG+kwi&C~&~Uzc^$eijrh&aUj$=?b7a4AC&1mxgX}g|UH2J#8aR)c2 lw1Ef#ud2$aIsLRf{{dy$kAIO>Bn1Ef002ovPDHLkV1jAaz>WX_ literal 0 HcmV?d00001 diff --git a/src/Controls/Checkbox.bf b/src/Controls/Checkbox.bf new file mode 100644 index 0000000..54bca34 --- /dev/null +++ b/src/Controls/Checkbox.bf @@ -0,0 +1,21 @@ +namespace TheaterGui.Controls; + +using System; + +class Checkbox : GuiObject +{ + public sprite Sprite; + public sprite SpriteChecked; + + public override GuiObject OnHover(int32 x, int32 y) + { + return null; + } + + public this(StringView pName) : base("Checkbox", pName) + { + Sprite = App.Textures.GetAsset("checkbox"); + SpriteChecked = App.Textures.GetAsset("checkbox_checked"); + Label.Append(pName); + } +} \ No newline at end of file diff --git a/src/Controls/Label.bf b/src/Controls/Label.bf index 5070586..d176c95 100644 --- a/src/Controls/Label.bf +++ b/src/Controls/Label.bf @@ -5,13 +5,24 @@ using RaylibBeef; class Label : GuiObject { + private Vector2 _Measure; public this(StringView pName) : base(Label, pName) { Label.Append(pName); + Padding = 3; + _Measure = Raylib.MeasureTextEx(Theme.Font, Label, Theme.FontSize, 0); + Height = (.)_Measure.y; + Width = (.)_Measure.x; } public override GuiObject OnHover(int32 x, int32 y) { - return this; + return null; + } + + public override void Render() + { + Raylib.DrawTextEx(Theme.Font, Label, .(X,Y), Theme.FontSize, 0, Theme.Text); + Raylib.DrawLine(X,Y + (.)_Measure.y,X + (.)_Measure.x, Y + (.)_Measure.y, Theme.Text); } } \ No newline at end of file diff --git a/src/Textures.bf b/src/Textures.bf index 87ccbd5..98aacf6 100644 --- a/src/Textures.bf +++ b/src/Textures.bf @@ -15,6 +15,8 @@ class Textures LoadAsset(Theme.Texture_NButton, "n_button"); LoadAsset(Theme.Texture_SquareButton, "square_button"); LoadAsset(Theme.Texture_LargeButton, "large_button"); + LoadAsset(Theme.Texture_Checkbox, "checkbox"); + LoadAsset(Theme.Texture_Checkbox_Checked, "checkbox_checked"); LoadAsset(Theme.Texture_TheaterIcon, "theater_icon"); LoadAsset(Theme.Texture_FolderIcon, "folder_icon"); diff --git a/src/Theme.bf b/src/Theme.bf index 291586b..a424835 100644 --- a/src/Theme.bf +++ b/src/Theme.bf @@ -27,8 +27,7 @@ public class Theme public static uint8[?] Texture_LargeButton = Compiler.ReadBinary("assets/large_button.png"); public static uint8[?] Texture_NButton = Compiler.ReadBinary("assets/n_button.png"); public static uint8[?] Texture_Button = Compiler.ReadBinary("assets/button.png"); - - - + public static uint8[?] Texture_Checkbox = Compiler.ReadBinary("assets/checkbox.png"); + public static uint8[?] Texture_Checkbox_Checked = Compiler.ReadBinary("assets/checkbox_checked.png"); }