From 6542370297facdf25fe591a8390c27beda751907 Mon Sep 17 00:00:00 2001 From: "google@craigoakes.com" Date: Tue, 11 Oct 2011 23:50:18 +0000 Subject: [PATCH] Added alpha, saturation, brightness control for launcher icons (Issue 365). git-svn-id: http://tint2.googlecode.com/svn/trunk@641 121b4492-b84c-0410-8b4c-0d4edfb3f3cc --- src/config.c | 6 ++++++ src/launcher/launcher.c | 11 +++++++++++ src/launcher/launcher.h | 3 +++ 3 files changed, 20 insertions(+) diff --git a/src/config.c b/src/config.c index 80d02c0..7c3517b 100644 --- a/src/config.c +++ b/src/config.c @@ -588,6 +588,12 @@ void add_entry (char *key, char *value) if (!icon_theme_name) icon_theme_name = strdup(value); } + else if (strcmp(key, "launcher_icon_asb") == 0) { + extract_values(value, &value1, &value2, &value3); + launcher_alpha = atoi(value1); + launcher_saturation = atoi(value2); + launcher_brightness = atoi(value3); + } /* Tooltip */ else if (strcmp (key, "tooltip_show_timeout") == 0) { diff --git a/src/launcher/launcher.c b/src/launcher/launcher.c index a813fea..fd85fed 100644 --- a/src/launcher/launcher.c +++ b/src/launcher/launcher.c @@ -34,6 +34,9 @@ int launcher_enabled; int launcher_max_icon_size; +int launcher_alpha; +int launcher_saturation; +int launcher_brightness; char *icon_theme_name; XSettingsClient *xsettings_client; @@ -52,6 +55,9 @@ void default_launcher() { launcher_enabled = 0; launcher_max_icon_size = 0; + launcher_alpha = 100; + launcher_saturation = 0; + launcher_brightness = 0; icon_theme_name = 0; xsettings_client = NULL; } @@ -301,6 +307,11 @@ Imlib_Image scale_icon(Imlib_Image original, int icon_size) if (original) { imlib_context_set_image (original); icon_scaled = imlib_create_cropped_scaled_image(0, 0, imlib_image_get_width(), imlib_image_get_height(), icon_size, icon_size); + imlib_context_set_image (icon_scaled); + imlib_image_set_has_alpha(1); + DATA32* data = imlib_image_get_data(); + adjust_asb(data, icon_size, icon_size, launcher_alpha, (float)launcher_saturation/100, (float)launcher_brightness/100); + imlib_image_put_back_data(data); } else { icon_scaled = imlib_create_image(icon_size, icon_size); imlib_context_set_image (icon_scaled); diff --git a/src/launcher/launcher.h b/src/launcher/launcher.h index 3a6abcf..79c6fd8 100644 --- a/src/launcher/launcher.h +++ b/src/launcher/launcher.h @@ -60,6 +60,9 @@ typedef struct IconTheme { extern int launcher_enabled; extern int launcher_max_icon_size; +extern int launcher_alpha; +extern int launcher_saturation; +extern int launcher_brightness; extern char *icon_theme_name; // theme name extern XSettingsClient *xsettings_client;