Mercurial > audlegacy-plugins
comparison src/Visualization/blur_scope/config.c @ 0:13389e613d67 trunk
[svn] - initial import of audacious-plugins tree (lots to do)
| author | nenolod |
|---|---|
| date | Mon, 18 Sep 2006 01:11:49 -0700 |
| parents | |
| children | 088092a52fea |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:13389e613d67 |
|---|---|
| 1 #ifdef HAVE_CONFIG_H | |
| 2 # include "config.h" | |
| 3 #endif | |
| 4 | |
| 5 #include <glib.h> | |
| 6 #include <glib/gi18n.h> | |
| 7 #include <gtk/gtk.h> | |
| 8 | |
| 9 #include "libaudacious/configdb.h" | |
| 10 #include "blur_scope.h" | |
| 11 | |
| 12 | |
| 13 static GtkWidget *configure_win = NULL; | |
| 14 static GtkWidget *vbox, *options_frame, *options_vbox; | |
| 15 static GtkWidget *options_colorpicker; | |
| 16 static GtkWidget *bbox, *ok, *cancel; | |
| 17 | |
| 18 static void | |
| 19 configure_ok(GtkWidget * w, gpointer data) | |
| 20 { | |
| 21 ConfigDb *db; | |
| 22 gdouble color[3]; | |
| 23 | |
| 24 gtk_color_selection_get_color(GTK_COLOR_SELECTION(options_colorpicker), | |
| 25 color); | |
| 26 bscope_cfg.color = | |
| 27 ((guint32) (255.0 * color[0]) << 16) | | |
| 28 ((guint32) (255.0 * color[1]) << 8) | ((guint32) (255.0 * color[2])); | |
| 29 db = bmp_cfg_db_open(); | |
| 30 bmp_cfg_db_set_int(db, "BlurScope", "color", bscope_cfg.color); | |
| 31 bmp_cfg_db_close(db); | |
| 32 generate_cmap(); | |
| 33 gtk_widget_destroy(configure_win); | |
| 34 } | |
| 35 | |
| 36 static void | |
| 37 configure_cancel(GtkWidget * w, gpointer data) | |
| 38 { | |
| 39 bscope_cfg.color = GPOINTER_TO_UINT(data); | |
| 40 generate_cmap(); | |
| 41 gtk_widget_destroy(configure_win); | |
| 42 } | |
| 43 | |
| 44 static void | |
| 45 color_changed(GtkWidget * w, gpointer data) | |
| 46 { | |
| 47 gdouble color[3]; | |
| 48 gtk_color_selection_get_color(GTK_COLOR_SELECTION(options_colorpicker), | |
| 49 color); | |
| 50 bscope_cfg.color = | |
| 51 ((guint32) (255.0 * color[0]) << 16) | | |
| 52 ((guint32) (255.0 * color[1]) << 8) | ((guint32) (255.0 * color[2])); | |
| 53 generate_cmap(); | |
| 54 } | |
| 55 | |
| 56 void | |
| 57 bscope_configure(void) | |
| 58 { | |
| 59 /* FIXME: convert to GtkColorSelectionDialog */ | |
| 60 | |
| 61 gdouble color[3]; | |
| 62 if (configure_win) | |
| 63 return; | |
| 64 | |
| 65 bscope_read_config(); | |
| 66 color[0] = ((gdouble) (bscope_cfg.color / 0x10000)) / 256; | |
| 67 color[1] = ((gdouble) ((bscope_cfg.color % 0x10000) / 0x100)) / 256; | |
| 68 color[2] = ((gdouble) (bscope_cfg.color % 0x100)) / 256; | |
| 69 | |
| 70 configure_win = gtk_window_new(GTK_WINDOW_TOPLEVEL); | |
| 71 gtk_container_set_border_width(GTK_CONTAINER(configure_win), 10); | |
| 72 gtk_window_set_title(GTK_WINDOW(configure_win), | |
| 73 _("Blur Scope: Color selection")); | |
| 74 gtk_window_set_type_hint(GTK_WINDOW(configure_win), | |
| 75 GDK_WINDOW_TYPE_HINT_DIALOG); | |
| 76 gtk_window_set_resizable(GTK_WINDOW(configure_win), FALSE); | |
| 77 gtk_window_set_position(GTK_WINDOW(configure_win), GTK_WIN_POS_MOUSE); | |
| 78 g_signal_connect(G_OBJECT(configure_win), "destroy", | |
| 79 G_CALLBACK(gtk_widget_destroyed), &configure_win); | |
| 80 | |
| 81 vbox = gtk_vbox_new(FALSE, 5); | |
| 82 | |
| 83 options_frame = gtk_frame_new(_("Options:")); | |
| 84 gtk_container_set_border_width(GTK_CONTAINER(options_frame), 5); | |
| 85 | |
| 86 options_vbox = gtk_vbox_new(FALSE, 5); | |
| 87 gtk_container_set_border_width(GTK_CONTAINER(options_vbox), 5); | |
| 88 | |
| 89 options_colorpicker = gtk_color_selection_new(); | |
| 90 gtk_color_selection_set_color(GTK_COLOR_SELECTION(options_colorpicker), | |
| 91 color); | |
| 92 g_signal_connect(G_OBJECT(options_colorpicker), "color_changed", | |
| 93 G_CALLBACK(color_changed), NULL); | |
| 94 | |
| 95 gtk_box_pack_start(GTK_BOX(options_vbox), options_colorpicker, FALSE, | |
| 96 FALSE, 0); | |
| 97 gtk_widget_show(options_colorpicker); | |
| 98 | |
| 99 | |
| 100 gtk_container_add(GTK_CONTAINER(options_frame), options_vbox); | |
| 101 gtk_widget_show(options_vbox); | |
| 102 | |
| 103 gtk_box_pack_start(GTK_BOX(vbox), options_frame, TRUE, TRUE, 0); | |
| 104 gtk_widget_show(options_frame); | |
| 105 | |
| 106 bbox = gtk_hbutton_box_new(); | |
| 107 gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END); | |
| 108 gtk_button_box_set_spacing(GTK_BUTTON_BOX(bbox), 5); | |
| 109 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0); | |
| 110 | |
| 111 cancel = gtk_button_new_from_stock(GTK_STOCK_CANCEL); | |
| 112 g_signal_connect(G_OBJECT(cancel), "clicked", | |
| 113 G_CALLBACK(configure_cancel), | |
| 114 GUINT_TO_POINTER(bscope_cfg.color)); | |
| 115 GTK_WIDGET_SET_FLAGS(cancel, GTK_CAN_DEFAULT); | |
| 116 gtk_box_pack_start(GTK_BOX(bbox), cancel, TRUE, TRUE, 0); | |
| 117 gtk_widget_show(cancel); | |
| 118 | |
| 119 ok = gtk_button_new_from_stock(GTK_STOCK_OK); | |
| 120 g_signal_connect(G_OBJECT(ok), "clicked", G_CALLBACK(configure_ok), NULL); | |
| 121 GTK_WIDGET_SET_FLAGS(ok, GTK_CAN_DEFAULT); | |
| 122 gtk_box_pack_start(GTK_BOX(bbox), ok, TRUE, TRUE, 0); | |
| 123 gtk_widget_show(ok); | |
| 124 | |
| 125 gtk_widget_show(bbox); | |
| 126 | |
| 127 gtk_container_add(GTK_CONTAINER(configure_win), vbox); | |
| 128 gtk_widget_show(vbox); | |
| 129 gtk_widget_show(configure_win); | |
| 130 gtk_widget_grab_default(ok); | |
| 131 } |
