From 401222fa55f8e294cdcb6e5fdd5bcf7d8e09aab1 Mon Sep 17 00:00:00 2001 From: FredKiefer Date: Sat, 6 Mar 2004 14:59:50 +0000 Subject: [PATCH] Small additions to save panel. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@18789 72102866-910b-0410-8b05-ffd578937521 --- ChangeLog | 9 +++++ Headers/AppKit/NSSavePanel.h | 7 ++++ Source/NSSavePanel.m | 68 ++++++++++++++++++++++++------------ 3 files changed, 61 insertions(+), 23 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9a3c54440..9b557f4ee 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2004-03-06 Fred Kiefer + + * Header/AppKit/NSSavePanel.h: + Added some ivars for new methods. + * Source/NSSavePanel.m: (-setDelegate:, -_selectTextInColumn:) + implemented delegete calls on selection and directory change, + based on patch by Fabien Vallon. + Basic implementation for some of the new Cocoa methods. + 2004-02-29 Gregory John Casamento * Source/NSToolbar.m: Added code in diff --git a/Headers/AppKit/NSSavePanel.h b/Headers/AppKit/NSSavePanel.h index 544c3f2f1..0190b5b25 100644 --- a/Headers/AppKit/NSSavePanel.h +++ b/Headers/AppKit/NSSavePanel.h @@ -73,10 +73,17 @@ enum { NSString *_fullFileName; BOOL _treatsFilePackagesAsDirectories; + BOOL _allowsOtherFileTypes; + BOOL _canCreateDirectories; + BOOL _canSelectHiddenExtension; + BOOL _isExtensionHidden; + BOOL _delegateHasCompareFilter; BOOL _delegateHasShowFilenameFilter; BOOL _delegateHasValidNameFilter; BOOL _delegateHasUserEnteredFilename; + BOOL _delegateHasDirectoryDidChange; + BOOL _delegateHasSelectionDidChange; // YES when we stopped because the user pressed 'OK' BOOL _OKButtonPressed; diff --git a/Source/NSSavePanel.m b/Source/NSSavePanel.m index 0547c7252..ee4b69f14 100644 --- a/Source/NSSavePanel.m +++ b/Source/NSSavePanel.m @@ -383,24 +383,32 @@ static BOOL _gs_display_reading_progress = NO; selectedCell = [matrix selectedCell]; isLeaf = [selectedCell isLeaf]; + if (_delegateHasSelectionDidChange) + { + [_delegate panelSelectionDidChange: self]; + } + if (isLeaf) { [[_form cellAtIndex: 0] setStringValue: [selectedCell stringValue]]; // [_form selectTextAtIndex:0]; - [_form setNeedsDisplay:YES]; - [_okButton setEnabled:YES]; + [_okButton setEnabled: YES]; } else { + if (_delegateHasDirectoryDidChange) + { + [_delegate panel: self directoryDidChange: [_browser pathToColumn: column]]; + } + if ([[[_form cellAtIndex: 0] stringValue] length] > 0) { - [_okButton setEnabled:YES]; - [self _selectCellName:[[_form cellAtIndex: 0] stringValue]]; + [_okButton setEnabled: YES]; + [self _selectCellName: [[_form cellAtIndex: 0] stringValue]]; // [_form selectTextAtIndex:0]; - [_form setNeedsDisplay:YES]; } else - [_okButton setEnabled:NO]; + [_okButton setEnabled: NO]; } } @@ -623,7 +631,9 @@ selectCellWithString: (NSString*)title -(id) init { [self _initWithoutGModel]; - + +/* + * All these are set automatically _directory = nil; _fullFileName = nil; _requiredFileType = nil; @@ -633,6 +643,9 @@ selectCellWithString: (NSString*)title _delegateHasCompareFilter = NO; _delegateHasShowFilenameFilter = NO; _delegateHasValidNameFilter = NO; + _delegateHasDirectoryDidChange = NO; + _delegateHasSelectionDidChange = NO; +*/ [self _getOriginalSize]; return self; @@ -804,7 +817,7 @@ selectCellWithString: (NSString*)title - (NSString *) nameFieldLabel { // FIXME - return @"Save As"; + return _(@"Save As"); } - (void) setMessage: (NSString *)message @@ -863,7 +876,7 @@ selectCellWithString: (NSString*)title - (void) setAllowsOtherFileTypes: (BOOL)flag { - // FIXME + _allowsOtherFileTypes = flag; } - (NSArray *) allowedFileTypes; @@ -874,8 +887,7 @@ selectCellWithString: (NSString*)title - (BOOL) allowsOtherFileTypes; { - // FIXME - return NO; + return _allowsOtherFileTypes; } /** Returns YES if file packages are shown as directories. The default @@ -914,13 +926,12 @@ selectCellWithString: (NSString*)title - (void) setCanCreateDirectories: (BOOL)flag { - // FIXME + _canCreateDirectories = flag; } - (BOOL) canCreateDirectories { - // FIXME - return NO; + return _canCreateDirectories; } /** @@ -1180,28 +1191,36 @@ selectCellWithString: (NSString*)title else _delegateHasUserEnteredFilename = NO; + if ([aDelegate respondsToSelector: @selector(panel:directoryDidChange:)]) + _delegateHasDirectoryDidChange = YES; + else + _delegateHasDirectoryDidChange = NO; + + if ([aDelegate respondsToSelector: @selector(panelSelectionDidChange:)]) + _delegateHasSelectionDidChange = YES; + else + _delegateHasSelectionDidChange = NO; + [super setDelegate: aDelegate]; } - (void) setCanSelectHiddenExtension: (BOOL) flag { - // FIXME + _canSelectHiddenExtension = flag; } - (BOOL) canSelectHiddenExtension { - // FIXME - return NO; + return _canSelectHiddenExtension; } - (BOOL) isExtensionHidden { - // FIXME - return NO; + return _isExtensionHidden; } - (void) setExtensionHidden: (BOOL) flag { - // FIXME + _isExtensionHidden = flag; } - (BOOL) isExpanded @@ -1213,17 +1232,20 @@ selectCellWithString: (NSString*)title // // NSCoding protocol // -- (id) initWithCoder: (NSCoder*)aCoder +- (id) initWithCoder: (NSCoder*)aDecoder { - // TODO + self = [super initWithCoder: aDecoder]; - return nil; + // TODO + return self; } - (void) encodeWithCoder: (NSCoder*)aCoder { + [super encodeWithCoder: aCoder]; // TODO } + @end //