Commit graph

30 commits

Author SHA1 Message Date
Bertrand Lorentz
691de4e606 gtk: Fix dll name and use a const for all DllImports in custom code
In Windows builds of GTK+ 3.x, the dll filename is libgtk-3-0.dll.

We use this opportunity to use a common const in the DllImport
statement for all custom code.
2014-02-23 15:12:20 +01:00
Olivier Dufour
f0579eb53d parser: Add property support for ginterface 2011-08-01 21:18:02 +02:00
Bertrand Lorentz
63db97e9ad parser: Handle the G_DEFINE_TYPE_EXTENDED macro
G_DEFINE_TYPE_EXTENDED is the general macro for type implementations, on
which G_DEFINE_TYPE_WITH_CODE is based. Handle it just like
G_DEFINE_TYPE_WITH_CODE.

Reparse the API with that change, which marks a few classes as
implementing GtkStyleProvider.
2011-07-31 12:32:43 +02:00
Bertrand Lorentz
ad74c64345 parser: Fix handling of initialization functions for interfaces
With the new G_DEFINE_INTERFACE macro, the interface initialization
function is named *_default_init, so we need to handle that like
*_base_init and *_class_init.

Reparse gtk/gtk-api.raw and gio/gio-api.raw. This creates some new
signals that were previously incorrectly reported as virtual methods,
and also adds some properties.
2011-07-08 20:12:07 +02:00
Mike Kestner
567e3c81e0 struct padding member regex fix
* gtk/gtk-api.raw: reparse
* parser/gapi2xml.pl: match padding_n for padding members too to catch
   GtkSwitch padding vm slots.
2011-04-20 17:32:55 -05:00
Mike Kestner
3ed7e0901e Update to Gtk+ 3.0.0 API.
* configure.ac: require gtk+-3.0.0 and glib-2.28.0
* gdk/gdk-api.raw: reparse
* gdk/gdk-symbols.xml: add alias for Window (XID) to gulong
* gtk/Plug.custom: update custom ctors to ulong XID versions.
* gtk/gtk-api.raw: reparse
* gtk/gtk-sharp.dll.config.in: change dllname remap to match 3.0.0 so.
* sources/.gitignore: fix glib and gtk+ dirs
* sources/Makefile.am: update to gtk+ 3.0.0
* sources/sources.xml: update to gtk+ 3.0.0
2011-02-12 15:30:20 -06:00
Mike Kestner
34c0ecbcf7 The rest of the first pass.
*.*: Stubbing and tweaking and cajoling and disabling to get
the first successful build of 3.0 bindings.
2011-02-08 22:15:37 -06:00
Mike Kestner
fe2d4c311a Flatten the bootstrap and remove glade-sharp
2010-11-21  Mike Kestner  <mkestner@novell.com>

	* removed the glade dir from the build since libglade is
	no longer supported in gnome3.  removed the gapi2-compat stuff
	since it doesn't make much sense now.  Removed the bootstrap
	mechanism since we are unlikely to be releasing multiple API
	versions from the same tree going forward.  The build is now a
	straight autogen.sh like most autotools projects.
2010-11-21 21:18:06 -06:00
Mike Kestner
09c61ee026 2005-05-04 Mike Kestner <mkestner@novell.com>
* autogen.sh : error out with bootstrap help message.
	* bootstrap : replaces autogen.sh for the 2.5.x release line.
	* bootstrap-2.4 : replaces autogen.sh for the 1.9.x release line.
	* configure.in.in : renamed from configure.in and added substitution
	for version, dependencies, CFLAGS and CSFLAGS.
	* README : bootstrap docs
	* */*-api.raw : moved to api-2.6.raw for bootstrapping.
	* */*-api-2.4.raw : added 2.4 api files for bootstrapping.
	* */glue/Makefile.am : add GTK_SHARP_VERSION_CFLAGS.
	* pango/Attribute.cs : add a #if GTK_SHARP_2_6 block.
	* pango/glue/attribute.c : add a couple #ifdef GTK_SHARP_2_6 blocks.
	* sample/GtkDemo/* : make the 2.6 demos conditional.

svn path=/trunk/gtk-sharp/; revision=44047
2005-05-04 20:53:02 +00:00
Dan Winship
900b14290c * parser/gapi2xml.pl: make note of _get_type methods for enums
* */*-api.xml: Regen, adding gtype="..." to many enum types

	* generator/EnumGen.cs (Generate): if the enum has the
	"gtype" property, add a GTypeAttribute pointing to an internal
	FooGType class whose GType property can be used to get the enum's
	GType.

	* generator/ObjectGen.cs:
	s/ObjectManager.RegisterType/GType.Register/

	* glib/GTypeAttribute.cs: attribute for indicating a property that
	will return the GType of a type (particularly for enums, which
	can't have GType properties added to them).

	* glib/GType.cs: renamed from Type.cs to match the type name
	(public static readonly GType ...): add a few missing types.
	(Register): moved from ObjectManager.RegisterType
	(LookupGType): moved from TypeConverter.LookupType and extended to
	handle GTypeAttribute. Also, fix mappings for sbyte/byte/char, and
	return specific GTypes for Object subclasses rather than always
	returning GType.Object.	[Fixes #74699]
	(LookupType): moved from ObjectWrapper.LookupType
	(ToString): return the type name
	
	* glib/Object.cs (RegisterGType):
	s/ObjectManager.Register/GType.Register/
	(LookupGType): Make this protected internal so GType can access
	it.

	* glib/ObjectManager.cs (RegisterType): deprecate in favor of
	GType.Register.
	(LookupType): moved to GType
	
	* glib/TypeConverter.cs (LookupType): now a deprecated wrapper
	around GType.LookupGType.

	* glib/Value.cs: Use GType casts rather than TypeConverter

	* gtk/NodeStore.cs (ScanType):
	* gtk/ListStore.custom (ListStore): 
	* gtk/TreeStore.custom (TreeStore): Use (GType) cast rather than
	TypeConverter. Remove the error check and exception, since the
	cast never returns GType.Invalid. (The check probably predates
	GLib.ManagedValue.)

	* gnome/PanelAppletFactory.cs (Register): Use a GType cast rather
	than GLib.Object.LookupGType (which is no longer accessible after
	an mcs bugfix)

	* sample/GtkDemo/DemoIconView.cs (CreateStore): use the Type[]
	constructor rather than the GType[] constructor, since it
	translates typeof(Gdk.Pixbuf) correctly now.

svn path=/trunk/gtk-sharp/; revision=44038
2005-05-04 16:54:24 +00:00
Mike Kestner
f0f47bf078 2005-05-03 Mike Kestner <mkestner@novell.com>
* parser/gapi2xml.pl : parse const * const * Foo () properly.
	[Fixes #74710]

svn path=/trunk/gtk-sharp/; revision=43925
2005-05-03 13:59:25 +00:00
Mike Kestner
1f555ab568 2005-04-21 Mike Kestner <mkestner@novell.com>
* configure.in : require gtk+ 2.6.
	* generator/ReturnValue.cs : invalidate Callback returns for now.
	* gtk/Gtk.metadata : some renames for conflicting new API.
	* parser/gapi2xml.pl : whitespace tweak for class VM regexen.
	* sources/Makefile.am : add new patch, kill atk patch, revise dirs.
	* sources/atkhyperlink.patch : kill unnecessary patch.
	* sources/gtkclipboard.patch : add new clipboard patch.
	* sources/gtk-sharp-sources.xml : parse gtk+-2.6.
	* */*-api.raw : regen pango, atk, gdk, and gtk for new versions.

svn path=/trunk/gtk-sharp/; revision=43412
2005-04-21 17:10:54 +00:00
Mike Kestner
8f9d1cb15d 2005-04-15 Mike Kestner <mkestner@novell.com>
* configure.in : remove unnecessary libxml check.
	* parser/gapi-parser.cs : use a System.Xml to kill gapi_format_xml.
	* parser/formatXml.c : kill.
	* parser/Makefile.am : kill gapi_format_xml
	* */*-api.raw : enormous whitespace diff. sorry dawgs on mono-patches.

svn path=/trunk/gtk-sharp/; revision=43080
2005-04-15 21:29:56 +00:00
Dan Winship
05ddfae8dc * parser/gapi2xml.pl (parseTypeToken): don't parse punctuation
into the type name

	* gtk/gtk-api.raw: Regen, exposing the previously-broken
	AccelGroup.AccelActivate, AccelMap.Changed,
	ActionGroup.ConnectProxy, ActionGroup.DisconnectProxy,
	ActionGroup.PreActivate, ActionGroup.PostActivate, and
	Widget.EventAfter.

	* gtk/Gtk.metadata: Give proper names to the parameters of those
	signals

svn path=/trunk/gtk-sharp/; revision=41111
2005-02-23 20:16:40 +00:00
Mike Kestner
de1136450c 2005-01-18 Mike Kestner <mkestner@novell.com>
* gtk/gtk-api.raw : regen.
	* parser/gapi2xml.pl : deal with G_GNUC_PRINTF.

svn path=/trunk/gtk-sharp/; revision=39126
2005-01-19 02:31:41 +00:00
Mike Kestner
574aa2ee06 2005-01-07 Mike Kestner <mkestner@novell.com>
* configure.in : check for panelapplet in enable_gnome and remove
	all the stuff for a separate panelapplet-sharp assembly.
	* Makefile.am : remove panelapplet dir from build.
	* gnome/BonoboUIVerb.cs : moved from panelapplet.
	* gnome/Gnome.metadata : add rules from panelapplet.
	* gnome/Makefile.am : add new files.
	* gnome/PanelApplet.custom : moved from panelapplet.
	* gnome/PanelAppletFactory.cs : moved from panelapplet.
	* gnome/glue/panelapplet.c : moved from panelapplet.
	* gnome/glue/Makefile.am : add new file.
	* gnomedb/GnomeDb.metadata : hide a newly parsed "obsolete" type.
	* gtk/Gtk.metadata : hide a newly parsed "obsolete" callback type.
	* panelapplet : kill dir.
	* parser/gapi2xml.pl : update callback name sanity check.
	* sources/gtk-sharp-sources.xml : move panelapplet parse into gnome.
	* */*-api.raw : regen.

svn path=/trunk/gtk-sharp/; revision=38509
2005-01-07 21:29:38 +00:00
Mike Kestner
ed6f4147a9 2005-01-05 Mike Kestner <mkestner@novell.com>
* gtk/gtk-api.raw : regen.
	* sources/gtk-sharp-sources.xml : hide xembed.h and gtkxembed.h.

svn path=/trunk/gtk-sharp/; revision=38401
2005-01-05 23:21:15 +00:00
Mike Kestner
458a09ff4c 2005-01-05 Mike Kestner <mkestner@novell.com>
* generator/Field.cs : deal with LPGen/LPUGen fields.
                                                                                                                                                      
2005-01-05  Mike Kestner  <mkestner@novell.com>
                                                                                                                                                      
        * gtk/gtk-api.raw : regen.
        * sources/gtk-sharp-sources.xml : exclude gtkiconthemeparser.h.
        [Fixes #70898]


svn path=/trunk/gtk-sharp/; revision=38391
2005-01-05 20:54:39 +00:00
Mike Kestner
6b9707f8bd 2005-01-04 Mike Kestner <mkestner@novell.com>
* gtk/gtk-api.raw : regen'd.
	* sources/gtk-sharp-sources.xml : exclude file system backend source.
	[Fixes #70904, #70897, and #70900]

svn path=/trunk/gtk-sharp/; revision=38329
2005-01-04 22:06:23 +00:00
Dan Winship
4eabbb4007 * sources/gtk-sharp-sources.xml: exclude a bunch of uninstalled
gtk headers.

        * gtk/gtk-api.raw: regen

        * gtk/Gtk.metadata: Remove some explicit hiding of things that
        shouldn't have been there anyway. Hide a few types that just show
        up as unusable stubs.

svn path=/trunk/gtk-sharp/; revision=38054
2004-12-22 19:37:58 +00:00
Mike Kestner
ba4b11a21b 2004-12-22 Mike Kestner <mkestner@novell.com>
* gdk/gdk-api.raw : update enum values.
	* gnome/gnome-api.raw : update enum values.
	* gtk/gtk-api.raw : update enum values.
	* pango/pango-api.raw : update enum values.
	* parser/gapi2xml.pl : pull whitespace out of enum prefixing logic.
	[Fixes #70593]

svn path=/trunk/gtk-sharp/; revision=38051
2004-12-22 19:12:15 +00:00
Dan Winship
a610fb9a79 * generator/GUnicharGen.cs: generatable for gunichar, using
GLib.Marshaller.CharToGUnichar and .GUnicharToChar [#70704]

        * generator/SymbolTable.cs (SymbolTable): add a GUnicharGen.

        * generator/Makefile.am (sources): add GUnicharGen.cs

        * parser/gapi2xml.pl (addPropElem): g_param_spec_unichar() has
        type "gunichar" not "unichar".

        * gtk/gtk-api.raw: Regen

        * glib/Marshaller.cs: Import CharToGUnichar's glue method by the
        right name

svn path=/trunk/gtk-sharp/; revision=37998
2004-12-20 22:05:21 +00:00
Dan Winship
88cc4817f5 * parser/gapi_pp.pl: Don't strip out /*< public >*/ and
/*< private >*/ comments.

        * parser/gapi2xml.pl: Use those comments to determine the
        accessibility of struct/object fields, and set the "access"
        attribute on fields with non-default accessibiliy (private for
        structs, public for objects). Also, output a StudlyName for each
        field as well as a c_name.

        * */*-api.raw: Regen

        * generator/Field.cs (StudlyName): Use the parser-generated studly
        name rather than studlifying Name, which might have been mangled
        to avoid conflicts with an all-lowercase keyword.
        (Generate): Respect the access property on all field types rather
        than always making certain types public. Don't bother outputting
        wrapper properties for private fields, since the only code that
        could use them is the generated code, which won't.

        See doc/ChangeLog for the (very minimal) fallout from these
        changes.

        * en/Art/AlphaGamma.xml:
        * en/Gtk/TextAttributes.xml (Refcount):
        * en/Pango/GlyphString.xml (Space): these are now private

        * en/Gda/XqlItem.xml:
        * en/Glade/SignalInfo.xml:
        * en/Gnome.Vfs/ModuleCallbackSaveAuthenticationIn.xml: 
        * en/Gnome.Vfs/ModuleCallbackFullAuthenticationIn.xml: 
        * en/Gnome.Vfs/ModuleCallbackFillAuthenticationIn.xml: rename
        Objekt to Object.

        * en/Atk/KeyEventStruct.xml: rename Str1ng to String

svn path=/trunk/gtk-sharp/; revision=37853
2004-12-16 23:22:07 +00:00
Mike Kestner
26234d915b 2004-11-18 Mike Kestner <mkestner@novell.com>
* parser/gapi2xml.pl : fix a missing semi in a vm regex.
	* */*-api.raw : regen with missing vms.

svn path=/trunk/gtk-sharp/; revision=36287
2004-11-18 21:30:18 +00:00
Dan Winship
9d04b4dd06 Redo child property handling; now we generate classes to hold
the
        child properties for a given widget in a container, and generate
        the child properties as properties on those classes.
        
        * parser/gapi2xml.pl (addPropElem): don't prepend "child_" to
        child prop names any more

        * generator/ClassBase.cs (ClassBase): keep childprops separate
        from properties
        (GenChildProperties): create a subclass of Gtk.ContainerChild
        containing the container type's child properties, and override
the
        Container indexer to return that type.

        * generator/ObjectGen.cs (Generate): call GenChildProperties

        * generator/Property.cs:
        * generator/ChildProperty.cs: Simplify these a bunch, since
        * child
        properties are now represented as C# properties as well. Also
add
        [GLib.Property(cname)] and [Gtk.ChildProperty(cname)]
attributes.

        * glib/Makefile.am (sources): add PropertyAttribute.cs

        * glib/PropertyAttribute.cs: attribute used to label
        GObject properties

        * gtk/Makefile.am (sources): add ChildPropertyAttribute.cs

        * gtk/gtk-api.raw: regenerate for parser changes (remove
        "Child"/"child_" from child property names).

        * gtk/ChildPropertyAttribute.cs: attribute used to label
        GtkContainer child properties

        * gtk/Container.custom: define the ContainerChild class, and an
        indexer to return instances of it.

        * doc/en/Gtk/: update for container child property change

svn path=/trunk/gtk-sharp/; revision=36284
2004-11-18 20:31:22 +00:00
Mike Kestner
7b9e2ba720 2004-11-13 Mike Kestner <mkestner@novell.com>
* */*-api.raw : rerun the parser for new vm-age and cleanups.
	* parser/gapi_pp.pl : suppress union types, since we can't generate
	them.  smarter get_type regex. ignore #errors.
	* parser/gapi2xml.pl : generate vm elements for GInterfaces. Deal
	with G_CONST_RETURN in vms. deal with "struct _foo" types in method
	prototypes.

svn path=/trunk/gtk-sharp/; revision=36088
2004-11-13 05:32:26 +00:00
Dan Winship
df41dcc177 * parser/gapi2xml.pl (parseInitFunc, addPropElem): handle
GtkContainer child properties

	* generator/Property.cs:
	* generator/ChildProperty.cs: make Property subclassable and add a
	"ChildProperty" subclass.

	* generator/Makefile.am (sources): add ChildProperty.cs

	* generator/ClassBase.cs: handle "childprop" nodes by creating
	ChildProperty objects.

	* glib/Value.cs (explicit operator EnumWrapper): use
	g_value_get_flags() rather than g_value_get_enum() when
	appropriate.

	* glib/glue/value.c (glibsharp_value_holds_flags): glue for that

	* gtk/gtk-api.raw: regen to pick up child properties

	* gtk/Gtk.metadata:
	* gtk/Container.custom: hide the auto-generated
	Gtk.Container.ChildGetProperty and implement a nicer one by hand.

	* gtk/glue/container.c (gtksharp_container_child_get_property):
	utility function to set up an appropriate GValue for us

svn path=/trunk/gtk-sharp/; revision=35702
2004-11-05 16:47:15 +00:00
Mike Kestner
7f3171c814 merge to HEAD of jeroen and friends' work on the 2-4 branch. HEAD
is now tracking Gnome 2.6.

svn path=/trunk/gtk-sharp/; revision=35479
2004-10-29 20:33:07 +00:00
Mike Kestner
37a37adf53 2004-03-18 Mike Kestner <mkestner@ximian.com>
* parser/gapi2xml.pl : fix passbyvalue bug in vm parsing.
	* */*.raw : regen

svn path=/trunk/gtk-sharp/; revision=24290
2004-03-18 20:25:07 +00:00
Mike Kestner
e83c55a242 2004-03-12 Mike Kestner <mkestner@ximian.com>
* */Makefile.am : automakify the build
	* */Makefile.in : kill
	* *.custom : remove System.Drawing dependencies
	* *.cs : remove System.Drawing dependencies
	* *-api.xml : mv to *-api.raw
	* glue/* : mv to lib specific gluelibs for glib, gdk, gtk, and glade.
	* gtk/gtk-symbols : alias GtkType to GType
	* sources/gtk-sharp-sources.xml : create .raw files. They are now
	transformed to .xml files by the metadata compilation step.

svn path=/trunk/gtk-sharp/; revision=23967
2004-03-12 21:18:11 +00:00