vala r1710 - in trunk: . gobject vala vapi vapi/packages/gtk+-2.0 vapigen
- From: juergbi svn gnome org
- To: svn-commits-list gnome org
- Subject: vala r1710 - in trunk: . gobject vala vapi vapi/packages/gtk+-2.0 vapigen
- Date: Thu, 17 Jul 2008 09:40:38 +0000 (UTC)
Author: juergbi
Date: Thu Jul 17 09:40:37 2008
New Revision: 1710
URL: http://svn.gnome.org/viewvc/vala?rev=1710&view=rev
Log:
2008-07-17 JÃrg Billeter <j bitron ch>
* vala/valaformalparameter.vala:
* vala/valainterfacewriter.vala:
* gobject/valaccodeinvocationexpressionbinding.vala:
Support [CCode (type = "Foo")] for parameters,
based on patch by Daniel Svensson, fixes bug 543073
* vapigen/valagidlparser.vala:
Add support for ctype metadata attribute for parameters
* vapi/packages/gtk+-2.0/:
Fix gtk_menu_shell_append binding
* vapi/gtk+-2.0.vapi: regenerated
Modified:
trunk/ChangeLog
trunk/gobject/valaccodeinvocationexpressionbinding.vala
trunk/vala/valaformalparameter.vala
trunk/vala/valainterfacewriter.vala
trunk/vapi/gtk+-2.0.vapi
trunk/vapi/packages/gtk+-2.0/gtk+-2.0.metadata
trunk/vapigen/valagidlparser.vala
Modified: trunk/gobject/valaccodeinvocationexpressionbinding.vala
==============================================================================
--- trunk/gobject/valaccodeinvocationexpressionbinding.vala (original)
+++ trunk/gobject/valaccodeinvocationexpressionbinding.vala Thu Jul 17 09:40:37 2008
@@ -286,6 +286,10 @@
ccall_expr = ccomma;
}
+
+ if (param.ctype != null) {
+ cexpr = new CCodeCastExpression (cexpr, param.ctype);
+ }
}
arg_pos = codegen.get_param_pos (param.cparameter_position, ellipsis);
} else {
Modified: trunk/vala/valaformalparameter.vala
==============================================================================
--- trunk/vala/valaformalparameter.vala (original)
+++ trunk/vala/valaformalparameter.vala Thu Jul 17 09:40:37 2008
@@ -82,6 +82,11 @@
*/
public double cdelegate_target_parameter_position { get; set; }
+ /**
+ * Specifies the type of the parameter in the C function.
+ */
+ public string? ctype { get; set; }
+
private DataType _data_type;
/**
@@ -132,6 +137,9 @@
}
private void process_ccode_attribute (Attribute a) {
+ if (a.has_argument ("type")) {
+ ctype = a.get_string ("type");
+ }
if (a.has_argument ("array_length_pos")) {
carray_length_parameter_position = a.get_double ("array_length_pos");
}
Modified: trunk/vala/valainterfacewriter.vala
==============================================================================
--- trunk/vala/valainterfacewriter.vala (original)
+++ trunk/vala/valainterfacewriter.vala Thu Jul 17 09:40:37 2008
@@ -621,6 +621,10 @@
var ccode_params = new StringBuilder ();
var separator = "";
+ if (param.ctype != null) {
+ ccode_params.append_printf ("%stype = \"%s\"", separator, param.ctype);
+ separator = ", ";
+ }
if (!float_equal (param.carray_length_parameter_position, i + 0.1)) {
ccode_params.append_printf ("%sarray_length_pos = %g", separator, param.carray_length_parameter_position);
separator = ", ";
Modified: trunk/vapi/gtk+-2.0.vapi
==============================================================================
--- trunk/vapi/gtk+-2.0.vapi (original)
+++ trunk/vapi/gtk+-2.0.vapi Thu Jul 17 09:40:37 2008
@@ -3721,7 +3721,7 @@
public uint menu_flag;
public uint ignore_enter;
public void activate_item (Gtk.Widget menu_item, bool force_deactivate);
- public void append (Gtk.MenuItem child);
+ public void append ([CCode (type = "GtkWidget*")] Gtk.MenuItem child);
public void deselect ();
public bool get_take_focus ();
public void prepend (Gtk.Widget child);
Modified: trunk/vapi/packages/gtk+-2.0/gtk+-2.0.metadata
==============================================================================
--- trunk/vapi/packages/gtk+-2.0/gtk+-2.0.metadata (original)
+++ trunk/vapi/packages/gtk+-2.0/gtk+-2.0.metadata Thu Jul 17 09:40:37 2008
@@ -174,7 +174,7 @@
GtkMenuShell.children type_arguments="MenuItem" weak="0"
GtkMenuShell::cancel has_emitter="1"
GtkMenuShell::deactivate has_emitter="1"
-gtk_menu_shell_append.child type_name="MenuItem"
+gtk_menu_shell_append.child type_name="MenuItem" ctype="GtkWidget*"
gtk_message_dialog_new ellipsis="1"
gtk_message_dialog_new.parent nullable="1"
gtk_message_dialog_new_with_markup ellipsis="1"
Modified: trunk/vapigen/valagidlparser.vala
==============================================================================
--- trunk/vapigen/valagidlparser.vala (original)
+++ trunk/vapigen/valagidlparser.vala Thu Jul 17 09:40:37 2008
@@ -1474,6 +1474,8 @@
delegate_target_pos = eval (nv[1]).to_double ();
} else if (nv[0] == "type_name") {
((UnresolvedType) param_type).unresolved_symbol = new UnresolvedSymbol (null, eval (nv[1]));
+ } else if (nv[0] == "ctype") {
+ p.ctype = eval (nv[1]);
} else if (nv[0] == "type_arguments") {
var type_args = eval (nv[1]).split (",");
foreach (string type_arg in type_args) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]