aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--addressbook/ChangeLog8
-rw-r--r--addressbook/gui/component/apps_evolution_addressbook.schemas.in.in15
-rw-r--r--addressbook/gui/widgets/e-addressbook-view.c39
3 files changed, 58 insertions, 4 deletions
diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog
index c192eb56c8..0ff8e4dec2 100644
--- a/addressbook/ChangeLog
+++ b/addressbook/ChangeLog
@@ -1,3 +1,11 @@
+2004-01-15 Hans Petter Jansson <hpj@ximian.com>
+
+ * gui/widgets/e-addressbook-view.c (set_paned_position): Implement.
+ (get_paned_position): Implement.
+ (eab_view_new): Connect signal to get paned position changes.
+ Remove old hack.
+ (display_view): Set paned position properly.
+
2004-01-12 JP Rosevear <jpr@ximian.com>
* gui/component/addressbook-component.c (impl_upgradeFromVersion):
diff --git a/addressbook/gui/component/apps_evolution_addressbook.schemas.in.in b/addressbook/gui/component/apps_evolution_addressbook.schemas.in.in
index 82af9d0843..6008c11ff3 100644
--- a/addressbook/gui/component/apps_evolution_addressbook.schemas.in.in
+++ b/addressbook/gui/component/apps_evolution_addressbook.schemas.in.in
@@ -38,5 +38,18 @@
</locale>
</schema>
+ <!-- View state -->
+
+ <schema>
+ <key>/schemas/apps/evolution/addressbook/display/vpane_position</key>
+ <applyto>/apps/evolution/addressbook/display/vpane_position</applyto>
+ <owner>evolution-addressbook</owner>
+ <type>int</type>
+ <default></default>
+ <locale name="C">
+ <short>Position of the vertical pane in main view</short>
+ </locale>
+ </schema>
+
</schemalist>
-</gconfschemafile> \ No newline at end of file
+</gconfschemafile>
diff --git a/addressbook/gui/widgets/e-addressbook-view.c b/addressbook/gui/widgets/e-addressbook-view.c
index 14179c15af..3e58c2651c 100644
--- a/addressbook/gui/widgets/e-addressbook-view.c
+++ b/addressbook/gui/widgets/e-addressbook-view.c
@@ -357,6 +357,38 @@ eab_view_dispose (GObject *object)
G_OBJECT_CLASS(parent_class)->dispose(object);
}
+static void
+set_paned_position (EABView *eav)
+{
+ GConfClient *gconf_client;
+ gint pos;
+
+ g_print (G_STRLOC "\n");
+
+ gconf_client = gconf_client_get_default ();
+ pos = gconf_client_get_int (gconf_client, "/apps/evolution/addressbook/display/vpane_position", NULL);
+ if (pos < 1)
+ pos = 144;
+
+ gtk_paned_set_position (GTK_PANED (eav->paned), pos);
+}
+
+static gboolean
+get_paned_position (EABView *eav)
+{
+ GConfClient *gconf_client;
+ gint pos;
+
+ g_print (G_STRLOC "\n");
+
+ gconf_client = gconf_client_get_default ();
+
+ pos = gtk_paned_get_position (GTK_PANED (eav->paned));
+ gconf_client_set_int (gconf_client, "/apps/evolution/addressbook/display/vpane_position", pos, NULL);
+
+ return FALSE;
+}
+
GtkWidget*
eab_view_new (void)
{
@@ -397,6 +429,8 @@ eab_view_new (void)
/* create the paned window and contact display */
eav->paned = gtk_vpaned_new ();
gtk_box_pack_start (GTK_BOX (eav), eav->paned, TRUE, TRUE, 0);
+ g_signal_connect_swapped (eav->paned, "button_release_event",
+ G_CALLBACK (get_paned_position), eav);
eav->widget = gtk_label_new ("empty label here");
gtk_container_add (GTK_CONTAINER (eav->paned), eav->widget);
@@ -414,9 +448,6 @@ eab_view_new (void)
gtk_widget_show (eav->scrolled);
gtk_widget_show (eav->paned);
- /* XXX hack */
- gtk_paned_set_position (GTK_PANED (eav->paned), 144);
-
/* gtk selection crap */
eav->invisible = gtk_invisible_new ();
@@ -508,6 +539,8 @@ display_view(GalViewInstance *instance,
}
#endif
address_view->current_view = view;
+
+ set_paned_position (address_view);
}
static void