[Mono-list] DiaCanvas2 wrapper, C Library Wrapper tutorial

Martin Willemoes Hansen mwh@sysrq.dk
05 Jun 2003 13:05:39 +0200


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

Hi!

I have begun wrapping DiaCanvas2, partly because I might use it in a
project creating a UML diagramming tool and partly as a learning
exercise. Attached is sample code and a screendump of the code running.
One Cant do much with it yet, only draw lines.

Along the wrapping path, I have been learning a little bit here and
there and decided that a tutorial was in place. A first hit at that can
be found here: http://go-mono.com/tutorial/ in chapter 27.
The chapter is in cvs and it may take some time before the website
reflects it.
I encurage anyone who might have something to contribute to that
tutorial, cause I am not the best man for that job .. at least not yet.

Happy hacking!
-- 
Martin Willemoes Hansen

--------------------------------------------------------
E-Mail	mwh@sysrq.dk		Website	mwh.sysrq.dk
IRC     MWH, freenode.net
--------------------------------------------------------              

--=-CwBDVUSCW/nhWTWexhmu
Content-Disposition: attachment; filename=diacanvas-sharp.png
Content-Type: image/png; name=diacanvas-sharp.png
Content-Transfer-Encoding: base64

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

--=-CwBDVUSCW/nhWTWexhmu
Content-Disposition: attachment; filename=sample.cs
Content-Type: text/plain; name=sample.cs; charset=iso-8859-1
Content-Transfer-Encoding: 7bit

using System;
using DiaCanvas;
using Gtk;
using GtkSharp;

public class Sample {

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

		Canvas canvas = new Canvas();
		View view = new View (canvas, true);
		view.Show();

		Tool tool = new PlacementTool (Line.Type);
		tool.ButtonPress += new ButtonPressHandler (button_press);
		view.Tool = tool;

		Window window = new Window ("DiaCanvas C# sample");
		window.Add (view);
		window.Show();
		window.DeleteEvent += new DeleteEventHandler (Quit);

		Application.Run();
	}

	static void Quit (object sender, DeleteEventArgs args) 
	{
		Application.Quit();
		args.RetVal = true;
	}

	static void button_press (Tool tool, View view, 
				  Gdk.Event e, IntPtr data)
	{
		Console.WriteLine ("ButtonPress");
		view.Tool = null;
	}
}

--=-CwBDVUSCW/nhWTWexhmu--