comparison src/jack/configure.c @ 2192:e5401b6c4665

the same thing in many plugins
author Eugene Zagidullin <e.asphyx@gmail.com>
date Wed, 28 Nov 2007 03:51:34 +0300
parents b8da6a0b0da2
children 41c619e96a17
comparison
equal deleted inserted replaced
2191:329267b09658 2192:e5401b6c4665
44 44
45 #define GET_CHARS(edit) gtk_editable_get_chars(GTK_EDITABLE(edit), 0, -1) 45 #define GET_CHARS(edit) gtk_editable_get_chars(GTK_EDITABLE(edit), 0, -1)
46 46
47 static void configure_win_ok_cb(GtkWidget * w, gpointer data) 47 static void configure_win_ok_cb(GtkWidget * w, gpointer data)
48 { 48 {
49 ConfigDb *cfgfile; 49 ConfigDb *cfgfile;
50 50
51 jack_cfg.isTraceEnabled = (gint) GTK_CHECK_BUTTON(GTK_isTraceEnabled)->toggle_button.active; 51 jack_cfg.isTraceEnabled = (gint) GTK_CHECK_BUTTON(GTK_isTraceEnabled)->toggle_button.active;
52 jack_cfg.port_connection_mode = GET_CHARS(GTK_COMBO(port_connection_mode_combo)->entry); 52 jack_cfg.port_connection_mode = GET_CHARS(GTK_COMBO(port_connection_mode_combo)->entry);
53 53
54 jack_set_port_connection_mode(); /* update the connection mode */ 54 jack_set_port_connection_mode(); /* update the connection mode */
55 55
56 cfgfile = aud_cfg_db_open(); 56 cfgfile = aud_cfg_db_open();
57 57
58 aud_cfg_db_set_bool(cfgfile, "jack", "isTraceEnabled", jack_cfg.isTraceEnabled); 58 aud_cfg_db_set_bool(cfgfile, "jack", "isTraceEnabled", jack_cfg.isTraceEnabled);
59 aud_cfg_db_set_string(cfgfile, "jack", "port_connection_mode", jack_cfg.port_connection_mode); 59 aud_cfg_db_set_string(cfgfile, "jack", "port_connection_mode", jack_cfg.port_connection_mode);
60 aud_cfg_db_close(cfgfile); 60 aud_cfg_db_close(cfgfile);
61 61
62 gtk_widget_destroy(configure_win); 62 gtk_widget_destroy(configure_win);
63 } 63 }
64 64
65 static void get_port_connection_modes(GtkCombo *combo) 65 static void get_port_connection_modes(GtkCombo *combo)
66 { 66 {
67 GtkWidget *item; 67 GtkWidget *item;
89 gtk_container_add(GTK_CONTAINER(combo->list), item); 89 gtk_container_add(GTK_CONTAINER(combo->list), item);
90 } 90 }
91 91
92 void jack_configure(void) 92 void jack_configure(void)
93 { 93 {
94 if (!configure_win) 94 if (!configure_win)
95 { 95 {
96 configure_win = gtk_window_new(GTK_WINDOW_TOPLEVEL); 96 configure_win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
97 gtk_window_set_type_hint ( GTK_WINDOW(configure_win), GDK_WINDOW_TYPE_HINT_DIALOG); 97 gtk_window_set_type_hint ( GTK_WINDOW(configure_win), GDK_WINDOW_TYPE_HINT_DIALOG);
98 gtk_signal_connect(GTK_OBJECT(configure_win), "destroy", GTK_SIGNAL_FUNC(gtk_widget_destroyed), &configure_win); 98 gtk_signal_connect(GTK_OBJECT(configure_win), "destroy", GTK_SIGNAL_FUNC(gtk_widget_destroyed), &configure_win);
99 gtk_window_set_title(GTK_WINDOW(configure_win), _("jack Plugin configuration")); 99 gtk_window_set_title(GTK_WINDOW(configure_win), _("jack Plugin configuration"));
100 gtk_window_set_policy(GTK_WINDOW(configure_win), FALSE, FALSE, FALSE); 100 gtk_window_set_policy(GTK_WINDOW(configure_win), FALSE, FALSE, FALSE);
101 gtk_window_set_position(GTK_WINDOW(configure_win), GTK_WIN_POS_MOUSE); 101 gtk_window_set_position(GTK_WINDOW(configure_win), GTK_WIN_POS_MOUSE);
102 gtk_container_border_width(GTK_CONTAINER(configure_win), 10); 102 gtk_container_border_width(GTK_CONTAINER(configure_win), 10);
103 103
104 vbox = gtk_vbox_new(FALSE, 10); 104 vbox = gtk_vbox_new(FALSE, 10);
105 gtk_container_add(GTK_CONTAINER(configure_win), vbox); 105 gtk_container_add(GTK_CONTAINER(configure_win), vbox);
106 106
107 /* add a frame for other xmms-jack options */ 107 /* add a frame for other xmms-jack options */
108 option_frame = gtk_frame_new(_("Options:")); 108 option_frame = gtk_frame_new(_("Options:"));
109 gtk_box_pack_start(GTK_BOX(vbox), option_frame, FALSE, FALSE, 0); 109 gtk_box_pack_start(GTK_BOX(vbox), option_frame, FALSE, FALSE, 0);
110 110
111 /* add a hbox that will contain a label for a dropdown and the dropdown itself */ 111 /* add a hbox that will contain a label for a dropdown and the dropdown itself */
112 port_connection_mode_box = gtk_hbox_new(FALSE, 5); 112 port_connection_mode_box = gtk_hbox_new(FALSE, 5);
113 gtk_container_set_border_width(GTK_CONTAINER(port_connection_mode_box), 5); 113 gtk_container_set_border_width(GTK_CONTAINER(port_connection_mode_box), 5);
114 gtk_container_add(GTK_CONTAINER(option_frame), port_connection_mode_box); 114 gtk_container_add(GTK_CONTAINER(option_frame), port_connection_mode_box);
115 115
116 /* add the label */ 116 /* add the label */
117 gtk_box_pack_start(GTK_BOX(port_connection_mode_box), gtk_label_new(_("Connection mode:")), 117 gtk_box_pack_start(GTK_BOX(port_connection_mode_box), gtk_label_new(_("Connection mode:")),
118 FALSE, FALSE, 0); 118 FALSE, FALSE, 0);
119 119
120 /* add the dropdown */ 120 /* add the dropdown */
121 port_connection_mode_combo = gtk_combo_new(); 121 port_connection_mode_combo = gtk_combo_new();
122 get_port_connection_modes(GTK_COMBO(port_connection_mode_combo)); 122 get_port_connection_modes(GTK_COMBO(port_connection_mode_combo));
123 gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(port_connection_mode_combo)->entry), 123 gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(port_connection_mode_combo)->entry),
124 jack_cfg.port_connection_mode); 124 jack_cfg.port_connection_mode);
125 gtk_box_pack_start(GTK_BOX(port_connection_mode_box), port_connection_mode_combo, 125 gtk_box_pack_start(GTK_BOX(port_connection_mode_box), port_connection_mode_combo,
126 TRUE, TRUE, 0); 126 TRUE, TRUE, 0);
127 127
128 /* create a check_button for debug output */ 128 /* create a check_button for debug output */
129 GTK_isTraceEnabled = gtk_check_button_new_with_label(_("Enable debug printing")); 129 GTK_isTraceEnabled = gtk_check_button_new_with_label(_("Enable debug printing"));
130 gtk_box_pack_start(GTK_BOX(vbox), GTK_isTraceEnabled, FALSE, FALSE, 0); 130 gtk_box_pack_start(GTK_BOX(vbox), GTK_isTraceEnabled, FALSE, FALSE, 0);
131 gtk_widget_show(GTK_isTraceEnabled); 131 gtk_widget_show(GTK_isTraceEnabled);
132 132
133 /* set the state of the check_button based upon the value of */ 133 /* set the state of the check_button based upon the value of */
134 /* isTracingEnabled */ 134 /* isTracingEnabled */
135 GTK_CHECK_BUTTON(GTK_isTraceEnabled)->toggle_button.active = jack_cfg.isTraceEnabled; 135 GTK_CHECK_BUTTON(GTK_isTraceEnabled)->toggle_button.active = jack_cfg.isTraceEnabled;
136 136
137 /* add the box for the ok/canceled buttons at the bottom */ 137 /* add the box for the ok/canceled buttons at the bottom */
138 bbox = gtk_hbox_new(FALSE, 10); 138 bbox = gtk_hbox_new(FALSE, 10);
139 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0); 139 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
140 140
141 ok = gtk_button_new_with_label(_("Ok")); 141 ok = gtk_button_new_with_label(_("Ok"));
142 gtk_signal_connect(GTK_OBJECT(ok), "clicked", GTK_SIGNAL_FUNC(configure_win_ok_cb), NULL); 142 gtk_signal_connect(GTK_OBJECT(ok), "clicked", GTK_SIGNAL_FUNC(configure_win_ok_cb), NULL);
143 GTK_WIDGET_SET_FLAGS(ok, GTK_CAN_DEFAULT); 143 GTK_WIDGET_SET_FLAGS(ok, GTK_CAN_DEFAULT);
144 gtk_box_pack_start(GTK_BOX(bbox), ok, TRUE, TRUE, 0); 144 gtk_box_pack_start(GTK_BOX(bbox), ok, TRUE, TRUE, 0);
145 gtk_widget_show(ok); 145 gtk_widget_show(ok);
146 gtk_widget_grab_default(ok); 146 gtk_widget_grab_default(ok);
147 147
148 cancel = gtk_button_new_with_label(_("Cancel")); 148 cancel = gtk_button_new_with_label(_("Cancel"));
149 gtk_signal_connect_object(GTK_OBJECT(cancel), "clicked", GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT(configure_win)); 149 gtk_signal_connect_object(GTK_OBJECT(cancel), "clicked", GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT(configure_win));
150 GTK_WIDGET_SET_FLAGS(cancel, GTK_CAN_DEFAULT); 150 GTK_WIDGET_SET_FLAGS(cancel, GTK_CAN_DEFAULT);
151 gtk_box_pack_start(GTK_BOX(bbox), cancel, TRUE, TRUE, 0); 151 gtk_box_pack_start(GTK_BOX(bbox), cancel, TRUE, TRUE, 0);
152 gtk_widget_show(cancel); 152 gtk_widget_show(cancel);
153 153
154 gtk_widget_show_all(configure_win); 154 gtk_widget_show_all(configure_win);
155 } 155 }
156 else 156 else
157 gdk_window_raise(configure_win->window); 157 gtk_window_present(GTK_WINDOW(configure_win));
158 } 158 }