<Type Name="Expander" FullName="Gtk.Expander">
  <TypeSignature Language="C#" Maintainer="auto" Value="public class Expander : Gtk.Bin" />
  <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit Expander extends Gtk.Bin" />
  <AssemblyInfo>
    <AssemblyName>gtk-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>
  </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>
  <Base>
    <BaseTypeName>Gtk.Bin</BaseTypeName>
  </Base>
  <Interfaces>
  </Interfaces>
  <Docs>
    <summary>A container which can hide its child</summary>
    <remarks>
      <para>
A <see cref="T:Gtk.Expander" /> allows the user to hide or show its child by clicking on an expander triangle similar to the triangles used in a <see cref="T:Gtk.TreeView" />.
</para>
      <para>
Normally you use an expander as you would use any other descendant of <see cref="T:Gtk.Bin" />; you create the child widget and use <see cref="M:Gtk.Container.Add()" /> to add it to the expander. When the expander is toggled, it will take care of showing and hiding the child automatically. 
</para>
      <example>
        <code lang="C#">
using System;
using Gtk;

class DemoExpander : Gtk.Window
{
        static void Main ()
        {
                Application.Init ();
                new DemoExpander ();
                Application.Run ();
        }

        DemoExpander () : base ("Demo Expander")
        {
                this.BorderWidth = 10;
                this.DeleteEvent += new DeleteEventHandler (OnWindowDelete);

                VBox vbox = new VBox ();
                vbox.PackStart (new Label ("Expander demo. Click on the triangle for details."), false, true, 3);

                Expander expander = new Expander ("Details");
                expander.Add (new Label ("Details can be shown or hidden."));
                vbox.PackStart (expander, false, true, 3);

                this.Add (vbox);
                this.ShowAll ();
        }

        void OnWindowDelete (object sender, DeleteEventArgs a)
        {
                Application.Quit ();
        }
}
  </code>
      </example>
      <para>
Special Usage
</para>
      <para>
There there are situations in which you may prefer to show and hide the expanded widget yourself, such as when you want to actually create the widget at expansion time. In this case, create a <see cref="T:Gtk.Expander" /> but do not add a child to it. The expander widget has <see cref="E:Gtk.Expander.Activated" /> which can be used to monitor its expansion state.
</para>
      <example>
        <code lang="C#">
using System;
using Gtk;

class DemoExpander : Gtk.Window
{
        static void Main ()
        {
                Application.Init ();
                new DemoExpander ();
                Application.Run ();
        }

        DemoExpander () : base ("Demo Expander")
        {
                this.BorderWidth = 10;
                this.DeleteEvent += new DeleteEventHandler (OnWindowDelete);

                VBox vbox = new VBox ();
                vbox.PackStart (new Label ("Expander demo. Click on the triangle for details."), false, true, 3);

                Expander expander = new Expander ("Details");
                expander.Activated += new EventHandler (OnExpanded);
                vbox.PackStart (expander, false, true, 3);

                this.Add (vbox);
                this.ShowAll ();
        }

        void OnExpanded (object sender, EventArgs a)
        {
                Expander expander = sender as Expander;
                if (expander.Child == null)
                {
                        expander.Add (new Label ("Details can be shown or hidden."));
                        expander.ShowAll ();
                }
        }

        void OnWindowDelete (object sender, DeleteEventArgs a)
        {
                Application.Quit ();
        }
}
  </code>
      </example>
    </remarks>
    <since version="Gtk# 2.4" />
  </Docs>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public Expander (IntPtr raw);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(native int raw) cil managed" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="raw" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <param name="raw">a <see cref="T:System.IntPtr" /></param>
        <summary>Internal constructor</summary>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public Expander (string label);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(string label) cil managed" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="label" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="label">a <see cref="T:System.String" /></param>
        <summary>Creates a new expander with <paramref name="label" /> as its label.</summary>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Activated">
      <MemberSignature Language="C#" Value="public event EventHandler Activated;" />
      <MemberSignature Language="ILAsm" Value=".event class System.EventHandler Activated" />
      <MemberType>Event</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("activate")</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.EventHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Emitted when the expander is toggled.</summary>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Expanded">
      <MemberSignature Language="C#" Value="public bool Expanded { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance bool Expanded" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("expanded")</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>The state of the expander.</summary>
        <value>a <see cref="T:System.Boolean" /></value>
        <remarks>Returns <see langword="true" /> if the child widget is revealed.</remarks>
      </Docs>
    </Member>
    <Member MemberName="GType">
      <MemberSignature Language="C#" Value="public static GLib.GType GType { get; }" />
      <MemberSignature Language="ILAsm" Value=".property valuetype GLib.GType GType" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>GLib.GType</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>GType Property.</summary>
        <value>a <see cref="T:GLib.GType" /></value>
        <remarks>Returns the native <see cref="T:GLib.GType" /> value for <see cref="T:Gtk.Expander" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Label">
      <MemberSignature Language="C#" Value="public string Label { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance string Label" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("label")</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>The text of the label of the expander.</summary>
        <value>a <see cref="T:System.String" /></value>
        <remarks>
          <para>
If the label text has not been set the return value will be <see langword="null " />.
</para>
          <para>
Setting the label will also clear any previously set labels.
</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="LabelFill">
      <MemberSignature Language="C#" Value="public bool LabelFill { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance bool LabelFill" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("label-fill")</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>To be added.</summary>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
        <since version="Gtk# 3.0" />
      </Docs>
    </Member>
    <Member MemberName="LabelWidget">
      <MemberSignature Language="C#" Value="public Gtk.Widget LabelWidget { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance class Gtk.Widget LabelWidget" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("label-widget")</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>Gtk.Widget</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>The label widget for the expander.</summary>
        <value> the label <see cref="T:Gtk.Widget" />, or <see langword="null" /> if there is none.</value>
        <remarks>This is the widget that will appear embedded alongside the expander arrow.</remarks>
      </Docs>
    </Member>
    <Member MemberName="New">
      <MemberSignature Language="C#" Value="public static Gtk.Expander New (string label);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class Gtk.Expander New(string label) cil managed" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.Expander</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="label" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="label">a <see cref="T:System.String" /></param>
        <summary>Public constructor.</summary>
        <returns>a <see cref="T:Gtk.Expander" /></returns>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="OnActivated">
      <MemberSignature Language="C#" Value="protected virtual void OnActivated ();" />
      <MemberSignature Language="ILAsm" Value=".method familyhidebysig newslot virtual instance void OnActivated() cil managed" />
      <MemberType>Method</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.DefaultSignalHandler(ConnectionMethod="OverrideActivated", Type=typeof(Gtk.Expander))</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Default handler for the <see cref="E:Gtk.Expander.Activated" /> event.</summary>
        <remarks>Override this method in a subclass to provide a default handler for the <see cref="E:Gtk.Entry.Activated" /> event.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Spacing">
      <MemberSignature Language="C#" Value="public int Spacing { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance int32 Spacing" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("spacing")</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Space to put between the label and the child.</summary>
        <value>a <see cref="T:System.Int32" /></value>
        <remarks>
          <para>
Allowed values: &gt;= 0
</para>
          <para>
Default value: 0
</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="UseMarkup">
      <MemberSignature Language="C#" Value="public bool UseMarkup { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance bool UseMarkup" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("use-markup")</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Whether the text of the label contains markup in Pango's text markup language.</summary>
        <value>a <see cref="T:System.Boolean" />, <see langword="true" /> if the label's text should be parsed for markup

</value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="UseUnderline">
      <MemberSignature Language="C#" Value="public bool UseUnderline { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance bool UseUnderline" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("use-underline")</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Whether an embedded underline in the expander label indicates a mnemonic.</summary>
        <value>a <see cref="T:System.Boolean" />, <see langword="true" /> if underlines in the text indicate mnemonics</value>
        <remarks />
      </Docs>
    </Member>
  </Members>
</Type>
