ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/BasiliskII/src/MacOSX/PrefsEditor.mm
(Generate patch)

Comparing BasiliskII/src/MacOSX/PrefsEditor.mm (file contents):
Revision 1.13 by cebix, 2004-01-12T15:29:24Z vs.
Revision 1.17 by nigel, 2005-09-19T06:02:47Z

# Line 4 | Line 4
4   *
5   *      $Id$
6   *
7 < *  Basilisk II (C) 1997-2004 Christian Bauer
7 > *  Basilisk II (C) 1997-2005 Christian Bauer
8   *
9   *  This program is free software; you can redistribute it and/or modify
10   *  it under the terms of the GNU General Public License as published by
# Line 105 | Line 105
105  
106   @end
107  
108 @implementation PrefsEditor
109
108   #import <AppKit/NSImage.h>              // For [NSBundle pathForImageResource:] proto
109  
110   #include <string>
# Line 116 | Line 114 | extern string UserPrefsPath;   // from pre
114   #import "sysdeps.h"                             // Types used in Basilisk C++ code
115   #import "video_macosx.h"                // some items that we edit here
116   #import "misc_macosx.h"                 // WarningSheet() prototype
117 + #import "main_macosx.h"                 // ChoiceAlert() prototype
118 +
119  
120   #import <prefs.h>
121  
122   #define DEBUG 0
123   #import <debug.h>
124  
125 + @implementation PrefsEditor
126 +
127   - (PrefsEditor *) init
128   {
129          self = [super init];
# Line 129 | Line 131 | extern string UserPrefsPath;   // from pre
131          edited = NO;
132  
133          devs = @"/dev";
134 <        home = NSHomeDirectory();
134 >        home = [NSHomeDirectory() retain];
135          volsDS = [TableDS new];
136          SCSIds = [TableDS new];
137  
# Line 138 | Line 140 | extern string UserPrefsPath;   // from pre
140                  NSLog (@"%s - Can't create NSImageCell?", __PRETTY_FUNCTION__);
141  
142          blank  = [NSImage new];
143 <        locked = [NSImage alloc];
144 <        if ( [locked initWithContentsOfFile:
145 <                                 [[NSBundle mainBundle]
144 <                                                pathForImageResource: @"nowrite.icns"]] == nil )
143 >        locked = [[NSImage alloc] initWithContentsOfFile:
144 >                                [[NSBundle mainBundle] pathForImageResource: @"nowrite.icns"]];
145 >        if (locked == nil )
146                  NSLog(@"%s - Couldn't open write protection image", __PRETTY_FUNCTION__);
147  
148          return self;
# Line 149 | Line 150 | extern string UserPrefsPath;   // from pre
150  
151   - (void) dealloc
152   {
153 <        [volsDS   dealloc];
154 <        [SCSIds   dealloc];
155 <        [lockCell dealloc];
156 <        [locked   dealloc];
157 <        [blank    dealloc];
153 >        [volsDS   release];
154 >        [SCSIds   release];
155 >        [lockCell release];
156 >        [blank    release];
157 >        [locked   release];
158          [super    dealloc];
159   }
160  
# Line 196 | Line 197 | extern string UserPrefsPath;   // from pre
197          {
198                  [volsDS addObject: (NSObject *) locked
199                                   withPath: [oP filename] ];
200 <                PrefsAddString("disk", [[oP filename] cString]);
200 >                PrefsAddString("disk", [[oP filename] UTF8String]);
201                  [diskImages reloadData];
202                  edited = YES;
203          }
# Line 217 | Line 218 | extern string UserPrefsPath;   // from pre
218                                                          types:nil] == NSOKButton )
219          {
220                  [extFS setStringValue: [oP directory] ];
221 <                PrefsReplaceString("extfs", [[oP directory] cString]);
221 >                PrefsReplaceString("extfs", [[oP directory] UTF8String]);
222                  edited = YES;
223          }
224   }
# Line 234 | Line 235 | extern string UserPrefsPath;   // from pre
235                                                          types:nil] == NSOKButton )
236          {
237                  [prefsFile setStringValue: [oP filename] ];
238 <                UserPrefsPath = [[oP filename] cString];
238 >                UserPrefsPath = [[oP filename] UTF8String];
239          }
240   }
241  
# Line 250 | Line 251 | extern string UserPrefsPath;   // from pre
251                                                          types:nil] == NSOKButton )
252          {
253                  [ROMfile setStringValue: [oP filename] ];
254 <                PrefsReplaceString("rom", [[oP filename] cString]);
254 >                PrefsReplaceString("rom", [[oP filename] UTF8String]);
255                  edited = YES;
256          }
257   }
# Line 259 | Line 260 | extern string UserPrefsPath;   // from pre
260  
261   - (IBAction) ChangeBootFrom: (NSMatrix *)sender
262   {
263 <        if ( [sender selectedCell] == bootFromCD )
263 >        if ( [sender selectedCell] == (id)bootFromCD )
264                  PrefsReplaceInt32("bootdriver", CDROMRefNum);
265          else
266                  PrefsReplaceInt32("bootdriver", 0);
# Line 434 | Line 435 | extern string UserPrefsPath;   // from pre
435          if ( [sP runModalForDirectory:NSHomeDirectory() file:@"basilisk-II.vol"] == NSOKButton )
436          {
437                  char            cmd[1024];
438 <                const char      *filename = [[sP filename] cString];
438 >                const char      *filename = [[sP filename] UTF8String];
439                  int                     retVal,
440                                          size = [newVolumeSize intValue];
441  
442                  sprintf(cmd, "dd if=/dev/zero \"of=%s\" bs=1024k count=%d", filename, size);
443 +
444                  retVal = system(cmd);
445                  if (retVal != 0)
446                  {
# Line 471 | Line 473 | shouldProceedAfterError: (NSDictionary *
473  
474   - (IBAction) DeleteVolume: (id)sender
475   {
474 //      const char *path = [self RemoveVolumeEntry];
475 //      if ( unlink(path) == -1 )
476          NSString        *Path = [self RemoveVolumeEntry];
477  
478 +        if ( ! Path )
479 +                return;
480 +
481          if ( ! [[NSFileManager defaultManager] removeFileAtPath: Path
482                                                                                                          handler: self] )
483          {
484                  WarningSheet(@"Unable to delete volume", panel);
485 < //              NSLog(@"%s unlink(%s) failed - %s", __PRETTY_FUNCTION__, path, strerror(errno));
485 >                NSLog(@"%s unlink(%s) failed - %s", __PRETTY_FUNCTION__,
486 >                                                                        [Path cString], strerror(errno));
487          }
488   }
489  
# Line 514 | Line 518 | shouldProceedAfterError: (NSDictionary *
518   {
519          NSString        *path = [etherNet stringValue];
520  
521 <        PrefsReplaceString("ether", [path cString]);
521 >        PrefsReplaceString("ether", [path UTF8String]);
522          edited = YES;
523   }
524  
# Line 522 | Line 526 | shouldProceedAfterError: (NSDictionary *
526   {
527          NSString        *path = [extFS stringValue];
528  
529 <        PrefsReplaceString("extfs", [path cString]);
529 >        PrefsReplaceString("extfs", [path UTF8String]);
530          edited = YES;
531   }
532  
# Line 539 | Line 543 | shouldProceedAfterError: (NSDictionary *
543   {
544          NSString        *path = [modem stringValue];
545  
546 <        PrefsReplaceString("seriala", [path cString]);
546 >        PrefsReplaceString("seriala", [path UTF8String]);
547          edited = YES;
548   }
549  
# Line 558 | Line 562 | shouldProceedAfterError: (NSDictionary *
562   {
563          NSString        *path = [printer stringValue];
564  
565 <        PrefsReplaceString("serialb", [path cString]);
565 >        PrefsReplaceString("serialb", [path UTF8String]);
566          edited = YES;
567   }
568  
# Line 566 | Line 570 | shouldProceedAfterError: (NSDictionary *
570   {
571          NSString        *path = [ROMfile stringValue];
572  
573 <        PrefsReplaceString("rom", [path cString]);
573 >        PrefsReplaceString("rom", [path UTF8String]);
574   }
575  
576   - (IBAction) RemoveSCSI: (id)sender
# Line 579 | Line 583 | shouldProceedAfterError: (NSDictionary *
583                  NSLog (@"%s - [SCSIds deleteRow: %d] failed", __PRETTY_FUNCTION__, row);
584          [SCSIdisks reloadData];
585          sprintf(pref, "scsi%d", SCSIid);
586 <        PrefsRemoveItem(pref,0);
586 >        //PrefsRemoveItem(pref,0);
587 >        PrefsRemoveItem(pref, 1);
588   }
589  
585 //- (const char *) RemoveVolumeEntry
590   - (NSString *) RemoveVolumeEntry
591   {
592          int             row = [diskImages selectedRow];
# Line 590 | Line 594 | shouldProceedAfterError: (NSDictionary *
594          if ( row != -1 )
595          {
596                  NSString        *Path = [volsDS pathAtRow: row];
597 <                const char      *path = [Path cString],
597 >                const char      *path = [Path UTF8String],
598                                          *str;
599                  int                     tmp = 0;
600  
601 +                NSString        *prompt = [NSString stringWithFormat: @"%s\n%s",
602 +                                                           "Are you sure you want to delete the file",
603 +                                                           path];
604 +
605 +                if ( ! ChoiceAlert([prompt cString], "Delete", "Cancel") )
606 +                        return NULL;
607 +
608                  while ( (str = PrefsFindString("disk", tmp) ) != NULL )
609                  {
610                          if ( strcmp(str, path) == 0 )
# Line 656 | Line 667 | shouldProceedAfterError: (NSDictionary *
667          char    *argv[2];
668  
669          argv[0] = "--prefs",
670 <        argv[1] = (char *) [[prefsFile stringValue] cString];
670 >        argv[1] = (char *) [[prefsFile stringValue] UTF8String];
671  
672          [self loadPrefs: argc
673                             args: argv];
# Line 669 | Line 680 | shouldProceedAfterError: (NSDictionary *
680   }
681  
682   - (void) setStringOf: (NSTextField *) field
683 <                        fromPref: (const char *)  prefName
683 >                                fromPref: (const char *)  prefName
684   {
685          const char      *value = PrefsFindString(prefName, 0);
686  
687          if ( value )
688 <                [field setStringValue: [NSString stringWithCString: value] ];
688 >                [field setStringValue: [NSString stringWithUTF8String: value] ];
689   }
690  
691   - (IBAction) SavePrefs: (id)sender
# Line 711 | Line 722 | shouldProceedAfterError: (NSDictionary *
722          [self setStringOf: extFS         fromPref: "extfs"      ];
723          [self setStringOf: modem         fromPref: "seriala"];
724          [self setStringOf: printer       fromPref: "serialb"];
725 <    [self setStringOf: ROMfile   fromPref: "rom"        ];
725 >    [self setStringOf: ROMfile   fromPref: "rom"];
726  
727 <        [prefsFile setStringValue: [NSString stringWithCString: UserPrefsPath.c_str()] ];
727 >        [prefsFile setStringValue: [NSString stringWithUTF8String: UserPrefsPath.c_str()] ];
728  
729  
730          parse_screen_prefs(PrefsFindString("screen"));
# Line 806 | Line 817 | shouldProceedAfterError: (NSDictionary *
817          {
818                  if ( *str == '*' )
819                          [volsDS addObject: (NSObject *) locked
820 <                                         withPath: [NSString stringWithCString: str+1]];
820 >                                         withPath: [NSString stringWithUTF8String: str+1]];
821                  else
822                          [volsDS addObject: (NSObject *) blank
823 <                                         withPath: [NSString stringWithCString: str]];
823 >                                         withPath: [NSString stringWithUTF8String: str]];
824          }
825  
826          [diskImages setDataSource: volsDS];

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines