﻿<?xml version="1.0" encoding="utf-8"?><Type Name="Main" FullName="Gtk.Main"><TypeSignature Language="C#" Value="public class Main" Maintainer="auto" /><AssemblyInfo><AssemblyName>gtk-sharp</AssemblyName><AssemblyPublicKey></AssemblyPublicKey><AssemblyVersion>2.12.0.0</AssemblyVersion></AssemblyInfo><ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the <link location="node:gtk-sharp/programming/threads">Gtk# Thread Programming</link> for details.</ThreadSafetyStatement><Docs><summary>Main loop event processing class.
</summary><remarks>
Like all GUI toolkits, GTK+ uses an event-driven programming model. When the user is doing nothing, GTK+ sits in the main loop and waits for input. If the user performs some action - say, a mouse click - then the main loop "wakes up" and delivers an event to GTK+. GTK+ forwards the event to one or more widgets.
<para>
When widgets receive an event, they frequently emit one or more signals. Signals notify your program that "something interesting happened" by invoking functions you've connected to the signal with g_signal_connect(). Functions connected to a signal are often termed callbacks.
</para><para>
When your callbacks are invoked, you would typically take some action - for example, when an Open button is clicked you might display a GtkFileSelectionDialog. After a callback finishes, GTK+ will return to the main loop and await more user input. 
</para></remarks></Docs><Base><BaseTypeName>System.Object</BaseTypeName></Base><Interfaces /><Members><Member MemberName="IterationDo"><MemberSignature Language="C#" Value="public static bool IterationDo (bool blocking);" /><MemberType>Method</MemberType><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters><Parameter Name="blocking" Type="System.Boolean" /></Parameters><Docs><summary>Runs one iteration of the main loop.</summary><param name="blocking"><see langword="true" /> if you want Gtk# to block if no events are pending.</param><returns>Returns <see langword="true" /> if the <see cref="M:Gtk.Main.Quit" /> method was invoked to terminate the innermost loop.</returns><remarks>Runs a single iteration of the mainloop. If no events are available either return or block dependent on the value of blocking.</remarks></Docs></Member><Member MemberName="Level"><MemberSignature Language="C#" Value="public static uint Level ();" /><MemberType>Method</MemberType><ReturnValue><ReturnType>System.UInt32</ReturnType></ReturnValue><Parameters /><Docs><summary>Returns the current main loop level.</summary><returns>The nesting level of the current main loop.</returns><remarks>Asks for the current nesting level of the main loop. This can be useful when calling the <see cref="T:Gtk.Main.Quit" /> method.</remarks></Docs></Member><Member MemberName="Iteration"><MemberSignature Language="C#" Value="public static bool Iteration ();" /><MemberType>Method</MemberType><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters /><Docs><summary>Runs an iteration of the main loop: blocks until an event is received.</summary><returns><see langword="true" /> if the <see cref="M:Gtk.Main.Quit" /> method was called to terminate the innermost main loop.</returns><remarks>Runs a single iteration of the main loop. If no events are waiting to be processed Gtk# will block until the next event is noticed. If you don't want to block look at <see cref="M:Gtk.Main.IterationDo()" /> or check if any events are pending with <see cref="M:Gtk.Global.EventsPending()" /> first. </remarks></Docs></Member><Member MemberName="DoEvent"><MemberSignature Language="C#" Value="public static void DoEvent (Gdk.Event evnt);" /><MemberType>Method</MemberType><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="evnt" Type="Gdk.Event" /></Parameters><Docs><summary>Processes a single Gdk Event.</summary><param name="evnt">	An event to process (normally) passed by GDK.</param><remarks>Processes a single GDK event. This is public only to allow filtering of events between GDK and GTK+. You will not usually need to call this function directly.</remarks></Docs></Member><Member MemberName="Quit"><MemberSignature Language="C#" Value="public static void Quit ();" /><MemberType>Method</MemberType><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters /><Docs><summary>Terminates the innermost main loop.</summary><remarks>This terminates the innermost main loop.</remarks></Docs></Member><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public Main ();" /><MemberType>Constructor</MemberType><ReturnValue /><Parameters /><Docs><summary>Public constructor.</summary><remarks></remarks></Docs></Member></Members></Type>