calendar-management: Rework page interface

Make GcalCalendarManagementPage require implementors to be
AdwNavigationPages
This commit is contained in:
Georges Basile Stavracas Neto
2024-05-01 10:44:16 -03:00
parent eaf5f55ac3
commit 57ba8e2bf1
12 changed files with 34 additions and 34 deletions
@@ -94,16 +94,14 @@ set_page (GcalCalendarManagementDialog *self,
const gchar *page_name,
GcalCalendar *calendar)
{
GcalCalendarManagementPage *next_page;
AdwNavigationPage *page;
GCAL_TRACE_MSG ("Switching to page '%s'", page_name);
page = adw_navigation_view_find_page (self->navigation_view, page_name);
g_assert (page != NULL);
next_page = GCAL_CALENDAR_MANAGEMENT_PAGE (adw_navigation_page_get_child (page));
g_assert (GCAL_IS_CALENDAR_MANAGEMENT_PAGE (page));
gcal_calendar_management_page_activate (next_page, calendar);
gcal_calendar_management_page_activate (GCAL_CALENDAR_MANAGEMENT_PAGE (page), calendar);
adw_navigation_view_pop (self->navigation_view);
@@ -129,16 +127,12 @@ setup_context (GcalCalendarManagementDialog *self)
for (i = 0; i < N_PAGES; i++)
{
GcalCalendarManagementPage *page;
AdwNavigationPage *navigation_page;
page = g_object_new (pages[i].gtype,
"context", self->context,
NULL);
navigation_page = adw_navigation_page_new (GTK_WIDGET (page),
gcal_calendar_management_page_get_title (page));
adw_navigation_page_set_tag (navigation_page, gcal_calendar_management_page_get_name (page));
adw_navigation_view_add (self->navigation_view, navigation_page);
adw_navigation_view_add (self->navigation_view, ADW_NAVIGATION_PAGE (page));
g_signal_connect_object (page,
"switch-page",
@@ -164,12 +158,9 @@ on_navigation_view_popped_cb (AdwNavigationView *navigation_view,
AdwNavigationPage *popped_page,
GcalCalendarManagementDialog *self)
{
GcalCalendarManagementPage *page;
g_assert (GCAL_IS_CALENDAR_MANAGEMENT_PAGE (popped_page));
page = GCAL_CALENDAR_MANAGEMENT_PAGE (adw_navigation_page_get_child (popped_page));
g_assert (page != NULL);
gcal_calendar_management_page_deactivate (page);
gcal_calendar_management_page_deactivate (GCAL_CALENDAR_MANAGEMENT_PAGE (popped_page));
}
static void
@@ -24,7 +24,7 @@
#include "gcal-calendar-management-page.h"
#include "gcal-context.h"
G_DEFINE_INTERFACE (GcalCalendarManagementPage, gcal_calendar_management_page, G_TYPE_OBJECT)
G_DEFINE_INTERFACE (GcalCalendarManagementPage, gcal_calendar_management_page, ADW_TYPE_NAVIGATION_PAGE)
enum
{
@@ -28,7 +28,7 @@ G_BEGIN_DECLS
#define GCAL_TYPE_CALENDAR_MANAGEMENT_PAGE (gcal_calendar_management_page_get_type ())
G_DECLARE_INTERFACE (GcalCalendarManagementPage, gcal_calendar_management_page, GCAL, CALENDAR_MANAGEMENT_PAGE, GtkWidget)
G_DECLARE_INTERFACE (GcalCalendarManagementPage, gcal_calendar_management_page, GCAL, CALENDAR_MANAGEMENT_PAGE, AdwNavigationPage)
struct _GcalCalendarManagementPageInterface
{
@@ -31,7 +31,7 @@
struct _GcalCalendarsPage
{
AdwBin parent;
AdwNavigationPage parent;
GtkListBox *listbox;
AdwToastOverlay *toast_overlay;
@@ -47,7 +47,7 @@ static void on_calendar_color_changed_cb (GcalCalendar
GParamSpec *pspec,
GtkImage *icon);
G_DEFINE_TYPE_WITH_CODE (GcalCalendarsPage, gcal_calendars_page, ADW_TYPE_BIN,
G_DEFINE_TYPE_WITH_CODE (GcalCalendarsPage, gcal_calendars_page, ADW_TYPE_NAVIGATION_PAGE,
G_IMPLEMENT_INTERFACE (GCAL_TYPE_CALENDAR_MANAGEMENT_PAGE,
gcal_calendar_management_page_iface_init))
@@ -25,6 +25,6 @@
G_BEGIN_DECLS
#define GCAL_TYPE_CALENDARS_PAGE (gcal_calendars_page_get_type())
G_DECLARE_FINAL_TYPE (GcalCalendarsPage, gcal_calendars_page, GCAL, CALENDARS_PAGE, AdwBin)
G_DECLARE_FINAL_TYPE (GcalCalendarsPage, gcal_calendars_page, GCAL, CALENDARS_PAGE, AdwNavigationPage)
G_END_DECLS
@@ -1,7 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="GcalCalendarsPage" parent="AdwBin">
<child>
<template class="GcalCalendarsPage" parent="AdwNavigationPage">
<property name="title" translatable="yes">Calendars</property>
<property name="tag">calendars</property>
<property name="child">
<object class="AdwToastOverlay" id="toast_overlay">
<child>
@@ -80,6 +83,6 @@
</child>
</object>
</child>
</property>
</template>
</interface>
@@ -28,7 +28,7 @@
struct _GcalEditCalendarPage
{
AdwBin parent;
AdwNavigationPage parent;
AdwActionRow *account_row;
GtkColorDialogButton *calendar_color_button;
@@ -45,7 +45,7 @@ struct _GcalEditCalendarPage
static void gcal_calendar_management_page_iface_init (GcalCalendarManagementPageInterface *iface);
G_DEFINE_TYPE_WITH_CODE (GcalEditCalendarPage, gcal_edit_calendar_page, ADW_TYPE_BIN,
G_DEFINE_TYPE_WITH_CODE (GcalEditCalendarPage, gcal_edit_calendar_page, ADW_TYPE_NAVIGATION_PAGE,
G_IMPLEMENT_INTERFACE (GCAL_TYPE_CALENDAR_MANAGEMENT_PAGE,
gcal_calendar_management_page_iface_init))
@@ -25,6 +25,6 @@
G_BEGIN_DECLS
#define GCAL_TYPE_EDIT_CALENDAR_PAGE (gcal_edit_calendar_page_get_type())
G_DECLARE_FINAL_TYPE (GcalEditCalendarPage, gcal_edit_calendar_page, GCAL, EDIT_CALENDAR_PAGE, AdwBin)
G_DECLARE_FINAL_TYPE (GcalEditCalendarPage, gcal_edit_calendar_page, GCAL, EDIT_CALENDAR_PAGE, AdwNavigationPage)
G_END_DECLS
@@ -1,7 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="GcalEditCalendarPage" parent="AdwBin">
<child>
<template class="GcalEditCalendarPage" parent="AdwNavigationPage">
<property name="title" translatable="yes">Edit Calendar</property>
<property name="tag">edit-calendar</property>
<property name="child">
<object class="AdwToolbarView">
<child type="top">
@@ -133,7 +136,7 @@
</property>
</object>
</child>
</property>
</template>
@@ -44,7 +44,7 @@ typedef enum
struct _GcalNewCalendarPage
{
AdwBin parent;
AdwNavigationPage parent;
GtkWidget *add_button;
GtkEntry *calendar_address_entry;
@@ -77,7 +77,7 @@ static void sources_discovered_cb (GObject
static void gcal_calendar_management_page_iface_init (GcalCalendarManagementPageInterface *iface);
G_DEFINE_TYPE_WITH_CODE (GcalNewCalendarPage, gcal_new_calendar_page, ADW_TYPE_BIN,
G_DEFINE_TYPE_WITH_CODE (GcalNewCalendarPage, gcal_new_calendar_page, ADW_TYPE_NAVIGATION_PAGE,
G_IMPLEMENT_INTERFACE (GCAL_TYPE_CALENDAR_MANAGEMENT_PAGE,
gcal_calendar_management_page_iface_init))
@@ -25,6 +25,6 @@
G_BEGIN_DECLS
#define GCAL_TYPE_NEW_CALENDAR_PAGE (gcal_new_calendar_page_get_type())
G_DECLARE_FINAL_TYPE (GcalNewCalendarPage, gcal_new_calendar_page, GCAL, NEW_CALENDAR_PAGE, AdwBin)
G_DECLARE_FINAL_TYPE (GcalNewCalendarPage, gcal_new_calendar_page, GCAL, NEW_CALENDAR_PAGE, AdwNavigationPage)
G_END_DECLS
@@ -1,7 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="GcalNewCalendarPage" parent="AdwBin">
<child>
<template class="GcalNewCalendarPage" parent="AdwNavigationPage">
<property name="title" translatable="yes">New Calendar</property>
<property name="tag">new-calendar</property>
<property name="child">
<object class="AdwToolbarView">
<child type="top">
@@ -204,7 +207,7 @@
</property>
</object>
</child>
</property>
</template>