# HG changeset patch # User Tomasz Mon # Date 1194001182 -3600 # Node ID 8f8d7ac51b0846d224f12d8aeaa1e81fa8df22ad # Parent edd7da52849f0ea6204ec529b3f33a3f3a973380 fix skins with not-standard sized numbers pixmap diff -r edd7da52849f -r 8f8d7ac51b08 src/audacious/skin.c --- 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, diff -r edd7da52849f -r 8f8d7ac51b08 src/audacious/ui_skinned_number.c --- a/src/audacious/ui_skinned_number.c Thu Nov 01 19:50:20 2007 -0500 +++ b/src/audacious/ui_skinned_number.c Fri Nov 02 11:59:42 2007 +0100 @@ -227,6 +227,7 @@ } void ui_skinned_number_set_number(GtkWidget *widget, gint num) { + g_return_if_fail(UI_SKINNED_IS_NUMBER(widget)); UiSkinnedNumber *number = UI_SKINNED_NUMBER (widget); if (number->num == num) @@ -235,3 +236,13 @@ number->num = num; gtk_widget_queue_draw(GTK_WIDGET(number)); } + +void ui_skinned_number_set_size(GtkWidget *widget, gint width, gint height) { + g_return_if_fail(UI_SKINNED_IS_NUMBER(widget)); + UiSkinnedNumber *number = UI_SKINNED_NUMBER (widget); + + number->width = width; + number->height = height; + + gtk_widget_set_size_request(widget, width*(1+number->double_size), height*(1+number->double_size)); +} diff -r edd7da52849f -r 8f8d7ac51b08 src/audacious/ui_skinned_number.h --- a/src/audacious/ui_skinned_number.h Thu Nov 01 19:50:20 2007 -0500 +++ b/src/audacious/ui_skinned_number.h Fri Nov 02 11:59:42 2007 +0100 @@ -53,6 +53,7 @@ GtkWidget* ui_skinned_number_new (GtkWidget *fixed, gint x, gint y, SkinPixmapId si); GtkType ui_skinned_number_get_type(void); void ui_skinned_number_set_number(GtkWidget *widget, gint num); +void ui_skinned_number_set_size(GtkWidget *widget, gint width, gint height); #ifdef __cplusplus }