2003-02-12 02:00:12 +00:00
<Type Name= "Bin" FullName= "Gtk.Bin" >
2003-07-17 06:38:40 +00:00
<TypeSignature Language= "C#" Value= "public class Bin :
 Gtk.Container, Implementor, IWrapper, IWrapper, IDisposable" Maintainer= "Lee Mallabone, Miguel de Icaza" />
2003-02-12 02:00:12 +00:00
<AssemblyInfo >
<AssemblyName > gtk-sharp</AssemblyName>
<AssemblyVersion > 0.0.0.0</AssemblyVersion>
<Attributes />
</AssemblyInfo>
2003-02-23 07:26:30 +00:00
<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>
2003-02-12 02:00:12 +00:00
<Docs >
2003-03-15 10:41:15 +00:00
<summary > A container with just one child.</summary>
2003-03-15 22:50:24 +00:00
<remarks >
2003-07-15 02:34:04 +00:00
<para >
A Bin widget is a <see cref= "T:Gtk.Container" /> with just one
child. It is used to create subclasses, since it provides
2003-07-17 06:38:40 +00:00
common code needed for handling a single child <see cref= "T:Gtk.Widget" /> .
2003-07-15 02:34:04 +00:00
</para>
<para >
2003-07-17 06:38:40 +00:00
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
2003-07-15 02:34:04 +00:00
<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
2003-07-17 06:38:40 +00:00
negotiation and size allocation using the events <see cref= "E:Gtk.Widget.SizeAllocated" /> and <see cref= "E:Gtk.Widget.SizeRequested" /> .</para>
2003-07-15 02:34:04 +00:00
<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 ();
}
}
2003-07-17 06:38:40 +00:00
</code>
2003-07-15 02:34:04 +00:00
</example>
2003-03-15 22:50:24 +00:00
</remarks>
2003-02-12 02:00:12 +00:00
</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" >
2003-10-13 22:55:58 +00:00
<MemberSignature Language= "C#" Value= "protected override void Finalize ();" />
2003-02-12 02:00:12 +00:00
<MemberType > Method</MemberType>
<ReturnValue >
<ReturnType > System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs >
2003-02-23 07:26:30 +00:00
<summary > Disposes the resources associated with the object.</summary>
<remarks />
2003-02-12 02:00:12 +00:00
</Docs>
</Member>
<Member MemberName= ".ctor" >
<MemberSignature Language= "C#" Value= "public Bin (IntPtr raw);" />
<MemberType > Constructor</MemberType>
<ReturnValue />
<Parameters >
2003-09-17 21:56:59 +00:00
<Parameter Name= "raw" Type= "System.IntPtr" />
</Parameters>
2003-02-12 02:00:12 +00:00
<Docs >
2003-02-23 07:26:30 +00:00
<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>
2003-02-12 02:00:12 +00:00
</Docs>
</Member>
<Member MemberName= "GType" >
<MemberSignature Language= "C#" Value= "public static uint GType { get; };" />
<MemberType > Property</MemberType>
<ReturnValue >
<ReturnType > System.UInt32</ReturnType>
</ReturnValue>
<Docs >
2003-02-23 07:26:30 +00:00
<summary > The GLib Type for Gtk.Bin</summary>
2003-03-07 01:30:00 +00:00
<returns > The GLib Type for the Gtk.Bin class.</returns>
2003-02-23 07:26:30 +00:00
<remarks />
2003-02-12 02:00:12 +00:00
</Docs>
</Member>
2003-03-07 01:30:00 +00:00
<Member MemberName= ".ctor" >
<MemberSignature Language= "C#" Value= "protected Bin (GLib.Type gtype);" />
<MemberType > Constructor</MemberType>
<ReturnValue />
<Parameters >
2003-09-17 21:56:59 +00:00
<Parameter Name= "gtype" Type= "GLib.Type" />
</Parameters>
2003-03-07 01:30:00 +00:00
<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>
2003-07-17 06:38:40 +00:00
<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>
2003-10-12 09:06:39 +00:00
<Member MemberName= "Child" >
<MemberSignature Language= "C#" Value= "public Gtk.Widget Child { get; };" />
<MemberType > Property</MemberType>
<ReturnValue >
<ReturnType > Gtk.Widget</ReturnType>
</ReturnValue>
<Parameters />
<Docs >
<summary > To be added</summary>
<returns > a <see cref= "T:Gtk.Widget" /> </returns>
<remarks > To be added</remarks>
</Docs>
</Member>
2003-02-12 02:00:12 +00:00
</Members>
2003-09-17 21:56:59 +00:00
</Type>