Version 1.2 - New practice mode added, bug fixes
This commit is contained in:
parent
357b7299e8
commit
398cc51044
@ -56,6 +56,8 @@
|
||||
B581EA03168E3037005D9936 /* check_box.png in Resources */ = {isa = PBXBuildFile; fileRef = B581EA02168E3037005D9936 /* check_box.png */; };
|
||||
B581EA05168E3099005D9936 /* check_box-1.png in Resources */ = {isa = PBXBuildFile; fileRef = B581EA04168E3099005D9936 /* check_box-1.png */; };
|
||||
B581EA08169B351A005D9936 /* TestResult+Create.m in Sources */ = {isa = PBXBuildFile; fileRef = B581EA07169B351A005D9936 /* TestResult+Create.m */; };
|
||||
B581EA0E169DA304005D9936 /* EspagramTypingTestViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B581EA0D169DA304005D9936 /* EspagramTypingTestViewController.m */; };
|
||||
B581EA10169DD28F005D9936 /* tabbar_typing.png in Resources */ = {isa = PBXBuildFile; fileRef = B581EA0F169DD28F005D9936 /* tabbar_typing.png */; };
|
||||
B5A8BB191651A64300C1CC00 /* CoreDataTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B5A8BB181651A3E700C1CC00 /* CoreDataTableViewController.m */; };
|
||||
B5B3F92D165972EF00E26A40 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = B5B3F92F165972EF00E26A40 /* Localizable.strings */; };
|
||||
B5B3F93516602C7C00E26A40 /* Verb.m in Sources */ = {isa = PBXBuildFile; fileRef = B5B3F93416602C7B00E26A40 /* Verb.m */; };
|
||||
@ -144,6 +146,9 @@
|
||||
B581EA04168E3099005D9936 /* check_box-1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "check_box-1.png"; sourceTree = "<group>"; };
|
||||
B581EA06169B351A005D9936 /* TestResult+Create.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "TestResult+Create.h"; sourceTree = "<group>"; };
|
||||
B581EA07169B351A005D9936 /* TestResult+Create.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "TestResult+Create.m"; sourceTree = "<group>"; };
|
||||
B581EA0C169DA303005D9936 /* EspagramTypingTestViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EspagramTypingTestViewController.h; sourceTree = "<group>"; };
|
||||
B581EA0D169DA304005D9936 /* EspagramTypingTestViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EspagramTypingTestViewController.m; sourceTree = "<group>"; };
|
||||
B581EA0F169DD28F005D9936 /* tabbar_typing.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = tabbar_typing.png; sourceTree = "<group>"; };
|
||||
B58F57661635D27E00CED51B /* Conjugator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Conjugator.h; sourceTree = "<group>"; };
|
||||
B58F576D16387BE600CED51B /* NSMutableArray_Shuffling.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = NSMutableArray_Shuffling.h; path = Espagram/NSMutableArray_Shuffling.h; sourceTree = "<group>"; };
|
||||
B5A8BB171651A3E700C1CC00 /* CoreDataTableViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CoreDataTableViewController.h; sourceTree = "<group>"; };
|
||||
@ -225,6 +230,8 @@
|
||||
B5A8BB181651A3E700C1CC00 /* CoreDataTableViewController.m */,
|
||||
B506EC7115EBF67500566A27 /* EspagramAppDelegate.h */,
|
||||
B506EC7415EBF67500566A27 /* MainStoryboard.storyboard */,
|
||||
B581EA0C169DA303005D9936 /* EspagramTypingTestViewController.h */,
|
||||
B581EA0D169DA304005D9936 /* EspagramTypingTestViewController.m */,
|
||||
B56DE15E165426B800D85DD3 /* EspagramAddWordToLessonViewController.h */,
|
||||
B56DE15F165426B800D85DD3 /* EspagramAddWordToLessonViewController.m */,
|
||||
B56DE15A165412DF00D85DD3 /* EspagramWordsInLessonViewController.h */,
|
||||
@ -285,6 +292,7 @@
|
||||
B581E9D2168DC759005D9936 /* Images */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
B581EA0F169DD28F005D9936 /* tabbar_typing.png */,
|
||||
B581EA04168E3099005D9936 /* check_box-1.png */,
|
||||
B581EA02168E3037005D9936 /* check_box.png */,
|
||||
B581EA00168E21C2005D9936 /* tabbar_list.png */,
|
||||
@ -394,6 +402,7 @@
|
||||
B581EA01168E21C2005D9936 /* tabbar_list.png in Resources */,
|
||||
B581EA03168E3037005D9936 /* check_box.png in Resources */,
|
||||
B581EA05168E3099005D9936 /* check_box-1.png in Resources */,
|
||||
B581EA10169DD28F005D9936 /* tabbar_typing.png in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@ -427,6 +436,7 @@
|
||||
B5B3F93816602C7D00E26A40 /* TestResult.m in Sources */,
|
||||
B5B3F93B16602C7E00E26A40 /* Lesson.m in Sources */,
|
||||
B581EA08169B351A005D9936 /* TestResult+Create.m in Sources */,
|
||||
B581EA0E169DA304005D9936 /* EspagramTypingTestViewController.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
||||
Binary file not shown.
@ -162,11 +162,11 @@
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Espagram/EspagramTestViewController.m"
|
||||
timestampString = "379272741.598802"
|
||||
timestampString = "379432647.778233"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "127"
|
||||
endingLineNumber = "127"
|
||||
startingLineNumber = "123"
|
||||
endingLineNumber = "123"
|
||||
landmarkName = "-nextVerb"
|
||||
landmarkType = "5">
|
||||
</FileBreakpoint>
|
||||
@ -188,11 +188,11 @@
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Espagram/EspagramTestViewController.m"
|
||||
timestampString = "379272885.813565"
|
||||
timestampString = "379432647.778233"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "169"
|
||||
endingLineNumber = "169"
|
||||
startingLineNumber = "165"
|
||||
endingLineNumber = "165"
|
||||
landmarkName = "-nextVerb"
|
||||
landmarkType = "5">
|
||||
</FileBreakpoint>
|
||||
@ -201,11 +201,11 @@
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Espagram/EspagramTestViewController.m"
|
||||
timestampString = "379272741.598802"
|
||||
timestampString = "379432647.778233"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "59"
|
||||
endingLineNumber = "59"
|
||||
startingLineNumber = "55"
|
||||
endingLineNumber = "55"
|
||||
landmarkName = "-answered:"
|
||||
landmarkType = "5">
|
||||
</FileBreakpoint>
|
||||
@ -214,11 +214,11 @@
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Espagram/EspagramTestViewController.m"
|
||||
timestampString = "379272741.598802"
|
||||
timestampString = "379432647.778233"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "108"
|
||||
endingLineNumber = "108"
|
||||
startingLineNumber = "104"
|
||||
endingLineNumber = "104"
|
||||
landmarkName = "-setUIButtonTitle:withText:inColour:forState:"
|
||||
landmarkType = "5">
|
||||
</FileBreakpoint>
|
||||
@ -227,11 +227,11 @@
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Espagram/EspagramTestViewController.m"
|
||||
timestampString = "379272741.598802"
|
||||
timestampString = "379432647.778233"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "92"
|
||||
endingLineNumber = "92"
|
||||
startingLineNumber = "88"
|
||||
endingLineNumber = "88"
|
||||
landmarkName = "-setAnswerButton:withAnswer:andCorrect:"
|
||||
landmarkType = "5">
|
||||
</FileBreakpoint>
|
||||
@ -240,11 +240,11 @@
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Espagram/EspagramTestViewController.m"
|
||||
timestampString = "379272741.598802"
|
||||
timestampString = "379432647.778233"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "102"
|
||||
endingLineNumber = "102"
|
||||
startingLineNumber = "98"
|
||||
endingLineNumber = "98"
|
||||
landmarkName = "-setUIButtonTitle:withText:inColour:forState:"
|
||||
landmarkType = "5">
|
||||
</FileBreakpoint>
|
||||
@ -305,11 +305,11 @@
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Espagram/EspagramTestViewController.m"
|
||||
timestampString = "379272885.813565"
|
||||
timestampString = "379432647.778233"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "155"
|
||||
endingLineNumber = "155"
|
||||
startingLineNumber = "151"
|
||||
endingLineNumber = "151"
|
||||
landmarkName = "-nextVerb"
|
||||
landmarkType = "5">
|
||||
</FileBreakpoint>
|
||||
@ -864,11 +864,11 @@
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Espagram/EspagramTestViewController.m"
|
||||
timestampString = "379272885.813565"
|
||||
timestampString = "379432647.778233"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "130"
|
||||
endingLineNumber = "130"
|
||||
startingLineNumber = "126"
|
||||
endingLineNumber = "126"
|
||||
landmarkName = "-nextVerb"
|
||||
landmarkType = "5">
|
||||
</FileBreakpoint>
|
||||
@ -885,5 +885,18 @@
|
||||
landmarkName = "+addTestableVerbResult:withTestType:"
|
||||
landmarkType = "5">
|
||||
</FileBreakpoint>
|
||||
<FileBreakpoint
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Espagram/EspagramTestViewController.m"
|
||||
timestampString = "379440037.809619"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "186"
|
||||
endingLineNumber = "186"
|
||||
landmarkName = "-viewWillAppear:"
|
||||
landmarkType = "5">
|
||||
</FileBreakpoint>
|
||||
</FileBreakpoints>
|
||||
</Bucket>
|
||||
|
||||
@ -37,11 +37,11 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.1</string>
|
||||
<string>1.2</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.1</string>
|
||||
<string>1.2</string>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
<string></string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
|
||||
@ -277,12 +277,18 @@ didSelectViewController:(UIViewController *)viewController {
|
||||
}
|
||||
}
|
||||
|
||||
NSLog(@"Count viewControllers: %d", [self.tabBarController viewControllers].count);
|
||||
|
||||
for ( id vc in [self.tabBarController viewControllers] ) {
|
||||
if ( [vc respondsToSelector:@selector(setLesson:)]) {
|
||||
[vc setLesson:self.lesson];
|
||||
}
|
||||
UIViewController *tvc= (UIViewController *)vc;
|
||||
NSLog(@"title = %@",tvc.title);
|
||||
if ( [tvc.title isEqualToString:@"Verb"])
|
||||
tvc.title = NSLocalizedString(@"Verbs List",@"List of verbs");
|
||||
else if ( [tvc.title isEqualToString:@"Multiple Choice"])
|
||||
tvc.title = NSLocalizedString(@"Multiple Choice",@"Multiple Choice test");
|
||||
else if ( [tvc.title isEqualToString:@"Typing Test"])
|
||||
tvc.title = NSLocalizedString(@"Typing", @"Typing test");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -46,10 +46,6 @@
|
||||
return _testSet;
|
||||
};
|
||||
|
||||
- (IBAction)EditingDidEnd:(UITextField *)sender {
|
||||
[self resignFirstResponder];
|
||||
}
|
||||
|
||||
|
||||
- (IBAction)answered:(UIButton *)sender {
|
||||
|
||||
@ -187,11 +183,12 @@
|
||||
{
|
||||
[super viewWillAppear:animated];
|
||||
|
||||
self.title = NSLocalizedString(@"Multiple Choice",@"Multiple Choice test");
|
||||
|
||||
self.nextButton.titleLabel.text = NSLocalizedString(@"Next", @"Next button in the testing screen to continue to the next verb");
|
||||
|
||||
[self.nextButton setTitle:NSLocalizedString(@"Next", @"Next button in the testing screen to continue to the next verb") forState:UIControlStateNormal];
|
||||
|
||||
self.title = NSLocalizedString(@"Multiple Choice",@"Multiple Choice test");
|
||||
|
||||
if ( [self.testSet count] > 0) {
|
||||
[self nextVerb];
|
||||
|
||||
34
Espagram/EspagramTypingTestViewController.h
Normal file
34
Espagram/EspagramTypingTestViewController.h
Normal file
@ -0,0 +1,34 @@
|
||||
//
|
||||
// EspagramTypingTestViewController.h
|
||||
// Espagram
|
||||
//
|
||||
// Created by Abel Fokkinga on 1/9/13.
|
||||
// Copyright (c) 2013 Abel Fokkinga. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "Conjugator.h"
|
||||
#import "EspagramLessonTesting.h"
|
||||
#import "EspagramConjugationTableViewController.h"
|
||||
#import "Lesson+Conjugator.h"
|
||||
#import "Lesson+Test.h"
|
||||
#import "Verb.h"
|
||||
|
||||
@interface EspagramTypingTestViewController : UIViewController
|
||||
<EspagramLessonTesting>
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UILabel *testedVerbLabel;
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UILabel *verbMeaningLable;
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UILabel *verbPersonLabel;
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UIButton *nextButton;
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UIButton *checkAnswerButton;
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UIButton *showAnswerButton;
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UITextField *verbAnswerTextField;
|
||||
|
||||
@end
|
||||
204
Espagram/EspagramTypingTestViewController.m
Normal file
204
Espagram/EspagramTypingTestViewController.m
Normal file
@ -0,0 +1,204 @@
|
||||
//
|
||||
// EspagramTypingTestViewController.m
|
||||
// Espagram
|
||||
//
|
||||
// Created by Abel Fokkinga on 1/9/13.
|
||||
// Copyright (c) 2013 Abel Fokkinga. All rights reserved.
|
||||
//
|
||||
|
||||
#import "EspagramTypingTestViewController.h"
|
||||
#import "TestResult+Create.h"
|
||||
#import "NSMutableArray_Shuffling.h"
|
||||
|
||||
@interface EspagramTypingTestViewController ()
|
||||
|
||||
@property (nonatomic, strong) NSMutableArray * testSet;
|
||||
@property (nonatomic, strong) TestableVerb * currentVerb;
|
||||
@property (nonatomic) int correctAnswersInCurrentSet;
|
||||
@property (nonatomic) int wrongAnswersInCurrentSet;
|
||||
|
||||
@end
|
||||
|
||||
@implementation EspagramTypingTestViewController
|
||||
|
||||
@synthesize lesson = _lesson;
|
||||
@synthesize testedVerbLabel = _testedVerbLabel;
|
||||
@synthesize verbMeaningLable = _testedVerbLable;
|
||||
@synthesize verbPersonLabel = _verbPersonLabel;
|
||||
@synthesize verbAnswerTextField = _verbAnswerTextField;
|
||||
@synthesize nextButton = _nextButton;
|
||||
@synthesize showAnswerButton = _showAnswerButton;
|
||||
@synthesize checkAnswerButton = _checkAnswerButton;
|
||||
@synthesize testSet = _testSet;
|
||||
@synthesize currentVerb = _currentVerb;
|
||||
@synthesize correctAnswersInCurrentSet = _correctAnswersInCurrentSet;
|
||||
@synthesize wrongAnswersInCurrentSet = _wrongAnswersInCurrentSet;
|
||||
|
||||
|
||||
- (NSMutableArray *)testSet{
|
||||
// Check if there are any verbs in the set
|
||||
if ( _testSet.count == 0) {
|
||||
_testSet = [self.lesson testableVerbs];
|
||||
self.correctAnswersInCurrentSet = 0;
|
||||
self.wrongAnswersInCurrentSet = 0;
|
||||
}
|
||||
return _testSet;
|
||||
};
|
||||
|
||||
- (void) setUIButtonTitle:(UIButton *)button withText:(NSString *) titleString inColour:(UIColor *) colour forState:(UIControlState)controlState
|
||||
{
|
||||
NSAttributedString *title;
|
||||
title = [[NSAttributedString alloc] initWithString:titleString attributes:@{ NSFontAttributeName :
|
||||
[UIFont fontWithName:@"Noteworthy-Bold" size:16],
|
||||
// NSUnderlineStyleAttributeName : @1,
|
||||
NSStrokeColorAttributeName : colour}];
|
||||
|
||||
[button setAttributedTitle:title forState:controlState];
|
||||
|
||||
}
|
||||
|
||||
- (void) setUILabelTitle:(UILabel *)label withText:(NSString *) titleString inColour:(UIColor *) colour andSize:(int) fontSize;
|
||||
{
|
||||
NSAttributedString *title;
|
||||
title = [[NSAttributedString alloc] initWithString:titleString attributes:@{ NSFontAttributeName :
|
||||
[UIFont fontWithName:@"Noteworthy-Bold" size:fontSize],
|
||||
// NSUnderlineStyleAttributeName : @1,
|
||||
NSStrokeColorAttributeName : colour
|
||||
}];
|
||||
|
||||
label.attributedText = title;
|
||||
}
|
||||
|
||||
|
||||
|
||||
- (void) checkAnswer:(NSString *) answer {
|
||||
NSString * correctAnswer = [self.lesson.getConjugationEngine conjugateVerb:self.currentVerb.verb.verb inPerson:self.currentVerb.person andTense:[self.lesson getTenseAsTense]];
|
||||
|
||||
|
||||
if ( [answer isEqualToString:correctAnswer]) {
|
||||
|
||||
[self setUILabelTitle:self.verbPersonLabel withText:[[[[[[self.lesson getConjugationEngine] persons] objectForKey:self.currentVerb.person] stringByAppendingString:@" "] stringByAppendingString:correctAnswer] stringByAppendingString:@" \u2705"] inColour:[UIColor greenColor] andSize:16];
|
||||
|
||||
} else {
|
||||
[self setUILabelTitle:self.verbPersonLabel withText:[[[[[[self.lesson getConjugationEngine] persons] objectForKey:self.currentVerb.person] stringByAppendingString:@" "] stringByAppendingString:answer] stringByAppendingString:@" \u274C"] inColour:[UIColor redColor] andSize:16];
|
||||
|
||||
// Set current test verb to failed
|
||||
self.currentVerb.failed = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
- (void) nextVerb {
|
||||
|
||||
// Add test result
|
||||
if ( self.currentVerb) {
|
||||
[TestResult addTestableVerbResult:self.currentVerb withTestType:@"Typing"];
|
||||
}
|
||||
|
||||
if ( self.currentVerb && self.currentVerb.failed) {
|
||||
// Last test failed.. so we won't remove it
|
||||
// instead we shuffle the test set.
|
||||
[self.testSet shuffle];
|
||||
|
||||
// increase wrongly answered counter
|
||||
self.wrongAnswersInCurrentSet += 1;
|
||||
} {
|
||||
// Last verb answered correctly
|
||||
[self.testSet lastObject];
|
||||
|
||||
// increase wrongly answered counter
|
||||
self.correctAnswersInCurrentSet += 1;
|
||||
}
|
||||
|
||||
self.currentVerb = self.testSet.lastObject;
|
||||
|
||||
|
||||
if ( self.currentVerb) {
|
||||
|
||||
NSLog(@"Testing verb %@ in %@", self.currentVerb.verb.verb, self.currentVerb.person);
|
||||
|
||||
NSString * correctAnswer = [self.lesson.getConjugationEngine conjugateVerb:self.currentVerb.verb.verb inPerson:self.currentVerb.person andTense:[self.lesson getTenseAsTense]];
|
||||
|
||||
NSLog(@"Correct answer: %@", correctAnswer);
|
||||
|
||||
// Set display label to verb to test
|
||||
[self setUILabelTitle:self.testedVerbLabel withText:self.currentVerb.verb.verb inColour:[UIColor blackColor] andSize:30];
|
||||
|
||||
[self setUILabelTitle:self.verbMeaningLable withText:self.currentVerb.verb.meaning inColour:[UIColor blackColor] andSize:12];
|
||||
|
||||
[self setUILabelTitle:self.verbPersonLabel withText:[[[self.lesson getConjugationEngine] persons] objectForKey:self.currentVerb.person] inColour:[UIColor blackColor] andSize:16];
|
||||
|
||||
|
||||
} else {
|
||||
NSLog(@"Que horror, no lesson!");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
- (IBAction)checkAnswerButtonPressed {
|
||||
[self.verbAnswerTextField resignFirstResponder];
|
||||
[self checkAnswer:self.verbAnswerTextField.text];
|
||||
}
|
||||
|
||||
|
||||
- (IBAction)showCorrectAnswerButtonPressed:(id)sender {
|
||||
[self.verbAnswerTextField resignFirstResponder];
|
||||
|
||||
NSString * correctAnswer = [self.lesson.getConjugationEngine conjugateVerb:self.currentVerb.verb.verb inPerson:self.currentVerb.person andTense:[self.lesson getTenseAsTense]];
|
||||
|
||||
[self setUILabelTitle:self.verbPersonLabel withText:[[[[[[self.lesson getConjugationEngine] persons] objectForKey:self.currentVerb.person] stringByAppendingString:@" "] stringByAppendingString:correctAnswer] stringByAppendingString:@" \u2705"] inColour:[UIColor greenColor] andSize:16];
|
||||
|
||||
}
|
||||
|
||||
- (IBAction)nextButtonPressed:(id)sender {
|
||||
|
||||
[self.testSet removeLastObject];
|
||||
[self nextVerb];
|
||||
self.verbAnswerTextField.text = @"";
|
||||
}
|
||||
|
||||
- (IBAction)answerEntered:(id)sender {
|
||||
[self resignFirstResponder];
|
||||
[self checkAnswer:self.verbAnswerTextField.text];
|
||||
|
||||
}
|
||||
|
||||
- (IBAction)addAccentedCharacter:(UIButton *)sender {
|
||||
self.verbAnswerTextField.text = [self.verbAnswerTextField.text stringByAppendingString:sender.titleLabel.text];
|
||||
}
|
||||
|
||||
|
||||
- (void)viewWillAppear:(BOOL)animated
|
||||
{
|
||||
[super viewWillAppear:animated];
|
||||
|
||||
self.title = NSLocalizedString(@"Typing",@"Typing Test");
|
||||
|
||||
self.nextButton.titleLabel.text = NSLocalizedString(@"Next", @"Next button in the testing screen to continue to the next verb");
|
||||
|
||||
[self.nextButton setTitle:NSLocalizedString(@"Next", @"Next button in the testing screen to continue to the next verb") forState:UIControlStateNormal];
|
||||
|
||||
self.checkAnswerButton.titleLabel.text = NSLocalizedString(@"Check", @"Check answer");
|
||||
|
||||
[self.checkAnswerButton setTitle:NSLocalizedString(@"Check", @"Check answer button") forState:UIControlStateNormal];
|
||||
|
||||
self.showAnswerButton.titleLabel.text = NSLocalizedString(@"Answer", @"Show correct answer button");
|
||||
|
||||
[self.showAnswerButton setTitle:NSLocalizedString(@"Answer", @"Show correct answer button") forState:UIControlStateNormal];
|
||||
|
||||
|
||||
if ( [self.testSet count] > 0) {
|
||||
[self nextVerb];
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
- (void)didReceiveMemoryWarning
|
||||
{
|
||||
[super didReceiveMemoryWarning];
|
||||
// Dispose of any resources that can be recreated.
|
||||
}
|
||||
|
||||
@end
|
||||
@ -380,7 +380,6 @@
|
||||
|
||||
- (NSString *) getExit:(NSString *) verb {
|
||||
|
||||
NSLog(@"getExit start");
|
||||
if ( verb.length > 2 )
|
||||
return [verb substringFromIndex:[verb length] - 2];
|
||||
else
|
||||
@ -389,12 +388,6 @@
|
||||
|
||||
- (NSString *) getStem:(NSString *) verb {
|
||||
|
||||
NSLog(@"getStem start");
|
||||
|
||||
// if ( [[self getExit:verb] isEqualToString:@"ír"] )
|
||||
// return [[verb substringToIndex:[verb length] -2] stringByAppendingString:@"i"];
|
||||
NSLog(@"getStem end");
|
||||
|
||||
return [verb substringToIndex:[verb length] -2];
|
||||
}
|
||||
|
||||
@ -404,8 +397,6 @@
|
||||
NSString * verbStem = [self getStem:verb];
|
||||
NSString * verbExit = [self getExit:verb];
|
||||
|
||||
NSLog(@"getSimplePresentStemVerb start.irregular");
|
||||
|
||||
|
||||
// Bit irregular
|
||||
if ( [person isEqualToString:@"FIRST_PERSON_SINGULAR"] ) {
|
||||
@ -622,10 +613,6 @@
|
||||
NSString * simplePresentYo = [self conjugateSimplePresentVerb:verb inPerson:@"FIRST_PERSON_SINGULAR"];
|
||||
NSString * simplePresentYoStem = [simplePresentYo substringToIndex:simplePresentYo.length -1];
|
||||
|
||||
|
||||
NSLog(@"person %@", person);
|
||||
|
||||
|
||||
if ( [person isEqualToString:@"FIRST_PERSON_SINGULAR"] ||
|
||||
[person isEqualToString:@"THIRD_PERSON_SINGULAR"] ) {
|
||||
|
||||
@ -1724,7 +1711,6 @@
|
||||
return @"Invalid tense";
|
||||
|
||||
if ( reflexive ) {
|
||||
NSLog(@"%@",[[[[self reflexivePersons] objectForKey:person] stringByAppendingString:@" "] stringByAppendingString:conjugated]);
|
||||
return [[[[self reflexivePersons] objectForKey:person] stringByAppendingString:@" "] stringByAppendingString:conjugated];
|
||||
}
|
||||
else {
|
||||
@ -1753,7 +1739,6 @@
|
||||
id lastObject = nil;
|
||||
if ( a && a.count > 0 ) {
|
||||
lastObject = [a lastObject];
|
||||
NSLog(@"Popping: %@", lastObject);
|
||||
[a removeLastObject];
|
||||
}
|
||||
return lastObject;
|
||||
@ -3510,8 +3495,6 @@
|
||||
|
||||
BOOL reflexive = FALSE;
|
||||
|
||||
NSLog(@"Getting test conjugation for %@ in person %@ and %@",verb,person,tense);
|
||||
|
||||
if ( [[self getExit:verb] isEqualToString:@"se"] ) {
|
||||
reflexive = TRUE;
|
||||
// Getting the stem will remove the last 2 characters
|
||||
@ -3528,9 +3511,6 @@
|
||||
correctAnswer = [self conjugateVerb:verb inPerson:person andTense:tense];
|
||||
}
|
||||
|
||||
|
||||
NSLog(@"Correct answer: %@", correctAnswer);
|
||||
|
||||
if ( [tense.tense isEqualToString:@"SIMPLE_PRESENT"])
|
||||
wrongAnswers = [self generateFalseConjugationsSimplePresentVerb:verb inPerson:person withCorrectAnswer:correctAnswer];
|
||||
else if ( [tense.tense isEqualToString:@"PRESENT_SUBJUNCTIVE"])
|
||||
|
||||
Binary file not shown.
@ -621,7 +621,7 @@
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
<color key="backgroundColor" red="0.92037779090000005" green="0.84682043169999999" blue="0.62681043489999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</view>
|
||||
<connections>
|
||||
<outlet property="addButton" destination="VbD-YA-2wz" id="l3o-Gh-MEd"/>
|
||||
@ -637,12 +637,12 @@
|
||||
</objects>
|
||||
<point key="canvasLocation" x="979" y="-1015"/>
|
||||
</scene>
|
||||
<!--Espagram Test View Controller - Conjugate-->
|
||||
<!--Espagram Test View Controller - Multiple Choice-->
|
||||
<scene sceneID="lbJ-Av-XmM">
|
||||
<objects>
|
||||
<viewController title="Conjugate" id="o8A-Pj-xMi" customClass="EspagramTestViewController" sceneMemberID="viewController">
|
||||
<viewController title="Multiple Choice" id="o8A-Pj-xMi" customClass="EspagramTestViewController" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="redraw" id="ee2-Vd-mbR">
|
||||
<rect key="frame" x="0.0" y="64" width="320" height="416"/>
|
||||
<rect key="frame" x="0.0" y="64" width="320" height="367"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" usesAttributedText="YES" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="j9Z-GN-xos">
|
||||
@ -660,7 +660,7 @@
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" hasAttributedTitle="YES" id="GwC-Bf-HXP">
|
||||
<rect key="frame" x="20" y="158" width="280" height="44"/>
|
||||
<rect key="frame" x="20" y="109" width="280" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<state key="normal">
|
||||
@ -679,7 +679,7 @@
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" hasAttributedTitle="YES" id="SQD-lH-VYW">
|
||||
<rect key="frame" x="20" y="209" width="280" height="44"/>
|
||||
<rect key="frame" x="20" y="160" width="280" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<state key="normal">
|
||||
@ -697,7 +697,7 @@
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" hasAttributedTitle="YES" id="wjU-6t-8IW">
|
||||
<rect key="frame" x="20" y="260" width="280" height="44"/>
|
||||
<rect key="frame" x="20" y="211" width="280" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<state key="normal">
|
||||
@ -715,7 +715,7 @@
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" hasAttributedTitle="YES" id="oF7-P6-yi9">
|
||||
<rect key="frame" x="20" y="311" width="280" height="44"/>
|
||||
<rect key="frame" x="20" y="262" width="280" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<state key="normal">
|
||||
@ -733,7 +733,7 @@
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="9jU-k2-QRJ">
|
||||
<rect key="frame" x="20" y="362" width="280" height="44"/>
|
||||
<rect key="frame" x="20" y="313" width="280" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
|
||||
<state key="normal" title="Next">
|
||||
@ -748,7 +748,7 @@
|
||||
</connections>
|
||||
</button>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" usesAttributedText="YES" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="vIa-Z9-dQK">
|
||||
<rect key="frame" x="20" y="123" width="280" height="32"/>
|
||||
<rect key="frame" x="20" y="74" width="280" height="32"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<attributedString key="attributedText">
|
||||
<fragment content="Person">
|
||||
@ -810,18 +810,19 @@
|
||||
<connections>
|
||||
<segue destination="x6z-xh-dlG" kind="relationship" relationship="viewControllers" id="WT2-Bb-XMi"/>
|
||||
<segue destination="o8A-Pj-xMi" kind="relationship" relationship="viewControllers" id="h5C-pK-ZSX"/>
|
||||
<segue destination="QXI-XP-mxq" kind="relationship" relationship="viewControllers" id="MYn-Ms-KzG"/>
|
||||
</connections>
|
||||
</tabBarController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="1zw-rA-Vsu" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="390" y="356"/>
|
||||
</scene>
|
||||
<!--Espagram Words In Lesson View Controller - Words-->
|
||||
<!--Espagram Words In Lesson View Controller - Verbs List-->
|
||||
<scene sceneID="DCT-R0-chn">
|
||||
<objects>
|
||||
<tableViewController id="x6z-xh-dlG" customClass="EspagramWordsInLessonViewController" sceneMemberID="viewController">
|
||||
<tableViewController title="Verbs List" id="x6z-xh-dlG" customClass="EspagramWordsInLessonViewController" sceneMemberID="viewController">
|
||||
<tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="grouped" separatorStyle="singleLineEtched" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="Jll-Rf-A8B">
|
||||
<rect key="frame" x="0.0" y="64" width="320" height="416"/>
|
||||
<rect key="frame" x="0.0" y="64" width="320" height="367"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" red="0.92037779090000005" green="0.84682043169999999" blue="0.62681043489999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<prototypes>
|
||||
@ -873,12 +874,212 @@
|
||||
</objects>
|
||||
<point key="canvasLocation" x="990" y="370"/>
|
||||
</scene>
|
||||
<!--Espagram Typing Test View Controller - Typing Test-->
|
||||
<scene sceneID="Jj6-9s-p92">
|
||||
<objects>
|
||||
<viewController title="Typing Test" id="QXI-XP-mxq" customClass="EspagramTypingTestViewController" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="jA1-KK-GEw">
|
||||
<rect key="frame" x="0.0" y="64" width="320" height="367"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" usesAttributedText="YES" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="e4v-C6-jif">
|
||||
<rect key="frame" x="20" y="0.0" width="280" height="45"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<attributedString key="attributedText">
|
||||
<fragment content="Verb">
|
||||
<attributes>
|
||||
<color key="NSColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<font key="NSFont" size="21" name="Helvetica"/>
|
||||
<paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural"/>
|
||||
</attributes>
|
||||
</fragment>
|
||||
</attributedString>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="tHV-ju-jYt">
|
||||
<rect key="frame" x="20" y="309" width="285" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
|
||||
<state key="normal" title="Next">
|
||||
<color key="titleColor" red="0.1960784314" green="0.30980392159999998" blue="0.52156862749999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="nextButtonPressed:" destination="QXI-XP-mxq" eventType="touchUpInside" id="9Hl-Y1-rAN"/>
|
||||
<action selector="nextButtonPressed:" destination="o8A-Pj-xMi" eventType="touchUpInside" id="Spc-yq-8Lb"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="b2m-pe-KH3">
|
||||
<rect key="frame" x="195" y="132" width="110" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
|
||||
<state key="normal" title="Check">
|
||||
<color key="titleColor" red="0.1960784314" green="0.30980392159999998" blue="0.52156862749999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="checkAnswerButtonPressed" destination="QXI-XP-mxq" eventType="touchUpInside" id="wqW-Mg-iUJ"/>
|
||||
<action selector="nextButtonPressed:" destination="o8A-Pj-xMi" eventType="touchUpInside" id="Z4U-Kr-SXx"/>
|
||||
</connections>
|
||||
</button>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" usesAttributedText="YES" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="hgw-RS-S9q">
|
||||
<rect key="frame" x="20" y="69" width="280" height="32"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<attributedString key="attributedText">
|
||||
<fragment content="Person">
|
||||
<attributes>
|
||||
<color key="NSColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<font key="NSFont" size="17" name="Helvetica"/>
|
||||
<paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural"/>
|
||||
</attributes>
|
||||
</fragment>
|
||||
</attributedString>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" usesAttributedText="YES" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="h2R-hV-w1C">
|
||||
<rect key="frame" x="20" y="46" width="280" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<attributedString key="attributedText">
|
||||
<fragment content="Meaning">
|
||||
<attributes>
|
||||
<color key="NSColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<font key="NSFont" size="17" name="Helvetica"/>
|
||||
<paragraphStyle key="NSParagraphStyle" alignment="justified" lineBreakMode="wordWrapping" baseWritingDirection="natural"/>
|
||||
</attributes>
|
||||
</fragment>
|
||||
</attributedString>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" minimumFontSize="17" clearButtonMode="whileEditing" id="6Qr-xM-8Dq">
|
||||
<rect key="frame" x="20" y="100" width="285" height="30"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no"/>
|
||||
<connections>
|
||||
<action selector="answerEntered:" destination="QXI-XP-mxq" eventType="editingDidEndOnExit" id="Zw9-lR-EQf"/>
|
||||
<action selector="answerEntered:" destination="QXI-XP-mxq" eventType="editingDidEnd" id="zn3-7M-8Ht"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="oky-Ng-qk8">
|
||||
<rect key="frame" x="20" y="258" width="285" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" title="Answer">
|
||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="showCorrectAnswerButtonPressed:" destination="QXI-XP-mxq" eventType="touchUpInside" id="zhp-FD-4ZE"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="vlo-We-Dae">
|
||||
<rect key="frame" x="20" y="132" width="32" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" title="á">
|
||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="addAccentedCharacter:" destination="QXI-XP-mxq" eventType="touchUpInside" id="G6u-wF-rdL"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="M87-IO-AAZ">
|
||||
<rect key="frame" x="88" y="132" width="34" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" title="í">
|
||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="addAccentedCharacter:" destination="QXI-XP-mxq" eventType="touchUpInside" id="t2R-31-bnN"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="D3s-Hp-TiS">
|
||||
<rect key="frame" x="54" y="132" width="33" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" title="é">
|
||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="addAccentedCharacter:" destination="QXI-XP-mxq" eventType="touchUpInside" id="xAx-mF-LPk"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="T5t-49-RlT">
|
||||
<rect key="frame" x="125" y="132" width="33" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" title="ó">
|
||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="addAccentedCharacter:" destination="QXI-XP-mxq" eventType="touchUpInside" id="Iyn-G3-awM"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="v7a-R9-jbh">
|
||||
<rect key="frame" x="159" y="132" width="34" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" title="ú">
|
||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="addAccentedCharacter:" destination="QXI-XP-mxq" eventType="touchUpInside" id="XmZ-lR-J0G"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" red="0.92037779090000005" green="0.84682043169999999" blue="0.62681043489999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</view>
|
||||
<tabBarItem key="tabBarItem" title="Typing Test" image="tabbar_typing.png" id="ncX-8i-u95"/>
|
||||
<connections>
|
||||
<outlet property="checkAnswerButton" destination="b2m-pe-KH3" id="0pW-Ve-813"/>
|
||||
<outlet property="nextButton" destination="tHV-ju-jYt" id="8t1-fM-Vz5"/>
|
||||
<outlet property="showAnswerButton" destination="oky-Ng-qk8" id="9md-2e-34Z"/>
|
||||
<outlet property="testedVerbLabel" destination="e4v-C6-jif" id="TDn-20-RqB"/>
|
||||
<outlet property="verbAnswerTextField" destination="6Qr-xM-8Dq" id="yLu-M9-ntI"/>
|
||||
<outlet property="verbMeaningLable" destination="h2R-hV-w1C" id="oVD-2J-PhT"/>
|
||||
<outlet property="verbPersonLabel" destination="hgw-RS-S9q" id="Bq2-qY-YHk"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="jKR-SC-63X" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="990" y="945"/>
|
||||
</scene>
|
||||
<!--Espagram Conjugation Table View Controller - Conjugation-->
|
||||
<scene sceneID="Rhi-w3-Ide">
|
||||
<objects>
|
||||
<tableViewController id="1HP-4w-6pR" customClass="EspagramConjugationTableViewController" sceneMemberID="viewController">
|
||||
<tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="center" alwaysBounceVertical="YES" dataMode="prototypes" style="grouped" separatorStyle="singleLineEtched" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="DJ6-de-4Ph">
|
||||
<rect key="frame" x="0.0" y="64" width="320" height="416"/>
|
||||
<rect key="frame" x="0.0" y="64" width="320" height="367"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" red="0.92037779090000005" green="0.84682043169999999" blue="0.62681043489999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<prototypes>
|
||||
@ -992,7 +1193,7 @@
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
<color key="backgroundColor" red="0.92037779090000005" green="0.84682043169999999" blue="0.62681043489999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</view>
|
||||
<connections>
|
||||
<outlet property="addButton" destination="bSy-fb-UkH" id="aOs-7Y-DxQ"/>
|
||||
@ -1030,15 +1231,95 @@
|
||||
<image name="check_box-1.png" width="26" height="26"/>
|
||||
<image name="espagram117.png" width="114" height="114"/>
|
||||
<image name="tabbar_list.png" width="21" height="21"/>
|
||||
<image name="tabbar_typing.png" width="21" height="21"/>
|
||||
</resources>
|
||||
<classes>
|
||||
<class className="CoreDataTableViewController" superclassName="UITableViewController">
|
||||
<source key="sourceIdentifier" type="project" relativePath="./Classes/CoreDataTableViewController.h"/>
|
||||
</class>
|
||||
<class className="EspagramAddWordToLessonViewController" superclassName="UIViewController">
|
||||
<source key="sourceIdentifier" type="project" relativePath="./Classes/EspagramAddWordToLessonViewController.h"/>
|
||||
<relationships>
|
||||
<relationship kind="outlet" name="addButton" candidateClass="UIButton"/>
|
||||
<relationship kind="outlet" name="cancelButton" candidateClass="UIButton"/>
|
||||
<relationship kind="outlet" name="meaningInputText" candidateClass="UITextField"/>
|
||||
<relationship kind="outlet" name="meaningLabel" candidateClass="UILabel"/>
|
||||
<relationship kind="outlet" name="wordInputText" candidateClass="UITextField"/>
|
||||
<relationship kind="outlet" name="wordLabel" candidateClass="UILabel"/>
|
||||
</relationships>
|
||||
</class>
|
||||
<class className="EspagramConjugationTableViewController" superclassName="UITableViewController">
|
||||
<source key="sourceIdentifier" type="project" relativePath="./Classes/EspagramConjugationTableViewController.h"/>
|
||||
<relationships>
|
||||
<relationship kind="outlet" name="verb" candidateClass="Verb"/>
|
||||
</relationships>
|
||||
</class>
|
||||
<class className="EspagramLessonViewController" superclassName="CoreDataTableViewController">
|
||||
<source key="sourceIdentifier" type="project" relativePath="./Classes/EspagramLessonViewController.h"/>
|
||||
</class>
|
||||
<class className="EspagramMainTableViewController" superclassName="UITableViewController">
|
||||
<source key="sourceIdentifier" type="project" relativePath="./Classes/EspagramMainTableViewController.h"/>
|
||||
<relationships>
|
||||
<relationship kind="outlet" name="aboutButton" candidateClass="UIBarButtonItem"/>
|
||||
</relationships>
|
||||
</class>
|
||||
<class className="EspagramNewLessonViewController" superclassName="UIViewController">
|
||||
<source key="sourceIdentifier" type="project" relativePath="./Classes/EspagramNewLessonViewController.h"/>
|
||||
<relationships>
|
||||
<relationship kind="action" name="cancelButtonPressed:"/>
|
||||
<relationship kind="action" name="editingDidEnd:"/>
|
||||
<relationship kind="outlet" name="addButton" candidateClass="UIButton"/>
|
||||
<relationship kind="outlet" name="cancelButton" candidateClass="UIButton"/>
|
||||
<relationship kind="outlet" name="descriptionLabel" candidateClass="UILabel"/>
|
||||
<relationship kind="outlet" name="lessonDescriptionTextInput" candidateClass="UITextField"/>
|
||||
<relationship kind="outlet" name="lessonNameTextInput" candidateClass="UITextField"/>
|
||||
<relationship kind="outlet" name="nameLabel" candidateClass="UILabel"/>
|
||||
</relationships>
|
||||
</class>
|
||||
<class className="EspagramTestViewController" superclassName="UIViewController">
|
||||
<source key="sourceIdentifier" type="project" relativePath="./Classes/EspagramTestViewController.h"/>
|
||||
<relationships>
|
||||
<relationship kind="outlet" name="answer1Button" candidateClass="UIButton"/>
|
||||
<relationship kind="outlet" name="answer2Button" candidateClass="UIButton"/>
|
||||
<relationship kind="outlet" name="answer3Button" candidateClass="UIButton"/>
|
||||
<relationship kind="outlet" name="answer4Button" candidateClass="UIButton"/>
|
||||
<relationship kind="outlet" name="nextButton" candidateClass="UIButton"/>
|
||||
<relationship kind="outlet" name="testedVerbLabel" candidateClass="UILabel"/>
|
||||
<relationship kind="outlet" name="verbMeaningLable" candidateClass="UILabel"/>
|
||||
<relationship kind="outlet" name="verbPersonLabel" candidateClass="UILabel"/>
|
||||
</relationships>
|
||||
</class>
|
||||
<class className="EspagramTypingTestViewController" superclassName="UIViewController">
|
||||
<source key="sourceIdentifier" type="project" relativePath="./Classes/EspagramTypingTestViewController.h"/>
|
||||
<relationships>
|
||||
<relationship kind="action" name="addAccentedCharacter:" candidateClass="UIButton"/>
|
||||
<relationship kind="action" name="answerEntered:"/>
|
||||
<relationship kind="action" name="nextButtonPressed:"/>
|
||||
<relationship kind="action" name="showCorrectAnswerButtonPressed:"/>
|
||||
<relationship kind="outlet" name="checkAnswerButton" candidateClass="UIButton"/>
|
||||
<relationship kind="outlet" name="nextButton" candidateClass="UIButton"/>
|
||||
<relationship kind="outlet" name="showAnswerButton" candidateClass="UIButton"/>
|
||||
<relationship kind="outlet" name="testedVerbLabel" candidateClass="UILabel"/>
|
||||
<relationship kind="outlet" name="verbAnswerTextField" candidateClass="UITextField"/>
|
||||
<relationship kind="outlet" name="verbMeaningLable" candidateClass="UILabel"/>
|
||||
<relationship kind="outlet" name="verbPersonLabel" candidateClass="UILabel"/>
|
||||
</relationships>
|
||||
</class>
|
||||
<class className="EspagramWordsInLessonViewController" superclassName="CoreDataTableViewController">
|
||||
<source key="sourceIdentifier" type="project" relativePath="./Classes/EspagramWordsInLessonViewController.h"/>
|
||||
</class>
|
||||
<class className="Verb" superclassName="NSManagedObject">
|
||||
<source key="sourceIdentifier" type="project" relativePath="./Classes/Verb.h"/>
|
||||
</class>
|
||||
</classes>
|
||||
<simulatedMetricsContainer key="defaultSimulatedMetrics">
|
||||
<simulatedStatusBarMetrics key="statusBar"/>
|
||||
<simulatedOrientationMetrics key="orientation"/>
|
||||
<simulatedScreenMetrics key="destination"/>
|
||||
</simulatedMetricsContainer>
|
||||
<inferredMetricsTieBreakers>
|
||||
<segue reference="jbI-AC-euL"/>
|
||||
<segue reference="RTW-Lo-aTj"/>
|
||||
<segue reference="zv8-b4-h7u"/>
|
||||
<segue reference="WT2-Bb-XMi"/>
|
||||
<segue reference="h5C-pK-ZSX"/>
|
||||
<segue reference="Jcv-m7-EIo"/>
|
||||
</inferredMetricsTieBreakers>
|
||||
</document>
|
||||
Binary file not shown.
@ -40,11 +40,20 @@
|
||||
"Next" = "Volgende";
|
||||
|
||||
/* Multiple Choice test */
|
||||
"Multiple Choice" = "Multiple Choice";
|
||||
"Multiple Choice" = "Meerkeuze";
|
||||
|
||||
/* List of verbs */
|
||||
"List" = "Lijst";
|
||||
|
||||
/* Typing Test */
|
||||
"Typing" = "Intypen";
|
||||
|
||||
/* Check answer button */
|
||||
"Check" = "Controleer";
|
||||
|
||||
/* Show correct answer button */
|
||||
"Answer" = "Antwoord?";
|
||||
|
||||
/* Simple present tense description */
|
||||
"TENSE_SIMPLE_PRESENT" = "Tegenwoordige tijd";
|
||||
|
||||
|
||||
Binary file not shown.
BIN
Espagram/tabbar_typing.png
Normal file
BIN
Espagram/tabbar_typing.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 400 B |
Loading…
x
Reference in New Issue
Block a user