aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--calendar/ChangeLog8
-rw-r--r--calendar/gui/event-editor.c27
2 files changed, 28 insertions, 7 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog
index 40cd501fa9..834afcdc2f 100644
--- a/calendar/ChangeLog
+++ b/calendar/ChangeLog
@@ -1,5 +1,13 @@
2000-10-30 Federico Mena Quintero <federico@helixcode.com>
+ * gui/event-editor.c (sensitize_recur_widgets): New function. We
+ split it from the radio callback so that we can call it explicitly
+ from fill_recurrence_widgets().
+ (fill_recurrence_widgets): Call sensitize_recur_widgets() as
+ appropriate.
+
+2000-10-30 Federico Mena Quintero <federico@helixcode.com>
+
* gui/calendar-commands.c (new_calendar): Removed the geometry and
hidden arguments. This code is ancient.
(all_calendars): Made static. This sucks; configuration should be
diff --git a/calendar/gui/event-editor.c b/calendar/gui/event-editor.c
index f68bac0480..0ff3a10185 100644
--- a/calendar/gui/event-editor.c
+++ b/calendar/gui/event-editor.c
@@ -546,21 +546,19 @@ static const int recur_type_map[] = {
RECUR_CUSTOM,
-1
};
-
-/* Callback used when one of the recurrence type radio buttons is toggled. We
- * enable or the recurrence parameters.
+
+/* Sensitizes the recurrence widgets based on the state of the recurrence type
+ * radio group.
*/
static void
-recurrence_type_toggled_cb (GtkWidget *widget, gpointer data)
+sensitize_recur_widgets (EventEditor *ee)
{
- EventEditor *ee;
EventEditorPrivate *priv;
enum recur_type type;
- ee = EVENT_EDITOR (data);
priv = ee->priv;
- type = e_dialog_radio_get (widget, recur_type_map);
+ type = e_dialog_radio_get (priv->recurrence_none, recur_type_map);
switch (type) {
case RECUR_NONE:
@@ -582,6 +580,18 @@ recurrence_type_toggled_cb (GtkWidget *widget, gpointer data)
g_assert_not_reached ();
}
}
+
+/* Callback used when one of the recurrence type radio buttons is toggled. We
+ * enable or the recurrence parameters.
+ */
+static void
+recurrence_type_toggled_cb (GtkWidget *widget, gpointer data)
+{
+ EventEditor *ee;
+
+ ee = EVENT_EDITOR (data);
+ sensitize_recur_widgets (ee);
+}
/* Callback used when the recurrence interval option menu changes. We need to
* change the contents of the recurrence special widget.
@@ -1054,6 +1064,7 @@ fill_recurrence_widgets (EventEditor *ee)
&& !cal_component_has_rrules (priv->comp)
&& !cal_component_has_exrules (priv->comp)) {
e_dialog_radio_set (priv->recurrence_none, RECUR_NONE, recur_type_map);
+ sensitize_recur_widgets (ee);
return;
}
@@ -1190,6 +1201,7 @@ fill_recurrence_widgets (EventEditor *ee)
/* If we got here it means it is a simple recurrence */
e_dialog_radio_set (priv->recurrence_simple, RECUR_SIMPLE, recur_type_map);
+ sensitize_recur_widgets (ee);
e_dialog_spin_set (priv->recurrence_interval_value, r->interval);
fill_ending_date (ee, r);
@@ -1199,6 +1211,7 @@ fill_recurrence_widgets (EventEditor *ee)
custom:
e_dialog_radio_set (priv->recurrence_custom, RECUR_CUSTOM, recur_type_map);
+ sensitize_recur_widgets (ee);
out: