aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/event-editor-utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/gui/event-editor-utils.c')
-rw-r--r--calendar/gui/event-editor-utils.c228
1 files changed, 228 insertions, 0 deletions
diff --git a/calendar/gui/event-editor-utils.c b/calendar/gui/event-editor-utils.c
new file mode 100644
index 0000000000..8361a493c5
--- /dev/null
+++ b/calendar/gui/event-editor-utils.c
@@ -0,0 +1,228 @@
+#include <config.h>
+#include <gnome.h>
+#include <glade/glade.h>
+#include <gui/event-editor-utils.h>
+
+
+/***************/
+/*** storing ***/
+/***************/
+
+void
+store_to_editable (GladeXML *gui, char *widget_name, gchar *content)
+{
+ GtkWidget *widget = glade_xml_get_widget (gui, widget_name);
+ GtkEditable *editable = GTK_EDITABLE (widget);
+ int position = 0;
+
+ if (! content)
+ return;
+
+ gtk_editable_delete_text (editable, 0, -1);
+ gtk_editable_insert_text (editable, content,
+ strlen (content), &position);
+}
+
+
+void
+store_to_toggle (GladeXML *gui, char *widget_name, gboolean content)
+{
+ GtkWidget *widget = glade_xml_get_widget (gui, widget_name);
+ GtkToggleButton *toggle = GTK_TOGGLE_BUTTON (widget);
+ gtk_toggle_button_set_active (toggle, content);
+}
+
+
+void
+store_to_spin (GladeXML *gui, char *widget_name, gint content)
+{
+ GtkWidget *widget;
+ GtkSpinButton *spin;
+
+ widget = glade_xml_get_widget (gui, widget_name);
+ spin = GTK_SPIN_BUTTON (widget);
+ gtk_spin_button_set_value (spin, (gfloat) content);
+}
+
+
+void
+store_to_alarm_unit (GladeXML *gui, char *widget_name, enum AlarmUnit content)
+{
+ GtkWidget *widget;
+ GtkOptionMenu *option;
+
+ widget = glade_xml_get_widget (gui, widget_name);
+ option = GTK_OPTION_MENU (widget);
+
+ switch (content) {
+ case ALARM_MINUTES:
+ gtk_option_menu_set_history (option, 0); break;
+ case ALARM_HOURS:
+ gtk_option_menu_set_history (option, 1); break;
+ case ALARM_DAYS:
+ gtk_option_menu_set_history (option, 2); break;
+ }
+}
+
+
+void
+store_to_option (GladeXML *gui, char *widget_name, gint content)
+{
+ GtkWidget *widget;
+ GtkOptionMenu *option;
+
+ widget = glade_xml_get_widget (gui, widget_name);
+ option = GTK_OPTION_MENU (widget);
+
+ gtk_option_menu_set_history (option, content);
+}
+
+
+void
+store_to_gnome_dateedit (GladeXML *gui, char *widget_name, time_t content)
+{
+ GtkWidget *widget;
+ GnomeDateEdit *gde;
+
+ widget = glade_xml_get_widget (gui, widget_name);
+ gde = GNOME_DATE_EDIT (widget);
+ gnome_date_edit_set_time (gde, content);
+}
+
+
+
+/******************/
+/*** extracting ***/
+/******************/
+
+
+gchar *extract_from_editable (GladeXML *gui, char *widget_name)
+{
+ GtkWidget *widget;
+ GtkEditable *editable;
+ gchar *content;
+
+ widget = glade_xml_get_widget (gui, widget_name);
+ editable = GTK_EDITABLE (widget);
+ content = gtk_editable_get_chars (editable, 0, -1);
+ return content;
+}
+
+
+gboolean extract_from_toggle (GladeXML *gui, char *widget_name)
+{
+ GtkWidget *widget;
+ GtkToggleButton *toggle;
+ gboolean content;
+
+ widget = glade_xml_get_widget (gui, widget_name);
+ toggle = GTK_TOGGLE_BUTTON (widget);
+ content = gtk_toggle_button_get_active (toggle);
+ return content;
+}
+
+
+gint extract_from_spin (GladeXML *gui, char *widget_name)
+{
+ GtkWidget *widget;
+ GtkSpinButton *spin;
+ gint content;
+
+ widget = glade_xml_get_widget (gui, widget_name);
+ spin = GTK_SPIN_BUTTON (widget);
+ content = gtk_spin_button_get_value_as_int (spin);
+ return content;
+}
+
+
+#if 0
+char *extract_from_option (GladeXML *gui, char *widget_name)
+{
+ GtkWidget *widget;
+ GtkOptionMenu *option;
+ GtkWidget *picked;
+ GtkMenu *menu;
+ GtkMenuItem *menu_item;
+ //GList *children;
+ GtkLabel *label;
+ char *content = NULL;
+
+ widget = glade_xml_get_widget (gui, widget_name);
+ option = GTK_OPTION_MENU (widget);
+ picked = gtk_option_menu_get_menu (option);
+ menu = GTK_MENU (picked);
+ menu_item = GTK_MENU_ITEM (gtk_menu_get_active (menu));
+ label = GTK_LABEL (GTK_BIN (menu_item)->child);
+ gtk_label_get (label, &content);
+
+ return content;
+}
+#endif /* 0 */
+
+
+#if 0
+enum AlarmUnit
+extract_from_alarm_unit (GladeXML *gui, char *widget_name)
+{
+ GtkWidget *option;
+ enum AlarmUnit u;
+
+ option = glade_xml_get_widget (gui, widget_name);
+ u = (enum AlarmUnit) gtk_object_get_data (GTK_OBJECT (option), "unit");
+ return u;
+}
+#endif /* 0 */
+
+
+enum AlarmUnit
+extract_from_alarm_unit (GladeXML *gui, char *widget_name)
+{
+ GtkWidget *widget;
+ GtkOptionMenu *option;
+ GtkMenu *menu;
+ GtkMenuShell *menu_shell;
+ GtkMenuItem *menu_item;
+ enum AlarmUnit content;
+
+ widget = glade_xml_get_widget (gui, widget_name);
+ option = GTK_OPTION_MENU (widget);
+ menu = GTK_MENU (gtk_option_menu_get_menu (option));
+ menu_shell = GTK_MENU_SHELL (menu);
+ menu_item = GTK_MENU_ITEM (gtk_menu_get_active (menu));
+
+ content = g_list_index (menu_shell->children, (gpointer) menu_item);
+ return (content >= 0) ? content : ALARM_MINUTES;
+}
+
+
+guint
+extract_from_option (GladeXML *gui, char *widget_name)
+{
+ GtkWidget *widget;
+ GtkOptionMenu *option;
+ GtkMenu *menu;
+ GtkMenuShell *menu_shell;
+ GtkMenuItem *menu_item;
+ enum AlarmUnit content;
+
+ widget = glade_xml_get_widget (gui, widget_name);
+ option = GTK_OPTION_MENU (widget);
+ menu = GTK_MENU (gtk_option_menu_get_menu (option));
+ menu_shell = GTK_MENU_SHELL (menu);
+ menu_item = GTK_MENU_ITEM (gtk_menu_get_active (menu));
+
+ content = g_list_index (menu_shell->children, (gpointer) menu_item);
+ return (content >= 0) ? content : 0;
+}
+
+
+time_t extract_from_gnome_dateedit (GladeXML *gui, char *widget_name)
+{
+ GtkWidget *de;
+ time_t t;
+
+ de = glade_xml_get_widget (gui, widget_name);
+ t = gnome_date_edit_get_date (GNOME_DATE_EDIT (de));
+ return t;
+}
+