static void header_func (GtkListBoxRow *row, GtkListBoxRow *before, gpointer user_data) { GtkWidget *header = NULL; if (!before) { header = create_bold_label_for_task_row (row); } else { GtdTask *before_task; GtdTask *task; before_task = g_object_get_data (G_OBJECT (before), "task"); task = g_object_get_data (G_OBJECT (row), "task"); if (gtd_task_get_list (task) != gtd_task_get_list (before_task)) header = create_bold_label_for_task_row (row); } gtk_list_box_row_set_header (row, header); }
/** * gtd_manager_update_task: * @manager: a #GtdManager * @task: a #GtdTask * * Ask for @task's parent list source to update @task. */ void gtd_manager_update_task (GtdManager *manager, GtdTask *task) { GtdTaskList *list; GtdProvider *provider; g_return_if_fail (GTD_IS_MANAGER (manager)); g_return_if_fail (GTD_IS_TASK (task)); list = gtd_task_get_list (task); provider = gtd_task_list_get_provider (list); gtd_provider_update_task (provider, task); }
static GtkWidget* create_bold_label_for_task_row (GtkListBoxRow *row) { g_autofree gchar *markup = NULL; GtdTask *task; task = g_object_get_data (G_OBJECT (row), "task"); markup = g_strdup_printf ("<big><b>%s</b></big>", gtd_task_list_get_name (gtd_task_get_list (task))); return g_object_new (GTK_TYPE_LABEL, "margin", 6, "margin-top", 18, "use-markup", TRUE, "label", markup, "xalign", 0.0, NULL); }