view: update interface code
This commit updates GcalView interface to use modern GLib API and, consequently, removes tons of obsolete code.
This commit is contained in:
@@ -121,8 +121,6 @@ static gboolean gcal_month_view_key_press (GtkWidget *wid
|
|||||||
static void add_new_event_button_cb (GtkWidget *button,
|
static void add_new_event_button_cb (GtkWidget *button,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
|
|
||||||
static void gcal_view_interface_init (GcalViewIface *iface);
|
|
||||||
|
|
||||||
static void gcal_month_view_set_property (GObject *object,
|
static void gcal_month_view_set_property (GObject *object,
|
||||||
guint property_id,
|
guint property_id,
|
||||||
const GValue *value,
|
const GValue *value,
|
||||||
@@ -175,6 +173,8 @@ static void gcal_month_view_clear_marks (GcalView *vie
|
|||||||
static GList* gcal_month_view_get_children_by_uuid (GcalView *view,
|
static GList* gcal_month_view_get_children_by_uuid (GcalView *view,
|
||||||
const gchar *uuid);
|
const gchar *uuid);
|
||||||
|
|
||||||
|
static void gcal_view_interface_init (GcalViewInterface *iface);
|
||||||
|
|
||||||
G_DEFINE_TYPE_WITH_CODE (GcalMonthView, gcal_month_view,GCAL_TYPE_SUBSCRIBER_VIEW,
|
G_DEFINE_TYPE_WITH_CODE (GcalMonthView, gcal_month_view,GCAL_TYPE_SUBSCRIBER_VIEW,
|
||||||
G_ADD_PRIVATE (GcalMonthView)
|
G_ADD_PRIVATE (GcalMonthView)
|
||||||
G_IMPLEMENT_INTERFACE (GCAL_TYPE_VIEW, gcal_view_interface_init));
|
G_IMPLEMENT_INTERFACE (GCAL_TYPE_VIEW, gcal_view_interface_init));
|
||||||
@@ -841,7 +841,7 @@ gcal_month_view_init (GcalMonthView *self)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gcal_view_interface_init (GcalViewIface *iface)
|
gcal_view_interface_init (GcalViewInterface *iface)
|
||||||
{
|
{
|
||||||
iface->get_initial_date = gcal_month_view_get_initial_date;
|
iface->get_initial_date = gcal_month_view_get_initial_date;
|
||||||
iface->get_final_date = gcal_month_view_get_final_date;
|
iface->get_final_date = gcal_month_view_get_final_date;
|
||||||
|
|||||||
@@ -245,29 +245,6 @@ get_color_name_from_source (ESource *source, GdkRGBA *out_color)
|
|||||||
gdk_rgba_parse (out_color, "#becedd"); /* calendar default colour */
|
gdk_rgba_parse (out_color, "#becedd"); /* calendar default colour */
|
||||||
}
|
}
|
||||||
|
|
||||||
gint
|
|
||||||
gcal_compare_event_widget_by_date (gconstpointer a,
|
|
||||||
gconstpointer b)
|
|
||||||
{
|
|
||||||
/* negative value if a < b; zero if a = b; positive value if a > b. */
|
|
||||||
GcalViewChild *a_child;
|
|
||||||
GcalViewChild *b_child;
|
|
||||||
GDateTime *a_date;
|
|
||||||
GDateTime *b_date;
|
|
||||||
|
|
||||||
gint comparison;
|
|
||||||
|
|
||||||
a_child = (GcalViewChild*) a;
|
|
||||||
b_child = (GcalViewChild*) b;
|
|
||||||
|
|
||||||
a_date = gcal_event_get_date_start (gcal_event_widget_get_event (GCAL_EVENT_WIDGET (a_child->widget)));
|
|
||||||
b_date = gcal_event_get_date_start (gcal_event_widget_get_event (GCAL_EVENT_WIDGET (b_child->widget)));
|
|
||||||
|
|
||||||
comparison = g_date_time_compare (a_date, b_date);
|
|
||||||
|
|
||||||
return comparison;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* get_desc_from_component:
|
* get_desc_from_component:
|
||||||
* @component:
|
* @component:
|
||||||
|
|||||||
@@ -76,9 +76,6 @@ GdkPixbuf* get_circle_pixbuf_from_color (GdkRGBA
|
|||||||
void get_color_name_from_source (ESource *source,
|
void get_color_name_from_source (ESource *source,
|
||||||
GdkRGBA *out_color);
|
GdkRGBA *out_color);
|
||||||
|
|
||||||
gint gcal_compare_event_widget_by_date (gconstpointer a,
|
|
||||||
gconstpointer b);
|
|
||||||
|
|
||||||
gchar* get_desc_from_component (ECalComponent *component,
|
gchar* get_desc_from_component (ECalComponent *component,
|
||||||
const gchar *joint_char);
|
const gchar *joint_char);
|
||||||
|
|
||||||
|
|||||||
+36
-52
@@ -3,6 +3,7 @@
|
|||||||
* gcal-view.c
|
* gcal-view.c
|
||||||
*
|
*
|
||||||
* Copyright (C) 2015 - Erick Pérez Castellanos
|
* Copyright (C) 2015 - Erick Pérez Castellanos
|
||||||
|
* 2016 - Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -23,27 +24,33 @@
|
|||||||
|
|
||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
|
|
||||||
static void
|
|
||||||
gcal_view_base_init (gpointer g_iface)
|
|
||||||
{
|
|
||||||
static gboolean initialized = FALSE;
|
|
||||||
|
|
||||||
if (!initialized)
|
G_DEFINE_INTERFACE (GcalView, gcal_view, GTK_TYPE_WIDGET)
|
||||||
{
|
|
||||||
/* create interface signals && properties here. */
|
static void
|
||||||
g_object_interface_install_property (
|
gcal_view_default_init (GcalViewInterface *iface)
|
||||||
g_iface,
|
{
|
||||||
|
/**
|
||||||
|
* GcalView::active-date:
|
||||||
|
*
|
||||||
|
* The active date of the view.
|
||||||
|
*/
|
||||||
|
g_object_interface_install_property (iface,
|
||||||
g_param_spec_boxed ("active-date",
|
g_param_spec_boxed ("active-date",
|
||||||
"The active date",
|
"The active date",
|
||||||
"The active/selecetd date in the view",
|
"The active/selecetd date in the view",
|
||||||
ICAL_TIME_TYPE,
|
ICAL_TIME_TYPE,
|
||||||
G_PARAM_READWRITE));
|
G_PARAM_READWRITE));
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GcalView::create-event:
|
||||||
|
*
|
||||||
|
* Emitted when the view wants to create an event.
|
||||||
|
*/
|
||||||
g_signal_new ("create-event",
|
g_signal_new ("create-event",
|
||||||
GCAL_TYPE_VIEW,
|
GCAL_TYPE_VIEW,
|
||||||
G_SIGNAL_RUN_LAST,
|
G_SIGNAL_RUN_LAST,
|
||||||
G_STRUCT_OFFSET (GcalViewIface,
|
G_STRUCT_OFFSET (GcalViewInterface, create_event),
|
||||||
create_event),
|
|
||||||
NULL, NULL, NULL,
|
NULL, NULL, NULL,
|
||||||
G_TYPE_NONE,
|
G_TYPE_NONE,
|
||||||
4,
|
4,
|
||||||
@@ -52,41 +59,18 @@ gcal_view_base_init (gpointer g_iface)
|
|||||||
G_TYPE_DOUBLE,
|
G_TYPE_DOUBLE,
|
||||||
G_TYPE_DOUBLE);
|
G_TYPE_DOUBLE);
|
||||||
|
|
||||||
g_signal_new ("create-event-detailed", GCAL_TYPE_VIEW, G_SIGNAL_RUN_LAST,
|
/**
|
||||||
G_STRUCT_OFFSET (GcalViewIface, create_event_detailed),
|
* GcalView::create-event-detailed:
|
||||||
|
*
|
||||||
|
* Emitted when the view wants to create an event and immediately
|
||||||
|
* edit it.
|
||||||
|
*/
|
||||||
|
g_signal_new ("create-event-detailed",
|
||||||
|
GCAL_TYPE_VIEW,
|
||||||
|
G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET (GcalViewInterface, create_event_detailed),
|
||||||
NULL, NULL, NULL,
|
NULL, NULL, NULL,
|
||||||
G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_POINTER);
|
G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_POINTER);
|
||||||
|
|
||||||
initialized = TRUE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
GType
|
|
||||||
gcal_view_get_type (void)
|
|
||||||
{
|
|
||||||
static GType type = 0;
|
|
||||||
if (type == 0)
|
|
||||||
{
|
|
||||||
const GTypeInfo info =
|
|
||||||
{
|
|
||||||
sizeof (GcalViewIface),
|
|
||||||
gcal_view_base_init, /* base_init */
|
|
||||||
NULL, /* base_finalize */
|
|
||||||
NULL, /* class_init */
|
|
||||||
NULL, /* class_finalize */
|
|
||||||
NULL, /* class_data */
|
|
||||||
0,
|
|
||||||
0, /* n_preallocs */
|
|
||||||
NULL /* instance_init */
|
|
||||||
};
|
|
||||||
type = g_type_register_static (G_TYPE_INTERFACE,
|
|
||||||
"GcalView",
|
|
||||||
&info,
|
|
||||||
0);
|
|
||||||
g_type_interface_add_prerequisite (type,
|
|
||||||
G_TYPE_OBJECT);
|
|
||||||
}
|
|
||||||
return type;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -121,9 +105,9 @@ icaltimetype*
|
|||||||
gcal_view_get_initial_date (GcalView *view)
|
gcal_view_get_initial_date (GcalView *view)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (GCAL_IS_VIEW (view), NULL);
|
g_return_val_if_fail (GCAL_IS_VIEW (view), NULL);
|
||||||
g_return_val_if_fail (GCAL_VIEW_GET_INTERFACE (view)->get_initial_date, NULL);
|
g_return_val_if_fail (GCAL_VIEW_GET_IFACE (view)->get_initial_date, NULL);
|
||||||
|
|
||||||
return GCAL_VIEW_GET_INTERFACE (view)->get_initial_date (view);
|
return GCAL_VIEW_GET_IFACE (view)->get_initial_date (view);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -138,9 +122,9 @@ icaltimetype*
|
|||||||
gcal_view_get_final_date (GcalView *view)
|
gcal_view_get_final_date (GcalView *view)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (GCAL_IS_VIEW (view), NULL);
|
g_return_val_if_fail (GCAL_IS_VIEW (view), NULL);
|
||||||
g_return_val_if_fail (GCAL_VIEW_GET_INTERFACE (view)->get_final_date, NULL);
|
g_return_val_if_fail (GCAL_VIEW_GET_IFACE (view)->get_final_date, NULL);
|
||||||
|
|
||||||
return GCAL_VIEW_GET_INTERFACE (view)->get_final_date (view);
|
return GCAL_VIEW_GET_IFACE (view)->get_final_date (view);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -153,9 +137,9 @@ void
|
|||||||
gcal_view_clear_marks (GcalView *view)
|
gcal_view_clear_marks (GcalView *view)
|
||||||
{
|
{
|
||||||
g_return_if_fail (GCAL_IS_VIEW (view));
|
g_return_if_fail (GCAL_IS_VIEW (view));
|
||||||
g_return_if_fail (GCAL_VIEW_GET_INTERFACE (view)->clear_marks);
|
g_return_if_fail (GCAL_VIEW_GET_IFACE (view)->clear_marks);
|
||||||
|
|
||||||
GCAL_VIEW_GET_INTERFACE (view)->clear_marks (view);
|
GCAL_VIEW_GET_IFACE (view)->clear_marks (view);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -172,7 +156,7 @@ gcal_view_get_children_by_uuid (GcalView *view,
|
|||||||
const gchar *uuid)
|
const gchar *uuid)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (GCAL_IS_VIEW (view), NULL);
|
g_return_val_if_fail (GCAL_IS_VIEW (view), NULL);
|
||||||
g_return_val_if_fail (GCAL_VIEW_GET_INTERFACE (view)->get_children_by_uuid, NULL);
|
g_return_val_if_fail (GCAL_VIEW_GET_IFACE (view)->get_children_by_uuid, NULL);
|
||||||
|
|
||||||
return GCAL_VIEW_GET_INTERFACE (view)->get_children_by_uuid (view, uuid);
|
return GCAL_VIEW_GET_IFACE (view)->get_children_by_uuid (view, uuid);
|
||||||
}
|
}
|
||||||
|
|||||||
+14
-22
@@ -25,28 +25,22 @@
|
|||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#define GCAL_TYPE_VIEW (gcal_view_get_type ())
|
#define GCAL_TYPE_VIEW (gcal_view_get_type ())
|
||||||
#define GCAL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCAL_TYPE_VIEW, GcalView))
|
|
||||||
#define GCAL_IS_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCAL_TYPE_VIEW))
|
|
||||||
#define GCAL_VIEW_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GCAL_TYPE_VIEW, GcalViewIface))
|
|
||||||
|
|
||||||
struct _GcalViewChild
|
G_DECLARE_INTERFACE (GcalView, gcal_view, GCAL, VIEW, GtkWidget)
|
||||||
|
|
||||||
|
struct _GcalViewInterface
|
||||||
{
|
{
|
||||||
GtkWidget *widget;
|
GTypeInterface parent;
|
||||||
gboolean hidden;
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct _GcalViewChild GcalViewChild;
|
|
||||||
|
|
||||||
typedef struct _GcalView GcalView;
|
|
||||||
typedef struct _GcalViewIface GcalViewIface;
|
|
||||||
|
|
||||||
struct _GcalViewIface
|
|
||||||
{
|
|
||||||
GTypeInterface parent_iface;
|
|
||||||
|
|
||||||
/* signals */
|
/* signals */
|
||||||
void (*create_event) (GcalView *view, icaltimetype *start_span, icaltimetype *end_span, gdouble x, gdouble y);
|
void (*create_event) (GcalView *view,
|
||||||
void (*create_event_detailed) (GcalView *view, icaltimetype *start_span, icaltimetype *end_span);
|
icaltimetype *start_span,
|
||||||
|
icaltimetype *end_span,
|
||||||
|
gdouble x,
|
||||||
|
gdouble y);
|
||||||
|
void (*create_event_detailed) (GcalView *view,
|
||||||
|
icaltimetype *start_span,
|
||||||
|
icaltimetype *end_span);
|
||||||
|
|
||||||
/* Time handling related API */
|
/* Time handling related API */
|
||||||
icaltimetype* (*get_initial_date) (GcalView *view);
|
icaltimetype* (*get_initial_date) (GcalView *view);
|
||||||
@@ -55,12 +49,10 @@ struct _GcalViewIface
|
|||||||
/* Marks related API */
|
/* Marks related API */
|
||||||
void (*clear_marks) (GcalView *view);
|
void (*clear_marks) (GcalView *view);
|
||||||
|
|
||||||
GList* (*get_children_by_uuid) (GcalView *view, const gchar *uuid);
|
GList* (*get_children_by_uuid) (GcalView *view,
|
||||||
|
const gchar *uuid);
|
||||||
};
|
};
|
||||||
|
|
||||||
GType gcal_view_get_type (void);
|
|
||||||
|
|
||||||
|
|
||||||
void gcal_view_set_date (GcalView *view,
|
void gcal_view_set_date (GcalView *view,
|
||||||
icaltimetype *date);
|
icaltimetype *date);
|
||||||
|
|
||||||
|
|||||||
@@ -102,8 +102,6 @@ static void draw_grid_window (GcalWeekView *view
|
|||||||
|
|
||||||
static gint get_sidebar_width (GtkWidget *widget);
|
static gint get_sidebar_width (GtkWidget *widget);
|
||||||
|
|
||||||
static void gcal_view_interface_init (GcalViewIface *iface);
|
|
||||||
|
|
||||||
static void gcal_week_view_constructed (GObject *object);
|
static void gcal_week_view_constructed (GObject *object);
|
||||||
|
|
||||||
static void gcal_week_view_finalize (GObject *object);
|
static void gcal_week_view_finalize (GObject *object);
|
||||||
@@ -158,6 +156,8 @@ static icaltimetype* gcal_week_view_get_final_date (GcalView *view
|
|||||||
static GtkWidget* gcal_week_view_get_by_uuid (GcalSubscriberView *view,
|
static GtkWidget* gcal_week_view_get_by_uuid (GcalSubscriberView *view,
|
||||||
const gchar *uuid);
|
const gchar *uuid);
|
||||||
|
|
||||||
|
static void gcal_view_interface_init (GcalViewInterface *iface);
|
||||||
|
|
||||||
G_DEFINE_TYPE_WITH_CODE (GcalWeekView, gcal_week_view, GCAL_TYPE_SUBSCRIBER_VIEW,
|
G_DEFINE_TYPE_WITH_CODE (GcalWeekView, gcal_week_view, GCAL_TYPE_SUBSCRIBER_VIEW,
|
||||||
G_ADD_PRIVATE (GcalWeekView)
|
G_ADD_PRIVATE (GcalWeekView)
|
||||||
G_IMPLEMENT_INTERFACE (GCAL_TYPE_VIEW, gcal_view_interface_init));
|
G_IMPLEMENT_INTERFACE (GCAL_TYPE_VIEW, gcal_view_interface_init));
|
||||||
@@ -553,7 +553,7 @@ gcal_week_view_init (GcalWeekView *self)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gcal_view_interface_init (GcalViewIface *iface)
|
gcal_view_interface_init (GcalViewInterface *iface)
|
||||||
{
|
{
|
||||||
iface->get_initial_date = gcal_week_view_get_initial_date;
|
iface->get_initial_date = gcal_week_view_get_initial_date;
|
||||||
iface->get_final_date = gcal_week_view_get_final_date;
|
iface->get_final_date = gcal_week_view_get_final_date;
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ enum
|
|||||||
static guint signals[NUM_SIGNALS] = { 0, };
|
static guint signals[NUM_SIGNALS] = { 0, };
|
||||||
|
|
||||||
static void reset_sidebar (GcalYearView *year_view);
|
static void reset_sidebar (GcalYearView *year_view);
|
||||||
static void gcal_view_interface_init (GcalViewIface *iface);
|
static void gcal_view_interface_init (GcalViewInterface *iface);
|
||||||
static void gcal_data_model_subscriber_interface_init (ECalDataModelSubscriberInterface *iface);
|
static void gcal_data_model_subscriber_interface_init (ECalDataModelSubscriberInterface *iface);
|
||||||
|
|
||||||
G_DEFINE_TYPE_WITH_CODE (GcalYearView, gcal_year_view, GTK_TYPE_BOX,
|
G_DEFINE_TYPE_WITH_CODE (GcalYearView, gcal_year_view, GTK_TYPE_BOX,
|
||||||
@@ -1474,7 +1474,7 @@ gcal_year_view_init (GcalYearView *self)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gcal_view_interface_init (GcalViewIface *iface)
|
gcal_view_interface_init (GcalViewInterface *iface)
|
||||||
{
|
{
|
||||||
/* FIXME: implement what's needed */
|
/* FIXME: implement what's needed */
|
||||||
iface->get_children_by_uuid = gcal_year_view_get_children_by_uuid;
|
iface->get_children_by_uuid = gcal_year_view_get_children_by_uuid;
|
||||||
|
|||||||
Reference in New Issue
Block a user