comparison org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/printing/Printer.d @ 51:c01d033c633a

[swt lin]
author Frank Benoit <benoit@tionex.de>
date Fri, 27 Mar 2009 19:58:06 +0100
parents 7a2dd761a8b2
children fb3aa8075988
comparison
equal deleted inserted replaced
50:d5075f5226e5 51:c01d033c633a
27 import org.eclipse.swt.internal.gtk.OS; 27 import org.eclipse.swt.internal.gtk.OS;
28 import org.eclipse.swt.printing.PrinterData; 28 import org.eclipse.swt.printing.PrinterData;
29 import java.lang.all; 29 import java.lang.all;
30 30
31 version(Tango){ 31 version(Tango){
32 import tango.util.Convert; 32 import tango.util.Convert;
33 } else { // Phobos 33 } else { // Phobos
34 import std.conv;
34 } 35 }
35 36
36 37
37 /** 38 /**
38 * Instances of this class are used to print to a printer. 39 * Instances of this class are used to print to a printer.
179 } 180 }
180 181
181 static PrinterData printerDataFromGtkPrinter(GtkPrinter* printer) { 182 static PrinterData printerDataFromGtkPrinter(GtkPrinter* printer) {
182 auto backend = OS.gtk_printer_get_backend(printer); 183 auto backend = OS.gtk_printer_get_backend(printer);
183 auto address = OS.G_OBJECT_TYPE_NAME(backend); 184 auto address = OS.G_OBJECT_TYPE_NAME(backend);
184 String backendType = fromStringz( address ).dup; 185 String backendType = fromStringz( address )._idup();
185 186
186 address = OS.gtk_printer_get_name (printer); 187 address = OS.gtk_printer_get_name (printer);
187 String name = fromStringz( address ).dup; 188 String name = fromStringz( address )._idup();
188 189
189 return new PrinterData (backendType, name); 190 return new PrinterData (backendType, name);
190 } 191 }
191 192
192 /* 193 /*
193 * Restore printer settings and page_setup data from data. 194 * Restore printer settings and page_setup data from data.
194 */ 195 */
195 static void restore(char[] data, GtkPrintSettings* settings, GtkPageSetup* page_setup) { 196 static void restore(char[] data, GtkPrintSettings* settings, GtkPageSetup* page_setup) {
196 settingsData = data; 197 settingsData = data._idup();
197 start = end = 0; 198 start = end = 0;
198 while (end < settingsData.length && settingsData[end] !is 0) { 199 while (end < settingsData.length && settingsData[end] !is 0) {
199 start = end; 200 start = end;
200 while (end < settingsData.length && settingsData[end] !is 0) end++; 201 while (end < settingsData.length && settingsData[end] !is 0) end++;
201 end++; 202 end++;
217 OS.gtk_page_setup_set_orientation(page_setup, restoreInt("orientation")); //$NON-NLS-1$ 218 OS.gtk_page_setup_set_orientation(page_setup, restoreInt("orientation")); //$NON-NLS-1$
218 OS.gtk_page_setup_set_top_margin(page_setup, restoreDouble("top_margin"), OS.GTK_UNIT_MM); //$NON-NLS-1$ 219 OS.gtk_page_setup_set_top_margin(page_setup, restoreDouble("top_margin"), OS.GTK_UNIT_MM); //$NON-NLS-1$
219 OS.gtk_page_setup_set_bottom_margin(page_setup, restoreDouble("bottom_margin"), OS.GTK_UNIT_MM); //$NON-NLS-1$ 220 OS.gtk_page_setup_set_bottom_margin(page_setup, restoreDouble("bottom_margin"), OS.GTK_UNIT_MM); //$NON-NLS-1$
220 OS.gtk_page_setup_set_left_margin(page_setup, restoreDouble("left_margin"), OS.GTK_UNIT_MM); //$NON-NLS-1$ 221 OS.gtk_page_setup_set_left_margin(page_setup, restoreDouble("left_margin"), OS.GTK_UNIT_MM); //$NON-NLS-1$
221 OS.gtk_page_setup_set_right_margin(page_setup, restoreDouble("right_margin"), OS.GTK_UNIT_MM); //$NON-NLS-1$ 222 OS.gtk_page_setup_set_right_margin(page_setup, restoreDouble("right_margin"), OS.GTK_UNIT_MM); //$NON-NLS-1$
222 char [] name = restoreBytes("paper_size_name", true); //$NON-NLS-1$ 223 String name = restoreBytes("paper_size_name", true); //$NON-NLS-1$
223 char [] display_name = restoreBytes("paper_size_display_name", true); //$NON-NLS-1$ 224 String display_name = restoreBytes("paper_size_display_name", true); //$NON-NLS-1$
224 char [] ppd_name = restoreBytes("paper_size_ppd_name", true); //$NON-NLS-1$ 225 String ppd_name = restoreBytes("paper_size_ppd_name", true); //$NON-NLS-1$
225 double width = restoreDouble("paper_size_width"); //$NON-NLS-1$ 226 double width = restoreDouble("paper_size_width"); //$NON-NLS-1$
226 double height = restoreDouble("paper_size_height"); //$NON-NLS-1$ 227 double height = restoreDouble("paper_size_height"); //$NON-NLS-1$
227 bool custom = restoreBoolean("paper_size_is_custom"); //$NON-NLS-1$ 228 bool custom = restoreBoolean("paper_size_is_custom"); //$NON-NLS-1$
228 GtkPaperSize* paper_size = null; 229 GtkPaperSize* paper_size = null;
229 if (custom) { 230 if (custom) {
307 public this(PrinterData data) { 308 public this(PrinterData data) {
308 super(checkNull(data)); 309 super(checkNull(data));
309 } 310 }
310 311
311 static int restoreInt(String key) { 312 static int restoreInt(String key) {
312 char [] value = restoreBytes(key, false); 313 String value = restoreBytes(key, false);
313 return to!(int)( value ); 314 return Integer.parseInt( value );
314 } 315 }
315 316
316 static double restoreDouble(String key) { 317 static double restoreDouble(String key) {
317 char [] value = restoreBytes(key, false); 318 String value = restoreBytes(key, false);
318 return to!(double)( value ); 319 return Double.parseDouble( value );
319 } 320 }
320 321
321 static bool restoreBoolean(String key) { 322 static bool restoreBoolean(String key) {
322 char [] value = restoreBytes(key, false); 323 String value = restoreBytes(key, false);
323 return to!(bool)( value ); 324 return Boolean.getBoolean( value );
324 } 325 }
325 326
326 static String restoreBytes(String key, bool nullTerminate) { 327 static String restoreBytes(String key, bool nullTerminate) {
327 //get key 328 //get key
328 start = end; 329 start = end;
340 char [] valueBuffer = new char [length_]; 341 char [] valueBuffer = new char [length_];
341 System.arraycopy (settingsData, start, valueBuffer, 0, length_); 342 System.arraycopy (settingsData, start, valueBuffer, 0, length_);
342 343
343 if (DEBUG) getDwtLogger().info( __FILE__, __LINE__, "{}: {}", keyBuffer, valueBuffer ); 344 if (DEBUG) getDwtLogger().info( __FILE__, __LINE__, "{}: {}", keyBuffer, valueBuffer );
344 345
345 return valueBuffer; 346 return cast(String)valueBuffer;
346 } 347 }
347 348
348 /** 349 /**
349 * Returns a reasonable font for applications to use. 350 * Returns a reasonable font for applications to use.
350 * On some platforms, this will match the "default font" 351 * On some platforms, this will match the "default font"