X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Ftaskbar%2Ftaskbar.c;h=5c2edae1ad8eff8be3b6381fb1eb426a2597a7d6;hb=bab0811f845cedb817a3c3a29dd91ade07d5a886;hp=6ea6b4d18ef260220dcb1005b37cd04b016b55d0;hpb=21dcd195642692401f855ef07b239364b5ef0c1b;p=chaz%2Ftint2 diff --git a/src/taskbar/taskbar.c b/src/taskbar/taskbar.c index 6ea6b4d..5c2edae 100644 --- a/src/taskbar/taskbar.c +++ b/src/taskbar/taskbar.c @@ -48,36 +48,62 @@ void init_taskbar() } // taskbar - panel->g_taskbar._resize = resize_taskbar; - panel->g_taskbar.redraw = 1; - panel->g_taskbar.on_screen = 1; + panel->g_taskbar.area._resize = resize_taskbar; + panel->g_taskbar.area.redraw = 1; + panel->g_taskbar.area.on_screen = 1; if (panel_horizontal) { - panel->g_taskbar.posy = panel->area.pix.border.width + panel->area.paddingy; - panel->g_taskbar.height = panel->area.height - (2 * panel->g_taskbar.posy); + panel->g_taskbar.area.posy = panel->area.bg->border.width + panel->area.paddingy; + panel->g_taskbar.area.height = panel->area.height - (2 * panel->g_taskbar.area.posy); } else { - panel->g_taskbar.posx = panel->area.pix.border.width + panel->area.paddingy; - panel->g_taskbar.width = panel->area.width - (2 * panel->g_taskbar.posx); + panel->g_taskbar.area.posx = panel->area.bg->border.width + panel->area.paddingy; + panel->g_taskbar.area.width = panel->area.width - (2 * panel->g_taskbar.area.posx); } // task panel->g_task.area._draw_foreground = draw_task; - panel->g_task.area.use_active = 1; panel->g_task.area.redraw = 1; panel->g_task.area.on_screen = 1; + if ((panel->g_task.config_asb_mask & (1<g_task.alpha[TASK_ACTIVE] = panel->g_task.alpha[TASK_NORMAL]; + panel->g_task.saturation[TASK_ACTIVE] = panel->g_task.saturation[TASK_NORMAL]; + panel->g_task.brightness[TASK_ACTIVE] = panel->g_task.brightness[TASK_NORMAL]; + } + if ((panel->g_task.config_asb_mask & (1<g_task.alpha[TASK_ICONIFIED] = panel->g_task.alpha[TASK_NORMAL]; + panel->g_task.saturation[TASK_ICONIFIED] = panel->g_task.saturation[TASK_NORMAL]; + panel->g_task.brightness[TASK_ICONIFIED] = panel->g_task.brightness[TASK_NORMAL]; + } + if ((panel->g_task.config_asb_mask & (1<g_task.alpha[TASK_URGENT] = panel->g_task.alpha[TASK_ACTIVE]; + panel->g_task.saturation[TASK_URGENT] = panel->g_task.saturation[TASK_ACTIVE]; + panel->g_task.brightness[TASK_URGENT] = panel->g_task.brightness[TASK_ACTIVE]; + } + if ((panel->g_task.config_font_mask & (1<g_task.font[TASK_ACTIVE] = panel->g_task.font[TASK_NORMAL]; + if ((panel->g_task.config_font_mask & (1<g_task.font[TASK_ICONIFIED] = panel->g_task.font[TASK_NORMAL]; + if ((panel->g_task.config_font_mask & (1<g_task.font[TASK_URGENT] = panel->g_task.font[TASK_ACTIVE]; + if ((panel->g_task.config_background_mask & (1<g_task.background[TASK_ACTIVE] = panel->g_task.background[TASK_NORMAL]; + if ((panel->g_task.config_background_mask & (1<g_task.background[TASK_ICONIFIED] = panel->g_task.background[TASK_NORMAL]; + if ((panel->g_task.config_background_mask & (1<g_task.background[TASK_URGENT] = panel->g_task.background[TASK_ACTIVE]; + if (panel_horizontal) { - panel->g_task.area.posy = panel->g_taskbar.posy + panel->g_taskbar.pix.border.width + panel->g_taskbar.paddingy; + panel->g_task.area.posy = panel->g_taskbar.area.posy + panel->g_taskbar.bg->border.width + panel->g_taskbar.area.paddingy; panel->g_task.area.height = panel->area.height - (2 * panel->g_task.area.posy); } else { - panel->g_task.area.posx = panel->g_taskbar.posx + panel->g_taskbar.pix.border.width + panel->g_taskbar.paddingy; + panel->g_task.area.posx = panel->g_taskbar.area.posx + panel->g_taskbar.bg->border.width + panel->g_taskbar.area.paddingy; panel->g_task.area.width = panel->area.width - (2 * panel->g_task.area.posx); panel->g_task.area.height = panel->g_task.maximum_height; } - if (panel->g_task.area.pix.border.rounded > panel->g_task.area.height/2) { - panel->g_task.area.pix.border.rounded = panel->g_task.area.height/2; - panel->g_task.area.pix_active.border.rounded = panel->g_task.area.pix.border.rounded; + int k; + for (k=0; kg_task.background[k]->border.rounded > panel->g_task.area.height/2) { + printf("task%sbackground_id is too big. Please fix your tint2rc\n", k==0 ? "_" : k==1 ? "_active_" : k==2 ? "_iconified_" : "_urgent_"); + g_array_append_val(backgrounds, *panel->g_task.background[k]); + panel->g_task.background[k] = &g_array_index(backgrounds, Background, backgrounds->len-1); + panel->g_task.background[k]->border.rounded = panel->g_task.area.height/2; + } } // compute vertical position : text and icon @@ -87,7 +113,7 @@ void init_taskbar() if (!panel->g_task.maximum_width && panel_horizontal) panel->g_task.maximum_width = server.monitor[panel->monitor].width; - panel->g_task.text_posx = panel->g_task.area.pix.border.width + panel->g_task.area.paddingxlr; + panel->g_task.text_posx = panel->g_task.background[0]->border.width + panel->g_task.area.paddingxlr; panel->g_task.text_posy = (panel->g_task.area.height - height) / 2.0; if (panel->g_task.icon) { panel->g_task.icon_size1 = panel->g_task.area.height - (2 * panel->g_task.area.paddingy); @@ -103,8 +129,8 @@ void init_taskbar() tskbar = &panel->taskbar[j]; memcpy(&tskbar->area, &panel->g_taskbar, sizeof(Area)); tskbar->desktop = j; - if (j == server.desktop && tskbar->area.use_active) - tskbar->area.is_active = 1; + if (j == server.desktop && panel->g_taskbar.use_active) + tskbar->area.bg = panel->g_taskbar.bg_active; // add taskbar to the panel panel->area.list = g_slist_append(panel->area.list, tskbar); @@ -237,10 +263,7 @@ void resize_taskbar(void *obj) //printf("resize_taskbar : posx et width des taches\n"); taskbar->area.redraw = 1; - if (taskbar->area.is_active && taskbar->area.use_active) - border_width = taskbar->area.pix_active.border.width; - else - border_width = taskbar->area.pix.border.width; + border_width = taskbar->area.bg->border.width; if (panel_horizontal) { int pixel_width, modulo_width=0; @@ -250,8 +273,8 @@ void resize_taskbar(void *obj) task_count = g_slist_length(taskbar->area.list); if (!task_count) pixel_width = panel->g_task.maximum_width; else { - taskbar_width = taskbar->area.width - (2 * border_width) - (2 * panel->g_taskbar.paddingxlr); - if (task_count>1) taskbar_width -= ((task_count-1) * panel->g_taskbar.paddingx); + taskbar_width = taskbar->area.width - (2 * border_width) - (2 * panel->g_taskbar.area.paddingxlr); + if (task_count>1) taskbar_width -= ((task_count-1) * panel->g_taskbar.area.paddingx); pixel_width = taskbar_width / task_count; if (pixel_width > panel->g_task.maximum_width) @@ -262,7 +285,7 @@ void resize_taskbar(void *obj) taskbar->task_width = pixel_width; taskbar->task_modulo = modulo_width; - taskbar->text_width = pixel_width - panel->g_task.text_posx - panel->g_task.area.pix.border.width - panel->g_task.area.paddingx; + taskbar->text_width = pixel_width - panel->g_task.text_posx - panel->g_task.area.bg->border.width - panel->g_task.area.paddingx; // change pos_x and width for all tasks x = taskbar->area.posx + border_width + taskbar->area.paddingxlr; @@ -276,7 +299,7 @@ void resize_taskbar(void *obj) modulo_width--; } - x += tsk->area.width + panel->g_taskbar.paddingx; + x += tsk->area.width + panel->g_taskbar.area.paddingx; } } else { @@ -287,8 +310,8 @@ void resize_taskbar(void *obj) task_count = g_slist_length(taskbar->area.list); if (!task_count) pixel_height = panel->g_task.maximum_height; else { - taskbar_height = taskbar->area.height - (2 * border_width) - (2 * panel->g_taskbar.paddingxlr); - if (task_count>1) taskbar_height -= ((task_count-1) * panel->g_taskbar.paddingx); + taskbar_height = taskbar->area.height - (2 * border_width) - (2 * panel->g_taskbar.area.paddingxlr); + if (task_count>1) taskbar_height -= ((task_count-1) * panel->g_taskbar.area.paddingx); pixel_height = taskbar_height / task_count; if (pixel_height > panel->g_task.maximum_height) @@ -299,7 +322,7 @@ void resize_taskbar(void *obj) taskbar->task_width = pixel_height; taskbar->task_modulo = modulo_height; - taskbar->text_width = taskbar->area.width - (2 * panel->g_taskbar.paddingy) - panel->g_task.text_posx - panel->g_task.area.pix.border.width - panel->g_task.area.paddingx; + taskbar->text_width = taskbar->area.width - (2 * panel->g_taskbar.area.paddingy) - panel->g_task.text_posx - panel->g_task.area.bg->border.width - panel->g_task.area.paddingx; // change pos_y and height for all tasks y = taskbar->area.posy + border_width + taskbar->area.paddingxlr; @@ -313,7 +336,7 @@ void resize_taskbar(void *obj) modulo_height--; } - y += tsk->area.height + panel->g_taskbar.paddingx; + y += tsk->area.height + panel->g_taskbar.area.paddingx; } } }