add app controller
This commit is contained in:
106
tools/Quickdev16/AppController.m
Normal file
106
tools/Quickdev16/AppController.m
Normal file
@@ -0,0 +1,106 @@
|
||||
#import "AppController.h"
|
||||
|
||||
@implementation AppController
|
||||
- (id) init {
|
||||
[super init];
|
||||
NSLog(@"init");
|
||||
speechSynth = [[NSSpeechSynthesizer alloc] initWithVoice:nil];
|
||||
[speechSynth setDelegate:self];
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)awakeFromNib{
|
||||
NSColor *initialColor = [ textField textColor];
|
||||
NSLog(@"setting init color %@",initialColor);
|
||||
[colorWell setColor:initialColor];
|
||||
NSString *defaultVoice = [NSSpeechSynthesizer defaultVoice];
|
||||
NSArray *voices = [NSSpeechSynthesizer availableVoices];
|
||||
int defaultRow = [voices indexOfObject:defaultVoice];
|
||||
[tableView selectRow:defaultRow byExtendingSelection:NO];
|
||||
[tableView scrollRowToVisible:defaultRow];
|
||||
|
||||
}
|
||||
- (IBAction)sayIt:(id)sender {
|
||||
NSString *string = [textField stringValue];
|
||||
if ( [string length] == 0) {
|
||||
NSLog(@"No message");
|
||||
return;
|
||||
}
|
||||
[speechSynth startSpeakingString:string];
|
||||
NSLog(@"Have started speaking: %@", string);
|
||||
[stopButton setEnabled:YES];
|
||||
}
|
||||
|
||||
- (IBAction)stopIt:(id)sender {
|
||||
NSLog(@"stopping");
|
||||
[speechSynth stopSpeaking];
|
||||
|
||||
}
|
||||
|
||||
- (void)speechSynthesizer:(NSSpeechSynthesizer *)send
|
||||
didFinishSpeaking:(BOOL)finishedSpeaking
|
||||
{
|
||||
NSLog(@"didFinished=%d",finishedSpeaking);
|
||||
[stopButton setEnabled:NO];
|
||||
|
||||
}
|
||||
|
||||
|
||||
- (IBAction)changeTextColor:(id)sender{
|
||||
NSColor *newColor = [sender color];
|
||||
NSLog(@"Change Color %@",newColor);
|
||||
[textField setTextColor:newColor];
|
||||
|
||||
}
|
||||
|
||||
- (int)numberOfRowsInTableView:(NSTableView *) aTableView{
|
||||
NSLog(@"numberOfRowsInTableView %d", [[NSSpeechSynthesizer availableVoices] count]);
|
||||
|
||||
return [[NSSpeechSynthesizer availableVoices] count];
|
||||
}
|
||||
-(id)tableView:(NSTableView*) aTableView
|
||||
objectValueForTableColumn:(NSTableColumn *) aTableColumn row:(int)row{
|
||||
NSString *voice = [[NSSpeechSynthesizer availableVoices] objectAtIndex:row ];
|
||||
return [[NSSpeechSynthesizer attributesForVoice:voice] valueForKey:NSVoiceName];
|
||||
}
|
||||
|
||||
- (void)tableViewSelectionDidChange:(NSNotification *)nofication{
|
||||
NSArray *availableVoices = [NSSpeechSynthesizer availableVoices];
|
||||
int row = [tableView selectedRow];
|
||||
if ( row == -1) {
|
||||
return;
|
||||
}
|
||||
|
||||
NSString *selectedVoice = [availableVoices objectAtIndex:row];
|
||||
[speechSynth setVoice:selectedVoice];
|
||||
NSLog(@"new voice=%@",selectedVoice);
|
||||
}
|
||||
|
||||
-(BOOL)selectionShouldChangeInTableView:(NSTableView *) aTableView
|
||||
{
|
||||
if ([speechSynth isSpeaking]){
|
||||
NSBeep();
|
||||
return NO;
|
||||
} else {
|
||||
return YES;
|
||||
}
|
||||
}
|
||||
|
||||
-(NSSize)windowWillResize:(NSWindow *)send toSize:(NSSize) framesize;
|
||||
{
|
||||
float w = framesize.width;
|
||||
float h = framesize.height;
|
||||
NSLog(@"called willResize %f x %f ",w,h);
|
||||
|
||||
w = w*2;
|
||||
framesize.width = w;
|
||||
return framesize;
|
||||
}
|
||||
|
||||
- (void) dealloc {
|
||||
NSLog(@"dealloc");
|
||||
[speechSynth release];
|
||||
[super dealloc];
|
||||
|
||||
}
|
||||
@end
|
||||
Reference in New Issue
Block a user