~ubuntu-branches/ubuntu/karmic/mhwaveedit/karmic

« back to all changes in this revision

Viewing changes to src/um.c

  • Committer: Bazaar Package Importer
  • Author(s): Free Ekanayaka
  • Date: 2008-01-08 22:20:37 UTC
  • mfrom: (2.1.6 hardy)
  • Revision ID: james.westby@ubuntu.com-20080108222037-tsazhckl5vmc8yih
Tags: 1.4.14-2
Added desktop file (Closes: #457849), thanks to Marco Rodrigues

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*
2
 
 * Copyright (C) 2002 2003 2004 2005, Magnus Hjorth
 
2
 * Copyright (C) 2002 2003 2004 2005 2006, Magnus Hjorth
3
3
 *
4
4
 * This file is part of mhWaveEdit.
5
5
 *
303
303
}
304
304
 
305
305
gchar *user_input(gchar *label, gchar *title, gchar *defvalue, 
306
 
                  gboolean (*validator)(gchar *c))
 
306
                  gboolean (*validator)(gchar *c), GtkWindow *below)
307
307
{
308
308
     GtkWidget *a,*b,*c,*d,*ent;
309
309
     struct user_input_data uid;
310
310
     a = gtk_window_new(GTK_WINDOW_DIALOG);
 
311
     if (below != NULL) {
 
312
          gtk_window_set_transient_for(GTK_WINDOW(a),below);
 
313
          gtk_window_set_position(GTK_WINDOW(a),GTK_WIN_POS_CENTER_ON_PARENT);
 
314
     } else
 
315
          gtk_window_set_position(GTK_WINDOW(a),GTK_WIN_POS_CENTER);
311
316
     gtk_window_set_title(GTK_WINDOW(a),title?title:_("Input"));
312
317
     gtk_window_set_modal(GTK_WINDOW(a),TRUE);
313
318
     gtk_container_set_border_width(GTK_CONTAINER(a),5);
315
320
                        GTK_SIGNAL_FUNC(user_input_destroy),NULL);
316
321
     b = gtk_vbox_new(FALSE,3);
317
322
     gtk_container_add(GTK_CONTAINER(a),b);
318
 
     gtk_widget_show(b);
319
323
     c = gtk_hbox_new(FALSE,2);
320
324
     gtk_box_pack_start(GTK_BOX(b),c,FALSE,FALSE,0);
321
 
     gtk_widget_show(c);
322
325
     if (label) {
323
326
          d = gtk_label_new(label);
324
327
          gtk_box_pack_start(GTK_BOX(c),d,FALSE,FALSE,0);
325
 
          gtk_widget_show(d);
326
328
     }
327
329
     ent = gtk_entry_new();
328
330
     gtk_entry_set_text(GTK_ENTRY(ent),defvalue);
329
331
     gtk_box_pack_start(GTK_BOX(b),ent,FALSE,FALSE,0);
330
 
     gtk_widget_show(ent);
331
332
     c = gtk_hseparator_new();
332
 
     gtk_box_pack_start(GTK_BOX(b),c,FALSE,FALSE,0);
333
 
     gtk_widget_show(c);
334
 
     c = gtk_hbox_new(FALSE,2);
335
 
     gtk_box_pack_start(GTK_BOX(b),c,FALSE,FALSE,0);
336
 
     gtk_widget_show(c);
 
333
     gtk_box_pack_start(GTK_BOX(b),c,FALSE,FALSE,3);
 
334
     c = gtk_hbutton_box_new();
 
335
     gtk_box_pack_start(GTK_BOX(b),c,FALSE,FALSE,0);
337
336
     d = gtk_button_new_with_label(_("OK"));
338
337
     gtk_signal_connect(GTK_OBJECT(d),"clicked",
339
338
                        GTK_SIGNAL_FUNC(user_input_ok),&uid);
340
 
     gtk_box_pack_start(GTK_BOX(c),d,FALSE,FALSE,0);
341
 
     gtk_widget_show(d);
 
339
     gtk_container_add(GTK_CONTAINER(c),d);
342
340
     d = gtk_button_new_with_label(_("Cancel"));
343
341
     gtk_signal_connect(GTK_OBJECT(d),"clicked",GTK_SIGNAL_FUNC(modal_callback),
344
342
                        (gpointer)MR_CANCEL);
345
343
     gtk_signal_connect_object(GTK_OBJECT(d),"clicked",
346
344
                               GTK_SIGNAL_FUNC(gtk_widget_destroy),
347
345
                               GTK_OBJECT(a));
348
 
     gtk_box_pack_start(GTK_BOX(c),d,FALSE,FALSE,0);
349
 
     gtk_widget_show(d);
350
 
     gtk_widget_show(a);
 
346
     gtk_container_add(GTK_CONTAINER(c),d);
 
347
     gtk_widget_show_all(a);
351
348
     uid.window = a;
352
349
     uid.validator = validator;
353
350
     uid.entry = ent;
367
364
}
368
365
 
369
366
gboolean user_input_float(gchar *label, gchar *title, gfloat defvalue, 
370
 
                          gfloat *result)
 
367
                          GtkWindow *below, gfloat *result)
371
368
{
372
369
     gchar *c,d[128],*e;
373
370
     g_snprintf(d,sizeof(d),"%f",defvalue);
374
 
     c = user_input(label,title,d,user_input_float_validator);
 
371
     c = user_input(label,title,d,user_input_float_validator,below);
375
372
     if (!c) return TRUE;
376
373
     *result = (gfloat)strtod(c,&e);
377
374
     g_assert(*e == 0);