calendar-management-page: Pass GcalCalendar

This commit is contained in:
Georges Basile Stavracas Neto
2019-06-25 14:16:47 -03:00
parent 47bed7bc77
commit 33fc75ca01
6 changed files with 20 additions and 26 deletions
@@ -74,7 +74,7 @@ struct _GcalCalendarManagementDialog
static void on_page_switched_cb (GcalCalendarManagementPage *page, static void on_page_switched_cb (GcalCalendarManagementPage *page,
const gchar *next_page, const gchar *next_page,
gpointer page_data, GcalCalendar *calendar,
GcalCalendarManagementDialog *self); GcalCalendarManagementDialog *self);
G_DEFINE_TYPE (GcalCalendarManagementDialog, gcal_calendar_management_dialog, GTK_TYPE_DIALOG) G_DEFINE_TYPE (GcalCalendarManagementDialog, gcal_calendar_management_dialog, GTK_TYPE_DIALOG)
@@ -96,7 +96,7 @@ static GParamSpec *properties[N_PROPS] = { NULL, };
static void static void
set_page (GcalCalendarManagementDialog *self, set_page (GcalCalendarManagementDialog *self,
const gchar *page_name, const gchar *page_name,
gpointer page_data) GcalCalendar *calendar)
{ {
GcalCalendarManagementPage *current_page; GcalCalendarManagementPage *current_page;
guint i; guint i;
@@ -113,7 +113,7 @@ set_page (GcalCalendarManagementDialog *self,
continue; continue;
gtk_stack_set_visible_child (GTK_STACK (self->stack), GTK_WIDGET (page)); gtk_stack_set_visible_child (GTK_STACK (self->stack), GTK_WIDGET (page));
gcal_calendar_management_page_activate (page, page_data); gcal_calendar_management_page_activate (page, calendar);
gtk_header_bar_set_title (GTK_HEADER_BAR (self->headerbar), gtk_header_bar_set_title (GTK_HEADER_BAR (self->headerbar),
gcal_calendar_management_page_get_title (page)); gcal_calendar_management_page_get_title (page));
@@ -174,12 +174,12 @@ setup_context (GcalCalendarManagementDialog *self)
static void static void
on_page_switched_cb (GcalCalendarManagementPage *page, on_page_switched_cb (GcalCalendarManagementPage *page,
const gchar *next_page, const gchar *next_page,
gpointer page_data, GcalCalendar *calendar,
GcalCalendarManagementDialog *self) GcalCalendarManagementDialog *self)
{ {
GCAL_ENTRY; GCAL_ENTRY;
set_page (self, next_page, page_data); set_page (self, next_page, calendar);
GCAL_EXIT; GCAL_EXIT;
} }
@@ -51,7 +51,7 @@ gcal_calendar_management_page_default_init (GcalCalendarManagementPageInterface
G_TYPE_NONE, G_TYPE_NONE,
2, 2,
G_TYPE_STRING, G_TYPE_STRING,
G_TYPE_POINTER); GCAL_TYPE_CALENDAR);
} }
const gchar* const gchar*
@@ -74,14 +74,14 @@ gcal_calendar_management_page_get_title (GcalCalendarManagementPage *self)
void void
gcal_calendar_management_page_activate (GcalCalendarManagementPage *self, gcal_calendar_management_page_activate (GcalCalendarManagementPage *self,
gpointer page_data) GcalCalendar *calendar)
{ {
g_return_if_fail (GCAL_IS_CALENDAR_MANAGEMENT_PAGE (self)); g_return_if_fail (GCAL_IS_CALENDAR_MANAGEMENT_PAGE (self));
if (GCAL_CALENDAR_MANAGEMENT_PAGE_GET_IFACE (self)->activate) if (GCAL_CALENDAR_MANAGEMENT_PAGE_GET_IFACE (self)->activate)
{ {
g_debug ("Activating %s", G_OBJECT_TYPE_NAME (self)); g_debug ("Activating %s", G_OBJECT_TYPE_NAME (self));
GCAL_CALENDAR_MANAGEMENT_PAGE_GET_IFACE (self)->activate (self, page_data); GCAL_CALENDAR_MANAGEMENT_PAGE_GET_IFACE (self)->activate (self, calendar);
} }
} }
@@ -100,11 +100,11 @@ gcal_calendar_management_page_deactivate (GcalCalendarManagementPage *self)
void void
gcal_calendar_management_page_switch_page (GcalCalendarManagementPage *self, gcal_calendar_management_page_switch_page (GcalCalendarManagementPage *self,
const gchar *page_name, const gchar *page_name,
gpointer page_data) GcalCalendar *calendar)
{ {
g_return_if_fail (GCAL_IS_CALENDAR_MANAGEMENT_PAGE (self)); g_return_if_fail (GCAL_IS_CALENDAR_MANAGEMENT_PAGE (self));
g_signal_emit (self, signals[SWITCH_PAGE], 0, page_name, page_data); g_signal_emit (self, signals[SWITCH_PAGE], 0, page_name, calendar);
} }
GtkHeaderBar* GtkHeaderBar*
@@ -22,6 +22,8 @@
#include <gtk/gtk.h> #include <gtk/gtk.h>
#include "gcal-calendar.h"
G_BEGIN_DECLS G_BEGIN_DECLS
#define GCAL_TYPE_CALENDAR_MANAGEMENT_PAGE (gcal_calendar_management_page_get_type ()) #define GCAL_TYPE_CALENDAR_MANAGEMENT_PAGE (gcal_calendar_management_page_get_type ())
@@ -37,13 +39,13 @@ struct _GcalCalendarManagementPageInterface
const gchar* (*get_title) (GcalCalendarManagementPage *self); const gchar* (*get_title) (GcalCalendarManagementPage *self);
void (*activate) (GcalCalendarManagementPage *self, void (*activate) (GcalCalendarManagementPage *self,
gpointer page_data); GcalCalendar *calendar);
void (*deactivate) (GcalCalendarManagementPage *self); void (*deactivate) (GcalCalendarManagementPage *self);
void (*switch_page) (GcalCalendarManagementPage *self, void (*switch_page) (GcalCalendarManagementPage *self,
const gchar *page_name, const gchar *page_name,
gpointer page_data); GcalCalendar *calendar);
}; };
const gchar* gcal_calendar_management_page_get_name (GcalCalendarManagementPage *self); const gchar* gcal_calendar_management_page_get_name (GcalCalendarManagementPage *self);
@@ -51,13 +53,13 @@ const gchar* gcal_calendar_management_page_get_name (GcalCalendarMa
const gchar* gcal_calendar_management_page_get_title (GcalCalendarManagementPage *self); const gchar* gcal_calendar_management_page_get_title (GcalCalendarManagementPage *self);
void gcal_calendar_management_page_activate (GcalCalendarManagementPage *self, void gcal_calendar_management_page_activate (GcalCalendarManagementPage *self,
gpointer page_data); GcalCalendar *calendar);
void gcal_calendar_management_page_deactivate (GcalCalendarManagementPage *self); void gcal_calendar_management_page_deactivate (GcalCalendarManagementPage *self);
void gcal_calendar_management_page_switch_page (GcalCalendarManagementPage *self, void gcal_calendar_management_page_switch_page (GcalCalendarManagementPage *self,
const gchar *page_name, const gchar *page_name,
gpointer page_data); GcalCalendar *calendar);
GtkHeaderBar* gcal_calendar_management_page_get_titlebar (GcalCalendarManagementPage *self); GtkHeaderBar* gcal_calendar_management_page_get_titlebar (GcalCalendarManagementPage *self);
@@ -360,17 +360,14 @@ gcal_calendars_page_get_title (GcalCalendarManagementPage *page)
static void static void
gcal_calendars_page_activate (GcalCalendarManagementPage *page, gcal_calendars_page_activate (GcalCalendarManagementPage *page,
gpointer page_data) GcalCalendar *calendar)
{ {
g_autofree gchar *new_string = NULL; g_autofree gchar *new_string = NULL;
GcalCalendarsPage *self; GcalCalendarsPage *self;
GcalCalendar *calendar;
GCAL_ENTRY; GCAL_ENTRY;
g_assert (!page_data || GCAL_IS_CALENDAR (page_data)); if (!calendar)
if (!page_data)
GCAL_RETURN (); GCAL_RETURN ();
self = GCAL_CALENDARS_PAGE (page); self = GCAL_CALENDARS_PAGE (page);
@@ -382,7 +379,6 @@ gcal_calendars_page_activate (GcalCalendarManagementPage *page,
g_clear_object (&self->removed_calendar); g_clear_object (&self->removed_calendar);
} }
calendar = GCAL_CALENDAR (page_data);
self->removed_calendar = g_object_ref (calendar); self->removed_calendar = g_object_ref (calendar);
/* Remove the listbox entry (if any) */ /* Remove the listbox entry (if any) */
@@ -304,19 +304,15 @@ gcal_edit_calendar_page_get_title (GcalCalendarManagementPage *page)
static void static void
gcal_edit_calendar_page_activate (GcalCalendarManagementPage *page, gcal_edit_calendar_page_activate (GcalCalendarManagementPage *page,
gpointer data) GcalCalendar *calendar)
{ {
GcalEditCalendarPage *self; GcalEditCalendarPage *self;
GtkHeaderBar *headerbar; GtkHeaderBar *headerbar;
GcalCalendar *calendar;
g_assert (GCAL_IS_CALENDAR (data));
self = GCAL_EDIT_CALENDAR_PAGE (page); self = GCAL_EDIT_CALENDAR_PAGE (page);
headerbar = gcal_calendar_management_page_get_titlebar (page); headerbar = gcal_calendar_management_page_get_titlebar (page);
gtk_header_bar_pack_start (headerbar, self->back_button); gtk_header_bar_pack_start (headerbar, self->back_button);
calendar = GCAL_CALENDAR (data);
setup_calendar (self, calendar); setup_calendar (self, calendar);
} }
@@ -710,7 +710,7 @@ gcal_new_calendar_page_get_title (GcalCalendarManagementPage *page)
static void static void
gcal_new_calendar_page_activate (GcalCalendarManagementPage *page, gcal_new_calendar_page_activate (GcalCalendarManagementPage *page,
gpointer page_data) GcalCalendar *calendar)
{ {
GcalNewCalendarPage *self; GcalNewCalendarPage *self;
GtkHeaderBar *headerbar; GtkHeaderBar *headerbar;