Commit Graph

13 Commits

Author SHA1 Message Date
Thibault Saunier
87d4d29dfd Some fixes to support updated gstreamer-sharp (#29)
* parameters: Ignore UserData arguments to compute if has_optional

Those are never present in the prototypes and thus should not be taken
into account to see if prototype alternative has to be implemented.

* Fix generation of interface properties

* generator: Enhance the way we check if a field is padding

First check that fields are private to see if a field is padding,
in GstVideo we have public field staring with padding
(VideoAlignment.padding_top/bottomg/left/right) and thus need to be
taken into account to compare structures.

Also add a way for user to specify that the field is padding with
the new `is-padding` attribute.

In GStreamer padding fields usually look like __gst_reservedX, meaning
that they go unnoticed by previous code.
2017-08-24 15:20:05 +02:00
Mikkel Kruse Johnsen
a8d9a119d8 Update to Gtk 3.18.2
Had to change gapi2xml.pl to use the new properties method/macro in gtkwindow.c
- Issue, "invisible-chars" and "inner-border" is generated twice in gtkentry.c

Made patch to gwin32registrykey to use little endian by default. So Windows om ARM may fail.
2015-11-10 11:37:34 +01:00
Stephan Sundermann
53312d5fc0 generator: fixed optional array parameters 2013-10-09 20:35:02 +02:00
Stephan Sundermann
29a900e51e generator: added conversion for byref structs
The pointer from native is stored inside of a class which
wraps the structure. Fields can be accessed by marshalling
from and to the pointer. glib: Value.Update does now invoke
a private Update() method which is needed to update the new
structures.
2013-10-09 13:40:56 +02:00
Stephan Sundermann
747a4ad871 generator: Added conversion for unions
Also removed all assumptions for parameters when
ParserVersion >= 3
2013-10-08 20:22:16 +02:00
Stephan Sundermann
115659f46b generator: fixed Equals/GetHashCode for no fields or padding
Fixed Equals/GetHashCode methods when struct has no fields,
or field is padding.
2013-10-08 15:52:47 +02:00
Bertrand Lorentz
482dec1900 generator: Fix compilation warnings 2012-10-21 18:22:13 +02:00
Mike Kestner
aae2b05300 Implement IEquatable<T> on structs.
* gdk/Gdk.metadata: suppress Color.GetHashCode().
* gdk/Point.custom: remove generated methods.
* generator/StructBase.cs: Generate Equals(T), Equals(object), and GetHashCode.
* generator/StructField.cs: helper property for equality testing.
* gtk/TreeIter.custom: remove generated methods.
2011-10-07 21:55:26 -05:00
Christian Hoff
08b43fbd76 2009-08-13 Christian Hoff <christian_hoff@gmx.net>
* 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
2009-08-13 14:46:33 +00:00
Mike Kestner
0863f8703f 2005-07-02 Mike Kestner <mkestner@novell.com>
* generator/StructField.cs : fix name exception throw conditional.

svn path=/trunk/gtk-sharp/; revision=46890
2005-07-03 15:14:09 +00:00
Mike Kestner
144a0f9d20 2005-07-02 Mike Kestner <mkestner@novell.com>
* generator/CallbackGen.cs : implement new IAccessor iface so that
	callback fields on structs can now be accessed.
	* generator/ClassBase.cs : remove/abstract some methods incorrectly
	located here.
	* generator/ClassGen.cs : implement methods previously inherited from
	ClassBase incorrectly.
	* generator/HandleBase.cs : new base class for native ptr wrappers.
	Implements new IAccessor interface and code moved from ClassBase.
	* generator/IAccessor.cs : new iface to generate field/prop accessors.
	* generator/InterfaceGen.cs : derive from new ObjectBase.
	* generator/LPGen.cs : implement IAccessor.
	* generator/LPUGen.cs : implement IAccessor.
	* generator/ObjectBase.cs : new base class for Object/Iface types.
	* generator/ObjectGen.cs : derive from new ObjectBase.
	* generator/OpaqueGen.cs : derive from HandleBase.
	* generator/StructField.cs : refactor Generate method using new
	IAccessor interface.
	* */*.custom : add obsolete impls for some existing c_cased struct
	field accessors that are now StudlyNamed.

svn path=/trunk/gtk-sharp/; revision=46878
2005-07-02 15:23:27 +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
Dan Winship
5825f7f4fe Apply the parts of the generator reorganization from #69514 that
don't actually affect the generated output
	
	* generator/PropertyBase.cs: new base class for fields and
	properties (mostly containing code formerly in Property.cs).

	* generator/Property.cs: derive from PropertyBase

	* generator/FieldBase.cs: base class for fields (containing some
	code formerly in Field.cs)

	* generator/StructField.cs: class for struct fields (the rest of
	what used to be Field.cs)

	* generator/StructBase.cs: s/Field/StructField/

	* gnome/Gnome.metadata: hide a few funky _get_ methods that the
	generator is just now noticing, to preserve the old output.

svn path=/trunk/gtk-sharp/; revision=43896
2005-05-02 18:40:30 +00:00