* generator/Method.cs: Methods which returns void and has a single out parameter
like void Foobar (..., out int baz, ...) are turned into the more .NET like signature int Foobar (...), this fixes bug 46392 * generator/Signature.cs: Ditto * generator/MethodBody.cs: Ditto * gtk/ListStore.custom: Ditto * gtk/TextBuffer.custom: Ditto * gtk/TreeStore.custom: Ditto svn path=/trunk/gtk-sharp/; revision=22126
This commit is contained in:
parent
80a630a8a4
commit
c2d4c12e67
7 changed files with 87 additions and 14 deletions
11
ChangeLog
11
ChangeLog
|
@ -1,3 +1,14 @@
|
||||||
|
2004-01-15 Martin Willemoes Hansen <mwh@sysrq.dk>
|
||||||
|
|
||||||
|
* generator/Method.cs: Methods which returns void and has a single out parameter
|
||||||
|
like void Foobar (..., out int baz, ...) are turned into the more .NET like
|
||||||
|
signature int Foobar (...), this fixes bug 46392
|
||||||
|
* generator/Signature.cs: Ditto
|
||||||
|
* generator/MethodBody.cs: Ditto
|
||||||
|
* gtk/ListStore.custom: Ditto
|
||||||
|
* gtk/TextBuffer.custom: Ditto
|
||||||
|
* gtk/TreeStore.custom: Ditto
|
||||||
|
|
||||||
2004-01-13 Tambet Ingo <tambet@ximian.com>
|
2004-01-13 Tambet Ingo <tambet@ximian.com>
|
||||||
|
|
||||||
* gtk-sharp.pc.in : add libdir var
|
* gtk-sharp.pc.in : add libdir var
|
||||||
|
|
|
@ -220,6 +220,8 @@ namespace GtkSharp.Generation {
|
||||||
else
|
else
|
||||||
sw.Write (Name);
|
sw.Write (Name);
|
||||||
sw.WriteLine(" { ");
|
sw.WriteLine(" { ");
|
||||||
|
} else if (IsAccessor) {
|
||||||
|
sw.Write (sig.AccessorType + " " + Name + "(" + sig.AsAccessor + ")");
|
||||||
} else {
|
} else {
|
||||||
sw.Write(s_ret + " " + Name + "(" + (sig != null ? sig.ToString() : "") + ")");
|
sw.Write(s_ret + " " + Name + "(" + (sig != null ? sig.ToString() : "") + ")");
|
||||||
}
|
}
|
||||||
|
@ -342,6 +344,8 @@ namespace GtkSharp.Generation {
|
||||||
{
|
{
|
||||||
StreamWriter sw = gen_info.Writer;
|
StreamWriter sw = gen_info.Writer;
|
||||||
sw.WriteLine(" {");
|
sw.WriteLine(" {");
|
||||||
|
if (IsAccessor)
|
||||||
|
body.InitAccessor (sw, sig, indent);
|
||||||
body.Initialize(gen_info, is_get, is_set, indent);
|
body.Initialize(gen_info, is_get, is_set, indent);
|
||||||
|
|
||||||
SymbolTable table = SymbolTable.Table;
|
SymbolTable table = SymbolTable.Table;
|
||||||
|
@ -366,7 +370,7 @@ namespace GtkSharp.Generation {
|
||||||
sw.WriteLine(s_ret + " ret = " + table.FromNativeReturn(rettype, raw_parms) + ";");
|
sw.WriteLine(s_ret + " ret = " + table.FromNativeReturn(rettype, raw_parms) + ";");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
body.Finish (sw, indent);
|
body.Finish (sw, indent);
|
||||||
body.HandleException (sw, indent);
|
body.HandleException (sw, indent);
|
||||||
|
|
||||||
|
@ -374,9 +378,17 @@ namespace GtkSharp.Generation {
|
||||||
sw.WriteLine (indent + "\t\t\treturn " + parms.AccessorName + ";");
|
sw.WriteLine (indent + "\t\t\treturn " + parms.AccessorName + ";");
|
||||||
else if (m_ret != "void")
|
else if (m_ret != "void")
|
||||||
sw.WriteLine (indent + "\t\t\treturn ret;");
|
sw.WriteLine (indent + "\t\t\treturn ret;");
|
||||||
|
else if (IsAccessor)
|
||||||
|
body.FinishAccessor (sw, sig, indent);
|
||||||
|
|
||||||
sw.Write(indent + "\t\t}");
|
sw.Write(indent + "\t\t}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool IsAccessor {
|
||||||
|
get {
|
||||||
|
return s_ret == "void" && sig.IsAccessor;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -142,6 +142,11 @@ namespace GtkSharp.Generation {
|
||||||
sw.WriteLine (indent + "\t\t\tIntPtr error = IntPtr.Zero;");
|
sw.WriteLine (indent + "\t\t\tIntPtr error = IntPtr.Zero;");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void InitAccessor (StreamWriter sw, Signature sig, string indent)
|
||||||
|
{
|
||||||
|
sw.WriteLine (indent + "\t\t\t" + sig.AccessorType + " " + sig.AccessorName + ";");
|
||||||
|
}
|
||||||
|
|
||||||
public void Finish (StreamWriter sw, string indent)
|
public void Finish (StreamWriter sw, string indent)
|
||||||
{
|
{
|
||||||
if (parameters == null)
|
if (parameters == null)
|
||||||
|
@ -161,6 +166,11 @@ namespace GtkSharp.Generation {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void FinishAccessor (StreamWriter sw, Signature sig, string indent)
|
||||||
|
{
|
||||||
|
sw.WriteLine (indent + "\t\t\treturn " + sig.AccessorName + ";");
|
||||||
|
}
|
||||||
|
|
||||||
public void HandleException (StreamWriter sw, string indent)
|
public void HandleException (StreamWriter sw, string indent)
|
||||||
{
|
{
|
||||||
if (!ThrowsException)
|
if (!ThrowsException)
|
||||||
|
|
|
@ -70,6 +70,57 @@ namespace GtkSharp.Generation {
|
||||||
return String.Join (":", result);
|
return String.Join (":", result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool IsAccessor {
|
||||||
|
get {
|
||||||
|
int count = 0;
|
||||||
|
foreach (Parameter p in parms) {
|
||||||
|
if (p.PassAs == "out")
|
||||||
|
count++;
|
||||||
|
|
||||||
|
if (count > 1)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return count == 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string AccessorType {
|
||||||
|
get {
|
||||||
|
foreach (Parameter p in parms)
|
||||||
|
if (p.PassAs == "out")
|
||||||
|
return p.CSType;
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string AccessorName {
|
||||||
|
get {
|
||||||
|
foreach (Parameter p in parms)
|
||||||
|
if (p.PassAs == "out")
|
||||||
|
return p.Name;
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string AsAccessor {
|
||||||
|
get {
|
||||||
|
string[] result = new string [parms.Count - 1];
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
|
foreach (Parameter p in parms) {
|
||||||
|
if (p.PassAs == "out")
|
||||||
|
continue;
|
||||||
|
|
||||||
|
result [i] = p.PassAs != "" ? p.PassAs + " " : "";
|
||||||
|
result [i++] += p.CSType + " " + p.Name;
|
||||||
|
}
|
||||||
|
|
||||||
|
return String.Join (", ", result);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -61,8 +61,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
public Gtk.TreeIter AppendValues (Array values) {
|
public Gtk.TreeIter AppendValues (Array values) {
|
||||||
Gtk.TreeIter iter;
|
Gtk.TreeIter iter = Append();
|
||||||
Append (out iter);
|
|
||||||
|
|
||||||
int col = 0;
|
int col = 0;
|
||||||
foreach (object value in values) {
|
foreach (object value in values) {
|
||||||
|
|
|
@ -14,15 +14,6 @@ public void Clear ()
|
||||||
Delete (StartIter, EndIter);
|
Delete (StartIter, EndIter);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Gtk.TextIter GetIterAtOffset(int char_offset)
|
|
||||||
{
|
|
||||||
Gtk.TextIter iter;
|
|
||||||
|
|
||||||
gtk_text_buffer_get_iter_at_offset(Handle, out iter, char_offset);
|
|
||||||
|
|
||||||
return iter;
|
|
||||||
}
|
|
||||||
|
|
||||||
// overload to paste clipboard contents at cursor editable by default.
|
// overload to paste clipboard contents at cursor editable by default.
|
||||||
[DllImport("libgtk-win32-2.0-0.dll")]
|
[DllImport("libgtk-win32-2.0-0.dll")]
|
||||||
static extern void gtk_text_buffer_paste_clipboard (IntPtr raw, IntPtr clip, IntPtr iter, bool default_edit);
|
static extern void gtk_text_buffer_paste_clipboard (IntPtr raw, IntPtr clip, IntPtr iter, bool default_edit);
|
||||||
|
|
|
@ -148,8 +148,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
public Gtk.TreeIter AppendValues (Gtk.TreeIter parent, Array values) {
|
public Gtk.TreeIter AppendValues (Gtk.TreeIter parent, Array values) {
|
||||||
Gtk.TreeIter iter;
|
Gtk.TreeIter iter = Append (parent);
|
||||||
Append (out iter, parent);
|
|
||||||
_AppendValues (iter, values);
|
_AppendValues (iter, values);
|
||||||
return iter;
|
return iter;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue