[gnome-panel] panel-util: move gtk_style_shade to clock-map.c



commit f4fd11926938815173facd7d13e197b5dac03471
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Tue Nov 29 21:12:55 2016 +0200

    panel-util: move gtk_style_shade to clock-map.c

 applets/clock/Makefile.am               |    3 -
 applets/clock/clock-map.c               |  173 ++++++++++++++++++++++++++-
 gnome-panel/libpanel-util/Makefile.am   |    2 -
 gnome-panel/libpanel-util/panel-color.c |  198 -------------------------------
 gnome-panel/libpanel-util/panel-color.h |   12 --
 5 files changed, 171 insertions(+), 217 deletions(-)
---
diff --git a/applets/clock/Makefile.am b/applets/clock/Makefile.am
index d69b724..c6a2850 100644
--- a/applets/clock/Makefile.am
+++ b/applets/clock/Makefile.am
@@ -60,8 +60,6 @@ clock_la_CPPFLAGS = \
        -DLOCALEDIR=\""$(localedir)"\" \
        -DCLOCK_EDS_ICONDIR="\"$(CLOCK_EDS_ICONDIR)\"" \
        -DGWEATHER_I_KNOW_THIS_IS_UNSTABLE \
-       -I$(srcdir)/../../gnome-panel \
-       -I$(top_builddir)/gnome-panel \
        -I$(top_srcdir) \
        $(AM_CPPFLAGS) \
        $(NULL)
@@ -77,7 +75,6 @@ clock_la_CFLAGS = \
 
 clock_la_LIBADD = \
        $(top_builddir)/libgnome-panel/libgnome-panel.la \
-       $(top_builddir)/gnome-panel/libpanel-util/libpanel-util.la \
        libsystem-timezone.la \
        $(CLOCK_LIBS) \
        $(CLOCK_EDS_LIBS) \
diff --git a/applets/clock/clock-map.c b/applets/clock/clock-map.c
index a40f30a..247949e 100644
--- a/applets/clock/clock-map.c
+++ b/applets/clock/clock-map.c
@@ -8,8 +8,6 @@
 #include <gtk/gtk.h>
 #include <math.h>
 
-#include <libpanel-util/panel-color.h>
-
 #include "clock-applet.h"
 #include "clock-map.h"
 #include "clock-sunpos.h"
@@ -74,6 +72,177 @@ static void clock_map_display (ClockMap *this);
 
 #define PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CLOCK_MAP_TYPE, ClockMapPrivate))
 
+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;
+       }
+}
+
+static void
+gtk_style_shade (GdkRGBA *a, GdkRGBA *b, gdouble k)
+{
+       gdouble red;
+       gdouble green;
+       gdouble blue;
+
+       red = a->red;
+       green = a->green;
+       blue = a->blue;
+
+       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;
+       b->green = green;
+       b->blue = blue;
+}
+
 ClockMap *
 clock_map_new (void)
 {
diff --git a/gnome-panel/libpanel-util/Makefile.am b/gnome-panel/libpanel-util/Makefile.am
index 532c5d5..737af57 100644
--- a/gnome-panel/libpanel-util/Makefile.am
+++ b/gnome-panel/libpanel-util/Makefile.am
@@ -30,8 +30,6 @@ libpanel_util_la_SOURCES =            \
        panel-dconf.h                   \
        panel-end-session-dialog.c \
        panel-end-session-dialog.h \
-       panel-color.c                   \
-       panel-color.h                   \
        panel-error.c                   \
        panel-error.h                   \
        panel-glib.c                    \


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]