Commit graph

3921 commits

Author SHA1 Message Date
Andrés G. Aragoneses
077836a227 generator: fix AssemblyName in MSBuild csproj
To be the same as what is generated via Makefiles.
2013-10-22 12:17:44 +02:00
Andrés G. Aragoneses
5600b2cb29 gio: update MSBuild csproj file to account for recent changes 2013-10-22 12:17:38 +02:00
Bertrand Lorentz
2022141ddd Merge pull request #80 from knocte/master
atk: add metadata fixup to avoid crash due to ABI break
2013-10-22 02:38:47 -07:00
Andrés G. Aragoneses
516fc1d9f0 generator: leverage framework's String.IsNullOrEmpty() call
This makes the code a bit more readable and it is a
micro-optimization.
2013-10-21 17:13:31 +02:00
Andrés G. Aragoneses
fcc775d658 generator: drop unneeded parameter in WriteLine() call 2013-10-21 17:10:11 +02:00
Andrés G. Aragoneses
b13d51a32d generator: simplify bool logic in Method class
There are two elements repeated in this expression:

(( ((A) || (B)) || (B)) && C)

We can simplify "(A || B) || B" to simply "A || B",
so the result is a bit more readable this way:

(A || B) && C
2013-10-21 17:09:40 +02:00
Andrés G. Aragoneses
e9d5d1803d glib: install properties before class_init finishes
Recently glib started to warn about the future deprecation of adding
interfaces after class_init, which we fixed here [1].

Now, a similar warning has started to happen for the addition of
properties, example:

(Nereid:23225): GLib-GObject-WARNING **: Attempt to add property __gtksharp_33_Banshee_Widgets_TileView::gtk-sharp-managed-instance after class was initialised

So we need to add them before class_init finishes too, and this
change makes it this way.

[1] 9ff7ec8b2c
2013-10-21 00:37:29 +02:00
Stephan Sundermann
31ed6cc6a9 atk: add metadata fixup to avoid crash due to ABI break
The ABI of ATK has been broken recently [1], so the best way
to deal with this is removing the pads from all the interfaces
found by GAPI in the atk namespace.

This avoids that some mono-based apps crash with new version
of Atk (i.e. 2.10.0, the one that Ubuntu 13.10 ships), and
still works for older versions (i.e. 2.8.0, the one that
Ubuntu 13.04 ships).

[1] https://git.gnome.org/browse/atk/commit/?id=b1f70e81ef1d7287dcb2cafa9a115ff5752ece55
2013-10-18 11:30:13 +02:00
Andrés G. Aragoneses
8b998861e1 Convert some dynamic casts to static casts
There is no null check after these casts so if they fail they would
generate a NullReferenceException. By changing them to static casts
we would get a InvalidCastException which are much less misleading.
2013-10-13 19:10:03 +02:00
Bertrand Lorentz
b2fb84d14b Clean up .gitignore files 2013-10-13 18:38:33 +02:00
Andrés G. Aragoneses
b15f2eede1 generator: provide a GType static property for adapters
In the same way all GLib.Object-derived classes provided by the
generator have a GType static property (i.e. Gtk.Widget), we need
the same for the *Adapter classes, to access their GType without having
an instance of it. (The first use case would be GStreamerSharp's
Gst.Bin.IterateAllByInterface ().)

For this, we cannot simply add the property to all adapter classes
and be done, because it would clash with a property which is already
there, but is non-static, that has the same name and same value
(this property is needed for complying GInterfaceAdapter abstract
class), so we rename this property to GInterfaceGType because
using this name for the static one would not be consistent with the
rest of the classes generated which already provide the static one
with the name "GType".
2013-10-13 17:45:09 +02:00
Andrés G. Aragoneses
ea07082952 generator: avoid another Implementor suffix hardcode
This "Implementor" suffix was refactored recently (in commit
6cb03440c1) to be accessed via the ImplementorName property. So we
eliminate now the last occurrence of it in hardcoded form.
2013-10-13 17:20:37 +02:00
Andrés G. Aragoneses
634f9e5f27 generator: add a link to the README from the project
This way people who work on the generator using an IDE will see the file
2013-10-13 17:05:41 +02:00
Bertrand Lorentz
2d83fb3073 Move the fixup tool from the parser to the generator folder
The parser will be going away at some point in the future, but we
will still need the fixup step. And the fixup step is really more
of a preliminary step for the generator anyway.
2013-10-13 17:04:56 +02:00
Bertrand Lorentz
ac9da8d4aa gio: Fix up first ApplicationFlags enum to be None instead of FlagsNone 2013-10-13 15:44:59 +02:00
Stephan Sundermann
72b51cc712 generator: Implement attribute to hide method parameters
A hidden parameter is dropped from the signature and the default value is filled in.
2013-10-11 23:36:20 +02:00
Stephan Sundermann
8e307d8eaa generator: Remove redundant class name from method name
If you move a global method to a class, you often end up with something
like Tag.TagExists(). This will now be automatically renamed to
Tag.Exists().
2013-10-11 23:03:53 +02:00
Bertrand Lorentz
68780a6226 gio: Fix up returns type for several GSettings methods 2013-10-11 22:32:46 +02:00
Bertrand Lorentz
c83c196150 Merge pull request #73 from xDarkice/master
GLib.Object: Fix FindClassProperty method
2013-10-11 02:21:18 -07:00
Stephan Sundermann
f978c8f705 GLib.Object: Fixed FindClassProperty
g_object_class_find_property takes a GObjectClass which can be retrieved by
reading an IntPtr from the GObject's Handle
2013-10-11 11:13:08 +02:00
Bertrand Lorentz
9b9512a3ce generator: Remove unused variables in NativeStructGen 2013-10-10 23:47:12 +02:00
Bertrand Lorentz
741360020c generator: Remove unused variable in FieldBase class 2013-10-10 23:44:24 +02:00
Bertrand Lorentz
46068e7add generator: Remove unused field in Constant class 2013-10-10 23:43:55 +02:00
Bertrand Lorentz
57938c321e generator: Add missing copyright headers in files added by Stephan 2013-10-10 23:38:03 +02:00
Bertrand Lorentz
46cd80aea0 Merge pull request #72 from knocte/bindinator
glib: fix FindClassProperty()'s copy-paste error
2013-10-10 13:51:10 -07:00
Andrés G. Aragoneses
7d75adf68c glib: fix FindClassProperty()'s copy-paste error
The implementation of FindClassProperty() was the same as the
implementation of FindInterfaceProperty(), both receiving an iface
instead of a GObjectClass* [1].

The reason of this oversight can well be explained by the fact that
FindClassProperty() is private and not used, actually. However, we
may need it soonish as a good bind to g_object_class_find_property.

[1] https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-class-find-property
2013-10-10 20:25:23 +02:00
Bertrand Lorentz
5f8e0953cf gtk: Use native function for GtkTextIter.Equals(GtkTextIter)
As GtkTextIter has no public properties, the default generated Equals
implementation would be "return true;". We now suppress that and with a
fix-up now use the native gtk_text_iter_equal to implement the Equals
method.
2013-10-10 16:28:37 +02:00
Bertrand Lorentz
bc498ff650 generator: Add support for suppressing the Equals(T) method in structs
Similarly to what exists for GetHashCode, add a noequals attribute to
indicate we don't want the default Equals implementation.
2013-10-10 16:27:13 +02:00
Bertrand Lorentz
90e834327e Merge pull request #71 from knocte/bindinator
generator and glibsharp changes from bindinator's GSoC work
2013-10-10 06:03:35 -07:00
Stephan Sundermann
587f0f56e7 generator: NativeStructGen needs to be partial 2013-10-09 20:49:09 +02:00
Stephan Sundermann
50f07d17ad generator: removed redundant allocation 2013-10-09 20:48:24 +02:00
Stephan Sundermann
21c9c9ff8c generator: remove bitfields from Equals/GetHashCode 2013-10-09 20:47:26 +02:00
Stephan Sundermann
f6fef3a402 generator: fixed NativeStructGen's formatting 2013-10-09 20:44:28 +02:00
Stephan Sundermann
c5b04cb70e generator: fixed native struct parent 2013-10-09 20:43:44 +02:00
Stephan Sundermann
edc339baf5 generator: redundant method in NativeStructGen 2013-10-09 20:43:12 +02:00
Stephan Sundermann
0f79e9af06 generator: fixicate NativeStructGen
Made NativeStructGen more consistent with the way Gdk.Event
and Pango.Attribute are handled. Also increases performance
because reflection is not needed anymore to marshal these
kind of structs.
2013-10-09 20:42:03 +02:00
Stephan Sundermann
31e2c02e94 generator: public accessor in method overloads 2013-10-09 20:37:18 +02:00
Stephan Sundermann
53312d5fc0 generator: fixed optional array parameters 2013-10-09 20:35:02 +02:00
Stephan Sundermann
2152f4626e generator: use default value for optional generation 2013-10-09 20:30:14 +02:00
Stephan Sundermann
5f271e04fa generator: ignore private structs completely
Don't spam the log with these messages for private structs
(and don't count this in the statistics), as there are too
many. These kind of types are just empty structs marked as
hidden and private.
2013-10-09 20:28:38 +02:00
Stephan Sundermann
c3f7b8e32b generator: fixed optional array parameters 2013-10-09 20:05:03 +02:00
Stephan Sundermann
5eea00f705 generator: new --gapidir flag to search for xml files 2013-10-09 20:00:14 +02:00
Stephan Sundermann
f958b2247b generator: include api files from XML 2013-10-09 19:49:28 +02:00
Stephan Sundermann
b868b80dee glib,generator: map MainContext type and expose members
This is needed to reference a MainContext from
external bindings, which need to create a
MainContext using a Handle
2013-10-09 19:44:50 +02:00
Stephan Sundermann
6ab620d689 generator,glib: added GPollFD and GSource types
GSource type was already there (but was not mapped by
the generator yet) so then the autogenerated methods
have been added manually inside the class after the
custom methods.

Other Source-related class are also generated and added
(but not mapped in the SymbolTable) to glib.
2013-10-09 19:41:21 +02:00
Stephan Sundermann
139479036b generator: do not generate methods without (C)Name 2013-10-09 18:53:31 +02:00
Stephan Sundermann
e031a4ff18 generator: auto escape string constants 2013-10-09 18:51:38 +02:00
Stephan Sundermann
8b101d5525 glib: Mutex is actually opaque
This means that we're modifying the generated code that
we checked in, so then we increase the future TODO about
more information about what we need to fix later.

The changes to Cond are a consequence of the changes to
Mutex because the former uses the latter.
2013-10-09 18:44:04 +02:00
Stephan Sundermann
9abde602ec glib: add GDate, GDateTime
Add GDate and GDateTime classes to glib, and map
them in the generator's SymbolTable.

(The types TimeZone and TimeVal are also added because
the Date* types depend on them, but there is no need
to map them in the generator.)

Also move the TODOs of other auto-generated classes
to a single TODO in the Makefile
2013-10-09 18:30:10 +02:00
Stephan Sundermann
aaa41cd095 fixup: added copy-node metadata tag 2013-10-09 18:04:47 +02:00