[arch-commits] Commit in tint2/trunk (3 files)
Alexander Rødseth
arodseth at nymeria.archlinux.org
Sat Mar 15 10:43:01 UTC 2014
Date: Saturday, March 15, 2014 @ 11:43:01
Author: arodseth
Revision: 107236
upgpkg: tint2 0.11-7
Modified:
tint2/trunk/PKGBUILD
tint2/trunk/add-power-now-support.patch
Deleted:
tint2/trunk/graph.patch
-----------------------------+
PKGBUILD | 33 -
add-power-now-support.patch | 6
graph.patch | 753 ------------------------------------------
3 files changed, 12 insertions(+), 780 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2014-03-15 09:42:59 UTC (rev 107235)
+++ PKGBUILD 2014-03-15 10:43:01 UTC (rev 107236)
@@ -1,4 +1,5 @@
# $Id$
+# Maintainer: Alexander Rødseth <rodseth at gmail.com>
# Contributor: Bartłomiej Piotrowski <bpiotrowski at archlinux.org>
# Contributor: Blue Peppers <bluepeppers at archlinux.us>
# Contributor: Stefan Husmann< stefan-husmann at t-online.de>
@@ -7,7 +8,7 @@
pkgver=0.11
pkgrel=7
pkgdesc='Basic, good-looking task manager for WMs'
-arch=('i686' 'x86_64')
+arch=('x86_64' 'i686')
url='http://code.google.com/p/tint2/'
license=('GPL2')
conflicts=('ttm-svn' 'tint')
@@ -19,15 +20,12 @@
source=("http://tint2.googlecode.com/files/tint2-$pkgver.tar.bz2"
'add-power-now-support.patch'
'clock.patch'
- 'graph.patch'
'launcher_apps_dir-v2.patch'
'src-task-align.patch'
'zombie-fix.patch')
-
md5sums=('6fc5731e7425125fa84a2add5cef4bff'
- '6cfcad028f1bd2f69812167f5395f890'
+ '448beead6c9d44b864f99e08a027cb56'
'bc0bab2979dacff551a97bdf2c2fdedc'
- '2866ebde44be8d48efd1e59ded5c5534'
'13218765dd684ae825967d3ffb4f4a75'
'f0d7f51ec8dbf2e7b6bcca942f0fd6c0'
'cdb83cd911e005a3529e5d1cd952a956')
@@ -35,24 +33,12 @@
prepare() {
cd "$pkgname-$pkgver"
- # making all the patches apply is a work in progress
- for f in "$srcdir"/*.patch; do
+ # Applying all patches, even some that only applies partially.
+ # Tint2 works fine with these, but a new release from upstream would be nice.
+ for f in ../*.patch; do
+ echo -e "--- ${f##*/} ---\n"
+ patch -Np1 -i $f && echo "${f##*/} OK!" || echo "${f##*/} FAILED!"
echo
- echo "--- ${f##*/} ---"
- echo
- if [[ ${f##*/} == add-power-now-support.patch ]]; then
- patch -Np2 -i $f && echo "${f##*/} OK!"
- elif [[ ${f##*/} == src-task-align.patch ]]; then
- continue
- elif [[ ${f##*/} == launcher_apps_dir-v2.patch ]]; then
- continue
- elif [[ ${f##*/} == graph.patch ]]; then
- continue
- elif [[ ${f##*/} == clock.patch ]]; then
- continue
- else
- patch -Np1 -i $f && echo "${f##*/} OK!"
- fi
done
# python2 fix
@@ -67,13 +53,12 @@
cd build
cmake .. \
-DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
-DENABLE_TINT2CONF=0
make
}
package() {
- make -C "$pkgname-$pkgver" DESTDIR="$pkgdir" install
+ make -C "$pkgname-$pkgver/build" DESTDIR="$pkgdir" install
}
# vim:set ts=2 sw=2 et:
Modified: add-power-now-support.patch
===================================================================
--- add-power-now-support.patch 2014-03-15 09:42:59 UTC (rev 107235)
+++ add-power-now-support.patch 2014-03-15 10:43:01 UTC (rev 107236)
@@ -1,6 +1,6 @@
-diff -rup ../tint2-0.11.orig/src/battery/battery.c ./src/battery/battery.c
---- ../tint2-0.11.orig/src/battery/battery.c 2010-12-02 23:56:11.313403140 +0100
-+++ ./src/battery/battery.c 2010-12-02 23:57:22.266956142 +0100
+diff -rup trunk/src/battery/battery.c ./src/battery/battery.c
+--- trunk/src/battery/battery.c 2010-12-02 23:56:11.313403140 +0100
++++ trunk/src/battery/battery.c 2010-12-02 23:57:22.266956142 +0100
@@ -184,8 +184,14 @@ void init_battery()
}
g_free(path2);
Deleted: graph.patch
===================================================================
--- graph.patch 2014-03-15 09:42:59 UTC (rev 107235)
+++ graph.patch 2014-03-15 10:43:01 UTC (rev 107236)
@@ -1,753 +0,0 @@
-Index: CMakeLists.txt
---- trunk/CMakeLists.txt 2011-09-19 12:38:01.000000000 +0200
-+++ trunk/CMakeLists.txt 2011-09-19 12:46:47.169791175 +0200
-@@ -27,6 +27,7 @@
- src
- src/battery
- src/clock
-+ src/graphs
- src/systray
- src/taskbar
- src/launcher
-@@ -45,6 +46,7 @@
- src/server.c
- src/tint.c
- src/clock/clock.c
-+ src/graphs/graphs.c
- src/systray/systraybar.c
- src/launcher/launcher.c
- src/launcher/xsettings-client.c
-
-Index: trunk/src/config.c
---- trunk/src/config.c 2011-09-19 12:38:00.000000000 +0200
-+++ trunk/src/config.c 2011-09-19 12:59:08.365524951 +0200
-@@ -44,6 +44,7 @@
- #include "systraybar.h"
- #include "launcher.h"
- #include "clock.h"
-+#include "graphs.h"
- #include "config.h"
- #include "window.h"
- #include "tooltip.h"
-@@ -127,7 +128,7 @@
- // monitor specified by name, not by index
- int i, j;
- for (i=0; i<server.nb_monitor; ++i) {
-- if (server.monitor[i].names == 0)
-+ if (server.monitor[i].names == 0)
- // xrandr can't identify monitors
- continue;
- j = 0;
-@@ -220,6 +221,8 @@
- }
- if (panel_items_order[j] == 'C')
- clock_enabled = 1;
-+ if (panel_items_order[j] == 'G')
-+ graphs_enabled = 1;
- }
- }
- else if (strcmp (key, "panel_margin") == 0) {
-@@ -341,7 +344,7 @@
- g_free( panel_items_order );
- panel_items_order = tmp;
- }
-- else
-+ else
- panel_items_order = g_strdup("C");
- }
- if (strlen(value) > 0) {
-@@ -401,6 +404,78 @@
- clock_rclick_command = strdup(value);
- }
-
-+ /* Graphs */
-+ else if (strcmp(key, "graphs_items") == 0) {
-+ int j;
-+ for (j = 0; j < strlen(value); j++) {
-+ if (value[j] == 'C' && graphs_cpu_pos == -1) {
-+ graphs_cpu_pos = graphs_ncurves;
-+ graphs_curves_per_pos[graphs_ngraphs] = 2;
-+ graphs_ngraphs++;
-+ graphs_ncurves+=2;
-+ }
-+ else if (value[j] == 'M' && graphs_mem_pos == -1) {
-+ graphs_mem_pos = graphs_ncurves;
-+ graphs_curves_per_pos[graphs_ngraphs] = 2;
-+ graphs_ngraphs++;
-+ graphs_ncurves+=2;
-+ }
-+ else if (value[j] == 'N' && graphs_net_pos == -1) {
-+ graphs_net_pos = graphs_ncurves;
-+ graphs_curves_per_pos[graphs_ngraphs] = 2;
-+ graphs_ngraphs++;
-+ graphs_ncurves+=2;
-+ }
-+ }
-+ }
-+ else if (strcmp(key, "graphs_use_bars") == 0) {
-+ graphs_use_bars = atoi(value);
-+ }
-+ else if (strcmp(key, "graphs_graph_width") == 0) {
-+ int w = atoi(value);
-+ graphs_graph_width = (w <= 200 && w >= 10) ? w : 50;
-+ }
-+ else if (strcmp(key, "graphs_netiface") == 0) {
-+ if (strlen(value) > 0)
-+ graphs_netiface = strdup(value);
-+ }
-+ else if (strcmp(key, "graphs_netmaxup") == 0) {
-+ int s = atoi(value);
-+ graphs_netmaxup = s;
-+ }
-+ else if (strcmp(key, "graphs_netmaxdown") == 0) {
-+ int s = atoi(value);
-+ graphs_netmaxdown = s;
-+ }
-+ else if (strncmp (key, "graphs_color", 12) == 0) {
-+ int idx = key[12]-48;
-+ if (idx >= 0 && idx < MAXCURVES) {
-+ extract_values(value, &value1, &value2, &value3);
-+ get_color (value1, panel_config.graphs.g[idx].color);
-+ if (value2) panel_config.graphs.g[idx].alpha = (atoi (value2) / 100.0);
-+ else panel_config.graphs.g[idx].alpha = 0.5;
-+ }
-+ }
-+ else if (strcmp (key, "graphs_padding") == 0) {
-+ extract_values(value, &value1, &value2, &value3);
-+ panel_config.graphs.area.paddingxlr = panel_config.graphs.area.paddingx = atoi (value1);
-+ if (value2) panel_config.graphs.area.paddingy = atoi (value2);
-+ if (value3) panel_config.graphs.area.paddingx = atoi (value3);
-+ }
-+ else if (strcmp (key, "graphs_background_id") == 0) {
-+ int id = atoi (value);
-+ id = (id < backgrounds->len && id >= 0) ? id : 0;
-+ panel_config.graphs.area.bg = &g_array_index(backgrounds, Background, id);
-+ }
-+ else if (strcmp(key, "graphs_lclick_command") == 0) {
-+ if (strlen(value) > 0)
-+ graphs_lclick_command = strdup(value);
-+ }
-+ else if (strcmp(key, "graphs_rclick_command") == 0) {
-+ if (strlen(value) > 0)
-+ graphs_rclick_command = strdup(value);
-+ }
-+
- /* Taskbar */
- else if (strcmp (key, "taskbar_mode") == 0) {
- if (strcmp (value, "multi_desktop") == 0) panel_mode = MULTI_DESKTOP;
-@@ -752,7 +827,7 @@
- }
- }
- fclose (fp);
--
-+
- // append Taskbar item
- if (new_config_file == 0) {
- taskbar_enabled = 1;
-@@ -761,7 +836,7 @@
- g_free(panel_items_order);
- panel_items_order = tmp;
- }
-- else
-+ else
- panel_items_order = g_strdup("T");
- }
-
-diff -ruN tint2.orig/src/graphs/graphs.c tint2.mine/src/graphs/graphs.c
---- trunk/src/graphs/graphs.c 1970-01-01 01:00:00.000000000 +0100
-+++ trunk/src/graphs/graphs.c 2011-09-19 13:54:02.833338438 +0200
-@@ -0,0 +1,426 @@
-+/**************************************************************************
-+*
-+* Tint2 : graphs
-+*
-+* Copyright (C) 2011 Francisco J. Vazquez (fjvazquezaraujo at gmail.com)
-+*
-+* 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 <string.h>
-+#include <stdio.h>
-+#include <cairo.h>
-+#include <cairo-xlib.h>
-+#include <pango/pangocairo.h>
-+#include <stdlib.h>
-+#include <ctype.h>
-+
-+#include "window.h"
-+#include "server.h"
-+#include "panel.h"
-+#include "graphs.h"
-+#include "timer.h"
-+#include "common.h"
-+
-+#define CPU_SAMPLE_COUNT 5
-+#define NET_SAMPLE_COUNT 5
-+
-+int graphs_enabled;
-+int graphs_ngraphs;
-+int graphs_ncurves;
-+int graphs_cpu_pos;
-+int graphs_mem_pos;
-+int graphs_net_pos;
-+int graphs_curves_per_pos[MAXGRAPHS];
-+int graphs_use_bars;
-+int graphs_graph_width;
-+int graphs_cpu_nsamples_avg;
-+int graphs_net_nsamples_avg;
-+char *graphs_netiface;
-+int graphs_netmaxup;
-+int graphs_netmaxdown;
-+char *graphs_lclick_command;
-+char *graphs_rclick_command;
-+
-+float **graph_values; // circular array list
-+static int pos_x = 0; // current position in graph_values
-+static timeout* graphs_timeout;
-+
-+
-+void default_graphs()
-+{
-+ graphs_enabled = 0;
-+ graphs_ngraphs = 0;
-+ graphs_ncurves = 0;
-+ graphs_cpu_pos = -1;
-+ graphs_mem_pos = -1;
-+ graphs_net_pos = -1;
-+ graphs_use_bars = 0;
-+ graphs_graph_width = 50;
-+ graphs_cpu_nsamples_avg = 1;
-+ graphs_net_nsamples_avg = 2;
-+ graphs_netiface = 0;
-+ graphs_netmaxup = 0;
-+ graphs_netmaxdown = 0;
-+ graphs_timeout = 0;
-+ graphs_lclick_command = 0;
-+ graphs_rclick_command = 0;
-+}
-+
-+void cleanup_graphs()
-+{
-+ if (graphs_netiface) g_free(graphs_netiface);
-+ if (graphs_lclick_command) g_free(graphs_lclick_command);
-+ if (graphs_rclick_command) g_free(graphs_rclick_command);
-+ if (graphs_timeout) stop_timeout(graphs_timeout);
-+ int i;
-+ for (i = 0; i < graphs_ncurves; i++)
-+ {
-+ free(graph_values[i]);
-+ }
-+ free(graph_values);
-+}
-+
-+int update_cpugraph()
-+{
-+ if (graphs_cpu_pos == -1) return 0;
-+
-+ struct cpu_info {
-+ unsigned long long last_total;
-+ unsigned long long last_active_total, last_wait_total;
-+ int cur_idx;
-+ double active[CPU_SAMPLE_COUNT], wait[CPU_SAMPLE_COUNT];
-+ float active_perc, wait_perc;
-+ };
-+ static struct cpu_info cpu = { .cur_idx=0 };
-+
-+ FILE *fp;
-+ if ((fp = fopen("/proc/stat", "r")) == NULL) {
-+ return 0;
-+ }
-+ char buf[256];
-+ while (!feof(fp)) {
-+ if (fgets(buf, 255, fp) == NULL) {
-+ break;
-+ }
-+ if (strncmp(buf, "cpu", 3) == 0) {
-+ unsigned long long cpu_user;
-+ unsigned long long cpu_system;
-+ unsigned long long cpu_nice;
-+ unsigned long long cpu_idle;
-+ unsigned long long cpu_iowait;
-+ unsigned long long cpu_irq;
-+ unsigned long long cpu_softirq;
-+ unsigned long long cpu_steal;
-+ unsigned long long cpu_total;
-+ unsigned long long cpu_active_total;
-+ unsigned long long cpu_wait_total;
-+ sscanf(buf, "%*s %llu %llu %llu %llu %llu %llu %llu %llu",
-+ &cpu_user, &cpu_nice, &cpu_system, &cpu_idle,
-+ &cpu_iowait, &cpu_irq, &cpu_softirq, &cpu_steal);
-+ cpu_total = cpu_user + cpu_nice + cpu_system + cpu_idle +
-+ cpu_iowait + cpu_irq + cpu_softirq + cpu_steal;
-+ cpu_active_total = cpu_user + cpu_nice + cpu_system + cpu_steal;
-+ cpu_wait_total = cpu_total - cpu_active_total - cpu_idle;
-+ double time = (cpu_total - cpu.last_total);
-+ cpu.active[cpu.cur_idx] = (cpu_active_total - cpu.last_active_total) / time;
-+ cpu.wait[cpu.cur_idx] = (cpu_wait_total - cpu.last_wait_total) / time;
-+ cpu.last_total = cpu_total;
-+ cpu.last_active_total = cpu_active_total;
-+ cpu.last_wait_total = cpu_wait_total;
-+ double curtmp1 = 0;
-+ double curtmp2 = 0;
-+ int i;
-+ // Average the samples
-+ for (i = 0; i < graphs_cpu_nsamples_avg; i++) {
-+ int idx2 = (cpu.cur_idx + CPU_SAMPLE_COUNT - i) % CPU_SAMPLE_COUNT;
-+ curtmp1 += cpu.active[idx2];
-+ curtmp2 += cpu.wait[idx2];
-+ }
-+ cpu.active_perc = curtmp1 / (float) graphs_cpu_nsamples_avg;
-+ cpu.wait_perc = curtmp2 / (float) graphs_cpu_nsamples_avg;
-+ cpu.cur_idx = (cpu.cur_idx + 1) % CPU_SAMPLE_COUNT;
-+ break; // Ignore the rest
-+ }
-+ }
-+ fclose(fp);
-+
-+ graph_values[graphs_cpu_pos][pos_x] = cpu.active_perc;
-+ graph_values[graphs_cpu_pos+1][pos_x] = cpu.active_perc + cpu.wait_perc;
-+
-+ return 0;
-+}
-+
-+int update_memgraph()
-+{
-+ if (graphs_mem_pos == -1) return 0;
-+
-+ long long unsigned int memtotal = 0, memfree = 0, buffers = 0, cached = 0;
-+
-+ FILE *fp;
-+ if ((fp = fopen("/proc/meminfo", "r")) == NULL) {
-+ return 0;
-+ }
-+ char buf[256];
-+ while (!feof(fp)) {
-+ if (fgets(buf, 255, fp) == NULL) {
-+ break;
-+ }
-+ if (strncmp(buf, "MemTotal:", 9) == 0) {
-+ sscanf(buf, "%*s %llu", &memtotal);
-+ } else if (strncmp(buf, "MemFree:", 8) == 0) {
-+ sscanf(buf, "%*s %llu", &memfree);
-+ } else if (strncmp(buf, "Buffers:", 8) == 0) {
-+ sscanf(buf, "%*s %llu", &buffers);
-+ } else if (strncmp(buf, "Cached:", 7) == 0) {
-+ sscanf(buf, "%*s %llu", &cached);
-+ }
-+ }
-+ fclose(fp);
-+
-+ long long unsigned int used = memtotal - memfree;
-+ long long unsigned int bufcach = buffers + cached;
-+
-+ graph_values[graphs_mem_pos][pos_x] = (used - bufcach) / (float) memtotal;
-+ graph_values[graphs_mem_pos+1][pos_x] = used / (float) memtotal;
-+
-+ return 0;
-+}
-+
-+int update_netgraph()
-+{
-+ if (graphs_net_pos == -1 || graphs_netiface == NULL) return 0;
-+
-+ struct net_stat {
-+ long long last_down, last_up;
-+ int cur_idx;
-+ long long down[NET_SAMPLE_COUNT], up[NET_SAMPLE_COUNT];
-+ double down_rate, up_rate;
-+ double max_down, max_up;
-+ };
-+ static struct net_stat net = { .cur_idx=0, .max_down=0, .max_up=0 };
-+
-+ double max(double v1, double v2) { return v1 > v2 ? v1 : v2; }
-+ double min(double v1, double v2) { return v1 < v2 ? v1 : v2; }
-+
-+ FILE *fp;
-+ if (!(fp = fopen("/proc/net/dev", "r"))) {
-+ return 0;
-+ }
-+ char buf[256];
-+ // Ignore first two lines
-+ fgets(buf, 255, fp);
-+ fgets(buf, 255, fp);
-+ static int first_run = 1;
-+ while (!feof(fp)) {
-+ if (fgets(buf, 255, fp) == NULL) {
-+ break;
-+ }
-+ char *p = buf;
-+ while (isspace((int) *p)) p++;
-+ char *curdev = p;
-+ while (*p && *p != ':') p++;
-+ if (*p == '\0') continue;
-+ *p = '\0';
-+
-+ if (strcmp(curdev, graphs_netiface)) continue;
-+
-+ long long down, up;
-+ sscanf(p+1, "%lld %*d %*d %*d %*d %*d %*d %*d %lld", &down, &up);
-+ if (down < net.last_down) net.last_down = 0; // Overflow
-+ if (up < net.last_up) net.last_up = 0; // Overflow
-+ net.down[net.cur_idx] = (down - net.last_down);
-+ net.up[net.cur_idx] = (up - net.last_up);
-+ net.last_down = down;
-+ net.last_up = up;
-+ if (first_run) {
-+ first_run = 0;
-+ break;
-+ }
-+
-+ unsigned int curtmp1 = 0;
-+ unsigned int curtmp2 = 0;
-+ // Average the samples
-+ int i;
-+ for (i = 0; i < graphs_net_nsamples_avg; i++) {
-+ curtmp1 += net.down[(net.cur_idx + NET_SAMPLE_COUNT - i) %
-+ NET_SAMPLE_COUNT];
-+ curtmp2 += net.up[(net.cur_idx + NET_SAMPLE_COUNT - i) %
-+ NET_SAMPLE_COUNT];
-+ }
-+ net.down_rate = curtmp1 / (double) graphs_net_nsamples_avg;
-+ net.up_rate = curtmp2 / (double) graphs_net_nsamples_avg;
-+ if (graphs_netmaxdown > 0)
-+ {
-+ net.down_rate /= (float) graphs_netmaxdown;
-+ net.down_rate = min(1.0, net.down_rate);
-+ }
-+ else
-+ {
-+ // Normalize by maximum speed (a priori unknown,
-+ // so we must do this all the time).
-+ if (net.max_down < net.down_rate)
-+ {
-+ for (i = 0; i < graphs_graph_width; i++)
-+ {
-+ graph_values[graphs_net_pos][i] *= (net.max_down /
-+ net.down_rate);
-+ }
-+ net.max_down = net.down_rate;
-+ net.down_rate = 1.0;
-+ }
-+ else if (net.max_down != 0) net.down_rate /= net.max_down;
-+ }
-+ if (graphs_netmaxup > 0)
-+ {
-+ net.up_rate /= (float) graphs_netmaxup;
-+ net.up_rate = min(1.0, net.up_rate);
-+ }
-+ else
-+ {
-+ if (net.max_up < net.up_rate)
-+ {
-+ for (i = 0; i < graphs_graph_width; i++)
-+ {
-+ graph_values[graphs_net_pos+1][i] *= (net.max_up /
-+ net.up_rate);
-+ }
-+ net.max_up = net.up_rate;
-+ net.up_rate = 1.0;
-+ }
-+ else if (net.max_up != 0) net.up_rate /= net.max_up;
-+ }
-+ net.cur_idx = (net.cur_idx + 1) % NET_SAMPLE_COUNT;
-+ break; // Ignore the rest
-+ }
-+ fclose(fp);
-+
-+ graph_values[graphs_net_pos][pos_x] = net.down_rate;
-+ graph_values[graphs_net_pos+1][pos_x] = net.up_rate;
-+
-+ return 0;
-+}
-+
-+void update_graphs(void* arg)
-+{
-+ update_cpugraph();
-+ update_memgraph();
-+ update_netgraph();
-+ int i;
-+ for (i=0 ; i < nb_panel ; i++)
-+ panel1[i].graphs.area.redraw = 1;
-+ panel_refresh = 1;
-+}
-+
-+void init_graphs()
-+{
-+ if (!graphs_enabled || !graphs_ngraphs)
-+ return;
-+
-+ graphs_timeout = add_timeout(10, 1000, update_graphs, 0);
-+ int i;
-+ graph_values = (float **) malloc(graphs_ncurves * sizeof(float *));
-+ for (i = 0; i < graphs_ncurves; i++)
-+ {
-+ unsigned int gsize = graphs_graph_width * sizeof(float);
-+ graph_values[i] = malloc(gsize);
-+ memset(graph_values[i], 0, gsize);
-+ }
-+}
-+
-+void init_graphs_panel(void *p)
-+{
-+ if (!graphs_enabled || !graphs_ngraphs)
-+ return;
-+
-+ Panel *panel =(Panel*)p;
-+ Graphs *graphs = &panel->graphs;
-+
-+ if (graphs->area.bg == 0)
-+ graphs->area.bg = &g_array_index(backgrounds, Background, 0);
-+ graphs->area.parent = p;
-+ graphs->area.panel = p;
-+ graphs->area._draw_foreground = draw_graphs;
-+ graphs->area.size_mode = SIZE_BY_CONTENT;
-+ graphs->area._resize = resize_graphs;
-+
-+ graphs->area.resize = 1;
-+ graphs->area.on_screen = 1;
-+}
-+
-+
-+void draw_graphs (void *obj, cairo_t *c)
-+{
-+ Graphs *graphs = obj;
-+
-+ cairo_set_line_width (c, 1.0);
-+ int i, i2, g, cv;
-+ int x = graphs->area.paddingxlr + graphs->area.bg->border.width + 1;
-+ int y1 = graphs->area.height - graphs->area.bg->border.width - graphs->area.paddingy;
-+ for (g = 0, cv = 0; g < graphs_ngraphs; g++)
-+ {
-+ for (i2 = 0; i2 < graphs_curves_per_pos[g]; i2++, cv++)
-+ {
-+ cairo_set_source_rgba (c, graphs->g[cv].color[0], graphs->g[cv].color[1],
-+ graphs->g[cv].color[2], graphs->g[cv].alpha);
-+ for (i = 0; i < graphs_graph_width; i++)
-+ {
-+ int idx = (pos_x + 1 + i + graphs_graph_width) % graphs_graph_width;
-+ int y2 = y1 - graph_values[cv][idx] * (y1 - graphs->area.bg->border.width -
-+ graphs->area.paddingy);
-+ if (graphs_use_bars) cairo_move_to (c, x + i, y1);
-+ cairo_line_to (c, x + i, y2);
-+ }
-+ cairo_stroke (c);
-+ }
-+ x += graphs->area.paddingx + graphs_graph_width;
-+ }
-+ pos_x = (pos_x + 1) % graphs_graph_width;
-+}
-+
-+
-+int resize_graphs (void *obj)
-+{
-+ Graphs *graphs = obj;
-+ int ret = 0;
-+
-+ graphs->area.redraw = 1;
-+
-+ if (panel_horizontal) {
-+ int new_size = (2*graphs->area.paddingxlr) + (2*graphs->area.bg->border.width) +
-+ graphs_ngraphs * (graphs_graph_width) +
-+ (graphs_ngraphs - 1) * (graphs->area.paddingx);
-+ if (new_size != graphs->area.width) {
-+ graphs->area.width = new_size + 1;
-+ ret = 1;
-+ }
-+ }
-+
-+ return ret;
-+}
-+
-+
-+void graphs_action(int button)
-+{
-+ char *command = 0;
-+ switch (button) {
-+ case 1:
-+ command = graphs_lclick_command;
-+ break;
-+ case 3:
-+ command = graphs_rclick_command;
-+ break;
-+ }
-+ tint_exec(command);
-+}
-+
-diff -ruN tint2.orig/src/graphs/graphs.h tint2.mine/src/graphs/graphs.h
---- trunk/src/graphs/graphs.h 1970-01-01 01:00:00.000000000 +0100
-+++ trunk/src/graphs/graphs.h 2011-09-19 13:36:45.158311161 +0200
-@@ -0,0 +1,52 @@
-+/**************************************************************************
-+* Copyright (C) 2011 Francisco J. Vazquez (fjvazquezaraujo at gmail.com)
-+*
-+**************************************************************************/
-+
-+#ifndef GRAPHS_H
-+#define GRAPHS_H
-+
-+#include <sys/time.h>
-+#include "common.h"
-+#include "area.h"
-+
-+#define MAXGRAPHS 3
-+#define MAXCURVES 6
-+
-+typedef struct Graphs {
-+ // always start with area
-+ Area area;
-+
-+ char *netdev;
-+ Color g[MAXCURVES];
-+} Graphs;
-+
-+extern int graphs_enabled;
-+extern int graphs_ngraphs;
-+extern int graphs_ncurves;
-+extern int graphs_cpu_pos;
-+extern int graphs_mem_pos;
-+extern int graphs_net_pos;
-+extern int graphs_curves_per_pos[MAXGRAPHS];
-+extern int graphs_use_bars;
-+extern int graphs_graph_width;
-+extern char *graphs_netiface;
-+extern int graphs_netmaxup;
-+extern int graphs_netmaxdown;
-+extern char *graphs_lclick_command;
-+extern char *graphs_rclick_command;
-+
-+void default_graphs();
-+
-+void cleanup_graphs();
-+
-+void init_graphs();
-+void init_graphs_panel(void *panel);
-+
-+void draw_graphs (void *obj, cairo_t *c);
-+
-+int resize_graphs (void *obj);
-+
-+void graphs_action(int button);
-+
-+#endif
-diff -ruN tint2.orig/src/panel.c tint2.mine/src/panel.c
---- trunk/src/panel.c 2011-09-19 12:38:00.000000000 +0200
-+++ trunk/src/panel.c 2011-09-19 12:46:47.171791151 +0200
-@@ -141,6 +141,7 @@
- init_systray();
- init_launcher();
- init_clock();
-+ init_graphs();
- #ifdef ENABLE_BATTERY
- init_battery();
- #endif
-@@ -178,6 +179,8 @@
- init_launcher_panel(p);
- if (panel_items_order[k] == 'T')
- init_taskbar_panel(p);
-+ if (panel_items_order[k] == 'G')
-+ init_graphs_panel(p);
- #ifdef ENABLE_BATTERY
- if (panel_items_order[k] == 'B')
- init_battery_panel(p);
-@@ -398,6 +401,8 @@
- for (j=0 ; j < p->nb_desktop ; j++)
- p->area.list = g_slist_append(p->area.list, &p->taskbar[j]);
- }
-+ if (panel_items_order[k] == 'G')
-+ p->area.list = g_slist_append(p->area.list, &p->graphs);
- #ifdef ENABLE_BATTERY
- if (panel_items_order[k] == 'B')
- p->area.list = g_slist_append(p->area.list, &p->battery);
-@@ -676,6 +681,20 @@
- }
-
-
-+int click_graphs(Panel *panel, int x, int y)
-+{
-+ Graphs gr = panel->graphs;
-+ if (panel_horizontal) {
-+ if (gr.area.on_screen && x >= gr.area.posx && x <= (gr.area.posx + gr.area.width))
-+ return TRUE;
-+ } else {
-+ if (gr.area.on_screen && y >= gr.area.posy && y <= (gr.area.posy + gr.area.height))
-+ return TRUE;
-+ }
-+ return FALSE;
-+}
-+
-+
- int click_clock(Panel *panel, int x, int y)
- {
- Clock clk = panel->clock;
-diff -ruN tint2.orig/src/panel.h tint2.mine/src/panel.h
---- trunk/src/panel.h 2011-09-19 12:38:00.000000000 +0200
-+++ trunk/src/panel.h 2011-09-19 12:46:47.171791151 +0200
-@@ -16,6 +16,7 @@
-
- #include "common.h"
- #include "clock.h"
-+#include "graphs.h"
- #include "task.h"
- #include "taskbar.h"
- #include "systraybar.h"
-@@ -103,6 +104,8 @@
- // clock
- Clock clock;
-
-+ Graphs graphs;
-+
- // --------------------------------------------------
- // battery
- #ifdef ENABLE_BATTERY
-@@ -151,6 +154,7 @@
- Launcher *click_launcher (Panel *panel, int x, int y);
- LauncherIcon *click_launcher_icon (Panel *panel, int x, int y);
- int click_padding(Panel *panel, int x, int y);
-+int click_graphs(Panel *panel, int x, int y);
- int click_clock(Panel *panel, int x, int y);
- Area* click_area(Panel *panel, int x, int y);
-
-diff -ruN tint2.orig/src/tint.c tint2.mine/src/tint.c
---- trunk/src/tint.c 2011-09-19 12:38:00.000000000 +0200
-+++ trunk/src/tint.c 2011-09-19 12:46:47.172791139 +0200
-@@ -65,6 +65,7 @@
- default_battery();
- #endif
- default_clock();
-+ default_graphs();
- default_launcher();
- default_taskbar();
- default_tooltip();
-@@ -160,6 +161,7 @@
- cleanup_systray();
- cleanup_tooltip();
- cleanup_clock();
-+ cleanup_graphs();
- cleanup_launcher();
- #ifdef ENABLE_BATTERY
- cleanup_battery();
-@@ -427,6 +429,14 @@
- break;
- }
-
-+ if ( click_graphs(panel, e->xbutton.x, e->xbutton.y)) {
-+ graphs_action(e->xbutton.button);
-+ if (panel_layer == BOTTOM_LAYER)
-+ XLowerWindow (server.dsp, panel->main_win);
-+ task_drag = 0;
-+ return;
-+ }
-+
- if ( click_clock(panel, e->xbutton.x, e->xbutton.y)) {
- clock_action(e->xbutton.button);
- if (panel_layer == BOTTOM_LAYER)
More information about the arch-commits
mailing list