diff src/audacious/skin.c @ 3889:8f8d7ac51b08

fix skins with not-standard sized numbers pixmap
author Tomasz Mon <desowin@gmail.com>
date Fri, 02 Nov 2007 11:59:42 +0100
parents 6cbb1a20b10b
children 0c0306a20e60
line wrap: on
line diff
--- a/src/audacious/skin.c	Thu Nov 01 19:50:20 2007 -0500
+++ b/src/audacious/skin.c	Fri Nov 02 11:59:42 2007 +0100
@@ -48,6 +48,7 @@
 #include "vfs.h"
 
 #include "ui_skinned_window.h"
+#include "ui_skinned_number.h"
 
 #define EXTENSION_TARGETS 7
 
@@ -1581,6 +1582,14 @@
     g_free(command);
 }
 
+static SkinPixmap *
+skin_get_pixmap(Skin * skin, SkinPixmapId map_id)
+{
+    g_return_val_if_fail(skin != NULL, NULL);
+    g_return_val_if_fail(map_id < SKIN_PIXMAP_COUNT, NULL);
+
+    return &skin->pixmaps[map_id];
+}
 
 gboolean
 skin_load(Skin * skin, const gchar * path)
@@ -1595,7 +1604,15 @@
     skin_lock(skin);
     error = skin_load_nolock(skin, path, FALSE);
     skin_unlock(skin);
-    
+
+    SkinPixmap *pixmap = skin_get_pixmap(skin, SKIN_NUMBERS);
+    if (pixmap) {
+        ui_skinned_number_set_size(mainwin_minus_num, 9, pixmap->height);
+        ui_skinned_number_set_size(mainwin_10min_num, 9, pixmap->height);
+        ui_skinned_number_set_size(mainwin_min_num, 9, pixmap->height);
+        ui_skinned_number_set_size(mainwin_10sec_num, 9, pixmap->height);
+        ui_skinned_number_set_size(mainwin_sec_num, 9, pixmap->height);
+    }
     return error;
 }
 
@@ -1618,16 +1635,6 @@
     skin_load_nolock(skin, skin->path, TRUE);
 }
 
-
-static SkinPixmap *
-skin_get_pixmap(Skin * skin, SkinPixmapId map_id)
-{
-    g_return_val_if_fail(skin != NULL, NULL);
-    g_return_val_if_fail(map_id < SKIN_PIXMAP_COUNT, NULL);
-
-    return &skin->pixmaps[map_id];
-}
-
 GdkBitmap *
 skin_get_mask(Skin * skin, SkinMaskId mi)
 {
@@ -1703,9 +1710,9 @@
     g_return_if_fail(pixmap->pixmap != NULL);
 
     if (xsrc+width > pixmap->width || ysrc+height > pixmap->height) {
-        if (pixmap_id == SKIN_NUMBERS)
+        if (pixmap_id == SKIN_NUMBERS) {
             xsrc = 90;
-        else if (pixmap_id == SKIN_VOLUME) {
+        } else if (pixmap_id == SKIN_VOLUME) {
             /* some winamp skins have too strait SKIN_VOLUME, so let's copy what's remain from SKIN_MAIN */
             gdk_draw_drawable(drawable, gc, skin_get_pixmap(bmp_active_skin, SKIN_MAIN)->pixmap,
                               skin->properties.mainwin_volume_x, skin->properties.mainwin_volume_y,