44
42
#include "desktop_integration.h"
45
43
#include "preferences.h"
47
static GtkWidget *add_label (GtkWidget *vbox, const char *label)
45
static GtkWidget *add_label (GtkBox *vbox, const char *label)
49
GtkWidget *l = gtk_label_new (label);
47
GtkWidget *l = ui_label_new_with_markup (label);
50
48
gtk_label_set_line_wrap (GTK_LABEL (l), TRUE);
51
gtk_label_set_use_markup (GTK_LABEL (l), TRUE);
52
49
gtk_misc_set_alignment (GTK_MISC (l), 0, 0.5);
53
gtk_box_pack_start (GTK_BOX(vbox), l, FALSE, FALSE, 5);
50
gtk_box_pack_start (vbox, l, FALSE, FALSE, 5);
57
static GtkWidget *add_heading (GtkWidget *vbox, const char *label)
54
static GtkWidget *add_heading (GtkBox *vbox, const char *label)
59
56
char *markup = g_strdup_printf ("<big><b>%s</b></big>", label);
60
57
GtkWidget *l = add_label (vbox, markup);
192
188
#ifdef USE_INTEGRATION_WIZARD
193
static GtkWidget *cb_moz;
194
static GtkWidget *cb_gnome;
195
static GtkWidget *cb_kde;
196
static GtkWidget *cb_mailcap;
190
GtkToggleButton *moz, *gnome, *kde, *mailcap;
198
193
static void integrate_cb (GtkButton *button, gpointer data)
200
195
gboolean state = !!data;
201
if (GTK_WIDGET_SENSITIVE (cb_mailcap))
202
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cb_mailcap), state);
203
if (GTK_WIDGET_SENSITIVE (cb_moz))
204
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cb_moz), state);
205
if (GTK_WIDGET_SENSITIVE (cb_gnome))
206
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cb_gnome), state);
207
if (GTK_WIDGET_SENSITIVE (cb_kde))
208
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cb_kde), state);
211
static gboolean ask_integration_wizard (GtkWidget *w, GtkWidget *vbox)
196
if (GTK_WIDGET_SENSITIVE (cb.mailcap))
197
gtk_toggle_button_set_active (cb.mailcap, state);
198
if (GTK_WIDGET_SENSITIVE (cb.moz))
199
gtk_toggle_button_set_active (cb.moz, state);
200
if (GTK_WIDGET_SENSITIVE (cb.gnome))
201
gtk_toggle_button_set_active (cb.gnome, state);
202
if (GTK_WIDGET_SENSITIVE (cb.kde))
203
gtk_toggle_button_set_active (cb.kde, state);
206
static GtkToggleButton *
207
new_toggle (GtkBox *box, const char *label, gboolean active)
209
GtkWidget *w = gtk_check_button_new_with_mnemonic (label);
210
gtk_widget_set_sensitive (w, active);
211
gtk_box_pack_start (box, w, FALSE, FALSE, 5);
212
GtkToggleButton *b = GTK_TOGGLE_BUTTON (w);
213
gtk_toggle_button_set_active (b, active);
217
static gboolean ask_integration_wizard (GtkDialog *w, GtkBox *vbox)
215
221
GtkWidget *b, *hbox;
222
GtkBox *vb = GTK_BOX (vbox);
218
224
add_heading (vbox, _("Registration"));
219
225
add_label (vbox, _("Register gxine with the following applications "
220
226
"as a media handler/helper:"));
222
cb_mailcap = gtk_check_button_new_with_mnemonic ("~_/.mailcap");
223
gtk_box_pack_start (GTK_BOX(vbox), cb_mailcap, FALSE, FALSE, 5);
224
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cb_mailcap), TRUE);
228
cb.mailcap = new_toggle (vb, "~_/.mailcap", TRUE);
226
cb_moz = gtk_check_button_new_with_mnemonic (_("_Mozilla & Mozilla Firefox (plugin)"));
227
gtk_box_pack_start (GTK_BOX(vbox), cb_moz, FALSE, FALSE, 5);
228
230
sname = g_build_filename (plugindir, "gxineplugin.so", NULL);
229
enable = !stat (sname, &st);
230
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cb_moz), enable);
231
gtk_widget_set_sensitive (cb_moz, enable);
231
cb.moz = new_toggle (vb, _("_Mozilla & Mozilla Firefox (plugin)"), !stat (sname, &st));
234
cb_gnome = gtk_check_button_new_with_mnemonic (_("_GNOME, Nautilus"));
235
gtk_box_pack_start (GTK_BOX(vbox), cb_gnome, FALSE, FALSE, 5);
236
enable = di_gnome_vfs_init ();
237
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cb_gnome), enable);
238
gtk_widget_set_sensitive (cb_gnome, enable);
234
cb.gnome = new_toggle (vb, _("_GNOME, Nautilus"), gxine_vfs_init ());
240
cb_kde = gtk_check_button_new_with_mnemonic (_("_KDE, Konqueror"));
241
gtk_box_pack_start (GTK_BOX(vbox), cb_kde, FALSE, FALSE, 5);
242
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cb_kde), TRUE);
236
cb.kde = new_toggle (vb, _("_KDE, Konqueror"), TRUE);
244
238
hbox = gtk_hbox_new (FALSE, 2);
245
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 2);
239
gtk_box_pack_start (vb, hbox, FALSE, FALSE, 2);
247
241
b = ui_button_new_stock_mnemonic (GTK_STOCK_ADD, _("_All"));
248
242
gtk_box_pack_start (GTK_BOX (hbox), b, FALSE, FALSE, 2);
354
348
/* set up dialog which all wizards will use */
356
dlg = gtk_dialog_new_with_buttons (_("gxine setup wizards"), NULL, 0,
350
dlg = GTK_DIALOG (gtk_dialog_new_with_buttons (_("gxine setup wizards"), NULL, 0,
357
351
GTK_STOCK_GO_FORWARD, GTK_RESPONSE_ACCEPT,
358
352
GTK_STOCK_CLOSE, GTK_RESPONSE_DELETE_EVENT,
360
gtk_dialog_set_default_response (GTK_DIALOG(dlg), GTK_RESPONSE_ACCEPT);
354
gtk_dialog_set_default_response (dlg, GTK_RESPONSE_ACCEPT);
361
355
gtk_window_set_default_size (GTK_WINDOW (dlg), -1, 400);
362
356
gtk_window_set_modal (GTK_WINDOW (dlg), !requested);
363
357
g_object_connect (G_OBJECT (dlg),
374
368
GtkWidget *w, *b = gtk_hbox_new (0, 0);
375
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), b, FALSE, FALSE, 2);
369
gtk_box_pack_start (GTK_BOX (dlg->vbox), b, FALSE, FALSE, 2);
376
370
gtk_box_pack_start (GTK_BOX (b),
377
371
gtk_image_new_from_stock (GXINE_LOGO, icon_size_logo),
378
372
FALSE, FALSE, 2);
379
w = gtk_label_new (_("<span face='serif' size='xx-large' weight='bold'>Welcome!</span>"));
380
gtk_label_set_use_markup (GTK_LABEL (w), TRUE);
373
w = ui_label_new_with_markup (_("<span face='serif' size='xx-large' weight='bold'>Welcome!</span>"));
381
374
gtk_box_pack_start (GTK_BOX (b), w, FALSE, FALSE, 2);
384
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox),
377
gtk_box_pack_start (GTK_BOX (dlg->vbox),
385
378
gtk_hseparator_new (), FALSE, FALSE, 5);
387
window_show (dlg, NULL);
380
window_show ((GtkWidget *)dlg, NULL);
392
385
GtkWidget *content = gtk_vbox_new (0, 0);
393
gtk_box_pack_start_defaults (GTK_BOX (GTK_DIALOG (dlg)->vbox), content);
386
gtk_box_pack_start_defaults (GTK_BOX (dlg->vbox), content);
395
388
if (wizards[++state].create)
397
if (wizards[state].create (dlg, content))
390
if (wizards[state].create (dlg, GTK_BOX (content)))
402
gtk_dialog_set_response_sensitive (GTK_DIALOG (dlg), GTK_RESPONSE_ACCEPT, FALSE);
403
add_heading (content, _("Setup completed."));
395
gtk_dialog_set_response_sensitive (dlg, GTK_RESPONSE_ACCEPT, FALSE);
396
add_heading (GTK_BOX (content), _("Setup completed."));
406
399
gtk_widget_show_all (content);