Author: danw
Date: 2005-06-01 13:58:28 -0400 (Wed, 01 Jun 2005)
New Revision: 45301

Modified:
   trunk/gtk-sharp/ChangeLog
   trunk/gtk-sharp/doc/ChangeLog
   trunk/gtk-sharp/doc/en/GLib/Value.xml
   trunk/gtk-sharp/doc/en/Gtk/AboutDialog.xml
   trunk/gtk-sharp/generator/SymbolTable.cs
   trunk/gtk-sharp/glib/Value.cs
   trunk/gtk-sharp/gtk/Gtk.metadata
Log:
        * glib/Value.cs: Add a constructor and an explicit cast for
        string[] (using a G_TYPE_STRV boxed value).

        * generator/SymbolTable.cs (SymbolTable): Map GStrv to string[].
        (The mapping relies on the above GLib.Value magic, so it only
        works correctly for properties, but that's ok, because GStrv isn't
        a real type anyway and only shows up in the api files for
        G_TYPE_STRV properties.) Makes the Gtk.AboutDialog Artists,
        Authors, and Documenters properties show up.

        * gtk/Gtk.metadata: hide
        AboutDialog.Get/SetArtists/Authors/Documenters, which can't be
        used to implement the Artists/Authors/Documenters properties,
        because the generated code doesn't know to NULL-terminate the
        arrays.


Modified: trunk/gtk-sharp/ChangeLog
===================================================================
--- trunk/gtk-sharp/ChangeLog   2005-06-01 15:49:33 UTC (rev 45300)
+++ trunk/gtk-sharp/ChangeLog   2005-06-01 17:58:28 UTC (rev 45301)
@@ -1,3 +1,21 @@
+2005-06-01  Dan Winship  <[EMAIL PROTECTED]>
+
+       * glib/Value.cs: Add a constructor and an explicit cast for
+       string[] (using a G_TYPE_STRV boxed value).
+
+       * generator/SymbolTable.cs (SymbolTable): Map GStrv to string[].
+       (The mapping relies on the above GLib.Value magic, so it only
+       works correctly for properties, but that's ok, because GStrv isn't
+       a real type anyway and only shows up in the api files for
+       G_TYPE_STRV properties.) Makes the Gtk.AboutDialog Artists,
+       Authors, and Documenters properties show up.
+
+       * gtk/Gtk.metadata: hide
+       AboutDialog.Get/SetArtists/Authors/Documenters, which can't be
+       used to implement the Artists/Authors/Documenters properties,
+       because the generated code doesn't know to NULL-terminate the
+       arrays.
+
 2005-05-31  Mike Kestner  <[EMAIL PROTECTED]>
 
        * glib/Object.cs : rework the weakref release mechanism to avoid a

Modified: trunk/gtk-sharp/doc/ChangeLog
===================================================================
--- trunk/gtk-sharp/doc/ChangeLog       2005-06-01 15:49:33 UTC (rev 45300)
+++ trunk/gtk-sharp/doc/ChangeLog       2005-06-01 17:58:28 UTC (rev 45301)
@@ -1,3 +1,10 @@
+2005-06-01  Dan Winship  <[EMAIL PROTECTED]>
+
+       * en/GLib/Value.xml: document the new string[] methods (and all of
+       the previously-undocumented explicit cast operators).
+
+       * en/Gtk/AboutDialog.xml: document Authors, Artists, Documenters.
+
 2005-05-24  Dan Winship  <[EMAIL PROTECTED]>
 
        * en/Gdk/PixdataType.xml:

Modified: trunk/gtk-sharp/doc/en/GLib/Value.xml
===================================================================
--- trunk/gtk-sharp/doc/en/GLib/Value.xml       2005-06-01 15:49:33 UTC (rev 
45300)
+++ trunk/gtk-sharp/doc/en/GLib/Value.xml       2005-06-01 17:58:28 UTC (rev 
45301)
@@ -353,10 +353,10 @@
         <Parameter Name="val" Type="GLib.Value" />
       </Parameters>
       <Docs>
-        <param name="val">To be added.</param>
-        <summary>To be added.</summary>
-        <returns>To be added.</returns>
-        <remarks>To be added.</remarks>
+        <param name="val">a <see cref="T:GLib.Value" /></param>
+        <summary>Extracts a boolean value from a <see cref="T:GLib.Value" 
/>.</summary>
+        <returns>The boolean value.</returns>
+        <remarks />
       </Docs>
     </Member>
   <Member MemberName="op_Explicit">
@@ -369,10 +369,10 @@
         <Parameter Name="val" Type="GLib.Value" />
       </Parameters>
       <Docs>
-        <param name="val">To be added.</param>
-        <summary>To be added.</summary>
-        <returns>To be added.</returns>
-        <remarks>To be added.</remarks>
+        <param name="val">a <see cref="T:GLib.Value" /></param>
+        <summary>Extracts an integer value from a <see cref="T:GLib.Value" 
/>.</summary>
+        <returns>The integer value.</returns>
+        <remarks />
       </Docs>
     </Member>
   <Member MemberName="op_Explicit">
@@ -385,10 +385,10 @@
         <Parameter Name="val" Type="GLib.Value" />
       </Parameters>
       <Docs>
-        <param name="val">To be added.</param>
-        <summary>To be added.</summary>
-        <returns>To be added.</returns>
-        <remarks>To be added.</remarks>
+        <param name="val">a <see cref="T:GLib.Value" /></param>
+        <summary>Extracts an unsigned integer value from a <see 
cref="T:GLib.Value" />.</summary>
+        <returns>The unsigned integer value.</returns>
+        <remarks />
       </Docs>
     </Member>
   <Member MemberName="op_Explicit">
@@ -401,10 +401,10 @@
         <Parameter Name="val" Type="GLib.Value" />
       </Parameters>
       <Docs>
-        <param name="val">To be added.</param>
-        <summary>To be added.</summary>
-        <returns>To be added.</returns>
-        <remarks>To be added.</remarks>
+        <param name="val">a <see cref="T:GLib.Value" /></param>
+        <summary>Extracts an unsigned short value from a <see 
cref="T:GLib.Value" />.</summary>
+        <returns>The unsigned short value.</returns>
+        <remarks />
       </Docs>
     </Member>
   <Member MemberName="op_Explicit">
@@ -417,10 +417,10 @@
         <Parameter Name="val" Type="GLib.Value" />
       </Parameters>
       <Docs>
-        <param name="val">To be added.</param>
-        <summary>To be added.</summary>
-        <returns>To be added.</returns>
-        <remarks>To be added.</remarks>
+        <param name="val">a <see cref="T:GLib.Value" /></param>
+        <summary>Extracts a long integer value from a <see cref="T:GLib.Value" 
/>.</summary>
+        <returns>The long integer value.</returns>
+        <remarks />
       </Docs>
     </Member>
   <Member MemberName="op_Explicit">
@@ -433,10 +433,10 @@
         <Parameter Name="val" Type="GLib.Value" />
       </Parameters>
       <Docs>
-        <param name="val">To be added.</param>
-        <summary>To be added.</summary>
-        <returns>To be added.</returns>
-        <remarks>To be added.</remarks>
+        <param name="val">a <see cref="T:GLib.Value" /></param>
+        <summary>Extracts an unsigned long integer value from a <see 
cref="T:GLib.Value" />.</summary>
+        <returns>The unsigned long integer value.</returns>
+        <remarks />
       </Docs>
     </Member>
   <Member MemberName="op_Explicit">
@@ -449,10 +449,10 @@
         <Parameter Name="val" Type="GLib.Value" />
       </Parameters>
       <Docs>
-        <param name="val">To be added.</param>
-        <summary>To be added.</summary>
-        <returns>To be added.</returns>
-        <remarks>To be added.</remarks>
+        <param name="val">a <see cref="T:GLib.Value" /></param>
+        <summary>Extracts an enumeration value from a <see cref="T:GLib.Value" 
/>.</summary>
+        <returns>The enumeration value.</returns>
+        <remarks />
       </Docs>
     </Member>
   <Member MemberName="op_Explicit">
@@ -465,10 +465,10 @@
         <Parameter Name="val" Type="GLib.Value" />
       </Parameters>
       <Docs>
-        <param name="val">To be added.</param>
-        <summary>To be added.</summary>
-        <returns>To be added.</returns>
-        <remarks>To be added.</remarks>
+        <param name="val">a <see cref="T:GLib.Value" /></param>
+        <summary>Extracts a floating-point value from a <see 
cref="T:GLib.Value" />.</summary>
+        <returns>The floating-point value.</returns>
+        <remarks />
       </Docs>
     </Member>
   <Member MemberName="op_Explicit">
@@ -481,10 +481,10 @@
         <Parameter Name="val" Type="GLib.Value" />
       </Parameters>
       <Docs>
-        <param name="val">To be added.</param>
-        <summary>To be added.</summary>
-        <returns>To be added.</returns>
-        <remarks>To be added.</remarks>
+        <param name="val">a <see cref="T:GLib.Value" /></param>
+        <summary>Extracts a double-precision floating-point value from a <see 
cref="T:GLib.Value" />.</summary>
+        <returns>The double-precision floating-point value.</returns>
+        <remarks />
       </Docs>
     </Member>
   <Member MemberName="op_Explicit">
@@ -497,10 +497,10 @@
         <Parameter Name="val" Type="GLib.Value" />
       </Parameters>
       <Docs>
-        <param name="val">To be added.</param>
-        <summary>To be added.</summary>
-        <returns>To be added.</returns>
-        <remarks>To be added.</remarks>
+        <param name="val">a <see cref="T:GLib.Value" /></param>
+        <summary>Extracts a string value from a <see cref="T:GLib.Value" 
/>.</summary>
+        <returns>The string value.</returns>
+        <remarks />
       </Docs>
     </Member>
   <Member MemberName="op_Explicit">
@@ -513,10 +513,10 @@
         <Parameter Name="val" Type="GLib.Value" />
       </Parameters>
       <Docs>
-        <param name="val">To be added.</param>
-        <summary>To be added.</summary>
-        <returns>To be added.</returns>
-        <remarks>To be added.</remarks>
+        <param name="val">a <see cref="T:GLib.Value" /></param>
+        <summary>Extracts an untyped pointer value from a <see 
cref="T:GLib.Value" />.</summary>
+        <returns>The untyped pointer value.</returns>
+        <remarks />
       </Docs>
     </Member>
   <Member MemberName="op_Explicit">
@@ -529,10 +529,10 @@
         <Parameter Name="val" Type="GLib.Value" />
       </Parameters>
       <Docs>
-        <param name="val">To be added.</param>
-        <summary>To be added.</summary>
-        <returns>To be added.</returns>
-        <remarks>To be added.</remarks>
+        <param name="val">a <see cref="T:GLib.Value" /></param>
+        <summary>Extracts an opaque object value from a <see 
cref="T:GLib.Value" />.</summary>
+        <returns>The opaque object value.</returns>
+        <remarks />
       </Docs>
     </Member>
   <Member MemberName="op_Explicit">
@@ -545,10 +545,10 @@
         <Parameter Name="val" Type="GLib.Value" />
       </Parameters>
       <Docs>
-        <param name="val">To be added.</param>
-        <summary>To be added.</summary>
-        <returns>To be added.</returns>
-        <remarks>To be added.</remarks>
+        <param name="val">a <see cref="T:GLib.Value" /></param>
+        <summary>Extracts a boxed type value from a <see cref="T:GLib.Value" 
/>.</summary>
+        <returns>The boxed type value.</returns>
+        <remarks />
       </Docs>
     </Member>
   <Member MemberName="op_Explicit">
@@ -561,10 +561,10 @@
         <Parameter Name="val" Type="GLib.Value" />
       </Parameters>
       <Docs>
-        <param name="val">To be added.</param>
-        <summary>To be added.</summary>
-        <returns>To be added.</returns>
-        <remarks>To be added.</remarks>
+        <param name="val">a <see cref="T:GLib.Value" /></param>
+        <summary>Extracts an object value from a <see cref="T:GLib.Value" 
/>.</summary>
+        <returns>The object value.</returns>
+        <remarks />
       </Docs>
     </Member>
   <Member MemberName="op_Explicit">
@@ -577,11 +577,39 @@
         <Parameter Name="val" Type="GLib.Value" />
       </Parameters>
       <Docs>
-        <param name="val">To be added.</param>
-        <summary>To be added.</summary>
-        <returns>To be added.</returns>
-        <remarks>To be added.</remarks>
+        <param name="val">a <see cref="T:GLib.Value" /></param>
+        <summary>Extracts an unwrapped object value from a <see 
cref="T:GLib.Value" />.</summary>
+        <returns>The unwrapped object value.</returns>
+        <remarks />
       </Docs>
     </Member>
+  <Member MemberName=".ctor">
+      <MemberSignature Language="C#" Value="public Value (string[] val);" />
+      <MemberType>Constructor</MemberType>
+      <Parameters>
+        <Parameter Name="val" Type="System.String[]" />
+      </Parameters>
+      <Docs>
+        <param name="val">a <see cref="T:GLib.Value" /></param>
+        <summary>Constructs a Value from a specified string array.</summary>
+        <remarks />
+      </Docs>
+    </Member>
+  <Member MemberName="op_Explicit">
+      <MemberSignature Language="C#" Value="public static string[] op_Explicit 
(GLib.Value val);" />
+      <MemberType>Method</MemberType>
+      <ReturnValue>
+        <ReturnType>System.String[]</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="val" Type="GLib.Value" />
+      </Parameters>
+      <Docs>
+        <param name="val">a <see cref="T:GLib.Value" /></param>
+        <summary>Extracts a string array from a <see cref="T:GLib.Value" 
/>.</summary>
+        <returns>The string array value.</returns>
+        <remarks />
+      </Docs>
+    </Member>
   </Members>
 </Type>

Modified: trunk/gtk-sharp/doc/en/Gtk/AboutDialog.xml
===================================================================
--- trunk/gtk-sharp/doc/en/Gtk/AboutDialog.xml  2005-06-01 15:49:33 UTC (rev 
45300)
+++ trunk/gtk-sharp/doc/en/Gtk/AboutDialog.xml  2005-06-01 17:58:28 UTC (rev 
45301)
@@ -287,5 +287,56 @@
         <remarks />
       </Docs>
     </Member>
+  <Member MemberName="Documenters">
+      <MemberSignature Language="C#" Value="public string[] Documenters { set; 
get; };" />
+      <MemberType>Property</MemberType>
+      <Attributes>
+        <Attribute>
+          <AttributeName>GLib.Property(Name="documenters")</AttributeName>
+        </Attribute>
+      </Attributes>
+      <ReturnValue>
+        <ReturnType>System.String[]</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>The people documenting the program.</summary>
+        <value>a <see cref="T:System.String[]" />.</value>
+        <remarks>Each string may contain email addresses and URLs, which will 
be displayed as links, see the introduction for more details.</remarks>
+      </Docs>
+    </Member>
+  <Member MemberName="Authors">
+      <MemberSignature Language="C#" Value="public string[] Authors { set; 
get; };" />
+      <MemberType>Property</MemberType>
+      <Attributes>
+        <Attribute>
+          <AttributeName>GLib.Property(Name="authors")</AttributeName>
+        </Attribute>
+      </Attributes>
+      <ReturnValue>
+        <ReturnType>System.String[]</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>The authors of the program.</summary>
+        <value>a <see cref="T:System.String[]" />.</value>
+        <remarks>Each string may contain email addresses and URLs, which will 
be displayed as links, see the introduction for more details.</remarks>
+      </Docs>
+    </Member>
+  <Member MemberName="Artists">
+      <MemberSignature Language="C#" Value="public string[] Artists { set; 
get; };" />
+      <MemberType>Property</MemberType>
+      <Attributes>
+        <Attribute>
+          <AttributeName>GLib.Property(Name="artists")</AttributeName>
+        </Attribute>
+      </Attributes>
+      <ReturnValue>
+        <ReturnType>System.String[]</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>The people who contributed artwork to the program.</summary>
+        <value>a <see cref="T:System.String[]" />.</value>
+        <remarks>Each string may contain email addresses and URLs, which will 
be displayed as links, see the introduction for more details.</remarks>
+      </Docs>
+    </Member>
   </Members>
 </Type>

Modified: trunk/gtk-sharp/generator/SymbolTable.cs
===================================================================
--- trunk/gtk-sharp/generator/SymbolTable.cs    2005-06-01 15:49:33 UTC (rev 
45300)
+++ trunk/gtk-sharp/generator/SymbolTable.cs    2005-06-01 17:58:28 UTC (rev 
45301)
@@ -92,6 +92,7 @@
                        AddType (new ConstStringGen ("const-char"));
                        AddType (new MarshalGen ("gchar", "string", "IntPtr", 
"GLib.Marshaller.StringToPtrGStrdup({0})", 
"GLib.Marshaller.PtrToStringGFree({0})"));
                        AddType (new MarshalGen ("char", "string", "IntPtr", 
"GLib.Marshaller.StringToPtrGStrdup({0})", 
"GLib.Marshaller.PtrToStringGFree({0})"));
+                       AddType (new SimpleGen ("GStrv", "string[]"));
 
                        // manually wrapped types requiring more complex 
marshaling
                        AddType (new ManualGen ("GObject", "GLib.Object", 
"GLib.Object.GetObject ({0})"));

Modified: trunk/gtk-sharp/glib/Value.cs
===================================================================
--- trunk/gtk-sharp/glib/Value.cs       2005-06-01 15:49:33 UTC (rev 45300)
+++ trunk/gtk-sharp/glib/Value.cs       2005-06-01 17:58:28 UTC (rev 45301)
@@ -167,7 +167,26 @@
                        g_value_set_boxed (ref this, val.Handle);
                }
 
+               public Value (string[] val) : this (new GLib.GType 
(g_strv_get_type ()))
+               {
+                       if (val == null) {
+                               g_value_set_boxed (ref this, IntPtr.Zero);
+                               return;
+                       }
 
+                       IntPtr native_array = Marshal.AllocHGlobal ((val.Length 
+ 1) * IntPtr.Size);
+                       for (int i = 0; i < val.Length; i++)
+                               Marshal.WriteIntPtr (native_array, i * 
IntPtr.Size, GLib.Marshaller.StringToPtrGStrdup (val[i]));
+                       Marshal.WriteIntPtr (native_array, val.Length * 
IntPtr.Size, IntPtr.Zero);
+
+                       g_value_set_boxed (ref this, native_array);
+
+                       for (int i = 0; i < val.Length; i++)
+                               GLib.Marshaller.Free (Marshal.ReadIntPtr 
(native_array, i * IntPtr.Size));
+                       Marshal.FreeHGlobal (native_array);
+               }
+
+
                public void Dispose () 
                {
                        g_value_unset (ref this);
@@ -258,7 +277,21 @@
                        return new UnwrappedObject (g_value_get_object (ref 
val));
                }
 
+               public static explicit operator string[] (Value val)
+               {
+                       IntPtr native_array = g_value_get_boxed (ref val);
+                       if (native_array == IntPtr.Zero)
+                               return null;
 
+                       int count = 0;
+                       while (Marshal.ReadIntPtr (native_array, count * 
IntPtr.Size) != IntPtr.Zero)
+                               count++;
+                       string[] strings = new string[count];
+                       for (int i = 0; i < count; i++)
+                               strings[i] = GLib.Marshaller.Utf8PtrToString 
(Marshal.ReadIntPtr (native_array, i * IntPtr.Size));
+                       return strings;
+               }
+
                public object Val
                {
                        get {
@@ -437,5 +470,8 @@
 
                [DllImport("libgobject-2.0-0.dll")]
                static extern bool g_type_is_a (IntPtr type, IntPtr is_a_type);
+
+               [DllImport("libgobject-2.0-0.dll")]
+               static extern IntPtr g_strv_get_type ();
        }
 }

Modified: trunk/gtk-sharp/gtk/Gtk.metadata
===================================================================
--- trunk/gtk-sharp/gtk/Gtk.metadata    2005-06-01 15:49:33 UTC (rev 45300)
+++ trunk/gtk-sharp/gtk/Gtk.metadata    2005-06-01 17:58:28 UTC (rev 45301)
@@ -109,6 +109,12 @@
   <attr path="/api/namespace/[EMAIL PROTECTED]'GtkTreeModel']/[EMAIL 
PROTECTED]'RowsReordered']" name="name">EmitRowsReordered</attr>
   <attr path="/api/namespace/[EMAIL PROTECTED]'GtkTreeSortable']/[EMAIL 
PROTECTED]'SortColumnChanged']" name="name">ChangeSortColumn</attr>
   <attr path="/api/namespace/[EMAIL PROTECTED]'GtkAccelLabel']/[EMAIL 
PROTECTED]'gtk_accel_label_new']/*/[EMAIL PROTECTED]'string']" 
name="property_name">label</attr>
+  <attr path="/api/namespace/[EMAIL PROTECTED]'GtkAboutDialog']/[EMAIL 
PROTECTED]'GetArtists']" name="hidden">1</attr>
+  <attr path="/api/namespace/[EMAIL PROTECTED]'GtkAboutDialog']/[EMAIL 
PROTECTED]'GetAuthors']" name="hidden">1</attr>
+  <attr path="/api/namespace/[EMAIL PROTECTED]'GtkAboutDialog']/[EMAIL 
PROTECTED]'GetDocumenters']" name="hidden">1</attr>
+  <attr path="/api/namespace/[EMAIL PROTECTED]'GtkAboutDialog']/[EMAIL 
PROTECTED]'SetArtists']" name="hidden">1</attr>
+  <attr path="/api/namespace/[EMAIL PROTECTED]'GtkAboutDialog']/[EMAIL 
PROTECTED]'SetAuthors']" name="hidden">1</attr>
+  <attr path="/api/namespace/[EMAIL PROTECTED]'GtkAboutDialog']/[EMAIL 
PROTECTED]'SetDocumenters']" name="hidden">1</attr>
   <attr path="/api/namespace/[EMAIL PROTECTED]'GtkAction']/[EMAIL 
PROTECTED]'Activate']" name="name">Activated</attr>
   <attr path="/api/namespace/[EMAIL PROTECTED]'GtkAction']/[EMAIL 
PROTECTED]'GetProxies']" name="hidden">1</attr>
   <attr path="/api/namespace/[EMAIL PROTECTED]'GtkAccelGroup']/[EMAIL 
PROTECTED]'Find']/*/[EMAIL PROTECTED]'find_func']" name="scope">call</attr>

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to