Archived
1

Internal Redesign:

- Combined MPExpression and MPMutableExpression
- Abstracted children of MPExpression into MPExpressionElement protocol
- Abstracted most of MPExpressionLayout and MPFunctionLayout into common superclass MPLayout
This commit is contained in:
Kim Wittenburg
2014-08-11 13:57:48 +02:00
parent 740c3fd80a
commit 60760b8b3d
31 changed files with 1222 additions and 1343 deletions

View File

@@ -7,13 +7,15 @@
//
#import "MPExpressionView.h"
#import "MPExpressionLayout.h"
#import "MPExpressionStorage.h"
#import "NSObject+MPStringTest.h"
#import "MPExpressionLayout.h"
#import "MPSumFunction.h"
@interface MPExpressionView (MPCursor)
@property (nonatomic, strong) NSTimer *cursorTimer;
@end
@implementation MPExpressionView
#pragma mark Creation Methods
@@ -47,23 +49,20 @@
- (void)initializeObjects
{
MPExpressionStorage *expressionStorage = [[MPExpressionStorage alloc] initWithSymbols:@[@"12 345", [[MPSumFunction alloc] init], [[MPSumFunction alloc] init]]];
MPExpressionStorage *expressionStorage = [[MPExpressionStorage alloc] initWithElements:@[@"12345", [[MPSumFunction alloc] init], [[MPSumFunction alloc] init]]];
_expressionStorage = expressionStorage;
[self.expressionLayout setExpressionView:self];
}
#pragma mark Properties
- (void)setExpressionStorage:(MPExpressionStorage *)expressionStorage
- (BOOL)isFlipped
{
[_expressionStorage.expressionLayout setExpressionView:nil];
_expressionStorage = expressionStorage;
[_expressionStorage.expressionLayout setExpressionView:self];
return NO;
}
- (MPExpressionLayout *)expressionLayout
- (void)setExpressionStorage:(MPExpressionStorage *)expressionStorage
{
return self.expressionStorage.expressionLayout;
_expressionStorage = expressionStorage;
}
#pragma mark Drawing Methods
@@ -74,11 +73,10 @@
[[NSColor whiteColor] set];
NSRectFill(self.bounds);
[[NSColor blackColor] set];
NSSize expressionSize = [self.expressionLayout sizeForAllSymbols];
NSSize expressionSize = [self.expressionStorage.rootLayout size];
CGFloat y = (self.bounds.size.height - expressionSize.height) / 2;
NSLog(@"%f", self.bounds.origin.y);
NSPoint point = NSMakePoint(self.bounds.origin.x, self.bounds.origin.y + y);
[self.expressionLayout drawAllSymbolsAtPoint:point];
[self.expressionStorage.rootLayout drawAtPoint:point];
}
@end