static void task_shell_view_model_row_appended_cb (ETaskShellView *task_shell_view, ECalModel *model) { ETaskShellSidebar *task_shell_sidebar; ECalClient *client; /* This is the "Click to Add" handler. */ client = e_cal_model_ref_default_client (model); task_shell_sidebar = task_shell_view->priv->task_shell_sidebar; e_task_shell_sidebar_add_client (task_shell_sidebar, E_CLIENT (client)); g_object_unref (client); }
static void action_task_new_cb (GtkAction *action, ETaskShellView *task_shell_view) { EShell *shell; EShellView *shell_view; EShellWindow *shell_window; ETaskShellContent *task_shell_content; ETaskTable *task_table; ECalClient *client; ECalComponent *comp; CompEditor *editor; GSList *list; shell_view = E_SHELL_VIEW (task_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); shell = e_shell_window_get_shell (shell_window); task_shell_content = task_shell_view->priv->task_shell_content; task_table = e_task_shell_content_get_task_table (task_shell_content); list = e_task_table_get_selected (task_table); if (list == NULL) { ECalModel *model; model = e_task_table_get_model (task_table); client = e_cal_model_ref_default_client (model); } else { ECalModelComponent *comp_data; comp_data = list->data; client = g_object_ref (comp_data->client); g_slist_free (list); } g_return_if_fail (client != NULL); editor = task_editor_new (client, shell, COMP_EDITOR_NEW_ITEM); comp = cal_comp_task_new_with_defaults (client); comp_editor_edit_comp (editor, comp); gtk_window_present (GTK_WINDOW (editor)); g_object_unref (comp); g_object_unref (client); }