[libgda] Align forms in control center's DSN properties



commit 5c96bc10900fda7f1cd108144e80d7e64948635d
Author: Vivien Malerba <malerba gnome-db org>
Date:   Tue Apr 27 19:36:44 2010 +0200

    Align forms in control center's DSN properties

 control-center/dsn-properties-dialog.c          |    2 +-
 control-center/gdaui-dsn-editor.c               |   15 ++++++++
 libgda-ui/internal/Makefile.am                  |    2 -
 libgda-ui/internal/gdaui-provider-auth-editor.c |   42 +++++++++++++++++++++++
 libgda-ui/internal/gdaui-provider-auth-editor.h |    4 ++-
 libgda-ui/internal/gdaui-provider-spec-editor.c |   38 ++++++++++++++++++++
 libgda-ui/internal/gdaui-provider-spec-editor.h |    5 ++-
 7 files changed, 103 insertions(+), 5 deletions(-)
---
diff --git a/control-center/dsn-properties-dialog.c b/control-center/dsn-properties-dialog.c
index 7f8c293..0cdec75 100644
--- a/control-center/dsn-properties-dialog.c
+++ b/control-center/dsn-properties-dialog.c
@@ -166,6 +166,7 @@ dsn_properties_dialog (GtkWindow *parent, const gchar *dsn)
 #else
 	dcontents = GTK_DIALOG (dialog)->vbox;
 #endif
+	gtk_container_set_border_width (GTK_CONTAINER (dcontents), 5);
 	gtk_box_pack_start (GTK_BOX (dcontents), label, FALSE, FALSE, 0);
 	gtk_widget_show (label);
 
@@ -182,7 +183,6 @@ dsn_properties_dialog (GtkWindow *parent, const gchar *dsn)
 	gtk_widget_show (props);
 	g_signal_connect (G_OBJECT (props), "changed", G_CALLBACK (dsn_changed_cb), dialog);	
 	gtk_box_pack_start (GTK_BOX (hbox), props, TRUE, TRUE, 0);
-	gtk_widget_set_size_request (props, 500, -1);
 
 	/* handle "delete-event" */
 	g_signal_connect (dialog, "delete-event",
diff --git a/control-center/gdaui-dsn-editor.c b/control-center/gdaui-dsn-editor.c
index 1ecf009..96431fa 100644
--- a/control-center/gdaui-dsn-editor.c
+++ b/control-center/gdaui-dsn-editor.c
@@ -109,6 +109,7 @@ gdaui_dsn_editor_init (GdauiDsnEditor *config, GdauiDsnEditorClass *klass)
 	GtkWidget *label;
 	GtkWidget *exp;
 	gchar *str;
+	GtkSizeGroup *labels_size_group;
 
 	g_return_if_fail (GDAUI_IS_DSN_EDITOR (config));
 
@@ -116,6 +117,9 @@ gdaui_dsn_editor_init (GdauiDsnEditor *config, GdauiDsnEditorClass *klass)
 	config->priv = g_new0 (GdauiDsnEditorPrivate, 1);
 	config->priv->dsn_info = g_new0 (GdaDsnInfo, 1);
 
+	/* size group */
+	labels_size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
+
 	/* set up widgets */
 	table = gtk_table_new (8, 2, FALSE);
 	gtk_table_set_row_spacings (GTK_TABLE (table), 6);
@@ -129,7 +133,9 @@ gdaui_dsn_editor_init (GdauiDsnEditor *config, GdauiDsnEditorClass *klass)
 	gtk_misc_set_alignment (GTK_MISC (label), 0, -1.);
 	g_free (str);
         gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+	gtk_size_group_add_widget (labels_size_group, label);
 	gtk_widget_show (label);
+
 	gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0);
 	config->priv->wname = gtk_entry_new ();
         gtk_editable_set_editable (GTK_EDITABLE (config->priv->wname), FALSE);
@@ -146,6 +152,7 @@ gdaui_dsn_editor_init (GdauiDsnEditor *config, GdauiDsnEditorClass *klass)
 
 	label = gtk_label_new_with_mnemonic (_("_System wide data source:"));
 	gtk_misc_set_alignment (GTK_MISC (label), 0, -1.);
+	gtk_size_group_add_widget (labels_size_group, label);
 	gtk_widget_show (label);
 	gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2, GTK_FILL, GTK_FILL, 0, 0);
 	config->priv->is_system = gtk_check_button_new ();
@@ -161,6 +168,7 @@ gdaui_dsn_editor_init (GdauiDsnEditor *config, GdauiDsnEditorClass *klass)
 	gtk_label_set_markup_with_mnemonic (GTK_LABEL (label), str);
 	g_free (str);
         gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+	gtk_size_group_add_widget (labels_size_group, label);
 	gtk_widget_show (label);
 	gtk_table_attach (GTK_TABLE (table), label, 0, 1, 2, 3, GTK_FILL, GTK_FILL, 0, 0);
 	config->priv->wprovider = gdaui_provider_selector_new ();
@@ -173,6 +181,7 @@ gdaui_dsn_editor_init (GdauiDsnEditor *config, GdauiDsnEditorClass *klass)
 
 	label = gtk_label_new_with_mnemonic (_("_Description:"));
 	gtk_misc_set_alignment (GTK_MISC (label), 0, -1.);
+	gtk_size_group_add_widget (labels_size_group, label);
 	gtk_widget_show (label);
 	gtk_table_attach (GTK_TABLE (table), label, 0, 1, 3, 4, GTK_FILL, GTK_FILL, 0, 0);
 	config->priv->wdesc = gtk_entry_new ();
@@ -206,6 +215,8 @@ gdaui_dsn_editor_init (GdauiDsnEditor *config, GdauiDsnEditorClass *klass)
 	g_signal_connect (G_OBJECT (config->priv->dsn_spec), "changed",
 			  G_CALLBACK (field_changed_cb), config);
 	gtk_container_add (GTK_CONTAINER (config->priv->dsn_spec_expander), config->priv->dsn_spec);
+	_gdaui_provider_spec_editor_add_to_size_group (GDAUI_PROVIDER_SPEC_EDITOR (config->priv->dsn_spec), labels_size_group,
+						       GDAUI_BASIC_FORM_LABELS);
 	gtk_widget_show (config->priv->dsn_spec);
 
 	/* connection's authentication */
@@ -219,7 +230,11 @@ gdaui_dsn_editor_init (GdauiDsnEditor *config, GdauiDsnEditorClass *klass)
 	g_signal_connect (G_OBJECT (config->priv->dsn_auth), "changed",
 			  G_CALLBACK (field_changed_cb), config);
 	gtk_container_add (GTK_CONTAINER (config->priv->dsn_auth_expander), config->priv->dsn_auth);
+	_gdaui_provider_auth_editor_add_to_size_group (GDAUI_PROVIDER_AUTH_EDITOR (config->priv->dsn_auth), labels_size_group,
+						       GDAUI_BASIC_FORM_LABELS);
 	gtk_widget_show (config->priv->dsn_auth);
+
+	g_object_unref (labels_size_group);
 }
 
 static void
diff --git a/libgda-ui/internal/Makefile.am b/libgda-ui/internal/Makefile.am
index dc58b46..d40534a 100644
--- a/libgda-ui/internal/Makefile.am
+++ b/libgda-ui/internal/Makefile.am
@@ -1,8 +1,6 @@
 noinst_LTLIBRARIES = libgda-ui-internal.la
 
 AM_CPPFLAGS = \
-	-I$(top_builddir)/ui \
-	-I$(top_srcdir)/ui \
 	-I$(top_builddir) \
 	-I$(top_srcdir) \
 	-I$(top_srcdir)/libgda \
diff --git a/libgda-ui/internal/gdaui-provider-auth-editor.c b/libgda-ui/internal/gdaui-provider-auth-editor.c
index 0bf1dfd..ef4262f 100644
--- a/libgda-ui/internal/gdaui-provider-auth-editor.c
+++ b/libgda-ui/internal/gdaui-provider-auth-editor.c
@@ -32,6 +32,9 @@ struct _GdauiProviderAuthEditorPrivate {
 
 	GtkWidget       *auth_widget;
 	gboolean         auth_needed;
+
+	GtkSizeGroup    *labels_size_group;
+	GtkSizeGroup    *entries_size_group;
 };
 
 static void gdaui_provider_auth_editor_class_init (GdauiProviderAuthEditorClass *klass);
@@ -121,6 +124,14 @@ gdaui_provider_auth_editor_finalize (GObject *object)
 	g_return_if_fail (GDAUI_IS_PROVIDER_AUTH_EDITOR (auth));
 
 	/* free memory */
+	if (auth->priv->labels_size_group) {
+		g_object_unref (auth->priv->labels_size_group);
+		auth->priv->labels_size_group = NULL;
+	}
+	if (auth->priv->entries_size_group) {
+		g_object_unref (auth->priv->entries_size_group);
+		auth->priv->entries_size_group = NULL;
+	}
 	if (auth->priv->provider)
 		g_free (auth->priv->provider);
 
@@ -257,6 +268,15 @@ _gdaui_provider_auth_editor_set_provider (GdauiProviderAuthEditor *auth, const g
 	if (auth->priv->auth_widget) {
 		gtk_container_add (GTK_CONTAINER (auth), auth->priv->auth_widget);
 		gtk_widget_show (auth->priv->auth_widget);
+
+		if (auth->priv->labels_size_group)
+			gdaui_basic_form_add_to_size_group (GDAUI_BASIC_FORM (auth->priv->auth_widget),
+							    auth->priv->labels_size_group,
+							    GDAUI_BASIC_FORM_LABELS);
+		if (auth->priv->entries_size_group)
+			gdaui_basic_form_add_to_size_group (GDAUI_BASIC_FORM (auth->priv->auth_widget),
+							    auth->priv->entries_size_group,
+							    GDAUI_BASIC_FORM_ENTRIES);
 	}
 
 	g_signal_emit_by_name (auth, "changed");
@@ -428,3 +448,25 @@ _gdaui_provider_auth_editor_set_auth (GdauiProviderAuthEditor *auth, const gchar
 
 	g_signal_emit_by_name (auth, "changed");
 }
+
+/**
+ * _gdaui_provider_auth_editor_add_to_size_group
+ * @auth: a #GdauiProviderAuthEditor widget
+ */
+void
+_gdaui_provider_auth_editor_add_to_size_group (GdauiProviderAuthEditor *auth, GtkSizeGroup *size_group,
+					       GdauiBasicFormPart part)
+{
+	g_return_if_fail (GDAUI_IS_PROVIDER_AUTH_EDITOR (auth));
+	g_return_if_fail (GTK_IS_SIZE_GROUP (size_group));
+
+	g_return_if_fail (! ((auth->priv->labels_size_group && (part == GDAUI_BASIC_FORM_LABELS)) ||
+			     (auth->priv->entries_size_group && (part == GDAUI_BASIC_FORM_ENTRIES))));
+	if (part == GDAUI_BASIC_FORM_LABELS)
+		auth->priv->labels_size_group = g_object_ref (size_group);
+	else
+		auth->priv->entries_size_group = g_object_ref (size_group);
+
+	if (auth->priv->auth_widget)
+		gdaui_basic_form_add_to_size_group (GDAUI_BASIC_FORM (auth->priv->auth_widget), size_group, part);
+}
diff --git a/libgda-ui/internal/gdaui-provider-auth-editor.h b/libgda-ui/internal/gdaui-provider-auth-editor.h
index 532de8b..a957fb0 100644
--- a/libgda-ui/internal/gdaui-provider-auth-editor.h
+++ b/libgda-ui/internal/gdaui-provider-auth-editor.h
@@ -23,7 +23,7 @@
 #ifndef __GDAUI_PROVIDER_AUTH_EDITOR_H__
 #define __GDAUI_PROVIDER_AUTH_EDITOR_H__
 
-#include <gtk/gtk.h>
+#include <libgda-ui/gdaui-basic-form.h>
 
 G_BEGIN_DECLS
 
@@ -58,6 +58,8 @@ gboolean    _gdaui_provider_auth_editor_is_valid     (GdauiProviderAuthEditor *a
 gchar      *_gdaui_provider_auth_editor_get_auth     (GdauiProviderAuthEditor *auth);
 void        _gdaui_provider_auth_editor_set_auth     (GdauiProviderAuthEditor *auth, const gchar *auth_string);
 
+void        _gdaui_provider_auth_editor_add_to_size_group (GdauiProviderAuthEditor *auth, GtkSizeGroup *size_group,
+							   GdauiBasicFormPart part);
 G_END_DECLS
 
 #endif
diff --git a/libgda-ui/internal/gdaui-provider-spec-editor.c b/libgda-ui/internal/gdaui-provider-spec-editor.c
index 8076186..4738010 100644
--- a/libgda-ui/internal/gdaui-provider-spec-editor.c
+++ b/libgda-ui/internal/gdaui-provider-spec-editor.c
@@ -37,6 +37,9 @@ struct _GdauiProviderSpecEditorPrivate {
 	WidgetType   type;
 	GtkWidget   *form; /* what it really is is determined by @type */
 	gchar       *cnc_string; /* as it was last updated */
+
+	GtkSizeGroup *labels_size_group;
+	GtkSizeGroup *entries_size_group;
 };
 
 static void gdaui_provider_spec_editor_class_init (GdauiProviderSpecEditorClass *klass);
@@ -210,6 +213,12 @@ adapt_form_widget (GdauiProviderSpecEditor *spec)
 		g_object_unref (dset);
 		
 		spec->priv->form = wid;
+		if (spec->priv->labels_size_group)
+			gdaui_basic_form_add_to_size_group (GDAUI_BASIC_FORM (spec->priv->form), spec->priv->labels_size_group,
+							    GDAUI_BASIC_FORM_LABELS);
+		if (spec->priv->entries_size_group)
+			gdaui_basic_form_add_to_size_group (GDAUI_BASIC_FORM (spec->priv->form), spec->priv->entries_size_group,
+							    GDAUI_BASIC_FORM_ENTRIES);
 		update_form_contents (spec);
 		g_signal_connect (G_OBJECT (wid), "holder-changed",
 				  G_CALLBACK (dsn_form_changed), spec);
@@ -237,6 +246,14 @@ gdaui_provider_spec_editor_dispose (GObject *object)
 	g_return_if_fail (GDAUI_IS_PROVIDER_SPEC_EDITOR (spec));
 
 	/* free memory */
+	if (spec->priv->labels_size_group) {
+		g_object_unref (spec->priv->labels_size_group);
+		spec->priv->labels_size_group = NULL;
+	}
+	if (spec->priv->entries_size_group) {
+		g_object_unref (spec->priv->entries_size_group);
+		spec->priv->entries_size_group = NULL;
+	}
 
 	/* chain to parent class */
 	parent_class->dispose (object);
@@ -485,3 +502,24 @@ _gdaui_provider_spec_editor_set_specs (GdauiProviderSpecEditor *spec, const gcha
 
 	update_form_contents (spec);
 }
+
+/**
+ * _gdaui_provider_spec_editor_add_to_size_group
+ * @spec: a #GdauiProviderSpecEditor widget
+ */
+void
+_gdaui_provider_spec_editor_add_to_size_group (GdauiProviderSpecEditor *spec, GtkSizeGroup *size_group,
+					       GdauiBasicFormPart part)
+{
+	g_return_if_fail (GDAUI_IS_PROVIDER_SPEC_EDITOR (spec));
+	g_return_if_fail (GTK_IS_SIZE_GROUP (size_group));
+
+	g_return_if_fail (! ((spec->priv->labels_size_group && (part == GDAUI_BASIC_FORM_LABELS)) ||
+			     (spec->priv->entries_size_group && (part == GDAUI_BASIC_FORM_ENTRIES))));
+	if (part == GDAUI_BASIC_FORM_LABELS)
+		spec->priv->labels_size_group = g_object_ref (size_group);
+	else
+		spec->priv->entries_size_group = g_object_ref (size_group);
+
+	gdaui_basic_form_add_to_size_group (GDAUI_BASIC_FORM (spec->priv->form), size_group, part);
+}
diff --git a/libgda-ui/internal/gdaui-provider-spec-editor.h b/libgda-ui/internal/gdaui-provider-spec-editor.h
index a5d1e68..6aaa9b5 100644
--- a/libgda-ui/internal/gdaui-provider-spec-editor.h
+++ b/libgda-ui/internal/gdaui-provider-spec-editor.h
@@ -23,7 +23,7 @@
 #ifndef __GDAUI_PROVIDER_SPEC_EDITOR_H__
 #define __GDAUI_PROVIDER_SPEC_EDITOR_H__
 
-#include <gtk/gtk.h>
+#include <libgda-ui/gdaui-basic-form.h>
 
 G_BEGIN_DECLS
 
@@ -57,6 +57,9 @@ gboolean    _gdaui_provider_spec_editor_is_valid     (GdauiProviderSpecEditor *s
 gchar      *_gdaui_provider_spec_editor_get_specs    (GdauiProviderSpecEditor *spec);
 void        _gdaui_provider_spec_editor_set_specs    (GdauiProviderSpecEditor *spec, const gchar *specs_string);
 
+void        _gdaui_provider_spec_editor_add_to_size_group (GdauiProviderSpecEditor *spec, GtkSizeGroup *size_group,
+							   GdauiBasicFormPart part);
+
 G_END_DECLS
 
 #endif



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]