Skip to content

Instantly share code, notes, and snippets.

@BlairDuncan
Created December 29, 2009 20:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save BlairDuncan/265571 to your computer and use it in GitHub Desktop.
Save BlairDuncan/265571 to your computer and use it in GitHub Desktop.
upArrow = [[CPImage alloc] initWithContentsOfFile:@"Resources/upArrow.png" size:CGSizeMake(8.0, 7.0)];
downArrow = [[CPImage alloc] initWithContentsOfFile:@"Resources/downArrow.png" size:CGSizeMake(8.0, 7.0)];
@implementation CPTableHeaderView (myAdditions)
- (void)mouseDown:(CPEvent)anEvent
{
var selectedColumnNumber = [self columnAtPoint:[self convertPoint:[anEvent locationInWindow] fromView:nil]];
if(selectedColumnNumber == CPNotFound) return;
var column = [[_tableView tableColumns] objectAtIndex:selectedColumnNumber];
var headerContentView = Nil;
// hide arrow in all columns
for (var i in [_tableView tableColumns])
{
if([_tableView tableColumns][i].isa.name == @"CPArray") continue;
else
{
column = [[_tableView tableColumns] objectAtIndex:i];
headerContentView = [column headerView]._ephemeralSubviewsForNames["content-view"];
[headerContentView setImagePosition:CPNoImage];
}
}
// display arrow in selected column
column = [[_tableView tableColumns] objectAtIndex:selectedColumnNumber];
headerContentView = [column headerView]._ephemeralSubviewsForNames["content-view"];
if([headerContentView image])
{
if([headerContentView image] == downArrow) [headerContentView setImage:upArrow];
else [headerContentView setImage:downArrow];
}
else [headerContentView setImage:downArrow];
[headerContentView setImagePosition:CPImageLeft];
//sort the dataSource and reload
// - (void) sortDataInColumnIdentifiedBy:(CPString)anIdentifier descending:(BOOL)isDescending
[[_tableView dataSource] sortDataInColumnIdentifiedBy:[column identifier] descending:([headerContentView image] == downArrow)];
[[_tableView selectedRowIndexes] removeAllIndexes];
[_tableView reloadData];
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment