76 lines
2.1 KiB
C#
76 lines
2.1 KiB
C#
using System.Reflection;
|
|
using System.Text;
|
|
using ImGuiNET;
|
|
using Raylib_cs;
|
|
|
|
namespace Shoko;
|
|
|
|
[Protocol("about")]
|
|
[Protocol("shoko")]
|
|
class AboutProtoHandler : ProtoHandler
|
|
{
|
|
public AboutProtoHandler(Uri url)
|
|
{
|
|
URL = url;
|
|
}
|
|
|
|
public override void Load()
|
|
{
|
|
var path = new UriBuilder(URL).Path;
|
|
Content = new MemoryStream(new byte[]{});
|
|
|
|
switch(path)
|
|
{
|
|
case "blank":
|
|
case "":
|
|
case "about":
|
|
case "shoko":
|
|
case "version":
|
|
case "demo":
|
|
break;
|
|
default:
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
MediaType = "text/plain";
|
|
Status = "OK";
|
|
Loaded = true;
|
|
}
|
|
public override void Render()
|
|
{
|
|
var path = new UriBuilder(URL).Path;
|
|
|
|
switch(path)
|
|
{
|
|
case "":
|
|
case "about":
|
|
case "shoko":
|
|
case "version":
|
|
var info = Assembly.GetExecutingAssembly().GetName();
|
|
ImGui.Text("硝子 (shōko) v"+info.Version.ToString());
|
|
ImGui.Text("an experimental browser");
|
|
ImGui.Separator();
|
|
ImGui.Text("(c) 2023 a39 studios");
|
|
ImGui.Text("licensed under LiLiQ-P");
|
|
ImGui.Separator();
|
|
ImGui.Text(".NET v" + Environment.Version.ToString());
|
|
ImGui.Text("Dear ImGui v" + ImGui.GetVersion());
|
|
ImGui.Text("Raylib v" + Raylib.RAYLIB_VERSION);
|
|
ImGui.Separator();
|
|
Gui.TreeNode("Supported protos", ()=>{
|
|
foreach(var proto in SupportedProtos)
|
|
ImGui.BulletText(proto);
|
|
});
|
|
Gui.TreeNode("Supported media", ()=>{
|
|
foreach(var media in MediaHandler.SupportedMedia)
|
|
ImGui.BulletText(media);
|
|
});
|
|
break;
|
|
case "demo":
|
|
ImGui.ShowDemoWindow();
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
} |