/* Creates the ecalendar */ static void create_ecal (GoToDialog *dlg) { ECalendarItem *calitem; dlg->ecal = E_CALENDAR (e_calendar_new ()); calitem = dlg->ecal->calitem; gnome_canvas_item_set (GNOME_CANVAS_ITEM (calitem), "move_selection_when_moving", FALSE, NULL); e_calendar_item_set_display_popup (calitem, FALSE); gtk_widget_show (GTK_WIDGET (dlg->ecal)); gtk_box_pack_start (GTK_BOX (dlg->vbox), GTK_WIDGET (dlg->ecal), TRUE, TRUE, 0); e_calendar_item_set_first_month (calitem, dlg->year_val, dlg->month_val); e_calendar_item_set_get_time_callback (calitem, get_current_time, dlg, NULL); ecal_date_range_changed (calitem, dlg); }
void e_cal_shell_view_private_constructed (ECalShellView *cal_shell_view) { ECalShellViewPrivate *priv = cal_shell_view->priv; EShellBackend *shell_backend; EShellContent *shell_content; EShellSidebar *shell_sidebar; EShellWindow *shell_window; EShellView *shell_view; EShell *shell; ECalendar *calendar; gulong handler_id; gint ii; shell_view = E_SHELL_VIEW (cal_shell_view); shell_backend = e_shell_view_get_shell_backend (shell_view); shell_content = e_shell_view_get_shell_content (shell_view); shell_sidebar = e_shell_view_get_shell_sidebar (shell_view); shell_window = e_shell_view_get_shell_window (shell_view); shell = e_shell_window_get_shell (shell_window); e_shell_window_add_action_group (shell_window, "calendar"); e_shell_window_add_action_group (shell_window, "calendar-filter"); /* Cache these to avoid lots of awkward casting. */ priv->cal_shell_backend = g_object_ref (shell_backend); priv->cal_shell_content = g_object_ref (shell_content); priv->cal_shell_sidebar = g_object_ref (shell_sidebar); calendar = e_cal_base_shell_sidebar_get_date_navigator (priv->cal_shell_sidebar); /* Keep our own reference to this so we can * disconnect our signal handlers in dispose(). */ priv->client_cache = e_shell_get_client_cache (shell); g_object_ref (priv->client_cache); handler_id = g_signal_connect ( priv->client_cache, "backend-error", G_CALLBACK (cal_shell_view_backend_error_cb), cal_shell_view); priv->backend_error_handler_id = handler_id; g_signal_connect_swapped ( e_cal_base_shell_content_get_model (E_CAL_BASE_SHELL_CONTENT (priv->cal_shell_content)), "time-range-changed", G_CALLBACK (e_cal_shell_view_update_sidebar), cal_shell_view); for (ii = E_CAL_VIEW_KIND_DAY; ii < E_CAL_VIEW_KIND_LAST; ii++) { ECalendarView *calendar_view; /* Keep our own reference to this so we can * disconnect our signal handlers in dispose(). */ calendar_view = e_cal_shell_content_get_calendar_view (priv->cal_shell_content, ii); priv->views[ii].calendar_view = g_object_ref (calendar_view); handler_id = g_signal_connect_swapped ( calendar_view, "popup-event", G_CALLBACK (cal_shell_view_popup_event_cb), cal_shell_view); priv->views[ii].popup_event_handler_id = handler_id; handler_id = g_signal_connect_swapped ( calendar_view, "selection-changed", G_CALLBACK (e_shell_view_update_actions), cal_shell_view); priv->views[ii].selection_changed_handler_id = handler_id; } /* Keep our own reference to this so we can * disconnect our signal handlers in dispose(). */ priv->model = e_cal_base_shell_content_get_model ( E_CAL_BASE_SHELL_CONTENT (shell_content)); g_object_ref (priv->model); /* Keep our own reference to this so we can * disconnect our signal handlers in dispose(). */ priv->selector = e_cal_base_shell_sidebar_get_selector ( E_CAL_BASE_SHELL_SIDEBAR (shell_sidebar)); g_object_ref (priv->selector); handler_id = g_signal_connect_swapped ( priv->selector, "popup-event", G_CALLBACK (cal_shell_view_selector_popup_event_cb), cal_shell_view); priv->selector_popup_event_handler_id = handler_id; /* Keep our own reference to this so we can * disconnect our signal handlers in dispose(). */ priv->memo_table = e_cal_shell_content_get_memo_table ( E_CAL_SHELL_CONTENT (shell_content)); g_object_ref (priv->memo_table); handler_id = g_signal_connect_swapped ( priv->memo_table, "popup-event", G_CALLBACK (cal_shell_view_memopad_popup_event_cb), cal_shell_view); priv->memo_table_popup_event_handler_id = handler_id; handler_id = g_signal_connect_swapped ( priv->memo_table, "selection-change", G_CALLBACK (e_cal_shell_view_memopad_actions_update), cal_shell_view); priv->memo_table_selection_change_handler_id = handler_id; /* Keep our own reference to this so we can * disconnect our signal handlers in dispose(). */ priv->task_table = e_cal_shell_content_get_task_table ( E_CAL_SHELL_CONTENT (shell_content)); g_object_ref (priv->task_table); handler_id = g_signal_connect_swapped ( priv->task_table, "popup-event", G_CALLBACK (cal_shell_view_taskpad_popup_event_cb), cal_shell_view); priv->task_table_popup_event_handler_id = handler_id; handler_id = g_signal_connect_swapped ( priv->task_table, "selection-change", G_CALLBACK (e_cal_shell_view_taskpad_actions_update), cal_shell_view); priv->task_table_selection_change_handler_id = handler_id; e_categories_add_change_hook ( (GHookFunc) e_cal_shell_view_update_search_filter, cal_shell_view); e_calendar_item_set_get_time_callback ( calendar->calitem, (ECalendarItemGetTimeCallback) cal_shell_view_get_current_time, cal_shell_view, NULL); init_timezone_monitors (cal_shell_view); e_cal_shell_view_actions_init (cal_shell_view); e_cal_shell_view_update_sidebar (cal_shell_view); e_cal_shell_view_update_search_filter (cal_shell_view); }
void constructed (GObject * object) { AnnumShellView *self = ANNUM_SHELL_VIEW (object); AnnumShellViewPrivate *priv = self->priv; AnnumShellContent *prox_shell_content; AnnumShellSidebar *prox_shell_sidebar; EShellBackend *shell_backend; EShellContent *shell_content; EShellSidebar *shell_sidebar; EShellWindow *shell_window; EShellView *shell_view; GnomeCalendar *calendar; ECalendar *date_navigator; ESourceSelector *selector; ECalModel *model; int ii; G_OBJECT_CLASS (annum_shell_view_parent_class)->constructed (object); shell_view = E_SHELL_VIEW (self); shell_backend = e_shell_view_get_shell_backend (shell_view); shell_content = e_shell_view_get_shell_content (shell_view); shell_sidebar = e_shell_view_get_shell_sidebar (shell_view); shell_window = e_shell_view_get_shell_window (shell_view); e_shell_window_add_action_group (shell_window, "calendar"); e_shell_window_add_action_group (shell_window, "calendar-filter"); /* Cache these to avoid lots of awkward casting. */ priv->prox_shell_backend = g_object_ref (shell_backend); priv->prox_shell_content = g_object_ref (shell_content); priv->prox_shell_sidebar = g_object_ref (shell_sidebar); prox_shell_content = ANNUM_SHELL_CONTENT (shell_content); model = annum_shell_content_get_model (prox_shell_content); calendar = annum_shell_content_get_calendar (prox_shell_content); prox_shell_sidebar = ANNUM_SHELL_SIDEBAR (shell_sidebar); selector = annum_shell_sidebar_get_selector (prox_shell_sidebar); date_navigator = annum_shell_sidebar_get_date_navigator (prox_shell_sidebar); /* Give GnomeCalendar a handle to the date navigator. */ gnome_calendar_set_date_navigator (calendar, date_navigator); e_calendar_item_set_get_time_callback (date_navigator->calitem, (ECalendarItemGetTimeCallback) annum_shell_view_get_current_time, self, NULL); /* Initialize its default query to fetch everything in a range */ gnome_calendar_set_search_query (calendar, "(contains? \"summary\" \"\")", FALSE, 0, 0); for (ii = 0; ii < GNOME_CAL_LAST_VIEW; ii++) { ECalendarView *calendar_view; calendar_view = gnome_calendar_get_calendar_view (calendar, ii); g_signal_connect_swapped (calendar_view, "user-created", G_CALLBACK (annum_shell_view_user_created_cb), self); } g_signal_connect_swapped (date_navigator->calitem, "date-range-changed", G_CALLBACK (annum_shell_view_date_navigator_date_range_changed_cb), self); g_signal_connect_swapped (date_navigator->calitem, "selection-changed", G_CALLBACK (annum_shell_view_date_navigator_selection_changed_cb), self); g_signal_connect_swapped (selector, "primary-selection-changed", G_CALLBACK (annum_shell_view_selector_primary_changed_cb), self); g_signal_connect_swapped (model, "notify::timezone", G_CALLBACK (annum_shell_view_update_timezone), self); g_signal_connect_swapped (prox_shell_sidebar, "client-added", G_CALLBACK (annum_shell_view_selector_client_added_cb), self); g_signal_connect_swapped (prox_shell_sidebar, "client-removed", G_CALLBACK (annum_shell_view_selector_client_removed_cb), self); /* Force the main calendar to update its default source. */ g_signal_emit_by_name (selector, "primary-selection-changed"); }