comparison src/audacious/skin.c @ 3940:1dcfe91e241d

widget position 0,0 is possible
author Tomasz Mon <desowin@gmail.com>
date Thu, 15 Nov 2007 13:04:32 +0100
parents b352b7eb78c1
children 84235bd5f620
comparison
equal deleted inserted replaced
3939:d46d60247826 3940:1dcfe91e241d
1736 } else if (pixmap_id == SKIN_EQMAIN) { 1736 } else if (pixmap_id == SKIN_EQMAIN) {
1737 /* there are skins which EQMAIN doesn't include pixmap for equalizer graph */ 1737 /* there are skins which EQMAIN doesn't include pixmap for equalizer graph */
1738 if (pixmap->height != 313) /* skins with EQMAIN which is 313 in height seems to display ok */ 1738 if (pixmap->height != 313) /* skins with EQMAIN which is 313 in height seems to display ok */
1739 gtk_widget_hide(equalizerwin_graph); 1739 gtk_widget_hide(equalizerwin_graph);
1740 } else if (widget) { 1740 } else if (widget) {
1741 /* it's better to hide widget using SKIN_PLAYPAUSE/SKIN_POSBAR than display mess */
1742 if ((pixmap_id == SKIN_PLAYPAUSE && pixmap->width != 42) || pixmap_id == SKIN_POSBAR) {
1743 gtk_widget_hide(widget);
1744 return;
1745 }
1741 gint x, y; 1746 gint x, y;
1742 x = 0; 1747 x = -1;
1743 y = 0; 1748 y = -1;
1749
1744 if (gtk_widget_get_parent(widget) == SKINNED_WINDOW(mainwin)->fixed) { 1750 if (gtk_widget_get_parent(widget) == SKINNED_WINDOW(mainwin)->fixed) {
1745 1751 GList *iter;
1746 /* Perhaps we should get x and y from GtkFixedChild */ 1752 for (iter = GTK_FIXED (SKINNED_WINDOW(mainwin)->fixed)->children; iter; iter = g_list_next (iter)) {
1747 if (UI_SKINNED_IS_BUTTON(widget)) { 1753 GtkFixedChild *child_data = (GtkFixedChild *) iter->data;
1748 x = UI_SKINNED_BUTTON(widget)->x; 1754 if (child_data->widget == widget) {
1749 y = UI_SKINNED_BUTTON(widget)->y; 1755 x = child_data->x;
1750 } else if (UI_SKINNED_IS_HORIZONTAL_SLIDER(widget)) { 1756 y = child_data->y;
1751 x = UI_SKINNED_HORIZONTAL_SLIDER(widget)->x; 1757 break;
1752 y = UI_SKINNED_HORIZONTAL_SLIDER(widget)->y; 1758 }
1753 } 1759 }
1754 1760
1755 if (x && y) { 1761 if (x != -1 && y != -1) {
1756 /* Some skins include SKIN_VOLUME and/or SKIN_BALANCE 1762 /* Some skins include SKIN_VOLUME and/or SKIN_BALANCE
1757 without knobs */ 1763 without knobs */
1758 if (pixmap_id == SKIN_VOLUME || pixmap_id == SKIN_BALANCE) { 1764 if (pixmap_id == SKIN_VOLUME || pixmap_id == SKIN_BALANCE) {
1759 if (ysrc+height > 421 && xsrc+width <= pixmap->width) 1765 if (ysrc+height > 421 && xsrc+width <= pixmap->width)
1760 return; 1766 return;
1768 width = pixmap->width - xsrc; 1774 width = pixmap->width - xsrc;
1769 1775
1770 if (pixmap_id == SKIN_VOLUME) 1776 if (pixmap_id == SKIN_VOLUME)
1771 width = pixmap->width; 1777 width = pixmap->width;
1772 } 1778 }
1773 /* it's better to hide widget using SKIN_PLAYPAUSE than display mess */
1774 else if ((pixmap_id == SKIN_PLAYPAUSE && pixmap->width != 42) || pixmap_id == SKIN_POSBAR)
1775 gtk_widget_hide(widget);
1776 } else if (gtk_widget_get_parent(widget) == SKINNED_WINDOW(equalizerwin)->fixed) { 1779 } else if (gtk_widget_get_parent(widget) == SKINNED_WINDOW(equalizerwin)->fixed) {
1777 /* TODO */ 1780 /* TODO */
1778 } else if (gtk_widget_get_parent(widget) == SKINNED_WINDOW(playlistwin)->fixed) { 1781 } else if (gtk_widget_get_parent(widget) == SKINNED_WINDOW(playlistwin)->fixed) {
1779 /* TODO */ 1782 /* TODO */
1780 } 1783 }