Fixed issue with the sources view actor getting in the middle of buttons events.
Using the new API of GcalEventWidget Drawing changes in GcalEventWidget Some refactoring
This commit is contained in:
+103
-33
@@ -22,10 +22,13 @@
|
||||
|
||||
#include <libical/icaltime.h>
|
||||
|
||||
#define RADIUS 3
|
||||
|
||||
struct _GcalEventWidgetPrivate
|
||||
{
|
||||
GdkWindow *event_window;
|
||||
|
||||
gchar *uuid;
|
||||
gchar *summary;
|
||||
GdkRGBA *color;
|
||||
icaltimetype *dt_start;
|
||||
@@ -34,6 +37,7 @@ struct _GcalEventWidgetPrivate
|
||||
enum
|
||||
{
|
||||
PROP_0,
|
||||
PROP_UUID,
|
||||
PROP_SUMMARY,
|
||||
PROP_COLOR,
|
||||
PROP_DTSTART
|
||||
@@ -73,9 +77,6 @@ static void gcal_event_widget_size_allocate (GtkWidget *widget,
|
||||
static gboolean gcal_event_widget_draw (GtkWidget *widget,
|
||||
cairo_t *cr);
|
||||
|
||||
static gboolean gcal_event_widget_button_press (GtkWidget *widget,
|
||||
GdkEventButton *event);
|
||||
|
||||
G_DEFINE_TYPE(GcalEventWidget, gcal_event_widget, GTK_TYPE_WIDGET)
|
||||
|
||||
static void
|
||||
@@ -98,7 +99,15 @@ gcal_event_widget_class_init(GcalEventWidgetClass *klass)
|
||||
widget_class->unmap = gcal_event_widget_unmap;
|
||||
widget_class->size_allocate = gcal_event_widget_size_allocate;
|
||||
widget_class->draw = gcal_event_widget_draw;
|
||||
widget_class->button_press_event = gcal_event_widget_button_press;
|
||||
|
||||
g_object_class_install_property (object_class,
|
||||
PROP_UUID,
|
||||
g_param_spec_string ("uuid",
|
||||
"Unique uid",
|
||||
"The unique-unique id composed of source_uid:event_uid",
|
||||
NULL,
|
||||
G_PARAM_CONSTRUCT |
|
||||
G_PARAM_READWRITE));
|
||||
|
||||
g_object_class_install_property (object_class,
|
||||
PROP_SUMMARY,
|
||||
@@ -164,6 +173,12 @@ gcal_event_widget_set_property (GObject *object,
|
||||
|
||||
switch (property_id)
|
||||
{
|
||||
case PROP_UUID:
|
||||
if (priv->uuid != NULL)
|
||||
g_free (priv->uuid);
|
||||
|
||||
priv->uuid = g_value_dup_string (value);
|
||||
return;
|
||||
case PROP_SUMMARY:
|
||||
if (priv->summary != NULL)
|
||||
g_free (priv->summary);
|
||||
@@ -199,6 +214,9 @@ gcal_event_widget_get_property (GObject *object,
|
||||
|
||||
switch (property_id)
|
||||
{
|
||||
case PROP_UUID:
|
||||
g_value_set_string (value, priv->uuid);
|
||||
return;
|
||||
case PROP_SUMMARY:
|
||||
g_value_set_string (value, priv->summary);
|
||||
return;
|
||||
@@ -232,7 +250,8 @@ gcal_event_widget_get_preferred_width (GtkWidget *widget,
|
||||
gtk_widget_get_state_flags (widget),
|
||||
&padding);
|
||||
|
||||
*minimum = *natural = logical_rect.width + padding.left + padding.right;
|
||||
*minimum = *natural =
|
||||
logical_rect.width + padding.left + padding.right + 2 * RADIUS;
|
||||
|
||||
g_object_unref (layout);
|
||||
}
|
||||
@@ -256,7 +275,8 @@ gcal_event_widget_get_preferred_height (GtkWidget *widget,
|
||||
gtk_widget_get_state_flags (widget),
|
||||
&padding);
|
||||
|
||||
*minimum = *natural = logical_rect.height + padding.top + padding.bottom;
|
||||
*minimum = *natural =
|
||||
logical_rect.height + padding.top + padding.bottom + 2 * RADIUS;
|
||||
|
||||
g_object_unref (layout);
|
||||
}
|
||||
@@ -351,11 +371,13 @@ gcal_event_widget_size_allocate (GtkWidget *widget,
|
||||
gtk_widget_set_allocation (widget, allocation);
|
||||
|
||||
if (gtk_widget_get_realized (widget))
|
||||
gdk_window_move_resize (priv->event_window,
|
||||
allocation->x,
|
||||
allocation->y,
|
||||
allocation->width,
|
||||
allocation->height);
|
||||
{
|
||||
gdk_window_move_resize (priv->event_window,
|
||||
allocation->x,
|
||||
allocation->y,
|
||||
allocation->width,
|
||||
allocation->height);
|
||||
}
|
||||
}
|
||||
|
||||
static gboolean
|
||||
@@ -369,7 +391,6 @@ gcal_event_widget_draw (GtkWidget *widget,
|
||||
|
||||
gint x,y;
|
||||
gint width, height;
|
||||
gdouble radius;
|
||||
gdouble degrees;
|
||||
|
||||
PangoLayout *layout;
|
||||
@@ -385,10 +406,9 @@ gcal_event_widget_draw (GtkWidget *widget,
|
||||
x = padding.left;
|
||||
y = padding.top;
|
||||
width = gtk_widget_get_allocated_width (widget)
|
||||
- padding.left - padding.right;
|
||||
- (padding.left + padding.right);
|
||||
height = gtk_widget_get_allocated_height (widget)
|
||||
- padding.top - padding.bottom;
|
||||
radius = height / 10;
|
||||
- (padding.top + padding.bottom);
|
||||
degrees = G_PI / 180.0;
|
||||
|
||||
layout = pango_cairo_create_layout (cr);
|
||||
@@ -396,20 +416,29 @@ gcal_event_widget_draw (GtkWidget *widget,
|
||||
gtk_style_context_get_font (context,
|
||||
state));
|
||||
pango_layout_set_ellipsize (layout, PANGO_ELLIPSIZE_END);
|
||||
pango_layout_set_width (layout, (width - 2 * radius ) * PANGO_SCALE);
|
||||
pango_layout_set_width (layout, (width - 2 * RADIUS ) * PANGO_SCALE);
|
||||
|
||||
cairo_save (cr);
|
||||
|
||||
cairo_arc (cr, x + width - radius, y + radius, radius, -90 * degrees, 0 * degrees);
|
||||
cairo_arc (cr, x + width - radius, y + height - radius, radius, 0 * degrees, 90 * degrees);
|
||||
cairo_arc (cr, x + radius, y + height - radius, radius, 90 * degrees, 180 * degrees);
|
||||
cairo_arc (cr, x + radius, y + radius, radius, 180 * degrees, 270 * degrees);
|
||||
cairo_new_sub_path (cr);
|
||||
cairo_arc (cr, x + width - RADIUS, y + RADIUS, RADIUS, -90 * degrees, 0 * degrees);
|
||||
cairo_arc (cr, x + width - RADIUS, y + height - RADIUS, RADIUS, 0 * degrees, 90 * degrees);
|
||||
cairo_arc (cr, x + RADIUS, y + height - RADIUS, RADIUS, 90 * degrees, 180 * degrees);
|
||||
cairo_arc (cr, x + RADIUS, y + RADIUS, RADIUS, 180 * degrees, 270 * degrees);
|
||||
cairo_close_path (cr);
|
||||
|
||||
cairo_set_source_rgba (cr,
|
||||
priv->color->red,
|
||||
priv->color->green,
|
||||
priv->color->blue,
|
||||
priv->color->alpha);
|
||||
cairo_fill (cr);
|
||||
0.8);
|
||||
cairo_fill_preserve (cr);
|
||||
cairo_set_source_rgba (cr,
|
||||
priv->color->red - ((1 - priv->color->red) / 2),
|
||||
priv->color->green - ((1 - priv->color->green) / 2),
|
||||
priv->color->blue - ((1 - priv->color->blue) / 2),
|
||||
1);
|
||||
cairo_stroke (cr);
|
||||
|
||||
cairo_set_source_rgba (cr,
|
||||
fg_color.red,
|
||||
@@ -418,7 +447,7 @@ gcal_event_widget_draw (GtkWidget *widget,
|
||||
fg_color.alpha);
|
||||
pango_layout_set_text (layout, priv->summary, -1);
|
||||
pango_cairo_update_layout (cr, layout);
|
||||
cairo_move_to (cr, x + radius, y + radius);
|
||||
cairo_move_to (cr, x + RADIUS, y + RADIUS);
|
||||
pango_cairo_show_layout (cr, layout);
|
||||
cairo_stroke (cr);
|
||||
|
||||
@@ -432,18 +461,10 @@ gcal_event_widget_draw (GtkWidget *widget,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gcal_event_widget_button_press (GtkWidget *widget,
|
||||
GdkEventButton *event)
|
||||
{
|
||||
g_debug ("[ITW]: Called button press virtual function\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
GtkWidget*
|
||||
gcal_event_widget_new ()
|
||||
gcal_event_widget_new (gchar *uuid)
|
||||
{
|
||||
return g_object_new (GCAL_TYPE_EVENT_WIDGET, NULL);
|
||||
return g_object_new (GCAL_TYPE_EVENT_WIDGET, "uuid", uuid, NULL);
|
||||
}
|
||||
|
||||
GtkWidget*
|
||||
@@ -458,6 +479,15 @@ gcal_event_widget_new_with_summary_and_color (const gchar *summary,
|
||||
NULL);
|
||||
}
|
||||
|
||||
const gchar*
|
||||
gcal_event_widget_peek_uuid (GcalEventWidget *event)
|
||||
{
|
||||
GcalEventWidgetPrivate *priv;
|
||||
priv = event->priv;
|
||||
|
||||
return priv->uuid;
|
||||
}
|
||||
|
||||
void
|
||||
gcal_event_widget_set_date (GcalEventWidget *event,
|
||||
icaltimetype *date)
|
||||
@@ -477,3 +507,43 @@ gcal_event_widget_get_date (GcalEventWidget *event)
|
||||
g_object_get (event, "date-start", &dt, NULL);
|
||||
return dt;
|
||||
}
|
||||
|
||||
void
|
||||
gcal_event_widget_set_summary (GcalEventWidget *event,
|
||||
gchar *summary)
|
||||
{
|
||||
g_return_if_fail (GCAL_IS_EVENT_WIDGET (event));
|
||||
|
||||
g_object_set (event, "summary", summary, NULL);
|
||||
}
|
||||
|
||||
gchar*
|
||||
gcal_event_widget_get_summary (GcalEventWidget *event)
|
||||
{
|
||||
gchar *summary;
|
||||
g_return_val_if_fail (GCAL_IS_EVENT_WIDGET (event), NULL);
|
||||
|
||||
summary = NULL;
|
||||
g_object_get (event, "summary", summary, NULL);
|
||||
return summary;
|
||||
}
|
||||
|
||||
void
|
||||
gcal_event_widget_set_color (GcalEventWidget *event,
|
||||
GdkRGBA *color)
|
||||
{
|
||||
g_return_if_fail (GCAL_IS_EVENT_WIDGET (event));
|
||||
|
||||
g_object_set (event, "color", color, NULL);
|
||||
}
|
||||
|
||||
GdkRGBA*
|
||||
gcal_event_widget_get_color (GcalEventWidget *event)
|
||||
{
|
||||
GdkRGBA *color;
|
||||
g_return_val_if_fail (GCAL_IS_EVENT_WIDGET (event), NULL);
|
||||
|
||||
color = NULL;
|
||||
g_object_get (event, "color", color, NULL);
|
||||
return color;
|
||||
}
|
||||
|
||||
+13
-1
@@ -53,16 +53,28 @@ struct _GcalEventWidgetClass
|
||||
|
||||
GType gcal_event_widget_get_type (void);
|
||||
|
||||
GtkWidget* gcal_event_widget_new (void);
|
||||
GtkWidget* gcal_event_widget_new (gchar *uuid);
|
||||
|
||||
GtkWidget* gcal_event_widget_new_with_summary_and_color (const gchar *summary,
|
||||
const GdkRGBA *color);
|
||||
|
||||
const gchar* gcal_event_widget_peek_uuid (GcalEventWidget *event);
|
||||
|
||||
void gcal_event_widget_set_date (GcalEventWidget *event,
|
||||
icaltimetype *date);
|
||||
|
||||
icaltimetype* gcal_event_widget_get_date (GcalEventWidget *event);
|
||||
|
||||
void gcal_event_widget_set_summary (GcalEventWidget *event,
|
||||
gchar *summary);
|
||||
|
||||
gchar* gcal_event_widget_get_summary (GcalEventWidget *event);
|
||||
|
||||
void gcal_event_widget_set_color (GcalEventWidget *event,
|
||||
GdkRGBA *color);
|
||||
|
||||
GdkRGBA* gcal_event_widget_get_color (GcalEventWidget *event);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GCAL_EVENT_WIDGET_H__ */
|
||||
|
||||
+64
-59
@@ -36,42 +36,43 @@
|
||||
struct _GcalWindowPrivate
|
||||
{
|
||||
ClutterActor *main_toolbar;
|
||||
ClutterActor *contents_actor;
|
||||
ClutterActor *notebook_actor;
|
||||
ClutterActor *sources_actor;
|
||||
|
||||
GtkWidget *notebook;
|
||||
GtkWidget *sources_view;
|
||||
GtkWidget *views [5];
|
||||
GtkWidget *add_view;
|
||||
|
||||
GcalViewTypeEnum active_view;
|
||||
};
|
||||
|
||||
static void gcal_window_constructed (GObject *object);
|
||||
static void gcal_window_constructed (GObject *object);
|
||||
|
||||
GcalManager* _gcal_window_get_manager (GcalWindow *window);
|
||||
GcalManager* _gcal_window_get_manager (GcalWindow *window);
|
||||
|
||||
static void _gcal_window_set_sources_view (GcalWindow *window);
|
||||
static void _gcal_window_set_sources_view (GcalWindow *window);
|
||||
|
||||
static void _gcal_window_view_changed (GcalMainToolbar *main_toolbar,
|
||||
GcalViewTypeEnum view_type,
|
||||
gpointer user_data);
|
||||
static void _gcal_window_view_changed (GcalMainToolbar *main_toolbar,
|
||||
GcalViewTypeEnum view_type,
|
||||
gpointer user_data);
|
||||
|
||||
static void _gcal_window_sources_shown (GcalMainToolbar *main_toolbar,
|
||||
gboolean visible,
|
||||
gpointer user_data);
|
||||
static void _gcal_window_sources_shown (GcalMainToolbar *main_toolbar,
|
||||
gboolean visible,
|
||||
gpointer user_data);
|
||||
|
||||
static void _gcal_window_sources_row_activated (GtkTreeView *tree_view,
|
||||
GtkTreePath *path,
|
||||
GtkTreeViewColumn *column,
|
||||
gpointer user_data);
|
||||
static void _gcal_window_add_event (GcalMainToolbar *main_toolbar,
|
||||
gpointer user_data);
|
||||
|
||||
static void _gcal_window_view_clicked (GtkWidget *widget,
|
||||
GdkEventButton *event,
|
||||
gpointer user_data);
|
||||
static void _gcal_window_sources_row_activated (GtkTreeView *tree_view,
|
||||
GtkTreePath *path,
|
||||
GtkTreeViewColumn *column,
|
||||
gpointer user_data);
|
||||
|
||||
static void _gcal_window_events_added (GcalManager *manager,
|
||||
gpointer events_list,
|
||||
gpointer user_data);
|
||||
static void _gcal_window_events_added (GcalManager *manager,
|
||||
gpointer events_list,
|
||||
gpointer user_data);
|
||||
|
||||
G_DEFINE_TYPE(GcalWindow, gcal_window, GTK_TYPE_APPLICATION_WINDOW)
|
||||
|
||||
@@ -100,7 +101,6 @@ gcal_window_constructed (GObject *object)
|
||||
ClutterLayoutManager *base_layout_manager;
|
||||
ClutterActor *body_actor;
|
||||
ClutterLayoutManager *body_layout_manager;
|
||||
ClutterActor *contents_actor;
|
||||
ClutterLayoutManager *contents_layout_manager;
|
||||
GtkWidget *holder;
|
||||
|
||||
@@ -153,12 +153,14 @@ gcal_window_constructed (GObject *object)
|
||||
CLUTTER_BOX_ALIGNMENT_START);
|
||||
|
||||
/* contents */
|
||||
contents_layout_manager = clutter_bin_layout_new (CLUTTER_BIN_ALIGNMENT_CENTER,
|
||||
CLUTTER_BIN_ALIGNMENT_CENTER);
|
||||
contents_actor = clutter_actor_new ();
|
||||
clutter_actor_set_layout_manager (contents_actor, contents_layout_manager);
|
||||
contents_layout_manager =
|
||||
clutter_bin_layout_new (CLUTTER_BIN_ALIGNMENT_CENTER,
|
||||
CLUTTER_BIN_ALIGNMENT_CENTER);
|
||||
priv->contents_actor = clutter_actor_new ();
|
||||
clutter_actor_set_layout_manager (priv->contents_actor,
|
||||
contents_layout_manager);
|
||||
clutter_box_layout_pack (CLUTTER_BOX_LAYOUT (body_layout_manager),
|
||||
contents_actor,
|
||||
priv->contents_actor,
|
||||
TRUE,
|
||||
TRUE,
|
||||
TRUE,
|
||||
@@ -179,8 +181,9 @@ gcal_window_constructed (GObject *object)
|
||||
CLUTTER_BIN_ALIGNMENT_FILL);
|
||||
|
||||
icaltimetype *date = g_new (icaltimetype, 1);
|
||||
*date = icaltime_today ();
|
||||
*date = icaltime_from_timet (time (NULL), 0);
|
||||
priv->views[GCAL_VIEW_TYPE_MONTHLY] = gcal_month_view_new (date);
|
||||
g_free (date);
|
||||
|
||||
context = gtk_widget_get_style_context (priv->views[GCAL_VIEW_TYPE_MONTHLY]);
|
||||
gtk_style_context_add_class (context, "views");
|
||||
@@ -206,6 +209,7 @@ gcal_window_constructed (GObject *object)
|
||||
priv->sources_actor,
|
||||
CLUTTER_BIN_ALIGNMENT_START,
|
||||
CLUTTER_BIN_ALIGNMENT_START);
|
||||
clutter_actor_hide (priv->sources_actor);
|
||||
|
||||
/* signals connection/handling */
|
||||
g_signal_connect (priv->main_toolbar,
|
||||
@@ -216,9 +220,9 @@ gcal_window_constructed (GObject *object)
|
||||
"sources-shown",
|
||||
G_CALLBACK (_gcal_window_sources_shown),
|
||||
object);
|
||||
g_signal_connect (priv->views[GCAL_VIEW_TYPE_MONTHLY],
|
||||
"button-press-event",
|
||||
G_CALLBACK (_gcal_window_view_clicked),
|
||||
g_signal_connect (priv->main_toolbar,
|
||||
"add-event",
|
||||
G_CALLBACK (_gcal_window_add_event),
|
||||
object);
|
||||
|
||||
gtk_widget_show (embed);
|
||||
@@ -307,26 +311,11 @@ _gcal_window_view_changed (GcalMainToolbar *main_toolbar,
|
||||
gpointer user_data)
|
||||
{
|
||||
GcalWindowPrivate *priv;
|
||||
GcalManager *manager;
|
||||
|
||||
priv = GCAL_WINDOW (user_data)->priv;
|
||||
priv->active_view = view_type;
|
||||
|
||||
/* FIXME: demo code */
|
||||
icaltimetype *first_day;
|
||||
icaltimetype *last_day;
|
||||
first_day = g_new0 (icaltimetype, 1);
|
||||
last_day = g_new0 (icaltimetype, 1);
|
||||
*first_day = icaltime_from_timet (time (NULL), 0);
|
||||
first_day->day = 1;
|
||||
*last_day = *first_day;
|
||||
last_day->day = 28;
|
||||
|
||||
manager = _gcal_window_get_manager (GCAL_WINDOW (user_data));
|
||||
gcal_manager_set_new_range (manager, first_day, last_day);
|
||||
g_debug ("GcalViewTypeEnum in GcalWindow %d", priv->active_view);
|
||||
g_free (first_day);
|
||||
g_free (last_day);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -339,6 +328,7 @@ _gcal_window_sources_shown (GcalMainToolbar *main_toolbar,
|
||||
|
||||
if (visible)
|
||||
{
|
||||
clutter_actor_show (priv->sources_actor);
|
||||
clutter_actor_animate (priv->sources_actor,
|
||||
CLUTTER_LINEAR, 150,
|
||||
"opacity", 255,
|
||||
@@ -349,10 +339,18 @@ _gcal_window_sources_shown (GcalMainToolbar *main_toolbar,
|
||||
clutter_actor_animate (priv->sources_actor,
|
||||
CLUTTER_LINEAR, 150,
|
||||
"opacity", 0,
|
||||
"signal-swapped::completed", clutter_actor_hide, priv->sources_actor,
|
||||
NULL);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_gcal_window_add_event (GcalMainToolbar *main_toolbar,
|
||||
gpointer user_data)
|
||||
{
|
||||
g_debug ("Catched signal add-event");
|
||||
}
|
||||
|
||||
static void
|
||||
_gcal_window_sources_row_activated (GtkTreeView *tree_view,
|
||||
GtkTreePath *path,
|
||||
@@ -383,14 +381,6 @@ _gcal_window_sources_row_activated (GtkTreeView *tree_view,
|
||||
-1);
|
||||
}
|
||||
|
||||
static void
|
||||
_gcal_window_view_clicked (GtkWidget *widget,
|
||||
GdkEventButton *event,
|
||||
gpointer user_data)
|
||||
{
|
||||
g_debug ("View Clicked");
|
||||
}
|
||||
|
||||
static void
|
||||
_gcal_window_events_added (GcalManager *manager,
|
||||
gpointer events_list,
|
||||
@@ -412,13 +402,14 @@ _gcal_window_events_added (GcalManager *manager,
|
||||
|
||||
for (l = events_list; l != NULL; l = l->next)
|
||||
{
|
||||
g_debug ("Adding events in GcalWindow %d", priv->active_view);
|
||||
|
||||
tokens = g_strsplit ((gchar*) l->data, ":", -1);
|
||||
source_uid = tokens[0];
|
||||
event_uid = tokens[1];
|
||||
starting_date = gcal_manager_get_event_start_date (manager,
|
||||
source_uid,
|
||||
event_uid);
|
||||
g_debug ("GcalViewTypeEnum in GcalWindow %d", priv->active_view);
|
||||
/* FIXME: here priv->views[priv->active_view] instead of hardcoding
|
||||
* GCAL_VIEW_TYPE_MONTHLY */
|
||||
if (gcal_view_is_in_range (
|
||||
@@ -431,17 +422,17 @@ _gcal_window_events_added (GcalManager *manager,
|
||||
color = gcal_manager_get_event_color (manager,
|
||||
source_uid,
|
||||
event_uid);
|
||||
event =
|
||||
gcal_event_widget_new_with_summary_and_color (summary, color);
|
||||
event = gcal_event_widget_new ((gchar*) l->data);
|
||||
gcal_event_widget_set_summary (GCAL_EVENT_WIDGET (event), summary);
|
||||
gcal_event_widget_set_color (GCAL_EVENT_WIDGET (event), color);
|
||||
gcal_event_widget_set_date (GCAL_EVENT_WIDGET (event),
|
||||
starting_date);
|
||||
gcal_view_add_event (
|
||||
GCAL_VIEW (priv->views[GCAL_VIEW_TYPE_MONTHLY]),
|
||||
gtk_widget_show (event);
|
||||
gtk_container_add (
|
||||
GTK_CONTAINER (priv->views[GCAL_VIEW_TYPE_MONTHLY]),
|
||||
event);
|
||||
gtk_style_context_add_class (gtk_widget_get_style_context (event),
|
||||
"event");
|
||||
gtk_widget_show (event);
|
||||
g_debug ("Returned true call on interface function");
|
||||
g_free (summary);
|
||||
gdk_rgba_free (color);
|
||||
}
|
||||
@@ -474,5 +465,19 @@ gcal_window_new (GcalApplication *app)
|
||||
G_CALLBACK (_gcal_window_events_added),
|
||||
win);
|
||||
|
||||
/* FIXME: demo code */
|
||||
GcalWindowPrivate *priv;
|
||||
icaltimetype *first_day;
|
||||
icaltimetype *last_day;
|
||||
priv = win->priv;
|
||||
first_day = gcal_month_view_get_initial_date (
|
||||
GCAL_MONTH_VIEW (priv->views[GCAL_VIEW_TYPE_MONTHLY]));
|
||||
last_day = gcal_month_view_get_final_date (
|
||||
GCAL_MONTH_VIEW (priv->views[GCAL_VIEW_TYPE_MONTHLY]));
|
||||
|
||||
gcal_manager_set_new_range (manager, first_day, last_day);
|
||||
g_free (first_day);
|
||||
g_free (last_day);
|
||||
|
||||
return GTK_WIDGET (win);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user