event-widget: Receive a context
This commit is contained in:
+30
-2
@@ -23,6 +23,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "gcal-application.h"
|
#include "gcal-application.h"
|
||||||
|
#include "gcal-context.h"
|
||||||
#include "gcal-clock.h"
|
#include "gcal-clock.h"
|
||||||
#include "gcal-event-widget.h"
|
#include "gcal-event-widget.h"
|
||||||
#include "gcal-utils.h"
|
#include "gcal-utils.h"
|
||||||
@@ -63,11 +64,14 @@ struct _GcalEventWidget
|
|||||||
gboolean vertical_labels;
|
gboolean vertical_labels;
|
||||||
|
|
||||||
gboolean button_pressed;
|
gboolean button_pressed;
|
||||||
|
|
||||||
|
GcalContext *context;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
PROP_0,
|
PROP_0,
|
||||||
|
PROP_CONTEXT,
|
||||||
PROP_DATE_END,
|
PROP_DATE_END,
|
||||||
PROP_DATE_START,
|
PROP_DATE_START,
|
||||||
PROP_EVENT,
|
PROP_EVENT,
|
||||||
@@ -773,6 +777,11 @@ gcal_event_widget_set_property (GObject *object,
|
|||||||
|
|
||||||
switch (property_id)
|
switch (property_id)
|
||||||
{
|
{
|
||||||
|
case PROP_CONTEXT:
|
||||||
|
g_assert (self->context == NULL);
|
||||||
|
self->context = g_value_dup_object (value);
|
||||||
|
break;
|
||||||
|
|
||||||
case PROP_DATE_END:
|
case PROP_DATE_END:
|
||||||
gcal_event_widget_set_date_end (self, g_value_get_boxed (value));
|
gcal_event_widget_set_date_end (self, g_value_get_boxed (value));
|
||||||
break;
|
break;
|
||||||
@@ -807,6 +816,10 @@ gcal_event_widget_get_property (GObject *object,
|
|||||||
|
|
||||||
switch (property_id)
|
switch (property_id)
|
||||||
{
|
{
|
||||||
|
case PROP_CONTEXT:
|
||||||
|
g_value_set_object (value, self->context);
|
||||||
|
break;
|
||||||
|
|
||||||
case PROP_DATE_END:
|
case PROP_DATE_END:
|
||||||
g_value_set_boxed (value, self->dt_end);
|
g_value_set_boxed (value, self->dt_end);
|
||||||
break;
|
break;
|
||||||
@@ -842,6 +855,7 @@ gcal_event_widget_finalize (GObject *object)
|
|||||||
/* releasing properties */
|
/* releasing properties */
|
||||||
g_clear_pointer (&self->css_class, g_free);
|
g_clear_pointer (&self->css_class, g_free);
|
||||||
g_clear_object (&self->event);
|
g_clear_object (&self->event);
|
||||||
|
g_clear_object (&self->context);
|
||||||
|
|
||||||
/* remove timeouts */
|
/* remove timeouts */
|
||||||
if (self->vertical_label_source_id > 0)
|
if (self->vertical_label_source_id > 0)
|
||||||
@@ -876,6 +890,18 @@ gcal_event_widget_class_init (GcalEventWidgetClass *klass)
|
|||||||
widget_class->unmap = gcal_event_widget_unmap;
|
widget_class->unmap = gcal_event_widget_unmap;
|
||||||
widget_class->unrealize = gcal_event_widget_unrealize;
|
widget_class->unrealize = gcal_event_widget_unrealize;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GcalEventWidget::context:
|
||||||
|
*
|
||||||
|
* The context of the event.
|
||||||
|
*/
|
||||||
|
g_object_class_install_property (object_class,
|
||||||
|
PROP_CONTEXT,
|
||||||
|
g_param_spec_object ("context",
|
||||||
|
"Context",
|
||||||
|
"Context",
|
||||||
|
GCAL_TYPE_CONTEXT,
|
||||||
|
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS));
|
||||||
/**
|
/**
|
||||||
* GcalEventWidget::date-end:
|
* GcalEventWidget::date-end:
|
||||||
*
|
*
|
||||||
@@ -983,9 +1009,11 @@ gcal_event_widget_init (GcalEventWidget *self)
|
|||||||
}
|
}
|
||||||
|
|
||||||
GtkWidget*
|
GtkWidget*
|
||||||
gcal_event_widget_new (GcalEvent *event)
|
gcal_event_widget_new (GcalContext *context,
|
||||||
|
GcalEvent *event)
|
||||||
{
|
{
|
||||||
return g_object_new (GCAL_TYPE_EVENT_WIDGET,
|
return g_object_new (GCAL_TYPE_EVENT_WIDGET,
|
||||||
|
"context", context,
|
||||||
"event", event,
|
"event", event,
|
||||||
NULL);
|
NULL);
|
||||||
}
|
}
|
||||||
@@ -1120,7 +1148,7 @@ gcal_event_widget_clone (GcalEventWidget *widget)
|
|||||||
{
|
{
|
||||||
GtkWidget *new_widget;
|
GtkWidget *new_widget;
|
||||||
|
|
||||||
new_widget = gcal_event_widget_new (widget->event);
|
new_widget = gcal_event_widget_new (widget->context, widget->event);
|
||||||
gcal_event_widget_set_read_only (GCAL_EVENT_WIDGET (new_widget), widget->read_only);
|
gcal_event_widget_set_read_only (GCAL_EVENT_WIDGET (new_widget), widget->read_only);
|
||||||
|
|
||||||
return new_widget;
|
return new_widget;
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
#define __GCAL_EVENT_WIDGET_H__
|
#define __GCAL_EVENT_WIDGET_H__
|
||||||
|
|
||||||
#include "gcal-event.h"
|
#include "gcal-event.h"
|
||||||
#include "gcal-manager.h"
|
#include "gcal-context.h"
|
||||||
|
|
||||||
#include <gtk/gtk.h>
|
#include <gtk/gtk.h>
|
||||||
|
|
||||||
@@ -32,7 +32,8 @@ G_BEGIN_DECLS
|
|||||||
|
|
||||||
G_DECLARE_FINAL_TYPE (GcalEventWidget, gcal_event_widget, GCAL, EVENT_WIDGET, GtkBin)
|
G_DECLARE_FINAL_TYPE (GcalEventWidget, gcal_event_widget, GCAL, EVENT_WIDGET, GtkBin)
|
||||||
|
|
||||||
GtkWidget* gcal_event_widget_new (GcalEvent *event);
|
GtkWidget* gcal_event_widget_new (GcalContext *context,
|
||||||
|
GcalEvent *event);
|
||||||
|
|
||||||
GcalEvent* gcal_event_widget_get_event (GcalEventWidget *self);
|
GcalEvent* gcal_event_widget_get_event (GcalEventWidget *self);
|
||||||
|
|
||||||
|
|||||||
@@ -345,7 +345,7 @@ update_event_list (GcalMonthPopover *self)
|
|||||||
|
|
||||||
event_end = g_date_time_add_days (event_start, 1);
|
event_end = g_date_time_add_days (event_start, 1);
|
||||||
|
|
||||||
event_widget = gcal_event_widget_new (event);
|
event_widget = gcal_event_widget_new (self->context, event);
|
||||||
gcal_event_widget_set_date_start (GCAL_EVENT_WIDGET (event_widget), event_start);
|
gcal_event_widget_set_date_start (GCAL_EVENT_WIDGET (event_widget), event_start);
|
||||||
gcal_event_widget_set_date_end (GCAL_EVENT_WIDGET (event_widget), event_end);
|
gcal_event_widget_set_date_end (GCAL_EVENT_WIDGET (event_widget), event_end);
|
||||||
|
|
||||||
|
|||||||
@@ -1254,7 +1254,7 @@ gcal_month_view_component_added (ECalDataModelSubscriber *subscriber,
|
|||||||
GCAL_RETURN ();
|
GCAL_RETURN ();
|
||||||
}
|
}
|
||||||
|
|
||||||
event_widget = gcal_event_widget_new (event);
|
event_widget = gcal_event_widget_new (self->context, event);
|
||||||
gcal_event_widget_set_read_only (GCAL_EVENT_WIDGET (event_widget), e_client_is_readonly (E_CLIENT (client)));
|
gcal_event_widget_set_read_only (GCAL_EVENT_WIDGET (event_widget), e_client_is_readonly (E_CLIENT (client)));
|
||||||
|
|
||||||
gtk_widget_show (event_widget);
|
gtk_widget_show (event_widget);
|
||||||
@@ -1289,7 +1289,7 @@ gcal_month_view_component_modified (ECalDataModelSubscriber *subscriber,
|
|||||||
GCAL_RETURN ();
|
GCAL_RETURN ();
|
||||||
}
|
}
|
||||||
|
|
||||||
new_widget = gcal_event_widget_new (event);
|
new_widget = gcal_event_widget_new (self->context, event);
|
||||||
|
|
||||||
l = g_hash_table_lookup (self->children, gcal_event_get_uid (event));
|
l = g_hash_table_lookup (self->children, gcal_event_get_uid (event));
|
||||||
|
|
||||||
|
|||||||
@@ -1166,6 +1166,7 @@ gcal_week_grid_add_event (GcalWeekGrid *self,
|
|||||||
g_object_ref (event);
|
g_object_ref (event);
|
||||||
|
|
||||||
widget = g_object_new (GCAL_TYPE_EVENT_WIDGET,
|
widget = g_object_new (GCAL_TYPE_EVENT_WIDGET,
|
||||||
|
"context", self->context,
|
||||||
"event", event,
|
"event", event,
|
||||||
"orientation", GTK_ORIENTATION_VERTICAL,
|
"orientation", GTK_ORIENTATION_VERTICAL,
|
||||||
NULL);
|
NULL);
|
||||||
|
|||||||
@@ -735,7 +735,7 @@ add_event_to_grid (GcalWeekHeader *self,
|
|||||||
move_events_at_column (self, DOWN, start, position);
|
move_events_at_column (self, DOWN, start, position);
|
||||||
|
|
||||||
/* Add the event to the grid */
|
/* Add the event to the grid */
|
||||||
widget = gcal_event_widget_new (event);
|
widget = gcal_event_widget_new (self->context, event);
|
||||||
setup_event_widget (self, widget);
|
setup_event_widget (self, widget);
|
||||||
|
|
||||||
gtk_grid_attach (GTK_GRID (self->grid),
|
gtk_grid_attach (GTK_GRID (self->grid),
|
||||||
|
|||||||
@@ -319,7 +319,7 @@ add_event_to_day_array (GcalYearView *year_view,
|
|||||||
manager = gcal_context_get_manager (year_view->context);
|
manager = gcal_context_get_manager (year_view->context);
|
||||||
is_readonly = !gcal_manager_is_client_writable (manager, gcal_event_get_source (event));
|
is_readonly = !gcal_manager_is_client_writable (manager, gcal_event_get_source (event));
|
||||||
|
|
||||||
child_widget = gcal_event_widget_new (event);
|
child_widget = gcal_event_widget_new (year_view->context, event);
|
||||||
gcal_event_widget_set_read_only (GCAL_EVENT_WIDGET (child_widget), is_readonly);
|
gcal_event_widget_set_read_only (GCAL_EVENT_WIDGET (child_widget), is_readonly);
|
||||||
|
|
||||||
dt_start = gcal_event_get_date_start (event);
|
dt_start = gcal_event_get_date_start (event);
|
||||||
|
|||||||
Reference in New Issue
Block a user