Commit Graph

445 Commits

Author SHA1 Message Date
Mike Kestner
621b39b531 2008-05-15 Mike Kestner <mkestner@novell.com>
* kill the makefile.win32 build system.  it has been unmaintained
	for quite some time, replaced by the auto* build in cygwin.

svn path=/trunk/gtk-sharp/; revision=103308
2008-05-15 17:36:46 +00:00
Mike Kestner
39ac15b6b6 2008-05-02 Mike Kestner <mkestner@novell.com>
* generator/GenerationInfo.cs:  refactor glue writer implementation
	so that GlueEnabled means there is a valid glue writer available.
	Avoids crashes in scenarios where an unwriteable glue path is provided
	to the generator.  Generate a glue function which scans the type
	hierarchy of an object for the most-derived unmanaged ancestor so
	that we can invoke class methods on it, avoiding infinite recursions.
	* generator/Signal.cs: revamp the default handler vm overriding 
	mechanism.  When class fields exist which can be directly hooked into,
	we now generate glue to override and chain up to unmanaged base funcs.
	This avoids some strangeness in the g_signal_override_class_closure
	and g_signal_chain_from_overridden reported in #332300 and also lays
	the groundwork for automated generation of non-signal VMs.
	* gtk/Gtk.metadata: block signal glue generation for a few types which 
	don't seem to install headers.

svn path=/trunk/gtk-sharp/; revision=102350
2008-05-02 17:10:05 +00:00
Mike Kestner
399c8e8586 2008-05-01 Mike Kestner <mkestner@novell.com>
* generator/InterfaceGen.cs: use CName and mangle it.  ClassFieldName
	is not guaranteed to be set now.
	* generator/Signal.cs: read ClassFieldName from the api xml.  Move 
	glue writer lookup inside the block to avoid exceptions for now.

svn path=/trunk/gtk-sharp/; revision=102276
2008-05-01 15:04:17 +00:00
Mike Kestner
0780ed3c0d 2008-04-30 Mike Kestner <mkestner@novell.com>
* generator/InterfaceGen.cs:
	* generator/Signal.cs: use generic signal marshaling instead of
	generating signature specific marshaling callbacks.
	* glib/glue/closure.c: glue for new closure impl.
	* glib/Object.cs: open up a couple hashes internally. 
	* glib/Signal.cs: hook in closure based connection and expose
	EmissionHook functionality for atk usage.
	* glib/SignalClosure.cs: new generic signal marshaling mechanism.
	* glib/ToggleRef.cs: null guarding in Target and let Signal remove
	itself from hash when it disposes itself.

svn path=/trunk/gtk-sharp/; revision=102241
2008-04-30 20:15:45 +00:00
Mike Kestner
11286d19c6 2008-04-15 Mike Kestner <mkestner@novell.com>
* generator/ReturnValue.cs: use new GLib.Opaque.OwnedCopy for owned
	opaque return values.
	* glib/Opaque.cs: introduce OwnedCopy property to support returning
	owned opaque instances from native to managed callbacks. 
	[Fixes #374641]

svn path=/trunk/gtk-sharp/; revision=100762
2008-04-15 19:43:16 +00:00
Marek Habersack
20d764bb6f 2008-04-08 Marek Habersack <mhabersack@novell.com>
* generator/InterfaceGen.cs: added a check for null obj in the
	generated GetObject method.

svn path=/trunk/gtk-sharp/; revision=100145
2008-04-08 20:59:34 +00:00
Mike Kestner
bdeb30bbad 2008-04-04 Mike Kestner <mkestner@novell.com>
* atk/Atk.metadata: markup all the Ref* methods to indicate owned refs.
	* generator/ReturnValue.cs: Add owned object ToNative handling.
	* generator/VirtualMethod.cs: Split ToNative call from managed method
	invocation to avoid duplicate calls in null checking scenarios.
	* glib/Object.cs: add OwnedHandle property for use by language binding
	code which needs to pass owned refs to native methods.

svn path=/trunk/gtk-sharp/; revision=99849
2008-04-04 16:10:08 +00:00
Mike Kestner
b1d6be02d5 2008-04-01 Mike Kestner <mkestner@novell.com>
* generator/InterfaceGen.cs: support "generic" interface
	implementations like those exposed by gio.  This is specifically for
	libraries which return GTypes which are not exposed by the library
	but which implement GInterfaces which are exposed by the library.

svn path=/trunk/gtk-sharp/; revision=99541
2008-04-01 16:08:33 +00:00
Mike Kestner
de56504f8b 2008-03-21 Mike Kestner <mkestner@novell.com>
* bootstrap-2.12: bump svn version
	* generator/CallbackGen.cs: add dnotify support to invoker.
	Store and respond with incoming UserData params. Start using 
	__prefixed private vars to avoid collisions with parameters, 
	like the 'result' params in gio.
	* generator/ManagedCallString.cs: use new data/dnotify invoker
	ctors.
	* generator/MethodBody.cs:
	* generator/Parameters.cs: don't link "out" length params to 
	preceding strings.
	* generator/VMSignature.cs: don't require UserData to be last
	param, since it can have things like error after it.

svn path=/trunk/gtk-sharp/; revision=98782
2008-03-22 01:30:42 +00:00
Mike Kestner
be28ed3597 2008-02-29 Mike Kestner <mkestner@novell.com>
* generator/ReturnValue.cs: null-term array handling.
	* glib/Marshaller.cs: marshaling methods for null-term arrays.

svn path=/trunk/gtk-sharp/; revision=97032
2008-02-29 23:42:27 +00:00
Mike Kestner
80d977610f 2008-02-26 Mike Kestner <mkestner@novell.com>
* generator/ByRefGen.cs: fix mismatched alloc/free.

svn path=/trunk/gtk-sharp/; revision=96661
2008-02-26 16:29:14 +00:00
Mike Kestner
4c6671c625 2008-02-07 Mike Kestner <mkestner@novell.com>
* generator/Parameters.cs: fix off-by-1 in null term array marshaling.

svn path=/trunk/gtk-sharp/; revision=95214
2008-02-08 01:32:34 +00:00
Mike Kestner
445ea379bc 2008-01-30 Mike Kestner <mkestner@novell.com>
* generator/ClassBase.cs: null check ifaces in recursive method
	and signal lookup.

svn path=/trunk/gtk-sharp/; revision=94388
2008-01-30 15:30:27 +00:00
Mike Kestner
adda8bdcf5 2008-01-29 Mike Kestner <mkestner@novell.com>
* generator/ManagedCallString (Setup): use error param name instead
	of hardcoding error.

svn path=/trunk/gtk-sharp/; revision=94309
2008-01-29 20:04:27 +00:00
Mike Kestner
6a668a2cc8 2008-01-29 Mike Kestner <mkestner@novell.com>
* generator/VirtualMethod (CName): mangle the name.
	* generator/SymbolTable.cs (MangleName): add 'remove' and 'foreach'
	mappings.  Should probably just get a C# keyword list and map all of
	them instead of onesy twoseys.
	Fixes for tnymail binding generation.

svn path=/trunk/gtk-sharp/; revision=94286
2008-01-29 18:48:04 +00:00
Mike Kestner
f53935b65d 2008-01-17 Mike Kestner <mkestner@novell.com>
* generator/Property.cs: missing Parent null check needed for direct
	GLib.Object subclasses.  Suggested by mario@gnome.cl.  [Fixes #321536]

svn path=/trunk/gtk-sharp/; revision=93151
2008-01-17 14:37:02 +00:00
Mike Kestner
9716ffe57e 2008-01-07 Mike Kestner <mkestner@novell.com>
* generator/SymbolTable.cs: map "unsigned long" to LPUGen.

svn path=/trunk/gtk-sharp/; revision=92413
2008-01-07 21:12:33 +00:00
Mike Kestner
57c664572c 2007-12-12 Mike Kestner <mkestner@novell.com>
* generator/Parameters.cs: fix marshaling for ArrayCount params where
	casting is required, like gsize/size_t count parameters.

svn path=/trunk/gtk-sharp/; revision=91199
2007-12-13 05:11:07 +00:00
Mike Kestner
209f353fc8 2007-12-06 Mike Kestner <mkestner@novell.com>
* * : update to 2.12 API.

svn path=/trunk/gtk-sharp/; revision=90823
2007-12-06 17:23:28 +00:00
Mike Kestner
385af2ab32 2007-12-04 Mike Kestner <mkestner@novell.com>
* generator/SymbolTable.cs: add goffset mapping.

svn path=/trunk/gtk-sharp/; revision=90770
2007-12-05 15:25:45 +00:00
Mike Kestner
e26a98a763 2007-12-04 Mike Kestner <mkestner@novell.com>
* configure.in.in: check for default off_t size
	* generator/SymbolTable.cs: map off_t based on configure check.
	* generator/Makefile.am: add OFF_T_FLAGS to compile.

svn path=/trunk/gtk-sharp/; revision=90727
2007-12-04 23:52:08 +00:00
Mark Probst
e1fd1b014c 2007-12-03 Mark Probst <mark.probst@gmail.com>
* generator/SymbolTable.cs: Added "where" to the list of mangled
	names.

svn path=/trunk/gtk-sharp/; revision=90559
2007-12-03 17:08:03 +00:00
Mike Kestner
75d2981d82 2007-11-29 Mike Kestner <mkestner@novell.com>
* generator/MethodBase.cs: move Name stuff from subclasses.
	Check for (G|S)et<UpperCaseLetter> in new Has props.
	* generator/Method.cs:
	* generator/VirtualMethod.cs: refactor out Name stuff. Use
	new Has(G|S)etterName props.
	* pango/Pango.metadata: workaround Has/Hash collision with
	the old broken getter check. [Fixes #344954]

svn path=/trunk/gtk-sharp/; revision=90458
2007-11-29 20:01:28 +00:00
Mike Kestner
86d29321c3 2007-11-12 Mike Kestner <mkestner@novell.com>
* generator/SymbolTable.cs: remove GCallback mapping.
	* glib/GCallback.cs: kill, bad idea.

svn path=/trunk/gtk-sharp/; revision=89519
2007-11-13 03:04:32 +00:00
Mike Kestner
373951876b 2007-11-09 Mike Kestner <mkestner@novell.com>
* generator/Parameters.cs: support for null_term_array attribute.

svn path=/trunk/gtk-sharp/; revision=89345
2007-11-09 21:06:30 +00:00
Mike Kestner
663b457f63 2007-11-02 Mike Kestner <mkestner@novell.com>
* generator/Method.cs: need to use on the Base method name to 
	lookup complements and determine if the method is a getter or setter
	when an explicit interface method name is used.

svn path=/trunk/gtk-sharp/; revision=88726
2007-11-02 15:54:26 +00:00
Mike Kestner
1fa0231217 2007-10-24 Mike Kestner <mkestner@novell.com>
* generator/SymbolTable.cs: mappings for GCallback and GSourceFunc.
	* glib/GCallback.cs: GCallback declaration.
	* glib/Source.cs: GSourceFunc declaration.

svn path=/trunk/gtk-sharp/; revision=88126
2007-10-24 20:13:08 +00:00
Mike Kestner
0347cd44dc 2007-10-24 Mike Kestner <mkestner@novell.com>
* generator/VirtualMethod.cs: clean up compiler warning and duplicate
	call.

svn path=/trunk/gtk-sharp/; revision=88125
2007-10-24 20:08:24 +00:00
Mike Kestner
6fa5d61269 2007-10-24 Mike Kestner <mkestner@novell.com>
* generator/InterfaceGen.cs: generate an Implementor prop on the
	adapters to obtain the underlying object.

svn path=/trunk/gtk-sharp/; revision=88124
2007-10-24 20:06:13 +00:00
Mike Kestner
2a7b706c5a 2007-10-22 Mike Kestner <mkestner@novell.com>
* configure.in.in: add a win64 check and a compiler define for
	handling win64 32bit longs.
	* generator/LPGen.cs: use int to marshal on win64.
	* generator/LPUGen.cs: use uint to marshal on win64.
	* generator/SymbolTable.cs: remove fixme.

svn path=/trunk/gtk-sharp/; revision=87922
2007-10-22 17:34:02 +00:00
Mike Kestner
3341e20c13 2007-10-15 Mike Kestner <mkestner@novell.com>
* generator/InterfaceGen.cs : gen Handle props as overrides.
	* glib/GInterfaceAdapter.cs : add abstract Handle prop.
	* glib/Value.cs: add ctor (GInterfaceAdapter).

svn path=/trunk/gtk-sharp/; revision=87532
2007-10-15 20:25:05 +00:00
Mike Kestner
b2db2cda9e 2007-10-02 Mike Kestner <mkestner@novell.com>
* generator/*.cs: implement the interfaces on the adapters too.
	Generate an Implementor interface for users which exposes the 
	methods to implement.  Register based on the Implementor sub-iface.
	* gtk/*Adapter.custom: custom implementations for the custom
	interface members.
	* gtk/TreeIter.custom: make UserData public.
	* sample/TreeModelDemo.cs: sample for implementing a TreeModel
	interface.

svn path=/trunk/gtk-sharp/; revision=86753
2007-10-02 15:57:45 +00:00
Mike Kestner
70f976e020 2007-10-01 Mike Kestner <mkestner@novell.com>
* generator/OpaqueGen.cs: disable Copy generation fix until I can
	figure out why it breaks DnD.

svn path=/trunk/gtk-sharp/; revision=86732
2007-10-02 03:08:44 +00:00
Mike Kestner
9f780a56b2 2007-09-21 Mike Kestner <mkestner@novell.com>
* generator/*.cs: add DefaultValue prop for obtaining a
	sane value when we need to return a value but something bad has 
	happened such that we can't get a real value.  Needed for iface
	signal marshaling, among other places we're partially working 
	around it now.

svn path=/trunk/gtk-sharp/; revision=86157
2007-09-21 16:37:04 +00:00
Mike Kestner
e18e0b7995 2007-09-19 Mike Kestner <mkestner@novell.com>
* generator/InterfaceGen.cs: remove some dead code from a previous
	implementation attempt.

svn path=/trunk/gtk-sharp/; revision=86027
2007-09-19 18:22:22 +00:00
Mike Kestner
74458aa03a 2007-09-19 Mike Kestner <mkestner@novell.com>
* generator/VirtualMethod.cs: refactor delegate generation into
	GenerateCallback and add [CDeclCallback] which was missing.
	* generator/InterfaceGen.cs: kill GenerateDelegates.  They are now
	generated by VirtualMethod.GenerateCallback.

svn path=/trunk/gtk-sharp/; revision=86026
2007-09-19 18:15:55 +00:00
Mike Kestner
2c82cec395 2007-09-14 Mike Kestner <mkestner@novell.com>
* generator/CallbackGen.cs (GenInvoker): null check the sig field
	and set it up.  This can happen when generating the marshaling types
	from dependent libraries instead of via the Generate method. 

svn path=/trunk/gtk-sharp/; revision=85831
2007-09-14 17:35:14 +00:00
Mike Kestner
c93ecb7f88 2007-09-11 Mike Kestner <mkestner@novell.com>
* gtk/Gtk.metadata: virtual_method rules for GInterface generation.
	* generator/ReturnValue.cs (ToNative): new method for the virtual
	method generation.
	* generator/Parameters.cs (FromNative): null guarding.
	* generator/ManagedCallString.cs: rework for interface method
	generation including callback and error param support.
	* generator/CallbackGen.cs: Invoker support. new class that deals
	with persistence of native and wrapper delegates in native to managed
	callback method signatures.
	* generator/VirtualMethod.cs: support for generation of interface
	methods, and all the funky parameters that come with that.
	* generator/InterfaceGen.cs: Fill out the adapter implementation.
	* generator/MethodBody.cs: Initialize overload. Extend ThrowsException
	to support GError outside the last parameter slot.
	* glib/GInterfaceAttribute.cs: New attribute to mark interfaces and
	obtain adapter type.
	* glib/Object.cs (AddInterfaces): interface registration method.
	* glib/GInterfaceAdapter.cs: New abstract class for interface
	adapter generation.
	* glib/Makefile.am: add new files.

svn path=/trunk/gtk-sharp/; revision=85658
2007-09-11 20:34:24 +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
bc971d723f 2007-08-13 Mike Kestner <mkestner@novell.com>
* generator/MethodBody.cs : finally kill the s/out ref/ref/ hack.
	* generator/Parameter.cs : ditto.

svn path=/trunk/gtk-sharp/; revision=83985
2007-08-13 18:18:12 +00:00
Mike Kestner
71e9b3c99a 2007-08-13 Mike Kestner <mkestner@novell.com>
* generator/ByRefGen.cs : implement IManualMarshaler.
	* generator/Parameter.cs : use StructParameter for ByRefGen.

svn path=/trunk/gtk-sharp/; revision=83978
2007-08-13 17:48:24 +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
Mike Kestner
d24e54974d 2007-08-01 Mike Kestner <mkestner@novell.com>
* generator/CallbackGen.cs : use Parameters.NativeCallbackSignature.
	* generator/Ctor.cs : use Parameters.ImportSignature prop.
	* generator/ImportSignature.cs : kill
	* generator/MethodBase.cs : kill ImportSignature prop.
	* generator/Method.cs : use Parameters.ImportSignature prop.
	* generator/NativeCallbackSignature.cs : kill
	* generator/Parameters.cs : add ImportSig and NativeCallbackSig.
	* generator/Signal.cs : use Parameters.NativeCallbackSignature prop.
	* generator/VirtualMethod.cs : use Parameters.ImportSignature prop.

svn path=/trunk/gtk-sharp/; revision=83214
2007-08-01 17:30:47 +00:00
Mike Kestner
296c948db1 2007-07-31 Mike Kestner <mkestner@novell.com>
* generator/Ctor.cs : Validate before generating and adjust protection
	on a couple private methods.
	* generator/Parameters.cs : remove unused var to kill warning.

svn path=/trunk/gtk-sharp/; revision=83132
2007-07-31 18:29:13 +00:00
Mike Kestner
0f6cac6623 2007-07-30 Mike Kestner <mkestner@novell.com>
* generator/MethodBody.cs : refactor finish logic into parameter.
	* generator/Parameters.cs : refactor finish logic into parameter and
	fix some failures to marshal ref params post call.

svn path=/trunk/gtk-sharp/; revision=83020
2007-07-30 19:40:49 +00:00
Mike Kestner
4bbe8a8faf 2007-07-27 Mike Kestner <mkestner@novell.com>
* generator/OpaqueGen.cs : only generate Copy override for methods
	with no parameters.  Fixes a gnome-sharp build problem.

svn path=/trunk/gtk-sharp/; revision=82869
2007-07-27 16:16:16 +00:00
Mike Kestner
a06235f02f 2007-07-19 Mike Kestner <mkestner@novell.com>
* generator/OpaqueGen.cs : override the new Copy vm if a Copy method
	exists for the type.
	* glib/Opaque.cs : add a virtual method to allow subclasses with
	Copy methods to override.  Use the method in GetOpaque for unowned
	instantiations to try to obtain an owned instance. [Fixes #82037]

svn path=/trunk/gtk-sharp/; revision=82293
2007-07-19 15:35:28 +00:00
Mike Kestner
d3996abfdb 2007-07-17 Mike Kestner <mkestner@novell.com>
* generator/CallbackGen.cs : make GError** signatures fatal to
	avoid compilation problem in gmime-sharp.

svn path=/trunk/gtk-sharp/; revision=82105
2007-07-17 15:17:39 +00:00
Mike Kestner
ce3db510d7 2007-07-12 Mike Kestner <mkestner@novell.com>
* generator/StructBase.cs : use typeof to pass type to PtrToStruct
	to avoid an instantiation and method call.  Duh.

svn path=/trunk/gtk-sharp/; revision=81907
2007-07-12 21:23:47 +00:00
Mike Kestner
b1bb3f9056 2007-07-03 Mike Kestner <mkestner@novell.com>
* generator/ImportSignature.cs : use Parameter.NativeSignature 
	prop and refactor out some GError handling.
	* generator/MethodBody.cs : Refactor logic into Parameters.
	* generator/Parameters.cs : add ArrayParameter, ArrayCountPair, and
	ErrorParameter subclasses to refactor spaghetti code in MethodBody.

svn path=/trunk/gtk-sharp/; revision=81721
2007-07-10 15:25:14 +00:00