FLTK logo

[Library] r9033 - branches/branch-1.3/src

FLTK matrix user chat room
(using Element browser app)   FLTK gitter user chat room   GitHub FLTK Project   FLTK News RSS Feed  
  FLTK Apps      FLTK Library      Forums      Links     Login 
 All Forums  |  Back to fltk.commit  ]
 
Previous Message ]Next Message ]

[Library] r9033 - branches/branch-1.3/src fltk-dev Sep 08, 2011  
 
Author: manolo
Date: 2011-09-08 03:56:51 -0700 (Thu, 08 Sep 2011)
New Revision: 9033
Log:
Mac OS: print dialog uses only one window instead of two.

Modified:
   branches/branch-1.3/src/Fl_Quartz_Printer.mm

Modified: branches/branch-1.3/src/Fl_Quartz_Printer.mm
===================================================================
--- branches/branch-1.3/src/Fl_Quartz_Printer.mm	2011-09-08 08:09:20 UTC (rev 9032)
+++ branches/branch-1.3/src/Fl_Quartz_Printer.mm	2011-09-08 10:56:51 UTC (rev 9033)
@@ -42,35 +42,30 @@
 //returns 0 iff OK
 {
   OSStatus status = 0;
+  fl_open_display();
   Fl_X::q_release_context();
 #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
-  if( [NSPrintPanel instancesRespondToSelector:@selector(runModalWithPrintInfo:)] &&
-     [NSPrintInfo instancesRespondToSelector:@selector(PMPrintSession)] ) {
-    NSAutoreleasePool *localPool;
-    localPool = [[NSAutoreleasePool alloc] init]; 
+  if (fl_mac_os_version >= 100500) {
     NSPrintInfo *info = [NSPrintInfo sharedPrintInfo];
-    NSPageLayout *layout = [NSPageLayout pageLayout];
-    NSInteger retval = [layout runModal];
-    if(retval == NSOKButton) {
-      NSPrintPanel *panel = [NSPrintPanel printPanel];
-      retval = (NSInteger)[panel runModalWithPrintInfo:info];//from 10.5 only
-    }
+    NSPrintPanel *panel = [NSPrintPanel printPanel];
+    //from 10.5
+    [panel setOptions:NSPrintPanelShowsCopies | NSPrintPanelShowsPageRange | NSPrintPanelShowsPageSetupAccessory];
+    NSInteger retval = [panel runModalWithPrintInfo:info];//from 10.5
     if(retval != NSOKButton) {
-      Fl::first_window()->show();
-      [localPool release];
+      Fl_Window *w = Fl::first_window();
+      if (w) w->show();
       return 1;
     }
-    printSession = (PMPrintSession)[info PMPrintSession];
-    pageFormat = (PMPageFormat)[info PMPageFormat];
-    printSettings = (PMPrintSettings)[info PMPrintSettings];
+    printSession = (PMPrintSession)[info PMPrintSession];//from 10.5
+    pageFormat = (PMPageFormat)[info PMPageFormat];//from 10.5
+    printSettings = (PMPrintSettings)[info PMPrintSettings];//from 10.5
     UInt32 from32, to32;
     PMGetFirstPage(printSettings, &from32); 
     if (frompage) *frompage = (int)from32;
     PMGetLastPage(printSettings, &to32); 
     if (topage) *topage = (int)to32;
     if(topage && *topage > pagecount) *topage = pagecount;
-    status = PMSessionBeginCGDocumentNoDialog(printSession, printSettings, pageFormat);
-    [localPool release];
+    status = PMSessionBeginCGDocumentNoDialog(printSession, printSettings, pageFormat);//from 10.4
   }
   else {
 #endif
@@ -289,7 +284,8 @@
   PMSessionEndDocumentNoDialog(printSession);
   Fl_Display_Device::display_device()->set_current();
   fl_gc = 0;
-  Fl::first_window()->show();
+  Fl_Window *w = Fl::first_window();
+  if (w) w->show();
 }
 
 #endif // __APPLE__

Direct Link to Message ]
 
     
Previous Message ]Next Message ]
 
 

Comments are owned by the poster. All other content is copyright 1998-2024 by Bill Spitzak and others. This project is hosted by The FLTK Team. Please report site problems to 'erco@seriss.com'.