// GTK.Application.cs - GTK Main Event Loop class implementation // // Author: Mike Kestner // // (c) 2001 Mike Kestner namespace Gtk { using System; using System.Runtime.InteropServices; /// /// Application Class /// /// /// /// Provides the initialization and event loop iteration related /// methods for the GTK widget library. Since GTK is an event /// driven toolkit, Applications register callbacks against various /// events to handle user input. These callbacks are invoked from /// the main event loop when events are detected. /// public class Application { [DllImport("libgtk-win32-2.0-0.dll")] static extern void gtk_init (int argc, IntPtr argv); public static void Init () { gtk_init (0, new IntPtr(0)); } [DllImport("libgtk-win32-2.0-0.dll")] static extern void gtk_init (ref int argc, ref String[] argv); /// /// Init Method /// /// /// /// Initializes GTK resources. /// public static void Init (ref string[] args) { int argc = args.Length; gtk_init (ref argc, ref args); } [DllImport("libgtk-win32-2.0-0.dll")] static extern void gtk_main (); /// /// Run Method /// /// /// /// Begins the event loop iteration. /// public static void Run () { gtk_main (); } [DllImport("libgtk-win32-2.0-0.dll")] static extern bool gtk_events_pending (); /// /// EventsPending Method /// /// /// /// Returns true if Gtk+ events are pending in the queue. /// public static bool EventsPending () { return gtk_events_pending (); } [DllImport("libgtk-win32-2.0-0.dll")] static extern void gtk_main_iteration (); /// /// RunIteration Method /// /// /// /// Runs a single iteration of the event loop. /// public static void RunIteration () { gtk_main_iteration (); } [DllImport("libgtk-win32-2.0-0.dll")] static extern void gtk_main_quit (); /// /// Quit Method /// /// /// /// Terminates the event loop iteration. /// public static void Quit () { gtk_main_quit (); } } }