Author: manolo
Date: 2012-09-27 05:49:39 -0700 (Thu, 27 Sep 2012)
New Revision: 9685
Log:
Removed several deprecation warnings.

Modified:
   branches/branch-1.3/FL/Fl_Native_File_Chooser.H
   branches/branch-1.3/src/Fl_Device.cxx
   branches/branch-1.3/src/Fl_Native_File_Chooser_MAC.mm
   branches/branch-1.3/src/Fl_cocoa.mm

Modified: branches/branch-1.3/FL/Fl_Native_File_Chooser.H
===================================================================
--- branches/branch-1.3/FL/Fl_Native_File_Chooser.H     2012-09-26 14:34:02 UTC 
(rev 9684)
+++ branches/branch-1.3/FL/Fl_Native_File_Chooser.H     2012-09-27 12:49:39 UTC 
(rev 9685)
@@ -213,6 +213,7 @@
   void add_filter(const char *, const char *);
   void parse_filter(const char *from);
   int post();
+  int runmodal();
 #endif
 
 #if ! defined(__APPLE__) && !defined(WIN32)

Modified: branches/branch-1.3/src/Fl_Device.cxx
===================================================================
--- branches/branch-1.3/src/Fl_Device.cxx       2012-09-26 14:34:02 UTC (rev 
9684)
+++ branches/branch-1.3/src/Fl_Device.cxx       2012-09-27 12:49:39 UTC (rev 
9685)
@@ -70,28 +70,6 @@
 }
 
 Fl_Display_Device::Fl_Display_Device(Fl_Graphics_Driver *graphics_driver) : 
Fl_Surface_Device( graphics_driver) {
-#ifdef __APPLE__
-  SInt32 versionMajor = 0;
-  SInt32 versionMinor = 0;
-  SInt32 versionBugFix = 0;
-  SInt32 version;
-  Gestalt( gestaltSystemVersion, &version);
-#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4
-  if (version >= 0x1040) {
-    Gestalt( gestaltSystemVersionMajor, &versionMajor );
-    Gestalt( gestaltSystemVersionMinor, &versionMinor );
-    Gestalt( gestaltSystemVersionBugFix, &versionBugFix );
-    }
-  else {
-#endif
-    versionMajor = 10;
-    versionMinor = (version / 0x10) % 0x10;
-    versionBugFix = version % 0x10;
-#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4
-    }
-#endif
-  fl_mac_os_version = versionMajor * 10000 + versionMinor * 100 + 
versionBugFix;
-#endif
 this->set_current();
 };
 

Modified: branches/branch-1.3/src/Fl_Native_File_Chooser_MAC.mm
===================================================================
--- branches/branch-1.3/src/Fl_Native_File_Chooser_MAC.mm       2012-09-26 
14:34:02 UTC (rev 9684)
+++ branches/branch-1.3/src/Fl_Native_File_Chooser_MAC.mm       2012-09-27 
12:49:39 UTC (rev 9685)
@@ -343,11 +343,12 @@
 #define UNLIKELYPREFIX "___fl_very_unlikely_prefix_"
 
 int Fl_Native_File_Chooser::get_saveas_basename(void) {
-  char *q = strdup( [[(NSSavePanel*)_panel filename] fileSystemRepresentation] 
);
+  char *q = strdup( [[[(NSSavePanel*)_panel URL] path] UTF8String] );
   id delegate = [(NSSavePanel*)_panel delegate];
   if (delegate != nil) {
-    const char *d = [[(NSSavePanel*)_panel directory] 
fileSystemRepresentation];
+    const char *d = [[[[(NSSavePanel*)_panel URL] path] 
stringByDeletingLastPathComponent] UTF8String];
     int l = strlen(d) + 1;
+    if (strcmp(d, "/") == 0) l = 1;
     int lu = strlen(UNLIKELYPREFIX);
     // Remove UNLIKELYPREFIX between directory and filename parts
     memmove(q + l, q + l + lu, strlen(q + l + lu) + 1);
@@ -484,7 +485,34 @@
   [panel setAccessoryView:view];
   return popup;
 }
-  
+
+int Fl_Native_File_Chooser::runmodal()
+{
+  NSString *dir = nil;
+  NSString *fname = nil;
+  NSString *preset = nil;
+  int retval;
+  if (_preset_file) {
+    preset = [[NSString alloc] initWithUTF8String:_preset_file];
+    if (strchr(_preset_file, '/') != NULL) {
+      dir = [[NSString alloc] initWithString:[preset 
stringByDeletingLastPathComponent]];
+    }
+    fname = [preset lastPathComponent];
+  }
+  if (_directory && !dir) dir = [[NSString alloc] 
initWithUTF8String:_directory];
+  if (fl_mac_os_version >= 100600) {
+    if (dir) [(NSSavePanel*)_panel setDirectoryURL:[NSURL 
fileURLWithPath:dir]];
+    if (fname) [(NSSavePanel*)_panel setNameFieldStringValue:fname];
+    retval = [(NSSavePanel*)_panel runModal];
+  }
+  else {
+    retval = [(id)_panel runModalForDirectory:dir file:fname];
+  }
+  [dir release];
+  [preset release];
+  return retval;
+}
+
 // POST BROWSER
 //     Internal use only.
 //     Assumes '_opts' has been initialized.
@@ -551,36 +579,21 @@
       [openDelegate setPopup:popup filter_pattern:_filt_patt];
       [(NSOpenPanel*)_panel setDelegate:openDelegate];
     }
-    NSString *dir = nil;
-    NSString *fname = nil;
-    NSString *preset = nil;
-    if (_preset_file) {
-      preset = [[NSString alloc] initWithUTF8String:_preset_file];
-      if (strchr(_preset_file, '/') != NULL) 
-       dir = [[NSString alloc] initWithString:[preset 
stringByDeletingLastPathComponent]];
-      fname = [preset lastPathComponent];
-    }
-    if (_directory && !dir) dir = [[NSString alloc] 
initWithUTF8String:_directory];
-    retval = [(NSOpenPanel*)_panel runModalForDirectory:dir file:fname 
types:nil];     
-    [dir release];
-    [preset release];
+    retval = runmodal();
     if (_filt_total) {
       _filt_value = [popup indexOfSelectedItem];
     }
     if ( retval == NSOKButton ) {
       clear_pathnames();
-      NSArray *array = [(NSOpenPanel*)_panel filenames];
+      NSArray *array = [(NSOpenPanel*)_panel URLs];
       _tpathnames = [array count];
       _pathnames = new char*[_tpathnames];
       for(int i = 0; i < _tpathnames; i++) {
-       _pathnames[i] = strnew([(NSString*)[array objectAtIndex:i] 
fileSystemRepresentation]);
+       _pathnames[i] = strnew([[(NSURL*)[array objectAtIndex:i] path] 
UTF8String]);
       }
     }
   }
   else {
-    NSString *dir = nil;
-    NSString *fname = nil;
-    NSString *preset = nil;
     NSPopUpButton *popup = nil;
     [(NSSavePanel*)_panel setAllowsOtherFileTypes:YES];
     if ( !(_options & SAVEAS_CONFIRM) ) {
@@ -588,26 +601,16 @@
       if (saveDelegate == nil)saveDelegate = [[FLsaveDelegate alloc] init]; // 
not to be ever freed
       [(NSSavePanel*)_panel setDelegate:saveDelegate];
     }
-    if (_preset_file) {
-      preset = [[NSString alloc] initWithUTF8String:_preset_file];
-      if (strchr(_preset_file, '/') != NULL) {
-       dir = [[NSString alloc] initWithString:[preset 
stringByDeletingLastPathComponent]];
-      }
-      fname = [preset lastPathComponent];
-    }
-    if (_directory && !dir) dir = [[NSString alloc] 
initWithUTF8String:_directory];
     if (_filt_total) {
       if (_filt_value >= _filt_total) _filt_value = _filt_total - 1;
       char *t = prepareMacFilter(_filt_total, _filter, _filt_patt);
       popup = createPopupAccessory((NSSavePanel*)_panel, t, 
[[(NSSavePanel*)_panel nameFieldLabel] UTF8String], _filt_value);
       delete[] t;
     }
-    retval = [(NSSavePanel*)_panel runModalForDirectory:dir file:fname];
+    retval = runmodal();
     if (_filt_total) {
       _filt_value = [popup indexOfSelectedItem];
     }
-    [dir release];
-    [preset release];
     if ( retval == NSOKButton ) get_saveas_basename();
   }
   [key makeKeyWindow];

Modified: branches/branch-1.3/src/Fl_cocoa.mm
===================================================================
--- branches/branch-1.3/src/Fl_cocoa.mm 2012-09-26 14:34:02 UTC (rev 9684)
+++ branches/branch-1.3/src/Fl_cocoa.mm 2012-09-27 12:49:39 UTC (rev 9685)
@@ -87,6 +87,7 @@
 static void createAppleMenu(void);
 static Fl_Region MacRegionMinusRect(Fl_Region r, int x,int y,int w,int h);
 static void cocoaMouseHandler(NSEvent *theEvent);
+static int calc_mac_os_version();
 
 static Fl_Quartz_Graphics_Driver fl_quartz_driver;
 static Fl_Display_Device fl_quartz_display(&fl_quartz_driver);
@@ -102,7 +103,7 @@
 //int fl_disable_transient_for;           // secret method of removing 
TRANSIENT_FOR
 Window fl_window;
 Fl_Window *Fl_Window::current_;
-int fl_mac_os_version = 0;             // the version number of the running 
Mac OS X (e.g., 100604 for 10.6.4)
+int fl_mac_os_version = calc_mac_os_version();         // the version number 
of the running Mac OS X (e.g., 100604 for 10.6.4)
 
 // forward declarations of variables in this file
 static int got_events = 0;
@@ -3455,6 +3456,16 @@
   return f;
 }
   
+/* Returns the version of the running Mac OS as an int such as 100802 for 
10.8.2
+ */
+static int calc_mac_os_version() {
+  int M, m, b = 0;
+  NSDictionary * sv = [NSDictionary 
dictionaryWithContentsOfFile:@"/System/Library/CoreServices/SystemVersion.plist"];
+  const char *s = [[sv objectForKey:@"ProductVersion"] UTF8String];
+  sscanf(s, "%d.%d.%d", &M, &m, &b);
+  return M*10000 + m*100 + b;
+}
+
 #endif // __APPLE__
 
 //

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

Reply via email to