gnome-scan r817 - in trunk: . lib src



Author: bersace
Date: Mon Feb  2 21:45:46 2009
New Revision: 817
URL: http://svn.gnome.org/viewvc/gnome-scan?rev=817&view=rev

Log:
Added format preselection

Modified:
   trunk/ChangeLog
   trunk/lib/gnome-scan-option.vala
   trunk/lib/gnome-scan-preselection.vala
   trunk/src/flegita.vala

Modified: trunk/lib/gnome-scan-option.vala
==============================================================================
--- trunk/lib/gnome-scan-option.vala	(original)
+++ trunk/lib/gnome-scan-option.vala	Mon Feb  2 21:45:46 2009
@@ -194,6 +194,11 @@
 			this._values = values;
 			this.hint = hint;
 		}
+
+		public void append(Gnome.Scan.EnumValue? value)
+		{
+			_values.append(value);
+		}
 	}
 
 	public class OptionBoxed : Option {

Modified: trunk/lib/gnome-scan-preselection.vala
==============================================================================
--- trunk/lib/gnome-scan-preselection.vala	(original)
+++ trunk/lib/gnome-scan-preselection.vala	Mon Feb  2 21:45:46 2009
@@ -46,4 +46,25 @@
 			option.set_g_value(this.value);
 		}
 	}
+
+	public class PreselEnumValues : Preselection {
+		public weak SList<Gnome.Scan.EnumValue?> values {set construct; get;}
+
+		public PreselEnumValues(string option_name, SList<Gnome.Scan.EnumValue?> values)
+		{
+			this.option_name = option_name;
+			this.values = values;
+		}
+
+		public override void apply(Option option)
+		{
+			if (!(option is OptionEnum))
+				return;
+
+			var opt = option as OptionEnum;
+
+			foreach(weak Gnome.Scan.EnumValue value in values)
+				opt.append(value);
+		}
+	}
 }

Modified: trunk/src/flegita.vala
==============================================================================
--- trunk/src/flegita.vala	(original)
+++ trunk/src/flegita.vala	Mon Feb  2 21:45:46 2009
@@ -30,6 +30,10 @@
 	Gdk.Screen screen;
 	double screen_resolution;
 	Value default_res;
+	PaperSize ps;
+	Value value;
+	Gnome.Scan.EnumValue evalue;
+	SList<Gnome.Scan.EnumValue?> ps_list = null;
 
 	GLib.Environment.set_prgname("flegita");
 	GLib.Environment.set_application_name(_("Scanner Utility"));
@@ -52,6 +56,17 @@
 		default_res.set_double(150);
 	job.register_preselection(new PreselValue("resolution", default_res));
 
+	// PrÃselect paper size
+	string[] formats = new string[] {"om_small-photo", "iso_dl"};
+	foreach(string format in formats) {
+		ps = new PaperSize(format);
+		value = Value(typeof(Gtk.PaperSize));
+		value.set_pointer(ps);
+		evalue = Gnome.Scan.EnumValue(value, ps.get_display_name(), null);
+		ps_list.append(evalue);
+	}
+	job.register_preselection(new PreselEnumValues("paper-size", ps_list));
+
 	dialog = new Gnome.Scan.Dialog(null, job);
 	dialog.run();
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]