Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
37ca476
start
PaperPrototype Oct 6, 2025
8076cd1
Update PaperDemo.Theme.cs
PaperPrototype Oct 6, 2025
0b5b67d
bevy editor demo
PaperPrototype Oct 6, 2025
6f07b39
Update PaperDemo.New.cs
PaperPrototype Oct 6, 2025
dd1a972
Update PaperDemo.New.cs
PaperPrototype Oct 6, 2025
6506842
Fixed blurry text (Point -> Bilinear)
PaperPrototype Oct 6, 2025
17aba1e
Update quill version
PaperPrototype Oct 6, 2025
53da8eb
improved padding and layout
PaperPrototype Oct 6, 2025
2bc617f
added more colors + tweak current colors
PaperPrototype Oct 6, 2025
dc3481d
Tab selection
PaperPrototype Oct 6, 2025
b0a7384
Improved Tabs API to use separate classes for each tab
PaperPrototype Oct 6, 2025
93588c1
Create AssetsTab.cs
PaperPrototype Oct 6, 2025
aa2b820
Create FilesTab.cs
PaperPrototype Oct 6, 2025
dbc77f3
Create HierarchyTab.cs
PaperPrototype Oct 6, 2025
ab3e218
Create InspectorTab.cs
PaperPrototype Oct 6, 2025
b4c3313
clean up
PaperPrototype Oct 6, 2025
8cd9580
Moved hierarchy code into HierarchyTab
PaperPrototype Oct 6, 2025
1835140
Create GameTab.cs
PaperPrototype Oct 6, 2025
24f23b1
Update HierarchyTab.cs
PaperPrototype Oct 6, 2025
3671e31
Update InspectorTab.cs
PaperPrototype Oct 6, 2025
384a9ab
Create SettingsTab.cs
PaperPrototype Oct 6, 2025
5626735
Update HierarchyTab.cs
PaperPrototype Oct 7, 2025
e4a5ccd
Added scrollbars for overflow in AssetTab.cs
PaperPrototype Oct 7, 2025
b5292d6
Made game tab interactive and show FPS
PaperPrototype Oct 7, 2025
3af1452
Hierarchy tab now dynamically shows a scrollbar when overflowing
PaperPrototype Oct 7, 2025
4763eee
Remove comment with shadcn colors (cleanup)
PaperPrototype Oct 7, 2025
de21eee
Cleanup
PaperPrototype Oct 7, 2025
5cc5848
Renamed GameTab to ChartTab
PaperPrototype Oct 7, 2025
cb69b79
Create ExampleTab.cs
PaperPrototype Oct 7, 2025
b941f7a
PONG!!!!
PaperPrototype Oct 7, 2025
f64375e
PONG now pauses when clicking away from it
PaperPrototype Oct 7, 2025
25bc7ba
Update ExampleTab.cs
PaperPrototype Oct 7, 2025
e9e80bf
Full 2D platformer game and slime friends game!!!
PaperPrototype Oct 7, 2025
aa05603
added Asteroids game
PaperPrototype Oct 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Paper/Paper.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Prowl.Quill" Version="0.6.6" />
<PackageReference Include="Prowl.Quill" Version="0.7.0" />
</ItemGroup>

</Project>
2 changes: 1 addition & 1 deletion Samples/RaylibSample/RaylibCanvasRenderer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ public object CreateTexture(uint width, uint height)
{
var image = GenImageColor((int)width, (int)height, new Color(0, 0, 0, 0));
var texture = LoadTextureFromImage(image);
SetTextureFilter(texture, TextureFilter.Point);
SetTextureFilter(texture, TextureFilter.Bilinear);
return texture;
}

Expand Down
257 changes: 22 additions & 235 deletions Samples/Shared/PaperDemo.Components.cs

Large diffs are not rendered by default.

156 changes: 156 additions & 0 deletions Samples/Shared/PaperDemo.New.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
using Prowl.PaperUI;

namespace Shared
{
public static partial class PaperDemo
{

public static TabsManager tabsManager;

public static Paper Gui;
static double value = 0;

public static void Initialize(Paper paper)
{
Gui = paper;
Fonts.Initialize(Gui);
Themes.Initialize();

// create the tabs
tabsManager = new TabsManager(paper);
}

public static void RenderUI()
{
using (Gui.Box("App").BackgroundColor(Themes.base100).Enter())
{
using (Gui.Column("EditorContainer").Margin(8).Enter())
{
TitleBarUI();

using (Gui.Row("3 Columns Editor Layout").RowBetween(6).Enter())
{
using (Gui.Column("Left Panel").ColBetween(8).Width(250).Enter())
{
using (WindowContainer("Scene Tree Window").Enter())
{
tabsManager.DrawGroup(["hierarchy", "assets"]);
}

using (WindowContainer("Files Window Container").Enter())
{
tabsManager.DrawGroup(["files", "settings"]);
}
}

using (Gui.Column("Center Panel").Enter())
{
using (WindowContainer("Game and Scene Window").Enter())
{
tabsManager.DrawGroup(["chart", "pong", "platformer", "slimefriends", "asteroids"]);
}
}

using (Gui.Column("Right Panel").Width(250).Enter())
{
using (WindowContainer("Inspector Window").Enter())
{
tabsManager.DrawGroup(["inspector", "example"]);
}
}
}
}
}
}

private static ElementBuilder WindowContainer(string id)
{
return Gui.Box(id)
.BackgroundColor(Themes.base100)
.Rounded(5)
.BorderColor(Themes.base200)
.BorderWidth(1);
}

private static void TitleBarUI()
{
using (Gui.Row("Header").Height(28).Bottom(8).Enter())
{
Gui.Box("tab 1")
.Width(80).Height(28)
.BackgroundColor(Themes.base100)
.Text(Icons.Hammer + " Bevy", Fonts.arial)
.TextColor(Themes.baseContent)
.Hovered
.BackgroundColor(Themes.base300)
.End()
.Rounded(5)
.Alignment(TextAlignment.MiddleCenter);

Gui.Box("tab 2")
.Width(45).Height(28)
.BackgroundColor(Themes.base100)
.Text("File", Fonts.arial)
.TextColor(Themes.baseContent)
.Rounded(5)
.Hovered
.BackgroundColor(Themes.base300)
.End()
.Alignment(TextAlignment.MiddleCenter)
.Left(5);

Gui.Box("tab 3")
.Width(45).Height(28)
.BackgroundColor(Themes.base100)
.Text("Edit", Fonts.arial)
.TextColor(Themes.baseContent)
.Rounded(5)
.Hovered
.BackgroundColor(Themes.base300)
.End()
.Alignment(TextAlignment.MiddleCenter)
.Left(5);

Gui.Box("tab 4")
.Width(65).Height(28)
.BackgroundColor(Themes.base100)
.Text("Debug", Fonts.arial)
.TextColor(Themes.baseContent)
.Rounded(5)
.Hovered
.BackgroundColor(Themes.base300)
.End()
.Alignment(TextAlignment.MiddleCenter)
.Left(5);

Gui.Box("Spacer");

Gui.Box("Play / Pause")
.Width(64).Height(28)
.BackgroundColor(Themes.base200)
.Text(Icons.Play + " " + Icons.Pause, Fonts.arial)
.TextColor(Themes.baseContent)
.Rounded(5)
.Hovered
.BackgroundColor(Themes.base250)
.End()
.Alignment(TextAlignment.MiddleCenter)
.Left(500);
}
}

private static void ComponentDemo()
{
using (Gui.Column("EditorContainer").Margin(5).Enter())
{
Button.Secondary("Primary Button").OnClick((_) => Console.WriteLine("Primary Button Clicked")).Margin(5);
Button.Secondary("Secondary Button").OnClick((_) => Console.WriteLine("Secondary Button Clicked")).Margin(5);

TextArea.Secondary("TextArea", "This is a secondary text area. It can hold multiple lines of text and is styled differently from the primary text area.").Margin(5);
Slider.Primary("Slider 1", value, (v) => { value = v; });
Slider.Secondary("Slider 1", value, (v) => { value = v; });
PieChart.Primary("Pie Chart", new double[] { 10, 20, 30, 40 }, value).Height(200).Margin(5);
}
}
}
}
Loading