Commit graph

436 commits

Author SHA1 Message Date
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
Wade Berrier 3e3e0f1469 * generator/gapi2-codegen.in:
* parser/gapi2-fixup.in:
* parser/gapi2-parser.in:
Don't use 'which' anymore, as it doesn't work in all caes (ie:
when symlinks are
in the way)


svn path=/trunk/gtk-sharp/; revision=76653
2007-05-03 22:36:34 +00:00
Mike Kestner 54bc72e0a3 2007-04-28 Mike Kestner <mkestner@novell.com>
* generator/NativeCallbackSignature.cs :
	* generator/Signal.cs : don't use ref IntPtr in native callback sigs
	for struct parameters.  Use IntPtr and StructureToPtr.  Fixes the 
	layout issues in MD introduced by the structure marshaling rework.

svn path=/trunk/gtk-sharp/; revision=76433
2007-04-28 16:42:10 +00:00
Mike Kestner d8fb820b89 2007-04-20 Mike Kestner <mkestner@novell.com>
* generator/CallbackGen.cs : switch to NativeCallbackSignature.
	* generator/GenBase.cs : add NativeCallbackType member.
	* generator/IGeneratable.cs : add NativeCallbackType member.
	* generator/ManagedCallString.cs : add guarded post call struct
	marshaling back to the native struct.
	* generator/NativeCallbackSignature.cs : new parallel to ImportSignature
	but using NativeCallbackType instead of MarshalType.
	* generator/Signal.cs : switch vm and sig marshaler callbacks to 
	NativeCallbackSignature. Perform guarding post call struct marshaling
	back to the native struct.
	* generator/Parameters.cs : add NativeCallbackType member.
	* generator/SimpleBase.cs : add NativeCallbackType member.
	* generator/StructBase.cs : add NativeCallbackType member using IntPtr
	to support NULL handling.
	* gtk/NodeCellDataFunc.cs : update native marshaler sig.

svn path=/trunk/gtk-sharp/; revision=76011
2007-04-20 15:38:47 +00:00
Mike Kestner 2ff726d3e6 2007-04-12 Mike Kestner <mkestner@novell.com>
* glib/Object.cs : do the Timeout switch in the finalizer
	instead of in Dispose, where it can cause problems if people
	override Dispose.
	* generator/ObjectGen.cs : don't generate finalizers for every
	subclass, just rely on the ~GLib.Object implementation.

svn path=/trunk/gtk-sharp/; revision=75657
2007-04-12 18:01:33 +00:00
Mike Kestner b9a21bee0b 2007-03-15 Mike Kestner <mkestner@novell.com>
* generator/CallbackGen.cs : generate try/catch blocks for
	native to managed marshallers.  [Fixes the rest of #80516]

svn path=/trunk/gtk-sharp/; revision=74425
2007-03-15 21:26:38 +00:00
Mike Kestner da407f8ed7 2007-03-06 Mike Kestner <mkestner@novell.com>
* generator/Signal.cs : add try/catch blocks to native callback
	virtual method delegate too.

svn path=/trunk/gtk-sharp/; revision=73849
2007-03-06 21:45:51 +00:00
Mike Kestner 32de2832db 2007-03-06 Mike Kestner <mkestner@novell.com>
* generator/Signal.cs : add try/catch blocks to native callback
	delegates so that exceptions are not propagated across the native
	boundary.  Now raises GLib.ExceptionManager.UnhandledException.
	* glib/ExceptionManager.cs : new class with UnhandledException
	event and a static method to raise it.
	* glib/Signal.cs : wrap the generic EventHandler callback delegate
	with try/catch blocks and raise the UnhandledException event.

svn path=/trunk/gtk-sharp/; revision=73840
2007-03-06 20:10:15 +00:00
Mike Kestner fab4c3eed1 2007-03-01 Mike Kestner <mkestner@novell.com>
* generator/MethodBody.cs : handle set method conversion to 
	property for array parameters with preceding count params.

svn path=/trunk/gtk-sharp/; revision=73613
2007-03-01 18:37:06 +00:00
Mike Kestner 1d105a960b 2007-01-09 Mike Kestner <mkestner@novell.com>
* generator/CallbackGen.cs : add PersistUntilCalled method generation
	to the wrapper class.  Holds a GCHandle for the wrapper which is Freed
	when the delegate is invoked.
	* generator/MethodBody.cs : add "async" case for delegate scope.  Use
	this scope to identify a callback parameter that needs to persist 
	until the native side calls back.  Only valid for single-invoke
	callbacks.
	* gtk/Gtk.metadata : mark Print.RunPageSetupDialogAsync done_cb param
	with the new async scope.

svn path=/trunk/gtk-sharp/; revision=71767
2007-01-26 20:46:09 +00:00