Author: danw
Date: 2005-07-13 14:10:39 -0400 (Wed, 13 Jul 2005)
New Revision: 47279

Added:
   trunk/stetic/libstetic/editor/StringArray.cs
   trunk/stetic/libstetic/wrapper/AboutDialog.cs
   trunk/stetic/libstetic/wrapper/FontSelectionDialog.cs
Modified:
   trunk/stetic/ChangeLog
   trunk/stetic/libstetic/ClassDescriptor.cs
   trunk/stetic/libstetic/Makefile.am
   trunk/stetic/libstetic/wrapper/Container.cs
   trunk/stetic/libstetic/wrapper/Dialog.cs
   trunk/stetic/libstetic/wrapper/OptionMenu.cs
   trunk/stetic/libstetic/wrapper/objects.xml
   trunk/stetic/stetic/Grid.cs
   trunk/stetic/stetic/PropertyEditor.cs
   trunk/stetic/stetic/Stetic.cs
Log:
        * libstetic/ClassDescriptor.cs (ClassDescriptor) parse the
        internal-children node of a class as an ItemGroup.
        (InternalChildren): return it

        * libstetic/wrapper/objects.xml: Add internal-children nodes to
        Dialog and OptionMenu. Add info for AboutDialog, ColorSelection,
        ColorSelectionDialog, FileChooserWidget, FileChooserButton,
        FileChooserDialog, FontSelection, and FontSelectionDialog (several
        of which also have internal-children). Move AutoSize from
        ContainerChild to BoxChild and TableChild for now at least.

        * libstetic/wrapper/Container.cs (Wrap): get the ClassDescriptor's
        InternalChildren list and set InternalChildId and Name on the
        container's internal children.

        * libstetic/wrapper/Dialog.cs (Wrap): 
        * libstetic/wrapper/OptionMenu.cs (Wrap): Remove internal child
        handling; it's done by Container now.

        * libstetic/wrapper/AboutDialog.cs: wrap this, to make the
        Website/WebsiteLabel behavior more interactively-sane, and to make
        it not default to putting "Stetic" as the application name :).

        * libstetic/wrapper/FontSelectionDialog.cs: wrapper to expose the
        internal FontSelection widget.

        * libstetic/editor/StringArray.cs: editor for string[] (for
        AboutDialog)

        * stetic/PropertyEditor.cs: add Stetic.Editor.StringArray to the
        editors hashtable.

        * stetic/Grid.cs (SizeAllocate): don't vertically center the label
        wrt the editor if the editor is more than twice the line height
        (eg, a multiline text box).

        * stetic/Stetic.cs (Main): call Gtk.AboutDialog.SetUrlHook() here
        rather than in About(), so that the UrlHook is set for
        user-created about dialogs too.


Modified: trunk/stetic/ChangeLog
===================================================================
--- trunk/stetic/ChangeLog      2005-07-13 18:09:43 UTC (rev 47278)
+++ trunk/stetic/ChangeLog      2005-07-13 18:10:39 UTC (rev 47279)
@@ -1,3 +1,45 @@
+2005-07-13  Dan Winship  <[EMAIL PROTECTED]>
+
+       * libstetic/ClassDescriptor.cs (ClassDescriptor) parse the
+       internal-children node of a class as an ItemGroup.
+       (InternalChildren): return it
+
+       * libstetic/wrapper/objects.xml: Add internal-children nodes to
+       Dialog and OptionMenu. Add info for AboutDialog, ColorSelection,
+       ColorSelectionDialog, FileChooserWidget, FileChooserButton,
+       FileChooserDialog, FontSelection, and FontSelectionDialog (several
+       of which also have internal-children). Move AutoSize from
+       ContainerChild to BoxChild and TableChild for now at least.
+
+       * libstetic/wrapper/Container.cs (Wrap): get the ClassDescriptor's
+       InternalChildren list and set InternalChildId and Name on the
+       container's internal children.
+
+       * libstetic/wrapper/Dialog.cs (Wrap): 
+       * libstetic/wrapper/OptionMenu.cs (Wrap): Remove internal child
+       handling; it's done by Container now.
+
+       * libstetic/wrapper/AboutDialog.cs: wrap this, to make the
+       Website/WebsiteLabel behavior more interactively-sane, and to make
+       it not default to putting "Stetic" as the application name :).
+
+       * libstetic/wrapper/FontSelectionDialog.cs: wrapper to expose the
+       internal FontSelection widget.
+
+       * libstetic/editor/StringArray.cs: editor for string[] (for
+       AboutDialog)
+
+       * stetic/PropertyEditor.cs: add Stetic.Editor.StringArray to the
+       editors hashtable.
+
+       * stetic/Grid.cs (SizeAllocate): don't vertically center the label
+       wrt the editor if the editor is more than twice the line height
+       (eg, a multiline text box).
+
+       * stetic/Stetic.cs (Main): call Gtk.AboutDialog.SetUrlHook() here
+       rather than in About(), so that the UrlHook is set for
+       user-created about dialogs too.
+
 2005-07-12  Dan Winship  <[EMAIL PROTECTED]>
 
        * libstetic/ClassDescriptor.cs: fix some names with underscores to

Modified: trunk/stetic/libstetic/ClassDescriptor.cs
===================================================================
--- trunk/stetic/libstetic/ClassDescriptor.cs   2005-07-13 18:09:43 UTC (rev 
47278)
+++ trunk/stetic/libstetic/ClassDescriptor.cs   2005-07-13 18:10:39 UTC (rev 
47279)
@@ -20,7 +20,8 @@
 
                ArrayList groups = new ArrayList ();
                int importantGroups;
-               ItemGroup contextMenu = ItemGroup.Empty;
+               ItemGroup contextMenu;
+               ItemGroup internalChildren;
 
                public ClassDescriptor (Assembly assembly, XmlElement elem)
                {
@@ -98,6 +99,12 @@
                                contextMenu = new ItemGroup (contextElem, this);
                        else
                                contextMenu = ItemGroup.Empty;
+
+                       XmlElement ichildElem = elem["internal-children"];
+                       if (ichildElem != null)
+                               internalChildren = new ItemGroup (ichildElem, 
this);
+                       else
+                               internalChildren = ItemGroup.Empty;
                }
 
                public Type WrappedType {
@@ -222,5 +229,11 @@
                                return contextMenu;
                        }
                }
+
+               public ItemGroup InternalChildren {
+                       get {
+                               return internalChildren;
+                       }
+               }
        }
 }

Modified: trunk/stetic/libstetic/Makefile.am
===================================================================
--- trunk/stetic/libstetic/Makefile.am  2005-07-13 18:09:43 UTC (rev 47278)
+++ trunk/stetic/libstetic/Makefile.am  2005-07-13 18:10:39 UTC (rev 47279)
@@ -34,8 +34,10 @@
        editor/ResponseId.cs            \
        editor/StockItem.cs             \
        editor/String.cs                \
+       editor/StringArray.cs           \
        editor/Text.cs                  \
        editor/ThemedIcon.cs            \
+       wrapper/AboutDialog.cs          \
        wrapper/Box.cs                  \
        wrapper/Button.cs               \
        wrapper/CheckButton.cs          \
@@ -47,6 +49,7 @@
        wrapper/Dialog.cs               \
        wrapper/Expander.cs             \
        wrapper/FontButton.cs           \
+       wrapper/FontSelectionDialog.cs  \
        wrapper/Frame.cs                \
        wrapper/HScale.cs               \
        wrapper/HScrollbar.cs           \

Added: trunk/stetic/libstetic/editor/StringArray.cs
===================================================================
--- trunk/stetic/libstetic/editor/StringArray.cs        2005-07-13 18:09:43 UTC 
(rev 47278)
+++ trunk/stetic/libstetic/editor/StringArray.cs        2005-07-13 18:10:39 UTC 
(rev 47279)
@@ -0,0 +1,20 @@
+using System;
+using System.Reflection;
+
+namespace Stetic.Editor {
+
+       [PropertyEditor ("Value", "Changed")]
+       public class StringArray : Text {
+
+               public StringArray (PropertyInfo info) : base (info) {}
+
+               public new string[] Value {
+                       get {
+                               return base.Value.Split ('\n');
+                       }
+                       set {
+                               base.Value = string.Join ("\n", value);
+                       }
+               }
+       }
+}

Added: trunk/stetic/libstetic/wrapper/AboutDialog.cs
===================================================================
--- trunk/stetic/libstetic/wrapper/AboutDialog.cs       2005-07-13 18:09:43 UTC 
(rev 47278)
+++ trunk/stetic/libstetic/wrapper/AboutDialog.cs       2005-07-13 18:10:39 UTC 
(rev 47279)
@@ -0,0 +1,75 @@
+using System;
+
+namespace Stetic.Wrapper {
+
+       public class AboutDialog : Window {
+
+               public override void Wrap (object obj, bool initialized)
+               {
+                       base.Wrap (obj, initialized);
+
+                       if (!initialized) {
+                               // FIXME; set from Project eventually
+                               about.Name = "My Application";
+                       }
+               }
+
+               Gtk.AboutDialog about {
+                       get {
+                               return (Gtk.AboutDialog)Wrapped;
+                       }
+               }
+
+               string logo;
+               public string Logo {
+                       get {
+                               return logo;
+                       }
+                       set {
+                               logo = value;
+                               about.Logo = new Gdk.Pixbuf (logo);
+                       }
+               }
+
+               // In the underlying representation, WebsiteLabel is always set
+               // if Website is; if you set Website to something, and 
WebsiteLabel
+               // is null, then WebsiteLabel gets set to match Website. There 
are
+               // two problems with this for us:
+               //
+               //   1. If you type "http..." into Website while WebsiteLabel is
+               //      blank, WebsiteLabel ends up being forcibly set to just 
"h".
+               //
+               //   2. If the user decides s/he wants to get rid of 
WebsiteLabel,
+               //      they have to actually copy the URL from Website over it.
+               //
+               // In Stetic's representation, WebsiteLabel is always "what to 
show
+               // *instead of* Website", and if it's empty, then you see the 
raw URL.
+
+               public string Website {
+                       get {
+                               return about.Website;
+                       }
+                       set {
+                               if (website_label == null)
+                                       about.WebsiteLabel = value;
+                               about.Website = value;
+                       }
+               }
+
+               string website_label;
+               public string WebsiteLabel {
+                       get {
+                               return website_label;
+                       }
+                       set {
+                               if (value == "" || value == null) {
+                                       about.WebsiteLabel = about.Website;
+                                       website_label = null;
+                               } else {
+                                       about.WebsiteLabel = value;
+                                       website_label = value;
+                               }
+                       }
+               }
+       }
+}

Modified: trunk/stetic/libstetic/wrapper/Container.cs
===================================================================
--- trunk/stetic/libstetic/wrapper/Container.cs 2005-07-13 18:09:43 UTC (rev 
47278)
+++ trunk/stetic/libstetic/wrapper/Container.cs 2005-07-13 18:10:39 UTC (rev 
47279)
@@ -11,6 +11,17 @@
                {
                        base.Wrap (obj, initialized);
 
+                       ClassDescriptor klass = Registry.LookupClass 
(obj.GetType ());
+                       foreach (PropertyDescriptor prop in 
klass.InternalChildren) {
+                               Gtk.Widget child = prop.GetValue (container) as 
Gtk.Widget;
+                               if (child == null)
+                                       continue;
+                               Widget wrapper = ObjectWrapper.Create (stetic, 
child) as Stetic.Wrapper.Widget;
+                               wrapper.InternalChildId = prop.GladeName;
+                               if (child.Name == ((GLib.GType)child.GetType 
()).ToString ())
+                                       child.Name = container.Name + "_" + 
prop.GladeName;
+                       }
+
                        if (!initialized && container.Children.Length == 0)
                                AddPlaceholder ();
 

Modified: trunk/stetic/libstetic/wrapper/Dialog.cs
===================================================================
--- trunk/stetic/libstetic/wrapper/Dialog.cs    2005-07-13 18:09:43 UTC (rev 
47278)
+++ trunk/stetic/libstetic/wrapper/Dialog.cs    2005-07-13 18:10:39 UTC (rev 
47279)
@@ -6,22 +6,10 @@
 
                public override void Wrap (object obj, bool initialized)
                {
-                       Stetic.Wrapper.Widget wrapper;
-
                        base.Wrap (obj, initialized);
                        dialog.HasSeparator = false;
 
-                       wrapper = ObjectWrapper.Create (stetic, dialog.VBox) as 
Stetic.Wrapper.Widget;
-                       wrapper.InternalChildId = "vbox";
-                       if (dialog.VBox.Name == "GtkVBox")
-                               dialog.VBox.Name = dialog.Name + "_vbox";
-
-                       wrapper = ObjectWrapper.Create (stetic, 
dialog.ActionArea) as Stetic.Wrapper.Widget;
-                       wrapper.InternalChildId = "action_area";
-                       if (dialog.ActionArea.Name == "GtkHButtonBox")
-                               dialog.ActionArea.Name = dialog.Name + 
"_action_area";
-
-                       if (!initialized) {
+                       if (!initialized && dialog.VBox.Children.Length == 1) {
                                Placeholder ph = CreatePlaceholder ();
                                ph.SetSizeRequest (200, 200);
                                dialog.VBox.Add (ph);

Added: trunk/stetic/libstetic/wrapper/FontSelectionDialog.cs
===================================================================
--- trunk/stetic/libstetic/wrapper/FontSelectionDialog.cs       2005-07-13 
18:09:43 UTC (rev 47278)
+++ trunk/stetic/libstetic/wrapper/FontSelectionDialog.cs       2005-07-13 
18:10:39 UTC (rev 47279)
@@ -0,0 +1,19 @@
+using System;
+
+namespace Stetic.Wrapper {
+
+       public class FontSelectionDialog : Window {
+
+               public Gtk.FontSelection FontSelection {
+                       get {
+                               Gtk.Dialog dialog = (Gtk.Dialog)Wrapped;
+
+                               foreach (Gtk.Widget w in dialog.VBox) {
+                                       if (w is Gtk.FontSelection)
+                                               return (Gtk.FontSelection)w;
+                               }
+                               return null;
+                       }
+               }
+       }
+}

Modified: trunk/stetic/libstetic/wrapper/OptionMenu.cs
===================================================================
--- trunk/stetic/libstetic/wrapper/OptionMenu.cs        2005-07-13 18:09:43 UTC 
(rev 47278)
+++ trunk/stetic/libstetic/wrapper/OptionMenu.cs        2005-07-13 18:10:39 UTC 
(rev 47279)
@@ -11,15 +11,14 @@
 
                public override void Wrap (object obj, bool initialized)
                {
-                       base.Wrap (obj, initialized);
-
-                       if (optionmenu.Menu == null) {
+                       Gtk.OptionMenu omenu = (Gtk.OptionMenu)obj;
+                       if (omenu.Menu == null) {
                                Gtk.Menu menu = new Gtk.Menu ();
                                menu.Show ();
-                               optionmenu.Menu = menu;
+                               omenu.Menu = menu;
                        }
-                       Widget menuWrapper = (Widget)ObjectWrapper.Create 
(stetic, optionmenu.Menu);
-                       menuWrapper.InternalChildId = "menu";
+
+                       base.Wrap (obj, initialized);
                }
 
                public override void GladeImport (XmlElement elem)

Modified: trunk/stetic/libstetic/wrapper/objects.xml
===================================================================
--- trunk/stetic/libstetic/wrapper/objects.xml  2005-07-13 18:09:43 UTC (rev 
47278)
+++ trunk/stetic/libstetic/wrapper/objects.xml  2005-07-13 18:10:39 UTC (rev 
47279)
@@ -68,15 +68,7 @@
     </object>
 
     <object type="Gtk.Container,gtk-sharp" wrapper="Stetic.Wrapper.Container" 
/>
-    <object type="Gtk.Container+ContainerChild,gtk-sharp" 
wrapper="Stetic.Wrapper.Container+ContainerChild">
-       <itemgroups>
-           <itemgroup label="Container Layout">
-               <property name="AutoSize" label="Auto Size"
-                         description="If set, the other packing properties for 
this cell will be automatically adjusted as other widgets are added to and 
removed from the container"
-                         internal="true" />
-           </itemgroup>
-       </itemgroups>
-    </object>
+    <object type="Gtk.Container+ContainerChild,gtk-sharp" 
wrapper="Stetic.Wrapper.Container+ContainerChild" />
 
     <object type="Gtk.Window,gtk-sharp" wrapper="Stetic.Wrapper.Window"
            label="Window" icon="window.png" palette-category="window">
@@ -232,7 +224,8 @@
            <itemgroup label="Box Child Layout">
                <property name="PackType" />
                <property name="Position" />
-               <property ref="Gtk.Container+ContainerChild.AutoSize" />
+               <property name="AutoSize" label="Auto Size"
+                         description="If set, the other packing properties for 
this cell will be automatically adjusted as other widgets are added to and 
removed from the container" />
                <property name="Expand">
                    <disabled-if name="AutoSize" value="true" />
                </property>
@@ -488,6 +481,10 @@
            <itemgroup ref="Gtk.Window.Size" />
            <itemgroup ref="Gtk.Widget" />
        </itemgroups>
+       <internal-children>
+           <property name="VBox" glade-name="vbox" />
+           <property name="ActionArea" glade-name="action_area" />
+       </internal-children>
     </object>
 
     <object type="Gtk.DrawingArea,gtk-sharp"
@@ -805,6 +802,9 @@
            </itemgroup>
            <itemgroup ref="Gtk.Widget" />
        </itemgroups>
+       <internal-children>
+           <property name="Menu" glade-name="menu" />
+       </internal-children>
     </object>
 
     <object type="Gtk.ProgressBar,gtk-sharp"
@@ -1033,7 +1033,8 @@
                <property name="RightAttach" />
                <property name="XPadding" />
                <property name="YPadding" />
-               <property ref="Gtk.Container+ContainerChild.AutoSize" />
+               <property name="AutoSize" label="Auto Size"
+                         description="If set, the other packing properties for 
this cell will be automatically adjusted as other widgets are added to and 
removed from the container" />
                <property name="XOptions" internal="true" />
                <property name="YOptions" internal="true" />
                <property name="XExpand" label="Expand Horizontally"
@@ -1260,4 +1261,162 @@
        </itemgroups>
     </object>
 
+    <object type="Gtk.AboutDialog,gtk-sharp" 
wrapper="Stetic.Wrapper.AboutDialog"
+           label="About Dialog" icon="aboutdialog.png" 
palette-category="window">
+       <itemgroups>
+           <itemgroup label="About Dialog Properties">
+               <property name="Name" />
+               <property name="Version" />
+               <property name="Logo" glade-override="true"
+                         editor="Stetic.Editor.ImageFile" />
+               <property name="Comments" />
+               <property name="Copyright" />
+               <property name="Website" />
+               <property name="WebsiteLabel" />
+               <property name="Authors" />
+               <property name="Documenters" />
+               <property name="Artists" />
+               <property name="TranslatorCredits" />
+               <property name="License" editor="Stetic.Editor.Text" />
+               <property name="Icon" editor="Stetic.Editor.ImageFile" />
+               <property name="WindowPosition" />
+               <property name="Modal" glade-override="true" />
+           </itemgroup>
+           <itemgroup ref="Gtk.Dialog.Misc" />
+           <itemgroup ref="Gtk.Window.Size" />
+           <itemgroup ref="Gtk.Widget" />
+       </itemgroups>
+    </object>
+
+    <object type="Gtk.ColorSelection,gtk-sharp" wrapper="Stetic.Wrapper.Widget"
+           label="Color Selection" icon="colorselection.png" 
palette-category="widget"
+           hexpandable="true" vexpandable="true">
+       <itemgroups>
+           <itemgroup label="Color Selection Properties">
+               <property name="CurrentColor" />
+               <property name="HasPalette" />
+               <property name="HasOpacityControl" />
+               <property name="CurrentAlpha">
+                   <disabled-if name="HasOpacityControl" value="false" />
+               </property>
+           </itemgroup>
+           <itemgroup ref="Gtk.Widget" />
+       </itemgroups>
+    </object>
+
+    <object type="Gtk.ColorSelectionDialog,gtk-sharp" 
wrapper="Stetic.Wrapper.Window"
+           label="Color Selection Dialog" icon="colorselectiondialog.png" 
palette-category="window">
+       <itemgroups>
+           <itemgroup label="Color Selection Dialog Properties">
+               <property name="Title" />
+               <property name="Icon" editor="Stetic.Editor.ImageFile" />
+               <property name="WindowPosition" />
+               <property name="Modal" glade-override="true" />
+           </itemgroup>
+           <itemgroup ref="Gtk.Dialog.Misc" />
+           <itemgroup ref="Gtk.Window.Size" />
+           <itemgroup ref="Gtk.Widget" />
+       </itemgroups>
+       <internal-children>
+           <property name="ColorSelection" glade-name="color_selection" />
+           <property name="OkButton" glade-name="ok_button" />
+           <property name="CancelButton" glade-name="cancel_button" />
+           <property name="HelpButton" glade-name="help_button" />
+       </internal-children>
+    </object>
+
+    <object type="Gtk.FileChooserWidget,gtk-sharp" 
wrapper="Stetic.Wrapper.Widget"
+           label="File Chooser Widget" icon="fileselection.png" 
palette-category="widget"
+           hexpandable="true" vexpandable="true">
+       <itemgroups>
+           <itemgroup label="File Chooser Widget Properties">
+               <property name="Action" />
+               <property name="LocalOnly" />
+               <property name="SelectMultiple">
+                   <disabled-if name="Action" value="Save" />
+                   <disabled-if name="Action" value="CreateFolder" />
+               </property>
+               <property name="ShowHidden" />
+           </itemgroup>
+           <itemgroup ref="Gtk.Widget" />
+       </itemgroups>
+    </object>
+
+    <object type="Gtk.FileChooserButton,gtk-sharp" 
wrapper="Stetic.Wrapper.Widget"
+           label="File Chooser Button" icon="fileselection.png" 
palette-category="widget"
+           hexpandable="true">
+       <itemgroups>
+           <itemgroup label="File Chooser Button Properties">
+               <property name="Title" />
+               <property name="Action" />
+               <property name="LocalOnly" />
+               <property name="SelectMultiple">
+                   <disabled-if name="Action" value="Save" />
+                   <disabled-if name="Action" value="CreateFolder" />
+               </property>
+               <property name="ShowHidden" />
+           </itemgroup>
+           <itemgroup ref="Gtk.Widget" />
+       </itemgroups>
+    </object>
+
+    <object type="Gtk.FileChooserDialog,gtk-sharp"
+           label="File Chooser Dialog" icon="fileselection.png" 
palette-category="window">
+       <itemgroups>
+           <itemgroup label="File Chooser Dialog Properties">
+               <property name="Title" />
+               <property name="Action" />
+               <property name="LocalOnly" />
+               <property name="SelectMultiple">
+                   <disabled-if name="Action" value="Save" />
+                   <disabled-if name="Action" value="CreateFolder" />
+               </property>
+               <property name="ShowHidden" />
+               <property name="Icon" editor="Stetic.Editor.ImageFile" />
+               <property name="WindowPosition" />
+               <property name="Modal" glade-override="true" />
+           </itemgroup>
+           <itemgroup ref="Gtk.Dialog.Misc" />
+           <itemgroup ref="Gtk.Window.Size" />
+           <itemgroup ref="Gtk.Widget" />
+       </itemgroups>
+       <internal-children>
+           <property name="VBox" glade-name="vbox" />
+           <property name="ActionArea" glade-name="action_area" />
+       </internal-children>
+    </object>
+
+    <object type="Gtk.FontSelection,gtk-sharp" wrapper="Stetic.Wrapper.Widget"
+           label="Font Selection" icon="fontselection.png" 
palette-category="widget"
+           hexpandable="true" vexpandable="true">
+       <itemgroups>
+           <itemgroup label="Font Selection Properties">
+               <property name="FontName" />
+               <property name="PreviewText" />
+           </itemgroup>
+           <itemgroup ref="Gtk.Widget" />
+       </itemgroups>
+    </object>
+
+    <object type="Gtk.FontSelectionDialog,gtk-sharp" 
wrapper="Stetic.Wrapper.FontSelectionDialog"
+           label="Font Selection Dialog" icon="fontselectiondialog.png" 
palette-category="window">
+       <itemgroups>
+           <itemgroup label="Font Selection Dialog Properties">
+               <property name="Title" />
+               <property name="Icon" editor="Stetic.Editor.ImageFile" />
+               <property name="WindowPosition" />
+               <property name="Modal" glade-override="true" />
+           </itemgroup>
+           <itemgroup ref="Gtk.Dialog.Misc" />
+           <itemgroup ref="Gtk.Window.Size" />
+           <itemgroup ref="Gtk.Widget" />
+       </itemgroups>
+       <internal-children>
+           <property name="FontSelection" glade-name="font_selection" />
+           <property name="OkButton" glade-name="ok_button" />
+           <property name="CancelButton" glade-name="cancel_button" />
+           <property name="ApplyButton" glade-name="help_button" />
+       </internal-children>
+    </object>
+
 </objects>

Modified: trunk/stetic/stetic/Grid.cs
===================================================================
--- trunk/stetic/stetic/Grid.cs 2005-07-13 18:09:43 UTC (rev 47278)
+++ trunk/stetic/stetic/Grid.cs 2005-07-13 18:10:39 UTC (rev 47279)
@@ -331,7 +331,10 @@
                                        ereq = p.Editor.ChildRequisition;
 
                                        lalloc.X = xbase + indent;
-                                       lalloc.Y = y + (Math.Max (lineHeight, 
ereq.Height) - lreq.Height) / 2;
+                                       if (ereq.Height < lineHeight * 2)
+                                               lalloc.Y = y + (ereq.Height - 
lreq.Height) / 2;
+                                       else
+                                               lalloc.Y = y + (lineHeight - 
lreq.Height) / 2;
                                        lalloc.Width = lwidth;
                                        lalloc.Height = lreq.Height;
                                        p.Label.SizeAllocate (lalloc);

Modified: trunk/stetic/stetic/PropertyEditor.cs
===================================================================
--- trunk/stetic/stetic/PropertyEditor.cs       2005-07-13 18:09:43 UTC (rev 
47278)
+++ trunk/stetic/stetic/PropertyEditor.cs       2005-07-13 18:10:39 UTC (rev 
47279)
@@ -32,6 +32,7 @@
                        editors[typeof (double)] = typeof 
(Stetic.Editor.FloatRange);
                        editors[typeof (char)] = typeof (Stetic.Editor.Char);
                        editors[typeof (string)] = typeof 
(Stetic.Editor.String);
+                       editors[typeof (string[])] = typeof 
(Stetic.Editor.StringArray);
                        editors[typeof (Gdk.Color)] = typeof 
(Stetic.Editor.Color);
                }
 

Modified: trunk/stetic/stetic/Stetic.cs
===================================================================
--- trunk/stetic/stetic/Stetic.cs       2005-07-13 18:09:43 UTC (rev 47278)
+++ trunk/stetic/stetic/Stetic.cs       2005-07-13 18:10:39 UTC (rev 47279)
@@ -41,6 +41,10 @@
                                        w.ShowAll ();
                        }
 
+                       // This is needed for both our own About dialog and for 
ones
+                       // the user constructs
+                       Gtk.AboutDialog.SetUrlHook (ActivateUrl);
+
                        program.Run ();
                        return 0;
                }
@@ -105,7 +109,6 @@
 
                internal static void About (object obj, EventArgs e)
                {
-                       Gtk.AboutDialog.SetUrlHook (ActivateUrl);
                        Gtk.AboutDialog about = new Gtk.AboutDialog ();
                        about.Name = "Stetic";
                        about.Version = "0.0.0";

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

Reply via email to