summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Ratajsky <[email protected]>2014-11-10 00:37:46 +0100
committerMichal Ratajsky <[email protected]>2014-11-10 00:37:46 +0100
commitc74020f5ef7d269fbff76bc09cdaa633389459fc (patch)
tree5cf0c1d33ef47040b7f4146b1ec015ef14d4c792
parent83839973d9a463296b8b19a310912ef40c1ac7d8 (diff)
downloadmate-media-c74020f5ef7d269fbff76bc09cdaa633389459fc.tar.bz2
mate-media-c74020f5ef7d269fbff76bc09cdaa633389459fc.tar.xz
Fix look of the peak meter on GTK3 and use a support function from libmate-desktop instead of custom copy&paste
-rw-r--r--configure.ac2
-rw-r--r--mate-volume-control/gvc-level-bar.c18
-rw-r--r--mate-volume-control/gvc-utils.c177
-rw-r--r--mate-volume-control/gvc-utils.h6
4 files changed, 11 insertions, 192 deletions
diff --git a/configure.ac b/configure.ac
index bc68823..0a0873a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -36,7 +36,7 @@ GLIB_REQUIRED_VERSION=2.36.0
GIO_REQUIRED_VERSION=2.36.0
CANBERRA_REQUIRED_VERSION=0.13
MATE_MIXER_REQUIRED_VERSION=1.9.1
-MATE_DESKTOP_REQUIRED_VERSION=1.9.1
+MATE_DESKTOP_REQUIRED_VERSION=1.9.3
MATE_PANEL_REQUIRED_VERSION=1.7.0
dnl=======================================================================
diff --git a/mate-volume-control/gvc-level-bar.c b/mate-volume-control/gvc-level-bar.c
index 029b346..289c47e 100644
--- a/mate-volume-control/gvc-level-bar.c
+++ b/mate-volume-control/gvc-level-bar.c
@@ -19,14 +19,15 @@
*
*/
-// XXX on gtk3 the last two squares don't get filled
-
#include <math.h>
#include <glib.h>
#include <glib/gi18n.h>
#include <glib-object.h>
#include <gtk/gtk.h>
+#define MATE_DESKTOP_USE_UNSTABLE_API
+#include <libmate-desktop/mate-desktop-utils.h>
+
#include "gvc-level-bar.h"
#include "gvc-utils.h"
@@ -181,13 +182,10 @@ bar_calc_layout (GvcLevelBar *bar)
gtk_style_context_get_background_color (context,
GTK_STATE_FLAG_SELECTED,
&bar->priv->layout.color_fg);
- gtk_style_context_get_color (context,
- GTK_STATE_FLAG_NORMAL,
- &bar->priv->layout.color_dark);
- gvc_color_shade (&bar->priv->layout.color_dark,
- &bar->priv->layout.color_dark,
- 0.7);
+ mate_desktop_gtk_style_get_dark_color (context,
+ GTK_STATE_FLAG_NORMAL,
+ &bar->priv->layout.color_dark);
#else
GtkStyle *style;
@@ -825,6 +823,10 @@ gvc_level_bar_class_init (GvcLevelBarClass *klass)
static void
gvc_level_bar_init (GvcLevelBar *bar)
{
+ GtkStyleContext *context = gtk_widget_get_style_context (GTK_WIDGET (bar));
+
+ gtk_style_context_add_class (context, GTK_STYLE_CLASS_LIST_ROW);
+
bar->priv = GVC_LEVEL_BAR_GET_PRIVATE (bar);
bar->priv->peak_adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (0.0,
diff --git a/mate-volume-control/gvc-utils.c b/mate-volume-control/gvc-utils.c
index d45a217..21a583f 100644
--- a/mate-volume-control/gvc-utils.c
+++ b/mate-volume-control/gvc-utils.c
@@ -156,180 +156,3 @@ gvc_channel_map_to_pretty_string (MateMixerStreamControl *control)
return NULL;
}
-
-#if GTK_CHECK_VERSION (3, 0, 0)
-/* Taken from gtkstyle.c */
-static void rgb_to_hls (gdouble *r, gdouble *g, gdouble *b);
-static void hls_to_rgb (gdouble *h, gdouble *l, gdouble *s);
-
-void
-gvc_color_shade (GdkRGBA *a, GdkRGBA *b, gdouble k)
-{
- gdouble red;
- gdouble green;
- gdouble blue;
-
- red = (gdouble) a->red / 65535.0;
- green = (gdouble) a->green / 65535.0;
- blue = (gdouble) a->blue / 65535.0;
-
- rgb_to_hls (&red, &green, &blue);
-
- green *= k;
- if (green > 1.0)
- green = 1.0;
- else if (green < 0.0)
- green = 0.0;
-
- blue *= k;
- if (blue > 1.0)
- blue = 1.0;
- else if (blue < 0.0)
- blue = 0.0;
-
- hls_to_rgb (&red, &green, &blue);
-
- b->red = red * 65535.0;
- b->green = green * 65535.0;
- b->blue = blue * 65535.0;
-}
-
-static void
-rgb_to_hls (gdouble *r, gdouble *g, gdouble *b)
-{
- gdouble min;
- gdouble max;
- gdouble red;
- gdouble green;
- gdouble blue;
- gdouble h, l, s;
- gdouble delta;
-
- red = *r;
- green = *g;
- blue = *b;
-
- if (red > green) {
- if (red > blue)
- max = red;
- else
- max = blue;
-
- if (green < blue)
- min = green;
- else
- min = blue;
- } else {
- if (green > blue)
- max = green;
- else
- max = blue;
-
- if (red < blue)
- min = red;
- else
- min = blue;
- }
-
- l = (max + min) / 2;
- s = 0;
- h = 0;
-
- if (max != min) {
- if (l <= 0.5)
- s = (max - min) / (max + min);
- else
- s = (max - min) / (2 - max - min);
-
- delta = max - min;
- if (red == max)
- h = (green - blue) / delta;
- else if (green == max)
- h = 2 + (blue - red) / delta;
- else if (blue == max)
- h = 4 + (red - green) / delta;
-
- h *= 60;
- if (h < 0.0)
- h += 360;
- }
-
- *r = h;
- *g = l;
- *b = s;
-}
-
-static void
-hls_to_rgb (gdouble *h, gdouble *l, gdouble *s)
-{
- gdouble hue;
- gdouble lightness;
- gdouble saturation;
- gdouble m1, m2;
- gdouble r, g, b;
-
- lightness = *l;
- saturation = *s;
-
- if (lightness <= 0.5)
- m2 = lightness * (1 + saturation);
- else
- m2 = lightness + saturation - lightness * saturation;
- m1 = 2 * lightness - m2;
-
- if (saturation == 0) {
- *h = lightness;
- *l = lightness;
- *s = lightness;
- } else {
- hue = *h + 120;
- while (hue > 360)
- hue -= 360;
- while (hue < 0)
- hue += 360;
-
- if (hue < 60)
- r = m1 + (m2 - m1) * hue / 60;
- else if (hue < 180)
- r = m2;
- else if (hue < 240)
- r = m1 + (m2 - m1) * (240 - hue) / 60;
- else
- r = m1;
-
- hue = *h;
- while (hue > 360)
- hue -= 360;
- while (hue < 0)
- hue += 360;
-
- if (hue < 60)
- g = m1 + (m2 - m1) * hue / 60;
- else if (hue < 180)
- g = m2;
- else if (hue < 240)
- g = m1 + (m2 - m1) * (240 - hue) / 60;
- else
- g = m1;
-
- hue = *h - 120;
- while (hue > 360)
- hue -= 360;
- while (hue < 0)
- hue += 360;
-
- if (hue < 60)
- b = m1 + (m2 - m1) * hue / 60;
- else if (hue < 180)
- b = m2;
- else if (hue < 240)
- b = m1 + (m2 - m1) * (240 - hue) / 60;
- else
- b = m1;
-
- *h = r;
- *l = g;
- *s = b;
- }
-}
-#endif
diff --git a/mate-volume-control/gvc-utils.h b/mate-volume-control/gvc-utils.h
index 4eca7a7..b39abb0 100644
--- a/mate-volume-control/gvc-utils.h
+++ b/mate-volume-control/gvc-utils.h
@@ -31,12 +31,6 @@ const gchar *gvc_channel_position_to_pulse_string (MateMixerChannelPosition pos
const gchar *gvc_channel_position_to_pretty_string (MateMixerChannelPosition position);
const gchar *gvc_channel_map_to_pretty_string (MateMixerStreamControl *control);
-#if GTK_CHECK_VERSION (3, 0, 0)
-void gvc_color_shade (GdkRGBA *a,
- GdkRGBA *b,
- gdouble k);
-#endif
-
G_END_DECLS
#endif /* __GVC_HELPERS_H */