changeset 4218:f1074a07ec09

mostly works, but the VIS is broken, and the eq window is too large...more bugs need to be found
author Cristi Magherusan <majeru@atheme.org>
date Sun, 27 Jan 2008 23:00:32 +0200
parents 742f00832961
children 8a848179e244
files src/audacious/actions-mainwin.h src/audacious/main.c src/audacious/main.h src/audacious/skin.c src/audacious/ui/carbon-menubar.ui src/audacious/ui/mainwin.ui src/audacious/ui_main.c src/audacious/ui_manager.c src/audacious/ui_skinned_button.c src/audacious/ui_skinned_button.h src/audacious/ui_skinned_equalizer_graph.c src/audacious/ui_skinned_equalizer_graph.h src/audacious/ui_skinned_horizontal_slider.c src/audacious/ui_skinned_horizontal_slider.h src/audacious/ui_skinned_menurow.c src/audacious/ui_skinned_monostereo.c src/audacious/ui_skinned_monostereo.h src/audacious/ui_skinned_playstatus.c src/audacious/ui_skinned_playstatus.h src/audacious/ui_skinned_window.c src/audacious/ui_svis.c src/audacious/ui_vis.c src/audacious/util.c
diffstat 23 files changed, 126 insertions(+), 126 deletions(-) [+]
line wrap: on
line diff
--- a/src/audacious/actions-mainwin.h	Sun Jan 27 21:24:28 2008 +0200
+++ b/src/audacious/actions-mainwin.h	Sun Jan 27 23:00:32 2008 +0200
@@ -34,7 +34,7 @@
 void action_playback_shuffle(GtkToggleAction*);
 void action_stop_after_current_song(GtkToggleAction*);
 void action_view_always_on_top(GtkToggleAction*);
-void action_view_scale(GtkToggleAction*);
+void action_view_scaled(GtkToggleAction*);
 void action_view_easymove(GtkToggleAction*);
 void action_view_on_all_workspaces(GtkToggleAction*);
 void action_roll_up_equalizer(GtkToggleAction*);
--- a/src/audacious/main.c	Sun Jan 27 21:24:28 2008 +0200
+++ b/src/audacious/main.c	Sun Jan 27 23:00:32 2008 +0200
@@ -123,7 +123,7 @@
     10,                         /* snap distance */
     FALSE,                      /* real-time priority */
     FALSE, FALSE,               /* shuffle, repeat */
-    FALSE,                      /* UNUSED (double size) */
+    FALSE,                      /* scaling */
     TRUE,                       /* autoscroll */
     TRUE,                       /* analyzer peaks */
     FALSE,                      /* equalizer autoload */
@@ -144,7 +144,7 @@
     TRUE,                       /* dim titlebar */
     FALSE,                      /* get playlist info on load */
     TRUE,                       /* get playlist info on demand */
-    TRUE,                       /* UNUSED (equalizer doublesize linked) */
+    TRUE,                       /* equalizer scale linked */
     FALSE,                      /* sort jump to file */
     FALSE,                      /* use effect plugins */
     FALSE,                      /* always on top */
@@ -166,7 +166,7 @@
     0.0,                        /* equalizer preamp */
     {0.0, 0.0, 0.0, 0.0, 0.0,             /* equalizer bands */
      0.0, 0.0, 0.0, 0.0, 0.0},
-    1.0,                        /* GUI scale factor */
+    1.5,                        /* GUI scale factor, set to 1.5 for testing purposes --majeru */
     NULL,                       /* skin */
     NULL,                       /* output plugin */
     NULL,                       /* file selector path */
--- a/src/audacious/main.h	Sun Jan 27 21:24:28 2008 +0200
+++ b/src/audacious/main.h	Sun Jan 27 23:00:32 2008 +0200
@@ -39,9 +39,9 @@
 G_BEGIN_DECLS
 
 #define PLAYER_HEIGHT \
-  ((cfg.player_shaded ? MAINWIN_SHADED_HEIGHT : MAINWIN_HEIGHT) * (cfg.doublesize + 1))
+  ((cfg.player_shaded ? MAINWIN_SHADED_HEIGHT : MAINWIN_HEIGHT) * (cfg.scaled ? cfg.scale_factor : 1))
 #define PLAYER_WIDTH \
-  (MAINWIN_WIDTH * (cfg.scaled ? gui_scale_factor : 1))
+  (MAINWIN_WIDTH * (cfg.scaled ? cfg.scale_factor : 1))
 
 /* macro for debug print */
 #ifdef AUD_DEBUG
--- a/src/audacious/skin.c	Sun Jan 27 21:24:28 2008 +0200
+++ b/src/audacious/skin.c	Sun Jan 27 23:00:32 2008 +0200
@@ -1242,7 +1242,7 @@
                              const gchar * section,
                              GdkWindow * window,
                              gint width,
-                             gint height, gboolean doublesize)
+                             gint height, gboolean scale)
 {
     GdkBitmap *mask = NULL;
     GdkGC *gc = NULL;
@@ -1296,10 +1296,10 @@
             gpoints = g_new(GdkPoint, g_array_index(num, gint, i));
             for (k = 0; k < g_array_index(num, gint, i); k++) {
                 gpoints[k].x =
-                    g_array_index(point, gint, j + k * 2) * (1 + doublesize);
+                    g_array_index(point, gint, j + k * 2) * (scale ? cfg.scale_factor : 1 );
                 gpoints[k].y =
                     g_array_index(point, gint,
-                                  j + k * 2 + 1) * (1 + doublesize);
+                                  j + k * 2 + 1) * (scale ? cfg.scale_factor : 1);
             }
             j += k * 2;
             gdk_draw_polygon(mask, gc, TRUE, gpoints,
--- a/src/audacious/ui/carbon-menubar.ui	Sun Jan 27 21:24:28 2008 +0200
+++ b/src/audacious/ui/carbon-menubar.ui	Sun Jan 27 23:00:32 2008 +0200
@@ -65,7 +65,7 @@
 				<menuitem action="roll up playlist editor" />
 				<menuitem action="roll up equalizer" />
 				<separator />
-				<menuitem action="view scale" />
+				<menuitem action="view scaled" />
 				<menuitem action="view easy move" />
 			</menu>
 			<menu action="visualization">
--- a/src/audacious/ui/mainwin.ui	Sun Jan 27 21:24:28 2008 +0200
+++ b/src/audacious/ui/mainwin.ui	Sun Jan 27 23:00:32 2008 +0200
@@ -122,7 +122,7 @@
 				<menuitem action="roll up playlist editor" />
 				<menuitem action="roll up equalizer" />
 				<separator />
-				<menuitem action="view scale" />
+				<menuitem action="view scaled" />
 				<menuitem action="view easy move" />
 			</menu>
 			<separator />
--- a/src/audacious/ui_main.c	Sun Jan 27 21:24:28 2008 +0200
+++ b/src/audacious/ui_main.c	Sun Jan 27 23:00:32 2008 +0200
@@ -1996,7 +1996,7 @@
     case MENUROW_SCALE:
         gtk_toggle_action_set_active(
           GTK_TOGGLE_ACTION(gtk_action_group_get_action(
-          toggleaction_group_others , "view doublesize" )) ,
+          toggleaction_group_others , "view scaled" )) ,
           UI_SKINNED_MENUROW(mainwin_menurow)->scale_selected );
         break;
     case MENUROW_VISUALIZATION:
@@ -2736,7 +2736,7 @@
 }
 
 void
-action_view_scale( GtkToggleAction * action )
+action_view_scaled( GtkToggleAction * action )
 {
   UI_SKINNED_MENUROW(mainwin_menurow)->scale_selected = gtk_toggle_action_get_active( action );
   gtk_widget_queue_draw(mainwin_menurow);
--- a/src/audacious/ui_manager.c	Sun Jan 27 21:24:28 2008 +0200
+++ b/src/audacious/ui_manager.c	Sun Jan 27 23:00:32 2008 +0200
@@ -87,8 +87,8 @@
 	{ "roll up equalizer", NULL , N_("Roll up Equalizer"), "<Ctrl><Alt>W",
 	  N_("Roll up Equalizer"), G_CALLBACK(action_roll_up_equalizer) , FALSE },
 
-	{ "view scale", NULL , N_("Scale"), "<Ctrl>D",
-	  N_("DoubleSize"), G_CALLBACK(action_view_scale) , FALSE },
+	{ "view scaled", NULL , N_("Scale"), "<Ctrl>D",
+	  N_("DoubleSize"), G_CALLBACK(action_view_scaled) , FALSE },
 
 	{ "view easy move", NULL , N_("Easy Move"), "<Ctrl>E",
 	  N_("Easy Move"), G_CALLBACK(action_view_easymove) , FALSE }
--- a/src/audacious/ui_skinned_button.c	Sun Jan 27 21:24:28 2008 +0200
+++ b/src/audacious/ui_skinned_button.c	Sun Jan 27 23:00:32 2008 +0200
@@ -40,7 +40,7 @@
     gint             h;
     SkinPixmapId     skin_index1;
     SkinPixmapId     skin_index2;
-    gboolean         double_size;
+    gboolean         scaled;
     gint             move_x, move_y;
 
     gint             nx, ny, px, py;
@@ -73,7 +73,7 @@
 static void ui_skinned_button_clicked(UiSkinnedButton *button);
 static void ui_skinned_button_set_pressed (UiSkinnedButton *button, gboolean pressed);
 
-static void ui_skinned_button_toggle_doublesize(UiSkinnedButton *button);
+static void ui_skinned_button_toggle_scaled(UiSkinnedButton *button);
 
 static gint ui_skinned_button_enter_notify(GtkWidget *widget, GdkEventCrossing *event);
 static gint ui_skinned_button_leave_notify(GtkWidget *widget, GdkEventCrossing *event);
@@ -126,7 +126,7 @@
     klass->pressed = button_pressed;
     klass->released = button_released;
     klass->clicked = NULL;
-    klass->doubled = ui_skinned_button_toggle_doublesize;
+    klass->scaled = ui_skinned_button_toggle_scaled;
     klass->redraw = ui_skinned_button_redraw;
 
     button_signals[PRESSED] = 
@@ -145,8 +145,8 @@
                       gtk_marshal_VOID__VOID, G_TYPE_NONE, 0);
 
     button_signals[DOUBLED] = 
-        g_signal_new ("toggle-double-size", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
-                      G_STRUCT_OFFSET (UiSkinnedButtonClass, doubled), NULL, NULL,
+        g_signal_new ("toggle-scaled", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
+                      G_STRUCT_OFFSET (UiSkinnedButtonClass, scaled), NULL, NULL,
                       gtk_marshal_VOID__VOID, G_TYPE_NONE, 0);
 
     button_signals[REDRAW] = 
@@ -255,32 +255,32 @@
 
 static void ui_skinned_button_size_request(GtkWidget *widget, GtkRequisition *requisition) {
     UiSkinnedButtonPrivate *priv = UI_SKINNED_BUTTON_GET_PRIVATE(widget);
-    requisition->width = priv->w*(1+priv->double_size);
-    requisition->height = priv->h*(1+priv->double_size);
+    requisition->width = priv->w*(priv->scaled ? cfg.scale_factor : 1);
+    requisition->height = priv->h*(priv->scaled ? cfg.scale_factor : 1);
 }
 
 static void ui_skinned_button_size_allocate(GtkWidget *widget, GtkAllocation *allocation) {
     UiSkinnedButton *button = UI_SKINNED_BUTTON (widget);
     UiSkinnedButtonPrivate *priv = UI_SKINNED_BUTTON_GET_PRIVATE (button);
     widget->allocation = *allocation;
-    widget->allocation.x *= (1+priv->double_size);
-    widget->allocation.y *= (1+priv->double_size);
+    widget->allocation.x *= (priv->scaled ? cfg.scale_factor : 1);
+    widget->allocation.y *= (priv->scaled ? cfg.scale_factor : 1);
 
     if (GTK_WIDGET_REALIZED (widget))
     {
         if ( button->event_window != NULL )
-            gdk_window_move_resize(button->event_window, allocation->x*(1+priv->double_size), allocation->y*(1+priv->double_size), allocation->width, allocation->height);
+            gdk_window_move_resize(button->event_window, allocation->x*(priv->scaled ? cfg.scale_factor : 1), allocation->y*(priv->scaled ? cfg.scale_factor : 1), allocation->width, allocation->height);
         else
-            gdk_window_move_resize(widget->window, allocation->x*(1+priv->double_size), allocation->y*(1+priv->double_size), allocation->width, allocation->height);
+            gdk_window_move_resize(widget->window, allocation->x*(priv->scaled ? cfg.scale_factor : 1), allocation->y*(priv->scaled ? cfg.scale_factor : 1), allocation->width, allocation->height);
     }
 
-    if (button->x + priv->move_x == widget->allocation.x/(priv->double_size ? 2 : 1))
+    if (button->x + priv->move_x == widget->allocation.x/(priv->scaled ? cfg.scale_factor : 1))
         priv->move_x = 0;
-    if (button->y + priv->move_y == widget->allocation.y/(priv->double_size ? 2 : 1))
+    if (button->y + priv->move_y == widget->allocation.y/(priv->scaled ? cfg.scale_factor : 1))
         priv->move_y = 0;
 
-    button->x = widget->allocation.x/(priv->double_size ? 2 : 1);
-    button->y = widget->allocation.y/(priv->double_size ? 2 : 1);
+    button->x = widget->allocation.x/(priv->scaled ? cfg.scale_factor : 1);
+    button->y = widget->allocation.y/(priv->scaled ? cfg.scale_factor : 1);
 }
 
 static gboolean ui_skinned_button_expose(GtkWidget *widget, GdkEventExpose *event) {
@@ -329,7 +329,7 @@
             break;
     }
 
-    ui_skinned_widget_draw(widget, obj, priv->w, priv->h, priv->double_size);
+    ui_skinned_widget_draw(widget, obj, priv->w, priv->h, priv->scaled);
     g_object_unref(obj);
 
     return FALSE;
@@ -356,7 +356,7 @@
     sbutton->type = TYPE_PUSH;
     priv->skin_index1 = si;
     priv->skin_index2 = si;
-    priv->double_size = FALSE;
+    priv->scaled = FALSE;
 
     gtk_fixed_put(GTK_FIXED(fixed), GTK_WIDGET(button), sbutton->x, sbutton->y);
 }
@@ -380,7 +380,7 @@
     sbutton->type = TYPE_TOGGLE;
     priv->skin_index1 = si;
     priv->skin_index2 = si;
-    priv->double_size = FALSE;
+    priv->scaled = FALSE;
 
     gtk_fixed_put(GTK_FIXED(fixed), GTK_WIDGET(button), sbutton->x, sbutton->y);
 }
@@ -394,7 +394,7 @@
     sbutton->x = x;
     sbutton->y = y;
     sbutton->type = TYPE_SMALL;
-    priv->double_size = FALSE;
+    priv->scaled = FALSE;
 
     gtk_fixed_put(GTK_FIXED(fixed), GTK_WIDGET(button), sbutton->x, sbutton->y);
 }
@@ -484,12 +484,12 @@
     return FALSE;
 }
 
-static void ui_skinned_button_toggle_doublesize(UiSkinnedButton *button) {
+static void ui_skinned_button_toggle_scaled(UiSkinnedButton *button) {
     GtkWidget *widget = GTK_WIDGET (button);
     UiSkinnedButtonPrivate *priv = UI_SKINNED_BUTTON_GET_PRIVATE (button);
-    priv->double_size = !priv->double_size;
+    priv->scaled = !priv->scaled;
 
-    gtk_widget_set_size_request(widget, priv->w*(1+priv->double_size), priv->h*(1+priv->double_size));
+    gtk_widget_set_size_request(widget, priv->w*(priv->scaled ? cfg.scale_factor : 1), priv->h*(priv->scaled ? cfg.scale_factor : 1));
 
     gtk_widget_queue_draw(widget);
 }
--- a/src/audacious/ui_skinned_button.h	Sun Jan 27 21:24:28 2008 +0200
+++ b/src/audacious/ui_skinned_button.h	Sun Jan 27 23:00:32 2008 +0200
@@ -56,7 +56,7 @@
     void (* released)      (UiSkinnedButton *button);
     void (* clicked)       (UiSkinnedButton *button);
     void (* right_clicked) (UiSkinnedButton *button);
-    void (* doubled)       (UiSkinnedButton *button);
+    void (* scaled)        (UiSkinnedButton *button);
     void (* redraw)        (UiSkinnedButton *button);
 };
 
--- a/src/audacious/ui_skinned_equalizer_graph.c	Sun Jan 27 21:24:28 2008 +0200
+++ b/src/audacious/ui_skinned_equalizer_graph.c	Sun Jan 27 23:00:32 2008 +0200
@@ -40,7 +40,7 @@
 static void ui_skinned_equalizer_graph_size_request       (GtkWidget *widget, GtkRequisition *requisition);
 static void ui_skinned_equalizer_graph_size_allocate      (GtkWidget *widget, GtkAllocation *allocation);
 static gboolean ui_skinned_equalizer_graph_expose         (GtkWidget *widget, GdkEventExpose *event);
-static void ui_skinned_equalizer_graph_toggle_doublesize  (UiSkinnedEqualizerGraph *equalizer_graph);
+static void ui_skinned_equalizer_graph_toggle_scaled  (UiSkinnedEqualizerGraph *equalizer_graph);
 
 static GtkWidgetClass *parent_class = NULL;
 static guint equalizer_graph_signals[LAST_SIGNAL] = { 0 };
@@ -82,11 +82,11 @@
     widget_class->size_request = ui_skinned_equalizer_graph_size_request;
     widget_class->size_allocate = ui_skinned_equalizer_graph_size_allocate;
 
-    klass->doubled = ui_skinned_equalizer_graph_toggle_doublesize;
+    klass->scaled = ui_skinned_equalizer_graph_toggle_scaled;
 
     equalizer_graph_signals[DOUBLED] = 
-        g_signal_new ("toggle-double-size", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
-                      G_STRUCT_OFFSET (UiSkinnedEqualizerGraphClass, doubled), NULL, NULL,
+        g_signal_new ("toggle-scaled", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
+                      G_STRUCT_OFFSET (UiSkinnedEqualizerGraphClass, scaled), NULL, NULL,
                       gtk_marshal_VOID__VOID, G_TYPE_NONE, 0);
 }
 
@@ -101,7 +101,7 @@
     equalizer_graph->x = x;
     equalizer_graph->y = y;
     equalizer_graph->skin_index = SKIN_EQMAIN;
-    equalizer_graph->double_size = FALSE;
+    equalizer_graph->scaled = FALSE;
 
     gtk_fixed_put(GTK_FIXED(fixed), GTK_WIDGET(equalizer_graph), equalizer_graph->x, equalizer_graph->y);
 
@@ -153,21 +153,21 @@
 static void ui_skinned_equalizer_graph_size_request(GtkWidget *widget, GtkRequisition *requisition) {
     UiSkinnedEqualizerGraph *equalizer_graph = UI_SKINNED_EQUALIZER_GRAPH(widget);
 
-    requisition->width = equalizer_graph->width*(1+equalizer_graph->double_size);
-    requisition->height = equalizer_graph->height*(1+equalizer_graph->double_size);
+    requisition->width = equalizer_graph->width*(equalizer_graph->scaled ? cfg.scale_factor : 1);
+    requisition->height = equalizer_graph->height*(equalizer_graph->scaled ? cfg.scale_factor : 1);
 }
 
 static void ui_skinned_equalizer_graph_size_allocate(GtkWidget *widget, GtkAllocation *allocation) {
     UiSkinnedEqualizerGraph *equalizer_graph = UI_SKINNED_EQUALIZER_GRAPH (widget);
 
     widget->allocation = *allocation;
-    widget->allocation.x *= (1+equalizer_graph->double_size);
-    widget->allocation.y *= (1+equalizer_graph->double_size);
+    widget->allocation.x *= (equalizer_graph->scaled ? cfg.scale_factor : 1);
+    widget->allocation.y *= (equalizer_graph->scaled ? cfg.scale_factor : 1);
     if (GTK_WIDGET_REALIZED (widget))
         gdk_window_move_resize(widget->window, widget->allocation.x, widget->allocation.y, allocation->width, allocation->height);
 
-    equalizer_graph->x = widget->allocation.x/(equalizer_graph->double_size ? 2 : 1);
-    equalizer_graph->y = widget->allocation.y/(equalizer_graph->double_size ? 2 : 1);
+    equalizer_graph->x = widget->allocation.x/(equalizer_graph->scaled ? cfg.scale_factor : 1);
+    equalizer_graph->y = widget->allocation.y/(equalizer_graph->scaled ? cfg.scale_factor : 1);
 }
 
 void
@@ -289,19 +289,19 @@
         }
     }
 
-    ui_skinned_widget_draw(widget, obj, equalizer_graph->width, equalizer_graph->height, equalizer_graph->double_size);
+    ui_skinned_widget_draw(widget, obj, equalizer_graph->width, equalizer_graph->height, equalizer_graph->scaled);
 
     g_object_unref(obj);
 
     return FALSE;
 }
 
-static void ui_skinned_equalizer_graph_toggle_doublesize(UiSkinnedEqualizerGraph *equalizer_graph) {
+static void ui_skinned_equalizer_graph_toggle_scaled(UiSkinnedEqualizerGraph *equalizer_graph) {
     GtkWidget *widget = GTK_WIDGET (equalizer_graph);
 
-    equalizer_graph->double_size = !equalizer_graph->double_size;
-    gtk_widget_set_size_request(widget, equalizer_graph->width*(1+equalizer_graph->double_size),
-                                        equalizer_graph->height*(1+equalizer_graph->double_size));
+    equalizer_graph->scaled = !equalizer_graph->scaled;
+    gtk_widget_set_size_request(widget, equalizer_graph->width*(equalizer_graph->scaled ? cfg.scale_factor : 1),
+                                        equalizer_graph->height*(equalizer_graph->scaled ? cfg.scale_factor : 1));
 
     gtk_widget_queue_draw(GTK_WIDGET(equalizer_graph));
 }
--- a/src/audacious/ui_skinned_equalizer_graph.h	Sun Jan 27 21:24:28 2008 +0200
+++ b/src/audacious/ui_skinned_equalizer_graph.h	Sun Jan 27 23:00:32 2008 +0200
@@ -46,12 +46,12 @@
 
     gint             x, y, width, height;
     SkinPixmapId     skin_index;
-    gboolean         double_size;
+    gboolean         scaled;
 };
 
 struct _UiSkinnedEqualizerGraphClass {
     GtkWidgetClass          parent_class;
-    void (* doubled)        (UiSkinnedEqualizerGraph *eq_graph);
+    void (* scaled)        (UiSkinnedEqualizerGraph *eq_graph);
 };
 
 GtkWidget* ui_skinned_equalizer_graph_new(GtkWidget *fixed, gint x, gint y);
--- a/src/audacious/ui_skinned_horizontal_slider.c	Sun Jan 27 21:24:28 2008 +0200
+++ b/src/audacious/ui_skinned_horizontal_slider.c	Sun Jan 27 23:00:32 2008 +0200
@@ -40,7 +40,7 @@
 
 struct _UiSkinnedHorizontalSliderPrivate {
     SkinPixmapId     skin_index;
-    gboolean         double_size;
+    gboolean         scaled;
     gint             frame, frame_offset, frame_height, min, max;
     gint             knob_width, knob_height;
     gint             position;
@@ -58,7 +58,7 @@
 static gboolean ui_skinned_horizontal_slider_button_press   (GtkWidget *widget, GdkEventButton *event);
 static gboolean ui_skinned_horizontal_slider_button_release (GtkWidget *widget, GdkEventButton *event);
 static gboolean ui_skinned_horizontal_slider_motion_notify  (GtkWidget *widget, GdkEventMotion *event);
-static void ui_skinned_horizontal_slider_toggle_doublesize  (UiSkinnedHorizontalSlider *horizontal_slider);
+static void ui_skinned_horizontal_slider_toggle_scaled  (UiSkinnedHorizontalSlider *horizontal_slider);
 
 static GtkWidgetClass *parent_class = NULL;
 static guint horizontal_slider_signals[LAST_SIGNAL] = { 0 };
@@ -105,7 +105,7 @@
 
     klass->motion = NULL;
     klass->release = NULL;
-    klass->doubled = ui_skinned_horizontal_slider_toggle_doublesize;
+    klass->scaled = ui_skinned_horizontal_slider_toggle_scaled;
 
     horizontal_slider_signals[MOTION] = 
         g_signal_new ("motion", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
@@ -118,8 +118,8 @@
                       gtk_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT);
 
     horizontal_slider_signals[DOUBLED] = 
-        g_signal_new ("toggle-double-size", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
-                      G_STRUCT_OFFSET (UiSkinnedHorizontalSliderClass, doubled), NULL, NULL,
+        g_signal_new ("toggle-scaled", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
+                      G_STRUCT_OFFSET (UiSkinnedHorizontalSliderClass, scaled), NULL, NULL,
                       gtk_marshal_VOID__VOID, G_TYPE_NONE, 0);
 
     g_type_class_add_private (gobject_class, sizeof (UiSkinnedHorizontalSliderPrivate));
@@ -206,8 +206,8 @@
 static void ui_skinned_horizontal_slider_size_request(GtkWidget *widget, GtkRequisition *requisition) {
     UiSkinnedHorizontalSliderPrivate *priv = UI_SKINNED_HORIZONTAL_SLIDER_GET_PRIVATE(widget);
 
-    requisition->width = priv->width*(1+priv->double_size);
-    requisition->height = priv->height*(1+priv->double_size);
+    requisition->width = priv->width*(priv->scaled ? cfg.scale_factor : 1);
+    requisition->height = priv->height*(priv->scaled ? cfg.scale_factor : 1);
 }
 
 static void ui_skinned_horizontal_slider_size_allocate(GtkWidget *widget, GtkAllocation *allocation) {
@@ -215,19 +215,19 @@
     UiSkinnedHorizontalSliderPrivate *priv = UI_SKINNED_HORIZONTAL_SLIDER_GET_PRIVATE(horizontal_slider);
 
     widget->allocation = *allocation;
-    widget->allocation.x *= (1+priv->double_size);
-    widget->allocation.y *= (1+priv->double_size);
+    widget->allocation.x *= (priv->scaled ? cfg.scale_factor : 1);
+    widget->allocation.y *= (priv->scaled ? cfg.scale_factor : 1);
 
     if (priv->knob_height == priv->height)
-        priv->knob_height = allocation->height/(priv->double_size ? 2 : 1);
-    priv->width = allocation->width/(priv->double_size ? 2 : 1);
-    priv->height = allocation->height/(priv->double_size ? 2 : 1);
+        priv->knob_height = allocation->height/(priv->scaled ? cfg.scale_factor : 1);
+    priv->width = allocation->width/(priv->scaled ? cfg.scale_factor : 1);
+    priv->height = allocation->height/(priv->scaled ? cfg.scale_factor : 1);
 
     if (GTK_WIDGET_REALIZED (widget))
         gdk_window_move_resize(widget->window, widget->allocation.x, widget->allocation.y, allocation->width, allocation->height);
 
-    horizontal_slider->x = widget->allocation.x/(priv->double_size ? 2 : 1);
-    horizontal_slider->y = widget->allocation.y/(priv->double_size ? 2 : 1);
+    horizontal_slider->x = widget->allocation.x/(priv->scaled ? cfg.scale_factor : 1);
+    horizontal_slider->y = widget->allocation.y/(priv->scaled ? cfg.scale_factor : 1);
 }
 
 static gboolean ui_skinned_horizontal_slider_expose(GtkWidget *widget, GdkEventExpose *event) {
@@ -263,7 +263,7 @@
                          ((priv->height - priv->knob_height) / 2),
                          priv->knob_width, priv->knob_height);
 
-    ui_skinned_widget_draw(widget, obj, priv->width, priv->height, priv->double_size);
+    ui_skinned_widget_draw(widget, obj, priv->width, priv->height, priv->scaled);
 
     g_object_unref(obj);
 
@@ -282,10 +282,10 @@
         if (event->button == 1) {
             gint x;
 
-            x = event->x - (priv->knob_width / (priv->double_size ? 1 : 2));
+            x = event->x - (priv->knob_width / (priv->scaled ? 1 : cfg.scale_factor));
             hs->pressed = TRUE;
 
-            priv->position = x/(1+priv->double_size);
+            priv->position = x/(priv->scaled ? cfg.scale_factor : 1);
             if (priv->position < priv->min)
                 priv->position = priv->min;
             if (priv->position > priv->max)
@@ -331,8 +331,8 @@
     if (hs->pressed) {
         gint x;
 
-        x = event->x - (priv->knob_width / (priv->double_size ? 1 : 2));
-        priv->position = x/(1+priv->double_size);
+        x = event->x - (priv->knob_width / (priv->scaled ? 1 : cfg.scale_factor));
+        priv->position = x/(priv->scaled ? cfg.scale_factor : 1);
 
         if (priv->position < priv->min)
             priv->position = priv->min;
@@ -350,13 +350,13 @@
     return TRUE;
 }
 
-static void ui_skinned_horizontal_slider_toggle_doublesize(UiSkinnedHorizontalSlider *horizontal_slider) {
+static void ui_skinned_horizontal_slider_toggle_scaled(UiSkinnedHorizontalSlider *horizontal_slider) {
     GtkWidget *widget = GTK_WIDGET (horizontal_slider);
     UiSkinnedHorizontalSliderPrivate *priv = UI_SKINNED_HORIZONTAL_SLIDER_GET_PRIVATE(horizontal_slider);
 
-    priv->double_size = !priv->double_size;
+    priv->scaled = !priv->scaled;
 
-    gtk_widget_set_size_request(widget, priv->width*(1+priv->double_size), priv->height*(1+priv->double_size));
+    gtk_widget_set_size_request(widget, priv->width*(priv->scaled ? cfg.scale_factor : 1), priv->height*(priv->scaled ? cfg.scale_factor : 1));
 
     gtk_widget_queue_draw(GTK_WIDGET(horizontal_slider));
 }
--- a/src/audacious/ui_skinned_horizontal_slider.h	Sun Jan 27 21:24:28 2008 +0200
+++ b/src/audacious/ui_skinned_horizontal_slider.h	Sun Jan 27 23:00:32 2008 +0200
@@ -52,7 +52,7 @@
     GtkWidgetClass    parent_class;
     void (* motion)   (UiSkinnedHorizontalSlider *horizontal_slider);
     void (* release)  (UiSkinnedHorizontalSlider *horizontal_slider);
-    void (* doubled)  (UiSkinnedHorizontalSlider *horizontal_slider);
+    void (* scaled)  (UiSkinnedHorizontalSlider *horizontal_slider);
     void (* redraw)   (UiSkinnedHorizontalSlider *horizontal_slider);
 };
 GtkWidget* ui_skinned_horizontal_slider_new(GtkWidget *fixed, gint x, gint y, gint w, gint h, gint knx, gint kny,
--- a/src/audacious/ui_skinned_menurow.c	Sun Jan 27 21:24:28 2008 +0200
+++ b/src/audacious/ui_skinned_menurow.c	Sun Jan 27 23:00:32 2008 +0200
@@ -199,8 +199,8 @@
     if (GTK_WIDGET_REALIZED (widget))
         gdk_window_move_resize(widget->window, widget->allocation.x, widget->allocation.y, allocation->width, allocation->height);
 
-    menurow->x = widget->allocation.x/(menurow->scaled ? 2 : 1);
-    menurow->y = widget->allocation.y/(menurow->scaled ? 2 : 1);
+    menurow->x = widget->allocation.x/(menurow->scaled ? cfg.scale_factor : 1);
+    menurow->y = widget->allocation.y/(menurow->scaled ? cfg.scale_factor : 1);
 }
 
 static gboolean ui_skinned_menurow_expose(GtkWidget *widget, GdkEventExpose *event) {
@@ -246,8 +246,8 @@
 static MenuRowItem menurow_find_selected(UiSkinnedMenurow * mr, gint x, gint y) {
     MenuRowItem ret = MENUROW_NONE;
 
-    x = x/(mr->scaled ? 2 : 1);
-    y = y/(mr->scaled ? 2 : 1);
+    x = x/(mr->scaled ? cfg.scale_factor : 1);
+    y = y/(mr->scaled ? cfg.scale_factor : 1);
     if (x > 0 && x < 8) {
         if (y >= 0 && y <= 10)
             ret = MENUROW_OPTIONS;
--- a/src/audacious/ui_skinned_monostereo.c	Sun Jan 27 21:24:28 2008 +0200
+++ b/src/audacious/ui_skinned_monostereo.c	Sun Jan 27 23:00:32 2008 +0200
@@ -41,7 +41,7 @@
 static void ui_skinned_monostereo_size_request       (GtkWidget *widget, GtkRequisition *requisition);
 static void ui_skinned_monostereo_size_allocate      (GtkWidget *widget, GtkAllocation *allocation);
 static gboolean ui_skinned_monostereo_expose         (GtkWidget *widget, GdkEventExpose *event);
-static void ui_skinned_monostereo_toggle_doublesize  (UiSkinnedMonoStereo *monostereo);
+static void ui_skinned_monostereo_toggle_scaled      (UiSkinnedMonoStereo *monostereo);
 
 static GtkWidgetClass *parent_class = NULL;
 static guint monostereo_signals[LAST_SIGNAL] = { 0 };
@@ -83,11 +83,11 @@
     widget_class->size_request = ui_skinned_monostereo_size_request;
     widget_class->size_allocate = ui_skinned_monostereo_size_allocate;
 
-    klass->doubled = ui_skinned_monostereo_toggle_doublesize;
+    klass->scaled = ui_skinned_monostereo_toggle_scaled;
 
     monostereo_signals[DOUBLED] = 
-        g_signal_new ("toggle-double-size", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
-                      G_STRUCT_OFFSET (UiSkinnedMonoStereoClass, doubled), NULL, NULL,
+        g_signal_new ("toggle-scaled", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
+                      G_STRUCT_OFFSET (UiSkinnedMonoStereoClass, scaled), NULL, NULL,
                       gtk_marshal_VOID__VOID, G_TYPE_NONE, 0);
 }
 
@@ -102,7 +102,7 @@
     monostereo->x = x;
     monostereo->y = y;
     monostereo->skin_index = si;
-    monostereo->double_size = FALSE;
+    monostereo->scaled = FALSE;
 
     gtk_fixed_put(GTK_FIXED(fixed), GTK_WIDGET(monostereo), monostereo->x, monostereo->y);
 
@@ -154,21 +154,21 @@
 static void ui_skinned_monostereo_size_request(GtkWidget *widget, GtkRequisition *requisition) {
     UiSkinnedMonoStereo *monostereo = UI_SKINNED_MONOSTEREO(widget);
 
-    requisition->width = monostereo->width*(1+monostereo->double_size);
-    requisition->height = monostereo->height*(1+monostereo->double_size);
+    requisition->width = monostereo->width*(monostereo->scaled ? cfg.scale_factor : 1);
+    requisition->height = monostereo->height*(monostereo->scaled ? cfg.scale_factor : 1);
 }
 
 static void ui_skinned_monostereo_size_allocate(GtkWidget *widget, GtkAllocation *allocation) {
     UiSkinnedMonoStereo *monostereo = UI_SKINNED_MONOSTEREO (widget);
 
     widget->allocation = *allocation;
-    widget->allocation.x *= (1+monostereo->double_size);
-    widget->allocation.y *= (1+monostereo->double_size);
+    widget->allocation.x *= (monostereo->scaled ? cfg.scale_factor : 1);
+    widget->allocation.y *= (monostereo->scaled ? cfg.scale_factor : 1);
     if (GTK_WIDGET_REALIZED (widget))
         gdk_window_move_resize(widget->window, widget->allocation.x, widget->allocation.y, allocation->width, allocation->height);
 
-    monostereo->x = widget->allocation.x/(monostereo->double_size ? 2 : 1);
-    monostereo->y = widget->allocation.y/(monostereo->double_size ? 2 : 1);
+    monostereo->x = widget->allocation.x/(monostereo->scaled ? cfg.scale_factor : 1);
+    monostereo->y = widget->allocation.y/(monostereo->scaled ? cfg.scale_factor : 1);
 }
 
 static gboolean ui_skinned_monostereo_expose(GtkWidget *widget, GdkEventExpose *event) {
@@ -198,18 +198,18 @@
         break;
     }
 
-    ui_skinned_widget_draw(widget, obj, monostereo->width, monostereo->height, monostereo->double_size);
+    ui_skinned_widget_draw(widget, obj, monostereo->width, monostereo->height, monostereo->scaled);
 
     g_object_unref(obj);
 
     return FALSE;
 }
 
-static void ui_skinned_monostereo_toggle_doublesize(UiSkinnedMonoStereo *monostereo) {
+static void ui_skinned_monostereo_toggle_scaled(UiSkinnedMonoStereo *monostereo) {
     GtkWidget *widget = GTK_WIDGET (monostereo);
 
-    monostereo->double_size = !monostereo->double_size;
-    gtk_widget_set_size_request(widget, monostereo->width*(1+monostereo->double_size), monostereo->height*(1+monostereo->double_size));
+    monostereo->scaled = !monostereo->scaled;
+    gtk_widget_set_size_request(widget, monostereo->width*(monostereo->scaled ? cfg.scale_factor : 1), monostereo->height*(monostereo->scaled ? cfg.scale_factor : 1));
 
     gtk_widget_queue_draw(GTK_WIDGET(monostereo));
 }
--- a/src/audacious/ui_skinned_monostereo.h	Sun Jan 27 21:24:28 2008 +0200
+++ b/src/audacious/ui_skinned_monostereo.h	Sun Jan 27 23:00:32 2008 +0200
@@ -47,12 +47,12 @@
     gint             x, y, width, height;
     gint             num_channels;
     SkinPixmapId     skin_index;
-    gboolean         double_size;
+    gboolean         scaled;
 };
 
 struct _UiSkinnedMonoStereoClass {
     GtkWidgetClass          parent_class;
-    void (* doubled)        (UiSkinnedMonoStereo *menurow);
+    void (* scaled)        (UiSkinnedMonoStereo *menurow);
 };
 
 GtkWidget* ui_skinned_monostereo_new (GtkWidget *fixed, gint x, gint y, SkinPixmapId si);
--- a/src/audacious/ui_skinned_playstatus.c	Sun Jan 27 21:24:28 2008 +0200
+++ b/src/audacious/ui_skinned_playstatus.c	Sun Jan 27 23:00:32 2008 +0200
@@ -43,7 +43,7 @@
 static void ui_skinned_playstatus_size_request       (GtkWidget *widget, GtkRequisition *requisition);
 static void ui_skinned_playstatus_size_allocate      (GtkWidget *widget, GtkAllocation *allocation);
 static gboolean ui_skinned_playstatus_expose         (GtkWidget *widget, GdkEventExpose *event);
-static void ui_skinned_playstatus_toggle_doublesize  (UiSkinnedPlaystatus *playstatus);
+static void ui_skinned_playstatus_toggle_scaled      (UiSkinnedPlaystatus *playstatus);
 
 static GtkWidgetClass *parent_class = NULL;
 static guint playstatus_signals[LAST_SIGNAL] = { 0 };
@@ -85,11 +85,11 @@
     widget_class->size_request = ui_skinned_playstatus_size_request;
     widget_class->size_allocate = ui_skinned_playstatus_size_allocate;
 
-    klass->doubled = ui_skinned_playstatus_toggle_doublesize;
+    klass->scaled = ui_skinned_playstatus_toggle_scaled;
 
     playstatus_signals[DOUBLED] = 
-        g_signal_new ("toggle-double-size", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
-                      G_STRUCT_OFFSET (UiSkinnedPlaystatusClass, doubled), NULL, NULL,
+        g_signal_new ("toggle-scaled", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
+                      G_STRUCT_OFFSET (UiSkinnedPlaystatusClass, scaled), NULL, NULL,
                       gtk_marshal_VOID__VOID, G_TYPE_NONE, 0);
 }
 
@@ -104,7 +104,7 @@
     playstatus->x = x;
     playstatus->y = y;
 
-    playstatus->double_size = FALSE;
+    playstatus->scaled = FALSE;
 
     gtk_fixed_put(GTK_FIXED(fixed), GTK_WIDGET(playstatus), playstatus->x, playstatus->y);
 
@@ -156,21 +156,21 @@
 static void ui_skinned_playstatus_size_request(GtkWidget *widget, GtkRequisition *requisition) {
     UiSkinnedPlaystatus *playstatus = UI_SKINNED_PLAYSTATUS(widget);
 
-    requisition->width = playstatus->width*(1+playstatus->double_size);
-    requisition->height = playstatus->height*(1+playstatus->double_size);
+    requisition->width = playstatus->width*(playstatus->scaled ? cfg.scale_factor : 1);
+    requisition->height = playstatus->height*(playstatus->scaled ? cfg.scale_factor : 1);
 }
 
 static void ui_skinned_playstatus_size_allocate(GtkWidget *widget, GtkAllocation *allocation) {
     UiSkinnedPlaystatus *playstatus = UI_SKINNED_PLAYSTATUS (widget);
 
     widget->allocation = *allocation;
-    widget->allocation.x *= (1+playstatus->double_size);
-    widget->allocation.y *= (1+playstatus->double_size);
+    widget->allocation.x *= (playstatus->scaled ? cfg.scale_factor : 1);
+    widget->allocation.y *= (playstatus->scaled ? cfg.scale_factor : 1);
     if (GTK_WIDGET_REALIZED (widget))
         gdk_window_move_resize(widget->window, widget->allocation.x, widget->allocation.y, allocation->width, allocation->height);
 
-    playstatus->x = widget->allocation.x/(playstatus->double_size ? 2 : 1);
-    playstatus->y = widget->allocation.y/(playstatus->double_size ? 2 : 1);
+    playstatus->x = widget->allocation.x/(playstatus->scaled ? cfg.scale_factor : 1);
+    playstatus->y = widget->allocation.y/(playstatus->scaled ? cfg.scale_factor : 1);
 }
 
 static gboolean ui_skinned_playstatus_expose(GtkWidget *widget, GdkEventExpose *event) {
@@ -204,18 +204,18 @@
         break;
     }
 
-    ui_skinned_widget_draw(widget, obj, playstatus->width, playstatus->height, playstatus->double_size);
+    ui_skinned_widget_draw(widget, obj, playstatus->width, playstatus->height, playstatus->scaled);
 
     g_object_unref(obj);
 
     return FALSE;
 }
 
-static void ui_skinned_playstatus_toggle_doublesize(UiSkinnedPlaystatus *playstatus) {
+static void ui_skinned_playstatus_toggle_scaled(UiSkinnedPlaystatus *playstatus) {
     GtkWidget *widget = GTK_WIDGET (playstatus);
 
-    playstatus->double_size = !playstatus->double_size;
-    gtk_widget_set_size_request(widget, playstatus->width*(1+playstatus->double_size), playstatus->height*(1+playstatus->double_size));
+    playstatus->scaled = !playstatus->scaled;
+    gtk_widget_set_size_request(widget, playstatus->width*(playstatus->scaled ? cfg.scale_factor : 1), playstatus->height*(playstatus->scaled ? cfg.scale_factor : 1));
 
     gtk_widget_queue_draw(GTK_WIDGET(playstatus));
 }
@@ -243,5 +243,5 @@
     playstatus->width = width;
     playstatus->height = height;
 
-    gtk_widget_set_size_request(widget, width*(1+playstatus->double_size), height*(1+playstatus->double_size));
+    gtk_widget_set_size_request(widget, width*(playstatus->scaled ? cfg.scale_factor : 1), height*(playstatus->scaled ? cfg.scale_factor : 1));
 }
--- a/src/audacious/ui_skinned_playstatus.h	Sun Jan 27 21:24:28 2008 +0200
+++ b/src/audacious/ui_skinned_playstatus.h	Sun Jan 27 23:00:32 2008 +0200
@@ -48,14 +48,14 @@
     GtkWidget        widget;
 
     gint             x, y, width, height;
-    gboolean         double_size;
+    gboolean         scaled;
     PStatus          status;
     gboolean         buffering;
 };
 
 struct _UiSkinnedPlaystatusClass {
     GtkWidgetClass          parent_class;
-    void (* doubled)        (UiSkinnedPlaystatus *menurow);
+    void (* scaled)        (UiSkinnedPlaystatus *menurow);
 };
 
 GtkWidget* ui_skinned_playstatus_new (GtkWidget *fixed, gint x, gint y);
--- a/src/audacious/ui_skinned_window.c	Sun Jan 27 21:24:28 2008 +0200
+++ b/src/audacious/ui_skinned_window.c	Sun Jan 27 23:00:32 2008 +0200
@@ -160,8 +160,8 @@
             height = bmp_active_skin->properties.mainwin_height;
             break;
         case WINDOW_EQ:
-            width = 275;
-            height = 116;
+            width = 275 * (cfg.scaled ? cfg.scale_factor : 1);
+            height = 116 * (cfg.scaled ? cfg.scale_factor : 1) ;
             break;
         case WINDOW_PLAYLIST:
             width = playlistwin_get_width();
--- a/src/audacious/ui_svis.c	Sun Jan 27 21:24:28 2008 +0200
+++ b/src/audacious/ui_svis.c	Sun Jan 27 23:00:32 2008 +0200
@@ -260,8 +260,8 @@
             gdk_window_move_resize(widget->window, widget->allocation.x, widget->allocation.y, allocation->width, allocation->height);
     }
 
-    svis->x = widget->allocation.x/(svis->scaled ? 2 : 1);
-    svis->y = widget->allocation.y/(svis->scaled ? 2 : 1);
+    svis->x = widget->allocation.x/(svis->scaled ? cfg.scale_factor : 1);
+    svis->y = widget->allocation.y/(svis->scaled ? cfg.scale_factor : 1);
 }
 
 static gboolean ui_svis_expose(GtkWidget *widget, GdkEventExpose *event) {
--- a/src/audacious/ui_vis.c	Sun Jan 27 21:24:28 2008 +0200
+++ b/src/audacious/ui_vis.c	Sun Jan 27 23:00:32 2008 +0200
@@ -243,8 +243,8 @@
             gdk_window_move_resize(widget->window, widget->allocation.x, widget->allocation.y, allocation->width, allocation->height);
     }
 
-    vis->x = widget->allocation.x/(vis->scaled ? 2 : 1);
-    vis->y = widget->allocation.y/(vis->scaled ? 2 : 1);
+    vis->x = widget->allocation.x/(vis->scaled ? cfg.scale_factor : 1);
+    vis->y = widget->allocation.y/(vis->scaled ? cfg.scale_factor : 1);
 }
 
 static gboolean ui_vis_expose(GtkWidget *widget, GdkEventExpose *event) {
--- a/src/audacious/util.c	Sun Jan 27 21:24:28 2008 +0200
+++ b/src/audacious/util.c	Sun Jan 27 23:00:32 2008 +0200
@@ -866,8 +866,8 @@
     g_return_if_fail(obj != NULL);
 
     if (scale) {
-        GdkPixbuf *image = gdk_pixbuf_scale_simple(obj, width*2, height*2, GDK_INTERP_NEAREST);
-        gdk_draw_pixbuf(widget->window, NULL, image, 0, 0, 0, 0, width*2, height*2, GDK_RGB_DITHER_NONE, 0, 0);
+        GdkPixbuf *image = gdk_pixbuf_scale_simple(obj, width * cfg.scale_factor, height* cfg.scale_factor, GDK_INTERP_NEAREST);
+        gdk_draw_pixbuf(widget->window, NULL, image, 0, 0, 0, 0, width * cfg.scale_factor , height * cfg.scale_factor, GDK_RGB_DITHER_NONE, 0, 0);
         g_object_unref(image);
     } else {
         gdk_draw_pixbuf(widget->window, NULL, obj, 0, 0, 0, 0, width, height, GDK_RGB_DITHER_NONE, 0, 0);