Mercurial > projects > dwt2
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" |