Commit Graph

58 Commits

Author SHA1 Message Date
Bertrand Lorentz
680dd23965 Handle floating refs in InitiallyUnowned
When Gtk.Object was removed, most of the code was moved to Gtk.Widget.
But the part that deals with floating references actually belongs in
Glib.InitiallyUnowned.

This fixes various issues, in particular crashes in the TreeModelDemo
sample.
2011-06-11 19:08:21 +02:00
Mike Kestner
256a80399c Obsolete and fwd Widget.GdkWindow property.
* gtk/Widget.custom: mark GdkWindow obsolete and forward it to the
    Window property which is read/write in 3.0. [Fixes #688791]
2011-04-20 10:11:03 -05:00
Mike Kestner
1c980d6e71 Switch GLib.Object to Dispose(bool) pattern.
* glib/Object.cs: move finalization queue to ToggleRef and make
    Dispose() non-virtual with a protected virtual Dispose(bool).
    Also added a WarnOnFinalize static property to produce nags for
    undisposed objects.
* glib/ToggleRef.cs: add finalization queue and QueueUnref method.
* gtk/NodeStore.cs: override Dispose(bool)
* gtk/Widget.custom: override Dispose(bool)
2011-03-25 12:22:04 -05:00
Mike Kestner
6be0718ff2 Simplified Signal handling
* gdk/Display.custom: rework signal connection
* gdk/Window.custom: rework signal connection
* generator/Signal.cs: generate for new API.
* glib/Object.cs: add (Add|Remove)SignalHandler methods and use
them for the Notify connections.  Move to generic collections for
everything but the Data hash.
* glib/Signal.cs: kill Lookup methods and add delegate fields
* glib/ToggleRef.cs: remove Signals hash, it doesn't belong here.
* gtk/Clipboard.custom: rework signal connection
* gtk/ListStore.custom: rework signal connection
* gtk/TextView.custom: remove obsolete signal
* gtk/TreeModelAdapter.custom: rework signal connection
* gtk/TreeModelFilter.custom: rework signal connection
* gtk/TreeModelSort.custom: rework signal connection
* gtk/TreeStore.custom: rework signal connection
* gtk/Widget.custom: rework signal connection
* gtk/Window.custom: remove obsolete signal
2011-03-24 18:33:24 -05:00
Mike Kestner
8c0e123418 dllimport libname updates for Gtk.
* *: s/win32-2.0-0/win32-3.0-0/  I suspect this will need to change
again when I see some win32 binaries.  I think the win32 goes away.
Killing a few dead customs in the list as well.
2011-02-09 16:54:12 -06:00
Mike Kestner
34c0ecbcf7 The rest of the first pass.
*.*: Stubbing and tweaking and cajoling and disabling to get
the first successful build of 3.0 bindings.
2011-02-08 22:15:37 -06:00
Mike Kestner
629afad2d8 2009-11-30 Mike Kestner <mkestner@novell.com>
* gtk/Widget.custom: add Path method overload.  [Fixes #521360]

svn path=/trunk/gtk-sharp/; revision=147114
2009-11-30 17:49:04 +00:00
Christian Hoff
64c47fd68b 2009-09-24 Christian Hoff <christian_hoff@gmx.net>
* gtk/Widget.custom: Use Glib.Value's GType.Long support.

svn path=/trunk/gtk-sharp/; revision=142602
2009-09-24 19:54:07 +00:00
Christian Hoff
7b752d233c 2009-09-03 Christian Hoff <christian_hoff@gmx.net>
* glib/Global.cs: Kill the calling convention field again.
	It breaks GLib 2.x compatibility in the generator and there is
	probably no need to make the calling convention configurable.
	* .cs, *.custom: Hardcode Cdecl calling convention instead of
	using GLib's field.

svn path=/trunk/gtk-sharp/; revision=141283
2009-09-03 19:50:53 +00:00
Christian Hoff
58e97c087a 2009-09-02 Christian Hoff <christian_hoff@gmx.net>
* glib/Global.cs: Add a public constant field specifying the
	calling convention used by GLib and depending libraries.
	By now it's hardcoded to Cdecl as every non-Win32 runtime
	should ignore this attribute.
	* *.cs, *.custom: Use GLib.Global.CallingConvention for both
	pinvokes and callbacks. Plugs a stack leak on Win32. All
	pinvokes defaulted to StdCall and thus the stack was never
	cleaned up.

svn path=/trunk/gtk-sharp/; revision=141175
2009-09-02 20:17:37 +00:00
Christian Hoff
1e97a1046f 2009-08-30 Christian Hoff <christian_hoff@gmx.net>
Complete the major version jump. Gtk# 3 and 2 are now both
	installable within the same prefix.

	* */glue/Makefile.am: Produce *sharpglue-3 gluelibs.
	* *.custom, *.cs: pinvoke the new glue library.
	* *-2.0.pc.in: Rename to *-3.0.pc.in.

svn path=/trunk/gtk-sharp/; revision=140941
2009-08-30 20:06:33 +00:00
Christian Hoff
4aa3d2510a 2009-08-13 Christian Hoff <christian_hoff@gmx.net>
* gtk/Widget.custom: Set the activate/set_scroll_adjustments signal IDs
	from managed code. Use the gtk_widget_get_window accessor.
	* gtk/glue/widget.c: Remove the corresponding glue functions.

svn path=/trunk/gtk-sharp/; revision=139851
2009-08-13 14:56:18 +00:00
Mike Kestner
7db633218f 2009-08-07 Mike Kestner <mkestner@novell.com>
* configure.in.in: add new dir and autofu for it.
	* Makefile.am: add new dir
	* gapi/*: a small extension method library to add generation-related
	api to GType in 2.0. Access it with -pkg:gapi-2.0-compat to pick up
	the needed refs.
	* generator/GObjectVM.cs: generate new GType getter methods.
	* generator/ObjectGen.cs: generate new GType getter methods.
	* glib/GType.cs: change a few props to methods to make them extension
	method friendly for 2.0 compat.
	* glib/Object.cs: use new GType getter methods.
	* glib/Value.cs: use new GType getter methods.
	* gtk/Widget.custom: use new GetClassPtr method.

svn path=/trunk/gtk-sharp/; revision=139609
2009-08-08 23:42:15 +00:00
Mike Kestner
10cae1b1cb 2009-08-07 Mike Kestner <mkestner@novell.com>
* generator/ObjectGen.cs: kill GType ctor generation.
	* glib/InitiallyUnowned.cs: kill obsolete GType ctor.
	* glib/Object.cs: kill obsolete GType ctor.
	* gtk/Gtk.metadata: kill disable_gtype_ctor rules.
	* gtk/Widget.cs: kill obsolete GType ctor.

svn path=/trunk/gtk-sharp/; revision=139600
2009-08-08 03:06:53 +00:00
Christian Hoff
940cf88750 2009-07-02 Christian Hoff <christian_hoff@gmx.net>
* configure.in.in: Target .net 2.0 profile
	* gapi-cdecl-insert: Kill. We are now using the UnmanagedFunctionPointerAttribute
	for callbacks.
	* glib/CdeclCallback: Mark obsolete.
	* generator/*.cs:
	* *.custom: Use [UnmanagedFunctionPointer (CallingConvention.Cdecl)] instead of
	[GLib.CDeclCallback].

svn path=/trunk/gtk-sharp/; revision=137323
2009-07-02 20:18:10 +00:00
Christian Hoff
3d6b4f7281 2009-06-15 Christian Hoff <christian_hoff@gmx.net>
* gtk/Widget.custom: Don't use [MarshalAs] for struct fields since
	that is not supported in the .net framework

svn path=/trunk/gtk-sharp/; revision=136157
2009-06-15 19:48:08 +00:00
Christian Hoff
e886e07a1f 2009-04-27 Christian Hoff <christian_hoff@gmx.net>
* gtk/Widget.custom: Implement signal registration for the
	Activate, SettScrollAdjustments and key binding signals
 	in managed code.

svn path=/trunk/gtk-sharp/; revision=132771
2009-04-27 17:55:30 +00:00
Christian Hoff
37c1f46d17 2009-04-21 Christian Hoff <christian_hoff@gmx.net>
* gtk/Widget.custom: Deglued implementation of StyleGetProperty.

svn path=/trunk/gtk-sharp/; revision=132224
2009-04-21 08:11:35 +00:00
Mike Kestner
d9721b63dc 2008-05-22 Mike Kestner <mkestner@novell.com>
* gtk/Widget.custom: guard against MissingIntPtrCtorException in
	the Activate and SetScrollAdjustments funky signal VM impl. Can't
	use SignalClosure easily.  Could be reworked more cleanly at some
	point.  Or not.

svn path=/trunk/gtk-sharp/; revision=103827
2008-05-22 18:55:22 +00:00
Mike Kestner
c2230278b3 2007-09-06 Mike Kestner <mkestner@novell.com>
* AssemblyInfo.cs.in : add IgnoreClassInitializers attr to all.
 	* generator/ObjectGen.cs : add custom-attr generation for objects.
 	* glib/ClassInitializerAttribute.cs : obsolete
 	* glib/IgnoreClassInitializersAttribute.cs : new assembly attr
 	to avoid a blind GetMethods reflection.
 	* glib/Makefile.am : add files
 	* glib/TypeInitializerAttribute.cs : new attr to specify init
 	method to be run at type registration.
 	* gtk/Widget.custom : remove the ClassInitializerAttr.
 	* gtk/Gtk.metadata : add a custom-attr node to GtkWidget.
 	* sample/Subclass.cs : use the IgnoreClassInitializers attr.

svn path=/trunk/gtk-sharp/; revision=85480
2007-09-07 14:40:46 +00:00
Mike Kestner
fc06f3829a 2007-08-13 Mike Kestner <mkestner@novell.com>
* generator/*.cs : switch to IntPtr marshaling for struct types
	in the managed to native direction.
	* gtk/*.custom : adjust to new gapi struct pinvoke sigs.

svn path=/trunk/gtk-sharp/; revision=83961
2007-08-13 14:29:06 +00:00
Aaron Bockover
f89698d3b3 2007-04-24 Aaron Bockover <abockover@novell.com>
* gtk/Widget.custom (StyleGetProperty): return null if
    gtksharp_widget_style_get_property returns FALSE (property
    doesn't exist) [Fixes #81445]

    * gtk/glue/widget.c (gtksharp_widget_style_get_property): check
    return of gtk_widget_class_find_style_property for NULL; function now
    returns TRUE if spec is not NULL, FALSE otherwise



svn path=/trunk/gtk-sharp/; revision=76217
2007-04-24 19:40:27 +00:00
Ben Motmans
dfa98a3ea2 2007-04-17 Ben Motmans <ben.motmans@gmail.com>
* gtk/Widget.custom:
	StyleGetPropertyValue that returns a GLib.Value when StyleGetProperty cannot automatically cast the GLib.Value (eg: Gdk.Color)
	[Fixes #81253]
	* doc/en/Gtk/Widget.xml:
	Documentation for the new StyleGetPropertyValue method and improved documentation for StyleGetProperty
	* gtk/TreeView.custom:
	OddRowColor and EvenRowColor properties
	* doc/en/Gtk/TreeView.xml:
	documentation for OddRowColor and EvenRowColor properties

svn path=/trunk/gtk-sharp/; revision=75816
2007-04-17 12:16:58 +00:00
Brad Taylor
7142444f6c 2007-04-09 Brad Taylor <brad@getcoded.net>
* gtk/glue/widget.c:
	* gtk/Widget.custom: Bind activate_signal in GtkWidgetClass.


svn path=/trunk/gtk-sharp/; revision=75653
2007-04-12 17:17:09 +00:00
Mike Kestner
fd01afc12b 2007-03-08 Mike Kestner <mkestner@novell.com>
* glib/Signal.cs : guard against NULL gchandles.
	* gdk/Input.custom : add try/catch blocks to native callbacks.
	* gtk/*.custom : ditto
	* gtk/NodeStore.cs : ditto

svn path=/trunk/gtk-sharp/; revision=74004
2007-03-09 14:22:43 +00:00
Mike Kestner
e916350eff 2005-08-29 Mike Kestner <mkestner@novell.com>
* gtk/Widget.custom : add overloads for Modify* without a Gdk.Color
	param to reset color to default.  [Fixes #75913]


svn path=/trunk/gtk-sharp/; revision=49085
2005-08-29 19:22:23 +00:00
Dan Winship
b6d7f14268 * generator/StructBase.cs: update field-generation logic a bit
* generator/CodeGenerator.cs: add a --glue-includes flag

	* generator/GenerationInfo.cs: Accept glue_includes value from
	Main and output it to the glue_filename.

	* generator/FieldBase.cs (Ignored): handle more ignorable cases.
	(CheckGlue): New method to figure out what kind of glue we'll need
	for a field.
	(GenerateImports): generate appropriate imports per CheckGlue.
	(GenerateGlue): Generate C glue for accessing a struct field;
	either a fully-C-based accessor, or a method to just return the
	field's offset in the struct.
	(Generate): Use the generated glue to read the field.

	* generator/PropertyBase.cs (CType): if the field is a single bit,
	set its type to gboolean.

	* generator/ObjectGen.cs (Generate):
	* generator/OpaqueGen.cs (Generate): Call GenFields.

	* generator/StructField.cs: Use FieldBase's glue-generation code
	to handle bitfields. [#54489]

	* generator/ObjectField.cs: Generates accessors for public fields
	of objects and opaque structs. [#69514]

	* generator/ClassBase.cs (ClassBase): Parse <fields> nodes and
	create ObjectField objects.
	(GenFields): Output field properties
	(IgnoreMethod): Ignore Get/Set methods that duplicate fields

	* generator/Makefile.am (sources): update

	* {gdk,gnome,gtk,pango}/*.metadata: Mark some additional fields as
	public. Rename/retype some fields for consistency with earlier
	hand-coded bindings.

	* {gdk,gnome,gtk,pango}/*.custom: Remove custom methods that can
	now be autogenerated.

	* {gdk,gnome,gtk,pango}/glue/*.c: Remove glue methods that can now
	be autogenerated
	
	* {gdk,glade,gnome,gtk,pango,vte}/Makefile.am
	* {gdk,glade,gnome,gtk,pango,vte}/glue/Makefile.am
	* {gdk,gnome,gtk,pango}/glue/makefile.win32: Update

svn path=/trunk/gtk-sharp/; revision=44563
2005-05-16 14:28:55 +00:00
Mike Kestner
afa17eacee 2005-05-13 Mike Kestner <mkestner@novell.com>
* gtk/Object.custom : hold refs for all managed subclasses. Release on
	Destroy. Dispose plain wrappers on Destroy also.
	* gtk/Widget.custom : remove the parent set hack since it's "handled"
	on Gtk.Object now.  All this will get fixed properly when we have
	access to owen's toggle_refs.

svn path=/trunk/gtk-sharp/; revision=44506
2005-05-13 17:38:51 +00:00
Mike Kestner
7c3ae396d0 reverting to a less broken state for now
svn path=/trunk/gtk-sharp/; revision=44421
2005-05-12 02:49:26 +00:00
Mike Kestner
a900916eab remove a cwl
svn path=/trunk/gtk-sharp/; revision=44407
2005-05-11 18:24:31 +00:00
Mike Kestner
8ccfd329dc 2005-05-11 Mike Kestner <mkestner@novell.com>
* gtk/Widget.custom : manual ListMnemonicLabels implementation to
	return a Widget[].  [Fixes #74786]

svn path=/trunk/gtk-sharp/; revision=44404
2005-05-11 18:04:52 +00:00
Mike Kestner
c1564a1288 2005-05-10 Mike Kestner <mkestner@novell.com>
* gtk/Object.custom : Dispose on a Destroyed event.
	* gtk/Widget.custom : rework the parent_set hack to go direct to
	the native signal instead of using the event so we avoid rewrapping of
	already destroyed parents.

svn path=/trunk/gtk-sharp/; revision=44388
2005-05-11 13:12:09 +00:00
Dan Winship
e1306617e5 * gdk/EventClient.cs (gtksharp_gdk_event_client_get_time):
* glib/Object.cs (gtksharp_get_type_id):
	* glib/Value.cs (gtksharp_object_get_ref_count,
	g_value_take_boxed): 
	* gnome/PrintContext.custom (gnome_print_concat,
	gnome_print_glyphlist, gnome_print_setdash):
	* gtk/NodeStore.cs (gtksharp_node_store_new, stamp):
	* gtk/NodeView.cs (gtk_tree_view_new_with_model):
	* gtk/Widget.custom (gtksharp_gtk_widget_set_allocation):
	* pango/LayoutLine.custom (g_free): Remove unused
	prototypes/fields

svn path=/trunk/gtk-sharp/; revision=43406
2005-04-21 15:12:12 +00:00
Mike Kestner
7a37a4ed34 2005-03-30 Anthony Taranto <voltron@emptyrhetoric.com>
* gtk/Widget.custom : cause Allocation.Set to call SizeUpdate().
	* gtk/glue/widget.c : remove gtksharp_gtk_widget_set_allocation().

svn path=/trunk/gtk-sharp/; revision=42387
2005-03-30 20:47:56 +00:00
Mike Kestner
4caefdec00 2005-03-25 Mike Kestner <mkestner@novell.com>
* */*.cs : tag native callback delegates with [CDeclCallback].
	* */*.custom : tag native callback delegates with [CDeclCallback].

svn path=/trunk/gtk-sharp/; revision=42253
2005-03-25 17:57:15 +00:00
Mike Kestner
d8ecc52b5e 2005-03-09 Mike Kestner <mkestner@novell.com>
* */*.custom : scrub for string usage in DllImports.
	* gnome/Makefile.am : remove IconTheme.custom, it's not generated.

svn path=/trunk/gtk-sharp/; revision=41615
2005-03-09 20:32:24 +00:00
Dan Winship
311cda7be0 * gtk/Gtk.metadata: Hide StyleGetProperty and StyleGetValist since
they're generated wrong, and StyleGet to avoid an ellipsis
	warning. (Also hide the deprecated ellipsis method "Set".)

	* gtk/Widget.custom (StyleGetProperty): implement manually, a la
	Gtk.Container.ChildGetProperty.

	* gtk/glue/widget.c (gtksharp_widget_style_get_property): glue for that

svn path=/trunk/gtk-sharp/; revision=40481
2005-02-11 15:59:22 +00:00
Mike Kestner
40f7e04616 2005-02-09 Mike Kestner <mkestner@novell.com>
* gtk/Widget.custom : use a static method for the ParentSet hack
	so we don't leak objects because the delegate holds an object ref.

svn path=/trunk/gtk-sharp/; revision=40346
2005-02-09 18:11:31 +00:00
Mike Kestner
adef5f7bbd 2004-12-23 Mike Kestner <mkestner@novell.com>
* glib/ClassInitializerAttribute.cs : new attr for identifying type.
	inialization methods to be run by RegisterGType.
	* glib/Makefile.am : add file.
	* glib/Object.cs : add private method to invoke ClassInitializers.
	* gtk/glue/widget.c : some new glue for binding registration.
	* gtk/BindingAttribute.cs : new attr for registering key bindings.
	* gtk/Makefile.am : add file.
	* gtk/Widget.custom : add ClassInitializer method to scan types
	for [Binding] and register key bindings.

svn path=/trunk/gtk-sharp/; revision=38074
2004-12-23 22:59:59 +00:00
Mike Kestner
9727ef31e2 2004-12-17 Mike Kestner <mkestner@novell.com>
* gtk/Gtk.metadata : hide Object and Widget.Destroy.
	* gtk/Object.custom : manual virtual Destroy impl.
	* gtk/Widget.custom : manual virtual Destroy impl.
	* gtk/Window.custom : hold a managed ref for all toplevels. Release
	it in a Destroy override.  Window is frequently subclassed and is
	never parented, so this keeps a managed ref around to avoid GC.
	[Fixes #70120]

svn path=/trunk/gtk-sharp/; revision=37914
2004-12-17 23:21:53 +00:00
Mike Kestner
d97845dbf0 2004-12-17 Mike Kestner <mkestner@novell.com>
* gdk/Gdk.metadata : mark out param on Window.GetFrameExtents.
	* gdk/WindowAttr.custom : new typed Mask prop.
	* gtk/Widget.custom : new typed WidgetFlags prop. mark Flags obsolete.

svn path=/trunk/gtk-sharp/; revision=37909
2004-12-17 21:44:47 +00:00
Mike Kestner
993d91fa31 2004-12-07 Mike Kestner <mkestner@novell.com>
* */*.cs : s/glue-2.0/glue-2 so that dllimport works on win32.
	* */*.custom : s/glue-2.0/glue-2
	* */glue/makefile.win32 : s/glue-2.0/glue-2
	* */glue/Makefile.am : s/glue-2.0/glue-2

svn path=/trunk/gtk-sharp/; revision=37324
2004-12-07 19:03:55 +00:00
Dan Winship
e1dc10e4c8 * glib/Object.cs (CreateNativeObject): virtualize
(Object(GType)): Mark this ctor Obsolete

	* gtk/Gtk.metadata: disable the generated GType ctor on Gtk.Widget

	* gtk/Widget.custom (Widget, CreateNativeObject,
	Widget_ParentSet): Connect to our own ParentSet event from
	CreateNativeObject and the GType ctor, and keep a static Hashtable
	of parented widgets, so that adding a managed widget to a
	container keeps both the GObject and the managed object alive.

	* generator/ObjectGen.cs (GenCtors): handle the disable_gtype_ctor
	flag. Also, mark GType ctors [Obsolete]

svn path=/trunk/gtk-sharp/; revision=35885
2004-11-09 14:22:39 +00:00
Mike Kestner
7f3171c814 merge to HEAD of jeroen and friends' work on the 2-4 branch. HEAD
is now tracking Gnome 2.6.

svn path=/trunk/gtk-sharp/; revision=35479
2004-10-29 20:33:07 +00:00
Mike Kestner
3eb398a12f 2004-09-23 Mike Kestner <mkestner@ximian.com>
* gtk/Widget.custom : new OnSetScrollAdjustments VM.
	* gtk/glue/widget.c : glue for new VM.

svn path=/trunk/gtk-sharp/; revision=34293
2004-09-23 16:50:18 +00:00
Mike Kestner
7a6d6b2128 2004-06-25 Mike Kestner <mkestner@ximian.com>
* */*.cs : add lgpl license blurb and clean up (c)'s.
	* */*.custom : add lgpl license blurb and clean up (c)'s.
	* */glue/*.c : add lgpl license blurb and clean up (c)'s.
	file adds without license from now on are punishable by wedgie.

svn path=/trunk/gtk-sharp/; revision=30401
2004-06-25 18:42:19 +00:00
Todd Berman
e525e9bd55 2004-06-10 Todd Berman <tberman@sevenl.net>
* gtk/Container.custom: add C# glue for virtualizing ChildType ()
        * gtk/glue/container.c: add C glue for virtualizing ChildType ()
        * gtk/Gtk.metadata: hide Container.ChildType ()
        * gtk/Widget.custom: Add ClearFlag, and SetFlag convenience methods.
        Also add various IsFlag bool properties for checking for flags.
        * gtk/glue/widget.c: Fix setting flags.
        * doc/*: updated Widget docs.

svn path=/trunk/gtk-sharp/; revision=29217
2004-06-10 18:37:05 +00:00
Todd Berman
9698c4d2f9 2004-06-07 Todd Berman <tberman@sevenl.net>
* gtk/Widget.custom: expose some easy bool properties for checking
        certain WidgetFlags. Make Allocation a settable property.
        * gtk/glue/widget.c: bit of glue to make Allocation settable.
        * gdk/Window.custom: expose UserData as a usable IntPtr property.
        * gdk/Gdk.metadata: hide old GetUserData/SetUserData methods.
        * doc/*: ran the updater.

svn path=/trunk/gtk-sharp/; revision=28974
2004-06-07 17:14:35 +00:00
Jeroen Zwartepoorte
1aaac84322 2004-06-07 Jeroen Zwartepoorte <jeroen@xs4all.nl>
* gtk/Widget.custom: Add FocusLineWidth property.
	* gtk/glue/widget.c: (gtksharp_gtk_widget_set_flags),
	(gtksharp_gtk_widget_style_get_int): glue for getting an integer style
	property.

svn path=/trunk/gtk-sharp/; revision=28967
2004-06-07 14:26:08 +00:00
Mike Kestner
369a588e93 2004-05-31 Mike Kestner <mkestner@ximian.com>
* configure.in : Bump version to 0.93 and tag.

2004-05-31  Jeroen Zwartepoorte  <jeroen@xs4all.nl>

	* gtk/Gtk.metadata: unhide WidgetFlags.
	* gtk/Widget.custom: add setter for GdkWindow prop. Add Flags prop.
        * gtk/glue/widget.custom: setter for window, accessors for flags.
	[Fixes #59337]

svn path=/trunk/gtk-sharp/; revision=28578
2004-05-31 18:48:25 +00:00