From 1f412120824af3cecc196412371276651a16c2ab Mon Sep 17 00:00:00 2001 From: Jean-Philippe Orsini Date: Tue, 22 Nov 2011 20:52:10 +0000 Subject: [PATCH] support of gtk2.18, inner space of the graph panel uses the theme background color --- NEWS | 5 +++++ README | 2 +- configure | 18 +++++++++--------- configure.ac | 2 +- po/Makefile.in | 2 +- src/graph.c | 44 ++++++++++++++++++++++++++++++++++---------- 6 files changed, 51 insertions(+), 22 deletions(-) diff --git a/NEWS b/NEWS index 48528a5..5369817 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,8 @@ +* v0.6.2.14 + +** psensor: support of gtk>=2.18 +** psensor: inner space of the graph using the theme background color + * v0.6.2.13 ** psensor can now be compiled and run with gtk3. diff --git a/README b/README index 42b5c78..988e7f3 100644 --- a/README +++ b/README @@ -78,7 +78,7 @@ Psensor compilation requires: * make/gcc * lm-sensors * library sensors4 - * library gtk2 (>= 2.22) + * library gtk2 (>= 2.18) * library gconf2 * help2man * library libnotify (optional) diff --git a/configure b/configure index df5a970..672c368 100755 --- a/configure +++ b/configure @@ -7397,12 +7397,12 @@ if test -n "$GTK_CFLAGS"; then pkg_cv_GTK_CFLAGS="$GTK_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.22\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.22") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.18\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.18") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.22" 2>/dev/null` + pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.18" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -7414,12 +7414,12 @@ if test -n "$GTK_LIBS"; then pkg_cv_GTK_LIBS="$GTK_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.22\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.22") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.18\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.18") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 2.22" 2>/dev/null` + pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 2.18" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -7440,14 +7440,14 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-2.0 >= 2.22" 2>&1` + GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-2.0 >= 2.18" 2>&1` else - GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-2.0 >= 2.22" 2>&1` + GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-2.0 >= 2.18" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GTK_PKG_ERRORS" >&5 - as_fn_error $? "Package requirements (gtk+-2.0 >= 2.22) were not met: + as_fn_error $? "Package requirements (gtk+-2.0 >= 2.18) were not met: $GTK_PKG_ERRORS diff --git a/configure.ac b/configure.ac index a09f48c..9d999b5 100644 --- a/configure.ac +++ b/configure.ac @@ -63,7 +63,7 @@ AC_SUBST(GTK_CFLAGS) AC_SUBST(GTK_LIBS) if test "$GTK_LIBS" == ""; then - PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.22) + PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.18) AM_CONDITIONAL(GTK, test -n "$GTK_LIBS") AC_SUBST(GTK_CFLAGS) AC_SUBST(GTK_LIBS) diff --git a/po/Makefile.in b/po/Makefile.in index 41acadd..71b369c 100644 --- a/po/Makefile.in +++ b/po/Makefile.in @@ -21,7 +21,7 @@ srcdir = . top_srcdir = .. -prefix = /usr +prefix = /usr/local exec_prefix = ${prefix} datarootdir = ${prefix}/share datadir = ${datarootdir} diff --git a/src/graph.c b/src/graph.c index bd67a9e..70b29df 100644 --- a/src/graph.c +++ b/src/graph.c @@ -73,11 +73,33 @@ static char *time_to_str(time_t s) static void draw_graph_background(cairo_t *cr, - int width, int height, struct config *config) + int g_xoff, int g_yoff, + int g_width, int g_height, + int width, int height, struct config *config, + GtkWidget *widget) { + GtkStyle *style; struct color *bgcolor = config->graph_bgcolor; + GdkColor *bg; - /* draw background */ + style = gtk_widget_get_style(widget); + + bg = &style->bg[GTK_STATE_NORMAL]; + + if (config->alpha_channel_enabled) + cairo_set_source_rgba(cr, + ((double)bg->red) / 65535, + ((double)bg->green) / 65535, + ((double)bg->blue) / 65535, + config->graph_bg_alpha); + else + cairo_set_source_rgb(cr, + ((double)bg->red) / 65535, + ((double)bg->green) / 65535, + ((double)bg->blue) / 65535); + + cairo_rectangle(cr, 0, 0, width, height); + cairo_fill(cr); if (config->alpha_channel_enabled) cairo_set_source_rgba(cr, bgcolor->f_red, @@ -88,16 +110,16 @@ draw_graph_background(cairo_t *cr, bgcolor->f_red, bgcolor->f_green, bgcolor->f_blue); - cairo_rectangle(cr, 0, 0, width, height); + + + cairo_rectangle(cr, g_xoff, g_yoff, g_width, g_height); cairo_fill(cr); } /* setup dash style */ static double dashes[] = { 1.0, /* ink */ - 1.0, /* skip */ - 1.0, /* ink */ - 1.0 /* skip */ + 2.0, /* skip */ }; static int ndash = sizeof(dashes) / sizeof(dashes[0]); @@ -110,8 +132,8 @@ static void draw_background_lines(cairo_t *cr, int i; /* draw background lines */ - cairo_set_dash(cr, dashes, ndash, 0); cairo_set_line_width(cr, 1); + cairo_set_dash(cr, dashes, ndash, 0); cairo_set_source_rgb(cr, color->f_red, color->f_green, color->f_blue); @@ -136,7 +158,6 @@ static void draw_background_lines(cairo_t *cr, /* back to normal line style */ cairo_set_dash(cr, 0, 0, 0); - } static void draw_sensor_curve(struct psensor *s, @@ -226,8 +247,6 @@ graph_update(struct psensor **sensors, cst = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height); cr = cairo_create(cst); - draw_graph_background(cr, width, height, config); - cairo_select_font_face(cr, "sans-serif", CAIRO_FONT_SLANT_NORMAL, @@ -254,6 +273,11 @@ graph_update(struct psensor **sensors, g_width = width - g_xoff - GRAPH_H_PADDING; + draw_graph_background(cr, + g_xoff, g_yoff, g_width, g_height, + width, height, config, + w_graph); + cairo_set_source_rgb(cr, fgcolor->f_red, fgcolor->f_green, fgcolor->f_blue); -- 2.7.4