aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/calendar-component.c
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/gui/calendar-component.c')
-rw-r--r--calendar/gui/calendar-component.c38
1 files changed, 34 insertions, 4 deletions
diff --git a/calendar/gui/calendar-component.c b/calendar/gui/calendar-component.c
index 5b01f5563e..2cc987e31d 100644
--- a/calendar/gui/calendar-component.c
+++ b/calendar/gui/calendar-component.c
@@ -104,6 +104,8 @@ typedef struct
EUserCreatableItemsHandler *creatable_items_handler;
EActivityHandler *activity_handler;
+
+ float vpane_pos;
} CalendarComponentView;
struct _CalendarComponentPrivate {
@@ -127,6 +129,22 @@ struct _CalendarComponentPrivate {
extern ECompEditorRegistry *comp_editor_registry;
static void
+calcomp_vpane_realized (GtkWidget *vpane, CalendarComponentView *view)
+{
+ gtk_paned_set_position (GTK_PANED (vpane), view->vpane_pos*vpane->allocation.height);
+}
+
+static gboolean
+calcomp_vpane_resized (GtkWidget *vpane, GdkEventButton *e, CalendarComponentView *view)
+{
+
+ view->vpane_pos = gtk_paned_get_position (GTK_PANED (vpane));
+ calendar_config_set_tag_vpane_pos (view->vpane_pos/(float)vpane->allocation.height);
+
+ return FALSE;
+}
+
+static void
ensure_sources (CalendarComponent *component)
{
GSList *groups;
@@ -1248,7 +1266,7 @@ create_component_view (CalendarComponent *calendar_component)
{
CalendarComponentPrivate *priv;
CalendarComponentView *component_view;
- GtkWidget *selector_scrolled_window, *vbox;
+ GtkWidget *selector_scrolled_window, *vbox, *vpane;
GtkWidget *statusbar_widget;
guint not;
AtkObject *a11y;
@@ -1258,9 +1276,16 @@ create_component_view (CalendarComponent *calendar_component)
/* Create the calendar component view */
component_view = g_new0 (CalendarComponentView, 1);
+ vpane = gtk_vpaned_new ();
+ g_signal_connect_after (vpane, "realize",
+ G_CALLBACK(calcomp_vpane_realized), component_view);
+ g_signal_connect (vpane, "button_release_event",
+ G_CALLBACK (calcomp_vpane_resized), component_view);
+ gtk_widget_show (vpane);
/* Add the source lists */
component_view->source_list = g_object_ref (priv->source_list);
component_view->task_source_list = g_object_ref (priv->task_source_list);
+ component_view->vpane_pos = calendar_config_get_tag_vpane_pos ();
/* Create sidebar selector */
component_view->source_selector = e_source_selector_new (calendar_component->priv->source_list);
@@ -1298,8 +1323,10 @@ create_component_view (CalendarComponent *calendar_component)
gtk_box_pack_start(GTK_BOX (vbox), GTK_WIDGET (component_view->info_label), FALSE, TRUE, 0);
gtk_box_pack_start(GTK_BOX (vbox), selector_scrolled_window, TRUE, TRUE, 0);
gtk_widget_show (vbox);
-
- component_view->sidebar_control = bonobo_control_new (vbox);
+
+ gtk_paned_pack1 (GTK_PANED (vpane), vbox, FALSE, TRUE);
+
+ component_view->sidebar_control = bonobo_control_new (vpane);
/* Create main view */
component_view->view_control = control_factory_new_control ();
@@ -1308,9 +1335,11 @@ create_component_view (CalendarComponent *calendar_component)
return NULL;
}
-
+
component_view->calendar = (GnomeCalendar *) bonobo_control_get_widget (component_view->view_control);
+ gtk_paned_pack2 (GTK_PANED (vpane), gnome_calendar_get_tag (component_view->calendar), FALSE, TRUE);
+
/* This signal is thrown if backends die - we update the selector */
g_signal_connect (component_view->calendar, "source_added",
G_CALLBACK (source_added_cb), component_view);
@@ -1616,6 +1645,7 @@ calendar_component_init (CalendarComponent *component)
component->priv = priv;
ensure_sources (component);
+
if (!e_cal_get_sources (&priv->task_source_list, E_CAL_SOURCE_TYPE_TODO, NULL))
;
}