forgot to add files for last commit

This commit is contained in:
gecko_reverse 2008-08-19 05:49:47 +00:00
parent bd1c0914c8
commit a72d446ba6
2 changed files with 190 additions and 0 deletions

View File

@ -0,0 +1,33 @@
/* Copyright (C) 2008 Jeff Bland
This file is part of DeSmuME
DeSmuME is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
DeSmuME is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with DeSmuME; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#import <Cocoa/Cocoa.h>
#import "nds_control.h"
@interface SpeedLimitSelectionWindow : NSWindow
{
BOOL modal;
NintendoDS *target;
NSTextField *value;
int initial_value;
}
- (id)initWithDS:(NintendoDS*)ds;
- (void)runModal;
- (void)dealloc;
@end

View File

@ -0,0 +1,157 @@
/* Copyright (C) 2008 Jeff Bland
This file is part of DeSmuME
DeSmuME is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
DeSmuME is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with DeSmuME; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#import "speed_limit_selection_window.h"
@implementation SpeedLimitSelectionWindow
- (id)initWithDS:(NintendoDS*)ds
{
//Create window
self = [super initWithContentRect:NSMakeRect(300, 300, 300, 138) styleMask:NSTitledWindowMask|NSClosableWindowMask|NSResizableWindowMask backing:NSBackingStoreBuffered defer:NO screen:nil];
if(self == nil)return nil;
//General
[self setTitle:NSLocalizedString(@"Custom Speed Limit Window", nil)];
[self setDelegate:self]; //hopefully this doesn't retain self
[self setContentMinSize:NSMakeSize(300, 138)];
[self setContentMaxSize:NSMakeSize(800, 138)];
//Member setup
modal = NO;
//Target
target = ds;
[target retain];
initial_value = [target speedLimit];
//Add slider
NSSlider *slider = [[NSSlider alloc] initWithFrame:NSMakeRect(20, 60, 260, 24)];
[slider setMinValue:10];
[slider setMaxValue:1000];
[slider setIntValue:initial_value];
[slider setTarget:self];
[slider setAction:@selector(newValue:)];
[slider setNumberOfTickMarks:2];
[slider setAutoresizingMask:NSViewWidthSizable];
[[self contentView] addSubview:slider];
[slider release];
//Add label
NSTextField *text = [[NSTextField alloc] initWithFrame:NSMakeRect(20, 101, 260, 17)];
[text setStringValue:NSLocalizedString(@"Set Max Speed:", nil)];
[text setSelectable:NO];
[text setEditable:NO];
[text setDrawsBackground:NO];
[text setBordered:NO];
[text setBezeled:NO];
[text setAutoresizingMask:NSViewWidthSizable];
[[self contentView] addSubview:text];
[text release];
//Add value text
value = [[NSTextField alloc] initWithFrame:NSMakeRect(20, 101, 260, 17)];
[value setStringValue:[NSString stringWithFormat:NSLocalizedString(@"Speed %d%%", nil), initial_value]];
[value setSelectable:NO];
[value setEditable:NO];
[value setDrawsBackground:NO];
[value setBordered:NO];
[value setBezeled:NO];
[value setAlignment:NSRightTextAlignment];
[value setAutoresizingMask:NSViewWidthSizable];
[[self contentView] addSubview:value];
//Add OK button
NSButton *ok_button = [[NSButton alloc] initWithFrame:NSMakeRect(190, 12, 96, 32)];
[ok_button setTitle:NSLocalizedString(@"OK", nil)];
[ok_button setButtonType:NSMomentaryPushInButton];
[ok_button setBezelStyle:NSRoundedBezelStyle];
[ok_button setTarget:self];
[ok_button setAction:@selector(ok)];
[ok_button setAutoresizingMask:NSViewMinXMargin];
[[self contentView] addSubview:ok_button];
[ok_button release];
//Add cancel button
NSButton *cancel_button = [[NSButton alloc] initWithFrame:NSMakeRect(94, 12, 96, 32)];
[cancel_button setTitle:NSLocalizedString(@"Cancel", nil)];
[cancel_button setButtonType:NSMomentaryPushInButton];
[cancel_button setBezelStyle:NSRoundedBezelStyle];
[cancel_button setTarget:self];
[cancel_button setAction:@selector(cancel)];
[cancel_button setAutoresizingMask:NSViewMinXMargin];
[[self contentView] addSubview:cancel_button];
[cancel_button release];
//Recall size info (happens after adding buttons so the subviews resize accordingly)
[self setFrameUsingName:@"SpeedLimitSelectionWindow"];
return self;
}
- (void)runModal
{
modal = YES;
[NSApp runModalForWindow:self];
}
- (void)dealloc
{
[self saveFrameUsingName:@"SpeedLimitSelectionWindow"];
[target release];
[value release];
[super dealloc];
}
- (void)newValue:(id)sender
{
int int_value = [sender intValue];
[value setStringValue:[NSString stringWithFormat:NSLocalizedString(@"Speed %d%%", nil), int_value]];
//updates on each value so you can watch it change in realtime
[target setSpeedLimit:int_value];
}
- (void)ok
{
if(modal)
{
[NSApp stopModal];
modal = NO;
}
}
- (void)cancel
{
if(modal)
{
[NSApp stopModal];
modal = NO;
}
[target setSpeedLimit:initial_value];
}
- (BOOL)windowShouldClose:(id)window
{
[self cancel];
return NO;
}
@end