changeset 2719:51fc44b99b58

use two GtkFixed in SkinnedWindow - normal and shaded
author Tomasz Mon <desowin@gmail.com>
date Fri, 20 Jun 2008 21:26:12 +0200
parents 37f75d10f46a
children e944ac38f0a0
files src/skins/ui_equalizer.c src/skins/ui_main.c src/skins/ui_playlist.c src/skins/ui_skin.c src/skins/ui_skinned_button.c src/skins/ui_skinned_button.h src/skins/ui_skinned_window.c src/skins/ui_skinned_window.h
diffstat 8 files changed, 220 insertions(+), 218 deletions(-) [+]
line wrap: on
line diff
--- a/src/skins/ui_equalizer.c	Tue Jun 17 20:08:47 2008 +0300
+++ b/src/skins/ui_equalizer.c	Fri Jun 20 21:26:12 2008 +0200
@@ -84,7 +84,9 @@
 
 static GtkWidget *equalizerwin_on, *equalizerwin_auto;
 
-static GtkWidget *equalizerwin_close, *equalizerwin_presets, *equalizerwin_shade;
+static GtkWidget *equalizerwin_close, *equalizerwin_shade;
+static GtkWidget *equalizerwin_shaded_close, *equalizerwin_shaded_shade;
+static GtkWidget *equalizerwin_presets;
 static GtkWidget *equalizerwin_preamp,*equalizerwin_bands[10];
 static GtkWidget *equalizerwin_volume, *equalizerwin_balance;
 
@@ -126,7 +128,7 @@
     }
 
     GList *iter;
-    for (iter = GTK_FIXED (SKINNED_WINDOW(equalizerwin)->fixed)->children; iter; iter = g_list_next (iter)) {
+    for (iter = GTK_FIXED (SKINNED_WINDOW(equalizerwin)->normal)->children; iter; iter = g_list_next (iter)) {
         GtkFixedChild *child_data = (GtkFixedChild *) iter->data;
         GtkWidget *child = child_data->widget;
         g_signal_emit_by_name(child, "toggle-scaled");
@@ -138,26 +140,14 @@
 equalizerwin_set_shade_menu_cb(gboolean shaded)
 {
     config.equalizer_shaded = shaded;
+    ui_skinned_window_set_shade(equalizerwin, shaded);
 
     if (shaded) {
         dock_shade(get_dock_window_list(), GTK_WINDOW(equalizerwin),
                    14 * EQUALIZER_SCALE_FACTOR);
-        ui_skinned_set_push_button_data(equalizerwin_shade, -1, 3, -1, 47);
-        ui_skinned_button_set_skin_index1(equalizerwin_shade, SKIN_EQ_EX);
-        ui_skinned_set_push_button_data(equalizerwin_close, 11, 38, 11, 47);
-        ui_skinned_button_set_skin_index(equalizerwin_close, SKIN_EQ_EX);
-        gtk_widget_show(equalizerwin_volume);
-        gtk_widget_show(equalizerwin_balance);
-    }
-    else {
+    } else {
         dock_shade(get_dock_window_list(), GTK_WINDOW(equalizerwin),
                    116 * EQUALIZER_SCALE_FACTOR);
-        ui_skinned_set_push_button_data(equalizerwin_shade, -1, 137, -1, 38);
-        ui_skinned_button_set_skin_index1(equalizerwin_shade, SKIN_EQMAIN);
-        ui_skinned_set_push_button_data(equalizerwin_close, 0, 116, 0, 125);
-        ui_skinned_button_set_skin_index(equalizerwin_close, SKIN_EQMAIN);
-        gtk_widget_hide(equalizerwin_volume);
-        gtk_widget_hide(equalizerwin_balance);
     }
 
     gtk_widget_shape_combine_mask(equalizerwin, skin_get_mask(aud_active_skin, SKIN_MASK_EQ + config.equalizer_shaded), 0, 0);
@@ -426,46 +416,56 @@
     gint i;
 
     equalizerwin_on = ui_skinned_button_new();
-    ui_skinned_toggle_button_setup(equalizerwin_on, SKINNED_WINDOW(equalizerwin)->fixed,
+    ui_skinned_toggle_button_setup(equalizerwin_on, SKINNED_WINDOW(equalizerwin)->normal,
                                    14, 18, 25, 12, 10, 119, 128, 119, 69, 119, 187, 119, SKIN_EQMAIN);
     g_signal_connect(equalizerwin_on, "clicked", equalizerwin_on_pushed, NULL);
     ui_skinned_button_set_inside(equalizerwin_on, aud_cfg->equalizer_active);
 
     equalizerwin_auto = ui_skinned_button_new();
-    ui_skinned_toggle_button_setup(equalizerwin_auto, SKINNED_WINDOW(equalizerwin)->fixed,
+    ui_skinned_toggle_button_setup(equalizerwin_auto, SKINNED_WINDOW(equalizerwin)->normal,
                                    39, 18, 33, 12, 35, 119, 153, 119, 94, 119, 212, 119, SKIN_EQMAIN);
     g_signal_connect(equalizerwin_auto, "clicked", equalizerwin_auto_pushed, NULL);
     ui_skinned_button_set_inside(equalizerwin_auto, aud_cfg->equalizer_autoload);
 
     equalizerwin_presets = ui_skinned_button_new();
-    ui_skinned_push_button_setup(equalizerwin_presets, SKINNED_WINDOW(equalizerwin)->fixed,
+    ui_skinned_push_button_setup(equalizerwin_presets, SKINNED_WINDOW(equalizerwin)->normal,
                                  217, 18, 44, 12, 224, 164, 224, 176, SKIN_EQMAIN);
     g_signal_connect(equalizerwin_presets, "clicked", equalizerwin_presets_pushed, NULL );
 
     equalizerwin_close = ui_skinned_button_new();
-    ui_skinned_push_button_setup(equalizerwin_close, SKINNED_WINDOW(equalizerwin)->fixed,
+    ui_skinned_push_button_setup(equalizerwin_close, SKINNED_WINDOW(equalizerwin)->normal,
                                  264, 3, 9, 9, 0, 116, 0, 125, SKIN_EQMAIN);
     g_signal_connect(equalizerwin_close, "clicked", equalizerwin_close_cb, NULL );
 
     equalizerwin_shade = ui_skinned_button_new();
-    ui_skinned_push_button_setup(equalizerwin_shade, SKINNED_WINDOW(equalizerwin)->fixed,
+    ui_skinned_push_button_setup(equalizerwin_shade, SKINNED_WINDOW(equalizerwin)->normal,
                                  254, 3, 9, 9, 254, 137, 1, 38, SKIN_EQMAIN);
     ui_skinned_button_set_skin_index2(equalizerwin_shade, SKIN_EQ_EX);
     g_signal_connect(equalizerwin_shade, "clicked", equalizerwin_shade_toggle, NULL );
 
-    equalizerwin_graph = ui_skinned_equalizer_graph_new(SKINNED_WINDOW(equalizerwin)->fixed, 86, 17);
+    equalizerwin_shaded_close = ui_skinned_button_new();
+    ui_skinned_push_button_setup(equalizerwin_shaded_close, SKINNED_WINDOW(equalizerwin)->shaded,
+                                 264, 3, 9, 9, 11, 38, 11, 47, SKIN_EQ_EX);
+    g_signal_connect(equalizerwin_shaded_close, "clicked", equalizerwin_close_cb, NULL );
 
-    equalizerwin_preamp = ui_skinned_equalizer_slider_new(SKINNED_WINDOW(equalizerwin)->fixed, 21, 38);
+    equalizerwin_shaded_shade = ui_skinned_button_new();
+    ui_skinned_push_button_setup(equalizerwin_shaded_shade, SKINNED_WINDOW(equalizerwin)->shaded,
+                                 254, 3, 9, 9, 254, 3, 1, 47, SKIN_EQ_EX);
+    g_signal_connect(equalizerwin_shaded_shade, "clicked", equalizerwin_shade_toggle, NULL );
+
+    equalizerwin_graph = ui_skinned_equalizer_graph_new(SKINNED_WINDOW(equalizerwin)->normal, 86, 17);
+
+    equalizerwin_preamp = ui_skinned_equalizer_slider_new(SKINNED_WINDOW(equalizerwin)->normal, 21, 38);
     ui_skinned_equalizer_slider_set_position(equalizerwin_preamp, aud_cfg->equalizer_preamp);
 
     for (i = 0; i < 10; i++) {
         equalizerwin_bands[i] =
-            ui_skinned_equalizer_slider_new(SKINNED_WINDOW(equalizerwin)->fixed, 78 + (i * 18), 38);
+            ui_skinned_equalizer_slider_new(SKINNED_WINDOW(equalizerwin)->normal, 78 + (i * 18), 38);
         ui_skinned_equalizer_slider_set_position(equalizerwin_bands[i], aud_cfg->equalizer_bands[i]);
     }
 
     equalizerwin_volume =
-        ui_skinned_horizontal_slider_new(SKINNED_WINDOW(equalizerwin)->fixed,
+        ui_skinned_horizontal_slider_new(SKINNED_WINDOW(equalizerwin)->shaded,
                                          61, 4, 97, 8, 1, 30, 1, 30, 3, 7, 4, 61, 0, 94,
                                          equalizerwin_volume_frame_cb, SKIN_EQ_EX);
     g_signal_connect(equalizerwin_volume, "motion", G_CALLBACK(equalizerwin_volume_motion_cb), NULL);
@@ -473,7 +473,7 @@
 
 
     equalizerwin_balance =
-        ui_skinned_horizontal_slider_new(SKINNED_WINDOW(equalizerwin)->fixed,
+        ui_skinned_horizontal_slider_new(SKINNED_WINDOW(equalizerwin)->shaded,
                        164, 4, 42, 8, 11, 30, 11, 30, 3, 7, 4, 164, 0, 39,
                        equalizerwin_balance_frame_cb, SKIN_EQ_EX);
     g_signal_connect(equalizerwin_balance, "motion", G_CALLBACK(equalizerwin_balance_motion_cb), NULL);
@@ -566,17 +566,6 @@
     ui_skinned_button_set_inside(mainwin_eq, TRUE);
     gtk_widget_show_all(equalizerwin);
 
-    if (!config.equalizer_shaded) {
-        gtk_widget_hide(equalizerwin_volume);
-        gtk_widget_hide(equalizerwin_balance);
-    }
-    else {
-        ui_skinned_set_push_button_data(equalizerwin_shade, -1, 3, -1, 47);
-        ui_skinned_button_set_skin_index1(equalizerwin_shade, SKIN_EQ_EX);
-        ui_skinned_set_push_button_data(equalizerwin_close, 11, 38, 11, 47);
-        ui_skinned_button_set_skin_index(equalizerwin_close, SKIN_EQ_EX);
-    }
-
     gtk_window_present(GTK_WINDOW(equalizerwin));
 }
 
--- a/src/skins/ui_main.c	Tue Jun 17 20:08:47 2008 +0300
+++ b/src/skins/ui_main.c	Fri Jun 20 21:26:12 2008 +0200
@@ -102,8 +102,8 @@
 static gint seek_state = MAINWIN_SEEK_NIL;
 static gint seek_initial_pos = 0;
 
-static GtkWidget *mainwin_menubtn;
-static GtkWidget *mainwin_minimize, *mainwin_shade, *mainwin_close;
+static GtkWidget *mainwin_menubtn, *mainwin_minimize, *mainwin_shade, *mainwin_close;
+static GtkWidget *mainwin_shaded_menubtn, *mainwin_shaded_minimize, *mainwin_shaded_shade, *mainwin_shaded_close;
 
 static GtkWidget *mainwin_rew, *mainwin_fwd;
 static GtkWidget *mainwin_eject;
@@ -185,6 +185,7 @@
 mainwin_set_shade_menu_cb(gboolean shaded)
 {
     config.player_shaded = shaded;
+    ui_skinned_window_set_shade(mainwin, shaded);
 
     if (shaded) {
         dock_shade(get_dock_window_list(), GTK_WINDOW(mainwin),
@@ -197,7 +198,6 @@
     }
 
     mainwin_refresh_hints();
-    ui_skinned_set_push_button_data(mainwin_shade, 0, config.player_shaded ? 27 : 18, 9, config.player_shaded ? 27 : 18);
     gtk_widget_shape_combine_mask(mainwin, skin_get_mask(aud_active_skin, SKIN_MASK_MAIN + config.player_shaded), 0, 0);
 }
 
@@ -461,16 +461,6 @@
             gtk_widget_hide(mainwin_stime_sec);
         }
     } else {
-        gtk_widget_hide(mainwin_srew);
-        gtk_widget_hide(mainwin_splay);
-        gtk_widget_hide(mainwin_spause);
-        gtk_widget_hide(mainwin_sstop);
-        gtk_widget_hide(mainwin_sfwd);
-        gtk_widget_hide(mainwin_seject);
-        gtk_widget_hide(mainwin_stime_min);
-        gtk_widget_hide(mainwin_stime_sec);
-        gtk_widget_hide(mainwin_svis);
-        gtk_widget_hide(mainwin_sposition);
         ui_vis_clear_data(mainwin_vis);
         if (config.vis_type != VIS_OFF)
             ui_vis_set_visible(mainwin_vis, TRUE);
@@ -486,7 +476,7 @@
 {
     /* positioning and size attributes */
     if (aud_active_skin->properties.mainwin_vis_x && aud_active_skin->properties.mainwin_vis_y)
-        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_vis), aud_active_skin->properties.mainwin_vis_x,
+        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_vis), aud_active_skin->properties.mainwin_vis_x,
                        aud_active_skin->properties.mainwin_vis_y);
 
     if (aud_active_skin->properties.mainwin_vis_width)
@@ -494,7 +484,7 @@
                                     UI_VIS(mainwin_vis)->height* MAINWIN_SCALE_FACTOR);
 
     if (aud_active_skin->properties.mainwin_text_x && aud_active_skin->properties.mainwin_text_y)
-        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_info), aud_active_skin->properties.mainwin_text_x,
+        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_info), aud_active_skin->properties.mainwin_text_x,
                        aud_active_skin->properties.mainwin_text_y);
 
     if (aud_active_skin->properties.mainwin_text_width) {
@@ -504,100 +494,100 @@
     }
 
     if (aud_active_skin->properties.mainwin_infobar_x && aud_active_skin->properties.mainwin_infobar_y)
-        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_othertext), aud_active_skin->properties.mainwin_infobar_x,
+        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_othertext), aud_active_skin->properties.mainwin_infobar_x,
                        aud_active_skin->properties.mainwin_infobar_y);
 
     if (aud_active_skin->properties.mainwin_number_0_x && aud_active_skin->properties.mainwin_number_0_y)
-        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_minus_num), aud_active_skin->properties.mainwin_number_0_x,
+        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_minus_num), aud_active_skin->properties.mainwin_number_0_x,
                        aud_active_skin->properties.mainwin_number_0_y);
 
     if (aud_active_skin->properties.mainwin_number_1_x && aud_active_skin->properties.mainwin_number_1_y)
-        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_10min_num), aud_active_skin->properties.mainwin_number_1_x,
+        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_10min_num), aud_active_skin->properties.mainwin_number_1_x,
                        aud_active_skin->properties.mainwin_number_1_y);
 
     if (aud_active_skin->properties.mainwin_number_2_x && aud_active_skin->properties.mainwin_number_2_y)
-        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_min_num), aud_active_skin->properties.mainwin_number_2_x,
+        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_min_num), aud_active_skin->properties.mainwin_number_2_x,
                        aud_active_skin->properties.mainwin_number_2_y);
 
     if (aud_active_skin->properties.mainwin_number_3_x && aud_active_skin->properties.mainwin_number_3_y)
-        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_10sec_num), aud_active_skin->properties.mainwin_number_3_x,
+        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_10sec_num), aud_active_skin->properties.mainwin_number_3_x,
                        aud_active_skin->properties.mainwin_number_3_y);
 
     if (aud_active_skin->properties.mainwin_number_4_x && aud_active_skin->properties.mainwin_number_4_y)
-        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_sec_num), aud_active_skin->properties.mainwin_number_4_x,
+        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_sec_num), aud_active_skin->properties.mainwin_number_4_x,
                        aud_active_skin->properties.mainwin_number_4_y);
 
     if (aud_active_skin->properties.mainwin_playstatus_x && aud_active_skin->properties.mainwin_playstatus_y)
-        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), mainwin_playstatus, aud_active_skin->properties.mainwin_playstatus_x,
+        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), mainwin_playstatus, aud_active_skin->properties.mainwin_playstatus_x,
                        aud_active_skin->properties.mainwin_playstatus_y);
 
     if (aud_active_skin->properties.mainwin_volume_x && aud_active_skin->properties.mainwin_volume_y)
-        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_volume), aud_active_skin->properties.mainwin_volume_x,
+        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_volume), aud_active_skin->properties.mainwin_volume_x,
                        aud_active_skin->properties.mainwin_volume_y);
 
     if (aud_active_skin->properties.mainwin_balance_x && aud_active_skin->properties.mainwin_balance_y)
-        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_balance), aud_active_skin->properties.mainwin_balance_x,
+        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_balance), aud_active_skin->properties.mainwin_balance_x,
                        aud_active_skin->properties.mainwin_balance_y);
 
     if (aud_active_skin->properties.mainwin_position_x && aud_active_skin->properties.mainwin_position_y)
-        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_position), aud_active_skin->properties.mainwin_position_x,
+        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_position), aud_active_skin->properties.mainwin_position_x,
                        aud_active_skin->properties.mainwin_position_y);
 
     if (aud_active_skin->properties.mainwin_previous_x && aud_active_skin->properties.mainwin_previous_y)
-        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), mainwin_rew, aud_active_skin->properties.mainwin_previous_x,
+        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), mainwin_rew, aud_active_skin->properties.mainwin_previous_x,
                        aud_active_skin->properties.mainwin_previous_y);
 
     if (aud_active_skin->properties.mainwin_play_x && aud_active_skin->properties.mainwin_play_y)
-        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_play), aud_active_skin->properties.mainwin_play_x,
+        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_play), aud_active_skin->properties.mainwin_play_x,
                        aud_active_skin->properties.mainwin_play_y);
 
     if (aud_active_skin->properties.mainwin_pause_x && aud_active_skin->properties.mainwin_pause_y)
-        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_pause), aud_active_skin->properties.mainwin_pause_x,
+        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_pause), aud_active_skin->properties.mainwin_pause_x,
                        aud_active_skin->properties.mainwin_pause_y);
 
     if (aud_active_skin->properties.mainwin_stop_x && aud_active_skin->properties.mainwin_stop_y)
-        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_stop), aud_active_skin->properties.mainwin_stop_x,
+        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_stop), aud_active_skin->properties.mainwin_stop_x,
                        aud_active_skin->properties.mainwin_stop_y);
 
     if (aud_active_skin->properties.mainwin_next_x && aud_active_skin->properties.mainwin_next_y)
-        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_fwd), aud_active_skin->properties.mainwin_next_x,
+        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_fwd), aud_active_skin->properties.mainwin_next_x,
                        aud_active_skin->properties.mainwin_next_y);
 
     if (aud_active_skin->properties.mainwin_eject_x && aud_active_skin->properties.mainwin_eject_y)
-        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_eject), aud_active_skin->properties.mainwin_eject_x,
+        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_eject), aud_active_skin->properties.mainwin_eject_x,
                        aud_active_skin->properties.mainwin_eject_y);
 
     if (aud_active_skin->properties.mainwin_eqbutton_x && aud_active_skin->properties.mainwin_eqbutton_y)
-        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_eq), aud_active_skin->properties.mainwin_eqbutton_x,
+        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_eq), aud_active_skin->properties.mainwin_eqbutton_x,
                        aud_active_skin->properties.mainwin_eqbutton_y);
 
     if (aud_active_skin->properties.mainwin_plbutton_x && aud_active_skin->properties.mainwin_plbutton_y)
-        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_pl), aud_active_skin->properties.mainwin_plbutton_x,
+        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_pl), aud_active_skin->properties.mainwin_plbutton_x,
                        aud_active_skin->properties.mainwin_plbutton_y);
 
     if (aud_active_skin->properties.mainwin_shuffle_x && aud_active_skin->properties.mainwin_shuffle_y)
-        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_shuffle), aud_active_skin->properties.mainwin_shuffle_x,
+        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_shuffle), aud_active_skin->properties.mainwin_shuffle_x,
                        aud_active_skin->properties.mainwin_shuffle_y);
 
     if (aud_active_skin->properties.mainwin_repeat_x && aud_active_skin->properties.mainwin_repeat_y)
-        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_repeat), aud_active_skin->properties.mainwin_repeat_x,
+        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_repeat), aud_active_skin->properties.mainwin_repeat_x,
                        aud_active_skin->properties.mainwin_repeat_y);
 
     if (aud_active_skin->properties.mainwin_about_x && aud_active_skin->properties.mainwin_about_y)
-        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_about), aud_active_skin->properties.mainwin_about_x,
+        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_about), aud_active_skin->properties.mainwin_about_x,
                        aud_active_skin->properties.mainwin_about_y);
 
     if (aud_active_skin->properties.mainwin_minimize_x && aud_active_skin->properties.mainwin_minimize_y)
-        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_minimize), config.player_shaded ? 244 : aud_active_skin->properties.mainwin_minimize_x,
+        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_minimize), config.player_shaded ? 244 : aud_active_skin->properties.mainwin_minimize_x,
                        config.player_shaded ? 3 : aud_active_skin->properties.mainwin_minimize_y);
 
     if (aud_active_skin->properties.mainwin_shade_x && aud_active_skin->properties.mainwin_shade_y)
-        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_shade), config.player_shaded ? 254 : aud_active_skin->properties.mainwin_shade_x,
-                       config.player_shaded ? 3 : aud_active_skin->properties.mainwin_shade_y);
+        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_shade), aud_active_skin->properties.mainwin_shade_x,
+                       aud_active_skin->properties.mainwin_shade_y);
 
     if (aud_active_skin->properties.mainwin_close_x && aud_active_skin->properties.mainwin_close_y)
-        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_close), config.player_shaded ? 264 : aud_active_skin->properties.mainwin_close_x,
-                       config.player_shaded ? 3 : aud_active_skin->properties.mainwin_close_y);
+        gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_close), aud_active_skin->properties.mainwin_close_x,
+                       aud_active_skin->properties.mainwin_close_y);
 
     mainwin_refresh_visible();
 
@@ -1482,7 +1472,7 @@
 void
 mainwin_spos_release_cb(GtkWidget *widget, gint pos)
 {
-    audacious_drct_seek(((aud_playlist_get_current_length(aud_playlist_get_active()) / 1000) *
+    audacious_drct_seek(((aud_playlist_get_current_length(aud_playlist_get_active())) *
                    (pos - 1)) / 12);
 }
 
@@ -1728,7 +1718,7 @@
                        aud_active_skin->properties.mainwin_width * config.scale_factor , aud_active_skin->properties.mainwin_height * config.scale_factor);
 
     GList *iter;
-    for (iter = GTK_FIXED (SKINNED_WINDOW(mainwin)->fixed)->children; iter; iter = g_list_next (iter)) {
+    for (iter = GTK_FIXED (SKINNED_WINDOW(mainwin)->normal)->children; iter; iter = g_list_next (iter)) {
         GtkFixedChild *child_data = (GtkFixedChild *) iter->data;
         GtkWidget *child = child_data->widget;
         g_signal_emit_by_name(child, "toggle-scaled");
@@ -2215,176 +2205,198 @@
 mainwin_create_widgets(void)
 {
     mainwin_menubtn = ui_skinned_button_new();
-    ui_skinned_push_button_setup(mainwin_menubtn, SKINNED_WINDOW(mainwin)->fixed,
+    ui_skinned_push_button_setup(mainwin_menubtn, SKINNED_WINDOW(mainwin)->normal,
                                  6, 3, 9, 9, 0, 0, 0, 9, SKIN_TITLEBAR);
     g_signal_connect(mainwin_menubtn, "clicked", mainwin_menubtn_cb, NULL );
 
     mainwin_minimize = ui_skinned_button_new();
-    ui_skinned_push_button_setup(mainwin_minimize, SKINNED_WINDOW(mainwin)->fixed,
+    ui_skinned_push_button_setup(mainwin_minimize, SKINNED_WINDOW(mainwin)->normal,
                                  244, 3, 9, 9, 9, 0, 9, 9, SKIN_TITLEBAR);
     g_signal_connect(mainwin_minimize, "clicked", mainwin_minimize_cb, NULL );
 
     mainwin_shade = ui_skinned_button_new();
-    ui_skinned_push_button_setup(mainwin_shade, SKINNED_WINDOW(mainwin)->fixed,
-                                 254, 3, 9, 9, 0,
-                                 config.player_shaded ? 27 : 18, 9, config.player_shaded ? 27 : 18, SKIN_TITLEBAR);
+    ui_skinned_push_button_setup(mainwin_shade, SKINNED_WINDOW(mainwin)->normal,
+                                 254, 3, 9, 9, 0, 18, 9, 18, SKIN_TITLEBAR);
     g_signal_connect(mainwin_shade, "clicked", mainwin_shade_toggle, NULL );
 
     mainwin_close = ui_skinned_button_new();
-    ui_skinned_push_button_setup(mainwin_close, SKINNED_WINDOW(mainwin)->fixed,
+    ui_skinned_push_button_setup(mainwin_close, SKINNED_WINDOW(mainwin)->normal,
                                  264, 3, 9, 9, 18, 0, 18, 9, SKIN_TITLEBAR);
     g_signal_connect(mainwin_close, "clicked", mainwin_quit_cb, NULL );
 
     mainwin_rew = ui_skinned_button_new();
-    ui_skinned_push_button_setup(mainwin_rew, SKINNED_WINDOW(mainwin)->fixed,
+    ui_skinned_push_button_setup(mainwin_rew, SKINNED_WINDOW(mainwin)->normal,
                                  16, 88, 23, 18, 0, 0, 0, 18, SKIN_CBUTTONS);
     g_signal_connect(mainwin_rew, "pressed", mainwin_rev_pushed, NULL);
     g_signal_connect(mainwin_rew, "released", mainwin_rev_release, NULL);
 
     mainwin_fwd = ui_skinned_button_new();
-    ui_skinned_push_button_setup(mainwin_fwd, SKINNED_WINDOW(mainwin)->fixed,
+    ui_skinned_push_button_setup(mainwin_fwd, SKINNED_WINDOW(mainwin)->normal,
                                  108, 88, 22, 18, 92, 0, 92, 18, SKIN_CBUTTONS);
     g_signal_connect(mainwin_fwd, "pressed", mainwin_fwd_pushed, NULL);
     g_signal_connect(mainwin_fwd, "released", mainwin_fwd_release, NULL);
 
     mainwin_play = ui_skinned_button_new();
-    ui_skinned_push_button_setup(mainwin_play, SKINNED_WINDOW(mainwin)->fixed,
+    ui_skinned_push_button_setup(mainwin_play, SKINNED_WINDOW(mainwin)->normal,
                                  39, 88, 23, 18, 23, 0, 23, 18, SKIN_CBUTTONS);
     g_signal_connect(mainwin_play, "clicked", mainwin_play_pushed, NULL );
 
     mainwin_pause = ui_skinned_button_new();
-    ui_skinned_push_button_setup(mainwin_pause, SKINNED_WINDOW(mainwin)->fixed,
+    ui_skinned_push_button_setup(mainwin_pause, SKINNED_WINDOW(mainwin)->normal,
                                  62, 88, 23, 18, 46, 0, 46, 18, SKIN_CBUTTONS);
     g_signal_connect(mainwin_pause, "clicked", audacious_drct_pause, NULL );
 
     mainwin_stop = ui_skinned_button_new();
-    ui_skinned_push_button_setup(mainwin_stop, SKINNED_WINDOW(mainwin)->fixed,
+    ui_skinned_push_button_setup(mainwin_stop, SKINNED_WINDOW(mainwin)->normal,
                                  85, 88, 23, 18, 69, 0, 69, 18, SKIN_CBUTTONS);
     g_signal_connect(mainwin_stop, "clicked", mainwin_stop_pushed, NULL );
 
     mainwin_eject = ui_skinned_button_new();
-    ui_skinned_push_button_setup(mainwin_eject, SKINNED_WINDOW(mainwin)->fixed,
+    ui_skinned_push_button_setup(mainwin_eject, SKINNED_WINDOW(mainwin)->normal,
                                  136, 89, 22, 16, 114, 0, 114, 16, SKIN_CBUTTONS);
     g_signal_connect(mainwin_eject, "clicked", mainwin_eject_pushed, NULL);
 
-    mainwin_srew = ui_skinned_button_new();
-    ui_skinned_small_button_setup(mainwin_srew, SKINNED_WINDOW(mainwin)->fixed, 169, 4, 8, 7);
-    g_signal_connect(mainwin_srew, "clicked", mainwin_aud_playlist_prev, NULL);
-
-    mainwin_splay = ui_skinned_button_new();
-    ui_skinned_small_button_setup(mainwin_splay, SKINNED_WINDOW(mainwin)->fixed, 177, 4, 10, 7);
-    g_signal_connect(mainwin_splay, "clicked", mainwin_play_pushed, NULL);
-
-    mainwin_spause = ui_skinned_button_new();
-    ui_skinned_small_button_setup(mainwin_spause, SKINNED_WINDOW(mainwin)->fixed, 187, 4, 10, 7);
-    g_signal_connect(mainwin_spause, "clicked", audacious_drct_pause, NULL);
-
-    mainwin_sstop = ui_skinned_button_new();
-    ui_skinned_small_button_setup(mainwin_sstop, SKINNED_WINDOW(mainwin)->fixed, 197, 4, 9, 7);
-    g_signal_connect(mainwin_sstop, "clicked", mainwin_stop_pushed, NULL);
-
-    mainwin_sfwd = ui_skinned_button_new();
-    ui_skinned_small_button_setup(mainwin_sfwd, SKINNED_WINDOW(mainwin)->fixed, 206, 4, 8, 7);
-    g_signal_connect(mainwin_sfwd, "clicked", mainwin_aud_playlist_next, NULL);
-
-    mainwin_seject = ui_skinned_button_new();
-    ui_skinned_small_button_setup(mainwin_seject, SKINNED_WINDOW(mainwin)->fixed, 216, 4, 9, 7);
-    g_signal_connect(mainwin_seject, "clicked", mainwin_eject_pushed, NULL);
-
     mainwin_shuffle = ui_skinned_button_new();
-    ui_skinned_toggle_button_setup(mainwin_shuffle, SKINNED_WINDOW(mainwin)->fixed,
+    ui_skinned_toggle_button_setup(mainwin_shuffle, SKINNED_WINDOW(mainwin)->normal,
                                    164, 89, 46, 15, 28, 0, 28, 15, 28, 30, 28, 45, SKIN_SHUFREP);
     g_signal_connect(mainwin_shuffle, "clicked", mainwin_shuffle_pushed_cb, NULL);
 
     mainwin_repeat = ui_skinned_button_new();
-    ui_skinned_toggle_button_setup(mainwin_repeat, SKINNED_WINDOW(mainwin)->fixed,
+    ui_skinned_toggle_button_setup(mainwin_repeat, SKINNED_WINDOW(mainwin)->normal,
                                    210, 89, 28, 15, 0, 0, 0, 15, 0, 30, 0, 45, SKIN_SHUFREP);
     g_signal_connect(mainwin_repeat, "clicked", mainwin_repeat_pushed_cb, NULL);
 
     mainwin_eq = ui_skinned_button_new();
-    ui_skinned_toggle_button_setup(mainwin_eq, SKINNED_WINDOW(mainwin)->fixed,
+    ui_skinned_toggle_button_setup(mainwin_eq, SKINNED_WINDOW(mainwin)->normal,
                                    219, 58, 23, 12, 0, 61, 46, 61, 0, 73, 46, 73, SKIN_SHUFREP);
     g_signal_connect(mainwin_eq, "clicked", mainwin_equalizer_pushed_cb, NULL);
     ui_skinned_button_set_inside(mainwin_eq, config.equalizer_visible);
 
     mainwin_pl = ui_skinned_button_new();
-    ui_skinned_toggle_button_setup(mainwin_pl, SKINNED_WINDOW(mainwin)->fixed,
+    ui_skinned_toggle_button_setup(mainwin_pl, SKINNED_WINDOW(mainwin)->normal,
                                    242, 58, 23, 12, 23, 61, 69, 61, 23, 73, 69, 73, SKIN_SHUFREP);
     g_signal_connect(mainwin_pl, "clicked", mainwin_playlist_pushed_cb, NULL);
     ui_skinned_button_set_inside(mainwin_pl, config.playlist_visible);
 
-    mainwin_info = ui_skinned_textbox_new(SKINNED_WINDOW(mainwin)->fixed, 112, 27, 153, 1, SKIN_TEXT);
+    mainwin_info = ui_skinned_textbox_new(SKINNED_WINDOW(mainwin)->normal, 112, 27, 153, 1, SKIN_TEXT);
     ui_skinned_textbox_set_scroll(mainwin_info, config.autoscroll);
     ui_skinned_textbox_set_xfont(mainwin_info, !config.mainwin_use_bitmapfont, config.mainwin_font);
     g_signal_connect(mainwin_info, "double-clicked", mainwin_info_double_clicked_cb, NULL);
     g_signal_connect(mainwin_info, "right-clicked", G_CALLBACK(mainwin_info_right_clicked_cb), NULL);
 
-    mainwin_othertext = ui_skinned_textbox_new(SKINNED_WINDOW(mainwin)->fixed, 112, 43, 153, 1, SKIN_TEXT);
-
-    mainwin_rate_text = ui_skinned_textbox_new(SKINNED_WINDOW(mainwin)->fixed, 111, 43, 15, 0, SKIN_TEXT);
-
-    mainwin_freq_text = ui_skinned_textbox_new(SKINNED_WINDOW(mainwin)->fixed, 156, 43, 10, 0, SKIN_TEXT);
-
-    mainwin_menurow = ui_skinned_menurow_new(SKINNED_WINDOW(mainwin)->fixed, 10, 22, 304, 0, 304, 44,  SKIN_TITLEBAR);
+    mainwin_othertext = ui_skinned_textbox_new(SKINNED_WINDOW(mainwin)->normal, 112, 43, 153, 1, SKIN_TEXT);
+
+    mainwin_rate_text = ui_skinned_textbox_new(SKINNED_WINDOW(mainwin)->normal, 111, 43, 15, 0, SKIN_TEXT);
+
+    mainwin_freq_text = ui_skinned_textbox_new(SKINNED_WINDOW(mainwin)->normal, 156, 43, 10, 0, SKIN_TEXT);
+
+    mainwin_menurow = ui_skinned_menurow_new(SKINNED_WINDOW(mainwin)->normal, 10, 22, 304, 0, 304, 44,  SKIN_TITLEBAR);
     g_signal_connect(mainwin_menurow, "change", G_CALLBACK(mainwin_mr_change), NULL);
     g_signal_connect(mainwin_menurow, "release", G_CALLBACK(mainwin_mr_release), NULL);
 
-    mainwin_volume = ui_skinned_horizontal_slider_new(SKINNED_WINDOW(mainwin)->fixed, 107, 57, 68,
+    mainwin_volume = ui_skinned_horizontal_slider_new(SKINNED_WINDOW(mainwin)->normal, 107, 57, 68,
                                                       13, 15, 422, 0, 422, 14, 11, 15, 0, 0, 51,
                                                       mainwin_volume_frame_cb, SKIN_VOLUME);
     g_signal_connect(mainwin_volume, "motion", G_CALLBACK(mainwin_volume_motion_cb), NULL);
     g_signal_connect(mainwin_volume, "release", G_CALLBACK(mainwin_volume_release_cb), NULL);
 
-    mainwin_balance = ui_skinned_horizontal_slider_new(SKINNED_WINDOW(mainwin)->fixed, 177, 57, 38,
+    mainwin_balance = ui_skinned_horizontal_slider_new(SKINNED_WINDOW(mainwin)->normal, 177, 57, 38,
                                                        13, 15, 422, 0, 422, 14, 11, 15, 9, 0, 24,
                                                        mainwin_balance_frame_cb, SKIN_BALANCE);
     g_signal_connect(mainwin_balance, "motion", G_CALLBACK(mainwin_balance_motion_cb), NULL);
     g_signal_connect(mainwin_balance, "release", G_CALLBACK(mainwin_balance_release_cb), NULL);
 
-    mainwin_monostereo = ui_skinned_monostereo_new(SKINNED_WINDOW(mainwin)->fixed, 212, 41, SKIN_MONOSTEREO);
-
-    mainwin_playstatus = ui_skinned_playstatus_new(SKINNED_WINDOW(mainwin)->fixed, 24, 28);
-
-    mainwin_minus_num = ui_skinned_number_new(SKINNED_WINDOW(mainwin)->fixed, 36, 26, SKIN_NUMBERS);
+    mainwin_monostereo = ui_skinned_monostereo_new(SKINNED_WINDOW(mainwin)->normal, 212, 41, SKIN_MONOSTEREO);
+
+    mainwin_playstatus = ui_skinned_playstatus_new(SKINNED_WINDOW(mainwin)->normal, 24, 28);
+
+    mainwin_minus_num = ui_skinned_number_new(SKINNED_WINDOW(mainwin)->normal, 36, 26, SKIN_NUMBERS);
     g_signal_connect(mainwin_minus_num, "button-press-event", G_CALLBACK(change_timer_mode_cb), NULL);
 
-    mainwin_10min_num = ui_skinned_number_new(SKINNED_WINDOW(mainwin)->fixed, 48, 26, SKIN_NUMBERS);
+    mainwin_10min_num = ui_skinned_number_new(SKINNED_WINDOW(mainwin)->normal, 48, 26, SKIN_NUMBERS);
     g_signal_connect(mainwin_10min_num, "button-press-event", G_CALLBACK(change_timer_mode_cb), NULL);
 
-    mainwin_min_num = ui_skinned_number_new(SKINNED_WINDOW(mainwin)->fixed, 60, 26, SKIN_NUMBERS);
+    mainwin_min_num = ui_skinned_number_new(SKINNED_WINDOW(mainwin)->normal, 60, 26, SKIN_NUMBERS);
     g_signal_connect(mainwin_min_num, "button-press-event", G_CALLBACK(change_timer_mode_cb), NULL);
 
-    mainwin_10sec_num = ui_skinned_number_new(SKINNED_WINDOW(mainwin)->fixed, 78, 26, SKIN_NUMBERS);
+    mainwin_10sec_num = ui_skinned_number_new(SKINNED_WINDOW(mainwin)->normal, 78, 26, SKIN_NUMBERS);
     g_signal_connect(mainwin_10sec_num, "button-press-event", G_CALLBACK(change_timer_mode_cb), NULL);
 
-    mainwin_sec_num = ui_skinned_number_new(SKINNED_WINDOW(mainwin)->fixed, 90, 26, SKIN_NUMBERS);
+    mainwin_sec_num = ui_skinned_number_new(SKINNED_WINDOW(mainwin)->normal, 90, 26, SKIN_NUMBERS);
     g_signal_connect(mainwin_sec_num, "button-press-event", G_CALLBACK(change_timer_mode_cb), NULL);
 
     mainwin_about = ui_skinned_button_new();
-    ui_skinned_small_button_setup(mainwin_about, SKINNED_WINDOW(mainwin)->fixed, 247, 83, 20, 25);
+    ui_skinned_small_button_setup(mainwin_about, SKINNED_WINDOW(mainwin)->normal, 247, 83, 20, 25);
     g_signal_connect(mainwin_about, "clicked", G_CALLBACK(action_about_audacious), NULL);
 
-    mainwin_vis = ui_vis_new(SKINNED_WINDOW(mainwin)->fixed, 24, 43, 76);
+    mainwin_vis = ui_vis_new(SKINNED_WINDOW(mainwin)->normal, 24, 43, 76);
     g_signal_connect(mainwin_vis, "button-press-event", G_CALLBACK(mainwin_vis_cb), NULL);
-    mainwin_svis = ui_svis_new(SKINNED_WINDOW(mainwin)->fixed, 79, 5);
-    g_signal_connect(mainwin_svis, "button-press-event", G_CALLBACK(mainwin_vis_cb), NULL);
-
-    mainwin_position = ui_skinned_horizontal_slider_new(SKINNED_WINDOW(mainwin)->fixed, 16, 72, 248,
+
+    mainwin_position = ui_skinned_horizontal_slider_new(SKINNED_WINDOW(mainwin)->normal, 16, 72, 248,
                                                         10, 248, 0, 278, 0, 29, 10, 10, 0, 0, 219,
                                                         NULL, SKIN_POSBAR);
     g_signal_connect(mainwin_position, "motion", G_CALLBACK(mainwin_position_motion_cb), NULL);
     g_signal_connect(mainwin_position, "release", G_CALLBACK(mainwin_position_release_cb), NULL);
 
-    mainwin_sposition = ui_skinned_horizontal_slider_new(SKINNED_WINDOW(mainwin)->fixed, 226, 4, 17,
+    /* shaded */
+
+    mainwin_shaded_menubtn = ui_skinned_button_new();
+    ui_skinned_push_button_setup(mainwin_shaded_menubtn, SKINNED_WINDOW(mainwin)->shaded,
+                                 6, 3, 9, 9, 0, 0, 0, 9, SKIN_TITLEBAR);
+    g_signal_connect(mainwin_shaded_menubtn, "clicked", mainwin_menubtn_cb, NULL );
+
+    mainwin_shaded_minimize = ui_skinned_button_new();
+    ui_skinned_push_button_setup(mainwin_shaded_minimize, SKINNED_WINDOW(mainwin)->shaded,
+                                 244, 3, 9, 9, 9, 0, 9, 9, SKIN_TITLEBAR);
+    g_signal_connect(mainwin_shaded_minimize, "clicked", mainwin_minimize_cb, NULL );
+
+    mainwin_shaded_shade = ui_skinned_button_new();
+    ui_skinned_push_button_setup(mainwin_shaded_shade, SKINNED_WINDOW(mainwin)->shaded,
+                                 254, 3, 9, 9, 0, 27, 9, 27, SKIN_TITLEBAR);
+    g_signal_connect(mainwin_shaded_shade, "clicked", mainwin_shade_toggle, NULL );
+
+    mainwin_shaded_close = ui_skinned_button_new();
+    ui_skinned_push_button_setup(mainwin_shaded_close, SKINNED_WINDOW(mainwin)->shaded,
+                                 264, 3, 9, 9, 18, 0, 18, 9, SKIN_TITLEBAR);
+    g_signal_connect(mainwin_shaded_close, "clicked", mainwin_quit_cb, NULL );
+
+    mainwin_srew = ui_skinned_button_new();
+    ui_skinned_small_button_setup(mainwin_srew, SKINNED_WINDOW(mainwin)->shaded, 169, 4, 8, 7);
+    g_signal_connect(mainwin_srew, "clicked", mainwin_aud_playlist_prev, NULL);
+
+    mainwin_splay = ui_skinned_button_new();
+    ui_skinned_small_button_setup(mainwin_splay, SKINNED_WINDOW(mainwin)->shaded, 177, 4, 10, 7);
+    g_signal_connect(mainwin_splay, "clicked", mainwin_play_pushed, NULL);
+
+    mainwin_spause = ui_skinned_button_new();
+    ui_skinned_small_button_setup(mainwin_spause, SKINNED_WINDOW(mainwin)->shaded, 187, 4, 10, 7);
+    g_signal_connect(mainwin_spause, "clicked", audacious_drct_pause, NULL);
+
+    mainwin_sstop = ui_skinned_button_new();
+    ui_skinned_small_button_setup(mainwin_sstop, SKINNED_WINDOW(mainwin)->shaded, 197, 4, 9, 7);
+    g_signal_connect(mainwin_sstop, "clicked", mainwin_stop_pushed, NULL);
+
+    mainwin_sfwd = ui_skinned_button_new();
+    ui_skinned_small_button_setup(mainwin_sfwd, SKINNED_WINDOW(mainwin)->shaded, 206, 4, 8, 7);
+    g_signal_connect(mainwin_sfwd, "clicked", mainwin_aud_playlist_next, NULL);
+
+    mainwin_seject = ui_skinned_button_new();
+    ui_skinned_small_button_setup(mainwin_seject, SKINNED_WINDOW(mainwin)->shaded, 216, 4, 9, 7);
+    g_signal_connect(mainwin_seject, "clicked", mainwin_eject_pushed, NULL);
+
+    mainwin_svis = ui_svis_new(SKINNED_WINDOW(mainwin)->shaded, 79, 5);
+    g_signal_connect(mainwin_svis, "button-press-event", G_CALLBACK(mainwin_vis_cb), NULL);
+
+    mainwin_sposition = ui_skinned_horizontal_slider_new(SKINNED_WINDOW(mainwin)->shaded, 226, 4, 17,
                                                          7, 17, 36, 17, 36, 3, 7, 36, 0, 1, 13,
                                                          mainwin_spos_frame_cb, SKIN_TITLEBAR);
     g_signal_connect(mainwin_sposition, "motion", G_CALLBACK(mainwin_spos_motion_cb), NULL);
     g_signal_connect(mainwin_sposition, "release", G_CALLBACK(mainwin_spos_release_cb), NULL);
 
-    mainwin_stime_min = ui_skinned_textbox_new(SKINNED_WINDOW(mainwin)->fixed, 130, 4, 15, FALSE, SKIN_TEXT);
+    mainwin_stime_min = ui_skinned_textbox_new(SKINNED_WINDOW(mainwin)->shaded, 130, 4, 15, FALSE, SKIN_TEXT);
     g_signal_connect(mainwin_stime_min, "button-press-event", G_CALLBACK(change_timer_mode_cb), NULL);
 
-    mainwin_stime_sec = ui_skinned_textbox_new(SKINNED_WINDOW(mainwin)->fixed, 147, 4, 10, FALSE, SKIN_TEXT);
+    mainwin_stime_sec = ui_skinned_textbox_new(SKINNED_WINDOW(mainwin)->shaded, 147, 4, 10, FALSE, SKIN_TEXT);
     g_signal_connect(mainwin_stime_sec, "button-press-event", G_CALLBACK(change_timer_mode_cb), NULL);
 }
 
--- a/src/skins/ui_playlist.c	Tue Jun 17 20:08:47 2008 +0300
+++ b/src/skins/ui_playlist.c	Fri Jun 20 21:26:12 2008 +0200
@@ -74,6 +74,7 @@
 
 static GtkWidget *playlistwin_list = NULL;
 static GtkWidget *playlistwin_shade, *playlistwin_close;
+static GtkWidget *playlistwin_shaded_shade, *playlistwin_shaded_close;
 
 static gboolean playlistwin_hint_flag = FALSE;
 
@@ -338,19 +339,14 @@
 playlistwin_set_shade(gboolean shaded)
 {
     config.playlist_shaded = shaded;
+    ui_skinned_window_set_shade(playlistwin, shaded);
 
     if (shaded) {
         playlistwin_set_sinfo_font(config.playlist_font);
         playlistwin_set_sinfo_scroll(config.autoscroll);
-        gtk_widget_show(playlistwin_sinfo);
-        ui_skinned_set_push_button_data(playlistwin_shade, 128, 45, 150, 42);
-        ui_skinned_set_push_button_data(playlistwin_close, 138, 45, -1, -1);
     }
     else {
-        gtk_widget_hide(playlistwin_sinfo);
         playlistwin_set_sinfo_scroll(FALSE);
-        ui_skinned_set_push_button_data(playlistwin_shade, 157, 3, 62, 42);
-        ui_skinned_set_push_button_data(playlistwin_close, 167, 3, -1, -1);
     }
 
     dock_shade(get_dock_window_list(), GTK_WINDOW(playlistwin),
@@ -644,6 +640,8 @@
 
     ui_skinned_button_move_relative(playlistwin_shade, dx, 0);
     ui_skinned_button_move_relative(playlistwin_close, dx, 0);
+    ui_skinned_button_move_relative(playlistwin_shaded_shade, dx, 0);
+    ui_skinned_button_move_relative(playlistwin_shaded_close, dx, 0);
     ui_skinned_textbox_move_relative(playlistwin_time_min, dx, dy);
     ui_skinned_textbox_move_relative(playlistwin_time_sec, dx, dy);
     ui_skinned_textbox_move_relative(playlistwin_info, dx, dy);
@@ -1366,57 +1364,58 @@
     /* This function creates the custom widgets used by the playlist editor */
 
     /* text box for displaying song title in shaded mode */
-    playlistwin_sinfo = ui_skinned_textbox_new(SKINNED_WINDOW(playlistwin)->fixed,
+    playlistwin_sinfo = ui_skinned_textbox_new(SKINNED_WINDOW(playlistwin)->shaded,
                                                4, 4, playlistwin_get_width() - 35, TRUE, SKIN_TEXT);
 
     playlistwin_set_sinfo_font(config.playlist_font);
 
+
+    playlistwin_shaded_shade = ui_skinned_button_new();
+    ui_skinned_push_button_setup(playlistwin_shaded_shade, SKINNED_WINDOW(playlistwin)->shaded,
+                                 playlistwin_get_width() - 21, 3,
+                                 9, 9, 128, 45, 150, 42, SKIN_PLEDIT);
+    g_signal_connect(playlistwin_shaded_shade, "clicked", playlistwin_shade_toggle, NULL );
+
+    playlistwin_shaded_close = ui_skinned_button_new();
+    ui_skinned_push_button_setup(playlistwin_shaded_close, SKINNED_WINDOW(playlistwin)->shaded,
+                                 playlistwin_get_width() - 11, 3, 9, 9, 138, 45, 52, 42, SKIN_PLEDIT);
+    g_signal_connect(playlistwin_shaded_close, "clicked", playlistwin_hide, NULL );
+
     playlistwin_shade = ui_skinned_button_new();
-    /* shade/unshade window push button */
-    if (config.playlist_shaded)
-        ui_skinned_push_button_setup(playlistwin_shade, SKINNED_WINDOW(playlistwin)->fixed,
-                                     playlistwin_get_width() - 21, 3,
-                                     9, 9, 128, 45, 150, 42, SKIN_PLEDIT);
-    else
-        ui_skinned_push_button_setup(playlistwin_shade, SKINNED_WINDOW(playlistwin)->fixed,
-                                     playlistwin_get_width() - 21, 3,
-                                     9, 9, 157, 3, 62, 42, SKIN_PLEDIT);
-
+    ui_skinned_push_button_setup(playlistwin_shade, SKINNED_WINDOW(playlistwin)->normal,
+                                 playlistwin_get_width() - 21, 3,
+                                 9, 9, 157, 3, 62, 42, SKIN_PLEDIT);
     g_signal_connect(playlistwin_shade, "clicked", playlistwin_shade_toggle, NULL );
 
-    /* close window push button */
     playlistwin_close = ui_skinned_button_new();
-    ui_skinned_push_button_setup(playlistwin_close, SKINNED_WINDOW(playlistwin)->fixed,
-                                 playlistwin_get_width() - 11, 3, 9, 9,
-                                 config.playlist_shaded ? 138 : 167,
-                                 config.playlist_shaded ? 45 : 3, 52, 42, SKIN_PLEDIT);
-
+    ui_skinned_push_button_setup(playlistwin_close, SKINNED_WINDOW(playlistwin)->normal,
+                                 playlistwin_get_width() - 11, 3, 9, 9, 167, 3, 52, 42, SKIN_PLEDIT);
     g_signal_connect(playlistwin_close, "clicked", playlistwin_hide, NULL );
 
     /* playlist list box */
-    playlistwin_list = ui_skinned_playlist_new(SKINNED_WINDOW(playlistwin)->fixed, 12, 20,
+    playlistwin_list = ui_skinned_playlist_new(SKINNED_WINDOW(playlistwin)->normal, 12, 20,
                              playlistwin_get_width() - 31,
                              config.playlist_height - 58);
     ui_skinned_playlist_set_font(config.playlist_font);
 
     /* playlist list box slider */
-    playlistwin_slider = ui_skinned_playlist_slider_new(SKINNED_WINDOW(playlistwin)->fixed, playlistwin_get_width() - 15,
+    playlistwin_slider = ui_skinned_playlist_slider_new(SKINNED_WINDOW(playlistwin)->normal, playlistwin_get_width() - 15,
                               20, config.playlist_height - 58);
 
     /* track time (minute) */
-    playlistwin_time_min = ui_skinned_textbox_new(SKINNED_WINDOW(playlistwin)->fixed,
+    playlistwin_time_min = ui_skinned_textbox_new(SKINNED_WINDOW(playlistwin)->normal,
                        playlistwin_get_width() - 82,
                        config.playlist_height - 15, 15, FALSE, SKIN_TEXT);
     g_signal_connect(playlistwin_time_min, "button-press-event", G_CALLBACK(change_timer_mode_cb), NULL);
 
     /* track time (second) */
-    playlistwin_time_sec = ui_skinned_textbox_new(SKINNED_WINDOW(playlistwin)->fixed,
+    playlistwin_time_sec = ui_skinned_textbox_new(SKINNED_WINDOW(playlistwin)->normal,
                        playlistwin_get_width() - 64,
                        config.playlist_height - 15, 10, FALSE, SKIN_TEXT);
     g_signal_connect(playlistwin_time_sec, "button-press-event", G_CALLBACK(change_timer_mode_cb), NULL);
 
     /* playlist information (current track length / total track length) */
-    playlistwin_info = ui_skinned_textbox_new(SKINNED_WINDOW(playlistwin)->fixed,
+    playlistwin_info = ui_skinned_textbox_new(SKINNED_WINDOW(playlistwin)->normal,
                        playlistwin_get_width() - 143,
                        config.playlist_height - 28, 90, FALSE, SKIN_TEXT);
 
@@ -1424,54 +1423,54 @@
 
     /* rewind button */
     playlistwin_srew = ui_skinned_button_new();
-    ui_skinned_small_button_setup(playlistwin_srew, SKINNED_WINDOW(playlistwin)->fixed,
+    ui_skinned_small_button_setup(playlistwin_srew, SKINNED_WINDOW(playlistwin)->normal,
                                   playlistwin_get_width() - 144,
                                   config.playlist_height - 16, 8, 7);
     g_signal_connect(playlistwin_srew, "clicked", local_playlist_prev, NULL);
 
     /* play button */
     playlistwin_splay = ui_skinned_button_new();
-    ui_skinned_small_button_setup(playlistwin_splay, SKINNED_WINDOW(playlistwin)->fixed,
+    ui_skinned_small_button_setup(playlistwin_splay, SKINNED_WINDOW(playlistwin)->normal,
                                   playlistwin_get_width() - 138,
                                   config.playlist_height - 16, 10, 7);
     g_signal_connect(playlistwin_splay, "clicked", mainwin_play_pushed, NULL);
 
     /* pause button */
     playlistwin_spause = ui_skinned_button_new();
-    ui_skinned_small_button_setup(playlistwin_spause, SKINNED_WINDOW(playlistwin)->fixed,
+    ui_skinned_small_button_setup(playlistwin_spause, SKINNED_WINDOW(playlistwin)->normal,
                                   playlistwin_get_width() - 128,
                                   config.playlist_height - 16, 10, 7);
     g_signal_connect(playlistwin_spause, "clicked", audacious_drct_pause, NULL);
 
     /* stop button */
     playlistwin_sstop = ui_skinned_button_new();
-    ui_skinned_small_button_setup(playlistwin_sstop, SKINNED_WINDOW(playlistwin)->fixed,
+    ui_skinned_small_button_setup(playlistwin_sstop, SKINNED_WINDOW(playlistwin)->normal,
                                   playlistwin_get_width() - 118,
                                   config.playlist_height - 16, 9, 7);
     g_signal_connect(playlistwin_sstop, "clicked", mainwin_stop_pushed, NULL);
 
     /* forward button */
     playlistwin_sfwd = ui_skinned_button_new();
-    ui_skinned_small_button_setup(playlistwin_sfwd, SKINNED_WINDOW(playlistwin)->fixed,
+    ui_skinned_small_button_setup(playlistwin_sfwd, SKINNED_WINDOW(playlistwin)->normal,
                                   playlistwin_get_width() - 109,
                                   config.playlist_height - 16, 8, 7);
     g_signal_connect(playlistwin_sfwd, "clicked", local_playlist_next, NULL);
 
     /* eject button */
     playlistwin_seject = ui_skinned_button_new();
-    ui_skinned_small_button_setup(playlistwin_seject, SKINNED_WINDOW(playlistwin)->fixed,
+    ui_skinned_small_button_setup(playlistwin_seject, SKINNED_WINDOW(playlistwin)->normal,
                                   playlistwin_get_width() - 100,
                                   config.playlist_height - 16, 9, 7);
     g_signal_connect(playlistwin_seject, "clicked", mainwin_eject_pushed, NULL);
 
     playlistwin_sscroll_up = ui_skinned_button_new();
-    ui_skinned_small_button_setup(playlistwin_sscroll_up, SKINNED_WINDOW(playlistwin)->fixed,
+    ui_skinned_small_button_setup(playlistwin_sscroll_up, SKINNED_WINDOW(playlistwin)->normal,
                                   playlistwin_get_width() - 14,
                                   config.playlist_height - 35, 8, 5);
     g_signal_connect(playlistwin_sscroll_up, "clicked", playlistwin_scroll_up_pushed, NULL);
 
     playlistwin_sscroll_down = ui_skinned_button_new();
-    ui_skinned_small_button_setup(playlistwin_sscroll_down, SKINNED_WINDOW(playlistwin)->fixed,
+    ui_skinned_small_button_setup(playlistwin_sscroll_down, SKINNED_WINDOW(playlistwin)->normal,
                                   playlistwin_get_width() - 14,
                                   config.playlist_height - 30, 8, 5);
     g_signal_connect(playlistwin_sscroll_down, "clicked", playlistwin_scroll_down_pushed, NULL);
--- a/src/skins/ui_skin.c	Tue Jun 17 20:08:47 2008 +0300
+++ b/src/skins/ui_skin.c	Fri Jun 20 21:26:12 2008 +0200
@@ -1753,9 +1753,9 @@
             x = -1;
             y = -1;
 
-            if (gtk_widget_get_parent(widget) == SKINNED_WINDOW(mainwin)->fixed) {
+            if (gtk_widget_get_parent(widget) == SKINNED_WINDOW(mainwin)->normal) {
                 GList *iter;
-                for (iter = GTK_FIXED (SKINNED_WINDOW(mainwin)->fixed)->children; iter; iter = g_list_next (iter)) {
+                for (iter = GTK_FIXED (SKINNED_WINDOW(mainwin)->normal)->children; iter; iter = g_list_next (iter)) {
                      GtkFixedChild *child_data = (GtkFixedChild *) iter->data;
                      if (child_data->widget == widget) {
                          x = child_data->x;
@@ -1779,10 +1779,10 @@
                     if (pixmap_id == SKIN_MONOSTEREO)
                         height = pixmap->height/2;
                 }
-            } else if (gtk_widget_get_parent(widget) == SKINNED_WINDOW(equalizerwin)->fixed) {
+            } else if (gtk_widget_get_parent(widget) == SKINNED_WINDOW(equalizerwin)->normal) {
                    if (!(pixmap_id == SKIN_EQMAIN && ysrc == 314)) /* equalizer preamp on equalizer graph */
                          gtk_widget_hide(widget);
-            } else if (gtk_widget_get_parent(widget) == SKINNED_WINDOW(playlistwin)->fixed) {
+            } else if (gtk_widget_get_parent(widget) == SKINNED_WINDOW(playlistwin)->normal) {
                    /* I haven't seen any skin with substandard playlist */
                    gtk_widget_hide(widget);
             }
--- a/src/skins/ui_skinned_button.c	Tue Jun 17 20:08:47 2008 +0300
+++ b/src/skins/ui_skinned_button.c	Fri Jun 20 21:26:12 2008 +0200
@@ -487,25 +487,6 @@
     gtk_widget_queue_draw(widget);
 }
 
-void ui_skinned_set_push_button_data(GtkWidget *button, gint nx, gint ny, gint px, gint py) {
-    UiSkinnedButtonPrivate *priv = UI_SKINNED_BUTTON_GET_PRIVATE(button);
-    if (nx > -1) priv->nx = nx;
-    if (ny > -1) priv->ny = ny;
-    if (px > -1) priv->px = px;
-    if (py > -1) priv->py = py;
-    gtk_widget_queue_draw(button);
-}
-
-void ui_skinned_button_set_skin_index(GtkWidget *button, SkinPixmapId si) {
-    UiSkinnedButtonPrivate *priv = UI_SKINNED_BUTTON_GET_PRIVATE (button);
-    priv->skin_index1 = priv->skin_index2 = si;
-}
-
-void ui_skinned_button_set_skin_index1(GtkWidget *button, SkinPixmapId si) {
-    UiSkinnedButtonPrivate *priv = UI_SKINNED_BUTTON_GET_PRIVATE (button);
-    priv->skin_index1 = si;
-}
-
 void ui_skinned_button_set_skin_index2(GtkWidget *button, SkinPixmapId si) {
     UiSkinnedButtonPrivate *priv = UI_SKINNED_BUTTON_GET_PRIVATE (button);
     priv->skin_index2 = si;
--- a/src/skins/ui_skinned_button.h	Tue Jun 17 20:08:47 2008 +0300
+++ b/src/skins/ui_skinned_button.h	Fri Jun 20 21:26:12 2008 +0200
@@ -62,11 +62,8 @@
 GType ui_skinned_button_get_type(void) G_GNUC_CONST;
 GtkWidget* ui_skinned_button_new();
 void ui_skinned_push_button_setup(GtkWidget *button, GtkWidget *fixed, gint x, gint y, gint w, gint h, gint nx, gint ny, gint px, gint py, SkinPixmapId si);
-void ui_skinned_set_push_button_data(GtkWidget *button, gint nx, gint ny, gint px, gint py);
 void ui_skinned_toggle_button_setup(GtkWidget *button, GtkWidget *fixed, gint x, gint y, gint w, gint h, gint nx, gint ny, gint px, gint py, gint pnx, gint pny, gint ppx, gint ppy, SkinPixmapId si);
 void ui_skinned_small_button_setup(GtkWidget *button, GtkWidget *fixed, gint x, gint y, gint w, gint h);
-void ui_skinned_button_set_skin_index(GtkWidget *button, SkinPixmapId si);
-void ui_skinned_button_set_skin_index1(GtkWidget *button, SkinPixmapId si);
 void ui_skinned_button_set_skin_index2(GtkWidget *button, SkinPixmapId si);
 void ui_skinned_button_move_relative(GtkWidget *button, gint x, gint y);
 void ui_skinned_button_set_inside(GtkWidget *widget, gboolean inside);
--- a/src/skins/ui_skinned_window.c	Tue Jun 17 20:08:47 2008 +0300
+++ b/src/skins/ui_skinned_window.c	Fri Jun 20 21:26:12 2008 +0200
@@ -257,15 +257,25 @@
     if (!strcmp(wmclass_name, "playlist"))
         SKINNED_WINDOW(widget)->type = WINDOW_PLAYLIST;
 
-    SKINNED_WINDOW(widget)->fixed = gtk_fixed_new();
-    gtk_fixed_set_has_window(GTK_FIXED(SKINNED_WINDOW(widget)->fixed), TRUE);
-    gtk_widget_add_events(SKINNED_WINDOW(widget)->fixed, GDK_ALL_EVENTS_MASK);
+    SKINNED_WINDOW(widget)->normal = gtk_fixed_new();
+    gtk_fixed_set_has_window(GTK_FIXED(SKINNED_WINDOW(widget)->normal), TRUE);
+    gtk_widget_add_events(SKINNED_WINDOW(widget)->normal, GDK_ALL_EVENTS_MASK);
 
-    gtk_container_add(GTK_CONTAINER(widget), GTK_WIDGET(SKINNED_WINDOW(widget)->fixed));
+    SKINNED_WINDOW(widget)->shaded = gtk_fixed_new();
+    gtk_fixed_set_has_window(GTK_FIXED(SKINNED_WINDOW(widget)->shaded), TRUE);
+    gtk_widget_add_events(SKINNED_WINDOW(widget)->shaded, GDK_ALL_EVENTS_MASK);
+
+    g_object_ref(SKINNED_WINDOW(widget)->normal);
+    g_object_ref(SKINNED_WINDOW(widget)->shaded);
+
+    gtk_container_add(GTK_CONTAINER(widget), GTK_WIDGET(SKINNED_WINDOW(widget)->normal));
 
     gtk_widget_realize(widget);
-    gtk_widget_realize(SKINNED_WINDOW(widget)->fixed);
-    g_signal_connect(SKINNED_WINDOW(widget)->fixed, "expose-event", G_CALLBACK(ui_skinned_window_expose), NULL);
+    gtk_widget_realize(SKINNED_WINDOW(widget)->normal);
+    gtk_widget_realize(SKINNED_WINDOW(widget)->shaded);
+
+    g_signal_connect(SKINNED_WINDOW(widget)->normal, "expose-event", G_CALLBACK(ui_skinned_window_expose), NULL);
+    g_signal_connect(SKINNED_WINDOW(widget)->shaded, "expose-event", G_CALLBACK(ui_skinned_window_expose), NULL);
 
     return widget;
 }
@@ -276,3 +286,15 @@
 
     gtk_widget_queue_draw(widget);
 }
+
+void ui_skinned_window_set_shade(GtkWidget *widget, gboolean shaded) {
+    if (shaded) {
+        gtk_container_remove(GTK_CONTAINER(widget), SKINNED_WINDOW(widget)->normal);
+        gtk_container_add(GTK_CONTAINER(widget), SKINNED_WINDOW(widget)->shaded);
+        gtk_widget_show_all(SKINNED_WINDOW(widget)->shaded);
+    } else {
+        gtk_container_remove(GTK_CONTAINER(widget), SKINNED_WINDOW(widget)->shaded);
+        gtk_container_add(GTK_CONTAINER(widget), SKINNED_WINDOW(widget)->normal);
+        gtk_widget_show_all(SKINNED_WINDOW(widget)->normal);
+    }
+}
--- a/src/skins/ui_skinned_window.h	Tue Jun 17 20:08:47 2008 +0300
+++ b/src/skins/ui_skinned_window.h	Fri Jun 20 21:26:12 2008 +0200
@@ -47,7 +47,8 @@
 
   gint x,y;
   gint type;
-  GtkWidget *fixed;
+  GtkWidget *normal;
+  GtkWidget *shaded;
 };
 
 struct _SkinnedWindowClass
@@ -57,6 +58,7 @@
 
 extern GType ui_skinned_window_get_type(void);
 extern GtkWidget *ui_skinned_window_new(const gchar *wmclass_name);
-extern void ui_skinned_window_draw_all(GtkWidget *widget);
+void ui_skinned_window_draw_all(GtkWidget *widget);
+void ui_skinned_window_set_shade(GtkWidget *widget, gboolean shaded);
 
 #endif