diff options
| author | SND\MaddTheSane_cp <SND\MaddTheSane_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2013-08-17 20:12:12 +0000 |
|---|---|---|
| committer | SND\MaddTheSane_cp <SND\MaddTheSane_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2013-08-17 20:12:12 +0000 |
| commit | 5be0778eaa7d48dfb71f4619e2e6b73b9095ad62 (patch) | |
| tree | c5f270d8777bd621c737ef3b0d195e1c89808677 /macosx/PcsxrHexadecimalFormatter.m | |
| parent | 37ba81a540460a7d34a33c23d2353ac84f887576 (diff) | |
| download | pcsxr-5be0778eaa7d48dfb71f4619e2e6b73b9095ad62.tar.gz | |
Finish work on OS X's cheat management.
There is still a bug that changing the label/name of the cheat doesn't set the changed bit.
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@86707 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'macosx/PcsxrHexadecimalFormatter.m')
| -rw-r--r-- | macosx/PcsxrHexadecimalFormatter.m | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/macosx/PcsxrHexadecimalFormatter.m b/macosx/PcsxrHexadecimalFormatter.m new file mode 100644 index 00000000..ea899b6d --- /dev/null +++ b/macosx/PcsxrHexadecimalFormatter.m @@ -0,0 +1,83 @@ +// +// PcsxrHexadecimalFormatter.m +// Pcsxr +// +// Created by C.W. Betts on 8/17/13. +// +// + +#import "PcsxrHexadecimalFormatter.h" + +@interface PcsxrHexadecimalFormatter () +@property (readwrite, retain) NSString *hexFormatString; + +@end + +@implementation PcsxrHexadecimalFormatter +@synthesize hexPadding; +- (void)setHexPadding:(char)_hexPadding +{ + hexPadding = _hexPadding; + self.hexFormatString = [NSString stringWithFormat:@"0x%%0%ilx", hexPadding]; +} + +@synthesize hexFormatString; + +- (id)init +{ + if (self = [super init]) { +#ifdef __LP64__ + self.hexPadding = 16; +#else + self.hexPadding = 8; +#endif + } + return self; +} + +- (id)initWithCoder:(NSCoder *)aDecoder +{ + if (self = [super initWithCoder:aDecoder]) { +#ifdef __LP64__ + self.hexPadding = 16; +#else + self.hexPadding = 8; +#endif + } + return self; +} + +- (NSString *)stringForObjectValue:(id)obj +{ + if ([obj isKindOfClass:[NSNumber class]]) { + return [NSString stringWithFormat:self.hexFormatString, (long)[obj integerValue]]; + } else return nil; +} + +- (NSString *)editingStringForObjectValue:(id)obj +{ + if ([obj isKindOfClass:[NSNumber class]]) { + return [NSString stringWithFormat:@"%lx", (long)[obj integerValue]]; + } else return nil; +} + +- (BOOL)getObjectValue:(out id *)obj forString:(NSString *)string errorDescription:(out NSString **)error +{ + NSString *tmpstr = nil; + if ([string hasPrefix:@"0x"]) { + NSRange zeroXRange = [string rangeOfString:@"0x"]; + tmpstr = [string stringByReplacingCharactersInRange:zeroXRange withString:@""]; + //[[NSMutableString stringWithString:string] deleteCharactersInRange:] + }else { + tmpstr = string; + } + long tmpNum = 0; + if (sscanf([tmpstr UTF8String], "%lx", &tmpNum) == 1) { + *obj = @(tmpNum); + return YES; + } else { + return NO; + } +} + +@end |
