source-dialog: add GcalSourceDialog::set_source method

This commit is contained in:
Georges Basile Stavracas Neto
2015-05-25 12:31:05 -04:00
committed by Erick Pérez Castellanos
parent 95af5c72d3
commit fe44186446
2 changed files with 47 additions and 1 deletions
+43 -1
View File
@@ -18,15 +18,22 @@
#include "gcal-source-dialog.h"
#include "gcal-utils.h"
#include <glib/gi18n.h>
typedef struct
{
GtkWidget *add_button;
GtkWidget *calendar_color_button;
GtkWidget *cancel_button;
GtkWidget *headerbar;
GtkWidget *name_entry;
GtkWidget *stack;
/* flags */
gint mode : 1;
ESource *source;
/* manager */
GcalManager *manager;
@@ -154,8 +161,10 @@ gcal_source_dialog_class_init (GcalSourceDialogClass *klass)
gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass), "/org/gnome/calendar/source-dialog.ui");
gtk_widget_class_bind_template_child_private (widget_class, GcalSourceDialog, add_button);
gtk_widget_class_bind_template_child_private (widget_class, GcalSourceDialog, calendar_color_button);
gtk_widget_class_bind_template_child_private (widget_class, GcalSourceDialog, cancel_button);
gtk_widget_class_bind_template_child_private (widget_class, GcalSourceDialog, headerbar);
gtk_widget_class_bind_template_child_private (widget_class, GcalSourceDialog, name_entry);
gtk_widget_class_bind_template_child_private (widget_class, GcalSourceDialog, stack);
gtk_widget_class_bind_template_callback (widget_class, action_widget_activated);
@@ -215,5 +224,38 @@ gcal_source_dialog_set_mode (GcalSourceDialog *dialog,
gtk_stack_set_visible_child_name (GTK_STACK (priv->stack), edit_mode ? "edit" : "create");
if (!edit_mode)
gtk_header_bar_set_title (GTK_HEADER_BAR (priv->headerbar), "Add Calendar");
{
gtk_header_bar_set_title (GTK_HEADER_BAR (priv->headerbar), _("Add Calendar"));
gtk_header_bar_set_subtitle (GTK_HEADER_BAR (priv->headerbar), "");
}
}
/**
* gcal_source_dialog_set_source:
*
* Sets the source to be edited by the user.
*
* Returns:
*/
void
gcal_source_dialog_set_source (GcalSourceDialog *dialog,
ESource *source)
{
GcalSourceDialogPrivate *priv = dialog->priv;
GdkRGBA color;
priv->source = source;
/* color button */
gdk_rgba_parse (&color, get_color_name_from_source (source));
gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (priv->calendar_color_button), &color);
/* entry */
gtk_entry_set_text (GTK_ENTRY (priv->name_entry), e_source_get_display_name (source));
/* title */
gtk_header_bar_set_title (GTK_HEADER_BAR (priv->headerbar), e_source_get_display_name (source));
/* FIXME: account information on subtitle */
gtk_header_bar_set_subtitle (GTK_HEADER_BAR (priv->headerbar), "");
}
+4
View File
@@ -23,6 +23,7 @@
#include <glib-object.h>
#include "gcal-manager.h"
#include <libecal/libecal.h>
#include <gtk/gtk.h>
G_BEGIN_DECLS
@@ -50,6 +51,9 @@ void gcal_source_dialog_set_manager (GcalSourceDialog
void gcal_source_dialog_set_mode (GcalSourceDialog *dialog,
GcalSourceDialogMode mode);
void gcal_source_dialog_set_source (GcalSourceDialog *dialog,
ESource *source);
G_END_DECLS
#endif /* GCAL_SOURCE_DIALOG_H */