aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/gui')
-rw-r--r--calendar/gui/dialogs/calendar-setup.c54
-rw-r--r--calendar/gui/dialogs/calendar-setup.glade42
2 files changed, 76 insertions, 20 deletions
diff --git a/calendar/gui/dialogs/calendar-setup.c b/calendar/gui/dialogs/calendar-setup.c
index c5da074f4b..93270fea48 100644
--- a/calendar/gui/dialogs/calendar-setup.c
+++ b/calendar/gui/dialogs/calendar-setup.c
@@ -32,6 +32,7 @@
#include <gtk/gtkoptionmenu.h>
#include <libgnomeui/gnome-druid.h>
#include <libgnomeui/gnome-druid-page.h>
+#include <libgnomeui/gnome-color-picker.h>
#include <glade/glade.h>
#include <libedataserver/e-source-list.h>
#include <libecal/e-cal.h>
@@ -61,6 +62,7 @@ typedef struct
/* General page fields */
GtkWidget *name_entry;
+ GtkWidget *source_color;
/* Location page fields */
GtkWidget *uri_entry;
@@ -371,6 +373,29 @@ general_update_dialog (SourceDialog *source_dialog)
}
static void
+colorpicker_set_color (GnomeColorPicker *color, guint32 rgb)
+{
+ gnome_color_picker_set_i8 (color, (rgb & 0xff0000) >> 16, (rgb & 0xff00) >> 8, rgb & 0xff, 0xff);
+}
+
+static guint32
+colorpicker_get_color (GnomeColorPicker *color)
+{
+ guint8 r, g, b, a;
+ guint32 rgb = 0;
+
+ gnome_color_picker_get_i8 (color, &r, &g, &b, &a);
+
+ rgb = r;
+ rgb <<= 8;
+ rgb |= g;
+ rgb <<= 8;
+ rgb |= b;
+
+ return rgb;
+}
+
+static void
source_to_dialog (SourceDialog *source_dialog)
{
ESource *source = source_dialog->source;
@@ -419,6 +444,16 @@ source_to_dialog (SourceDialog *source_dialog)
if (source_dialog->refresh_spin)
g_signal_handlers_unblock_matched (source_dialog->refresh_spin, G_SIGNAL_MATCH_DATA,
0, 0, NULL, NULL, source_dialog);
+ if (source_dialog->source_color) {
+ guint32 color = 0xff00ff00;
+
+ if (source_dialog->source)
+ e_source_get_color (source_dialog->source, &color);
+ else
+ /* FIXME */;
+
+ colorpicker_set_color (GNOME_COLOR_PICKER (source_dialog->source_color), color);
+ }
}
static void
@@ -452,6 +487,10 @@ dialog_to_source (SourceDialog *source_dialog)
e_source_set_property (source, "refresh", refresh_str);
g_free (refresh_str);
}
+
+ if (source_dialog->source_color)
+ e_source_set_color (source,
+ colorpicker_get_color (GNOME_COLOR_PICKER (source_dialog->source_color)));
}
static gboolean
@@ -513,6 +552,13 @@ source_group_changed_sensitive (SourceDialog *source_dialog)
}
static void
+new_calendar_test_uri (SourceDialog *source_dialog)
+{
+ gnome_url_show (gtk_entry_get_text (GTK_ENTRY (source_dialog->uri_entry)),
+ NULL)
+}
+
+static void
new_calendar_cancel (SourceDialog *source_dialog)
{
gtk_widget_destroy (source_dialog->window);
@@ -584,13 +630,19 @@ calendar_setup_new_calendar (GtkWindow *parent)
source_dialog->add_button = glade_xml_get_widget (source_dialog->gui_xml, "add-button");
gtk_widget_set_sensitive (source_dialog->add_button, FALSE);
-
g_signal_connect_swapped (source_dialog->add_button, "clicked",
G_CALLBACK (new_calendar_add), source_dialog);
+
+ source_dialog->source_color = glade_xml_get_widget (source_dialog->gui_xml, "source-color");
+
g_object_weak_ref (G_OBJECT (source_dialog->window),
(GWeakNotify) source_dialog_destroy, source_dialog);
source_to_dialog (source_dialog);
+
+ g_signal_connect_swapped (glade_xml_get_widget (source_dialog->gui_xml, "uri-button"), "clicked",
+ G_CALLBACK (new_calendar_test_uri), source_dialog);
+
gtk_window_set_type_hint (GTK_WINDOW (source_dialog->window), GDK_WINDOW_TYPE_HINT_DIALOG);
gtk_window_set_modal (GTK_WINDOW (source_dialog->window), TRUE);
diff --git a/calendar/gui/dialogs/calendar-setup.glade b/calendar/gui/dialogs/calendar-setup.glade
index 0c5b0e1b05..bd67f362eb 100644
--- a/calendar/gui/dialogs/calendar-setup.glade
+++ b/calendar/gui/dialogs/calendar-setup.glade
@@ -36,7 +36,7 @@
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
- <property name="text" translatable="yes">Chillonia</property>
+ <property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char" translatable="yes">*</property>
<property name="activates_default">True</property>
@@ -209,6 +209,7 @@
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
+ <property name="mnemonic_widget">source-color</property>
</widget>
<packing>
<property name="left_attach">0</property>
@@ -221,24 +222,6 @@
</child>
<child>
- <widget class="GnomeColorPicker" id="group-color">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="dither">True</property>
- <property name="use_alpha">False</property>
- <property name="title" translatable="yes">Pick a color</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
<widget class="GtkHBox" id="uri-hbox">
<property name="visible">True</property>
<property name="homogeneous">False</property>
@@ -331,6 +314,7 @@
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
+ <property name="mnemonic_widget">group-optionmenu</property>
</widget>
<packing>
<property name="left_attach">0</property>
@@ -355,6 +339,7 @@
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
+ <property name="mnemonic_widget">name-entry</property>
</widget>
<packing>
<property name="left_attach">0</property>
@@ -365,6 +350,24 @@
<property name="y_options"></property>
</packing>
</child>
+
+ <child>
+ <widget class="GnomeColorPicker" id="source-color">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="dither">True</property>
+ <property name="use_alpha">False</property>
+ <property name="title" translatable="yes">Pick a color</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
</widget>
<packing>
<property name="padding">0</property>
@@ -1290,6 +1293,7 @@
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
+ <property name="mnemonic_widget">group-color</property>
</widget>
<packing>
<property name="left_attach">0</property>