[Mono-list] Re: [Gtk-sharp-list] GtkSharp Demo

Duncan Mak duncan@ximian.com
21 Jun 2002 15:46:31 -0400


--=-/ZRZdYuJF163qV5LD8sL
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

On Fri, 2002-06-21 at 16:36, Glenn Pierce wrote:
> 
> Hi I have just started looking at C# / GtkSharp and have attached a
> ported version of the Button Boxes program that is taken from the
> gtk-demo app if anyone is interested ?
> 
> I'm sure it can be improved.

This is great!

To compile it, install gtk# and run mcs with these flags:

	mcs --unsafe -o ButtonBoxes.exe -r glib-sharp -r pango-sharp -r
	atk-sharp -r gdk-sharp -r gtk-sharp -r gdk-imaging-sharp
	ButtonBoxes.cs

Duncan.

--=-/ZRZdYuJF163qV5LD8sL
Content-Disposition: attachment; filename=ButtonBoxes.cs
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; name=ButtonBoxes.cs; charset=ISO-8859-1

// ButtonBoxes.cs : Button Boxes App
//
// Author: Glenn Pierce <glenn@connectfree.co.uk>
//
// <c> 2002 Glenn Pierce

namespace GtkSharp.Samples {

	using System;
	using Gtk;
	using GtkSharp;

	public class ButtonBoxApp {

		public static void Main (string[] args)
		{
			Application.Init();
			Window win =3D new Window ("Button Boxes");
			win.DeleteEvent +=3D new EventHandler (delete_cb);

			VBox main_vbox =3D new VBox (false, 0);

			Frame frame_horz =3D new Frame ("Horizontal Button Boxes");
			main_vbox.PackStart (frame_horz, true, true, 10);

			VBox vbox =3D new VBox (false, 0);
			vbox.BorderWidth =3D 10;
			frame_horz.EmitAdd(vbox);=09

			vbox.PackStart (create_bbox (true, "Spread", 40, Gtk.ButtonBoxStyle.Spre=
ad) , true, true, 5 );
			vbox.PackStart (create_bbox (true, "Edge", 40, Gtk.ButtonBoxStyle.Edge) =
, true, true, 5 );
			vbox.PackStart (create_bbox (true, "Start", 40, Gtk.ButtonBoxStyle.Start=
) , true, true, 5 );
			vbox.PackStart (create_bbox (true, "End", 40, Gtk.ButtonBoxStyle.End) , =
true, true, 5 );

			Frame frame_vert =3D new Frame ("Vertical Button Boxes");
		 	main_vbox.PackStart (frame_vert, true, true, 10);=09
		=09
			HBox hbox =3D new HBox (false, 0);
			hbox.BorderWidth =3D 10;
			frame_vert.EmitAdd(hbox);

			hbox.PackStart (create_bbox (false, "Spread", 30, Gtk.ButtonBoxStyle.Spr=
ead) , true, true, 5 );
		        hbox.PackStart (create_bbox (false, "Edge", 30, Gtk.ButtonBoxStyl=
e.Edge) , true, true, 5 );
                        hbox.PackStart (create_bbox (false, "Start", 30, Gt=
k.ButtonBoxStyle.Start) , true, true, 5 );
                        hbox.PackStart (create_bbox (false, "End", 30, Gtk.=
ButtonBoxStyle.End) , true, true, 5 );
		=09
			win.EmitAdd (main_vbox);
			win.BorderWidth =3D 10;
			win.ShowAll ();

			Application.Run ();
		}

		static void delete_cb (object o, EventArgs args)
		{
			SignalArgs sa =3D (SignalArgs) args;
			Application.Quit ();
			sa.RetVal =3D true;
		}

		private static Frame create_bbox (bool horizontal, string title, int spac=
ing, Gtk.ButtonBoxStyle layout)
		{
		  Frame frame;
		  ButtonBox bbox;
		  Button button;
				      =09
		  frame =3D new Frame (title);

		  if (horizontal)
		     bbox =3D new HButtonBox();
 		  else
		     bbox =3D new VButtonBox();
		 =20
		  bbox.BorderWidth =3D 5;
		  frame.EmitAdd(bbox);
=20
		  bbox.LayoutStyle =3D layout;
		  bbox.Spacing =3D spacing;
						    =20
		  button =3D Button.NewFromStock("gtk-ok");
		  bbox.EmitAdd(button);
	=09
		  button =3D Button.NewFromStock("gtk-cancel");
		  bbox.EmitAdd(button);

		  button =3D Button.NewFromStock("gtk-help");
		  bbox.EmitAdd(button);
	=09
		  return frame;
		}
	=09
	}
}


--=-/ZRZdYuJF163qV5LD8sL--