Commit graph

13 commits

Author SHA1 Message Date
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
b4a4db44dd * pango/Attribute.cs: Base class for Pango attributes, a la
Gdk.Event

	* pango/pango-symbols.xml: explain how to marshal PangoAttribute.

	* pango/AttrBackground.cs:
	* pango/AttrFallback.cs:
	* pango/AttrFamily.cs: 
	* pango/AttrFontDesc.cs:
	* pango/AttrForeground.cs:
	* pango/AttrLanguage.cs:
	* pango/AttrLetterSpacing.cs:
	* pango/AttrRise.cs:
	* pango/AttrScale.cs:
	* pango/AttrShape.cs:
	* pango/AttrSize.cs:
	* pango/AttrStretch.cs:
	* pango/AttrStrikethrough.cs:
	* pango/AttrStrikethroughColor.cs:
	* pango/AttrStyle.cs:
	* pango/AttrUnderline.cs:
	* pango/AttrUnderlineColor.cs:
	* pango/AttrVariant.cs:
	* pango/AttrWeight.cs: subclasses of Attribute, with proper
	constructors. These don't actually correspond one-to-one with
	the underlying types, but they're nicer this way.

	* pango/Pango.metadata: Hide Attribute and its subclasses from the
	generator. Also hide "Attr" (which previously contained
	non-working badly-named static methods to create Attributes)
	and AttrClass (which is not really useful outside of pango
	itself).

	* pango/AttrIterator.custom: use Pango.Attribute.GetAttribute.

	* pango/glue/attribute.c: glue for Attribute and its subclasses

	[Fixes #52575 and its semi-dup #46552]

svn path=/trunk/gtk-sharp/; revision=43520
2005-04-24 22:35:43 +00:00
Mike Kestner
96f81cfbd4 2005-04-04 Mike Kestner <mkestner@novell.com>
* gdk/Gdk.metadata : hide some manually implemented callback methods.
	* gdk/*.custom : implement several methods containing persistent
	callback parameters.
	* generator/BoxedGen.cs : set gen_info.CurrentType in Generate.
	* generator/ClassGen.cs : set gen_info.CurrentType in Generate.
	* generator/Ctor.cs : set gen_info.CurrentMember in Generate.
	* generator/GenerationInfo.cs : add CurrentMember and CurrentType.
	* generator/Method.cs : set gen_info.CurrentMember in Generate.
	* generator/MethodBody.cs : always generate null guarding for array
	parameters, and add a nag for callback parameters without a scope attr.
	* generator/ObjectGen.cs : set gen_info.CurrentType in Generate.
	* generator/OpaqueGen.cs : set gen_info.CurrentType in Generate.
	* generator/Parameters.cs : kill NullOk. add Scope property.
	* generator/StructGen.cs : set gen_info.CurrentType in Generate.
	* gtk/Gtk.metadata : kill a few null_ok attrs.
	* pango/Pango.metadata : mark the callback params as call scope. kill
	a couple null_ok attrs.

svn path=/trunk/gtk-sharp/; revision=42529
2005-04-04 16:27:08 +00:00
Mike Kestner
b6e7515687 2004-08-18 John Luke <john.luke@gmail.com>
* pango/Pango.metadata : hide a couple methods on Layout.
	* pango/Layout.custom : impl SetText and SetMarkup w/ length=-1.
	[Fixes #63057]

svn path=/trunk/gtk-sharp/; revision=32499
2004-08-18 16:18:26 +00:00
Mike Kestner
fdcc41a70b 2004-08-17 Mike Kestner <mkestner@ximian.com>
* pango/Pango.metadata : metadata for the pango audit.
	* pango/*.custom : customizations to fix audited API.
	* doc/en/* : docs for some api changes and additions.
	* glib/Marshaller.cs : some gunichar marshal-fu.
	* glib/glue/unichar.c : a new glue method.

svn path=/trunk/gtk-sharp/; revision=32462
2004-08-17 20:43:49 +00:00
Jeroen Zwartepoorte
fe4a530155 2004-06-07 Jeroen Zwartepoorte <jeroen@xs4all.nl>
* configure.in: Add pango pkg-config check.
	* pango/Layout.custom: Updated custom code to new opaque LayoutLine.
	* pango/LayoutLine.custom: Properties for LayoutLine struct fields.
	* pango/Makefile.am:
	* pango/Pango.metadata: Make LayoutLine opaque [Fixes #59666].
	* pango/glue/.cvsignore:
	* pango/glue/Makefile.am:
	* pango/glue/layoutline.c: glue for the LayoutLine struct fields.
	* pango/glue/makefile.win32:
	* pango/glue/win32dll.c:

svn path=/trunk/gtk-sharp/; revision=28982
2004-06-07 18:59:16 +00:00
Mike Kestner
13f42d0b30 2004-02-24 Mike Kestner <mkestner@ximian.com>
* pango/AttrIterator.custom : manually implement SList method.
	* pango/GlyphItem.custom : manually implement SList method.
	* pango/Layout.custom : manually implement SList method.
	* pango/Pango.metadata : hide some SList methods.
	* pango/pango-api.xml : regen.

svn path=/trunk/gtk-sharp/; revision=23410
2004-02-24 18:00:40 +00:00
Mike Kestner
9bd46f1374 2004-02-23 Mike Kestner <mkestner@ximian.com>
* pango/Pango.metadata : mark some out params on Layout.
	* pango/pango-api.xml : regen
	[fixes #54720]

svn path=/trunk/gtk-sharp/; revision=23375
2004-02-23 18:39:16 +00:00
Mike Kestner
daaa22f5b6 2004-02-21 Mike Kestner <mkestner@ximian.com>
* pango/Pango.metadata : mark some out params on Layout.
	* pango/pango-api.xml : regen
	[fixes #54696]

svn path=/trunk/gtk-sharp/; revision=23308
2004-02-21 18:04:05 +00:00
Mike Kestner
d3604e47c8 2004-02-21 Mike Kestner <mkestner@ximian.com>
* pango/Pango.metadata : mark some out params on ParseMarkup.
	* pango/pango-api.xml : regen

svn path=/trunk/gtk-sharp/; revision=23307
2004-02-21 17:56:30 +00:00
Mike Kestner
bba2334f84 2004-02-12 Mike Kestner <mkestner@ximian.com>
* glade/Glade.metadata : hide a GList method.
	* glade/Makefile.in : run gapi-fixup
	* glade/XML.custom : return Widget[] from GetWidgetPrefix.
	* glade/glade-api.xml : regen
	* pango/Pango.metadata : hide a dubious GList method.
	* pango/pango-api.xml : regen

svn path=/trunk/gtk-sharp/; revision=23043
2004-02-12 21:40:01 +00:00
Mike Kestner
3ecf658ac2 2003-11-18 Mike Kestner <mkestner@ximian.com>
* pango/Pango.metadata : mark ref params on LayoutLine.GetExtents
	and GetPixelExtents.  [Fixes #50338]
	* pango/pango-api.xml : regenerated.

svn path=/trunk/gtk-sharp/; revision=20199
2003-11-18 21:47:57 +00:00
Mike Kestner
6e44bd8cdb 2003-10-12 Mike Kestner <mkestner@ximian.com>
* art/Art.metadata : new xpath metadata rules
	* art/Makefile.in : apply metadata before generation
	* atk/Atk.metadata : new xpath metadata rules
	* atk/Makefile.in : apply metadata before generation
	* gda/Gda.metadata : new xpath metadata rules
	* gda/Makefile.in : apply metadata before generation
	* gdk/Gdk.metadata : new xpath metadata rules
	* gdk/Makefile.in : apply metadata before generation
	* gnomedb/GnomeDb.metadata : new xpath metadata rules
	* gnomedb/Makefile.in : apply metadata before generation
	* pango/Pango.metadata : new xpath metadata rules
	* pango/Makefile.in : apply metadata before generation
	* parser/Makefile.in : build and install new gapi-fixup
	* parser/gapi-fixup.cs : new xpath based metadata engine
	* sources/*.metadata : remove most of the old metadata,
	still have to convert Gtk and Gnome to xpaths.

svn path=/trunk/gtk-sharp/; revision=18947
2003-10-13 03:06:22 +00:00