GtkWidget * prefs_imagewin_image_page (void) { GtkWidget *main_vbox; GtkWidget *frame; GtkWidget *hbox, *vbox; GtkWidget *label; GtkWidget *option_menu; GtkAdjustment *adj; GtkWidget *spinner; GtkWidget *toggle; GtkWidget *table, *alignment; main_vbox = gtk_vbox_new (FALSE, 0); gtk_container_set_border_width(GTK_CONTAINER(main_vbox), 5); /********************************************** * Image Frame **********************************************/ gimv_prefs_ui_create_frame(_("Image"), frame, vbox, main_vbox, FALSE); alignment = gtk_alignment_new (0.0, 0.5, 0.0, 0.0); gtk_box_pack_start (GTK_BOX (vbox), alignment, FALSE, FALSE, 0); table = gtk_table_new (2, 2, FALSE); gtk_container_add (GTK_CONTAINER (alignment), table); /* Default zoom action menu */ label = gtk_label_new (_("Zoom:")); alignment = gtk_alignment_new(0.0, 0.5, 0.0, 0.0); gtk_container_add (GTK_CONTAINER (alignment), label); gtk_table_attach (GTK_TABLE (table), alignment, 0, 1, 0, 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 5, 1); option_menu = create_option_menu (zoom_menu_items, conf.imgview_default_zoom, cb_zoom_menu, NULL); alignment = gtk_alignment_new(0.0, 0.5, 0.0, 0.0); gtk_container_add (GTK_CONTAINER (alignment), option_menu); gtk_table_attach (GTK_TABLE (table), alignment, 1, 2, 0, 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 5, 1); /* Rotate on image change */ label = gtk_label_new (_("Rotation:")); alignment = gtk_alignment_new(0.0, 0.5, 0.0, 0.0); gtk_container_add (GTK_CONTAINER (alignment), label); gtk_table_attach (GTK_TABLE (table), alignment, 0, 1, 1, 2, GTK_EXPAND | GTK_FILL, GTK_FILL, 5, 1); option_menu = create_option_menu_simple (rotate_menu_items, conf.imgview_default_rotation, &config_changed->imgview_default_rotation); alignment = gtk_alignment_new(0.0, 0.5, 0.0, 0.0); gtk_container_add (GTK_CONTAINER (alignment), option_menu); gtk_table_attach (GTK_TABLE (table), alignment, 1, 2, 1, 2, GTK_EXPAND | GTK_FILL, GTK_FILL, 5, 1); /* Keep Aspect Ratio */ toggle = gtkutil_create_check_button (_("Keep aspect ratio"), conf.imgview_keep_aspect, gtkutil_get_data_from_toggle_cb, &config_changed->imgview_keep_aspect); gtk_box_pack_start (GTK_BOX (vbox), toggle, FALSE, FALSE, 0); /* Default Image Scale Spinner */ hbox = gtk_hbox_new (FALSE, 5); gtk_container_set_border_width (GTK_CONTAINER(hbox), 5); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); label = gtk_label_new (_("Default Image Scale")); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); adj = (GtkAdjustment *) gtk_adjustment_new (conf.imgview_scale, 1.0, 10000.0, 1.0, 5.0, 0.0); spinner = gtkutil_create_spin_button (adj); gtk_widget_set_size_request(spinner, 50, -1); prefs_win.image_scale_spin = spinner; g_signal_connect (G_OBJECT (adj), "value_changed", G_CALLBACK (gtkutil_get_data_from_adjustment_by_float_cb), &config_changed->imgview_scale); gtk_box_pack_start (GTK_BOX (hbox), spinner, FALSE, FALSE, 0); label = gtk_label_new (_("%")); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); /* keep original image on memory or not */ toggle = gtkutil_create_check_button (_("Keep original image on memory"), conf.imgview_buffer, gtkutil_get_data_from_toggle_cb, &config_changed->imgview_buffer); gtk_box_pack_start (GTK_BOX (vbox), toggle, FALSE, FALSE, 0); gtk_widget_set_sensitive (prefs_win.image_scale_spin, conf.imgview_default_zoom == 0 || conf.imgview_default_zoom == 1); /* show all */ gtk_widget_show_all (main_vbox); return main_vbox; }
int main (int argc, char *argv[]) { gchar *ok_label = NULL; gchar *cancel_label = NULL; gint c,cont; /*-------------*/ #ifdef ENABLE_NLS bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); #endif setlocale(LC_ALL,"es_ES"); /*-------------*/ gtk_init (&argc, &argv); win = gtk_dialog_new (); if (!win) quit (RETURN_ERROR_NOMEM); gtk_signal_connect ((GtkObject *)win, "delete_event", // quit if window GTK_SIGNAL_FUNC (cancel_cb), NULL);// gets closed msgbox = gtk_vbox_new (FALSE, 0); if (!msgbox) quit (RETURN_ERROR_NOMEM); gtk_container_set_border_width((GtkContainer *)msgbox, 5); //gtk_box_pack_start_defaults ((GtkBox*)(((GtkDialog*)win)->vbox), msgbox); // para que no haya límite al minimizar gtk_window_set_policy (GTK_WINDOW(win), TRUE,TRUE,FALSE); // gtk_box_pack_start ((GtkBox*)(((GtkDialog*)win)->vbox), msgbox,TRUE,TRUE,0); cont=0; while ((c = getopt (argc, argv, "h?m:t:p:E::e::d:B::b::r:X::x::z:Z:c:C:a::o:N::n::")) != -1) { extern char *optarg; extern int optind; switch (c) { case 't': Debug("set window title: %s\n", optarg); gtk_window_set_title ((GtkWindow *)win, (gchar *)optarg); break; case 'c': case 'C': create_check_button(optarg, c=='C'); Debug("checkbox: %s\n",optarg); break; case 'p': create_text_prompt(optarg); break; case 'e': case 'E': create_entry_field(optarg, c=='E'); Debug("text entry field: %s\n", optarg); break; case 'd': last_entry_default(optarg); Debug("defaults to: %s\n", optarg); break; case 'b': case 'B': create_combo_field(optarg,c=='B'); Debug("defaults to: %s\n", optarg); break; case 'r': last_combo_default(optarg); Debug("defaults to: %s\n", optarg); break; case 'x': case 'X': create_text_field(optarg, c=='X'); Debug("text field: %s\n", optarg); break; case 'n': case 'N': create_text_paned(optarg, c=='N'); Debug("text paned: %s\n", optarg); break; case 'z': case 'Z': last_text_default(optarg,c=='Z',++cont); Debug("defaults to: %s\n", optarg); break; case 'm': optind = create_option_menu(optind, optarg, argv); break; case 'o': ok_label = (gchar *)optarg; break; case 'a': if(optarg) { cancel_label = (gchar *)optarg; } else { /* set to an impossible value, so that we know later on, that * we don't want to create the cancel button. */ cancel_label = (gchar *)win; } break; case '?': case 'h': fputs(GREQ_VERSION, stderr); fprintf(stderr,"Usage: %s [-t<window-title>] [-p<text-prompt>] [[-(e | E)[<entry-label>] [-d<default-value>]] [-(c | C)<checkbox-label>] [-m<menu-label> <menu-item> ...] [-o<ok-label>] [-a[<abort-label>]]\n", argv[0]); quit(RETURN_ERROR_ARG); } } if ( optind < argc ) { fprintf(stderr, "%s: Unknown argument", argv[0]); if (optind < argc - 1) fputc ('s', stderr); fputc(':',stderr); do { fputc(' ', stderr); fputs(argv[optind++], stderr); } while (optind < argc); fputc('\n', stderr); quit(RETURN_ERROR_ARG); } create_ok_button(ok_label); if(cancel_label != (gchar *)win) create_cancel_button(cancel_label); #if GTK_MAJOR_VERSION < 2 if(widgets) { Debug ("Setting focus\n"); gtk_widget_grab_focus((GtkWidget *) widgets->data); }; #endif gtk_widget_show_all (win); gtk_main(); // we should never get here, but just to make gcc happy return (RETURN_OK); }