[Mono-list] Gtk# problem
Willem J.W. Semmelink
willems@digicore.co.za
Fri, 15 Aug 2003 09:10:01 +0200
Hi everyone
I cannot get the Gdk.Pixmap constructor to work. My app gets a run-time =
exception that the
GdkWindow parameter is null at the line
pixmap =3D new =
Gdk.Pixmap(w.GdkWindow,w.Allocation.width,w.Allocation.height,-1);
My intention with the code below was to draw on a pixmap, and then to =
display the pixmap in=20
a scrolled window. Eventually, I want to keep a list of pixmaps and =
display the one I need=20
in the scrolled window based on certain events.=20
The Gtk# chapter 22 in the Gtk Manual deals with it, but unfortunately, =
the chapter is not=20
written yet in the mono handbook, so I consulted the original manual for =
C, but maybe I=20
misunderstood something- therefore I list my code below.=20
I use Gtk# 0.8 for Windows[gtk-sharp-0.8-win32-2.exe], and Windows XP.=20
I used the Ms csc compiler when I got the error.
Any help appreciated.
using Gtk;
using GtkSharp;
using System;
namespace Test
{
class Demo
{
static Gdk.Pixmap pixmap=3Dnull;
public static int Main(string[] args)
{
Application.Init();
Gtk.Window win =3D new Gtk.Window ("ScrollBox With Picture");
win.DeleteEvent +=3D new DeleteEventHandler(Window_Delete);
=09
Gtk.ScrolledWindow scrolled_window =3D new Gtk.ScrolledWindow (new =
Adjustment (IntPtr.Zero), new Adjustment (IntPtr.Zero));
=09
Gtk.DrawingArea dc =3D new Gtk.DrawingArea();
dc.SetSizeRequest(80,160);
scrolled_window.AddWithViewport(dc); =09
dc.Show(); =09
scrolled_window.SetPolicy (PolicyType.Automatic, =
PolicyType.Automatic);
win.Add (scrolled_window);
win.ShowAll ();
//This is where my code fails =
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pixmap =3D new =
Gdk.Pixmap(w.GdkWindow,w.Allocation.width,w.Allocation.height,-1);
=
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=
~~~~
pixmap.DrawRectangle(w.Style.WhiteGC,1,10,10,100,100);
=09
Application.Run ();
return 0;
}=09
static void Window_Delete(object obj, GtkSharp.DeleteEventArgs args)
{
SignalArgs sa =3D (SignalArgs) args;
Application.Quit();
sa.RetVal =3D true;
} =09
}
}