Added EVENT_VIEW mode to GcalToolbar.

Hooked signals to GcalWindow methods which connect with GcalEventView.
This commit is contained in:
Erick Pérez Castellanos
2012-07-03 15:20:00 -04:00
parent e113e60e0f
commit 325f0d8fa3
3 changed files with 227 additions and 16 deletions
+69 -7
View File
@@ -68,6 +68,12 @@ static void gcal_window_sources_shown (GcalToolbar *main_to
static void gcal_window_add_event (GcalToolbar *main_toolbar,
gpointer user_data);
static void gcal_window_back_last_view (GcalToolbar *main_toolbar,
gpointer user_data);
static void gcal_window_edit_event (GcalToolbar *main_toolbar,
gpointer user_data);
static void gcal_window_sources_row_activated (GtkTreeView *tree_view,
GtkTreePath *path,
GtkTreeViewColumn *column,
@@ -189,6 +195,7 @@ gcal_window_constructed (GObject *object)
icaltimetype *date = g_new (icaltimetype, 1);
*date = icaltime_from_timet (time (NULL), 0);
priv->active_view = GCAL_VIEW_TYPE_MONTHLY;
priv->views[GCAL_VIEW_TYPE_MONTHLY] = gcal_month_view_new (date);
g_free (date);
@@ -237,6 +244,16 @@ gcal_window_constructed (GObject *object)
G_CALLBACK (gcal_window_add_event),
object);
g_signal_connect (priv->main_toolbar,
"back",
G_CALLBACK (gcal_window_back_last_view),
object);
g_signal_connect (priv->main_toolbar,
"edit-event",
G_CALLBACK (gcal_window_edit_event),
object);
gtk_widget_show (embed);
}
@@ -338,7 +355,7 @@ gcal_window_init_event_view (GcalWindow *window)
}
static void
gcal_window_view_changed (GcalToolbar *main_toolbar,
gcal_window_view_changed (GcalToolbar *main_toolbar,
GcalViewTypeEnum view_type,
gpointer user_data)
{
@@ -364,8 +381,8 @@ gcal_window_view_changed (GcalToolbar *main_toolbar,
static void
gcal_window_sources_shown (GcalToolbar *main_toolbar,
gboolean visible,
gpointer user_data)
gboolean visible,
gpointer user_data)
{
GcalWindowPrivate *priv;
priv = ((GcalWindow*) user_data)->priv;
@@ -390,7 +407,7 @@ gcal_window_sources_shown (GcalToolbar *main_toolbar,
static void
gcal_window_add_event (GcalToolbar *main_toolbar,
gpointer user_data)
gpointer user_data)
{
GcalWindowPrivate *priv;
@@ -405,7 +422,49 @@ gcal_window_add_event (GcalToolbar *main_toolbar,
}
static void
gcal_window_sources_row_activated (GtkTreeView *tree_view,
gcal_window_back_last_view (GcalToolbar *main_toolbar,
gpointer user_data)
{
GcalWindowPrivate *priv;
gint activated_page;
priv = GCAL_WINDOW (user_data)->priv;
gcal_toolbar_set_mode (GCAL_TOOLBAR (priv->main_toolbar),
GCAL_TOOLBAR_OVERVIEW);
if ((activated_page = gtk_notebook_page_num (GTK_NOTEBOOK (priv->notebook),
priv->views[priv->active_view]))
!= -1)
{
gtk_notebook_set_current_page (GTK_NOTEBOOK (priv->notebook),
activated_page);
}
else
{
//TODO create view
g_debug ("GcalViewTypeEnum in GcalWindow %d", priv->active_view);
}
}
static void
gcal_window_edit_event (GcalToolbar *main_toolbar,
gpointer user_data)
{
GcalWindowPrivate *priv;
priv = GCAL_WINDOW (user_data)->priv;
if (priv->add_view == NULL)
gcal_window_init_event_view (GCAL_WINDOW (user_data));
gtk_notebook_set_current_page (
GTK_NOTEBOOK (priv->notebook),
gtk_notebook_page_num (GTK_NOTEBOOK (priv->notebook), priv->add_view));
gcal_event_view_enter_edit_mode (GCAL_EVENT_VIEW (priv->add_view));
}
static void
gcal_window_sources_row_activated (GtkTreeView *tree_view,
GtkTreePath *path,
GtkTreeViewColumn *column,
gpointer user_data)
@@ -436,8 +495,8 @@ gcal_window_sources_row_activated (GtkTreeView *tree_view,
static void
gcal_window_events_added (GcalManager *manager,
gpointer events_list,
gpointer user_data)
gpointer events_list,
gpointer user_data)
{
GcalWindowPrivate *priv;
GSList *l;
@@ -524,6 +583,9 @@ gcal_window_event_activated (GcalEventWidget *event_widget,
gcal_event_view_load_event (GCAL_EVENT_VIEW (priv->add_view),
gcal_event_widget_peek_uuid (event_widget));
gcal_toolbar_set_mode (GCAL_TOOLBAR (priv->main_toolbar),
GCAL_TOOLBAR_VIEW_EVENT);
}
/* Public API */