Added Keyboard Selection Support Added Mouse Selection Support Added Keyboard Editing Support Corrected Some Bugs Abstracted the Layout System further Added Functions Button (test)
62 lines
1.6 KiB
Objective-C
62 lines
1.6 KiB
Objective-C
//
|
|
// NSIndexPath+MPRemoveFirstIndex.m
|
|
// MathPad
|
|
//
|
|
// Created by Kim Wittenburg on 23.04.14.
|
|
// Copyright (c) 2014 Kim Wittenburg. All rights reserved.
|
|
//
|
|
|
|
#import "NSIndexPath+MPAdditions.h"
|
|
|
|
@implementation NSIndexPath (MPAdditions)
|
|
|
|
- (NSUInteger)lastIndex
|
|
{
|
|
return [self indexAtPosition:self.length-1];
|
|
}
|
|
|
|
- (NSIndexPath *)indexPathByReplacingLastIndexWithIndex:(NSUInteger)index
|
|
{
|
|
return [[self indexPathByRemovingLastIndex] indexPathByAddingIndex:index];
|
|
}
|
|
|
|
- (NSIndexPath *)indexPathByRemovingFirstIndex
|
|
{
|
|
if (self.length <= 1) {
|
|
return [[NSIndexPath alloc] init];
|
|
}
|
|
NSUInteger indexes[self.length];
|
|
[self getIndexes:indexes];
|
|
NSUInteger newIndexes[self.length-1];
|
|
for (NSUInteger i = 0; i < self.length-1; i++) {
|
|
newIndexes[i] = indexes[i+1];
|
|
}
|
|
return [[NSIndexPath alloc] initWithIndexes:newIndexes length:self.length-1];
|
|
}
|
|
|
|
- (NSIndexPath *)indexPathByPreceedingIndex:(NSUInteger)index
|
|
{
|
|
NSUInteger newIndexes[self.length+1];
|
|
newIndexes[0] = index;
|
|
for (NSUInteger i = 0; i < self.length; i++) {
|
|
newIndexes[i+1] = [self indexAtPosition:i];
|
|
}
|
|
return [[NSIndexPath alloc] initWithIndexes:newIndexes length:self.length+1];
|
|
}
|
|
|
|
- (NSIndexPath *)indexPathByIncrementingLastIndex
|
|
{
|
|
NSUInteger lastIndex = [self lastIndex];
|
|
lastIndex++;
|
|
return [[self indexPathByRemovingLastIndex] indexPathByAddingIndex:lastIndex];
|
|
}
|
|
|
|
- (NSIndexPath *)indexPathByDecrementingLastIndex
|
|
{
|
|
NSUInteger lastIndex = [self lastIndex];
|
|
lastIndex--;
|
|
return [[self indexPathByRemovingLastIndex] indexPathByAddingIndex:lastIndex];
|
|
}
|
|
|
|
@end
|