NEW: CPTableView drop view now supports theming

Previously, the style of the blueish view that shows up on CPTableView when user is about to drop something on it was hard coded.
This patch adds the following theme attributes in CPTableView

    // theme of the drop view for CPDragOperationOn on a non selected row
    dropview-on-background-color
    dropview-on-border-color
    dropview-on-border-width
    dropview-on-border-radius

    // theme of the drop view for CPDragOperationOn on a selected row
    dropview-on-selected-background-color
    dropview-on-selected-border-color
    dropview-on-selected-border-width
    dropview-on-selected-border-radius

    // theme of the drop view for CPDragOperationAbove on a non selected row
    dropview-above-border-color
    dropview-above-border-width

    // theme of the drop view for CPDragOperationAbove on a selected row
    dropview-above-selected-border-color
    dropview-above-selected-border-width

Aristo and Aristo2 have been updated, and use the same old hardcoded values.
This commit is contained in:
Antoine Mercadal committed 2013-11-15 17:48:57 -08:00
1 parent abd9506d40
commit 1cec1b0637
3 files changed
+96 -43

No files matched your search

+45 -25
View File
@@ -299,6 +299,18 @@ CPTableViewFirstColumnOnlyAutoresizingStyle = 5;
@"selection-radius": [CPNull null],
@"image-generic-file": [CPNull null],
@"default-row-height": 25.0,
@"dropview-on-background-color": [CPNull null],
@"dropview-on-border-color": [CPNull null],
@"dropview-on-border-width": [CPNull null],
@"dropview-on-border-radius": [CPNull null],
@"dropview-on-selected-background-color": [CPNull null],
@"dropview-on-selected-border-color": [CPNull null],
@"dropview-on-selected-border-width": [CPNull null],
@"dropview-on-selected-border-radius": [CPNull null],
@"dropview-above-border-color": [CPNull null],
@"dropview-above-border-width": [CPNull null],
@"dropview-above-selected-border-color": [CPNull null],
@"dropview-above-selected-border-width": [CPNull null]
};
}
@@ -5975,13 +5987,19 @@ var CPTableViewDataSourceKey = @"CPTableViewDataSourceKey",
if (tableView._destinationDragStyle === CPTableViewDraggingDestinationFeedbackStyleNone || isBlinking)
return;
var context = [[CPGraphicsContext currentContext] graphicsPort];
CGContextSetStrokeColor(context, [CPColor colorWithHexString:@"4886ca"]);
CGContextSetLineWidth(context, 3);
var context = [[CPGraphicsContext currentContext] graphicsPort],
borderRadius,
borderColor,
borderWidth,
backgroundColor;
if (currentRow === -1)
{
borderColor = [tableView valueForThemeAttribute:@"dropview-on-border-color"];
borderWidth = [tableView valueForThemeAttribute:@"dropview-on-border-width"];
CGContextSetStrokeColor(context, borderColor);
CGContextSetLineWidth(context, borderWidth);
CGContextStrokeRect(context, [self bounds]);
}
@@ -5993,16 +6011,23 @@ var CPTableViewDataSourceKey = @"CPTableViewDataSourceKey",
if ([selectedRows containsIndex:currentRow])
{
CGContextSetLineWidth(context, 2);
CGContextSetStrokeColor(context, [CPColor whiteColor]);
borderRadius = [tableView valueForThemeAttribute:@"dropview-on-selected-border-radius"];
borderColor = [tableView valueForThemeAttribute:@"dropview-on-selected-border-color"];
borderWidth = [tableView valueForThemeAttribute:@"dropview-on-selected-border-width"];
backgroundColor = [tableView valueForThemeAttribute:@"dropview-on-selected-background-color"];
}
else
{
CGContextSetFillColor(context, [CPColor colorWithRed:72 / 255 green:134 / 255 blue:202 / 255 alpha:0.25]);
CGContextFillRoundedRectangleInRect(context, newRect, 8, YES, YES, YES, YES);
borderRadius = [tableView valueForThemeAttribute:@"dropview-on-border-radius"];
borderColor = [tableView valueForThemeAttribute:@"dropview-on-border-color"];
borderWidth = [tableView valueForThemeAttribute:@"dropview-on-border-width"];
backgroundColor = [tableView valueForThemeAttribute:@"dropview-on-background-color"];
}
CGContextStrokeRoundedRectangleInRect(context, newRect, 8, YES, YES, YES, YES);
CGContextSetStrokeColor(context, borderColor);
CGContextSetLineWidth(context, borderWidth);
CGContextSetFillColor(context, backgroundColor);
CGContextStrokeRoundedRectangleInRect(context, newRect, borderRadius, YES, YES, YES, YES);
}
else if (dropOperation === CPTableViewDropAbove)
@@ -6014,28 +6039,23 @@ var CPTableViewDataSourceKey = @"CPTableViewDataSourceKey",
if ([selectedRows containsIndex:currentRow - 1] || [selectedRows containsIndex:currentRow])
{
CGContextSetStrokeColor(context, [CPColor whiteColor]);
CGContextSetLineWidth(context, 4);
//draw the circle thing
CGContextStrokeEllipseInRect(context, CGRectMake(aRect.origin.x + 4, aRect.origin.y + 4, 8, 8));
//then draw the line
CGContextBeginPath(context);
CGContextMoveToPoint(context, 10, aRect.origin.y + 8);
CGContextAddLineToPoint(context, aRect.size.width - aRect.origin.y - 8, aRect.origin.y + 8);
CGContextStrokePath(context);
CGContextSetStrokeColor(context, [CPColor colorWithHexString:@"4886ca"]);
CGContextSetLineWidth(context, 3);
borderColor = [tableView valueForThemeAttribute:@"dropview-above-selected-border-color"];
borderWidth = [tableView valueForThemeAttribute:@"dropview-above-selected-border-width"];
}
else
{
borderColor = [tableView valueForThemeAttribute:@"dropview-above-border-color"];
borderWidth = [tableView valueForThemeAttribute:@"dropview-above-border-width"];
}
//draw the circle thing
CGContextStrokeEllipseInRect(context, CGRectMake(aRect.origin.x + 4, aRect.origin.y + 4, 8, 8));
//then draw the line
CGContextSetStrokeColor(context, borderColor);
CGContextSetLineWidth(context, borderWidth);
CGContextStrokeEllipseInRect(context, CGRectMake(aRect.origin.x + 4, aRect.origin.y + 4, 8, 8)); // circle
CGContextBeginPath(context);
CGContextMoveToPoint(context, 10, aRect.origin.y + 8);
CGContextAddLineToPoint(context, aRect.size.width - aRect.origin.y - 8, aRect.origin.y + 8);
CGContextStrokePath(context);
//CGContextStrokeLineSegments(context, [aRect.origin.x + 8, aRect.origin.y + 8, 300 , aRect.origin.y + 8]);
}
}
+26 -9
View File
@@ -2082,15 +2082,32 @@ var themedButtonValues = nil,
themedTableViewValues =
[
[@"alternating-row-colors", alternatingRowColors],
[@"grid-color", gridColor],
[@"highlighted-grid-color", [CPColor whiteColor]],
[@"selection-color", selectionColor],
[@"sourcelist-selection-color", sourceListSelectionColor],
[@"sort-image", sortImage],
[@"sort-image-reversed", sortImageReversed],
[@"image-generic-file", imageGenericFile],
[@"default-row-height", 23.0],
[@"alternating-row-colors", alternatingRowColors],
[@"grid-color", gridColor],
[@"highlighted-grid-color", [CPColor whiteColor]],
[@"selection-color", selectionColor],
[@"sourcelist-selection-color", sourceListSelectionColor],
[@"sort-image", sortImage],
[@"sort-image-reversed", sortImageReversed],
[@"image-generic-file", imageGenericFile],
[@"default-row-height", 23.0],
[@"dropview-on-background-color", [CPColor colorWithRed:72 / 255 green:134 / 255 blue:202 / 255 alpha:0.25]],
[@"dropview-on-border-color", [CPColor colorWithHexString:@"4886ca"]],
[@"dropview-on-border-width", 3.0],
[@"dropview-on-border-radius", 8.0],
[@"dropview-on-selected-background-color", [CPColor clearColor]],
[@"dropview-on-selected-border-color", [CPColor whiteColor]],
[@"dropview-on-selected-border-width", 2.0],
[@"dropview-on-selected-border-radius", 8.0],
[@"dropview-above-border-color", [CPColor colorWithHexString:@"4886ca"]],
[@"dropview-above-border-width", 3.0],
[@"dropview-above-selected-border-color", [CPColor colorWithHexString:@"8BB6F0"]],
[@"dropview-above-selected-border-width", 2.0],
];
[self registerThemeValues:themedTableViewValues forView:tableview];
+25 -9
View File
@@ -1557,15 +1557,31 @@ var themedButtonValues = nil,
themedTableViewValues =
[
[@"alternating-row-colors", alternatingRowColors],
[@"grid-color", gridColor],
[@"highlighted-grid-color", [CPColor whiteColor]],
[@"selection-color", selectionColor],
[@"sourcelist-selection-color", sourceListSelectionColor],
[@"sort-image", sortImage],
[@"sort-image-reversed", sortImageReversed],
[@"image-generic-file", imageGenericFile],
[@"default-row-height", 25.0]
[@"alternating-row-colors", alternatingRowColors],
[@"grid-color", gridColor],
[@"highlighted-grid-color", [CPColor whiteColor]],
[@"selection-color", selectionColor],
[@"sourcelist-selection-color", sourceListSelectionColor],
[@"sort-image", sortImage],
[@"sort-image-reversed", sortImageReversed],
[@"image-generic-file", imageGenericFile],
[@"default-row-height", 25.0],
[@"dropview-on-background-color", [CPColor colorWithRed:72 / 255 green:134 / 255 blue:202 / 255 alpha:0.25]],
[@"dropview-on-border-color", [CPColor colorWithHexString:@"4886ca"]],
[@"dropview-on-border-width", 3.0],
[@"dropview-on-border-radius", 8.0],
[@"dropview-on-selected-background-color", [CPColor clearColor]],
[@"dropview-on-selected-border-color", [CPColor whiteColor]],
[@"dropview-on-selected-border-width", 2.0],
[@"dropview-on-selected-border-radius", 8.0],
[@"dropview-above-border-color", [CPColor colorWithHexString:@"4886ca"]],
[@"dropview-above-border-width", 3.0],
[@"dropview-above-selected-border-color", [CPColor colorWithHexString:@"8BB6F0"]],
[@"dropview-above-selected-border-width", 2.0],
];
[tableview setUsesAlternatingRowBackgroundColors:YES];