From ce50a6305fd40385929dd383655292fd475d2df0 Mon Sep 17 00:00:00 2001 From: Thierry Lorthiois Date: Sun, 15 Feb 2009 17:22:48 +0000 Subject: [PATCH] cleanup code --- src/Makefile | 2 +- src/clock/clock.c | 64 +++++++------- src/clock/clock.h | 2 +- src/config.c | 22 +++-- src/panel.c | 18 ++-- src/panel.h | 2 +- src/server.c | 2 +- src/server.h | 2 +- src/systray/Makefile | 71 --------------- src/systray/README | 75 ---------------- src/systray/docker.c | 180 --------------------------------------- src/systray/docker.h | 31 ------- src/systray/icons.c | 122 -------------------------- src/systray/icons.h | 13 --- src/systray/kde.c | 76 ----------------- src/systray/kde.h | 12 --- src/systray/net.c | 44 ---------- src/systray/net.h | 15 ---- src/systray/systraybar.c | 100 +++++++++++++++------- src/systray/systraybar.h | 13 ++- src/systray/tint_merge.h | 21 ----- src/systray/version.h | 1 - src/systray/version.h.in | 1 - src/systray/xproperty.c | 64 -------------- src/systray/xproperty.h | 13 --- src/tint2 | Bin 186697 -> 55656 bytes tintrc03 | 6 +- tintrc04 | 68 +++++++++++++++ 28 files changed, 214 insertions(+), 826 deletions(-) delete mode 100644 src/systray/Makefile delete mode 100644 src/systray/README delete mode 100644 src/systray/docker.c delete mode 100644 src/systray/docker.h delete mode 100644 src/systray/icons.c delete mode 100644 src/systray/icons.h delete mode 100644 src/systray/kde.c delete mode 100644 src/systray/kde.h delete mode 100644 src/systray/net.c delete mode 100644 src/systray/net.h delete mode 100644 src/systray/tint_merge.h delete mode 100644 src/systray/version.h delete mode 100644 src/systray/version.h.in delete mode 100644 src/systray/xproperty.c delete mode 100644 src/systray/xproperty.h create mode 100644 tintrc04 diff --git a/src/Makefile b/src/Makefile index 2dcd58b..73695a9 100644 --- a/src/Makefile +++ b/src/Makefile @@ -23,7 +23,7 @@ endif $(PROGNAME): $(FILES) $(SYSTRAYOBJ) $(CC) $(CFLAGS) -I. -Iutil -Iclock -Itaskbar -Isystray -o $(PROGNAME) $(FILES) $(FLAGS) - #strip $(PROGNAME) + strip $(PROGNAME) install: mkdir -p $(BINDIR) diff --git a/src/clock/clock.c b/src/clock/clock.c index 720d498..19aaf4a 100644 --- a/src/clock/clock.c +++ b/src/clock/clock.c @@ -41,45 +41,51 @@ static char buf_time[40]; static char buf_date[40]; -void init_clock(Clock *clock, Area *parent) +void init_clock() { - Panel *panel = (Panel *)parent; - int time_height, time_height_ink, date_height, date_height_ink; + Panel *panel; + Clock *clock; + int i, time_height, time_height_ink, date_height, date_height_ink; - clock->area.parent = parent; - clock->area.panel = panel; - if (!time1_format) return; + for (i=0 ; i < nb_panel ; i++) { + panel = &panel1[i]; + clock = &panel->clock; - clock->area._draw_foreground = draw_foreground_clock; - clock->area._resize = resize_clock; + clock->area.parent = panel; + clock->area.panel = panel; + if (!clock->area.visible) return; - if (strchr(time1_format, 'S') == NULL) time_precision = 60; - else time_precision = 1; + clock->area._draw_foreground = draw_foreground_clock; + clock->area._resize = resize_clock; - // update clock to force update (-time_precision) - struct timeval stv; - gettimeofday(&stv, 0); - time_clock.tv_sec = stv.tv_sec - time_precision; - time_clock.tv_sec -= time_clock.tv_sec % time_precision; + if (strchr(time1_format, 'S') == NULL) time_precision = 60; + else time_precision = 1; - clock->area.posy = parent->pix.border.width + parent->paddingy; - clock->area.height = parent->height - (2 * clock->area.posy); - clock->area.resize = 1; - clock->area.redraw = 1; + // update clock to force update (-time_precision) + struct timeval stv; + gettimeofday(&stv, 0); + time_clock.tv_sec = stv.tv_sec - time_precision; + time_clock.tv_sec -= time_clock.tv_sec % time_precision; - strftime(buf_time, sizeof(buf_time), time1_format, localtime(&time_clock.tv_sec)); - if (time2_format) - strftime(buf_date, sizeof(buf_date), time2_format, localtime(&time_clock.tv_sec)); + clock->area.posy = panel->area.pix.border.width + panel->area.paddingy; + clock->area.height = panel->area.height - (2 * clock->area.posy); + clock->area.resize = 1; + clock->area.redraw = 1; - get_text_size(time1_font_desc, &time_height_ink, &time_height, parent->height, buf_time, strlen(buf_time)); - clock->time1_posy = (clock->area.height - time_height) / 2; + strftime(buf_time, sizeof(buf_time), time1_format, localtime(&time_clock.tv_sec)); + if (time2_format) + strftime(buf_date, sizeof(buf_date), time2_format, localtime(&time_clock.tv_sec)); - if (time2_format) { - get_text_size(time2_font_desc, &date_height_ink, &date_height, parent->height, buf_date, strlen(buf_date)); + get_text_size(time1_font_desc, &time_height_ink, &time_height, panel->area.height, buf_time, strlen(buf_time)); + clock->time1_posy = (clock->area.height - time_height) / 2; - clock->time1_posy -= ((date_height_ink + 2) / 2); - clock->time2_posy = clock->time1_posy + time_height + 2 - (time_height - time_height_ink)/2 - (date_height - date_height_ink)/2; - } + if (time2_format) { + get_text_size(time2_font_desc, &date_height_ink, &date_height, panel->area.height, buf_date, strlen(buf_date)); + + clock->time1_posy -= ((date_height_ink + 2) / 2); + clock->time2_posy = clock->time1_posy + time_height + 2 - (time_height - time_height_ink)/2 - (date_height - date_height_ink)/2; + } + } } diff --git a/src/clock/clock.h b/src/clock/clock.h index 613c40d..27b719f 100644 --- a/src/clock/clock.h +++ b/src/clock/clock.h @@ -33,7 +33,7 @@ extern PangoFontDescription *time2_font_desc; // initialize clock : y position, precision, ... -void init_clock(Clock *clock, Area *parent); +void init_clock(); void draw_foreground_clock (void *obj, cairo_t *c, int active); diff --git a/src/config.c b/src/config.c index 5ef3464..757eff6 100644 --- a/src/config.c +++ b/src/config.c @@ -311,6 +311,7 @@ void add_entry (char *key, char *value) if (time1_format) g_free(time1_format); if (strlen(value) > 0) time1_format = strdup (value); else time1_format = 0; + panel_config->clock.area.visible = 1; } else if (strcmp (key, "time2_format") == 0) { if (time2_format) g_free(time2_format); @@ -410,12 +411,19 @@ void add_entry (char *key, char *value) memcpy(&panel_config->g_task.area.pix_active.border, &a->pix.border, sizeof(Border)); } - /* Trayer */ - else if (strcmp (key, "trayer_background_id") == 0) { + /* Systray */ + else if (strcmp (key, "systray_padding") == 0) { + extract_values(value, &value1, &value2, &value3); + panel_config->systray.area.paddingxlr = panel_config->systray.area.paddingx = atoi (value1); + if (value2) panel_config->systray.area.paddingy = atoi (value2); + if (value3) panel_config->systray.area.paddingx = atoi (value3); + panel_config->systray.area.visible = 1; + } + else if (strcmp (key, "systray_background_id") == 0) { int id = atoi (value); Area *a = g_slist_nth_data(list_back, id); - memcpy(&panel_config->trayer.area.pix.back, &a->pix.back, sizeof(Color)); - memcpy(&panel_config->trayer.area.pix.border, &a->pix.border, sizeof(Border)); + memcpy(&panel_config->systray.area.pix.back, &a->pix.back, sizeof(Color)); + memcpy(&panel_config->systray.area.pix.border, &a->pix.border, sizeof(Border)); } /* Mouse actions */ @@ -569,14 +577,18 @@ void config_finish () } } + // TODO: user can configure layout => ordered objects in panel.area.list + // clock and systray before taskbar because resize(clock) can resize others object init_panel(); + init_clock(); // force the resize for (i=0 ; i < nb_panel ; i++) { panel1[i].area.resize = 1; - if (time1_format) + if (panel1[i].clock.area.visible) resize_clock(&panel1[i].clock); } + init_systray(); init_taskbar(); visible_object(); diff --git a/src/panel.c b/src/panel.c index 35cdd8a..d257cf9 100644 --- a/src/panel.c +++ b/src/panel.c @@ -67,9 +67,10 @@ void init_panel() p->g_task.area.panel = p; // add childs - if (time1_format) + if (p->clock.area.visible) p->area.list = g_slist_append(p->area.list, &p->clock); - //panel->area.list = g_slist_append(panel->area.list, &panel->trayer); + if (p->systray.area.visible) + p->area.list = g_slist_append(p->area.list, &p->systray); // detect panel size if (p->pourcentx) @@ -120,8 +121,6 @@ void init_panel() set_panel_background(p); XMapWindow (server.dsp, p->main_win); - - init_clock(&p->clock, &p->area); } panel_refresh = 1; } @@ -174,9 +173,10 @@ void resize_panel(void *obj) else taskbar_on_screen = 1; taskbar_width = panel->area.width - (2 * panel->area.paddingxlr) - (2 * panel->area.pix.border.width); - if (time1_format) + if (panel->clock.area.visible) taskbar_width -= (panel->clock.area.width + panel->area.paddingx); - //taskbar_width -= (panel->trayer.area.width + panel->area.paddingx); + if (panel->systray.area.visible) + taskbar_width -= (panel->systray.area.width + panel->area.paddingx); taskbar_width = (taskbar_width - ((taskbar_on_screen-1) * panel->area.paddingx)) / taskbar_on_screen; @@ -213,12 +213,6 @@ void visible_object() for (i=0 ; i < nb_panel ; i++) { panel = &panel1[i]; - // clock before taskbar because resize(clock) can resize others object - if (time1_format) - panel->clock.area.visible = 1; - else - panel->clock.area.visible = 0; - Taskbar *taskbar; for (j=0 ; j < panel->nb_desktop ; j++) { taskbar = &panel->taskbar[j]; diff --git a/src/panel.h b/src/panel.h index 8bc64b7..c76d98a 100644 --- a/src/panel.h +++ b/src/panel.h @@ -79,7 +79,7 @@ typedef struct { // -------------------------------------------------- // systray - Systraybar trayer; + Systraybar systray; // global taskbar parameter //Area g_systraybar; diff --git a/src/server.c b/src/server.c index 1fccd6e..454a812 100644 --- a/src/server.c +++ b/src/server.c @@ -73,7 +73,7 @@ void server_init_atoms () // systray protocol name_trayer = g_strdup_printf("_NET_SYSTEM_TRAY_S%d", DefaultScreen(server.dsp)); - server.atom._NET_SYSTEM_TRAY = XInternAtom(server.dsp, name_trayer, False); + server.atom._NET_SYSTEM_TRAY_SCREEN = XInternAtom(server.dsp, name_trayer, False); server.atom._NET_SYSTEM_TRAY_OPCODE = XInternAtom(server.dsp, "_NET_SYSTEM_TRAY_OPCODE", False); server.atom.MANAGER = XInternAtom(server.dsp, "MANAGER", False); server.atom._NET_SYSTEM_TRAY_MESSAGE_DATA = XInternAtom(server.dsp, "_NET_SYSTEM_TRAY_MESSAGE_DATA", False); diff --git a/src/server.h b/src/server.h index 2d0aacb..00e40d3 100644 --- a/src/server.h +++ b/src/server.h @@ -53,7 +53,7 @@ typedef struct Global_atom Atom WM_NAME; Atom __SWM_VROOT; Atom _MOTIF_WM_HINTS; - Atom _NET_SYSTEM_TRAY; + Atom _NET_SYSTEM_TRAY_SCREEN; Atom _NET_SYSTEM_TRAY_OPCODE; Atom MANAGER; Atom _NET_SYSTEM_TRAY_MESSAGE_DATA; diff --git a/src/systray/Makefile b/src/systray/Makefile deleted file mode 100644 index 03a2270..0000000 --- a/src/systray/Makefile +++ /dev/null @@ -1,71 +0,0 @@ -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# # -# Change these values to customize your installation and build process # -# # -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# - -# Change this PREFIX to where you want docker to be installed -PREFIX=/usr/local -# Change this XLIBPATH to point to your X11 development package's installation -XLIBPATH=/usr/X11R6/lib - -# Sets some flags for stricter compiling -CFLAGS=-pedantic -Wall -W -O - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# # -# Leave the rest of the Makefile alone if you want it to build! # -# # -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# - -PACKAGE=docker -VERSION=1.5 - -target=docker -sources=docker.c kde.c icons.c xproperty.c net.c -headers=docker.h kde.h icons.h xproperty.h net.h version.h -extra=README COPYING version.h.in - -all: $(target) $(sources) $(headers) - @echo Build Successful - -$(target): $(sources:.c=.o) - $(CC) $(CFLAGS) -L$(XLIBPATH) -lX11 \ - `pkg-config --libs glib-2.0` $^ -o $@ - -%.o: %.c - $(CC) -c $(CFLAGS) `pkg-config --cflags glib-2.0` $< - -version.h: version.h.in Makefile - sed -e "s/@VERSION@/$(VERSION)/" version.h.in > $@ - -install: all - install $(target) $(PREFIX)/bin/$(target) - -uninstall: - rm -f $(PREFIX)/$(target) - -clean: - rm -rf .dist - rm -f core *.o .\#* *\~ $(target) - -distclean: clean - rm -f version.h - rm -f $(PACKAGE)-*.tar.gz - -dist: Makefile $(sources) $(headers) $(extra) - mkdir -p .dist/$(PACKAGE)-$(VERSION) && \ - cp $^ .dist/$(PACKAGE)-$(VERSION) && \ - tar -c -z -C .dist -f \ - $(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)-$(VERSION) && \ - rm -rf .dist - -love: $(sources) - touch $^ - -# local dependancies -docker.o: docker.c version.h kde.h icons.h docker.h net.h -icons.o: icons.c icons.h docker.h -kde.o: kde.c kde.h docker.h xproperty.h -net.o: net.c net.h docker.h icons.h -xproperty.o: xproperty.c xproperty.h docker.h diff --git a/src/systray/README b/src/systray/README deleted file mode 100644 index c851765..0000000 --- a/src/systray/README +++ /dev/null @@ -1,75 +0,0 @@ -Docker - Docking System Tray - -Copyright (C) 2003 Ben Jansens - - -What is Docker? - -Docker is a docking application (WindowMaker dock app) which acts as a system -tray for KDE3 and GNOME2. It can be used to replace the panel in either -environment, allowing you to have a system tray without running the KDE/GNOME -panel. - - -What window managers can I use Docker with? - -I wrote and designed Docker to work with Openbox 2, but it should work fine in -any window manager that supports WindowMaker dock apps. - - -Why don't my KDE3 system tray icons show up? - -Docker requires a KDE3 compliant window manager to handle KDE3 system tray -icons, and since it is a docking application, the window manager needs to also -support WindowMaker Dock Apps. The only window manager that meets these -requirements to my knowledge is: - - Openbox 2 (http://icculus.org/openbox) -If you know of any other window managers that support the KDE3 hints for the -system tray and docking apps (i.e. that docker works in), please let me know so -I can add them to this list, and test docker out in them! - - -Why don't my GNOME2 system tray icons show up? - -I don't know! Email me and let me know what application isn't working. (Don't -you dare email me about a GNOME1 application! :) - - -Who wrote Docker? - -Me, of course. That is, Ben Jansens. I can be reached at . I am -the founder and currently the project head of sorts for the Openbox project. - - -=============================== -|| INSTALLATION INSTRUCTIONS || -=============================== - -To install this application, simply do the following: - -% make -(as root) -# make install - -You can change a couple of things in the Makefile if you want to: -PREFIX defines where the program will be installed to. -XLIBPATH defines where your libX11.so is located. If it is not on the standard - /usr/X11R6/lib path, then you will have to change this. - -================== -|| LICENSE INFO || -================== - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA diff --git a/src/systray/docker.c b/src/systray/docker.c deleted file mode 100644 index a2e6152..0000000 --- a/src/systray/docker.c +++ /dev/null @@ -1,180 +0,0 @@ -#include "version.h" -#include "kde.h" -#include "icons.h" -#include "docker.h" -#include "net.h" - -#include -#include -#include -#include -#include -#include - -int argc; -char **argv; - -Window win = None, hint_win = None, root = None; -gboolean wmaker = FALSE; /* WindowMakerMode!!! wheeee */ -Display *display = NULL; -GSList *icons = NULL; -int width = 0, height = 0; -int border = 1; /* blank area around icons. must be > 0 */ -gboolean horizontal = TRUE; /* layout direction */ -int icon_size = 24; /* width and height of systray icons */ - -//static char *display_string = NULL; -/* excluding the border. sum of all child apps */ -static gboolean exit_app = FALSE; - -/* -void create_hint_win() -{ - XWMHints hints; - XClassHint classhints; - - hint_win = XCreateSimpleWindow(display, root, 0, 0, 1, 1, 0, 0, 0); - assert(hint_win); - - hints.flags = StateHint | WindowGroupHint | IconWindowHint; - hints.initial_state = WithdrawnState; - hints.window_group = hint_win; - hints.icon_window = win; - - classhints.res_name = "docker"; - classhints.res_class = "Docker"; - - XSetWMProperties(display, hint_win, NULL, NULL, argv, argc, - NULL, &hints, &classhints); - - XMapWindow(display, hint_win); -} - - -void create_main_window() -{ - XWMHints hints; - XTextProperty text; - char *name = "Docker"; - - // the border must be > 0 if not in wmaker mode - assert(wmaker || border > 0); - - if (!wmaker) - win = XCreateSimpleWindow(display, root, 0, 0, - border * 2, border * 2, 0, 0, 0); - else - win = XCreateSimpleWindow(display, root, 0, 0, - 64, 64, 0, 0, 0); - - assert(win); - - XStringListToTextProperty(&name, 1, &text); - XSetWMName(display, win, &text); - - hints.flags = StateHint; - hints.initial_state = WithdrawnState; - XSetWMHints(display, win, &hints); - - create_hint_win(); - - XSync(display, False); - XSetWindowBackgroundPixmap(display, win, ParentRelative); - XClearWindow(display, win); -} -*/ - -void reposition_icons() -{ - int x = border + ((width % icon_size) / 2), - y = border + ((height % icon_size) / 2); - GSList *it; - - for (it = icons; it != NULL; it = g_slist_next(it)) { - TrayWindow *traywin = it->data; - traywin->x = x; - traywin->y = y; - XMoveWindow(display, traywin->id, x, y); - XSync(display, False); - if (wmaker) { - x += icon_size; - if (x + icon_size > width) { - x = border; - y += icon_size; - } - } else if (horizontal) - x += icon_size; - else - y += icon_size; - } -} - - -void fix_geometry() -{ - GSList *it; - - // in wmaker mode we're a fixed size - if (wmaker) return; - - //* find the proper width and height - width = horizontal ? 0 : icon_size; - height = horizontal ? icon_size : 0; - for (it = icons; it != NULL; it = g_slist_next(it)) { - if (horizontal) - width += icon_size; - else - height += icon_size; - } - - XResizeWindow(display, win, width + border * 2, height + border * 2); -} - -/* -int main(int c, char **v) -{ - struct sigaction act; - - argc = c; argv = v; - - act.sa_handler = signal_handler; - act.sa_flags = 0; - sigaction(SIGSEGV, &act, NULL); - sigaction(SIGPIPE, &act, NULL); - sigaction(SIGFPE, &act, NULL); - sigaction(SIGTERM, &act, NULL); - sigaction(SIGINT, &act, NULL); - sigaction(SIGHUP, &act, NULL); - - parse_cmd_line(argc, argv); - - display = XOpenDisplay(display_string); - if (!display) { - g_printerr("Unable to open Display %s. Exiting.\n", - DisplayString(display_string)); - } - - root = RootWindow(display, DefaultScreen(display)); - assert(root); - - if (wmaker) - width = height = 64 - border * 2; - - create_main_window(); - - // set up to find KDE systray icons, and get any that already exist - kde_init(); - - net_init(); - - // we want to get ConfigureNotify events, and assume our parent's background - // has changed when we do, so we need to refresh ourself to match - XSelectInput(display, win, StructureNotifyMask); - - event_loop(); - - XCloseDisplay(display); - - return 0; -} -*/ diff --git a/src/systray/docker.h b/src/systray/docker.h deleted file mode 100644 index f60376e..0000000 --- a/src/systray/docker.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef __docker_h -#define __docker_h - -#include -#include - -extern Display *display; -extern Window root, win; -extern GSList *icons; -extern int width, height; -extern int border; -extern gboolean horizontal; -extern int icon_size; -extern gboolean wmaker; - -typedef enum { - KDE = 1, /* kde specific */ - NET /* follows the standard (freedesktop.org) */ -} TrayWindowType; - -typedef struct -{ - TrayWindowType type; - Window id; - int x, y; -} TrayWindow; - -void reposition_icons(); -void fix_geometry(); - -#endif /* __docker_h */ diff --git a/src/systray/icons.c b/src/systray/icons.c deleted file mode 100644 index 5c5b240..0000000 --- a/src/systray/icons.c +++ /dev/null @@ -1,122 +0,0 @@ -#include "icons.h" -#include "net.h" -#include -#include - -gboolean error; -int window_error_handler(Display *d, XErrorEvent *e) -{ - d=d;e=e; - if (e->error_code == BadWindow) { - error = TRUE; - } else { - g_printerr("X ERROR NOT BAD WINDOW!\n"); - abort(); - } - return 0; -} - - -gboolean icon_swallow(TrayWindow *traywin) -{ - XErrorHandler old; - - error = FALSE; - old = XSetErrorHandler(window_error_handler); - XReparentWindow(display, traywin->id, win, 0, 0); - XSync(display, False); - XSetErrorHandler(old); - - return !error; -} - - -/* - The traywin must have its id and type set. -*/ -gboolean icon_add(Window id, TrayWindowType type) -{ - TrayWindow *traywin; - - assert(id); - assert(type); - - if (wmaker) { - /* do we have room in our window for another icon? */ - unsigned int max = (width / icon_size) * (height / icon_size); - if (g_slist_length(icons) >= max) - return FALSE; /* no room, sorry! REJECTED! */ - } - - traywin = g_new0(TrayWindow, 1); - traywin->type = type; - traywin->id = id; - - if (!icon_swallow(traywin)) { - g_free(traywin); - return FALSE; - } - - /* find the positon for the systray app window */ - if (!wmaker) { - traywin->x = border + (horizontal ? width : 0); - traywin->y = border + (horizontal ? 0 : height); - } else { - int count = g_slist_length(icons); - traywin->x = border + ((width % icon_size) / 2) + - (count % (width / icon_size)) * icon_size; - traywin->y = border + ((height % icon_size) / 2) + - (count / (height / icon_size)) * icon_size; - } - - /* add the new icon to the list */ - icons = g_slist_append(icons, traywin); - - /* watch for the icon trying to resize itself! BAD ICON! BAD! */ - XSelectInput(display, traywin->id, StructureNotifyMask); - - /* position and size the icon window */ - XMoveResizeWindow(display, traywin->id, - traywin->x, traywin->y, icon_size, icon_size); - - /* resize our window so that the new window can fit in it */ - fix_geometry(); - - /* flush before clearing, otherwise the clear isn't effective. */ - XFlush(display); - /* make sure the new child will get the right stuff in its background - for ParentRelative. */ - XClearWindow(display, win); - - /* show the window */ - XMapRaised(display, traywin->id); - - return TRUE; -} - - -void icon_remove(GSList *node) -{ - XErrorHandler old; - TrayWindow *traywin = node->data; - Window traywin_id = traywin->id; - - if (traywin->type == NET) - net_icon_remove(traywin); - - XSelectInput(display, traywin->id, NoEventMask); - - /* remove it from our list */ - g_free(node->data); - icons = g_slist_remove_link(icons, node); - - /* reparent it to root */ - error = FALSE; - old = XSetErrorHandler(window_error_handler); - XReparentWindow(display, traywin_id, root, 0, 0); - XSync(display, False); - XSetErrorHandler(old); - - reposition_icons(); - fix_geometry(); -} diff --git a/src/systray/icons.h b/src/systray/icons.h deleted file mode 100644 index 1d2a09c..0000000 --- a/src/systray/icons.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef __icons_h -#define __icons_h - -#include -#include -#include "docker.h" - -extern gboolean error; - -gboolean icon_add(Window id, TrayWindowType type); -void icon_remove(GSList *node); - -#endif /* __icons_h */ diff --git a/src/systray/kde.c b/src/systray/kde.c deleted file mode 100644 index 32e1848..0000000 --- a/src/systray/kde.c +++ /dev/null @@ -1,76 +0,0 @@ -#include "kde.h" -#include "icons.h" -#include "docker.h" -#include "xproperty.h" -#include -#include - -Atom kde_systray_prop = None; - -void kde_init() -{ - kde_systray_prop = XInternAtom(display, - "_KDE_NET_SYSTEM_TRAY_WINDOWS", False); - assert(kde_systray_prop); - - XSelectInput(display, root, PropertyChangeMask); - kde_update_icons(); -} - -void kde_update_icons() -{ - gulong count = (unsigned) -1; /* grab as many as possible */ - Window *ids; - unsigned int i; - GSList *it, *next; - gboolean removed = FALSE; /* were any removed? */ - - if (! xprop_get32(root, kde_systray_prop, XA_WINDOW, sizeof(Window)*8, - &count, &ids)) - return; - - /* add new windows to our list */ - for (i = 0; i < count; ++i) { - for (it = icons; it != NULL; it = g_slist_next(it)) { - TrayWindow *traywin = it->data; - if (traywin->id == ids[i]) - break; - } - if (!it) - icon_add(ids[i], KDE); - } - - /* remove windows from our list that no longer exist in the property */ - for (it = icons; it != NULL;) { - TrayWindow *traywin = it->data; - gboolean exists; - - if (traywin->type != KDE) { - /* don't go removing non-kde windows */ - exists = TRUE; - } else { - exists = FALSE; - for (i = 0; i < count; ++i) { - if (traywin->id == ids[i]) { - exists = TRUE; - break; - } - } - } - - next = g_slist_next(it); - if (!exists) { - icon_remove(it); - removed =TRUE; - } - it = next; - } - - if (removed) { - /* at least one tray app was removed, so reorganize 'em all and resize*/ - reposition_icons(); - fix_geometry(); - } - - XFree(ids); -} diff --git a/src/systray/kde.h b/src/systray/kde.h deleted file mode 100644 index cb85d3d..0000000 --- a/src/systray/kde.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef __kde_h -#define __kde_h - -#include -#include - -extern Atom kde_systray_prop; - -void kde_update_icons(); -void kde_init(); - -#endif /* __kde_h */ diff --git a/src/systray/net.c b/src/systray/net.c deleted file mode 100644 index 8591834..0000000 --- a/src/systray/net.c +++ /dev/null @@ -1,44 +0,0 @@ -#include "net.h" -#include "docker.h" -#include "icons.h" -#include - -Atom net_opcode_atom; -Window net_sel_win; - -static Atom net_sel_atom; -static Atom net_manager_atom; -static Atom net_message_data_atom; - -/* defined in the systray spec */ -#define SYSTEM_TRAY_REQUEST_DOCK 0 -#define SYSTEM_TRAY_BEGIN_MESSAGE 1 -#define SYSTEM_TRAY_CANCEL_MESSAGE 2 - -static void net_create_selection_window() -{ - net_sel_win = XCreateSimpleWindow(display, root, -1, -1, 1, 1, 0, 0, 0); - assert(net_sel_win); -} - - -static void net_destroy_selection_window() -{ - XDestroyWindow(display, net_sel_win); - net_sel_win = None; -} - -void net_icon_remove(TrayWindow *traywin) -{ - assert(traywin); - - XSelectInput(display, traywin->id, NoEventMask); -} - - -void net_destroy() -{ - net_destroy_selection_window(); -} - - diff --git a/src/systray/net.h b/src/systray/net.h deleted file mode 100644 index 9d350ea..0000000 --- a/src/systray/net.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef __net_h -#define __net_h - -#include -#include -#include "docker.h" - -extern Window net_sel_win; -extern Atom net_opcode_atom; - -void net_init(); -void net_message(XClientMessageEvent *e); -void net_icon_remove(TrayWindow *traywin); - -#endif /* __net_h */ diff --git a/src/systray/systraybar.c b/src/systray/systraybar.c index 2406145..26b9b8d 100644 --- a/src/systray/systraybar.c +++ b/src/systray/systraybar.c @@ -36,35 +36,80 @@ GSList *icons; #define SYSTEM_TRAY_BEGIN_MESSAGE 1 #define SYSTEM_TRAY_CANCEL_MESSAGE 2 -Window net_sel_win; +Window net_sel_win = None; -void init_systray(Systraybar *sysbar, Area *parent) +void init_systray() { - Panel *panel = (Panel *)parent; - - sysbar->area.parent = parent; - sysbar->area.panel = panel; + Panel *panel; + Systraybar *sysbar; + int i, run_systray; + + cleanup_systray(); + + run_systray = 0; + for (i=0 ; i < nb_panel ; i++) { + if (panel1[i].systray.area.visible) { + run_systray = 1; + break; + } + } + if (run_systray) { + if (XGetSelectionOwner(server.dsp, server.atom._NET_SYSTEM_TRAY_SCREEN) != None) { + fprintf(stderr, "tint2 warning : another systray is running\n"); + run_systray = 0; + } + } + + if (run_systray) + run_systray = net_init(); + + for (i=0 ; i < nb_panel ; i++) { + panel = &panel1[i]; + sysbar = &panel->systray; + + if (!run_systray) { + sysbar->area.visible = 0; + continue; + } + if (!sysbar->area.visible) + continue; + + sysbar->area.parent = panel; + sysbar->area.panel = panel; + + sysbar->area.posy = panel->area.pix.border.width + panel->area.paddingy; + sysbar->area.height = panel->area.height - (2 * sysbar->area.posy); + sysbar->area.width = 100; + + sysbar->area.posx = panel->area.width - panel->area.paddingxlr - panel->area.pix.border.width - sysbar->area.width; + if (panel->clock.area.visible) + sysbar->area.posx -= (panel->clock.area.width + panel->area.paddingx); + + sysbar->area.redraw = 1; + } +} - sysbar->area.posy = parent->pix.border.width + parent->paddingy; - sysbar->area.height = parent->height - (2 * sysbar->area.posy); - sysbar->area.width = 100; - sysbar->area.posx = panel->area.width - panel->clock.area.width - panel->area.paddingxlr - panel->area.pix.border.width - panel->area.paddingx - sysbar->area.width; +void cleanup_systray() +{ + Panel *panel; + int i; - sysbar->area.redraw = 1; + for (i=0 ; i < nb_panel ; i++) { + panel = &panel1[i]; + if (!panel->systray.area.visible) continue; -//printf("init_systray"); + free_area(&panel->systray.area); + } - net_init(); + if (net_sel_win != None) { + XDestroyWindow(server.dsp, net_sel_win); + net_sel_win = None; + } } -// net_sel_atom == server.atom._NET_SYSTEM_TRAY -// net_opcode_atom == server.atom._NET_SYSTEM_TRAY_OPCODE -// net_manager_atom == server.atom.MANAGER -// net_message_data_atom == server.atom._NET_SYSTEM_TRAY_MESSAGE_DATA - int resize_systray (Systraybar *sysbar) { return 0; @@ -93,12 +138,6 @@ void fix_geometry() } -static void net_create_selection_window() -{ - net_sel_win = XCreateSimpleWindow(server.dsp, root, -1, -1, 1, 1, 0, 0, 0); -} - - gboolean error; int window_error_handler(Display *d, XErrorEvent *e) { @@ -172,15 +211,15 @@ gboolean icon_add(Window id) } -void net_init() +int net_init() { // init systray protocol net_sel_win = XCreateSimpleWindow(server.dsp, server.root_win, -1, -1, 1, 1, 0, 0, 0); - XSetSelectionOwner(server.dsp, server.atom._NET_SYSTEM_TRAY, net_sel_win, CurrentTime); - if (XGetSelectionOwner(server.dsp, server.atom._NET_SYSTEM_TRAY) != net_sel_win) { - fprintf(stderr, "tint error : can't get trayer selection"); - return; + XSetSelectionOwner(server.dsp, server.atom._NET_SYSTEM_TRAY_SCREEN, net_sel_win, CurrentTime); + if (XGetSelectionOwner(server.dsp, server.atom._NET_SYSTEM_TRAY_SCREEN) != net_sel_win) { + fprintf(stderr, "tint2 warning : can't get systray manager\n"); + return 0; } XEvent m; @@ -188,11 +227,12 @@ void net_init() m.xclient.message_type = server.atom.MANAGER; m.xclient.format = 32; m.xclient.data.l[0] = CurrentTime; - m.xclient.data.l[1] = server.atom._NET_SYSTEM_TRAY; + m.xclient.data.l[1] = server.atom._NET_SYSTEM_TRAY_SCREEN; m.xclient.data.l[2] = net_sel_win; m.xclient.data.l[3] = 0; m.xclient.data.l[4] = 0; XSendEvent(server.dsp, server.root_win, False, StructureNotifyMask, &m); + return 1; } diff --git a/src/systray/systraybar.h b/src/systray/systraybar.h index 761bda6..0c5e624 100644 --- a/src/systray/systraybar.h +++ b/src/systray/systraybar.h @@ -20,12 +20,19 @@ typedef struct { typedef struct { - Window id; - int x, y; + Window id; + int x, y; + + Window win; + long *icon_data; + int icon_width; + int icon_height; } TrayWindow; -void init_systray(Systraybar *sysbar, Area *parent); +void init_systray(); +void cleanup_systray(); +int net_init(); // return 1 if task_width changed int resize_systray (Systraybar *sysbar); diff --git a/src/systray/tint_merge.h b/src/systray/tint_merge.h deleted file mode 100644 index 2cfbff5..0000000 --- a/src/systray/tint_merge.h +++ /dev/null @@ -1,21 +0,0 @@ -/************************************************************************** -* Copyright (C) 2008 thierry lorthiois (lorthiois@bbsoft.fr) -* -* Merge 'docker' with 'tint2'. -* The goal is to keep unchanged docker code, but without data duplication. -* -**************************************************************************/ - -#ifndef TINT_MERGE_H -#define TINT_MERGE_H -/* -#define display server.dsp -#define root server.root_win - -/* delete main(), parse_cmd_line() and display_string from docker.c - * include "tint_merge.h" in docker.h - */ - - -#endif - diff --git a/src/systray/version.h b/src/systray/version.h deleted file mode 100644 index 0b62be9..0000000 --- a/src/systray/version.h +++ /dev/null @@ -1 +0,0 @@ -#define VERSION "1.5" diff --git a/src/systray/version.h.in b/src/systray/version.h.in deleted file mode 100644 index a44b122..0000000 --- a/src/systray/version.h.in +++ /dev/null @@ -1 +0,0 @@ -#define VERSION "@VERSION@" diff --git a/src/systray/xproperty.c b/src/systray/xproperty.c deleted file mode 100644 index 855379c..0000000 --- a/src/systray/xproperty.c +++ /dev/null @@ -1,64 +0,0 @@ -#include "xproperty.h" -#include "docker.h" - -gboolean xprop_get8(Window window, Atom atom, Atom type, int size, - gulong *count, guchar **value) -{ - Atom ret_type; - int ret_size; - unsigned long ret_bytes; - int result; - unsigned long nelements = *count; - unsigned long maxread = nelements; - - *value = NULL; - - /* try get the first element */ - result = XGetWindowProperty(display, window, atom, 0l, 1l, False, - AnyPropertyType, &ret_type, &ret_size, - &nelements, &ret_bytes, value); - if (! (result == Success && ret_type == type && - ret_size == size && nelements > 0)) { - if (*value) XFree(*value); - *value = NULL; - nelements = 0; - } else { - /* we didn't the whole property's value, more to get */ - if (! (ret_bytes == 0 || maxread <= nelements)) { - int remain; - - /* get the entire property since it is larger than one element long */ - XFree(*value); - /* - the number of longs that need to be retreived to get the property's - entire value. The last + 1 is the first long that we retrieved above. - */ - remain = (ret_bytes - 1)/sizeof(long) + 1 + 1; - /* dont get more than the max */ - if (remain > size/8 * (signed)maxread) - remain = size/8 * (signed)maxread; - result = XGetWindowProperty(display, window, atom, 0l, remain, - False, type, &ret_type, &ret_size, - &nelements, &ret_bytes, value); - /* - If the property has changed type/size, or has grown since our first - read of it, then stop here and try again. If it shrank, then this will - still work. - */ - if (!(result == Success && ret_type == type && - ret_size == size && ret_bytes == 0)) { - if (*value) XFree(*value); - xprop_get8(window, atom, type, size, count, value); - } - } - } - - *count = nelements; - return *value != NULL; -} - -gboolean xprop_get32(Window window, Atom atom, Atom type, int size, - gulong *count, gulong **value) -{ - return xprop_get8(window, atom, type, size, count, (guchar**)value); -} diff --git a/src/systray/xproperty.h b/src/systray/xproperty.h deleted file mode 100644 index 81bc69a..0000000 --- a/src/systray/xproperty.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef __xproperty_h -#define __xproperty_h - -#include -#include - -/* if the func returns TRUE, the returned value must be XFree()'d */ -gboolean xprop_get8(Window window, Atom atom, Atom type, int size, - gulong *count, guchar **value); -gboolean xprop_get32(Window window, Atom atom, Atom type, int size, - gulong *count, gulong **value); - -#endif /* __xproperty_h */ diff --git a/src/tint2 b/src/tint2 index df19901eac6ddfe67bf33201a4739d4911460068..3d3fb134cd8028a7eed2c16cffd95a7408936ccc 100755 GIT binary patch delta 11068 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 literal 186697 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 Rx)CY)k<07jPQnLD{~r(f4W9r2 diff --git a/tintrc03 b/tintrc03 index 5763ef0..0427442 100644 --- a/tintrc03 +++ b/tintrc03 @@ -23,7 +23,7 @@ panel_monitor = all panel_position = bottom center panel_size = 100% 30 panel_margin = 0 0 -panel_padding = 6 0 6 +panel_padding = 6 3 6 font_shadow = 0 panel_background_id = 0 @@ -41,7 +41,7 @@ task_icon = 1 task_text = 1 task_width = 160 task_centered = 1 -task_padding = 2 5 +task_padding = 2 2 task_font = Dejavu sans 8 task_font_color = #000000 60 task_active_font_color = #000000 100 @@ -51,7 +51,7 @@ task_active_background_id = 2 #--------------------------------------------- # CLOCK #--------------------------------------------- -#time1_format = %A %d %H:%M +time1_format = %A %d %H:%M time1_font = Dejavu sans 10 #time2_format = %A %d %B time2_font = sans 7 diff --git a/tintrc04 b/tintrc04 new file mode 100644 index 0000000..00a266a --- /dev/null +++ b/tintrc04 @@ -0,0 +1,68 @@ +#--------------------------------------------- +# TINT2 CONFIG FILE +#--------------------------------------------- + +#--------------------------------------------- +# BACKGROUND AND BORDER +#--------------------------------------------- +rounded = 3 +border_width = 1 +background_color = #000000 40 +border_color = #d1d1d1 34 + +rounded = 3 +border_width = 1 +background_color = #000000 55 +border_color = #d1d1d1 40 + +#--------------------------------------------- +# PANEL +#--------------------------------------------- +panel_monitor = all +panel_position = bottom left +panel_size = 99% 27 +panel_margin = 0 0 +panel_padding = 5 3 5 +font_shadow = 0 +panel_background_id = 0 + +#--------------------------------------------- +# TASKBAR +#--------------------------------------------- +taskbar_mode = single_monitor +taskbar_padding = 0 0 5 +taskbar_background_id = 0 + +#--------------------------------------------- +# TASKS +#--------------------------------------------- +task_icon = 0 +task_text = 1 +task_width = 160 +task_centered = 1 +task_padding = 3 1 +task_font = sans bold 7.5 +task_font_color = #ffffff 60 +task_active_font_color = #ffffff 90 +task_background_id = 1 +task_active_background_id = 2 + +#--------------------------------------------- +# CLOCK +#--------------------------------------------- +time1_format = %a %d %H:%M +time1_font = sans bold 7.5 +#time2_format = %A %d %B +time2_font = sans bold 7.5 +clock_font_color = #ffffff 60 +clock_padding = 5 0 +clock_background_id = 1 + +#--------------------------------------------- +# MOUSE ACTION ON TASK +#--------------------------------------------- +mouse_middle = none +mouse_right = close +mouse_scroll_up = toggle +mouse_scroll_down = iconify + -- 2.45.2