mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-04-23 08:30:59 +00:00
2000-09-13 Mirko Viviani <mirko.viviani@rccr.cremona.it>
* Source/NSBrowser.m ([NSBrowser -_performLoadOfColumn:]): fixed intercell space values. * Source/NSText.m ([NSText -keyDown:]): removed forward for illegal text field events. * Source/NSSavePanel.m ([NSSavePanel -controlTextDidEndEditing:]): implemented for text field movement. ([NSSavePanel -_performReturn:]): new private method. ([NSSavePanel -_initWithoutGModel]): set form cell action to _performReturn: * Source/NSOpenPanel.m ([NSOpenPanel -controlTextDidEndEditing:]): call super. ([NSOpenPanel -_selectCellName:]):, ([NSOpenPanel -controlTextDidChange:]): enable okButton if there is text in the text field. ([NSOpenPanel -ok:]): returns if nothing selected. * Tools/gpbs.m ([PasteboardEntry -lostOwnership]): removed workaround. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@7506 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
1c3f0d5515
commit
05a9cab8f7
6 changed files with 121 additions and 63 deletions
23
ChangeLog
23
ChangeLog
|
@ -1,3 +1,26 @@
|
|||
2000-09-13 Mirko Viviani <mirko.viviani@rccr.cremona.it>
|
||||
|
||||
* Source/NSBrowser.m ([NSBrowser -_performLoadOfColumn:]): fixed
|
||||
intercell space values.
|
||||
|
||||
* Source/NSText.m ([NSText -keyDown:]): removed forward for illegal
|
||||
text field events.
|
||||
|
||||
* Source/NSSavePanel.m ([NSSavePanel -controlTextDidEndEditing:]):
|
||||
implemented for text field movement.
|
||||
([NSSavePanel -_performReturn:]): new private method.
|
||||
([NSSavePanel -_initWithoutGModel]): set form cell action to
|
||||
_performReturn:
|
||||
|
||||
* Source/NSOpenPanel.m ([NSOpenPanel -controlTextDidEndEditing:]): call
|
||||
super.
|
||||
([NSOpenPanel -_selectCellName:]):,
|
||||
([NSOpenPanel -controlTextDidChange:]): enable okButton if there is
|
||||
text in the text field.
|
||||
([NSOpenPanel -ok:]): returns if nothing selected.
|
||||
|
||||
* Tools/gpbs.m ([PasteboardEntry -lostOwnership]): removed workaround.
|
||||
|
||||
2000-09-13 Fred Kiefer <FredKiefer@gmx.de>
|
||||
|
||||
* Source/GSFontInfo.m:
|
||||
|
|
|
@ -2815,7 +2815,7 @@ static float scrollerWidth; // == [NSScroller scrollerWidth]
|
|||
{
|
||||
id bc, sc, matrix = nil;
|
||||
NSRect matrixRect = {{0, 0}, {100, 100}};
|
||||
NSSize matrixIntercellSpace = {{0, 0}};
|
||||
NSSize matrixIntercellSpace = {0, 0};
|
||||
|
||||
#if defined NSBTRACE__performLoadOfColumn || defined NSBTRACE_all
|
||||
fprintf(stderr, "NSBrowser - (void)_performLoadOfColumn: %d\n", column);
|
||||
|
|
|
@ -156,7 +156,10 @@ static NSOpenPanel *_gs_gui_open_panel = nil;
|
|||
|
||||
titleLength = [title length];
|
||||
if(!titleLength)
|
||||
return;
|
||||
{
|
||||
[_okButton setEnabled:NO];
|
||||
return;
|
||||
}
|
||||
|
||||
range.location = 0;
|
||||
range.length = titleLength;
|
||||
|
@ -184,9 +187,6 @@ static NSOpenPanel *_gs_gui_open_panel = nil;
|
|||
else if(result == NSOrderedDescending)
|
||||
break;
|
||||
}
|
||||
|
||||
if(_canChooseDirectories == NO)
|
||||
[_okButton setEnabled:NO];
|
||||
}
|
||||
|
||||
@end
|
||||
|
@ -369,43 +369,51 @@ static NSOpenPanel *_gs_gui_open_panel = nil;
|
|||
NSMatrix *matrix;
|
||||
NSBrowserCell *selectedCell = nil;
|
||||
NSArray *selectedCells;
|
||||
int selectedColumn;
|
||||
int selectedColumn, lastColumn;
|
||||
|
||||
selectedColumn = [_browser selectedColumn];
|
||||
if(selectedColumn == -1)
|
||||
return;
|
||||
|
||||
matrix = [_browser matrixInColumn:selectedColumn];
|
||||
|
||||
if([_browser allowsMultipleSelection] == YES)
|
||||
if (selectedColumn >= 0)
|
||||
{
|
||||
selectedCells = [matrix selectedCells];
|
||||
matrix = [_browser matrixInColumn: selectedColumn];
|
||||
lastColumn = [_browser lastColumn];
|
||||
|
||||
if(selectedColumn == [_browser lastColumn] &&
|
||||
[selectedCells count] == 1)
|
||||
selectedCell = [selectedCells objectAtIndex:0];
|
||||
}
|
||||
else
|
||||
{
|
||||
if(_canChooseDirectories == NO || selectedColumn == [_browser lastColumn])
|
||||
selectedCell = [matrix selectedCell];
|
||||
}
|
||||
|
||||
if(selectedCell)
|
||||
{
|
||||
if ([selectedCell isLeaf] == NO)
|
||||
if ([_browser allowsMultipleSelection] == YES)
|
||||
{
|
||||
[_browser doClick:matrix];
|
||||
return;
|
||||
selectedCells = [matrix selectedCells];
|
||||
|
||||
if (selectedColumn == lastColumn &&
|
||||
[selectedCells count] == 1)
|
||||
selectedCell = [selectedCells objectAtIndex: 0];
|
||||
}
|
||||
else
|
||||
{
|
||||
if (_canChooseDirectories == NO)
|
||||
{
|
||||
if (selectedColumn == lastColumn
|
||||
|| [[[_form cellAtIndex: 0] stringValue] length] == 0)
|
||||
selectedCell = [matrix selectedCell];
|
||||
}
|
||||
else if (selectedColumn == lastColumn)
|
||||
selectedCell = [matrix selectedCell];
|
||||
}
|
||||
|
||||
if (selectedCell)
|
||||
{
|
||||
if ([selectedCell isLeaf] == NO)
|
||||
{
|
||||
[_browser doClick: matrix];
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ASSIGN (_directory, [_browser pathToColumn:[_browser lastColumn]]);
|
||||
if(selectedCell)
|
||||
if (selectedCell)
|
||||
ASSIGN (_fullFileName, [_directory stringByAppendingPathComponent:
|
||||
[selectedCell stringValue]]);
|
||||
else
|
||||
ASSIGN (_fullFileName, nil);
|
||||
ASSIGN (_fullFileName, [_directory stringByAppendingPathComponent:
|
||||
[[_form cellAtIndex: 0] stringValue]]);
|
||||
|
||||
if (_delegateHasValidNameFilter)
|
||||
{
|
||||
|
@ -414,9 +422,9 @@ static NSOpenPanel *_gs_gui_open_panel = nil;
|
|||
NSString *filename;
|
||||
|
||||
enumerator = [filenames objectEnumerator];
|
||||
while((filename = [enumerator nextObject]))
|
||||
while ((filename = [enumerator nextObject]))
|
||||
{
|
||||
if (![_delegate panel:self isValidFilename: filename])
|
||||
if ([_delegate panel: self isValidFilename: filename] == NO)
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -516,6 +524,8 @@ selectCellWithString: (NSString *)title
|
|||
|
||||
if (!selectedCell)
|
||||
[_form selectTextAtIndex:0];
|
||||
|
||||
[super controlTextDidEndEditing:aNotification];
|
||||
}
|
||||
|
||||
- (void) controlTextDidChange: (NSNotification *)aNotification;
|
||||
|
@ -621,8 +631,7 @@ selectCellWithString: (NSString *)title
|
|||
}
|
||||
|
||||
[matrix deselectAllCells];
|
||||
if(_canChooseDirectories == NO)
|
||||
[_okButton setEnabled:NO];
|
||||
[_okButton setEnabled:YES];
|
||||
}
|
||||
|
||||
@end /* NSOpenPanel */
|
||||
|
|
|
@ -82,6 +82,7 @@ static BOOL _gs_display_reading_progress = NO;
|
|||
- (void) _unmountMedia;
|
||||
- (void) _selectTextInColumn: (int)column;
|
||||
- (void) _selectCellName: (NSString *)title;
|
||||
- (void) _performReturn: (id)sender;
|
||||
|
||||
@end /* NSSavePanel (PrivateMethods) */
|
||||
|
||||
|
@ -148,6 +149,9 @@ static BOOL _gs_display_reading_progress = NO;
|
|||
[_bottomView addSubview: _form];
|
||||
[_form release];
|
||||
|
||||
[[_form cellAtIndex:0] setAction: @selector(_performReturn:)];
|
||||
[[_form cellAtIndex:0] setTarget: self];
|
||||
|
||||
r = NSMakeRect (43, 6, 27, 27);
|
||||
button = [[NSButton alloc] initWithFrame: r];
|
||||
[button setBordered: YES];
|
||||
|
@ -220,8 +224,8 @@ static BOOL _gs_display_reading_progress = NO;
|
|||
[self setDefaultButtonCell:[_okButton cell]];
|
||||
[_okButton release];
|
||||
|
||||
[_browser setDoubleAction:@selector(performClick:)];
|
||||
[_browser setTarget:_okButton];
|
||||
[_browser setDoubleAction: @selector(performClick:)];
|
||||
[_browser setTarget: _okButton];
|
||||
|
||||
r = NSMakeRect (8, 261, 48, 48);
|
||||
button = [[NSButton alloc] initWithFrame: r];
|
||||
|
@ -383,6 +387,30 @@ static BOOL _gs_display_reading_progress = NO;
|
|||
}
|
||||
}
|
||||
|
||||
- (void) _performReturn: (id)sender
|
||||
{
|
||||
if ([_okButton isEnabled] == YES)
|
||||
{
|
||||
NSMatrix *matrix;
|
||||
int selectedColumn;
|
||||
|
||||
selectedColumn = [_browser selectedColumn];
|
||||
|
||||
if (selectedColumn != -1 && selectedColumn == [_browser lastColumn])
|
||||
{
|
||||
matrix = [_browser matrixInColumn: selectedColumn];
|
||||
|
||||
if ([[matrix selectedCell] isLeaf] == NO)
|
||||
{
|
||||
[_form abortEditing];
|
||||
[[_form cellAtIndex: 0] setStringValue: nil];
|
||||
}
|
||||
}
|
||||
|
||||
[_okButton performClick: self];
|
||||
}
|
||||
}
|
||||
|
||||
@end /* NSSavePanel (PrivateMethods) */
|
||||
|
||||
//
|
||||
|
@ -1147,10 +1175,34 @@ selectCellWithString: (NSString*)title
|
|||
// NSForm delegate methods
|
||||
//
|
||||
@interface NSSavePanel (FormDelegate)
|
||||
- (void) controlTextDidEndEditing: (NSNotification*)aNotification;
|
||||
- (void) controlTextDidChange: (NSNotification *)aNotification;
|
||||
@end
|
||||
@implementation NSSavePanel (FormDelegate)
|
||||
|
||||
- (void) controlTextDidEndEditing: (NSNotification*)aNotification
|
||||
{
|
||||
id textMovement = [[aNotification userInfo] objectForKey: @"NSTextMovement"];
|
||||
|
||||
if (textMovement)
|
||||
{
|
||||
switch ([(NSNumber *)textMovement intValue])
|
||||
{
|
||||
case NSTabTextMovement:
|
||||
case NSBacktabTextMovement:
|
||||
case NSUpTextMovement:
|
||||
case NSDownTextMovement:
|
||||
case NSLeftTextMovement:
|
||||
case NSRightTextMovement:
|
||||
[self selectText:self];
|
||||
return;
|
||||
|
||||
case NSReturnTextMovement:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void) controlTextDidChange: (NSNotification *)aNotification;
|
||||
{
|
||||
NSString *s, *selectedString;
|
||||
|
|
|
@ -2389,29 +2389,6 @@ static NSNotificationCenter *nc;
|
|||
else
|
||||
{
|
||||
[self interpretKeyEvents: [NSArray arrayWithObject: theEvent]];
|
||||
|
||||
if (_tf.is_field_editor)
|
||||
{
|
||||
NSString *characters = [theEvent characters];
|
||||
unichar character = 0;
|
||||
|
||||
if ([characters length] > 0)
|
||||
{
|
||||
character = [characters characterAtIndex: 0];
|
||||
}
|
||||
|
||||
switch (character)
|
||||
{
|
||||
case NSUpArrowFunctionKey:
|
||||
case NSDownArrowFunctionKey:
|
||||
case NSTabCharacter:
|
||||
case NSEnterCharacter:
|
||||
case NSFormFeedCharacter:
|
||||
case NSCarriageReturnCharacter:
|
||||
[super keyDown:theEvent];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -436,10 +436,7 @@ NSMutableDictionary *pasteboards = nil;
|
|||
|
||||
if (wantsChangedOwner)
|
||||
{
|
||||
/* workaround for NSConnection/NSDistantObject bug with methods
|
||||
* like (SEL)methodForSelector:
|
||||
* [a removeObject: owner]; */
|
||||
[a removeObjectAtIndex:0];
|
||||
[a removeObject: owner];
|
||||
[owner pasteboardChangedOwner: pboard];
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue