Sophie

Sophie

distrib > Mandriva > 9.2 > i586 > media > contrib > by-pkgid > df634f7f22d35db1c99644e5db0b11d9 > files > 498

gtk-sharp-doc-0.11-0.20030831.3mdk.i586.rpm

<Type Name="Bin" FullName="Gtk.Bin">
  <TypeSignature Language="C#" Value="public class Bin :&#xA;  Gtk.Container, Implementor, IWrapper, IWrapper, IDisposable" Maintainer="Lee Mallabone, Miguel de Icaza" />
  <AssemblyInfo>
    <AssemblyName>gtk-sharp</AssemblyName>
    <AssemblyVersion>0.0.0.0</AssemblyVersion>
    <Attributes />
  </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>A container with just one child.</summary>
    <remarks>
      <para>
        A Bin widget is a <see cref="T:Gtk.Container" /> with just one
	child. It is used to create subclasses, since it provides
	common code needed for handling a single child <see cref="T:Gtk.Widget" />.
      </para>
      <para>
        Many GTK+ widgets are subclasses of Bin, including <see cref="T:Gtk.Window" />, <see cref="T:Gtk.Button" />, <see cref="T:Gtk.Frame" />, <see cref="T:Gtk.HandleBox" />, and
        <see cref="T:Gtk.ScrolledWindow" />.</para>
      <para>
        To place a child widget inside this container, use the
        standard <see cref="M:Gtk.Container.Add" /> method.</para>
      <para>
        For the widget to be useful, it should participate in size
        negotiation and size allocation using the events <see cref="E:Gtk.Widget.SizeAllocated" /> and <see cref="E:Gtk.Widget.SizeRequested" />.</para>
      <para>
        Since Gtk.Bin is an abstract class in C, it is necessary to
        register a Type.  Sample follows.
      </para>
      <example>
        <code lang="C#">
using System;
using Gtk;
using GtkSharp;

//
// A simple Bin class: a simple container that adds padding.
//
class MyPadder : Bin {
	int pad = 50;
	static GLib.Type type;
	Widget child;
	
	static MyPadder ()
	{
	        //
	        // Register the type on the static constructor, so it is
		// available on the instance constructors
		//
		type = RegisterGType (typeof (MyPadder));
	}
	
	public MyPadder () : base (type)
	{
		// To track our child widget.
		Added += new AddedHandler (MyAdded);

		// Participate in size negotiation
		SizeRequested += new SizeRequestedHandler (OnSizeRequested);
		SizeAllocated += new SizeAllocatedHandler (OnSizeAllocated);
	}

	//
	// Invoked to query our size
	//
	void OnSizeRequested (object o, SizeRequestedArgs args)
	{
		if (child != null){
			int width = args.Requisition.width;
			int height = args.Requisition.height;
			
			child.GetSizeRequest (out width, out height);
			if (width == -1 || height == -1)
				width = height = 80;
			SetSizeRequest (width + pad * 2, height + pad * 2);
		} 
		
	}

	//
	// Invoked to propagate our size
	//
	void OnSizeAllocated (object o, SizeAllocatedArgs args)
	{
		if (child != null){
			Gdk.Rectangle mine = args.Allocation;
			Gdk.Rectangle his = mine;

			his.x += pad;
			his.y += pad;
			his.width -= pad * 2;
			his.height -= pad * 2;
			child.SizeAllocate (his);
		}
	}

	//
	// Public property of the Padding widget
	//
	public int Pad {
		get {
			return pad;
		}

		set {
			pad = value;
			QueueResize ();
		}
	}

	void MyAdded (object o, AddedArgs args)
	{
		child = args.Widget;
	}
}

class Y {
	static void Main ()
	{
		Application.Init ();

		Window w = new Window ("Hello");
		MyPadder x = new MyPadder ();
		x.Pad = 100;
		Button b = new Button ("Hola");
		w.Add (x);
		x.Add (b);

		w.ShowAll ();
		
		Application.Run ();
	}
}
        </code>
      </example>
    </remarks>
  </Docs>
  <Base>
    <BaseTypeName>Gtk.Container</BaseTypeName>
  </Base>
  <Interfaces>
    <Interface>
      <InterfaceName>Atk.Implementor</InterfaceName>
    </Interface>
    <Interface>
      <InterfaceName>GLib.IWrapper</InterfaceName>
    </Interface>
    <Interface>
      <InterfaceName>GLib.IWrapper</InterfaceName>
    </Interface>
    <Interface>
      <InterfaceName>System.IDisposable</InterfaceName>
    </Interface>
  </Interfaces>
  <Attributes />
  <Members>
    <Member MemberName="Finalize">
      <MemberSignature Language="C#" Value="protected virtual void Finalize ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Disposes the resources associated with the object.</summary>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public Bin (IntPtr raw);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
		<Parameter Name="raw" Type="System.IntPtr" />
	</Parameters>
      <Docs>
        <summary>Internal constructor</summary>
        <param name="raw">Pointer to the C object.</param>
        <returns>An instance of Bin, wrapping the C object.</returns>
        <remarks>
          <para>This is an internal constructor, and should not be used by user code.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="GType">
      <MemberSignature Language="C#" Value="public static uint GType { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The GLib Type for Gtk.Bin</summary>
        <returns>The GLib Type for the Gtk.Bin class.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="protected Bin (GLib.Type gtype);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
		<Parameter Name="gtype" Type="GLib.Type" />
	</Parameters>
      <Docs>
        <summary>Internal constructor</summary>
        <param name="gtype">GLib type for the type</param>
        <returns>Creates a new instance of Bin, using the GLib-provided type</returns>
        <remarks>
          <para>This is a constructor used by derivative types of <see cref="T:Gtk.Bin" /> that would have their own GLib type assigned to it.  This is not typically used by C# code.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="protected Bin ();" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters />
      <Docs>
        <summary>To be added</summary>
        <returns>a <see cref="T:Gtk.Bin" /></returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
  </Members>
</Type>