[Gtk-sharp-list] SpinButton troubles with gtksharglue calls.

Alejandro Sánchez Acosta raciel@x0und.net
15 Dec 2002 15:47:25 +0000


--=-SWabxS3KEbGK2sWOkza8
Content-Type: multipart/mixed; boundary="=-FQpcdKaJgaYA+XtVT09W"


--=-FQpcdKaJgaYA+XtVT09W
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

Hi!

I have made a SpinButton sample for the GTK# tutorial and I have the
following troubles with that:

It compiles but in runtime it happens the following errors:

raciel@voyager:~/mono/tutorial/spinbutton$ mono SpinButton.exe=20

** (SpinButton.exe:16425): WARNING **: Failed to load function
gtksharp_get_type_id from libgtksharpglue.so

** (SpinButton.exe:16425): WARNING **: Failed to load function
gtksharp_is_object from gtksharpglue

** (SpinButton.exe:16425): WARNING **: Failed to load function
gtksharp_object_get_ref_count from gtksharpglue

** (SpinButton.exe:16425): WARNING **: Failed to load function
gtksharp_object_is_floating from gtksharpglue

** (SpinButton.exe:16425): WARNING **: Failed to load function
gtksharp_gtk_widget_get_allocation from gtksharpglue

** (SpinButton.exe:16425): WARNING **: Failed to load function
gtksharp_gtk_widget_get_window from gtksharpglue

** (SpinButton.exe:16425): WARNING **: Failed to load function
gtksharp_gtk_adjustment_set_bounds from gtksharpglue

** (SpinButton.exe:16425): WARNING **: Failed to load function
gtksharp_gtk_adjustment_get_lower from gtksharpglue

** (SpinButton.exe:16425): WARNING **: Failed to load function
gtksharp_gtk_adjustment_get_upper from gtksharpglue

** (SpinButton.exe:16425): WARNING **: Failed to load function
gtksharp_gtk_adjustment_get_step_increment from gtksharpglue

** (SpinButton.exe:16425): WARNING **: Failed to load function
gtksharp_gtk_adjustment_get_page_increment from gtksharpglue

** (SpinButton.exe:16425): WARNING **: Failed to load function
gtksharp_gtk_adjustment_set_page_increment from gtksharpglue

** (SpinButton.exe:16425): WARNING **: Failed to load function
gtksharp_gtk_adjustment_get_page_size from gtksharpglue

** (SpinButton.exe:16425): WARNING **: Failed to load function
gtksharp_gtk_adjustment_set_page_size from gtksharpglue

Then happpens a nice SIGSEGV!

Maybe a trouble with gtksharpglue code? Anybody can test this code?

I attach the spinbutton sample.

Cheers
--=20
Alejandro Sanchez Acosta

raciel@es.gnu.org			         GNU Spain is not Unix.
raciel@gnome.org				 GNOME the GNU Desktop.

--=-FQpcdKaJgaYA+XtVT09W
Content-Disposition: attachment; filename=SpinButton.cs
Content-Type: text/plain; name=SpinButton.cs; charset=ISO-8859-15
Content-Transfer-Encoding: quoted-printable

// SpinButton.cs - Gtk# Tutorial example
//
// Author: Alejandro S=E1nchez Acosta <raciel@es.gnu.org>
// 	   Cesar Octavio Lopez Nataren <cesar@ciencias.unam.mx>
//
// (c) 2002 Alejandro S=E1nchez Acosta


namespace GtkSharpTutorial {

	using Gtk;
	using GtkSharp;
	using System;
	using System.Drawing;

	using System.Text;=20

	public class SpinButtonSample
	{
		static Gtk.Window window;
		static Frame frame;
		static HBox hbox;=20
		static VBox main_vbox;
		static VBox vbox;
		static VBox vbox2;
		static SpinButton spinner;
		static SpinButton spinner1;
		static SpinButton spinner2;
		static Button button;
		static Label label;
		static Label val_label;
		static Adjustment adj;
	=09
		static void toggle_snap (object obj, EventArgs args)
		{
			spinner1.SnapToTicks =3D ((ToggleButton) obj).Active;
		}
	=09
		static void toggle_numeric (object obj, EventArgs args)
		{
			spinner1.Numeric =3D ((ToggleButton) obj).Active;
		}

		// FIXME: exception emitted when called.
		static void change_digits (object obj, EventArgs args)
		{
			spinner1.Digits =3D (uint) ((SpinButton) obj).ValueAsInt;
		}

		static void get_value (object obj, EventArgs args)
		{
			StringBuilder buff;
			Label label;
			SpinButton spin;
		=09
			spin =3D spinner1;
			buff =3Dnew StringBuilder ("ERROR");

			label =3D new Label ("1");
			label.Text =3D buff.ToString ();
		}
	=09
		static void delete_event (object obj, DeleteEventArgs args)
		{
			SignalArgs sa =3D (SignalArgs) args;
			Application.Quit();
			sa.RetVal =3D true;
		}

		static void exitbutton_event (object obj, EventArgs args)
		{
			Application.Quit();
		}

		public static void Main (string[] args)
		{
			Application.Init();
		=09
			window =3D new Gtk.Window ("SpinButton#");
			window.DeleteEvent +=3D new DeleteEventHandler (delete_event);
		=09
			main_vbox =3D new VBox (false, 5);
			main_vbox.BorderWidth =3D 10;
			window.Add (main_vbox);

			frame =3D new Frame ("Not accelerated");
			main_vbox.PackStart (frame, true, true, 0);

			vbox =3D new VBox (false, 0);
			vbox.BorderWidth =3D 5;
			frame.Add (vbox);

			// Day, month, year spinners=20

			hbox =3D new HBox (false, 0);
			vbox.PackStart (hbox, true, true, 5);

			vbox2 =3D new VBox (false, 0);
			hbox.PackStart (vbox2, true, true, 5);

			label =3D new Label ("Day :");
			((Gtk.Misc) label).SetAlignment ((float) 0.0, (float) 0.5);
			vbox2.PackStart (label, false, true, 0);

			adj =3D new Adjustment (1.0, 1.0, 31.0, 1.0, 5.0, 0.0);

			spinner =3D new SpinButton (adj, 0, 0);

			spinner.Wrap =3D true;
			vbox2.PackStart (spinner, false, true, 0);

			vbox2 =3D new VBox (false, 0);
			hbox.PackStart (vbox2, true, true, 5);

			label =3D new Label ("Month :");
			((Gtk.Misc) label).SetAlignment ((float) 0.0, (float) 0.5);

			vbox2.PackStart (label, false, true, 0);

			adj =3D new Adjustment (1.0, 1.0, 12.0, 1.0,
					      5.0, 0.0);
		=09
			spinner =3D new SpinButton (adj, 0, 0);
			spinner.Wrap =3D true;
			vbox2.PackStart (spinner, false, true, 0);

			vbox2 =3D new VBox (false, 0);
			hbox.PackStart (vbox2, true, true, 5);

			label =3D new Label ("Year :");
			((Gtk.Misc) label).SetAlignment ((float) 0.0, (float) 0.5);
			vbox2.PackStart (label, false, true, 0);

			adj =3D new Adjustment (1998.0, 0.0, 2100.0, 1.0, 100.0, 0.0);

			spinner =3D new SpinButton (adj, 0, 0);
			spinner.Wrap =3D false;
			spinner.SetSizeRequest (55, -1);
			vbox2.PackStart (spinner, false, true, 0);

			frame =3D new Frame ("Accelerated");
			main_vbox.PackStart (frame, true, true, 0);

			vbox =3D new VBox (false, 0);
			vbox.BorderWidth =3D 5;
			frame.Add (vbox);

			hbox =3D new HBox (false, 0);
			vbox.PackStart (hbox, false, true, 5);

			vbox2 =3D new VBox (false, 0);
			hbox.PackStart (vbox2, true, true, 5);

			label =3D new Label ("Value :");
			((Gtk.Misc) label).SetAlignment ((float) 0.0, (float) 0.5);
			vbox2.PackStart (label, false, true, 0);

			adj =3D new Adjustment (0.0, -10000.0, 10000.0, 0.5, 100.0, 0.0);
		=09
			spinner1 =3D new SpinButton (adj, 1.0, 2);
			spinner1.Wrap =3D true;
			spinner1.SetSizeRequest (100, -1);
			vbox2.PackStart (spinner1, false, true, 0);

			vbox2 =3D new VBox (false, 0);
			hbox.PackStart (vbox2, true, true, 5);

			label =3D new Label ("Digits :");
			((Gtk.Misc) label).SetAlignment ((float) 0, (float) 0.5);
			vbox2.PackStart (label, false, true, 0);

			adj =3D new Adjustment (2, 1, 5, 1, 1, 0);
		=09
			spinner2 =3D new SpinButton (adj, 0.0, 0);
			spinner2.Wrap =3D true;
		=09
			adj.ValueChanged +=3D new EventHandler (change_digits);
			vbox2.PackStart (spinner2, false, true, 0);

			hbox =3D new HBox (false, 0);
			vbox.PackStart (hbox, false, true, 5);

			button =3D new CheckButton ("Snap to 0.5-ticks");
			button.Clicked +=3D new EventHandler (toggle_snap);
			vbox.PackStart (button, true, true, 0);
			((Gtk.ToggleButton) button).Active =3D true;

			button =3D new CheckButton ("Numeric only input mode");
			button.Clicked +=3D new EventHandler (toggle_numeric);
			vbox.PackStart (button, true, true, 0);
			((Gtk.ToggleButton) button).Active =3D true;

			val_label =3D new Label ("");

			hbox =3D new HBox (false, 0);
			vbox.PackStart (hbox, false, true, 5);
			button =3D new Button ("Value as Int");
			button.SetData ("user_data", val_label);

			button.Clicked +=3D new EventHandler (get_value);
			hbox.PackStart (button, true, true, 5);

			button =3D new Button ("Value as Float");
			button.SetData ("user_data", val_label);
			button.Clicked +=3D new EventHandler (get_value);
			hbox.PackStart (button, true, true, 5);
			label.Text =3D "0";

			vbox.PackStart (val_label, true, true, 0);
			val_label.Text =3D "0";
		=09
			hbox =3D new HBox (false, 0);
			main_vbox.PackStart (hbox, false, true, 0);

			button =3D new Button ("Close");
			button.Clicked +=3D new EventHandler (exitbutton_event);
		=09
			hbox.PackStart (button, true, true, 5);

			window.ShowAll();
					=09
			Application.Run ();
		}
	}
}

--=-FQpcdKaJgaYA+XtVT09W--

--=-SWabxS3KEbGK2sWOkza8
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: Esta parte del mensaje esta firmada digitalmente

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQA9/KQNsgoaWknonh4RAuDDAJwIkL64yEbLN8WuSAqgwnBCGrNhDACghi06
3aAn2efMFvY2lIkaldH370U=
=zMBc
-----END PGP SIGNATURE-----

--=-SWabxS3KEbGK2sWOkza8--