Hello, Like I said before, I started with something easy.
I have added a new widget GtkAboutDialog and touched a little bit the
others dialogs so it will not show those extra buttonbox "spaces" but I
not sure that is the appropriate behavior.

Can anyone take o quick look at it?
I know its a stupid patch but I need someone to tell me if i am going
well or not. :D

-- 
Juan Pablo <[EMAIL PROTECTED]>

<<attachment: aboutdialog.png>>

Index: src/glade-gtk.c
===================================================================
RCS file: /cvs/gnome/glade3/src/glade-gtk.c,v
retrieving revision 1.63
diff -u -r1.63 glade-gtk.c
--- src/glade-gtk.c	10 Apr 2005 06:31:04 -0000	1.63
+++ src/glade-gtk.c	21 Apr 2005 00:18:16 -0000
@@ -1301,6 +1301,48 @@
 	gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column);
 }
 
+/**
+ * glade_gtk_about_dialog_post_create:
+ * @object:
+ *
+ * TODO: write me
+ */
+void GLADEGTK_API
+glade_gtk_about_dialog_post_create (GObject *object)
+{
+	GtkWidget *about = GTK_WIDGET (object);
+	GladeWidget *glade_widget;
+	GladeProperty *pname;
+	const gchar *pname_str;
+
+	g_return_if_fail (GTK_IS_ABOUT_DIALOG (about));
+
+	glade_widget = glade_widget_get_from_gobject (about);
+	pname = glade_widget_get_property (glade_widget, "name");
+
+	/* Ops!!! I do not know what happen */
+	if (pname == NULL)	return;
+		
+	/* If there is no program`s name set, this will put something to show in glade. */
+	pname_str = g_value_get_string(pname->value);
+	if (pname_str == NULL || strcmp(pname_str, "") == 0) {
+		GladeProject *project = glade_widget_get_project (glade_widget);
+		gchar *suffix, *new_pname_str;		
+		
+		/* Get project name */
+		new_pname_str = g_strdup(project->name);
+		
+		/* I do not want the suffix :D */
+		suffix = g_strrstr(new_pname_str, ".glade");
+		if (suffix != NULL) *suffix = '\0';
+		
+		/* Set the program`s name */
+		g_value_set_string(pname->value, new_pname_str);
+		gtk_about_dialog_set_name (GTK_ABOUT_DIALOG(about), new_pname_str);
+		g_free (new_pname_str);
+	}
+}
+
 /* ------------------------ Replace child functions ------------------------ */
 /**
  * glade_gtk_container_replace_child:
@@ -1444,9 +1486,11 @@
 {
 	g_return_if_fail (GTK_IS_DIALOG (dialog));
 
-	/* add a placeholder in the vbox */
-	gtk_box_pack_start_defaults (GTK_BOX (GTK_DIALOG (dialog)->vbox),
+	/* add a placeholder in the vbox if it is not an AboutDialog */
+	if (! GTK_IS_ABOUT_DIALOG(dialog))
+		gtk_box_pack_start_defaults (GTK_BOX (GTK_DIALOG (dialog)->vbox),
 				     glade_placeholder_new ());
+
 }
 
 /**
Index: widgets/gtk+.xml
===================================================================
RCS file: /cvs/gnome/glade3/widgets/gtk+.xml,v
retrieving revision 1.3
diff -u -r1.3 gtk+.xml
--- widgets/gtk+.xml	10 Apr 2005 06:31:05 -0000	1.3
+++ widgets/gtk+.xml	21 Apr 2005 00:18:22 -0000
@@ -441,14 +441,20 @@
     -->
     
     <!-- Gtk+ Dialogs -->
-    <glade-widget-class name="GtkColorSelectionDialog" generic-name="colorselectiondialog" title="Color Selection Dialog"/>
-    
+    <glade-widget-class name="GtkColorSelectionDialog" generic-name="colorselectiondialog" title="Color Selection Dialog">
+    	<post-create-function>empty</post-create-function>
+	</glade-widget-class>
+	
     <glade-widget-class name="GtkFileChooserDialog" generic-name="filechooserdialog" title="File Chooser Dialog"/>
-    
-    <glade-widget-class name="GtkFontSelectionDialog" generic-name="fontselectiondialog" title="Font Selection Dialog"/>
-    
-    <glade-widget-class name="GtkInputDialog" generic-name="inputdialog" title="Input Dialog"/>
-    
+
+    <glade-widget-class name="GtkFontSelectionDialog" generic-name="fontselectiondialog" title="Font Selection Dialog">
+    	<post-create-function>empty</post-create-function>
+	</glade-widget-class>
+	
+    <glade-widget-class name="GtkInputDialog" generic-name="inputdialog" title="Input Dialog">
+    	<post-create-function>empty</post-create-function>
+	</glade-widget-class>
+	
     <glade-widget-class name="GtkMessageDialog" generic-name="messagedialog" title="Message Dialog">
       <post-create-function>glade_gtk_message_dialog_post_create</post-create-function>
 
@@ -466,6 +472,15 @@
 	<property common="True" id="can-focus"/>
       </properties>
     </glade-widget-class>
+    <glade-widget-class name="GtkAboutDialog" generic-name="aboutdialog" title="About Dialog">
+		<post-create-function>glade_gtk_about_dialog_post_create</post-create-function>
+		<fill-empty-function>ignore</fill-empty-function>
+		<properties>
+			<property id="name" name="Program name" default="">
+				<tooltip>The name of the program</tooltip>
+			</property>
+		</properties>
+	</glade-widget-class>
 
     <!-- Gtk+ Obsolete -->
     <glade-widget-class name="GtkRuler">
@@ -545,6 +560,7 @@
     <glade-widget-class-ref name="GtkFontSelectionDialog"/>
     <glade-widget-class-ref name="GtkInputDialog"/>
     <glade-widget-class-ref name="GtkMessageDialog"/>
+    <glade-widget-class-ref name="GtkAboutDialog"/>
   </glade-widget-group>
 
   <glade-widget-group name="gtk-obsolete" title="Gtk+ Obsolete">

Reply via email to