summaryrefslogtreecommitdiff
path: root/macosx/PcsxrHexadecimalFormatter.m
diff options
context:
space:
mode:
authorSND\MaddTheSane_cp <SND\MaddTheSane_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2013-08-17 20:12:12 +0000
committerSND\MaddTheSane_cp <SND\MaddTheSane_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2013-08-17 20:12:12 +0000
commit5be0778eaa7d48dfb71f4619e2e6b73b9095ad62 (patch)
treec5f270d8777bd621c737ef3b0d195e1c89808677 /macosx/PcsxrHexadecimalFormatter.m
parent37ba81a540460a7d34a33c23d2353ac84f887576 (diff)
downloadpcsxr-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.m83
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