summaryrefslogtreecommitdiff
path: root/macosx/Source/PcsxrHexadecimalFormatter.m
diff options
context:
space:
mode:
authorSND\MaddTheSane_cp <SND\MaddTheSane_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2014-07-20 05:09:43 +0000
committerSND\MaddTheSane_cp <SND\MaddTheSane_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2014-07-20 05:09:43 +0000
commitd6942932d64a02aa92b1e04e91f6126f33fdb05e (patch)
tree7cad698308e39abc2b0e1c71674c610ec3ce74dd /macosx/Source/PcsxrHexadecimalFormatter.m
parentb8d0d24d56dbc0ee64f4ec9a72ab917604d8109d (diff)
downloadpcsxr-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.m88
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