annotate Plugins/Visualization/blur_scope/config.c @ 1315:c7b3996a123f trunk

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