Author: manolo
Date: 2011-10-29 08:04:37 -0700 (Sat, 29 Oct 2011)
New Revision: 9159
Log:
Added more paper sizes for fltk3::PostScript_Printer.
Fixed saving of the paper size preference for the "Print to File" printer.

Modified:
   branches/branch-3.0/src/fltk3/PostScript.cxx
   branches/branch-3.0/src/fltk3/print_panel.cxx

Modified: branches/branch-3.0/src/fltk3/PostScript.cxx
===================================================================
--- branches/branch-3.0/src/fltk3/PostScript.cxx        2011-10-29 14:50:04 UTC 
(rev 9158)
+++ branches/branch-3.0/src/fltk3/PostScript.cxx        2011-10-29 15:04:37 UTC 
(rev 9159)
@@ -149,7 +149,7 @@
 #ifndef FLTK3_DOXYGEN
 
 #if ! (defined(__APPLE__) || defined(WIN32) )
-  #include "print_panel.cxx"
+#  include "print_panel.cxx"
 #endif
 
 //  Prolog string 
@@ -1546,8 +1546,34 @@
     return 1;
 
   // get options
-
-  format = print_page_size->value() ? fltk3::PagedDevice::A4 : 
fltk3::PagedDevice::LETTER;
+  switch (print_page_size->value()) {
+    case 0:
+      format = fltk3::Paged_Device::LETTER;
+      break;
+    case 2:
+      format = fltk3::Paged_Device::LEGAL;
+      break;
+    case 3:
+      format = fltk3::Paged_Device::EXECUTIVE;
+      break;
+    case 4:
+      format = fltk3::Paged_Device::A3;
+      break;
+    case 5:
+      format = fltk3::Paged_Device::A5;
+      break;
+    case 6:
+      format = fltk3::Paged_Device::B5;
+      break;
+    case 7:
+      format = fltk3::Paged_Device::ENVELOPE;
+      break;
+    case 8:
+      format = fltk3::Paged_Device::DLE;
+      break;
+    default:
+      format = fltk3::Paged_Device::A4;
+  }
   { // page range choice
     int from = 1, to = pages;
     if (print_pages->value()) {

Modified: branches/branch-3.0/src/fltk3/print_panel.cxx
===================================================================
--- branches/branch-3.0/src/fltk3/print_panel.cxx       2011-10-29 14:50:04 UTC 
(rev 9158)
+++ branches/branch-3.0/src/fltk3/print_panel.cxx       2011-10-29 15:04:37 UTC 
(rev 9159)
@@ -120,9 +120,16 @@
 }
 
 static fltk3::MenuItem menu_print_page_size[] = {
- {"Letter", 0,  0, 0, 0, fltk3::NORMAL_LABEL, 0, 14, 0},
- {"A4", 0,  0, 0, 0, fltk3::NORMAL_LABEL, 0, 14, 0},
- {0,0,0,0,0,0,0,0,0}
+  {"Letter", 0,  0, 0, 0, fltk3::NORMAL_LABEL, 0, 14, 0},
+  {"A4", 0,  0, 0, 0, fltk3::NORMAL_LABEL, 0, 14, 0},
+  {"Legal", 0,  0, 0, 0, fltk3::NORMAL_LABEL, 0, 14, 0},
+  {"Executive", 0,  0, 0, 0, fltk3::NORMAL_LABEL, 0, 14, 0},
+  {"A3", 0,  0, 0, 0, fltk3::NORMAL_LABEL, 0, 14, 0},
+  {"A5", 0,  0, 0, 0, fltk3::NORMAL_LABEL, 0, 14, 0},
+  {"B5", 0,  0, 0, 0, fltk3::NORMAL_LABEL, 0, 14, 0},
+  {"Com10", 0,  0, 0, 0, fltk3::NORMAL_LABEL, 0, 14, 0},
+  {"DL", 0,  0, 0, 0, fltk3::NORMAL_LABEL, 0, 14, 0},
+  {0,0,0,0,0,0,0,0,0}
 };
 
 #include <fltk3/Pixmap.h>
@@ -227,10 +234,10 @@
   int val;
   const char *printer = (const char 
*)print_choice->menu()[print_choice->value()].user_data();
 
-  snprintf(name, sizeof(name), "%s/page_size", printer);
+  snprintf(name, sizeof(name), "%s/page_size", printer == NULL ? "" : printer);
   print_prefs.set(name, print_page_size->value());
 
-  snprintf(name, sizeof(name), "%s/output_mode", printer);
+  snprintf(name, sizeof(name), "%s/output_mode", printer == NULL ? "" : 
printer);
   for (val = 0; val < 4; val ++) {
     if (print_output_mode[val]->value()) break;
   }

_______________________________________________
fltk-commit mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-commit

Reply via email to