
Untitled
By: a guest on
May 2nd, 2012 | syntax:
None | size: 1.53 KB | hits: 24 | expires: Never
How to use Gdk# library in C# (mono)?
GDKEXAMPLE(){
win = new Gtk.Window ("Gdk nightmare");
win.SetDefaultSize (400, 300);
img=new Gtk.Image();
Drawable dr=new Drawable(null); //how to instantiate this object?
Gdk.GC gc=new Gdk.GC(null); //how to instantiate this object?
Point[] pts=new Point[3];
pts[0]=new Point(10,10);
pts[1]=new Point(15,20);
pts[2]=new Point(20,50);
dr.DrawLines(gc,pts);
Pixmap pxmp=new Pixmap(dr,100,100);
img.SetFromPixmap(pxmp,pxmp); //Requests a pixmap and pixmap mask: what mask?
img.QueueDraw();
win.Add(img);
win.ShowAll();
}
class GdkApp : Gtk.Window {
Pixmap pxp;
public static void Main()
{
Application.Init();
new GdkApp();
Application.Run();
}
public GdkApp() : base("Simple drawing")
{
SetDefaultSize(230, 150);
DeleteEvent+=delegate {Application.Quit(); };
base.KeyPressEvent+= OnKeyPress;
ShowAll();
}
void OnKeyPress(object sender, KeyPressEventArgs KPargs)
{
Gdk.GC gc=new Gdk.GC((Drawable)base.GdkWindow);
gc.RgbFgColor=new Gdk.Color(255,50,50);
gc.RgbBgColor=new Gdk.Color(0,0,0);
gc.SetLineAttributes(3,LineStyle.OnOffDash,CapStyle.Projecting,JoinStyle.Round);
Gdk.Point[] pts=new Gdk.Point[8];
pts[0]=new Gdk.Point(10,50);
pts[1]=new Gdk.Point(15,70);
pts[2]=new Gdk.Point(20,80);
pts[3]=new Gdk.Point(25,70);
pts[4]=new Gdk.Point(30,80);
pts[5]=new Gdk.Point(40,90);
pts[6]=new Gdk.Point(55,85);
pts[7]=new Gdk.Point(75,65);
base.GdkWindow.DrawLines(gc,pts);
}
}