97 lines
2.8 KiB
C#
97 lines
2.8 KiB
C#
using System.Reflection;
|
|
using System.Text;
|
|
using System.Web;
|
|
using ImGuiNET;
|
|
using Raylib_cs;
|
|
|
|
namespace Shoko;
|
|
|
|
[Protocol("about")]
|
|
[Protocol("shoko")]
|
|
class AboutProtoHandler : ProtoHandler
|
|
{
|
|
string txtDebug = "";
|
|
|
|
public AboutProtoHandler(Uri url)
|
|
{
|
|
URL = url;
|
|
}
|
|
|
|
public override Task 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;
|
|
case "debugtext":
|
|
txtDebug = HttpUtility.UrlDecode(URL.Query);
|
|
if(txtDebug.Length > 0) txtDebug = txtDebug[1..];
|
|
break;
|
|
default:
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
MediaType = "text/plain";
|
|
Status = "OK";
|
|
OnLoaded();
|
|
return Task.CompletedTask;
|
|
}
|
|
|
|
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;
|
|
case "debugtext":
|
|
ImGui.InputText("Text", ref txtDebug, 1024);
|
|
ImGui.SameLine();
|
|
Gui.Button("Debug", ()=>{
|
|
var tourl = new UriBuilder(URL)
|
|
{
|
|
Query = txtDebug
|
|
};
|
|
CurrentTab.Load(tourl.Uri.ToString());
|
|
});
|
|
ImGui.DebugTextEncoding(HttpUtility.UrlDecode(URL.Query));
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
} |