--- control-center-2.14.0/gnome-settings-daemon/gnome-settings-multimedia-keys.c 2006-03-24 17:11:43.000000000 +0100 +++ control-center-2.14.0.mod/gnome-settings-daemon/gnome-settings-multimedia-keys.c 2006-03-24 17:15:17.000000000 +0100 @@ -73,12 +73,26 @@ } Acme; enum { - ICON_MUTED, - ICON_LOUD, + ICON_VOLUME_MUTE, + ICON_VOLUME_0, + ICON_VOLUME_MIN, + ICON_VOLUME_MED, + ICON_VOLUME_MAX, ICON_BRIGHT, ICON_EJECT, }; +static const gchar *images[] = { + "stock_volume-mute", + "stock_volume-0", + "stock_volume-min", + "stock_volume-med", + "stock_volume-max", + "sunny", // this needs a better icon? + "media-eject", + NULL +}; + static void acme_error (char * msg) { @@ -148,13 +162,6 @@ } } -static char *images[] = { - PIXMAPSDIR "/gnome-speakernotes-muted.png", - PIXMAPSDIR "/gnome-speakernotes.png", - PIXMAPSDIR "/acme-brightness.png", - PIXMAPSDIR "/acme-eject.png", -}; - static void acme_image_set (Acme *acme, int icon) { @@ -166,7 +173,7 @@ if (icon > ICON_EJECT) g_assert_not_reached (); - gtk_image_set_from_file (GTK_IMAGE(image), images[icon]); + gtk_image_set_from_icon_name (GTK_IMAGE(image), images[icon], GTK_ICON_SIZE_DIALOG); } static void @@ -182,7 +189,7 @@ return; } acme->dialog = glade_xml_get_widget (acme->xml, "dialog"); - acme_image_set (acme, ICON_LOUD); + acme_image_set (acme, ICON_VOLUME_MAX); } } @@ -721,6 +728,7 @@ gboolean muted; int vol; int vol_step; + int volume_icon; if (acme->volobj == NULL) return; @@ -764,10 +772,16 @@ muted = acme_volume_get_mute(acme->volobj); dialog_init (acme); - acme_image_set (acme, muted ? ICON_MUTED : ICON_LOUD); vol = acme_volume_get_volume (acme->volobj); + volume_icon = 3 * vol / 100 + 2; + if (volume_icon <= 0 || vol <= 0) + volume_icon = ICON_VOLUME_MUTE; + if (volume_icon >= 5) + volume_icon = ICON_VOLUME_MAX; + acme_image_set (acme, muted ? ICON_VOLUME_MUTE : volume_icon); + progress = glade_xml_get_widget (acme->xml, "progressbar"); gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress), (double) vol / 100);