diff src/audacious/ui_preferences.c @ 3989:6faed0cdc276

colorize_popup is no longer in prefswin.glade
author Tomasz Mon <desowin@gmail.com>
date Sat, 24 Nov 2007 12:58:27 +0100
parents ba5af8e85857
children 14c2d0729563
line wrap: on
line diff
--- a/src/audacious/ui_preferences.c	Fri Nov 23 23:07:04 2007 +0100
+++ b/src/audacious/ui_preferences.c	Sat Nov 24 12:58:27 2007 +0100
@@ -107,6 +107,11 @@
 static GtkWidget *category_notebook = NULL;
 GtkWidget *filepopupbutton = NULL;
 
+/* colorize settings scales */
+GtkWidget *green_scale;
+GtkWidget *red_scale;
+GtkWidget *blue_scale;
+
 static Category categories[] = {
     {DATA_DIR "/images/appearance.png", N_("Appearance"), 1},
     {DATA_DIR "/images/audio.png", N_("Audio"), 6},
@@ -1558,19 +1563,11 @@
 static void
 on_colorize_button_clicked(GtkButton *button, gpointer data)
 {
-	GladeXML *xml = prefswin_get_xml();
-	GtkWidget *widget;
-
-	widget = glade_xml_get_widget(xml, "red_scale");
-	gtk_range_set_value(GTK_RANGE(widget), cfg.colorize_r);
+    gtk_range_set_value(GTK_RANGE(red_scale), cfg.colorize_r);
+    gtk_range_set_value(GTK_RANGE(green_scale), cfg.colorize_g);
+    gtk_range_set_value(GTK_RANGE(blue_scale), cfg.colorize_b);
 
-	widget = glade_xml_get_widget(xml, "green_scale");
-	gtk_range_set_value(GTK_RANGE(widget), cfg.colorize_g);
-
-	widget = glade_xml_get_widget(xml, "blue_scale");
-	gtk_range_set_value(GTK_RANGE(widget), cfg.colorize_b);
-
-	gtk_widget_show(colorize_settings);
+    gtk_widget_show(colorize_settings);
 }
 
 static void
@@ -1847,15 +1844,111 @@
 
     /* colorize */
     FUNC_MAP_ENTRY(on_colorize_button_clicked)
-    FUNC_MAP_ENTRY(on_red_scale_value_changed)
-    FUNC_MAP_ENTRY(on_green_scale_value_changed)
-    FUNC_MAP_ENTRY(on_blue_scale_value_changed)
-    FUNC_MAP_ENTRY(on_colorize_close_clicked)
 
     FUNC_MAP_ENTRY(on_reload_plugins_clicked)
 FUNC_MAP_END
 
 void
+create_colorize_settings(void)
+{
+    GtkWidget *vbox;
+    GtkWidget *label;
+    GtkWidget *table;
+    GtkWidget *hbuttonbox;
+    GtkWidget *colorize_close;
+
+    GtkWidget *green_label;
+    GtkWidget *red_label;
+    GtkWidget *blue_label;
+
+    colorize_settings = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+    gtk_container_set_border_width(GTK_CONTAINER(colorize_settings), 12);
+    gtk_window_set_title(GTK_WINDOW(colorize_settings), _("Color Adjustment"));
+    gtk_window_set_type_hint(GTK_WINDOW(colorize_settings), GDK_WINDOW_TYPE_HINT_DIALOG);
+    gtk_window_set_transient_for(GTK_WINDOW(colorize_settings), GTK_WINDOW(prefswin));
+
+    vbox = gtk_vbox_new(FALSE, 12);
+    gtk_container_add(GTK_CONTAINER(colorize_settings), vbox);
+
+    label = gtk_label_new(_("Audacious allows you to alter the color balance of the skinned UI. The sliders below will allow you to do this."));
+    gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
+    gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
+    gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
+
+    table = gtk_table_new(3, 2, FALSE);
+    gtk_box_pack_start(GTK_BOX(vbox), table, TRUE, TRUE, 0);
+    gtk_table_set_row_spacings(GTK_TABLE(table), 6);
+    gtk_table_set_col_spacings(GTK_TABLE(table), 12);
+
+    blue_label = gtk_label_new(_("Blue"));
+    gtk_table_attach(GTK_TABLE(table), blue_label, 0, 1, 2, 3,
+                     (GtkAttachOptions) (0),
+                     (GtkAttachOptions) (0), 0, 0);
+    gtk_label_set_justify(GTK_LABEL(blue_label), GTK_JUSTIFY_RIGHT);
+    gtk_misc_set_alignment(GTK_MISC(blue_label), 1, 0.5);
+
+    green_label = gtk_label_new(_("Green"));
+    gtk_table_attach(GTK_TABLE(table), green_label, 0, 1, 1, 2,
+                     (GtkAttachOptions) (0),
+                     (GtkAttachOptions) (0), 0, 0);
+    gtk_label_set_justify(GTK_LABEL(green_label), GTK_JUSTIFY_RIGHT);
+    gtk_misc_set_alignment(GTK_MISC(green_label), 1, 0.5);
+
+   red_label = gtk_label_new(_("Red"));
+   gtk_table_attach(GTK_TABLE(table), red_label, 0, 1, 0, 1,
+                    (GtkAttachOptions) (0),
+                    (GtkAttachOptions) (0), 0, 0);
+    gtk_label_set_justify(GTK_LABEL(red_label), GTK_JUSTIFY_RIGHT);
+    gtk_misc_set_alignment(GTK_MISC(red_label), 1, 0.5);
+
+    red_scale = gtk_hscale_new(GTK_ADJUSTMENT(gtk_adjustment_new(0, 0, 255, 0, 0, 0)));
+    gtk_table_attach(GTK_TABLE(table), red_scale, 1, 2, 0, 1,
+                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+    gtk_scale_set_draw_value(GTK_SCALE(red_scale), FALSE);
+    gtk_scale_set_digits(GTK_SCALE(red_scale), 3);
+
+    green_scale = gtk_hscale_new(GTK_ADJUSTMENT(gtk_adjustment_new(0, 0, 255, 0, 0, 0)));
+    gtk_table_attach(GTK_TABLE(table), green_scale, 1, 2, 1, 2,
+                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+    gtk_scale_set_draw_value(GTK_SCALE(green_scale), FALSE);
+    gtk_scale_set_digits(GTK_SCALE(green_scale), 3);
+
+    blue_scale = gtk_hscale_new(GTK_ADJUSTMENT(gtk_adjustment_new(0, 0, 255, 0, 0, 0)));
+    gtk_table_attach(GTK_TABLE(table), blue_scale, 1, 2, 2, 3,
+                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+    gtk_scale_set_draw_value(GTK_SCALE(blue_scale), FALSE);
+    gtk_scale_set_digits(GTK_SCALE(blue_scale), 3);
+
+    hbuttonbox = gtk_hbutton_box_new();
+    gtk_box_pack_start(GTK_BOX(vbox), hbuttonbox, FALSE, FALSE, 0);
+    gtk_button_box_set_layout(GTK_BUTTON_BOX(hbuttonbox), GTK_BUTTONBOX_END);
+    gtk_box_set_spacing(GTK_BOX(hbuttonbox), 6);
+
+    colorize_close = gtk_button_new_from_stock("gtk-close");
+    gtk_container_add(GTK_CONTAINER(hbuttonbox), colorize_close);
+    GTK_WIDGET_SET_FLAGS(colorize_close, GTK_CAN_DEFAULT);
+
+    g_signal_connect((gpointer) red_scale, "value_changed",
+                     G_CALLBACK (on_red_scale_value_changed),
+                     NULL);
+    g_signal_connect((gpointer) green_scale, "value_changed",
+                     G_CALLBACK(on_green_scale_value_changed),
+                     NULL);
+    g_signal_connect((gpointer) blue_scale, "value_changed",
+                     G_CALLBACK(on_blue_scale_value_changed),
+                     NULL);
+    g_signal_connect((gpointer) colorize_close, "clicked",
+                     G_CALLBACK(on_colorize_close_clicked),
+                     NULL);
+
+    gtk_widget_grab_default(colorize_close);
+    gtk_widget_show_all(vbox);
+}
+
+void
 create_prefs_window(void)
 {
     const gchar *glade_file = DATA_DIR "/glade/prefswin.glade";
@@ -2095,10 +2188,8 @@
 		G_CALLBACK(on_recurse_for_cover_toggled),
 		widget);
 
-	/* Create window for color adjustment settings */
-	colorize_settings = glade_xml_get_widget(xml, "colorize_popup");
-	gtk_window_set_transient_for(GTK_WINDOW(colorize_settings), GTK_WINDOW(prefswin));
-	gtk_widget_hide(colorize_settings);
+    /* Create window for color adjustment settings */
+    create_colorize_settings();
 }
 
 void