add another padding parameter in config file, update documentation and sample config file git-svn-id: http://tint2.googlecode.com/svn/trunk@28 121b4492-b84c-0410-8b4c-0d4edfb3f3cc
jump to
@@ -1,3 +1,7 @@
+ +2009-01-20 +- change config file format : add another padding parameter +- update documentation and sample config file 2009-01-19 - patch from Robert Escriva, fixed tint2 on multi-monitor@@ -38,7 +42,7 @@ the background number 0 is reserved by tint2 for full transparency.
user's background start with number 1, 2, ... 2008-09-22 -- better control on icon opacity +- better control on icon opacity icon opacity use the same value as text opacity 2008-09-21@@ -48,23 +52,23 @@ - remove task_icon_size parameter because icon_size is calculate with task->padding_y
2008-09-19 - improve clock drawing on 2 lines -- new design : object oriented +- new design : object oriented clock inherit Area (with draw_background) - rename parameter 'panel_mode' in 'taskbar_mode' 2008-09-17 - change name from tint to tint2 because debian has already a package named tint -- new design : object oriented +- new design : object oriented tasks inherit Area taskbars inherit Area 2008-09-16 -- new design : object oriented +- new design : object oriented remove task_margin parameter, replaced by taskbar_padding fixed segfault with new layout 2008-09-04 -- new design : object oriented +- new design : object oriented all objects inherit from Area : panel, taskbar, task, clock 2008-09-02 licence changed to GPL V2@@ -106,7 +110,7 @@ - multi_monitor : changed taskbar allocation when add/remove a monitor
- update documentation 2008-07-04 -- changed in config file, panel_show_all_desktop +- changed in config file, panel_show_all_desktop replaced by panel_mode = single_desktop / multi_desktop / multi_monitor - with panel_mode = multi_monitor, tint show one taskbar by monitor@@ -120,24 +124,24 @@
2008-06-30 patch from goo...@dougbarton.us - tint wait for window manager on startup -2008-06-29 +2008-06-29 - specify monitor with parameter 'panel_monitor' - panel_position is relative to your monitor panel_monitor = 1 panel_position = bottom center -2008-06-24 +2008-06-24 - fixed bug : show tint on all desktop with fluxbox -2008-06-23 +2008-06-23 - task_width = 0 to get full taskbar width - added documentation in /doc -2008-06-16 +2008-06-16 - renamed parameter panel_margin to panel_padding - added parameter panel_margin = vertical_margin horizontal_margin -2008-06-15 +2008-06-15 - fixed bug : icon position changed when clock adjust width - removed boolean parameter panel_background and task_background replaced with opacity (alpha) = 0@@ -145,51 +149,51 @@ - removed task_active_border_width parameter
identical to task_border_width - fixed bug : draw task below panel border -2008-06-11 +2008-06-11 - removed the need of desktop margin. tint specify margin to window magager (_NET_WM_STRUT) -2008-06-10 +2008-06-10 - fixed bug : time/date vertical and horizontal center 2008-06-10 patch from benjaminfranzke - fixed bug : draw icon on 64bit system. -2008-06-08 +2008-06-08 - fixed bug : in draw border and fill background -2008-06-04 +2008-06-04 - allow config file on the command line : tint -c ./tintrc2 - allow 2 value in config file : key = value1 value2 - panel_margin can get 2 values : vertical_margin horizontal_margin panel_margin = 8 4 -2008-05-30 +2008-05-30 - put panel below other window - set locale LANG -2008-05-28 +2008-05-28 - clock_width adjust automatically - configure : time2_format see 'man strftime' -2008-05-27 +2008-05-27 - configure : time1_format see 'man strftime' - cleanup code : refresh_pos() -2008-05-26 +2008-05-26 - catch time event in main loop - draw clock fixed format %H:%M -2008-05-24 +2008-05-24 - removed boolean parameter task_icon task_icon_size = 0 replace task_icon = 0 - all colors parameters can get 2 values : color and opacity (alpha) font_color = #ffffff 70 -2008-05-23 +2008-05-23 - cpu optimisation : limit call to visual_refresh() -2008-05-22 +2008-05-22 - configure clock : clock_font, clock_font_color@@ -197,7 +201,7 @@ ----------------------------------------------------------------
2008-05-20 thil7 <lorthiois@bbsoft.fr> released tint-0.5 -2008-05-19 +2008-05-19 - improve usability in mode 'show_all_desktop' -> don't switch desktop when close a task of another desktop -> allow to drag and drop task between desktop@@ -218,7 +222,7 @@ ----------------------------------------------------------------
2008-05-14 thil7 <lorthiois@bbsoft.fr> released tint-0.4 -2008-05-12 +2008-05-12 - boolean option 'show_all_desktop' 0 : tint panel show one taskbar (from current desktop) 1 : tint panel show all taskbars (from all desktops)@@ -235,7 +239,7 @@ ----------------------------------------------------------------
2008-05-10 thil7 <lorthiois@bbsoft.fr> released tint-0.3 -2008-05-10 +2008-05-10 - manage events : 'send to desktop' and 'send to all desktop' - bug solved : 'close' action now send _NET_CLOSE_WINDOW so openoffice ask 'save document...' if needed@@ -250,27 +254,27 @@ ----------------------------------------------------------------
2008-05-09 thil7 <lorthiois@bbsoft.fr> released tint-0.2 -2008-05-08 +2008-05-08 - panel : add rounded and border (color and alpha) -- remove option 'panel_tasks_centered' +- remove option 'panel_tasks_centered' - user can configure mouse event on task (none, toggle, iconify, shade, close, toggle_iconify) -2008-05-07 -- cpu optimisation : resize_tasks only when add/remove task, +2008-05-07 +- cpu optimisation : resize_tasks only when add/remove task, compute pos_y at startup -2008-05-04 +2008-05-04 - task width adjust when too many task -2008-05-01 +2008-05-01 - task : add rounded and border (color and alpha) - panel position (left, right, center) thank to ak47izatool - cleanup code : vertical position (icon and text), better refresh after delete task, memory leak *font - panel : changed panel_margin and task_margin -2008-04-22 +2008-04-22 - fork ttm projet from p://code.google.com/p/ttm/ (by Pål Staurland staura@gmail.com) while the projet is no longer in developpement, have not changed the name of 'tint'.
@@ -2,7 +2,7 @@ CFLAGS= -O2
CC = gcc FLAGS=-W -Wall -g `pkg-config --cflags --libs cairo pangocairo x11 xinerama imlib2 glib-2.0` PROGNAME=tint2 -FILES=tint.c server.c panel.c config.c taskbar/task.c taskbar/taskbar.c clock/clock.c systray/docker.c systray/icons.c systray/kde.c systray/net.c systray/xproperty.c util/window.c util/area.c +FILES=tint.c server.c panel.c config.c taskbar/task.c taskbar/taskbar.c clock/clock.c systray/systraybar.c systray/docker.c systray/icons.c systray/kde.c systray/net.c systray/xproperty.c util/window.c util/area.c ifndef DESTDIR ifndef PREFIX
@@ -94,13 +94,13 @@ pango_layout_get_pixel_size (layout, &date_width, NULL);
} if (time_width > date_width) new_width = time_width; else new_width = date_width; - new_width += (2*clock->area.paddingx) + (2*clock->area.pix.border.width); + new_width += (2*clock->area.paddingxlr) + (2*clock->area.pix.border.width); if (new_width > clock->area.width || (new_width != clock->area.width && date_width > time_width)) { //printf("clock_width %d, new_width %d\n", clock->area.width, new_width); // resize clock clock->area.width = new_width; - panel.clock.area.posx = panel.area.width - panel.clock.area.width - panel.area.paddingx - panel.area.pix.border.width; + panel.clock.area.posx = panel.area.width - panel.clock.area.width - panel.area.paddingxlr - panel.area.pix.border.width; g_object_unref (layout); resize_taskbar();
@@ -1,5 +1,7 @@
/************************************************************************** -* clock : +* Copyright (C) 2008 thierry lorthiois (lorthiois@bbsoft.fr) +* +* clock : * - draw clock, adjust width * **************************************************************************/
@@ -103,23 +103,43 @@ fclose (fileSrc);
} -void extract_values (const char *value, char **value1, char **value2) +void extract_values (const char *value, char **value1, char **value2, char **value3) { - char *b; + char *b, *c; if (*value1) free (*value1); if (*value2) free (*value2); + if (*value3) free (*value3); - if ((b = strchr (value, ' '))) { + if (b = strchr (value, ' ')) { b[0] = '\0'; b++; - *value2 = strdup (b); - g_strstrip(*value2); - } - else *value2 = 0; + } + else { + b = 0; + *value2 = 0; + *value3 = 0; + } + *value1 = strdup (value); + g_strstrip(*value1); - *value1 = strdup (value); - g_strstrip(*value1); + if (b) { + if (c = strchr (b, ' ')) { + c[0] = '\0'; + c++; + } + else { + c = 0; + *value3 = 0; + } + *value2 = strdup (b); + g_strstrip(*value2); + } + + if (c) { + *value3 = strdup (c); + g_strstrip(*value3); + } }@@ -194,7 +214,7 @@
void add_entry (char *key, char *value) { - char *value1=0, *value2=0; + char *value1=0, *value2=0, *value3=0; /* Background and border */ if (strcmp (key, "rounded") == 0) {@@ -209,14 +229,14 @@ a->pix.border.width = atoi (value);
} else if (strcmp (key, "background_color") == 0) { Area *a = g_slist_last(list_back)->data; - extract_values(value, &value1, &value2); + extract_values(value, &value1, &value2, &value3); get_color (value1, a->pix.back.color); if (value2) a->pix.back.alpha = (atoi (value2) / 100.0); else a->pix.back.alpha = 0.5; } else if (strcmp (key, "border_color") == 0) { Area *a = g_slist_last(list_back)->data; - extract_values(value, &value1, &value2); + extract_values(value, &value1, &value2, &value3); get_color (value1, a->pix.border.color); if (value2) a->pix.border.alpha = (atoi (value2) / 100.0); else a->pix.border.alpha = 0.5;@@ -228,22 +248,23 @@ panel.monitor = atoi (value);
if (panel.monitor > 0) panel.monitor -= 1; } else if (strcmp (key, "panel_size") == 0) { - extract_values(value, &value1, &value2); + extract_values(value, &value1, &value2, &value3); panel.area.width = atoi (value1); if (value2) panel.area.height = atoi (value2); } else if (strcmp (key, "panel_margin") == 0) { - extract_values(value, &value1, &value2); + extract_values(value, &value1, &value2, &value3); panel.marginx = atoi (value1); if (value2) panel.marginy = atoi (value2); } else if (strcmp (key, "panel_padding") == 0) { - extract_values(value, &value1, &value2); - panel.area.paddingx = atoi (value1); + extract_values(value, &value1, &value2, &value3); + panel.area.paddingxlr = panel.area.paddingx = atoi (value1); if (value2) panel.area.paddingy = atoi (value2); + if (value3) panel.area.paddingx = atoi (value3); } else if (strcmp (key, "panel_position") == 0) { - extract_values(value, &value1, &value2); + extract_values(value, &value1, &value2, &value3); if (strcmp (value1, "top") == 0) panel.position = TOP; else panel.position = BOTTOM;@@ -285,15 +306,16 @@ if (panel.clock.time2_font_desc) pango_font_description_free(panel.clock.time2_font_desc);
panel.clock.time2_font_desc = pango_font_description_from_string (value); } else if (strcmp (key, "clock_font_color") == 0) { - extract_values(value, &value1, &value2); + extract_values(value, &value1, &value2, &value3); get_color (value1, panel.clock.font.color); if (value2) panel.clock.font.alpha = (atoi (value2) / 100.0); else panel.clock.font.alpha = 0.1; } else if (strcmp (key, "clock_padding") == 0) { - extract_values(value, &value1, &value2); - panel.clock.area.paddingx = atoi (value1); + extract_values(value, &value1, &value2, &value3); + panel.clock.area.paddingxlr = panel.clock.area.paddingx = atoi (value1); if (value2) panel.clock.area.paddingy = atoi (value2); + if (value3) panel.clock.area.paddingx = atoi (value3); } else if (strcmp (key, "clock_background_id") == 0) { int id = atoi (value);@@ -309,9 +331,10 @@ else if (strcmp (value, "multi_monitor") == 0) panel.mode = MULTI_MONITOR;
else panel.mode = SINGLE_DESKTOP; } else if (strcmp (key, "taskbar_padding") == 0) { - extract_values(value, &value1, &value2); - g_taskbar.paddingx = atoi (value1); + extract_values(value, &value1, &value2, &value3); + g_taskbar.paddingxlr = g_taskbar.paddingx = atoi (value1); if (value2) g_taskbar.paddingy = atoi (value2); + if (value3) g_taskbar.paddingx = atoi (value3); } else if (strcmp (key, "taskbar_background_id") == 0) { int id = atoi (value);@@ -330,24 +353,23 @@ g_task.centered = atoi (value);
else if (strcmp (key, "task_width") == 0) g_task.maximum_width = atoi (value); else if (strcmp (key, "task_padding") == 0) { - extract_values(value, &value1, &value2); - g_task.area.paddingx = atoi (value1); - if (value2) { - g_task.area.paddingy = atoi (value2); - } + extract_values(value, &value1, &value2, &value3); + g_task.area.paddingxlr = g_task.area.paddingx = atoi (value1); + if (value2) g_task.area.paddingy = atoi (value2); + if (value3) g_task.area.paddingx = atoi (value3); } else if (strcmp (key, "task_font") == 0) { if (g_task.font_desc) pango_font_description_free(g_task.font_desc); g_task.font_desc = pango_font_description_from_string (value); } else if (strcmp (key, "task_font_color") == 0) { - extract_values(value, &value1, &value2); + extract_values(value, &value1, &value2, &value3); get_color (value1, g_task.font.color); if (value2) g_task.font.alpha = (atoi (value2) / 100.0); else g_task.font.alpha = 0.1; } else if (strcmp (key, "task_active_font_color") == 0) { - extract_values(value, &value1, &value2); + extract_values(value, &value1, &value2, &value3); get_color (value1, g_task.font_active.color); if (value2) g_task.font_active.alpha = (atoi (value2) / 100.0); else g_task.font_active.alpha = 0.1;@@ -427,6 +449,7 @@ fprintf(stderr, "Invalid option: \"%s\", correct your config file\n", key);
if (value1) free (value1); if (value2) free (value2); + if (value3) free (value3); }@@ -556,7 +579,7 @@ get_text_size(g_task.font_desc, &height_ink, &height, panel.area.height, "TAjpg", 5);
g_task.text_posy = (g_task.area.height - height) / 2.0; // add task_icon_size - g_task.text_posx = g_task.area.paddingx + g_task.area.pix.border.width; + g_task.text_posx = g_task.area.paddingxlr + g_task.area.pix.border.width; if (g_task.icon) { g_task.icon_size1 = g_task.area.height - (2 * g_task.area.paddingy); g_task.text_posx += g_task.icon_size1;
@@ -45,7 +45,7 @@ for (; l ; l = l->next)
refresh (l->data); // main_win doesn't include panel.area.paddingx, so we have WM capabilities on left and right. - XCopyArea (server.dsp, server.pmap, window.main_win, server.gc, panel.area.paddingx, 0, panel.area.width-(2*panel.area.paddingx), panel.area.height, 0, 0); + XCopyArea (server.dsp, server.pmap, window.main_win, server.gc, panel.area.paddingxlr, 0, panel.area.width-(2*panel.area.paddingxlr), panel.area.height, 0, 0); XFlush (server.dsp); panel.refresh = 0; }@@ -129,7 +129,7 @@
// XCreateWindow(display, parent, x, y, w, h, border, depth, class, visual, mask, attrib) // main_win doesn't include panel.area.paddingx, so we have WM capabilities on left and right. if (window.main_win) XDestroyWindow(server.dsp, window.main_win); - win = XCreateWindow (server.dsp, server.root_win, server.posx+panel.area.paddingx, server.posy, panel.area.width-(2*panel.area.paddingx), panel.area.height, 0, server.depth, InputOutput, CopyFromParent, CWEventMask, &att); + win = XCreateWindow (server.dsp, server.root_win, server.posx+panel.area.paddingxlr, server.posy, panel.area.width-(2*panel.area.paddingxlr), panel.area.height, 0, server.depth, InputOutput, CopyFromParent, CWEventMask, &att); set_panel_properties (win); window.main_win = win;
@@ -1,8 +1,10 @@
/************************************************************************** -* panel : +* Copyright (C) 2008 Pål Staurland (staura@gmail.com) +* Modified (C) 2008/2009 thierry lorthiois (lorthiois@bbsoft.fr) +* +* panel : * - draw panel and all objects according to panel_layout -* -* Check COPYING file for Copyright +* * **************************************************************************/@@ -16,6 +18,7 @@ #include "common.h"
#include "clock.h" #include "task.h" #include "taskbar.h" +#include "systraybar.h" //panel mode@@ -54,13 +57,14 @@ int nb_desktop;
int nb_monitor; Task *task_active; Task *task_drag; - + // -------------------------------------------------- // clock Clock clock; // -------------------------------------------------- // systray + Systraybar systraybar; // -------------------------------------------------- // mouse events
@@ -0,0 +1,80 @@
+/************************************************************************** +* Tint2 : systraybar +* +* Copyright (C) 2009 thierry lorthiois (lorthiois@bbsoft.fr) +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License version 2 +* as published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +**************************************************************************/ + +#include <X11/Xlib.h> +#include <X11/Xutil.h> +#include <X11/Xatom.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <glib.h> +#include <Imlib2.h> + +#include "systraybar.h" +#include "server.h" +#include "window.h" +#include "panel.h" + + + +int resize_systray (Systraybar *sysbar) +{ + return 0; +} + +/* +// initialise taskbar posx and width +void resize_taskbar() +{ + int taskbar_width, modulo_width, taskbar_on_screen; + + if (panel.mode == MULTI_DESKTOP) taskbar_on_screen = panel.nb_desktop; + else taskbar_on_screen = panel.nb_monitor; + + taskbar_width = panel.area.width - (2 * panel.area.paddingx) - (2 * panel.area.pix.border.width); + if (panel.clock.time1_format) + taskbar_width -= (panel.clock.area.width + panel.area.paddingx); + taskbar_width = (taskbar_width - ((taskbar_on_screen-1) * panel.area.paddingx)) / taskbar_on_screen; + + if (taskbar_on_screen > 1) + modulo_width = (taskbar_width - ((taskbar_on_screen-1) * panel.area.paddingx)) % taskbar_on_screen; + else + modulo_width = 0; + + int i, nb, modulo=0, posx=0; + nb = panel.nb_desktop * panel.nb_monitor; + for (i=0 ; i < nb ; i++) { + if ((i % taskbar_on_screen) == 0) { + posx = panel.area.pix.border.width + panel.area.paddingx; + modulo = modulo_width; + } + else posx += taskbar_width + panel.area.paddingx; + + panel.taskbar[i].area.posx = posx; + panel.taskbar[i].area.width = taskbar_width; + if (modulo) { + panel.taskbar[i].area.width++; + modulo--; + } + + resize_tasks(&panel.taskbar[i]); + } +} +*/ + +
@@ -0,0 +1,32 @@
+/************************************************************************** +* Copyright (C) 2009 thierry lorthiois (lorthiois@bbsoft.fr) +* +* systraybar +* +**************************************************************************/ + +#ifndef SYSTRAYBAR_H +#define SYSTRAYBAR_H + +#include "area.h" + + +typedef struct { + // always start with area + Area area; + +} Systraybar; + + +// -------------------------------------------------- +// global taskbar parameter +Area g_systraybar; + + +// return 1 if task_width changed +int resize_systray (Systraybar *sysbar); + + + +#endif +
@@ -63,7 +63,7 @@
get_icon(new_tsk); get_title(new_tsk); memcpy(&new_tsk->area, &g_task.area, sizeof(Area)); - + //printf("task %s : desktop %d, monitor %d\n", new_tsk->title, desktop, monitor); XSelectInput (server.dsp, new_tsk->win, PropertyChangeMask|StructureNotifyMask);@@ -85,14 +85,14 @@
void remove_task (Task *tsk) { if (!tsk) return; - + Task *tsk2 = tsk; Taskbar *tskbar; Window win = tsk->win; int desktop = 0, all_desktop = tsk->all_desktop; int monitor = ((Taskbar*)tsk->area.parent)->monitor; - -deb: + +deb: if (all_desktop) { tskbar = &panel.taskbar[index(desktop, monitor)]; GSList *l0;@@ -103,28 +103,28 @@ if (win == tsk2->win)
break; } } - else + else tskbar = (Taskbar*)tsk->area.parent; - + tskbar->area.list = g_slist_remove(tskbar->area.list, tsk2); resize_tasks (tskbar); set_redraw (&tskbar->area); //printf("remove_task %d %s\n", index(tskbar->desktop, tskbar->monitor), tsk->title); - if (tsk2 == panel.task_active) + if (tsk2 == panel.task_active) panel.task_active = 0; - if (tsk2 == panel.task_drag) + if (tsk2 == panel.task_drag) panel.task_drag = 0; - if (tsk2->title) + if (tsk2->title) free (tsk2->title); - if (tsk2->icon_data) + if (tsk2->icon_data) free (tsk2->icon_data); XFreePixmap (server.dsp, tsk2->area.pix.pmap); XFreePixmap (server.dsp, tsk2->area.pix_active.pmap); free(tsk2); - + if (all_desktop) { desktop++; if (desktop < server.nb_desktop)@@ -214,7 +214,7 @@ pos_x = (tsk->area.width - text_width - g_task.icon_size1) / 2;
else pos_x = (tsk->area.width - g_task.icon_size1) / 2; } - else pos_x = g_task.area.paddingx + g_task.area.pix.border.width; + else pos_x = g_task.area.paddingxlr + g_task.area.pix.border.width; /* Render */ Imlib_Image icon;
@@ -34,8 +34,6 @@ } Global_task;
-// -------------------------------------------------- -// task parameter typedef struct { // always start with area Area area;
@@ -43,7 +43,7 @@ nb = panel.nb_desktop * panel.nb_monitor;
for (i=0 ; i < nb ; i++) { for (l0 = panel.taskbar[i].area.list; l0 ; l0 = l0->next) { tsk = l0->data; - if (win == tsk->win) + if (win == tsk->win) return tsk; } }@@ -109,7 +109,8 @@ // new task width for 'desktop'
task_count = g_slist_length(taskbar->area.list); if (!task_count) pixel_width = g_task.maximum_width; else { - taskbar_width = taskbar->area.width - (2 * g_taskbar.pix.border.width) - ((task_count+1) * g_taskbar.paddingx); + taskbar_width = taskbar->area.width - (2 * g_taskbar.pix.border.width) - (2 * g_taskbar.paddingxlr); + if (task_count>1) taskbar_width -= ((task_count-1) * g_taskbar.paddingx); pixel_width = taskbar_width / task_count; if (pixel_width > g_task.maximum_width) pixel_width = g_task.maximum_width;@@ -127,7 +128,7 @@ taskbar->text_width = pixel_width - g_task.text_posx - g_task.area.pix.border.width - g_task.area.paddingx;
} // change pos_x and width for all tasks - x = taskbar->area.posx + taskbar->area.pix.border.width + taskbar->area.paddingx; + x = taskbar->area.posx + taskbar->area.pix.border.width + taskbar->area.paddingxlr; for (l = taskbar->area.list; l ; l = l->next) { tsk = l->data; tsk->area.posx = x;@@ -151,7 +152,7 @@
if (panel.mode == MULTI_DESKTOP) taskbar_on_screen = panel.nb_desktop; else taskbar_on_screen = panel.nb_monitor; - taskbar_width = panel.area.width - (2 * panel.area.paddingx) - (2 * panel.area.pix.border.width); + taskbar_width = panel.area.width - (2 * panel.area.paddingxlr) - (2 * panel.area.pix.border.width); if (panel.clock.time1_format) taskbar_width -= (panel.clock.area.width + panel.area.paddingx); taskbar_width = (taskbar_width - ((taskbar_on_screen-1) * panel.area.paddingx)) / taskbar_on_screen;@@ -165,7 +166,7 @@ int i, nb, modulo=0, posx=0;
nb = panel.nb_desktop * panel.nb_monitor; for (i=0 ; i < nb ; i++) { if ((i % taskbar_on_screen) == 0) { - posx = panel.area.pix.border.width + panel.area.paddingx; + posx = panel.area.pix.border.width + panel.area.paddingxlr; modulo = modulo_width; } else posx += taskbar_width + panel.area.paddingx;
@@ -1,3 +1,9 @@
+/************************************************************************** +* Copyright (C) 2008 thierry lorthiois (lorthiois@bbsoft.fr) +* +* taskbar +* +**************************************************************************/ #ifndef TASKBAR_H #define TASKBAR_H@@ -5,15 +11,13 @@
#include "task.h" -// -------------------------------------------------- -// taskbar parameter typedef struct { // always start with area Area area; int desktop; int monitor; - + // task parameters int task_width; int task_modulo;
@@ -471,7 +471,7 @@ break;
case Expose: XCopyArea (server.dsp, panel.area.pix.pmap, server.root_win, server.gc_root, 0, 0, panel.area.width, panel.area.height, server.posx, server.posy); - XCopyArea (server.dsp, server.pmap, window.main_win, server.gc, panel.area.paddingx, 0, panel.area.width-(2*panel.area.paddingx), panel.area.height, 0, 0); + XCopyArea (server.dsp, server.pmap, window.main_win, server.gc, panel.area.paddingxlr, 0, panel.area.width-(2*panel.area.paddingxlr), panel.area.height, 0, 0); break; case PropertyNotify:
@@ -75,7 +75,9 @@
// need redraw Pixmap int redraw; int use_active, is_active; - int paddingx, paddingy; + // paddingxlr = horizontal padding left/right + // paddingx = horizontal padding between childs + int paddingxlr, paddingx, paddingy; // parent Area void *parent;
@@ -8,44 +8,49 @@ #---------------------------------------------
rounded = 1 border_width = 0 background_color = #282828 40 -border_color = #000000 40 +border_color = #000000 0 rounded = 1 border_width = 1 -background_color = #282828 0 +background_color = #cccccc 0 +border_color = #cccccc 30 + +rounded = 1 +border_width = 0 +background_color = #cccccc 20 border_color = #cccccc 40 #--------------------------------------------- # PANEL #--------------------------------------------- panel_monitor = 1 -panel_position = bottom left +panel_position = top left panel_size = 0 27 panel_margin = 0 0 -panel_padding = 4 0 +panel_padding = 7 3 7 font_shadow = 0 panel_background_id = 1 #--------------------------------------------- # TASKBAR #--------------------------------------------- -taskbar_mode = multi_monitor -taskbar_padding = 4 0 -taskbar_background_id = 0 +taskbar_mode = multi_desktop +taskbar_padding = 0 0 0 +taskbar_background_id = 2 #--------------------------------------------- # TASKS #--------------------------------------------- task_icon = 1 task_text = 0 -task_width = 30 +task_width = 35 task_centered = 1 -task_padding = 2 5 +task_padding = 2 1 task_font = sans 8 task_font_color = #ffffff 60 task_active_font_color = #ffffff 100 task_background_id = 0 -task_active_background_id = 2 +task_active_background_id = 3 #--------------------------------------------- # SYSTRAY
@@ -24,18 +24,18 @@ #---------------------------------------------
# PANEL #--------------------------------------------- panel_monitor = 1 -panel_position = bottom center +panel_position = top center panel_size = 1000 25 panel_margin = 0 7 -panel_padding = 6 0 +panel_padding = 7 3 0 font_shadow = 0 panel_background_id = 1 #--------------------------------------------- # TASKBAR #--------------------------------------------- -taskbar_mode = multi_desktop -taskbar_padding = 2 3 +taskbar_mode = single_desktop +taskbar_padding = 0 0 0 taskbar_background_id = 0 #---------------------------------------------@@ -45,7 +45,7 @@ task_icon = 1
task_text = 1 task_width = 150 task_centered = 1 -task_padding = 3 2 +task_padding = 2 1 task_font = myriad pro 8 task_font_color = #000000 70 task_active_font_color = #000000 100@@ -66,7 +66,7 @@ time1_font = sans bold 12
#time2_format = %A %d %B #time2_font = sans bold 10 clock_font_color = #000000 70 -clock_padding = 6 0 +clock_padding = 4 0 clock_background_id = 0 #---------------------------------------------
@@ -1,74 +0,0 @@
-#--------------------------------------------- -# TINT CONFIG FILE -#--------------------------------------------- - -#--------------------------------------------- -# BACKGROUND AND BORDER -#--------------------------------------------- -rounded = 3 -border_width = 1 -background_color = #3c3020 90 -border_color = #3c3020 90 - -rounded = 3 -border_width = 1 -background_color = #3c3020 90 -border_color = #ffffff 30 - -#--------------------------------------------- -# PANEL -#--------------------------------------------- -panel_monitor = 1 -panel_position = bottom center -panel_size = 900 30 -panel_margin = 0 0 -panel_padding = 10 2 -font_shadow = 0 -panel_background_id = 0 - -#--------------------------------------------- -# TASKBAR -#--------------------------------------------- -taskbar_mode = single_desktop -taskbar_padding = 9 0 -taskbar_background_id = 0 - -#--------------------------------------------- -# TASKS -#--------------------------------------------- -task_icon = 0 -task_text = 1 -task_width = 190 -task_centered = 1 -task_padding = 2 0 -task_font = sans 8.4 -task_font_color = #ececec 50 -task_active_font_color = #ffffff 90 -task_background_id = 1 -task_active_background_id = 2 - -#--------------------------------------------- -# SYSTRAY -#--------------------------------------------- -#systray_padding = 9 3 -#systray_background_id = 0 - -#--------------------------------------------- -# CLOCK -#--------------------------------------------- -time1_format = %H:%M -time1_font = sans bold 8 -time2_format = %A %d %B -time2_font = sans 7 -clock_font_color = #ececec 50 -clock_padding = 4 0 -clock_background_id = 1 - -#--------------------------------------------- -# MOUSE ACTION ON TASK -#--------------------------------------------- -mouse_middle = none -mouse_right = close -mouse_scroll_up = toggle -mouse_scroll_down = iconify -
@@ -1,74 +0,0 @@
-#--------------------------------------------- -# TINT CONFIG FILE -#--------------------------------------------- - -#--------------------------------------------- -# BACKGROUND AND BORDER -#--------------------------------------------- -rounded = 3 -border_width = 1 -background_color = #3c3020 90 -border_color = #3c3020 90 - -rounded = 3 -border_width = 1 -background_color = #3c3020 90 -border_color = #ffffff 30 - -#--------------------------------------------- -# PANEL -#--------------------------------------------- -panel_monitor = 1 -panel_position = bottom center -panel_size = 900 30 -panel_margin = 0 0 -panel_padding = 10 2 -font_shadow = 0 -panel_background_id = 0 - -#--------------------------------------------- -# TASKBAR -#--------------------------------------------- -taskbar_mode = single_desktop -taskbar_padding = 9 0 -taskbar_background_id = 0 - -#--------------------------------------------- -# TASKS -#--------------------------------------------- -task_icon = 0 -task_text = 1 -task_width = 190 -task_centered = 1 -task_padding = 2 0 -task_font = sans 8.4 -task_font_color = #ececec 50 -task_active_font_color = #ffffff 90 -task_background_id = 1 -task_active_background_id = 2 - -#--------------------------------------------- -# SYSTRAY -#--------------------------------------------- -#systray_padding = 9 3 -#systray_background_id = 0 - -#--------------------------------------------- -# CLOCK -#--------------------------------------------- -time1_format = %H:%M -time1_font = sans bold 8 -time2_format = %A %d %B -time2_font = sans 7 -clock_font_color = #ececec 50 -clock_padding = 4 0 -clock_background_id = 1 - -#--------------------------------------------- -# MOUSE ACTION ON TASK -#--------------------------------------------- -mouse_middle = none -mouse_right = close -mouse_scroll_up = toggle -mouse_scroll_down = iconify -
@@ -25,10 +25,10 @@ #---------------------------------------------
# PANEL #--------------------------------------------- panel_monitor = 1 -panel_position = bottom left +panel_position = top left panel_size = 0 30 panel_margin = 0 0 -panel_padding = 11 2 +panel_padding = 9 2 7 font_shadow = 0 panel_background_id = 0@@ -36,7 +36,7 @@ #---------------------------------------------
# TASKBAR #--------------------------------------------- taskbar_mode = multi_desktop -taskbar_padding = 3 3 +taskbar_padding = 3 3 0 taskbar_background_id = 1 #---------------------------------------------@@ -67,7 +67,7 @@ time1_format = %A %d %H:%M
time1_font = sans bold 8 #time2_format = %A %d %B time2_font = sans 7 -clock_font_color = #ffffff 59 +clock_font_color = #ffffff 65 clock_padding = 6 0 clock_background_id = 1