From 7bcc49a505a4ec43f63ab1143e85d446ee062a04 Mon Sep 17 00:00:00 2001 From: badcel <1218031+badcel@users.noreply.github.com> Date: Thu, 4 May 2023 22:27:12 +0200 Subject: [PATCH] Manual GLib implementations --- src/Libs/GLib-2.0/Public/MainLoop.cs | 5 +++++ src/Libs/GLib-2.0/Public/Source.cs | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/Libs/GLib-2.0/Public/MainLoop.cs b/src/Libs/GLib-2.0/Public/MainLoop.cs index 645d7735e..3c4a2e82f 100644 --- a/src/Libs/GLib-2.0/Public/MainLoop.cs +++ b/src/Libs/GLib-2.0/Public/MainLoop.cs @@ -12,6 +12,11 @@ private MainLoop(Internal.MainContextHandle context, bool isRunning) _handle = Internal.MainLoop.New(context, isRunning); } + public MainContext GetContext() + { + return new MainContext(Internal.MainLoop.GetContext(Handle)); + } + public bool IsRunning() => Internal.MainLoop.IsRunning(Handle); public void Run() => Internal.MainLoop.Run(Handle); diff --git a/src/Libs/GLib-2.0/Public/Source.cs b/src/Libs/GLib-2.0/Public/Source.cs index 22d4885f3..d401bc8d6 100644 --- a/src/Libs/GLib-2.0/Public/Source.cs +++ b/src/Libs/GLib-2.0/Public/Source.cs @@ -1,6 +1,19 @@ -namespace GLib; +using System; + +namespace GLib; public partial class Source { + public void SetCallback(SourceFunc sourceFunc) + { + var handler = new Internal.SourceFuncNotifiedHandler(sourceFunc); + Internal.Source.SetCallback(Handle, handler.NativeCallback, IntPtr.Zero, handler.DestroyNotify); + } + + public void Attach(MainContext mainContext) + { + Internal.Source.Attach(Handle, mainContext.Handle); + } + public static void Remove(uint tag) => Internal.Functions.SourceRemove(tag); }