diff options
| author | SND\MaddTheSane_cp <SND\MaddTheSane_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2014-07-20 05:09:43 +0000 |
|---|---|---|
| committer | SND\MaddTheSane_cp <SND\MaddTheSane_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2014-07-20 05:09:43 +0000 |
| commit | d6942932d64a02aa92b1e04e91f6126f33fdb05e (patch) | |
| tree | 7cad698308e39abc2b0e1c71674c610ec3ce74dd /macosx/Source/PcsxrHexadecimalFormatter.m | |
| parent | b8d0d24d56dbc0ee64f4ec9a72ab917604d8109d (diff) | |
| download | pcsxr-d6942932d64a02aa92b1e04e91f6126f33fdb05e.tar.gz | |
OS X: Move source files to their own folder.
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@90999 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'macosx/Source/PcsxrHexadecimalFormatter.m')
| -rw-r--r-- | macosx/Source/PcsxrHexadecimalFormatter.m | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/macosx/Source/PcsxrHexadecimalFormatter.m b/macosx/Source/PcsxrHexadecimalFormatter.m new file mode 100644 index 00000000..550a7cb1 --- /dev/null +++ b/macosx/Source/PcsxrHexadecimalFormatter.m @@ -0,0 +1,88 @@ +// +// PcsxrHexadecimalFormatter.m +// Pcsxr +// +// Created by C.W. Betts on 8/17/13. +// +// + +#import "PcsxrHexadecimalFormatter.h" + +@interface PcsxrHexadecimalFormatter () +@property (strong) NSString *hexFormatString; +@end + +@implementation PcsxrHexadecimalFormatter +@synthesize hexPadding; +@synthesize hexFormatString; + +- (void)setHexPadding:(char)_hexPadding +{ + hexPadding = _hexPadding; + self.hexFormatString = [NSString stringWithFormat:@"0x%%0%ilx", hexPadding]; +} + +- (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; + unsigned int tmpNum; + NSScanner *theScan = [[NSScanner alloc] initWithString:string]; + if ([theScan scanHexInt:&tmpNum]) { + *obj = @(tmpNum); + return YES; + } else { + if ([string hasPrefix:@"0x"]) { + NSRange zeroXRange = [string rangeOfString:@"0x"]; + tmpstr = [string stringByReplacingCharactersInRange:zeroXRange withString:@""]; + }else { + tmpstr = string; + } + long tmpNum = 0; + if (sscanf([tmpstr UTF8String], "%lx", &tmpNum) == 1) { + *obj = @(tmpNum); + return YES; + } else { + return NO; + } + } +} + +@end |
