aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/dialogs
diff options
context:
space:
mode:
authorRodrigo Moya <rodrigo@novell.com>2004-06-15 19:57:17 +0800
committerRodrigo Moya <rodrigo@src.gnome.org>2004-06-15 19:57:17 +0800
commitb2b00bfbcdf007a8efa9a73d2f98f28535c51652 (patch)
treeaea61da6eb31bb5715a8b0e1a2ac0b6ac610dd70 /calendar/gui/dialogs
parentfcdc088479a6d283beaec7cae7d4295601be76ef (diff)
downloadgsoc2013-evolution-b2b00bfbcdf007a8efa9a73d2f98f28535c51652.tar
gsoc2013-evolution-b2b00bfbcdf007a8efa9a73d2f98f28535c51652.tar.gz
gsoc2013-evolution-b2b00bfbcdf007a8efa9a73d2f98f28535c51652.tar.bz2
gsoc2013-evolution-b2b00bfbcdf007a8efa9a73d2f98f28535c51652.tar.lz
gsoc2013-evolution-b2b00bfbcdf007a8efa9a73d2f98f28535c51652.tar.xz
gsoc2013-evolution-b2b00bfbcdf007a8efa9a73d2f98f28535c51652.tar.zst
gsoc2013-evolution-b2b00bfbcdf007a8efa9a73d2f98f28535c51652.zip
new function. (e_meeting_time_selector_construct): store some missing
2004-06-15 Rodrigo Moya <rodrigo@novell.com> * gui/e-meeting-time-sel.[ch] (e_meeting_time_selector_set_read_only): new function. (e_meeting_time_selector_construct): store some missing buttons in the EMeetingTimeSelector structure. * gui/dialogs/schedule-page.c (schedule_page_construct): connect to "client_changed" signal on the page. (client_changed_cb): new callback. (sensitize_widgets): new function. (schedule_page_fill_widgets): call sensitize_widgets(). svn path=/trunk/; revision=26344
Diffstat (limited to 'calendar/gui/dialogs')
-rw-r--r--calendar/gui/dialogs/schedule-page.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/calendar/gui/dialogs/schedule-page.c b/calendar/gui/dialogs/schedule-page.c
index d9f37b414f..0069208a81 100644
--- a/calendar/gui/dialogs/schedule-page.c
+++ b/calendar/gui/dialogs/schedule-page.c
@@ -194,6 +194,26 @@ schedule_page_focus_main_widget (CompEditorPage *page)
gtk_widget_grab_focus (GTK_WIDGET (priv->sel));
}
+static void
+sensitize_widgets (SchedulePage *spage)
+{
+ gboolean read_only;
+ SchedulePagePrivate *priv = spage->priv;
+
+ if (!e_cal_is_read_only (COMP_EDITOR_PAGE (spage)->client, &read_only, NULL))
+ read_only = TRUE;
+
+ e_meeting_time_selector_set_read_only (GTK_WIDGET (priv->sel), read_only);
+}
+
+static void
+client_changed_cb (CompEditorPage *page, ECal *client, gpointer user_data)
+{
+ SchedulePage *spage = SCHEDULE_PAGE (page);
+
+ sensitize_widgets (spage);
+}
+
/* Set date/time */
static void
update_time (SchedulePage *spage, ECalComponentDateTime *start_date, ECalComponentDateTime *end_date)
@@ -309,6 +329,8 @@ schedule_page_fill_widgets (CompEditorPage *page, ECalComponent *comp)
priv->updating = FALSE;
+ sensitize_widgets (spage);
+
return validated;
}
@@ -443,6 +465,8 @@ schedule_page_construct (SchedulePage *spage, EMeetingStore *ems)
return NULL;
}
+ g_signal_connect_after (G_OBJECT (spage), "client_changed",
+ G_CALLBACK (client_changed_cb), NULL);
return spage;
}