diff options
Diffstat (limited to 'widgets/misc/e-task-bar.c')
-rw-r--r-- | widgets/misc/e-task-bar.c | 59 |
1 files changed, 56 insertions, 3 deletions
diff --git a/widgets/misc/e-task-bar.c b/widgets/misc/e-task-bar.c index 075322dd97..ff18cf7bdb 100644 --- a/widgets/misc/e-task-bar.c +++ b/widgets/misc/e-task-bar.c @@ -40,6 +40,7 @@ struct _ETaskBarPrivate G_DEFINE_TYPE (ETaskBar, e_task_bar, GTK_TYPE_HBOX) +#if 0 static void reduce_displayed_activities_per_component (ETaskBar *task_bar) { @@ -82,7 +83,7 @@ reduce_displayed_activities_per_component (ETaskBar *task_bar) g_hash_table_destroy (component_ids_hash); } - +#endif static void e_task_bar_class_init (ETaskBarClass *klass) @@ -185,12 +186,37 @@ e_task_bar_prepend_task (ETaskBar *task_bar, gtk_widget_queue_resize (GTK_WIDGET (task_widget)); } - reduce_displayed_activities_per_component (task_bar); + /* We don't restrict */ + /* reduce_displayed_activities_per_component (task_bar);*/ gtk_widget_show (GTK_WIDGET (task_bar->priv->hbox)); } void +e_task_bar_remove_task_from_id (ETaskBar *task_bar, + guint id) +{ + ETaskWidget *task_widget; + + g_return_if_fail (task_bar != NULL); + g_return_if_fail (E_IS_TASK_BAR (task_bar)); + + task_widget = e_task_bar_get_task_widget_from_id (task_bar, id); + if (!task_widget) { + printf("Failed...\n"); + return; + } + + gtk_widget_destroy (GTK_WIDGET (task_widget)); + + /* We don't restrict here on */ + /* reduce_displayed_activities_per_component (task_bar); */ + + if (g_list_length (GTK_BOX (task_bar->priv->hbox)->children) == 0) + gtk_widget_hide (GTK_WIDGET (task_bar->priv->hbox)); +} + +void e_task_bar_remove_task (ETaskBar *task_bar, int n) { @@ -203,13 +229,40 @@ e_task_bar_remove_task (ETaskBar *task_bar, task_widget = e_task_bar_get_task_widget (task_bar, n); gtk_widget_destroy (GTK_WIDGET (task_widget)); - reduce_displayed_activities_per_component (task_bar); + /* We don't restrict here on */ + /* reduce_displayed_activities_per_component (task_bar); */ if (g_list_length (GTK_BOX (task_bar->priv->hbox)->children) == 0) gtk_widget_hide (GTK_WIDGET (task_bar->priv->hbox)); } ETaskWidget * +e_task_bar_get_task_widget_from_id (ETaskBar *task_bar, + guint id) +{ + GtkBoxChild *child_info; + ETaskWidget *w = NULL; + GList *list; + + g_return_val_if_fail (task_bar != NULL, NULL); + g_return_val_if_fail (E_IS_TASK_BAR (task_bar), NULL); + + list = GTK_BOX (task_bar->priv->hbox)->children; + while (list) { + child_info = list->data; + w = (ETaskWidget *) child_info->widget; + if (w && w->id == id) + break; + + w = NULL; + list = list->next; + } + + return w; +} + +ETaskWidget * + e_task_bar_get_task_widget (ETaskBar *task_bar, int n) { |