2004-01-28 Mike Kestner <mkestner@ximian.com>

* gtk/gtk-api.xml : regen
	* parser/gapi2xml.pl : fix signals parsing where a STRUCT_OFFSET
	is not present in the signal_new call.
	* parser/gapi_pp.pl : ignore #ident lines.
	* vte/vte-api.xml : regen
	[Fixes #53189]

svn path=/trunk/gtk-sharp/; revision=22583
This commit is contained in:
Mike Kestner 2004-01-28 21:44:25 +00:00
parent 80257d2b9a
commit 0b41ef6a58
5 changed files with 155 additions and 76 deletions

View File

@ -1,3 +1,12 @@
2004-01-28 Mike Kestner <mkestner@ximian.com>
* gtk/gtk-api.xml : regen
* parser/gapi2xml.pl : fix signals parsing where a STRUCT_OFFSET
is not present in the signal_new call.
* parser/gapi_pp.pl : ignore #ident lines.
* vte/vte-api.xml : regen
[Fixes #53189]
2004-01-27 Mike Kestner <mkestner@ximian.com>
* gtk/SelectionData.custom : guard against null in get_Text.

View File

@ -1251,9 +1251,12 @@
<field cname="n_accels" type="guint" />
<field cname="priv_accels" type="GtkAccelGroupEntry*" />
<signal name="AccelActivate" cname="accel_activate">
<return-type type="GBoolean" />
<return-type type="gboolean" />
<parameters>
<parameter name="p0" type="GObject" />
<parameter name="inst" type="GtkAccelGroup*" />
<parameter name="p0" type="GObject*" />
<parameter name="p1" type="guint32" />
<parameter name="p2" type="GdkModifierType);" />
</parameters>
</signal>
<signal name="AccelChanged" cname="accel_changed" when="FIRST">
@ -4485,12 +4488,6 @@
<field cname="lower_arrow_visible" bits="1" type="guint" />
<field cname="upper_arrow_prelight" bits="1" type="guint" />
<field cname="lower_arrow_prelight" bits="1" type="guint" />
<signal name="MoveScroll" cname="move_scroll" when="LAST">
<return-type type="GNone" />
<parameters>
<parameter name="p0" type="GtkScrollType);" />
</parameters>
</signal>
<property name="TearoffTitle" cname="tearoff-title" type="gchar*" readable="true" writeable="true" />
<method name="AttachToWidget" cname="gtk_menu_attach_to_widget">
<return-type type="void" />
@ -4733,12 +4730,6 @@
<parameter type="GtkMenuShell*" name="menu_shell" />
</parameters>
</signal>
<signal name="CycleFocus" cname="cycle_focus" when="LAST">
<return-type type="GNone" />
<parameters>
<parameter name="p0" type="GtkDirectionType);" />
</parameters>
</signal>
<method name="ActivateItem" cname="gtk_menu_shell_activate_item">
<return-type type="void" />
<parameters>
@ -7549,12 +7540,6 @@
<parameter type="GtkMenu*" name="menu" />
</parameters>
</signal>
<signal name="SelectAll" cname="select_all" when="LAST">
<return-type type="GNone" />
<parameters>
<parameter name="p0" type="GBoolean" />
</parameters>
</signal>
<method name="AddChildAtAnchor" cname="gtk_text_view_add_child_at_anchor">
<return-type type="void" />
<parameters>
@ -9581,9 +9566,10 @@
</parameters>
</signal>
<signal name="EventAfter" cname="event-after">
<return-type type="GNone" />
<return-type type="void" />
<parameters>
<parameter name="p0" type="GdkEvent|gSignalTypeStaticScope);" />
<parameter name="inst" type="GtkWidget*" />
<parameter name="p0" type="GdkEvent);" />
</parameters>
</signal>
<signal name="ButtonPressEvent" cname="button_press_event" when="LAST">
@ -9870,9 +9856,9 @@
</parameters>
</signal>
<signal name="AccelClosuresChanged" cname="accel_closures_changed">
<return-type type="GNone" />
<return-type type="void" />
<parameters>
<parameter name="p0" type="" />
<parameter name="inst" type="GtkWidget*" />
</parameters>
</signal>
<signal name="ScreenChanged" cname="screen_changed" when="LAST">

View File

@ -70,7 +70,7 @@ while ($line = <STDIN>) {
$types{$3} = $1 . $2;
} elsif ($line =~ /typedef\s+enum\s+(\w+)\s+(\w+);/) {
$etypes{$1} = $2;
} elsif ($line =~ /(typedef\s+)?\benum\b/) {
} elsif ($line =~ /^(typedef\s+)?\benum\b/) {
$edef = $line;
while ($line = <STDIN>) {
$edef .= $line;
@ -147,16 +147,25 @@ while ($line = <STDIN>) {
if ($fdef !~ /^_/) {
$fdefs{$fname} = $fdef;
}
} elsif ($line =~ /G_TYPE_CHECK_(\w+)_CAST.*,\s*(\w+),\s*(\w+)/) {
if ($1 eq "INSTANCE") {
$objects{$2} = $3 . $objects{$2};
} else {
$objects{$2} .= ":$3";
} elsif ($line =~ /CHECK_(\w*)CAST/) {
$cast_macro = $line;
while ($line =~ /\\$/) {
$line = <STDIN>;
$cast_macro .= $line;
}
$cast_macro =~ s/\\\n\s*//g;
$cast_macro =~ s/\s+/ /g;
if ($cast_macro =~ /G_TYPE_CHECK_(\w+)_CAST.*,\s*(\w+),\s*(\w+)/) {
if ($1 eq "INSTANCE") {
$objects{$2} = $3 . $objects{$2};
} else {
$objects{$2} .= ":$3";
}
} elsif ($cast_macro =~ /GTK_CHECK_CAST.*,\s*(\w+),\s*(\w+)/) {
$objects{$1} = $2 . $objects{$1};
} elsif ($cast_macro =~ /GTK_CHECK_CLASS_CAST.*,\s*(\w+),\s*(\w+)/) {
$objects{$1} .= ":$2";
}
} elsif ($line =~ /GTK_CHECK_CAST.*,\s*(\w+),\s*(\w+)/) {
$objects{$1} = $2 . $objects{$1};
} elsif ($line =~ /GTK_CHECK_CLASS_CAST.*,\s*(\w+),\s*(\w+)/) {
$objects{$1} .= ":$2";
} elsif ($line =~ /INSTANCE_GET_INTERFACE.*,\s*(\w+),\s*(\w+)/) {
$ifaces{$1} = $2;
} elsif ($line =~ /^BUILTIN\s*\{\s*\"(\w+)\".*GTK_TYPE_BOXED/) {
@ -300,7 +309,9 @@ foreach $type (sort(keys(%objects))) {
# Extract parent and fields from the struct
if ($instdef =~ /^struct/) {
$instdef =~ /\{(.*)\}/;
@fields = split(/;/, $1);
$fieldstr = $1;
$fieldstr =~ s|/\*.*?\*/||g;
@fields = split(/;/, $fieldstr);
$fields[0] =~ /(\w+)/;
$obj_el->setAttribute('parent', "$1");
addFieldElems($obj_el, @fields[1..$#fields]);
@ -446,7 +457,7 @@ sub addFieldElems
addReturnElem($elem, $1);
addParamsElem($elem, $3);
} elsif ($field =~ /(unsigned )?(\S+)\s+(.+)/) {
$type = $1 . $2; $symb = $3;
my $type = $1 . $2; $symb = $3;
foreach $tok (split (/,\s*/, $symb)) {
if ($tok =~ /(\w+)\s*\[(.*)\]/) {
$elem = addNameElem($parent, 'field', $1);
@ -762,6 +773,35 @@ sub addPropElem
$prop_elem->setAttribute('construct-only', "true") if ($mode =~ /CONS/);
}
sub parseTypeToken
{
my ($tok) = @_;
if ($tok =~ /G_TYPE_(\w+)/) {
my $type = $1;
if ($type eq "NONE") {
return "void";
} elsif ($type eq "INT") {
return "gint32";
} elsif ($type eq "UINT") {
return "guint32";
} elsif ($type eq "ENUM" || $type eq "FLAGS") {
return "gint32";
} elsif ($type eq "STRING") {
return "gchar*";
} elsif ($type eq "OBJECT") {
return "GObject*";
} else {
return "g" . lc ($type);
}
} else {
$tok =~ s/_TYPE//;
$tok =~ s/\|.*STATIC_SCOPE//;
$tok =~ s/\s+//g;
return StudlyCaps (lc($tok));
}
}
sub addSignalElem
{
my ($spec, $class, $node) = @_;
@ -782,21 +822,22 @@ sub addSignalElem
$method = $1;
} else {
@args = split(/,/, $spec);
$args[7] =~ s/_TYPE//; $args[7] =~ s/\s+//g;
addReturnElem($sig_elem, StudlyCaps(lc($args[7])));
$parmcnt = ($args[8] =~ /\d+/);
if ($parmcnt > 0) {
$parms_elem = $doc->createElement('parameters');
$sig_elem->appendChild($parms_elem);
for (my $idx = 0; $idx < $parmcnt; $idx++) {
$arg = $args[9+$idx];
$arg =~ s/_TYPE//; $arg =~ s/\s+//g;
$arg = StudlyCaps(lc($arg));
$parm_elem = $doc->createElement('parameter');
$parms_elem->appendChild($parm_elem);
$parm_elem->setAttribute('name', "p$idx");
$parm_elem->setAttribute('type', $arg);
}
my $rettype = parseTypeToken ($args[7]);
addReturnElem($sig_elem, $rettype);
$parmcnt = $args[8];
$parmcnt =~ s/.*(\d+).*/\1/;
$parms_elem = $doc->createElement('parameters');
$sig_elem->appendChild($parms_elem);
$parm_elem = $doc->createElement('parameter');
$parms_elem->appendChild($parm_elem);
$parm_elem->setAttribute('name', "inst");
$parm_elem->setAttribute('type', "$inst*");
for (my $idx = 0; $idx < $parmcnt; $idx++) {
my $argtype = parseTypeToken ($args[9+$idx]);
$parm_elem = $doc->createElement('parameter');
$parms_elem->appendChild($parm_elem);
$parm_elem->setAttribute('name', "p$idx");
$parm_elem->setAttribute('type', $argtype);
}
return;
}
@ -846,7 +887,7 @@ sub parseInitFunc
} until ($init_lines[$linenum] =~ /\)\s*;/);
addPropElem ($prop, $obj_el);
$propcnt++;
} elsif ($line =~ /g(tk)?_signal_new/) {
} elsif ($line =~ /\bg.*_signal_new/) {
my $sig = $line;
do {
$sig .= $init_lines[++$linenum];

View File

@ -11,7 +11,7 @@
# <c> 2003 Novell, Inc.
$eatit_regex = "^#if.*(__cplusplus|DEBUG|DISABLE_(DEPRECATED|COMPAT)|ENABLE_BROKEN|COMPILATION)";
$ignoreit_regex = '^\s+\*|#\s*include|#\s*else|#\s*endif|#\s*undef|G_(BEGIN|END)_DECLS|extern|GDKVAR|GTKVAR|GTKMAIN_C_VAR|GTKTYPEUTILS_VAR|VARIABLE|GTKTYPEBUILTIN';
$ignoreit_regex = '^\s+\*|#ident|#\s*include|#\s*else|#\s*endif|#\s*undef|G_(BEGIN|END)_DECLS|extern|GDKVAR|GTKVAR|GTKMAIN_C_VAR|GTKTYPEUTILS_VAR|VARIABLE|GTKTYPEBUILTIN';
foreach $arg (@ARGV) {
if (-d $arg && -e $arg) {

View File

@ -33,6 +33,14 @@
<member cname="VTE_ERASE_ASCII_DELETE" name="AsciiDelete" />
<member cname="VTE_ERASE_DELETE_SEQUENCE" name="DeleteSequence" />
</enum>
<enum name="VteGlyphFlags" cname="vte_glyph_flags" type="flags">
<member cname="vte_glyph_bold" name="Bold" value="1 &lt;&lt; 0" />
<member cname="vte_glyph_dim" name="Dim" value="1 &lt;&lt; 1" />
<member cname="vte_glyph_underline" name="Underline" value="1 &lt;&lt; 2" />
<member cname="vte_glyph_underline2" name="Underline2" value="1 &lt;&lt; 3" />
<member cname="vte_glyph_strikethrough" name="Strikethrough" value="1 &lt;&lt; 4" />
<member cname="vte_glyph_boxed" name="Boxed" value="1 &lt;&lt; 5" />
</enum>
<callback name="RingFreeFunc" cname="VteRingFreeFunc">
<return-type type="void" />
<parameters>
@ -47,21 +55,46 @@
<signal name="RootPixmapChanged" cname="root-pixmap-changed" when="LAST">
<return-type type="void" />
<parameters>
<parameter name="p0" type="VteBg*" />
<parameter name="inst" type="VteBg*" />
</parameters>
</signal>
<method name="Get" cname="vte_bg_get" shared="true">
<return-type type="VteBg*" />
</method>
<method name="GetPixbuf" cname="vte_bg_get_pixbuf">
<return-type type="GdkPixbuf*" />
<parameters>
<parameter type="enum" name="VteBgSourceType" />
<parameter type="GdkPixbuf*" name="source_pixbuf" />
<parameter type="const-char*" name="source_file" />
<parameter type="const-GdkColor*" name="tint" />
<parameter type="double" name="saturation" />
</parameters>
</method>
<method name="GetPixmap" cname="vte_bg_get_pixmap">
<return-type type="GdkPixmap*" />
<parameters>
<parameter type="enum" name="VteBgSourceType" />
<parameter type="GdkPixbuf*" name="source_pixbuf" />
<parameter type="const-char*" name="source_file" />
<parameter type="const-GdkColor*" name="tint" />
<parameter type="double" name="saturation" />
<parameter type="GdkColormap*" name="colormap" />
</parameters>
</method>
<method name="GetType" cname="vte_bg_get_type" shared="true">
<return-type type="GType" />
</method>
</object>
<object name="Reaper" cname="VteReaper" parent="GObject">
<field cname="channel" type="GIOChannel*" />
<field cname="iopipe" array_len="2" type="int" />
<signal name="ChildExited" cname="child-exited" when="LAST">
<return-type type="void" />
<parameters>
<parameter name="inst" type="VteReaper*" />
<parameter name="p0" type="VteReaper*" />
<parameter name="p1" type="gint32" />
</parameters>
</signal>
<method name="Get" cname="vte_reaper_get" shared="true">
@ -85,162 +118,171 @@
<signal name="Eof" cname="eof" when="LAST">
<return-type type="void" />
<parameters>
<parameter name="p0" type="VteTerminal*" />
<parameter name="inst" type="VteTerminal*" />
</parameters>
</signal>
<signal name="ChildExited" cname="child-exited" when="LAST">
<return-type type="void" />
<parameters>
<parameter name="p0" type="VteTerminal*" />
<parameter name="inst" type="VteTerminal*" />
</parameters>
</signal>
<signal name="WindowTitleChanged" cname="window-title-changed" when="LAST">
<return-type type="void" />
<parameters>
<parameter name="p0" type="VteTerminal*" />
<parameter name="inst" type="VteTerminal*" />
</parameters>
</signal>
<signal name="IconTitleChanged" cname="icon-title-changed" when="LAST">
<return-type type="void" />
<parameters>
<parameter name="p0" type="VteTerminal*" />
<parameter name="inst" type="VteTerminal*" />
</parameters>
</signal>
<signal name="EncodingChanged" cname="encoding-changed" when="LAST">
<return-type type="void" />
<parameters>
<parameter name="p0" type="VteTerminal*" />
<parameter name="inst" type="VteTerminal*" />
</parameters>
</signal>
<signal name="Commit" cname="commit" when="LAST">
<return-type type="void" />
<parameters>
<parameter name="inst" type="VteTerminal*" />
<parameter name="p0" type="VteTerminal*" />
<parameter name="p1" type="guint32" />
</parameters>
</signal>
<signal name="EmulationChanged" cname="emulation-changed" when="LAST">
<return-type type="void" />
<parameters>
<parameter name="p0" type="VteTerminal*" />
<parameter name="inst" type="VteTerminal*" />
</parameters>
</signal>
<signal name="CharSizeChanged" cname="char-size-changed" when="LAST">
<return-type type="void" />
<parameters>
<parameter name="inst" type="VteTerminal*" />
<parameter name="p0" type="VteTerminal*" />
<parameter name="p1" type="guint32" />
</parameters>
</signal>
<signal name="SelectionChanged" cname="selection-changed" when="LAST">
<return-type type="void" />
<parameters>
<parameter name="p0" type="VteTerminal*" />
<parameter name="inst" type="VteTerminal*" />
</parameters>
</signal>
<signal name="ContentsChanged" cname="contents-changed" when="LAST">
<return-type type="void" />
<parameters>
<parameter name="p0" type="VteTerminal*" />
<parameter name="inst" type="VteTerminal*" />
</parameters>
</signal>
<signal name="CursorMoved" cname="cursor-moved" when="LAST">
<return-type type="void" />
<parameters>
<parameter name="p0" type="VteTerminal*" />
<parameter name="inst" type="VteTerminal*" />
</parameters>
</signal>
<signal name="DeiconifyWindow" cname="deiconify-window" when="LAST">
<return-type type="void" />
<parameters>
<parameter name="p0" type="VteTerminal*" />
<parameter name="inst" type="VteTerminal*" />
</parameters>
</signal>
<signal name="IconifyWindow" cname="iconify-window" when="LAST">
<return-type type="void" />
<parameters>
<parameter name="p0" type="VteTerminal*" />
<parameter name="inst" type="VteTerminal*" />
</parameters>
</signal>
<signal name="RaiseWindow" cname="raise-window" when="LAST">
<return-type type="void" />
<parameters>
<parameter name="p0" type="VteTerminal*" />
<parameter name="inst" type="VteTerminal*" />
</parameters>
</signal>
<signal name="LowerWindow" cname="lower-window" when="LAST">
<return-type type="void" />
<parameters>
<parameter name="p0" type="VteTerminal*" />
<parameter name="inst" type="VteTerminal*" />
</parameters>
</signal>
<signal name="RefreshWindow" cname="refresh-window" when="LAST">
<return-type type="void" />
<parameters>
<parameter name="p0" type="VteTerminal*" />
<parameter name="inst" type="VteTerminal*" />
</parameters>
</signal>
<signal name="RestoreWindow" cname="restore-window" when="LAST">
<return-type type="void" />
<parameters>
<parameter name="p0" type="VteTerminal*" />
<parameter name="inst" type="VteTerminal*" />
</parameters>
</signal>
<signal name="MaximizeWindow" cname="maximize-window" when="LAST">
<return-type type="void" />
<parameters>
<parameter name="p0" type="VteTerminal*" />
<parameter name="inst" type="VteTerminal*" />
</parameters>
</signal>
<signal name="ResizeWindow" cname="resize-window" when="LAST">
<return-type type="void" />
<parameters>
<parameter name="inst" type="VteTerminal*" />
<parameter name="p0" type="VteTerminal*" />
<parameter name="p1" type="guint32" />
</parameters>
</signal>
<signal name="MoveWindow" cname="move-window" when="LAST">
<return-type type="void" />
<parameters>
<parameter name="inst" type="VteTerminal*" />
<parameter name="p0" type="VteTerminal*" />
<parameter name="p1" type="guint32" />
</parameters>
</signal>
<signal name="StatusLineChanged" cname="status-line-changed" when="LAST">
<return-type type="void" />
<parameters>
<parameter name="p0" type="VteTerminal*" />
<parameter name="inst" type="VteTerminal*" />
</parameters>
</signal>
<signal name="IncreaseFontSize" cname="increase-font-size" when="LAST">
<return-type type="void" />
<parameters>
<parameter name="p0" type="VteTerminal*" />
<parameter name="inst" type="VteTerminal*" />
</parameters>
</signal>
<signal name="DecreaseFontSize" cname="decrease-font-size" when="LAST">
<return-type type="void" />
<parameters>
<parameter name="p0" type="VteTerminal*" />
<parameter name="inst" type="VteTerminal*" />
</parameters>
</signal>
<signal name="TextModified" cname="text-modified" when="LAST">
<return-type type="void" />
<parameters>
<parameter name="p0" type="VteTerminal*" />
<parameter name="inst" type="VteTerminal*" />
</parameters>
</signal>
<signal name="TextInserted" cname="text-inserted" when="LAST">
<return-type type="void" />
<parameters>
<parameter name="p0" type="VteTerminal*" />
<parameter name="inst" type="VteTerminal*" />
</parameters>
</signal>
<signal name="TextDeleted" cname="text-deleted" when="LAST">
<return-type type="void" />
<parameters>
<parameter name="p0" type="VteTerminal*" />
<parameter name="inst" type="VteTerminal*" />
</parameters>
</signal>
<signal name="TextScrolled" cname="text-scrolled" when="LAST">
<return-type type="void" />
<parameters>
<parameter name="inst" type="VteTerminal*" />
<parameter name="p0" type="VteTerminal*" />
</parameters>
</signal>
@ -639,5 +681,6 @@
<field cname="length" type="glong" />
<field cname="max" type="glong" />
</struct>
<struct name="Conv" cname="VteConv" opaque="true" />
</namespace>
</api>