* 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
* generator/IGeneratable.cs: Remove MarshalReturnType, ToNativeReturnType,
FromNativeReturn and ToNativeReturn as they never returned something else
than MarshalType, FromNative/AllocNative and CallByName, respectively.
* generator/Signal.cs: Use AllocNative for IManualMarshalers.
svn path=/trunk/gtk-sharp/; revision=139849
* 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
* generator/InterfaceGen.cs: remove var keyword usage to fix build on
.Net 2.0. fix a couple mixed line endings as well.
svn path=/trunk/gtk-sharp/; revision=139109
* generator/gapi3-codegen.in, parser/gapi3-fixup.in, parser/gapi3-parser.in:
"svn add" a few missing files to resurrect the build.
svn path=/trunk/gtk-sharp/; revision=138603
* configure.in.in, Makefile.include: Bump up GAPI version to 3.0.
* bootstrap-2.14: Renamed to bootstrap-for-the-insane, added message
of doom. [Fixes#521449]
svn path=/trunk/gtk-sharp/; revision=138572
* generator/GenBase.cs: Add AppendCustom override that you can pass the
type name in, used to include .custom for Name + Adapter and Name +
Implementor .custom files for interface gen.
* generator/InterfaceGen.cs: Use the new AppendCustom override for the
Name + Adapter.custom file, and add support for including custom file for
the Name + Implementor interface; necessary to manually implement an
interface method.
svn path=/trunk/gtk-sharp/; revision=137809
* generator/ObjectBase.cs: add CallByName overload with ownership.
* generator/Parameters.cs: support owned by callee parameters.
Adapted from a patch by Maarten Bosmans. [Fixes#513680]
svn path=/trunk/gtk-sharp/; revision=137754
* 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
* generator/Signal.cs: Fix indexing of the signal arguments array for
"out" and "ref" parameters. [Fixes#508572]
svn path=/trunk/gtk-sharp/; revision=135661
* generator/EnumGen.cs: Fix enum generator to properly parse integer
values with type modifier suffixes (UL, L, U), and not accidentally
munge named values that happen to end in one of these suffixes
svn path=/trunk/gtk-sharp/; revision=134980
* generator/ReturnValue.cs: null-term array marshaling for vms.
* generator/VirtualMethod.cs: use ToNative return type in native
callbacks.
[Fixes#501294] Patch by Sebastian Dröge.
svn path=/trunk/gtk-sharp/; revision=133670
* generator/ClassField.cs: Derive from StructField.
* generator/ObjectBase.cs: Implement validation mechanism for
class structures. If the structure contains bitfields or fields
of unknown types, we cannot generate it in managed code.
* generator/GObjectVM.cs: Fall back to glue if the class structure
cannot be generated. [Fixes#498051]
svn path=/trunk/gtk-sharp/; revision=133514
* generator/OpaqueGen.cs: support abstract opaque classes,
though I have no idea why anyone would want one.
[Fixes#494212] Revised patch from Sebastian Dröge.
svn path=/trunk/gtk-sharp/; revision=132678
* generator/OpaqueGen.cs: support declaring managed ifaces.
[Fixes#494193] Revised patch from Sebastian Dröge.
svn path=/trunk/gtk-sharp/; revision=132675
Add support for virtual methods(vm) to the generator.
* parser/gapi2xml.pl: Generate a class_struct element with
all members of the class structure. Dump the first (instance)
parameter for signal and vm elements. Bump up parser version.
* generator/GObjectVM.cs: Added. Support for GObject virtual methods.
* generator/DefaultSignalHandler.cs: Signal specific part of vm
generation.
* generator/InterfaceVM.cs: New class for interface vms.
* generator/ObjectBase.cs: Parse the class struct.
svn path=/trunk/gtk-sharp/; revision=131604
* parser/gapi2xml.pl: Introduce a "parser_version" attribute.
* generator/GenBase.cs: Implement a property to access the
attribute's value.
svn path=/trunk/gtk-sharp/; revision=129807
* generator/OpaqueGen.cs: generate a finalizer for classes which
have free or unref methods and ensure it runs on the gui thread.
* glib/Opaque.cs: remove finalize handling.
Fixes a 'resurrection' issue with the previous 419777 fix.
svn path=/trunk/gtk-sharp/; revision=124940
* generator/InterfaceGen.cs: generate Adapters for consume_only ifaces
too. This seems unusual, but is primarily to produce at least one
'generic' implementation of every interface and a GetObject method
so that the marshaling code can always return an object which
implements the interface, even if no public object wrapper exists for
the underlying c GObject type.
svn path=/trunk/gtk-sharp/; revision=122814
* generator/ReturnValue.cs: map gfilename* list elements to type
ListBase.FilenameString so they are marshaled correctly.
* glib/Marshaller.cs: handle FilenameStrings in ListPtrToArray.
* gtk/Gtk.metadata: FileChooser.GetFilenames and ListShortcutFolders
return type mangling to avoid custom implementations.
* gtk/FileChooser*.custom: kill manual Filenames and ShortcutFolders.
svn path=/trunk/gtk-sharp/; revision=122802
* generator/InterfaceGen.cs: use the new GLib API to detect
instances that don't implement GInterfaces.
* glib/GType.cs: add new API for checking if an IntPtr instance
implements a certain GType.
[Fixes#448009]
svn path=/trunk/gtk-sharp/; revision=121990
* generator/Ctor.cs:
* generator/Method.cs:
* generator/MethodBase.cs: refactor the Protection from Method to
MethodBase, generate ctors with the correct proteciton too.
svn path=/trunk/gtk-sharp/; revision=120487
* generator/Signal.cs: remove ref int workaround now that we fallback
to signal-specific marshalers for G_TYPE_POINTER using signals.
Fixes#450119.
svn path=/trunk/gtk-sharp/; revision=120254
* atk/atk-api-2.12.raw: regen
* gtk/gtk-api-2.12.raw: regen
* generator/Signal.cs: reinstate old custom marshaler generation and
generate custom marshaling when 'manual' attr is set.
* parser/gapi2xml.pl: set manual attr on sigs that have G_TYPE_POINTER
parameters since the generic closure can't cope with them.
svn path=/trunk/gtk-sharp/; revision=118068
* generator/InterfaceGen.cs: throw ArgumentNullException in
the Adapter's constructor that receives an implementor.
svn path=/trunk/gtk-sharp/; revision=115571
* bootstrap-2.12: bump svn version.
* generator/Signal.cs: add a workaround for G_TYPE_POINTER usage
in the GtkEditable::text_inserted signal. The signal parameter
received by the closure will be an IntPtr, which we then have to
use to read/write the value directly from unmanaged memory.
[Fixes#427588]
svn path=/trunk/gtk-sharp/; revision=113547
* generator/LPGen.cs: remove WIN64LONGS hackery.
* generator/LPUGen.cs: remove WIN64LONGS hackery.
* generator/SymbolTable.cs: for WIN64LONGS, map them directly to
(u)int SimpleGens instead of using the LP generatables.
svn path=/trunk/gtk-sharp/; revision=113420
* generator/Property.cs (IsDeprecated): Allow "1" or "true".
* generator/Method.cs (.ctor): Allow "1" or "true".
* generator/ClassBase.cs: Allow a value of "true" to work the same
as "1" for the deprecated and abstract attributes.
svn path=/trunk/gtk-sharp/; revision=113238
* generator/ManagedCallString.cs: revert last change. There are a
lot of "broken" callback sigs out there which expose user data because
it's not in the last parameter in the list. I don't think we can
reasonably make a change to hide all those at this point. This change
at least hides all the user_data which comes right before a GError
param at the end of the list. I need to follow up with a change which
handles data parameters in any parameter position, but allows the user
to mark "exposed" data params for compatibility reasons.
* generator/Parameters.cs: hide data params which are at the end of a
list behind an error param.
* gtk/Gtk.metadata: mark an array parameter on
TextBufferDeserializeFunc.
svn path=/trunk/gtk-sharp/; revision=111716
* generator/ManagedCallString.cs: fixes for data parameter hiding
in native to managed callback generation.
svn path=/trunk/gtk-sharp/; revision=111706