mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-09-17 16:11:28 +00:00
TableView:
Set a CPThemeStateHighlighted for both selecting and sorting. Do not change sort descriptors when selecting with a modifier flag. Conflicts: AppKit/CPTableView.j
This commit is contained in:
@@ -56,9 +56,9 @@ var CPThemeStatePressed = CPThemeState("pressed");
|
||||
{
|
||||
var themeState = [self themeState];
|
||||
|
||||
if((themeState & CPThemeStateSelected || themeState & CPThemeStateHighlighted) && (themeState & CPThemeStatePressed))
|
||||
if(themeState & CPThemeStateHighlighted && themeState & CPThemeStatePressed)
|
||||
[self setBackgroundColor:[CPColor colorWithPatternImage:CPAppKitImage("tableview-headerview-highlighted-pressed.png", CGSizeMake(1.0, 22.0))]];
|
||||
else if (themeState & CPThemeStateSelected || themeState & CPThemeStateHighlighted)
|
||||
else if (themeState & CPThemeStateHighlighted)
|
||||
[self setBackgroundColor:[CPColor colorWithPatternImage:CPAppKitImage("tableview-headerview-highlighted.png", CGSizeMake(1.0, 22.0))]];
|
||||
else if (themeState & CPThemeStatePressed)
|
||||
[self setBackgroundColor:[CPColor colorWithPatternImage:CPAppKitImage("tableview-headerview-pressed.png", CGSizeMake(1.0, 22.0))]];
|
||||
@@ -230,18 +230,11 @@ var CPThemeStatePressed = CPThemeState("pressed");
|
||||
var location = [self convertPoint:[theEvent locationInWindow] fromView:nil],
|
||||
clickedColumn = [self columnAtPoint:location];
|
||||
|
||||
[self _setPressedColumn:CPNotFound];
|
||||
[self _setPressedColumn:-1];
|
||||
|
||||
if (clickedColumn == -1)
|
||||
return;
|
||||
if (clickedColumn != -1)
|
||||
[_tableView _didClickTableColumn:clickedColumn modifierFlags:[theEvent modifierFlags]];
|
||||
|
||||
[_tableView _sendDelegateDidClickColumn:clickedColumn];
|
||||
|
||||
if ([_tableView allowsColumnSelection])
|
||||
[_tableView _selectTableColumn:clickedColumn modifierFlags:[theEvent modifierFlags]];
|
||||
|
||||
[_tableView _changeSortDescriptorsForClickOnColumn:clickedColumn];
|
||||
|
||||
return;
|
||||
}
|
||||
/*
|
||||
|
||||
+37
-26
@@ -829,7 +829,7 @@ CPTableViewFirstColumnOnlyAutoresizingStyle = 5;
|
||||
|
||||
[dataViewsInTableColumn makeObjectsPerformSelector:@selector(unsetThemeState:) withObject:CPThemeStateHighlighted];
|
||||
var headerView = [_tableColumns[columnIndex] headerView];
|
||||
[headerView unsetThemeState:CPThemeStateSelected];
|
||||
[headerView unsetThemeState:CPThemeStateHighlighted];
|
||||
}
|
||||
|
||||
count = selectColumns.length;
|
||||
@@ -841,32 +841,10 @@ CPTableViewFirstColumnOnlyAutoresizingStyle = 5;
|
||||
|
||||
[dataViewsInTableColumn makeObjectsPerformSelector:@selector(setThemeState:) withObject:CPThemeStateHighlighted];
|
||||
var headerView = [_tableColumns[columnIndex] headerView];
|
||||
[headerView setThemeState:CPThemeStateSelected];
|
||||
[headerView setThemeState:CPThemeStateHighlighted];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)_selectTableColumn:(int)clickedColumn modifierFlags:(unsigned)modifierFlags
|
||||
{
|
||||
if (modifierFlags & CPCommandKeyMask)
|
||||
{
|
||||
if ([self isColumnSelected:clickedColumn])
|
||||
[self deselectColumn:clickedColumn];
|
||||
else if ([self allowsMultipleSelection] == YES)
|
||||
[self selectColumnIndexes:[CPIndexSet indexSetWithIndex:clickedColumn] byExtendingSelection:YES];
|
||||
}
|
||||
else if (modifierFlags & CPShiftKeyMask)
|
||||
{
|
||||
// should be from clickedColumn to lastClickedColum with extending:(direction == previous selection)
|
||||
var selectedIndexes = [self selectedColumnIndexes],
|
||||
startColumn = MIN(clickedColumn, [selectedIndexes lastIndex]),
|
||||
endColumn = MAX(clickedColumn, [selectedIndexes firstIndex]);
|
||||
|
||||
[self selectColumnIndexes:[CPIndexSet indexSetWithIndexesInRange:CPMakeRange(startColumn, endColumn - startColumn + 1)] byExtendingSelection:YES];
|
||||
}
|
||||
else
|
||||
[self selectColumnIndexes:[CPIndexSet indexSetWithIndex:clickedColumn] byExtendingSelection:NO];
|
||||
}
|
||||
|
||||
- (CPIndexSet)selectedColumnIndexes
|
||||
{
|
||||
return _selectedColumnIndexes;
|
||||
@@ -1593,6 +1571,38 @@ CPTableViewFirstColumnOnlyAutoresizingStyle = 5;
|
||||
[_dataSource tableView:self sortDescriptorsDidChange:oldDescriptors];
|
||||
}
|
||||
|
||||
- (void)_didClickTableColumn:(int)clickedColumn modifierFlags:(unsigned)modifierFlags
|
||||
{
|
||||
[self _sendDelegateDidClickColumn:clickedColumn];
|
||||
|
||||
if (_allowsColumnSelection)
|
||||
{
|
||||
if (modifierFlags & CPCommandKeyMask)
|
||||
{
|
||||
if ([self isColumnSelected:clickedColumn])
|
||||
[self deselectColumn:clickedColumn];
|
||||
else if ([self allowsMultipleSelection] == YES)
|
||||
[self selectColumnIndexes:[CPIndexSet indexSetWithIndex:clickedColumn] byExtendingSelection:YES];
|
||||
|
||||
return;
|
||||
}
|
||||
else if (modifierFlags & CPShiftKeyMask)
|
||||
{
|
||||
// should be from clickedColumn to lastClickedColum with extending:(direction == previous selection)
|
||||
var startColumn = MIN(clickedColumn, [_selectedColumnIndexes lastIndex]),
|
||||
endColumn = MAX(clickedColumn, [_selectedColumnIndexes firstIndex]);
|
||||
|
||||
[self selectColumnIndexes:[CPIndexSet indexSetWithIndexesInRange:CPMakeRange(startColumn, endColumn - startColumn + 1)] byExtendingSelection:YES];
|
||||
|
||||
return;
|
||||
}
|
||||
else
|
||||
[self selectColumnIndexes:[CPIndexSet indexSetWithIndex:clickedColumn] byExtendingSelection:NO];
|
||||
}
|
||||
|
||||
[self _changeSortDescriptorsForClickOnColumn:clickedColumn];
|
||||
}
|
||||
|
||||
// From GNUSTEP
|
||||
- (void)_changeSortDescriptorsForClickOnColumn:(int)column
|
||||
{
|
||||
@@ -2299,7 +2309,7 @@ CPTableViewFirstColumnOnlyAutoresizingStyle = 5;
|
||||
if ([self selectionHighlightStyle] === CPTableViewSelectionHighlightStyleSourceList)
|
||||
[[CPColor selectionColorSourceView] setFill];
|
||||
else
|
||||
[[CPColor selectionColor] setFill];
|
||||
[[CPColor alternateSelectedControlColor] setFill];
|
||||
|
||||
var context = [[CPGraphicsContext currentContext] graphicsPort],
|
||||
indexes = [],
|
||||
@@ -3153,7 +3163,8 @@ var CPTableViewDataSourceKey = @"CPTableViewDataSourceKey",
|
||||
|
||||
[aCoder encodeFloat:_rowHeight forKey:CPTableViewRowHeightKey];
|
||||
[aCoder encodeSize:_intercellSpacing forKey:CPTableViewIntercellSpacingKey];
|
||||
|
||||
[aCoder encodeInt:_gridStyleMask forKey:CPGridStyleMask];
|
||||
|
||||
[aCoder encodeBool:_allowsMultipleSelection forKey:CPTableViewMultipleSelectionKey];
|
||||
[aCoder encodeBool:_allowsEmptySelection forKey:CPTableViewEmptySelectionKey];
|
||||
[aCoder encodeBool:_allowsColumnReordering forKey:CPTableViewColumnReorderingKey];
|
||||
|
||||
@@ -41,7 +41,7 @@ CPLogRegister(CPLogConsole);
|
||||
[tableView setUsesAlternatingRowBackgroundColors:YES];
|
||||
[tableView setAlternatingRowBackgroundColors:[[CPColor whiteColor], [CPColor colorWithHexString:@"e4e7ff"], [CPColor colorWithHexString:@"f4e7ff"]]];
|
||||
[tableView setGridStyleMask:CPTableViewSolidHorizontalGridLineMask | CPTableViewSolidVerticalGridLineMask];
|
||||
|
||||
|
||||
// [tableView setBackgroundColor:[CPColor blueColor]];
|
||||
|
||||
var iconView = [[CPImageView alloc] initWithFrame:CGRectMake(16,16,0,0)];
|
||||
|
||||
Reference in New Issue
Block a user