Beispiel #1
0
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;
}
Beispiel #2
0
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);
}