<Type Name="ConnectBeforeAttribute" FullName="GLib.ConnectBeforeAttribute">
  <TypeSignature Language="C#" Maintainer="auto" Value="public sealed class ConnectBeforeAttribute : Attribute" />
  <AssemblyInfo>
    <AssemblyName>glib-sharp</AssemblyName>
    <AssemblyPublicKey>[00 24 00 00 04 80 00 00 94 00 00 00 06 02 00 00 00 24 00 00 52 53 41 31 00 04 00 00 01 00 01 00 71 EB 6C 55 75 52 9C BF 72 44 F7 A6 EA 05 62 84 F9 EA E0 3B CF F2 CC 13 2C 9C 49 0A B3 09 EA B0 B5 6B CE 44 9D F5 03 D9 C0 A8 1E 52 05 85 CD BE 70 E2 FB 90 43 4B AC 04 FA 62 22 A8 00 98 B7 A1 A7 B3 AF 99 1A 41 23 24 BB 43 25 F6 B8 65 BB 64 EB F6 D1 C2 06 D5 73 2D DF BC 70 A7 38 9E E5 3E 0C 24 6E 32 79 74 1A D0 05 03 E4 98 42 E1 9B F3 7B 19 8B 40 21 26 CB 36 89 C2 EA 64 96 A4 7C B4]</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>Identifies a delegate to run before the default signal handler.</summary>
    <remarks>
      <para>
	Use this attribute to attach an event handler to an object and cause it to be invoked before the default signal handler of the object.   While this mechanism can be used to pierce the object's encapsulation and change the behavior of the object without subclassing it, the cleaner approach would be to subclass the object and override the virtual method for the default signal handler.
</para>
      <para>
	In the following example, the ButtonClicked method will be invoked before the <see cref="M:Gtk.Button.OnClicked" /> virtual method is executed.
</para>
      <example>
        <code lang="C#">
public class Example {
	public static int Main (string[] args)
	{
		Gtk.Button btn = new Gtk.Button ("Click me");
		btn.Clicked = new EventHandler (ButtonClicked);
	}

	[GLib.ConnectBefore]
	private void ButtonClicked (object o, EventArgs args)
	{
		Console.WriteLine ("Got Clicked");
	}
}
  </code>
      </example>
    </remarks>
  </Docs>
  <Base>
    <BaseTypeName>System.Attribute</BaseTypeName>
  </Base>
  <Interfaces />
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public ConnectBeforeAttribute ();" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters />
      <Docs>
        <summary>Public Constructor.</summary>
        <remarks>
        </remarks>
      </Docs>
    </Member>
  </Members>
</Type>
