]> Dogcows Code - chaz/tint2/commitdiff
Added alpha, saturation, brightness control for launcher icons (Issue 365).
authorUnknown <google@craigoakes.com>
Tue, 11 Oct 2011 23:50:18 +0000 (23:50 +0000)
committerUnknown <google@craigoakes.com>
Tue, 11 Oct 2011 23:50:18 +0000 (23:50 +0000)
src/config.c
src/launcher/launcher.c
src/launcher/launcher.h

index 80d02c0275b564bbaedc5347534ee8c150e01528..7c3517b43b71dda53ce4f96ccf1b8b12d09c0787 100644 (file)
@@ -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) {
index a813fea2982998f65a781a42973bd069af39d053..fd85fed0e531fe7e94cfae90b2effa9f94979bdc 100644 (file)
@@ -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);
index 3a6abcf87f7c496408b16ad151cab14ef66bae35..79c6fd88c65ebd6e57a878e83debd2dda1fbd653 100644 (file)
@@ -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;
 
This page took 0.03008 seconds and 4 git commands to generate.