Archived
1
This repository has been archived on 2022-08-08. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
mathpad/MathPad/MPMathRules.m
2014-09-15 15:58:35 +02:00

96 lines
4.5 KiB
Objective-C

//
// MPMathRules.m
// MathPad
//
// Created by Kim Wittenburg on 14.09.14.
// Copyright (c) 2014 Kim Wittenburg. All rights reserved.
//
#import "MPMathRules.h"
NSString *MPMathRulesAllowsImplicitMultiplicationKey = @"MPMathRulesAllowsImplicitMultiplicationKey";
NSString *MPMathRulesMaximumOperatorChainLengthKey = @"MPMathRulesMaximumOperatorChainLengthKey";
NSString *MPMathRulesMaximumOperatorChainLengthInMultiplicationKey = @"MPMathRulesMaximumOperatorChainLengthInMultiplicationKey";
NSString *MPMathRulesMaximumOperatorChainLengthInFunctionKey = @"MPMathRulesMaximumOperatorChainLengthInFunctionKey";
@implementation MPMathRules
static MPMathRules *sharedRules;
+ (MPMathRules *)sharedRules
{
if (!sharedRules) {
sharedRules = [[MPMathRules alloc] init];
}
return sharedRules;
}
- (instancetype)init
{
if (sharedRules) {
return sharedRules;
}
self = [super init];
if (self) {
_usingUserDefaultValues = YES;
NSNumber *userDefaultsAllowImplicitMultiplication = [[NSUserDefaults standardUserDefaults] objectForKey:MPMathRulesAllowsImplicitMultiplicationKey];
NSNumber *userDefaultsMaximumOperatorChainLength = [[NSUserDefaults standardUserDefaults] objectForKey:MPMathRulesMaximumOperatorChainLengthKey];
NSNumber *userDefaultsMaximumOperatorChainLengthInMultiplication = [[NSUserDefaults standardUserDefaults] objectForKey:MPMathRulesMaximumOperatorChainLengthInMultiplicationKey];
NSNumber *userDefaultsMaximumOperatorChainLengthInFunction = [[NSUserDefaults standardUserDefaults] objectForKey:MPMathRulesMaximumOperatorChainLengthInFunctionKey];
_allowsImplicitMultiplication = userDefaultsAllowImplicitMultiplication != nil ? userDefaultsAllowImplicitMultiplication.boolValue : NO;
_maximumOperatorChainLength = userDefaultsMaximumOperatorChainLength != nil ? userDefaultsMaximumOperatorChainLength.unsignedIntegerValue : 2;
_maximumOperatorChainLengthInMultiplication = userDefaultsMaximumOperatorChainLengthInMultiplication != nil ? userDefaultsMaximumOperatorChainLengthInMultiplication.unsignedIntegerValue : 1;
_maximumOperatorChainLengthInFunction = userDefaultsMaximumOperatorChainLengthInFunction != nil ? userDefaultsMaximumOperatorChainLengthInFunction.unsignedIntegerValue : 1;
}
return self;
}
- (void)setUsingUserDefaultValues:(BOOL)usingUserDefaultValues
{
_usingUserDefaultValues = usingUserDefaultValues;
// Save the current values
self.allowsImplicitMultiplication = self.allowsImplicitMultiplication;
self.maximumOperatorChainLength = self.maximumOperatorChainLength;
self.maximumOperatorChainLengthInMultiplication = self.maximumOperatorChainLengthInMultiplication;
self.maximumOperatorChainLengthInFunction = self.maximumOperatorChainLengthInFunction;
}
- (void)setAllowsImplicitMultiplication:(BOOL)allowsImplicitMultiplication
{
_allowsImplicitMultiplication = allowsImplicitMultiplication;
if (self.isUsingUserDefaultValues) {
[[NSUserDefaults standardUserDefaults] setBool:allowsImplicitMultiplication
forKey:MPMathRulesAllowsImplicitMultiplicationKey];
}
}
- (void)setMaximumOperatorChainLength:(NSUInteger)maximumOperatorChainLength
{
_maximumOperatorChainLength = maximumOperatorChainLength;
if (self.isUsingUserDefaultValues) {
[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithUnsignedInteger:maximumOperatorChainLength]
forKey:MPMathRulesMaximumOperatorChainLengthKey];
}
}
- (void)setMaximumOperatorChainLengthInMultiplication:(NSUInteger)maximumOperatorChainLengthInMultiplication
{
_maximumOperatorChainLengthInMultiplication = maximumOperatorChainLengthInMultiplication;
if (self.isUsingUserDefaultValues) {
[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithUnsignedInteger:maximumOperatorChainLengthInMultiplication]
forKey:MPMathRulesMaximumOperatorChainLengthInMultiplicationKey];
}
}
- (void)setMaximumOperatorChainLengthInFunction:(NSUInteger)maximumOperatorChainLengthInFunction
{
_maximumOperatorChainLengthInFunction = maximumOperatorChainLengthInFunction;
if (self.isUsingUserDefaultValues) {
[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithUnsignedInteger:maximumOperatorChainLengthInFunction]
forKey:MPMathRulesMaximumOperatorChainLengthInFunctionKey];
}
}
@end