mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-05-30 16:20:38 +00:00
Merge from 0.7.0
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@10329 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
caedf71059
commit
234c006585
27 changed files with 794 additions and 478 deletions
|
@ -377,16 +377,16 @@ static NSOpenPanel *_gs_gui_open_panel = nil;
|
|||
|
||||
- (void) ok: (id)sender
|
||||
{
|
||||
NSMatrix *matrix;
|
||||
NSMatrix *matrix = nil;
|
||||
NSBrowserCell *selectedCell = nil;
|
||||
NSArray *selectedCells;
|
||||
NSArray *selectedCells = nil;
|
||||
int selectedColumn, lastColumn;
|
||||
|
||||
selectedColumn = [_browser selectedColumn];
|
||||
lastColumn = [_browser lastColumn];
|
||||
if (selectedColumn >= 0)
|
||||
{
|
||||
matrix = [_browser matrixInColumn: selectedColumn];
|
||||
lastColumn = [_browser lastColumn];
|
||||
|
||||
if ([_browser allowsMultipleSelection] == YES)
|
||||
{
|
||||
|
@ -400,23 +400,34 @@ static NSOpenPanel *_gs_gui_open_panel = nil;
|
|||
{
|
||||
if (_canChooseDirectories == NO)
|
||||
{
|
||||
if (selectedColumn == lastColumn
|
||||
|| [[[_form cellAtIndex: 0] stringValue] length] == 0)
|
||||
if (selectedColumn == lastColumn)
|
||||
selectedCell = [matrix selectedCell];
|
||||
}
|
||||
else if (selectedColumn == lastColumn)
|
||||
selectedCell = [matrix selectedCell];
|
||||
}
|
||||
}
|
||||
|
||||
if (selectedCell)
|
||||
if (selectedCell)
|
||||
{
|
||||
if ([selectedCell isLeaf] == NO)
|
||||
{
|
||||
if ([selectedCell isLeaf] == NO)
|
||||
{
|
||||
[_browser doClick: matrix];
|
||||
return;
|
||||
}
|
||||
[[_form cellAtIndex: 0] setStringValue: @""];
|
||||
[_browser doClick: matrix];
|
||||
[_form selectTextAtIndex: 0];
|
||||
[_form setNeedsDisplay: YES];
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if (_canChooseDirectories == NO
|
||||
&& (![_browser allowsMultipleSelection] || !selectedCells
|
||||
|| selectedColumn != lastColumn || ![selectedCells count]))
|
||||
{
|
||||
[_form selectTextAtIndex: 0];
|
||||
[_form setNeedsDisplay: YES];
|
||||
return;
|
||||
}
|
||||
|
||||
ASSIGN (_directory, [_browser pathToColumn:[_browser lastColumn]]);
|
||||
if (selectedCell)
|
||||
|
@ -534,8 +545,8 @@ selectCellWithString: (NSString *)title
|
|||
NSComparisonResult result;
|
||||
NSRange range;
|
||||
|
||||
matrix = [_browser matrixInColumn:[_browser lastColumn]];
|
||||
s = [[[aNotification userInfo] objectForKey:@"NSFieldEditor"] string];
|
||||
matrix = [_browser matrixInColumn: [_browser lastColumn]];
|
||||
s = [[[aNotification userInfo] objectForKey: @"NSFieldEditor"] string];
|
||||
|
||||
sLength = [s length];
|
||||
range.location = 0;
|
||||
|
@ -545,7 +556,7 @@ selectCellWithString: (NSString *)title
|
|||
{
|
||||
[matrix deselectAllCells];
|
||||
if(_canChooseDirectories == NO)
|
||||
[_okButton setEnabled:NO];
|
||||
[_okButton setEnabled: NO];
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -561,7 +572,7 @@ selectCellWithString: (NSString *)title
|
|||
if(cellLength < sLength)
|
||||
range.length = cellLength;
|
||||
|
||||
result = [selectedString compare:s options:0 range:range];
|
||||
result = [selectedString compare: s options: 0 range: range];
|
||||
|
||||
if(result == NSOrderedSame)
|
||||
return;
|
||||
|
@ -581,53 +592,49 @@ selectCellWithString: (NSString *)title
|
|||
|
||||
for(i = selectedRow+1; i < numberOfCells; i++)
|
||||
{
|
||||
selectedString = [[matrix cellAtRow:i column:0] stringValue];
|
||||
selectedString = [[matrix cellAtRow: i column: 0] stringValue];
|
||||
|
||||
cellLength = [selectedString length];
|
||||
if(cellLength < sLength)
|
||||
continue;
|
||||
|
||||
result = [selectedString compare:s options:0 range:range];
|
||||
result = [selectedString compare: s options: 0 range: range];
|
||||
|
||||
if(result == NSOrderedSame)
|
||||
{
|
||||
[matrix deselectAllCells];
|
||||
[matrix selectCellAtRow:i column:0];
|
||||
[matrix scrollCellToVisibleAtRow:i column:0];
|
||||
[_okButton setEnabled:YES];
|
||||
[matrix selectCellAtRow: i column: 0];
|
||||
[matrix scrollCellToVisibleAtRow: i column: 0];
|
||||
[_okButton setEnabled: YES];
|
||||
return;
|
||||
}
|
||||
else if(result == NSOrderedDescending)
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for(i = selectedRow; i >= 0; --i)
|
||||
{
|
||||
selectedString = [[matrix cellAtRow:i column:0] stringValue];
|
||||
selectedString = [[matrix cellAtRow: i column: 0] stringValue];
|
||||
|
||||
cellLength = [selectedString length];
|
||||
if(cellLength < sLength)
|
||||
continue;
|
||||
|
||||
result = [selectedString compare:s options:0 range:range];
|
||||
result = [selectedString compare: s options: 0 range: range];
|
||||
|
||||
if(result == NSOrderedSame)
|
||||
{
|
||||
[matrix deselectAllCells];
|
||||
[matrix selectCellAtRow:i column:0];
|
||||
[matrix scrollCellToVisibleAtRow:i column:0];
|
||||
[_okButton setEnabled:YES];
|
||||
[matrix selectCellAtRow: i column: 0];
|
||||
[matrix scrollCellToVisibleAtRow: i column: 0];
|
||||
[_okButton setEnabled: YES];
|
||||
return;
|
||||
}
|
||||
else if(result == NSOrderedAscending)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
[matrix deselectAllCells];
|
||||
[_okButton setEnabled:YES];
|
||||
[_okButton setEnabled: YES];
|
||||
}
|
||||
|
||||
@end /* NSOpenPanel */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue