+
+void tasktree_done_activate_cbk(GtkAction *action, gpointer data)
+{
+ struct task *t;
+
+ log_fct_enter();
+
+ t = ui_tasktree_get_selected_task();
+
+ if (t) {
+ tw_task_done(t->uuid);
+ refresh();
+ }
+
+ log_fct_exit();
+}
+
+void tasktree_start_activate_cbk(GtkAction *action, gpointer data)
+{
+ struct task *t;
+
+ log_fct_enter();
+
+ t = ui_tasktree_get_selected_task();
+
+ if (t) {
+ tw_task_start(t->uuid);
+ refresh();
+ }
+
+ log_fct_exit();
+}
+
+void tasktree_stop_activate_cbk(GtkAction *action, gpointer data)
+{
+ struct task *t;
+
+ log_fct_enter();
+
+ t = ui_tasktree_get_selected_task();
+
+ if (t) {
+ tw_task_stop(t->uuid);
+ refresh();
+ }
+
+ log_fct_exit();
+}
+
+void
+ui_tasktree_search_changed_cbk(GtkEntry *entry, gchar *preedit, gpointer data)
+{
+ if (search_keywords)
+ g_free(search_keywords);
+
+ search_keywords = g_ascii_strup(gtk_entry_get_text(entry), -1);
+
+ ui_tasktree_update(current_tasks);
+}
+
+void ui_tasktree_update_filter(const char *prj)
+{
+ ui_tasktree_update(current_tasks);
+}