Added a bunch of changes.

Fixed some minors align issues
Added method to GcalManager to get dtstart from events
Added method to GcalManager to sync COLUMN_ACTIVE with GcalManagerUnit::enabled
attribute
Added method for receiving button press events of view in GcalWindow
This commit is contained in:
Erick Pérez Castellanos
2012-05-15 23:32:29 -04:00
parent 99a89e0e24
commit a873e0b73f
4 changed files with 121 additions and 45 deletions
+50 -10
View File
@@ -33,13 +33,15 @@
struct _GcalWindowPrivate
{
ClutterActor *main_toolbar;
ClutterActor *notebook_actor;
ClutterActor *sources_actor;
ClutterActor *main_toolbar;
ClutterActor *notebook_actor;
ClutterActor *sources_actor;
GtkWidget *notebook;
GtkWidget *sources_view;
GtkWidget *views [5];
GtkWidget *notebook;
GtkWidget *sources_view;
GtkWidget *views [5];
GcalViewType active_view;
};
static void gcal_window_constructed (GObject *object);
@@ -61,6 +63,10 @@ static void _gcal_window_sources_row_activated (GtkTreeView *tree_view,
GtkTreeViewColumn *column,
gpointer user_data);
static void _gcal_window_view_clicked (GtkWidget *widget,
GdkEventButton *event,
gpointer user_data);
static void _gcal_window_events_added (GcalManager *manager,
gpointer events_list,
gpointer user_data);
@@ -208,6 +214,10 @@ 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),
object);
gtk_widget_show (embed);
}
@@ -294,9 +304,12 @@ _gcal_window_view_changed (GcalMainToolbar *main_toolbar,
GcalViewType view_type,
gpointer user_data)
{
GcalWindow *window;
GcalWindowPrivate *priv;
GcalManager *manager;
priv = GCAL_WINDOW (user_data)->priv;
priv->active_view = view_type;
/* FIXME: demo code */
icaltimetype *first_day;
icaltimetype *last_day;
@@ -307,10 +320,9 @@ _gcal_window_view_changed (GcalMainToolbar *main_toolbar,
*last_day = *first_day;
last_day->day = 28;
window = GCAL_WINDOW (user_data);
manager = _gcal_window_get_manager (window);
manager = _gcal_window_get_manager (GCAL_WINDOW (user_data));
gcal_manager_set_new_range (manager, first_day, last_day);
g_debug ("GcalViewType in GcalWindow %d", view_type);
g_debug ("GcalViewType in GcalWindow %d", priv->active_view);
g_free (first_day);
g_free (last_day);
}
@@ -369,12 +381,40 @@ _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,
gpointer user_data)
{
GSList *l;
icaltimetype *starting_date;
gchar **tokens;
gchar *source_uid;
gchar *event_uid;
g_debug ("[IWEA]: obtained %d events", g_slist_length (events_list));
for (l = events_list; l != NULL; l = l->next)
{
g_debug ("event %s", (gchar*) l->data);
tokens = g_strsplit ((gchar*) l->data, ":", -1);
source_uid = tokens[0];
event_uid = tokens[1];
starting_date = gcal_manager_get_start_date (manager,
source_uid,
event_uid);
g_debug ("starts on %s", icaltime_as_ical_string (*starting_date));
g_free (starting_date);
g_strfreev (tokens);
}
}
GtkWidget*