Commit graph

16 commits

Author SHA1 Message Date
Andrés G. Aragoneses 7ce1457c13 gtk: Fix a KeyNotFoundException regression in Destroyed event
The migration to generic collections [1] caused another regression: a
KeyNotFoundException was being thrown (instead of returning null like
HashTable did) when using the Destroyed event of the Gtk.Widget class.

[1] 6850b343ca

A particular example of this problem is Banshee's Import Media feature,
which was generating the following stacktrace:

[1 Debug 23:24:36.898] Starting - Importing Media
Marshaling activate signal
Exception in Gtk# callback delegate
  Note: Applications can use GLib.ExceptionManager.UnhandledException
to handle the exception.
System.Reflection.TargetInvocationException: Exception has been thrown
by the target of an invocation. --->
System.Collections.Generic.KeyNotFoundException: The given key was not
present in the dictionary.
  at System.Collections.Generic.Dictionary`2[System.IntPtr,System.Delegate].get_Item
(IntPtr key) [0x00000] in <filename unknown>:0
  at Gtk.Widget.add_Destroyed (System.EventHandler value) [0x00000] in
/home/knocte/gtk-sharp/gtk/Widget.cs:333
  at Hyena.Widgets.AnimatedWidget..ctor (Gtk.Widget widget, UInt32
duration, Easing easing, Blocking blocking, Boolean horizontal)
[0x0004d] in /home/knocte/banshee/src/Hyena/Hyena.Gui/Hyena.Widgets/AnimatedWidget.cs:78
2013-09-24 18:58:33 +02:00
Bertrand Lorentz 6850b343ca gtk: Switch to generic collections in some classes 2012-11-04 16:58:50 +01:00
Bertrand Lorentz a8e1e8fd7d gtk: Re-indent code that was moved inside partial classes
No real code change in this commit, just whitespace changes.
2012-08-05 17:24:05 +02:00
Bertrand Lorentz a410d42975 gtk: Move all .custom files to partial classes
There are no real code changes in this commit, just a lot of file
renaming and boilerplate additions.

A few .custom files are just removed, because the corresponding class in
GTK is gone, so they were not really used anymore.

Some files need to be re-indented, but that will be done in a separate
commit, so that git can track the renamed files correctly and not be
confused by all the changes.
2012-08-05 16:32:41 +02:00
Mike Kestner 30e653825c This is an enormous commit of stuff that I've been working on for several
weeks.  I'll be posting an update to gtk-sharp-list in a bit to describe my
latest psychosis.

svn path=/trunk/gtk-sharp/; revision=1797
2002-01-04 02:02:28 +00:00
Mike Kestner bd567cdd45 2001-10-11 Mike Kestner <mkestner@speakeasy.net>
* makefile : Add the codegen directory
	* codegen/defs-parse.pl : Moved here from topdir and updated to parse
	the new defs format for enums and flags.
	* codegen/gtk-types.defs : Borrowed from pygtk.
	* codegen/makefile : new
	* gtk/makefile : remove generation step.
	* gtk/gtk.defs : removed, now in codegen dir.

svn path=/trunk/gtk-sharp/; revision=1139
2001-10-11 10:14:14 +00:00
Mike Kestner aa1077bbb1 2001-10-07 Mike Kestner <mkestner@speakeasy.net>
* glib/Object.cs : Added public Handle property.  It would be nice
	if I could make the RawObject public for get and protected for set,
	but that doesn't appear to be possible with C# properties.
	* gtk/Container.cs : New class with 2 of the 3 props and the Add/Remove
	methods only implemented.
	* gtk/Widget.cs : Added SizeRequest prop which is a combination of
	HeightRequest and SizeRequest. Embrace and extend gtk...
	* gtk/Window.cs : Derive from newly added Container subclass.
	* sample/ButtonApp.cs : Simple tire-kicking app.

svn path=/trunk/gtk-sharp/; revision=1112
2001-10-07 00:41:52 +00:00
Mike Kestner 4c5e4f1d56 2001-10-04 Mike Kestner <mkestner@speakeasy.net>
* gtk/Widget.cs : Implemented all the bool, string, and int props.

svn path=/trunk/gtk-sharp/; revision=1083
2001-10-04 22:17:20 +00:00
Mike Kestner 3c0213de88 2001-10-04 Mike Kestner <mkestner@speakeasy.net>
* gdk/SimpleEvent.cs : Temporarily comment the GCHandle code until
	a layout is ready and exceptions can be avoided.
	* gtk/Widget.cs : Killed all the signal and event attaching methods.
	They never belonged here, and now they exist in the SimpleEvent.
	Add a Signals hash to hold refs of the Signal handlers. Killed default
	ctor and the dtor.  The event Add/Remove methods now create a
	SimpleEvent, stuff it in the hash, and remove it when the last handler
	disappears.

svn path=/trunk/gtk-sharp/; revision=1078
2001-10-04 20:59:48 +00:00
Mike Kestner 25000abee7 2001-09-27 Mike Kestner <mkestner@speakeasy.net>
*.cs : Added .dll extension to a load of DllImports.
	* makefile : now can make the project with one make windows and on
	both NT and Win98.
	* gdk/Event.cs : Fixed some invalid symbol names and commented out a
	load of stuff.
	* gdk/SimpleEvent.cs : Relocated file from unnecessary subdir and fixed
	several event keyword clashing bugs. Need to relocate the EventArgs
	class out of here into its own file. Fixed loads of typos.
	* glib/Object.cs : Killed the Constructor, this should be a purely
	abstract class. made Events property public until I can fix the Signal
	proxying system's broken reliance on it.
	* glib/SimpleSignal.cs : Relocated, namespaces, and named this Class.
	Loads of bugfixes. Still doesn't work worth a damn, but it builds.
	* glib/TypeFundamentals.cs : New enum for use in the Value code.
	* glib/Value.cs : Implemented a more opaque approach with heap allocated
	memory and g_value_init and friends.  Still doesn't work.  Will probably
	switch to a more C# like approach and avoid GValues altogether.
	* gtk/Button.cs : Commented out some brokeness until I can get around
	to fixing it later.
	* gtk/Widget.cs : Commented out a bunch of the new signal stuff until
	I get around to it.
	* gtk/Window.cs (Title): using g_object_set until I work out the
	details of the new Value/SetProperty system.  It looks like g_object_set
	will end up being easier to use via PInvoke.

svn path=/trunk/gtk-sharp/; revision=1008
2001-09-27 17:17:33 +00:00
Bob Smith 699238daad Added refcounts to delegates to make sure they can be unpined when not needed.
svn path=/trunk/gtk-sharp/; revision=962
2001-09-25 15:56:50 +00:00
Bob Smith 33533985d0 Totally reworked the signal system. Should be much more flexable.
svn path=/trunk/gtk-sharp/; revision=919
2001-09-21 14:03:17 +00:00
Mike Kestner 91c58501fa 2001-09-19 Mike Kestner <mkestner@speakeasy.net>
* HACKING : New rulez.
	* NOTES: Killed.  We have a mailing list now for this kind of stuff.
	* glib/makefile : New, to build the new glib-sharp.dll target.
	* glib/Object.cs : (GetObject): Commented out. Design problems here.
	IntPtr's can't be used in the manner this code attempts to use them.
	(Data prop): Commented out.  Apparently keyed properties are not
	supported.
	(Object prop): Renamed RawObject, and made it protected.
	(Events): Fixed to cause list to be initialized if null and then
	return the list.
	* glib/ObjectManager.cs : commented out entirely.  Not sure what this
	code is trying to accomplish and it doesn't compile.
	* glib/Value.cs : New attempt at implementing GValues. Doesn't work
	yet.
	* gtk/Button.cs : Updated to use RawObject.
	(Clicked event): s/EmitDeleteEvent/EmitClickedEvent.
	(Button(String)): s/gtk_label_new_with_lable/gtk_button_new_with_label.
	* gtk/Label.cs : Fixed some yank and paste errors where 2 value params
	were getting passed to all the set_* property methods.
	* gtk/Window.cs : Fixed hanging GTK namespace ref.
	* sample/HelloWorld.cs : Fixed hanging GTK namespace ref.

svn path=/trunk/gtk-sharp/; revision=884
2001-09-19 11:37:15 +00:00
Bob Smith 22b77037ed More implementation
svn path=/trunk/gtk-sharp/; revision=876
2001-09-19 02:04:57 +00:00
Bob Smith c2d90eb282 Reworked the event system. Added partial Button and Label classes. Notes added asking many important questions.
svn path=/trunk/gtk-sharp/; revision=858
2001-09-18 03:57:16 +00:00
Mike Kestner 7d69671d49 Initial revision
svn path=/trunk/gtk-sharp/; revision=834
2001-09-16 23:15:56 +00:00