mirror of
https://github.com/Ryujinx/GtkSharp.git
synced 2025-01-09 00:45:41 +00:00
2002-07-17 Radek Doulik <rodo@ximian.com>
* gtk/ScrolledWindow.custom: new file with ScrolledWindow custom default constructor * parser/Metadata.pm: addClassData subroutine to add <disabledefaultconstructor/> * parser/Gtk.metadata: disable default constructor for ScrolledWindow * generator/ObjectGen.cs: added hasDefaultConstructor flag, dont generate default protected empty constructor if hasDefaultConstructor is false, it will be provided by .custom file * generator/makefile (RUNTIME): use RUNTIME variable svn path=/trunk/gtk-sharp/; revision=5854
This commit is contained in:
parent
9e29ccbf0a
commit
33b715ef83
18
ChangeLog
18
ChangeLog
|
@ -1,3 +1,21 @@
|
||||||
|
2002-07-17 Radek Doulik <rodo@ximian.com>
|
||||||
|
|
||||||
|
* gtk/ScrolledWindow.custom: new file with ScrolledWindow custom
|
||||||
|
default constructor
|
||||||
|
|
||||||
|
* parser/Metadata.pm: addClassData subroutine to add
|
||||||
|
<disabledefaultconstructor/>
|
||||||
|
|
||||||
|
* parser/Gtk.metadata: disable default constructor for
|
||||||
|
ScrolledWindow
|
||||||
|
|
||||||
|
* generator/ObjectGen.cs: added hasDefaultConstructor flag, dont
|
||||||
|
generate default protected empty constructor if
|
||||||
|
hasDefaultConstructor is false, it will be provided by .custom
|
||||||
|
file
|
||||||
|
|
||||||
|
* generator/makefile (RUNTIME): use RUNTIME variable
|
||||||
|
|
||||||
2002-07-17 Rachel Hestilow <hestilow@ximian.com>
|
2002-07-17 Rachel Hestilow <hestilow@ximian.com>
|
||||||
|
|
||||||
* parser/Gtk.metadata: Tag MenuItem.SetSubmenu as null-ok.
|
* parser/Gtk.metadata: Tag MenuItem.SetSubmenu as null-ok.
|
||||||
|
|
|
@ -15,6 +15,7 @@ namespace GtkSharp.Generation {
|
||||||
|
|
||||||
private ArrayList ctors = new ArrayList();
|
private ArrayList ctors = new ArrayList();
|
||||||
private ArrayList strings = new ArrayList();
|
private ArrayList strings = new ArrayList();
|
||||||
|
private bool hasDefaultConstructor = true;
|
||||||
private bool ctors_initted = false;
|
private bool ctors_initted = false;
|
||||||
private Hashtable clash_map;
|
private Hashtable clash_map;
|
||||||
|
|
||||||
|
@ -34,6 +35,10 @@ namespace GtkSharp.Generation {
|
||||||
case "constructor":
|
case "constructor":
|
||||||
ctors.Add (new Ctor (LibraryName, member, this));
|
ctors.Add (new Ctor (LibraryName, member, this));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case "disabledefaultconstructor":
|
||||||
|
hasDefaultConstructor = false;
|
||||||
|
break;
|
||||||
|
|
||||||
case "static-string":
|
case "static-string":
|
||||||
strings.Add (node);
|
strings.Add (node);
|
||||||
|
@ -218,7 +223,7 @@ namespace GtkSharp.Generation {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!clash_map.ContainsKey("")) {
|
if (!clash_map.ContainsKey("") && hasDefaultConstructor) {
|
||||||
sw.WriteLine("\t\tprotected " + Name + "() : base(){}");
|
sw.WriteLine("\t\tprotected " + Name + "() : base(){}");
|
||||||
sw.WriteLine();
|
sw.WriteLine();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
MCS=mcs
|
MCS=mcs
|
||||||
|
RUNTIME=mono
|
||||||
|
|
||||||
all: linux
|
all: linux
|
||||||
|
|
||||||
|
@ -9,7 +10,7 @@ windows: *.cs
|
||||||
linux: generated-stamp
|
linux: generated-stamp
|
||||||
|
|
||||||
generated-stamp: codegen.exe gtkapi.xml
|
generated-stamp: codegen.exe gtkapi.xml
|
||||||
mono ./codegen.exe gtkapi.xml && touch generated-stamp
|
$(RUNTIME) ./codegen.exe gtkapi.xml && touch generated-stamp
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *.exe
|
rm -f *.exe
|
||||||
|
|
13
gtk/ScrolledWindow.custom
Normal file
13
gtk/ScrolledWindow.custom
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
//
|
||||||
|
// Gtk.ScrolledWindow.custom - Gtk ScrolledWindow class customizations
|
||||||
|
//
|
||||||
|
// Author: Radek Doulik (rodo@ximian.com)
|
||||||
|
//
|
||||||
|
// Copyright (C) 2002 Ximian, Inc.
|
||||||
|
//
|
||||||
|
// This code is inserted after the automatically generated code.
|
||||||
|
//
|
||||||
|
|
||||||
|
public ScrolledWindow () : this (new Adjustment (IntPtr.Zero), new Adjustment (IntPtr.Zero)) {
|
||||||
|
SetPolicy (PolicyType.Automatic, PolicyType.Automatic);
|
||||||
|
}
|
|
@ -80,7 +80,7 @@ sub load {
|
||||||
@data = parseData ($node);
|
@data = parseData ($node);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
push @{$self->{rules}}, [\%classes, \@data];
|
push @{$self->{rules}}, [\%classes, \@data];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -127,8 +127,25 @@ sub fixupParams {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub addClassData {
|
||||||
|
my ($doc, $node, $class, $data_list_ref) = @_;
|
||||||
|
|
||||||
|
foreach $data (@$data_list_ref) {
|
||||||
|
if ($$data[1] eq "class") {
|
||||||
|
my @nodes = $node->getChildrenByTagName ($$data[5]);
|
||||||
|
|
||||||
|
if (0 == scalar @nodes) {
|
||||||
|
print STDERR "DEBUG> $class $$data[0] $$data[1] $$data[2] $$data[3] $$data[4] $$data[5] $$data[6]\n";
|
||||||
|
my $new_node = $doc->createElement ($$data[5]);
|
||||||
|
$node->appendChild ($new_node);
|
||||||
|
}
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
sub fixupNamespace {
|
sub fixupNamespace {
|
||||||
my ($self, $ns_node) = @_;
|
my ($self, $doc, $ns_node) = @_;
|
||||||
my $node;
|
my $node;
|
||||||
foreach $rule (@{$self->{rules}}) {
|
foreach $rule (@{$self->{rules}}) {
|
||||||
my ($classes_ref, $data_list_ref) = @$rule;
|
my ($classes_ref, $data_list_ref) = @$rule;
|
||||||
|
@ -145,6 +162,11 @@ sub fixupNamespace {
|
||||||
my %classes = %$classes_ref;
|
my %classes = %$classes_ref;
|
||||||
$methods_ref = $classes{$class}[0];
|
$methods_ref = $classes{$class}[0];
|
||||||
$signals_ref = $classes{$class}[1];
|
$signals_ref = $classes{$class}[1];
|
||||||
|
|
||||||
|
if ({%$classes_ref}->{$class}) {
|
||||||
|
addClassData ($doc, $node, $class, $data_list_ref);
|
||||||
|
}
|
||||||
|
|
||||||
next if not ($methods_ref or $signals_ref);
|
next if not ($methods_ref or $signals_ref);
|
||||||
|
|
||||||
for ($method_node = $node->firstChild; $method_node; $method_node = $method_node->nextSibling ()) {
|
for ($method_node = $node->firstChild; $method_node; $method_node = $method_node->nextSibling ()) {
|
||||||
|
@ -196,7 +218,7 @@ sub fixup {
|
||||||
if (not ($metadata and $metadata->{namespace} eq $namespace)) {
|
if (not ($metadata and $metadata->{namespace} eq $namespace)) {
|
||||||
$metadata = new Metadata ($namespace);
|
$metadata = new Metadata ($namespace);
|
||||||
}
|
}
|
||||||
$metadata->fixupNamespace ($ns_node);
|
$metadata->fixupNamespace ($doc, $ns_node);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1188,6 +1188,16 @@
|
||||||
</data>
|
</data>
|
||||||
</rule>
|
</rule>
|
||||||
|
|
||||||
|
<!-- disable default constructor -->
|
||||||
|
<rule>
|
||||||
|
<class name="GtkScrolledWindow"/>
|
||||||
|
<data>
|
||||||
|
<attribute target="class">
|
||||||
|
<name>disabledefaultconstructor</name>
|
||||||
|
</attribute>
|
||||||
|
</data>
|
||||||
|
</rule>
|
||||||
|
|
||||||
<!-- null args -->
|
<!-- null args -->
|
||||||
<rule>
|
<rule>
|
||||||
<class name="GtkCList">
|
<class name="GtkCList">
|
||||||
|
|
|
@ -80,7 +80,7 @@ sub load {
|
||||||
@data = parseData ($node);
|
@data = parseData ($node);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
push @{$self->{rules}}, [\%classes, \@data];
|
push @{$self->{rules}}, [\%classes, \@data];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -127,8 +127,25 @@ sub fixupParams {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub addClassData {
|
||||||
|
my ($doc, $node, $class, $data_list_ref) = @_;
|
||||||
|
|
||||||
|
foreach $data (@$data_list_ref) {
|
||||||
|
if ($$data[1] eq "class") {
|
||||||
|
my @nodes = $node->getChildrenByTagName ($$data[5]);
|
||||||
|
|
||||||
|
if (0 == scalar @nodes) {
|
||||||
|
print STDERR "DEBUG> $class $$data[0] $$data[1] $$data[2] $$data[3] $$data[4] $$data[5] $$data[6]\n";
|
||||||
|
my $new_node = $doc->createElement ($$data[5]);
|
||||||
|
$node->appendChild ($new_node);
|
||||||
|
}
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
sub fixupNamespace {
|
sub fixupNamespace {
|
||||||
my ($self, $ns_node) = @_;
|
my ($self, $doc, $ns_node) = @_;
|
||||||
my $node;
|
my $node;
|
||||||
foreach $rule (@{$self->{rules}}) {
|
foreach $rule (@{$self->{rules}}) {
|
||||||
my ($classes_ref, $data_list_ref) = @$rule;
|
my ($classes_ref, $data_list_ref) = @$rule;
|
||||||
|
@ -145,6 +162,11 @@ sub fixupNamespace {
|
||||||
my %classes = %$classes_ref;
|
my %classes = %$classes_ref;
|
||||||
$methods_ref = $classes{$class}[0];
|
$methods_ref = $classes{$class}[0];
|
||||||
$signals_ref = $classes{$class}[1];
|
$signals_ref = $classes{$class}[1];
|
||||||
|
|
||||||
|
if ({%$classes_ref}->{$class}) {
|
||||||
|
addClassData ($doc, $node, $class, $data_list_ref);
|
||||||
|
}
|
||||||
|
|
||||||
next if not ($methods_ref or $signals_ref);
|
next if not ($methods_ref or $signals_ref);
|
||||||
|
|
||||||
for ($method_node = $node->firstChild; $method_node; $method_node = $method_node->nextSibling ()) {
|
for ($method_node = $node->firstChild; $method_node; $method_node = $method_node->nextSibling ()) {
|
||||||
|
@ -196,7 +218,7 @@ sub fixup {
|
||||||
if (not ($metadata and $metadata->{namespace} eq $namespace)) {
|
if (not ($metadata and $metadata->{namespace} eq $namespace)) {
|
||||||
$metadata = new Metadata ($namespace);
|
$metadata = new Metadata ($namespace);
|
||||||
}
|
}
|
||||||
$metadata->fixupNamespace ($ns_node);
|
$metadata->fixupNamespace ($doc, $ns_node);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1188,6 +1188,16 @@
|
||||||
</data>
|
</data>
|
||||||
</rule>
|
</rule>
|
||||||
|
|
||||||
|
<!-- disable default constructor -->
|
||||||
|
<rule>
|
||||||
|
<class name="GtkScrolledWindow"/>
|
||||||
|
<data>
|
||||||
|
<attribute target="class">
|
||||||
|
<name>disabledefaultconstructor</name>
|
||||||
|
</attribute>
|
||||||
|
</data>
|
||||||
|
</rule>
|
||||||
|
|
||||||
<!-- null args -->
|
<!-- null args -->
|
||||||
<rule>
|
<rule>
|
||||||
<class name="GtkCList">
|
<class name="GtkCList">
|
||||||
|
|
Loading…
Reference in a new issue