mirror of
https://github.com/zxing/zxing.git
synced 2025-02-02 05:41:08 -08:00
UI improvements
git-svn-id: https://zxing.googlecode.com/svn/trunk@495 59b500cc-1b3d-0410-9834-0bbf25fbcc57
This commit is contained in:
parent
64369b3878
commit
b3c6b48e11
|
@ -52,13 +52,12 @@
|
|||
return NSLocalizedString(@"Add Contact", @"Add Contact");
|
||||
}
|
||||
|
||||
- (void)performActionWithController:(UIViewController *)controller
|
||||
shouldConfirm:(bool)confirm {
|
||||
- (void) addContactWithController:(UIViewController *)controller {
|
||||
CFErrorRef *error = NULL;
|
||||
NSCharacterSet *whitespaceSet = [NSCharacterSet whitespaceCharacterSet];
|
||||
|
||||
ABRecordRef person = ABPersonCreate();
|
||||
|
||||
|
||||
NSRange commaRange = [name rangeOfString:@","];
|
||||
if (commaRange.location != NSNotFound) {
|
||||
NSString *lastName = [[name substringToIndex:commaRange.location]
|
||||
|
@ -127,12 +126,42 @@
|
|||
unknownPersonViewController.allowsAddingToAddressBook = true;
|
||||
unknownPersonViewController.unknownPersonViewDelegate = self;
|
||||
CFRelease(person);
|
||||
|
||||
|
||||
viewController = [controller retain];
|
||||
[[viewController navigationController] pushViewController:unknownPersonViewController animated:YES];
|
||||
[unknownPersonViewController release];
|
||||
}
|
||||
|
||||
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
|
||||
if (buttonIndex != [alertView cancelButtonIndex]) {
|
||||
// perform the action
|
||||
[self addContactWithController:viewController];
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef CONFIRM_ADDING_CONTACT
|
||||
#undef CONFIRM_ADDING_CONTACT
|
||||
#endif
|
||||
- (void)performActionWithController:(UIViewController *)controller
|
||||
shouldConfirm:(bool)confirm {
|
||||
#ifdef CONFIRM_ADDING_CONTACT
|
||||
if (confirm) {
|
||||
viewController = controller;
|
||||
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:nil
|
||||
message:NSLocalizedString(@"Add Contact?", @"add contact")
|
||||
delegate:self
|
||||
cancelButtonTitle:NSLocalizedString(@"Cancel", @"cancel button title")
|
||||
otherButtonTitles:NSLocalizedString(@"Add Contact", @"add contact"), nil];
|
||||
[alertView show];
|
||||
[alertView release];
|
||||
} else {
|
||||
#endif
|
||||
[self addContactWithController:controller];
|
||||
#ifdef CONFIRM_ADDING_CONTACT
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
- (void)dismissUnknownPersonViewController:(ABUnknownPersonViewController *)unknownPersonViewController {
|
||||
[[viewController navigationController] popToViewController:viewController animated:YES];
|
||||
[viewController release];
|
||||
|
|
|
@ -26,15 +26,7 @@
|
|||
#import "ParsedResult.h"
|
||||
#import "DecoderViewController.h"
|
||||
#import "ScanViewController.h"
|
||||
|
||||
#define IMAGE_VIEW_TAG 0x17
|
||||
#define DATE_VIEW_TAG 0x18
|
||||
#define TEXT_VIEW_TAG 0x19
|
||||
|
||||
#define VIEW_PADDING 2
|
||||
#define IMAGE_VIEW_SIDE 40
|
||||
#define CONTENT_HEIGHT IMAGE_VIEW_SIDE
|
||||
#define DATE_VIEW_WIDTH 50
|
||||
#import "ScanCell.h"
|
||||
|
||||
@implementation ArchiveController
|
||||
|
||||
|
@ -62,74 +54,21 @@
|
|||
}
|
||||
|
||||
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
return IMAGE_VIEW_SIDE + 2 * VIEW_PADDING;
|
||||
return 44.0;
|
||||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
static NSString *ScanIdentifier = @"ScanIdentifier";
|
||||
|
||||
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ScanIdentifier];
|
||||
ScanCell *cell = (ScanCell *)[tableView dequeueReusableCellWithIdentifier:ScanIdentifier];
|
||||
if (cell == nil) {
|
||||
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:ScanIdentifier] autorelease];
|
||||
|
||||
// clean out all existing subviews
|
||||
NSArray *subviews = [[NSArray alloc] initWithArray:cell.contentView.subviews];
|
||||
for (UIView *subview in subviews) {
|
||||
[subview removeFromSuperview];
|
||||
}
|
||||
[subviews release];
|
||||
|
||||
float cellWidth = cell.contentView.bounds.size.width;
|
||||
|
||||
// add the views
|
||||
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(VIEW_PADDING, VIEW_PADDING, IMAGE_VIEW_SIDE, CONTENT_HEIGHT)];
|
||||
[imageView setTag:IMAGE_VIEW_TAG];
|
||||
[imageView setAutoresizingMask:UIViewAutoresizingFlexibleRightMargin];
|
||||
[imageView setContentMode:UIViewContentModeCenter];
|
||||
[cell.contentView addSubview:imageView];
|
||||
[imageView release];
|
||||
|
||||
UILabel *textView = [[UILabel alloc] initWithFrame:CGRectMake(2*VIEW_PADDING + IMAGE_VIEW_SIDE, VIEW_PADDING, cellWidth - 4*VIEW_PADDING - IMAGE_VIEW_SIDE - DATE_VIEW_WIDTH, CONTENT_HEIGHT)];
|
||||
[textView setTag:TEXT_VIEW_TAG];
|
||||
[textView setAutoresizingMask:UIViewAutoresizingFlexibleWidth];
|
||||
[cell.contentView addSubview:textView];
|
||||
[textView release];
|
||||
|
||||
UITextView *dateView = [[UITextView alloc] initWithFrame:CGRectMake(cellWidth - VIEW_PADDING - DATE_VIEW_WIDTH, VIEW_PADDING, DATE_VIEW_WIDTH, CONTENT_HEIGHT)];
|
||||
[dateView setTag:DATE_VIEW_TAG];
|
||||
[dateView setAutoresizingMask:UIViewAutoresizingFlexibleLeftMargin];
|
||||
dateView.font = [UIFont systemFontOfSize:9.0];
|
||||
dateView.textColor = [UIColor grayColor];
|
||||
dateView.textAlignment = UITextAlignmentRight;
|
||||
dateView.editable = NO;
|
||||
[cell.contentView addSubview:dateView];
|
||||
[dateView release];
|
||||
cell = [[[ScanCell alloc] initWithFrame:CGRectZero reuseIdentifier:ScanIdentifier] autorelease];
|
||||
}
|
||||
|
||||
UIImageView *imageView = (UIImageView *)[cell.contentView viewWithTag:IMAGE_VIEW_TAG];
|
||||
UILabel *textView = (UILabel *)[cell.contentView viewWithTag:TEXT_VIEW_TAG];
|
||||
UITextView *dateView = (UITextView *)[cell.contentView viewWithTag:DATE_VIEW_TAG];
|
||||
// Configure the cell
|
||||
int index = [self scanIndexForRow:indexPath.row];
|
||||
Scan *scan = [scans objectAtIndex:index];
|
||||
ParsedResult *result = [results objectAtIndex:index];
|
||||
imageView.image = nil;
|
||||
NSDate *stamp = [scan stamp];
|
||||
NSTimeInterval interval = -[stamp timeIntervalSinceNow];
|
||||
if (interval < 24 * 3600) { // last 24 hours
|
||||
[dateFormatter setDateStyle:NSDateFormatterNoStyle];
|
||||
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];
|
||||
} else if (interval < 30 * 24 * 3600) { // last 30 days
|
||||
[dateFormatter setDateStyle:NSDateFormatterShortStyle];
|
||||
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];
|
||||
} else {
|
||||
[dateFormatter setDateStyle:NSDateFormatterShortStyle];
|
||||
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
|
||||
}
|
||||
dateView.text = [dateFormatter stringFromDate:[scan stamp]];
|
||||
[dateView sizeToFit];
|
||||
textView.text = [result stringForDisplay];
|
||||
imageView.image = [result icon];
|
||||
[cell setScan:scan];
|
||||
return cell;
|
||||
}
|
||||
|
||||
|
|
|
@ -59,13 +59,14 @@ using namespace qrcode;
|
|||
[self.delegate decoder:self failedToDecodeImage:self.image usingSubset:self.subsetImage reason:reason];
|
||||
}
|
||||
|
||||
#define SUBSET_SIZE 320.0
|
||||
- (void) prepareSubset {
|
||||
CGImageRef cgImage = self.image.CGImage;
|
||||
CGSize size = CGSizeMake(CGImageGetWidth(cgImage), CGImageGetHeight(cgImage));
|
||||
#ifdef DEBUG
|
||||
NSLog(@"decoding: image is (%.1f x %.1f)", size.width, size.height);
|
||||
#endif
|
||||
float scale = min(1.0f, max(0.25f, (float)max(400.0f / size.width, 400.0f / size.height)));
|
||||
float scale = fminf(1.0f, fmaxf(SUBSET_SIZE / size.width, SUBSET_SIZE / size.height));
|
||||
subsetWidth = size.width * scale;
|
||||
subsetHeight = size.height * scale;
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#import <UIKit/UIKit.h>
|
||||
#import "Decoder.h"
|
||||
#import "DecoderDelegate.h"
|
||||
#import "ScannedImageView.h"
|
||||
|
||||
@class ParsedResult;
|
||||
@class Scan;
|
||||
|
@ -37,13 +38,14 @@
|
|||
IBOutlet UIBarItem *actionBarItem;
|
||||
|
||||
IBOutlet UITextView *messageView;
|
||||
IBOutlet UIView *resultView;
|
||||
IBOutlet UIImageView *imageView;
|
||||
IBOutlet ScannedImageView *imageView;
|
||||
IBOutlet UIToolbar *toolbar;
|
||||
|
||||
Decoder *decoder;
|
||||
ParsedResult *result;
|
||||
NSArray *actions;
|
||||
|
||||
NSMutableArray *resultPointViews;
|
||||
}
|
||||
|
||||
@property (nonatomic, retain) UIBarItem *cameraBarItem;
|
||||
|
@ -53,14 +55,15 @@
|
|||
@property (nonatomic, retain) UIBarItem *actionBarItem;
|
||||
|
||||
@property (nonatomic, retain) UITextView *messageView;
|
||||
@property (nonatomic, retain) UIView *resultView;
|
||||
@property (nonatomic, retain) UIImageView *imageView;
|
||||
@property (nonatomic, retain) ScannedImageView *imageView;
|
||||
@property (nonatomic, retain) UIToolbar *toolbar;
|
||||
|
||||
@property (nonatomic, retain) Decoder *decoder;
|
||||
@property (nonatomic, retain) ParsedResult *result;
|
||||
@property (nonatomic, retain) NSArray *actions;
|
||||
|
||||
@property (nonatomic, retain) NSMutableArray *resultPointViews;
|
||||
|
||||
- (void)updateToolbar;
|
||||
- (void)pickAndDecodeFromSource:(UIImagePickerControllerSourceType) sourceType;
|
||||
- (IBAction)pickAndDecode:(id)sender;
|
||||
|
|
|
@ -41,7 +41,6 @@
|
|||
@synthesize actionBarItem;
|
||||
|
||||
@synthesize messageView;
|
||||
@synthesize resultView;
|
||||
@synthesize imageView;
|
||||
@synthesize toolbar;
|
||||
|
||||
|
@ -49,6 +48,8 @@
|
|||
@synthesize result;
|
||||
@synthesize actions;
|
||||
|
||||
@synthesize resultPointViews;
|
||||
|
||||
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
|
||||
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
|
||||
// Initialization code
|
||||
|
@ -58,31 +59,34 @@
|
|||
self.decoder = d;
|
||||
d.delegate = self;
|
||||
[d release];
|
||||
resultPointViews = [[NSMutableArray alloc] init];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
#define FONT_NAME @"TimesNewRomanPSMT"
|
||||
#define FONT_SIZE 16.0
|
||||
|
||||
// Implement loadView if you want to create a view hierarchy programmatically
|
||||
- (void)loadView {
|
||||
[super loadView];
|
||||
|
||||
CGRect mViewFrame = self.resultView.bounds;
|
||||
UITextView *mView = [[UITextView alloc] initWithFrame:mViewFrame];
|
||||
mView.backgroundColor = [UIColor yellowColor];
|
||||
mView.alpha = 0.95;
|
||||
CGRect messageViewFrame = imageView.frame;
|
||||
UITextView *mView = [[UITextView alloc] initWithFrame:messageViewFrame];
|
||||
mView.backgroundColor = [UIColor darkGrayColor];
|
||||
mView.alpha = 0.9;
|
||||
mView.editable = false;
|
||||
mView.scrollEnabled = true;
|
||||
mView.font = [UIFont fontWithName:FONT_NAME size:FONT_SIZE];
|
||||
mView.autoresizingMask = UIViewAutoresizingFlexibleHeight |
|
||||
UIViewAutoresizingFlexibleWidth |
|
||||
UIViewAutoresizingFlexibleLeftMargin |
|
||||
UIViewAutoresizingFlexibleRightMargin |
|
||||
UIViewAutoresizingFlexibleTopMargin |
|
||||
UIViewAutoresizingFlexibleBottomMargin;
|
||||
UIViewAutoresizingFlexibleTopMargin;
|
||||
mView.textColor = [UIColor whiteColor];
|
||||
mView.textAlignment = UITextAlignmentLeft;
|
||||
self.messageView = mView;
|
||||
[mView release];
|
||||
|
||||
[self.resultView addSubview:self.messageView];
|
||||
[self.view addSubview:self.messageView];
|
||||
[self updateToolbar];
|
||||
[self showMessage:NSLocalizedString(@"Please take or choose a picture containing a barcode", @"")];
|
||||
}
|
||||
|
@ -104,11 +108,10 @@
|
|||
|
||||
- (void)clearImageView {
|
||||
imageView.image = nil;
|
||||
NSArray *subviews = [imageView.subviews copy];
|
||||
for (UIView *view in subviews) {
|
||||
for (UIView *view in resultPointViews) {
|
||||
[view removeFromSuperview];
|
||||
}
|
||||
[subviews release];
|
||||
[resultPointViews removeAllObjects];
|
||||
}
|
||||
|
||||
- (void)pickAndDecodeFromSource:(UIImagePickerControllerSourceType) sourceType {
|
||||
|
@ -119,8 +122,7 @@
|
|||
UIImagePickerController* picker = [[UIImagePickerController alloc] init];
|
||||
picker.sourceType = sourceType;
|
||||
picker.delegate = self;
|
||||
picker.allowsImageEditing = [[NSUserDefaults standardUserDefaults]
|
||||
boolForKey:@"allowEditing"];
|
||||
picker.allowsImageEditing = YES; // [[NSUserDefaults standardUserDefaults] boolForKey:@"allowEditing"];
|
||||
|
||||
// Picker is displayed asynchronously.
|
||||
[self presentModalViewController:picker animated:YES];
|
||||
|
@ -154,7 +156,6 @@
|
|||
// Release anything that's not essential, such as cached data
|
||||
}
|
||||
|
||||
|
||||
- (void)dealloc {
|
||||
[decoder release];
|
||||
[self clearImageView];
|
||||
|
@ -165,6 +166,8 @@
|
|||
[savedPhotosBarItem release];
|
||||
[archiveBarItem release];
|
||||
[toolbar release];
|
||||
[actions dealloc];
|
||||
[resultPointViews dealloc];
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
@ -173,8 +176,16 @@
|
|||
#ifdef DEBUG
|
||||
NSLog(@"Showing message '%@'", message);
|
||||
#endif
|
||||
|
||||
CGSize maxSize = imageView.bounds.size;
|
||||
CGSize size = [message sizeWithFont:messageView.font constrainedToSize:maxSize lineBreakMode:UILineBreakModeWordWrap];
|
||||
float height = 20.0 + fmin(100.0, size.height);
|
||||
|
||||
CGRect messageFrame = imageView.bounds;
|
||||
messageFrame.origin.y = CGRectGetMaxY(messageFrame) - height;
|
||||
messageFrame.size.height = height;
|
||||
self.messageView.text = message;
|
||||
[self.messageView sizeToFit];
|
||||
[self.messageView setFrame:messageFrame];
|
||||
}
|
||||
|
||||
// DecoderDelegate methods
|
||||
|
@ -207,33 +218,10 @@
|
|||
- (void)presentResultPoints:(NSArray *)resultPoints
|
||||
forImage:(UIImage *)image
|
||||
usingSubset:(UIImage *)subset {
|
||||
// CGSize imageSize = image.size;
|
||||
CGSize subsetSize = subset.size;
|
||||
CGRect viewBounds = imageView.bounds;
|
||||
|
||||
float scale = fmin(viewBounds.size.width / subsetSize.width,
|
||||
viewBounds.size.height / subsetSize.height);
|
||||
float xOffset = (viewBounds.size.width - scale * subsetSize.width) / 2.0;
|
||||
float yOffset = (viewBounds.size.height - scale * subsetSize.height) / 2.0;
|
||||
|
||||
NSLog(@"(%f, %f) image in view with bounds (%f, %f) x (%f, %f)",
|
||||
subsetSize.width, subsetSize.height,
|
||||
viewBounds.origin.x, viewBounds.origin.y,
|
||||
viewBounds.size.width, viewBounds.size.height);
|
||||
NSLog(@"xOffset = %f, yOffset = %f, scale = %f", xOffset, yOffset, scale);
|
||||
|
||||
// simply add the points to the image view
|
||||
imageView.image = subset;
|
||||
for (NSValue *pointValue in resultPoints) {
|
||||
CGPoint point = [pointValue CGPointValue];
|
||||
float x = xOffset + scale * point.x;
|
||||
float y = yOffset + scale * point.y;
|
||||
NSLog(@"have result point @ (%f, %f), imageView point (%f, %f)", point.x, point.y, x, y);
|
||||
CGRect frame = CGRectMake(x - 3, y - 3, 7, 7);
|
||||
UIView *pointView = [[UIView alloc] initWithFrame:frame];
|
||||
pointView.opaque = YES;
|
||||
pointView.backgroundColor = [UIColor greenColor];
|
||||
pointView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
|
||||
[imageView addSubview:pointView];
|
||||
[pointView release];
|
||||
[imageView addResultPoint:[pointValue CGPointValue]];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -254,6 +242,44 @@
|
|||
}
|
||||
|
||||
|
||||
- (void)willAnimateFirstHalfOfRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
|
||||
[super willAnimateFirstHalfOfRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
|
||||
|
||||
if (imageView.image) {
|
||||
/*
|
||||
CGRect viewBounds = imageView.bounds;
|
||||
CGSize imageSize = imageView.image.size;
|
||||
float scale = fmin(viewBounds.size.width / imageSize.width,
|
||||
viewBounds.size.height / imageSize.height);
|
||||
float xOffset = (viewBounds.size.width - scale * imageSize.width) / 2.0;
|
||||
float yOffset = (viewBounds.size.height - scale * imageSize.height) / 2.0;
|
||||
*/
|
||||
|
||||
for (UIView *view in resultPointViews) {
|
||||
view.alpha = 0.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)willAnimateSecondHalfOfRotationFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation duration:(NSTimeInterval)duration {
|
||||
[super willAnimateSecondHalfOfRotationFromInterfaceOrientation:fromInterfaceOrientation duration:duration];
|
||||
|
||||
if (imageView.image) {
|
||||
/*
|
||||
CGRect viewBounds = imageView.bounds;
|
||||
CGSize imageSize = imageView.image.size;
|
||||
float scale = fmin(viewBounds.size.width / imageSize.width,
|
||||
viewBounds.size.height / imageSize.height);
|
||||
float xOffset = (viewBounds.size.width - scale * imageSize.width) / 2.0;
|
||||
float yOffset = (viewBounds.size.height - scale * imageSize.height) / 2.0;
|
||||
*/
|
||||
|
||||
for (UIView *view in resultPointViews) {
|
||||
view.alpha = 1.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// UIImagePickerControllerDelegate methods
|
||||
|
||||
- (void)imagePickerController:(UIImagePickerController *)picker
|
||||
|
|
|
@ -21,15 +21,23 @@
|
|||
|
||||
#import "SMSAction.h"
|
||||
|
||||
// currently, including a message body makes the iPhone not actually
|
||||
// go to compose an SMS at all, just start the SMS app. Bummer.
|
||||
#ifdef SMS_URL_INCLUDE_BODY
|
||||
#undef SMS_URL_INCLUDE_BODY
|
||||
#endif
|
||||
|
||||
@implementation SMSAction
|
||||
|
||||
@synthesize body;
|
||||
|
||||
+ (NSURL *)urlForNumber:(NSString *)number withBody:(NSString *)body {
|
||||
NSString *urlString = body ?
|
||||
[NSString stringWithFormat:@"sms:%@?body=%@", number, [body stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]] :
|
||||
[NSString stringWithFormat:@"sms:%@", number];
|
||||
NSString *urlString =
|
||||
#ifdef SMS_URL_INCLUDE_BODY
|
||||
(body && [body length]) ?
|
||||
[NSString stringWithFormat:@"sms:%@?body=%@", number, [body stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]] :
|
||||
#endif
|
||||
[NSString stringWithFormat:@"sms:%@", number];
|
||||
return [NSURL URLWithString:urlString];
|
||||
}
|
||||
|
||||
|
|
29
iphone/Classes/ScanCell.h
Normal file
29
iphone/Classes/ScanCell.h
Normal file
|
@ -0,0 +1,29 @@
|
|||
//
|
||||
// ScanCell.h
|
||||
// ZXing
|
||||
//
|
||||
// Created by Christian Brunschen on 30/06/2008.
|
||||
// Copyright 2008 Google Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@class Scan;
|
||||
@class ParsedResult;
|
||||
|
||||
@interface ScanCell : UITableViewCell {
|
||||
Scan *scan;
|
||||
ParsedResult *result;
|
||||
UIImageView *imageView;
|
||||
UILabel *textView;
|
||||
UILabel *dateView;
|
||||
UILabel *timeView;
|
||||
}
|
||||
|
||||
@property (nonatomic, retain) Scan *scan;
|
||||
@property (nonatomic, retain) UIImageView *imageView;
|
||||
@property (nonatomic, retain) UILabel *textView;
|
||||
@property (nonatomic, retain) UILabel *dateView;
|
||||
@property (nonatomic, retain) UILabel *timeView;
|
||||
|
||||
@end
|
162
iphone/Classes/ScanCell.m
Normal file
162
iphone/Classes/ScanCell.m
Normal file
|
@ -0,0 +1,162 @@
|
|||
//
|
||||
// ScanCell.m
|
||||
// ZXing
|
||||
//
|
||||
// Created by Christian Brunschen on 30/06/2008.
|
||||
// Copyright 2008 Google Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import "ScanCell.h"
|
||||
#import "Scan.h"
|
||||
#import "ParsedResult.h"
|
||||
#import "ResultParser.h"
|
||||
|
||||
static NSDateFormatter *_makeDateFormatter(NSDateFormatterStyle dateStyle,
|
||||
NSDateFormatterStyle timeStyle) {
|
||||
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
|
||||
[dateFormatter setDateStyle:dateStyle];
|
||||
[dateFormatter setTimeStyle:timeStyle];
|
||||
return dateFormatter;
|
||||
}
|
||||
|
||||
static NSString *_dateString(NSDate *date) {
|
||||
static NSDateFormatter *dateFormatter = nil;
|
||||
if (!dateFormatter) {
|
||||
dateFormatter =
|
||||
_makeDateFormatter(NSDateFormatterShortStyle, NSDateFormatterNoStyle);
|
||||
}
|
||||
return [dateFormatter stringFromDate:date];
|
||||
}
|
||||
|
||||
static NSString *_timeString(NSDate *date) {
|
||||
static NSDateFormatter *timeFormatter = nil;
|
||||
if (!timeFormatter) {
|
||||
timeFormatter =
|
||||
|
||||
_makeDateFormatter(NSDateFormatterNoStyle, NSDateFormatterShortStyle);
|
||||
}
|
||||
return [timeFormatter stringFromDate:date];
|
||||
}
|
||||
|
||||
#define VIEW_PADDING 2.0
|
||||
#define IMAGE_SIZE 40.0
|
||||
#define EDITING_INSET 10.0
|
||||
#define CONTENT_HEIGHT (IMAGE_SIZE + 2.0 * VIEW_PADDING)
|
||||
#define DATE_TIME_WIDTH 50.0
|
||||
|
||||
@implementation ScanCell
|
||||
|
||||
@synthesize imageView;
|
||||
@synthesize textView;
|
||||
@synthesize dateView;
|
||||
@synthesize timeView;
|
||||
|
||||
|
||||
- (id)initWithFrame:(CGRect)frame reuseIdentifier:(NSString *)reuseIdentifier {
|
||||
if (self = [super initWithFrame:frame reuseIdentifier:reuseIdentifier]) {
|
||||
imageView = [[UIImageView alloc] initWithFrame:CGRectZero];
|
||||
imageView.contentMode = UIViewContentModeCenter;
|
||||
[self.contentView addSubview:imageView];
|
||||
|
||||
textView = [[UILabel alloc] initWithFrame:CGRectZero];
|
||||
textView.font = [UIFont boldSystemFontOfSize:[UIFont systemFontSize]];
|
||||
textView.textAlignment = UITextAlignmentLeft;
|
||||
textView.textColor = [UIColor blackColor];
|
||||
[self.contentView addSubview:textView];
|
||||
|
||||
dateView = [[UILabel alloc] initWithFrame:CGRectZero];
|
||||
dateView.font = [UIFont systemFontOfSize:(2 * [UIFont systemFontSize]) / 3];
|
||||
dateView.textAlignment = UITextAlignmentRight;
|
||||
dateView.textColor = [UIColor grayColor];
|
||||
[self.contentView addSubview:dateView];
|
||||
|
||||
timeView = [[UILabel alloc] initWithFrame:CGRectZero];
|
||||
timeView.font = [UIFont systemFontOfSize:(2 * [UIFont systemFontSize]) / 3];
|
||||
timeView.textAlignment = UITextAlignmentRight;
|
||||
timeView.textColor = [UIColor grayColor];
|
||||
[self.contentView addSubview:timeView];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (CGRect) _imageViewFrame {
|
||||
CGRect frame = CGRectMake(VIEW_PADDING, VIEW_PADDING, IMAGE_SIZE, IMAGE_SIZE);
|
||||
if (self.editing) {
|
||||
frame.origin.x += EDITING_INSET;
|
||||
}
|
||||
return frame;
|
||||
}
|
||||
|
||||
- (CGRect) _textViewFrame {
|
||||
CGRect frame = CGRectMake(2 * VIEW_PADDING + IMAGE_SIZE, VIEW_PADDING, self.contentView.bounds.size.width - IMAGE_SIZE - DATE_TIME_WIDTH - 3 * VIEW_PADDING, CONTENT_HEIGHT - 2 * VIEW_PADDING);
|
||||
if (self.editing) {
|
||||
frame.origin.x += EDITING_INSET;
|
||||
frame.size.width += DATE_TIME_WIDTH + VIEW_PADDING - EDITING_INSET;
|
||||
}
|
||||
return frame;
|
||||
}
|
||||
|
||||
- (CGRect) _timeViewFrame {
|
||||
float x = CGRectGetMaxX(self.contentView.bounds) - DATE_TIME_WIDTH - VIEW_PADDING;
|
||||
CGRect frame = CGRectMake(x, VIEW_PADDING, DATE_TIME_WIDTH, (CONTENT_HEIGHT - 2 * VIEW_PADDING) / 2);
|
||||
return frame;
|
||||
}
|
||||
|
||||
- (CGRect) _dateViewFrame {
|
||||
float x = CGRectGetMaxX(self.contentView.bounds) - DATE_TIME_WIDTH - VIEW_PADDING;
|
||||
CGRect frame = CGRectMake(x, (CONTENT_HEIGHT - 2 * VIEW_PADDING) / 2, DATE_TIME_WIDTH, (CONTENT_HEIGHT - 2 * VIEW_PADDING) / 2);
|
||||
return frame;
|
||||
}
|
||||
|
||||
|
||||
- (void)layoutSubviews {
|
||||
[super layoutSubviews];
|
||||
|
||||
[imageView setFrame:[self _imageViewFrame]];
|
||||
[textView setFrame:[self _textViewFrame]];
|
||||
[dateView setFrame:[self _dateViewFrame]];
|
||||
[timeView setFrame:[self _timeViewFrame]];
|
||||
if (self.editing) {
|
||||
dateView.alpha = 0.0;
|
||||
timeView.alpha = 0.0;
|
||||
} else {
|
||||
dateView.alpha = 1.0;
|
||||
timeView.alpha = 1.0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
- (void)setScan:(Scan *)newScan {
|
||||
if (newScan != scan) {
|
||||
[newScan retain];
|
||||
[scan release];
|
||||
scan = newScan;
|
||||
[result release];
|
||||
result = [[ResultParser parsedResultForString:[scan text]] retain];
|
||||
|
||||
imageView.image = [result icon];
|
||||
textView.text = [result stringForDisplay];
|
||||
|
||||
NSDate *date = [scan stamp];
|
||||
dateView.text = _dateString(date);
|
||||
timeView.text = _timeString(date);
|
||||
}
|
||||
}
|
||||
|
||||
- (Scan *)scan {
|
||||
return scan;
|
||||
}
|
||||
|
||||
- (void)dealloc {
|
||||
[imageView release];
|
||||
[textView release];
|
||||
[dateView release];
|
||||
[timeView release];
|
||||
[scan release];
|
||||
[result release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
|
||||
@end
|
|
@ -14,10 +14,12 @@
|
|||
IBOutlet ParsedResult *result;
|
||||
IBOutlet Scan *scan;
|
||||
UIFont *bodyFont;
|
||||
NSDateFormatter *dateFormatter;
|
||||
}
|
||||
|
||||
@property (nonatomic, retain) ParsedResult *result;
|
||||
@property (nonatomic, retain) Scan *scan;
|
||||
@property (nonatomic, retain) NSDateFormatter *dateFormatter;
|
||||
|
||||
- (id)initWithResult:(ParsedResult *)r forScan:(Scan *)s;
|
||||
|
||||
|
|
|
@ -11,7 +11,8 @@
|
|||
|
||||
|
||||
#define TEXT_VIEW_TAG 0x17
|
||||
#define BUTTON_LABEL_TAG 0x17
|
||||
#define DATETIME_VIEW_TAG 0x18
|
||||
#define BUTTON_LABEL_TAG 0x19
|
||||
#define TITLE_HEIGHT 44
|
||||
#define BODY_HEIGHT 88
|
||||
|
||||
|
@ -19,6 +20,7 @@
|
|||
|
||||
@synthesize result;
|
||||
@synthesize scan;
|
||||
@synthesize dateFormatter;
|
||||
|
||||
#define FONT_NAME @"TimesNewRomanPSMT"
|
||||
#define FONT_SIZE 16
|
||||
|
@ -28,6 +30,9 @@
|
|||
self.result = r;
|
||||
self.scan = s;
|
||||
self.title = NSLocalizedString(@"Scan", @"scan view controller title");
|
||||
dateFormatter = [[NSDateFormatter alloc] init];
|
||||
[dateFormatter setDateStyle:NSDateFormatterLongStyle];
|
||||
[dateFormatter setTimeStyle:NSDateFormatterLongStyle];
|
||||
bodyFont = [[UIFont fontWithName:FONT_NAME size:FONT_SIZE] retain];
|
||||
}
|
||||
return self;
|
||||
|
@ -42,7 +47,7 @@
|
|||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
||||
switch (section) {
|
||||
case 0:
|
||||
return 2;
|
||||
return 3;
|
||||
case 1:
|
||||
return [[result actions] count];
|
||||
default:
|
||||
|
@ -63,6 +68,18 @@
|
|||
return [self cellWithIdentifier:TitleIdentifier inTableView:tableView];
|
||||
}
|
||||
|
||||
- (UITableViewCell *)datetimeCellInTableView:(UITableView *)tableView {
|
||||
static NSString *DatetimeIdentifier = @"ScanViewDatetimeIdentifier";
|
||||
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:DatetimeIdentifier];
|
||||
if (cell == nil) {
|
||||
cell = [[[UITableViewCell alloc] initWithFrame:CGRectMake(0, 0, 320, 34) reuseIdentifier:DatetimeIdentifier] autorelease];
|
||||
cell.font = [UIFont systemFontOfSize:[UIFont systemFontSize] * 2.0 / 3.0];
|
||||
cell.textColor = [UIColor grayColor];
|
||||
cell.textAlignment = UITextAlignmentCenter;
|
||||
}
|
||||
return cell;
|
||||
}
|
||||
|
||||
- (UITableViewCell *)bodyCellInTableView:(UITableView *)tableView {
|
||||
static NSString *BodyIdentifier = @"ScanViewBodyIdentifier";
|
||||
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:BodyIdentifier];
|
||||
|
@ -97,23 +114,26 @@
|
|||
return cell;
|
||||
}
|
||||
|
||||
#define TEXT_VIEW_HEIGHT 330.0
|
||||
|
||||
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
if (indexPath.section == 0) {
|
||||
if (indexPath.row == 0) {
|
||||
return TITLE_HEIGHT;
|
||||
} else if (indexPath.row == 1) {
|
||||
CGSize size = [[result stringForDisplay] sizeWithFont:bodyFont constrainedToSize:CGSizeMake(280.0, 200.0) lineBreakMode:UILineBreakModeWordWrap];
|
||||
CGSize size = [[result stringForDisplay] sizeWithFont:bodyFont constrainedToSize:CGSizeMake(280.0, TEXT_VIEW_HEIGHT) lineBreakMode:UILineBreakModeWordWrap];
|
||||
#ifdef DEBUG
|
||||
NSLog(@"text size = %f", size.height);
|
||||
#endif
|
||||
return fminf(200, fmaxf(44, size.height + 24));
|
||||
return fminf(TEXT_VIEW_HEIGHT, fmaxf(44, size.height + 24));
|
||||
} else if (indexPath.row == 2) {
|
||||
return 24.0;
|
||||
}
|
||||
}
|
||||
return tableView.rowHeight;
|
||||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
|
||||
UITableViewCell *cell;
|
||||
|
||||
if (indexPath.section == 0) {
|
||||
|
@ -125,6 +145,9 @@
|
|||
cell = [self bodyCellInTableView:tableView];
|
||||
UITextView *textView = (UITextView *)[cell viewWithTag:TEXT_VIEW_TAG];
|
||||
textView.text = [result stringForDisplay];
|
||||
} else if (indexPath.row == 2) {
|
||||
cell = [self datetimeCellInTableView:tableView];
|
||||
cell.text = [dateFormatter stringFromDate:[scan stamp]];
|
||||
}
|
||||
} else if (indexPath.section == 1) {
|
||||
cell = [self buttonCellInTableView:tableView];
|
||||
|
@ -182,6 +205,7 @@
|
|||
[result release];
|
||||
[scan release];
|
||||
[bodyFont release];
|
||||
[dateFormatter release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
|
|
21
iphone/Classes/ScannedImageView.h
Normal file
21
iphone/Classes/ScannedImageView.h
Normal file
|
@ -0,0 +1,21 @@
|
|||
//
|
||||
// ScannedImageView.h
|
||||
// ZXing
|
||||
//
|
||||
// Created by Christian Brunschen on 01/07/2008.
|
||||
// Copyright 2008 Google Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
|
||||
@interface ScannedImageView : UIView {
|
||||
UIImage *image;
|
||||
NSMutableArray *resultPoints;
|
||||
}
|
||||
|
||||
@property (nonatomic, retain) UIImage *image;
|
||||
|
||||
- (void) addResultPoint:(CGPoint)p;
|
||||
|
||||
@end
|
105
iphone/Classes/ScannedImageView.m
Normal file
105
iphone/Classes/ScannedImageView.m
Normal file
|
@ -0,0 +1,105 @@
|
|||
//
|
||||
// ScannedImageView.m
|
||||
// ZXing
|
||||
//
|
||||
// Created by Christian Brunschen on 01/07/2008.
|
||||
// Copyright 2008 Google Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import "ScannedImageView.h"
|
||||
#import <math.h>
|
||||
|
||||
@implementation ScannedImageView
|
||||
|
||||
- (id)initWithFrame:(CGRect)frame {
|
||||
if (self = [super initWithFrame:frame]) {
|
||||
resultPoints = [[NSMutableArray alloc] initWithCapacity:10];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithCoder:(NSCoder *)decoder {
|
||||
if ((self = [super initWithCoder:decoder]) != nil) {
|
||||
resultPoints = [[NSMutableArray alloc] initWithCapacity:10];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)drawRect:(CGRect)rect {
|
||||
[super drawRect:rect];
|
||||
|
||||
if (image) {
|
||||
// draw the image, scaled to fit, top and center
|
||||
CGSize imageSize = image.size;
|
||||
CGRect bounds = [self bounds];
|
||||
double imageScale = fminf(bounds.size.width / imageSize.width,
|
||||
bounds.size.height / imageSize.height);
|
||||
double dx = (bounds.size.width - imageSize.width * imageScale) / 2.0;
|
||||
double dy = 0.0;
|
||||
|
||||
CGContextRef ctx = UIGraphicsGetCurrentContext();
|
||||
CGContextSetInterpolationQuality(ctx, kCGInterpolationDefault);
|
||||
CGRect imageRect = CGRectMake(dx, dy,
|
||||
imageSize.width * imageScale,
|
||||
imageSize.height * imageScale);
|
||||
[image drawInRect:imageRect];
|
||||
|
||||
[[UIColor greenColor] set];
|
||||
|
||||
if (resultPoints && [resultPoints count]) {
|
||||
#define R 4.0
|
||||
if ([resultPoints count] == 2) {
|
||||
CGPoint p0 = [[resultPoints objectAtIndex:0] CGPointValue];
|
||||
CGPoint p1 = [[resultPoints objectAtIndex:1] CGPointValue];
|
||||
CGContextMoveToPoint(ctx, dx + p0.x * imageScale, dy + p0.y * imageScale);
|
||||
CGContextAddLineToPoint(ctx, dx + p1.x * imageScale, dy + p1.y * imageScale);
|
||||
CGContextSetLineWidth(ctx, 4.0);
|
||||
CGContextSetLineCap(ctx, kCGLineCapSquare);
|
||||
CGContextStrokePath(ctx);
|
||||
} else {
|
||||
// for each resultPoint, draw it
|
||||
for (NSValue *pointValue in resultPoints) {
|
||||
CGPoint resultPoint = [pointValue CGPointValue];
|
||||
float px = dx + resultPoint.x * imageScale;
|
||||
float py = dy + resultPoint.y * imageScale;
|
||||
CGContextAddRect(ctx,
|
||||
CGRectMake(px - R, py - R, 2 * R, 2 * R));
|
||||
}
|
||||
CGContextFillPath(ctx);
|
||||
}
|
||||
CGContextFlush(ctx);
|
||||
#undef R
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void) addResultPoint:(CGPoint)p {
|
||||
[resultPoints addObject:[NSValue valueWithCGPoint:p]];
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void) clearResultPoints {
|
||||
[resultPoints removeAllObjects];
|
||||
}
|
||||
|
||||
- (void) setImage:(UIImage *)newImage {
|
||||
[newImage retain];
|
||||
[image release];
|
||||
image = newImage;
|
||||
[self clearResultPoints];
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (UIImage *)image {
|
||||
return image;
|
||||
}
|
||||
|
||||
|
||||
- (void)dealloc {
|
||||
[image release];
|
||||
[resultPoints release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
|
||||
@end
|
|
@ -31,14 +31,6 @@
|
|||
@synthesize navigationController;
|
||||
|
||||
- (void)applicationDidFinishLaunching:(UIApplication *)application {
|
||||
|
||||
for (NSString *familyName in [UIFont familyNames]) {
|
||||
NSLog(@"family name: '%@'", familyName);
|
||||
for (NSString *fontName in [UIFont fontNamesForFamilyName:familyName]) {
|
||||
NSLog(@" font name: '%@'", fontName);
|
||||
}
|
||||
}
|
||||
|
||||
/* create the view controller */
|
||||
DecoderViewController *vc =
|
||||
[[DecoderViewController alloc] initWithNibName:@"DecoderView"
|
||||
|
@ -55,23 +47,21 @@
|
|||
// show the window
|
||||
[window makeKeyAndVisible];
|
||||
|
||||
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"autoChoosePicture"]) {
|
||||
// pick and decode using the first available source type in priority order
|
||||
// pick and decode using the first available source type in priority order
|
||||
#define N_SOURCE_TYPES 3
|
||||
UIImagePickerControllerSourceType sourceTypes[N_SOURCE_TYPES] = {
|
||||
UIImagePickerControllerSourceTypeCamera,
|
||||
UIImagePickerControllerSourceTypeSavedPhotosAlbum,
|
||||
UIImagePickerControllerSourceTypePhotoLibrary
|
||||
};
|
||||
UIImagePickerControllerSourceType sourceTypes[N_SOURCE_TYPES] = {
|
||||
UIImagePickerControllerSourceTypeCamera,
|
||||
UIImagePickerControllerSourceTypeSavedPhotosAlbum,
|
||||
UIImagePickerControllerSourceTypePhotoLibrary
|
||||
};
|
||||
|
||||
for (int i = 0; i < N_SOURCE_TYPES; i++) {
|
||||
if ([UIImagePickerController isSourceTypeAvailable:sourceTypes[i]]) {
|
||||
[viewController pickAndDecodeFromSource:sourceTypes[i]];
|
||||
break;
|
||||
}
|
||||
for (int i = 0; i < N_SOURCE_TYPES; i++) {
|
||||
if ([UIImagePickerController isSourceTypeAvailable:sourceTypes[i]]) {
|
||||
[viewController pickAndDecodeFromSource:sourceTypes[i]];
|
||||
break;
|
||||
}
|
||||
#undef N_SOURCE_TYPES
|
||||
}
|
||||
#undef N_SOURCE_TYPES
|
||||
}
|
||||
|
||||
- (void)dealloc {
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 5.3 KiB |
|
@ -1,45 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>Title</key>
|
||||
<string>YOUR_PROJECT_NAME</string>
|
||||
<key>StringsTable</key>
|
||||
<string>Root</string>
|
||||
<key>PreferenceSpecifiers</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>Title</key>
|
||||
<string>Automatic Actions</string>
|
||||
<key>Type</key>
|
||||
<string>PSGroupSpecifier</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Type</key>
|
||||
<string>PSToggleSwitchSpecifier</string>
|
||||
<key>Title</key>
|
||||
<string>Take Picture</string>
|
||||
<key>Key</key>
|
||||
<string>autoChoosePicture</string>
|
||||
<key>DefaultValue</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Title</key>
|
||||
<string>Taking Pictures</string>
|
||||
<key>Type</key>
|
||||
<string>PSGroupSpecifier</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Type</key>
|
||||
<string>PSToggleSwitchSpecifier</string>
|
||||
<key>Title</key>
|
||||
<string>Allow Editing</string>
|
||||
<key>Key</key>
|
||||
<string>allowEditing</string>
|
||||
<key>DefaultValue</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
Binary file not shown.
|
@ -61,7 +61,6 @@
|
|||
852A99910E0BC43C003E6D6D /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 852A99900E0BC43C003E6D6D /* MainWindow.xib */; };
|
||||
852A99970E0BC49E003E6D6D /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 852A99960E0BC49E003E6D6D /* Localizable.strings */; };
|
||||
854BE3010E06A56C00CB4A20 /* AddressBookUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 854BE3000E06A56C00CB4A20 /* AddressBookUI.framework */; };
|
||||
8552C4980E0A61D6000CC4F0 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 8552C4970E0A61D6000CC4F0 /* Default.png */; };
|
||||
855A66800DF5E757007B394F /* ArchiveController.m in Sources */ = {isa = PBXBuildFile; fileRef = 855A66510DF5E757007B394F /* ArchiveController.m */; };
|
||||
855A66810DF5E757007B394F /* Database.m in Sources */ = {isa = PBXBuildFile; fileRef = 855A66540DF5E757007B394F /* Database.m */; };
|
||||
855A66830DF5E757007B394F /* AddContactAction.m in Sources */ = {isa = PBXBuildFile; fileRef = 855A66580DF5E757007B394F /* AddContactAction.m */; };
|
||||
|
@ -81,12 +80,13 @@
|
|||
855A66930DF5E757007B394F /* URIParsedResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 855A66790DF5E757007B394F /* URIParsedResult.m */; };
|
||||
855A66960DF5E757007B394F /* Scan.m in Sources */ = {isa = PBXBuildFile; fileRef = 855A667F0DF5E757007B394F /* Scan.m */; };
|
||||
855A66A50DF5E7B4007B394F /* scans.db in Resources */ = {isa = PBXBuildFile; fileRef = 855A66A00DF5E7B4007B394F /* scans.db */; };
|
||||
855A66A60DF5E7B4007B394F /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 855A66A10DF5E7B4007B394F /* Settings.bundle */; };
|
||||
855A66A70DF5E7B4007B394F /* zxing-icon-128.png in Resources */ = {isa = PBXBuildFile; fileRef = 855A66A20DF5E7B4007B394F /* zxing-icon-128.png */; };
|
||||
855A66B40DF5E884007B394F /* AddressBook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 855A66B30DF5E884007B394F /* AddressBook.framework */; };
|
||||
855A66BD0DF5E8D6007B394F /* libsqlite3.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 855A66BC0DF5E8D6007B394F /* libsqlite3.0.dylib */; };
|
||||
855A66BF0DF5E8F8007B394F /* libiconv.2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 855A66BE0DF5E8F8007B394F /* libiconv.2.dylib */; };
|
||||
855A66D20DF5E954007B394F /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 855A66D10DF5E954007B394F /* CoreGraphics.framework */; };
|
||||
85B1D7EF0E18EB6800514A6A /* ScanCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 85B1D7EE0E18EB6700514A6A /* ScanCell.m */; };
|
||||
85B1D8850E190E3A00514A6A /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 85B1D8840E190E3A00514A6A /* Default.png */; };
|
||||
85C0B9140E123AFC005EED58 /* ResultParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 85C0B9130E123AFC005EED58 /* ResultParser.m */; };
|
||||
85C0B91A0E123BD2005EED58 /* DoCoMoResultParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 85C0B9190E123BD2005EED58 /* DoCoMoResultParser.m */; };
|
||||
85C0B9220E123C93005EED58 /* MeCardParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 85C0B9210E123C93005EED58 /* MeCardParser.m */; };
|
||||
|
@ -109,6 +109,7 @@
|
|||
85C3CC3B0E119E1700A01C6A /* sms.png in Resources */ = {isa = PBXBuildFile; fileRef = 85C3CC330E119E1700A01C6A /* sms.png */; };
|
||||
85C3CC3C0E119E1700A01C6A /* text.png in Resources */ = {isa = PBXBuildFile; fileRef = 85C3CC340E119E1700A01C6A /* text.png */; };
|
||||
85D937270E11064700B785E0 /* ScanViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 85D937260E11064700B785E0 /* ScanViewController.m */; };
|
||||
85E883980E1A34D2004C4547 /* ScannedImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 85E883970E1A34D2004C4547 /* ScannedImageView.m */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
|
@ -173,7 +174,6 @@
|
|||
852A99D10E0BC8E8003E6D6D /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
852A99D20E0BC8E8003E6D6D /* sv */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = sv; path = sv.lproj/MainWindow.xib; sourceTree = "<group>"; };
|
||||
854BE3000E06A56C00CB4A20 /* AddressBookUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AddressBookUI.framework; path = System/Library/Frameworks/AddressBookUI.framework; sourceTree = SDKROOT; };
|
||||
8552C4970E0A61D6000CC4F0 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = "<group>"; };
|
||||
855A65D70DF5E739007B394F /* BarcodeFormat.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BarcodeFormat.cpp; sourceTree = "<group>"; };
|
||||
855A65D80DF5E739007B394F /* BarcodeFormat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BarcodeFormat.h; sourceTree = "<group>"; };
|
||||
855A65D90DF5E739007B394F /* BlackPointEstimationMethod.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BlackPointEstimationMethod.cpp; sourceTree = "<group>"; };
|
||||
|
@ -290,7 +290,6 @@
|
|||
855A667E0DF5E757007B394F /* Scan.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Scan.h; sourceTree = "<group>"; };
|
||||
855A667F0DF5E757007B394F /* Scan.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Scan.m; sourceTree = "<group>"; };
|
||||
855A66A00DF5E7B4007B394F /* scans.db */ = {isa = PBXFileReference; lastKnownFileType = file; path = scans.db; sourceTree = "<group>"; };
|
||||
855A66A10DF5E7B4007B394F /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = Settings.bundle; sourceTree = "<group>"; };
|
||||
855A66A20DF5E7B4007B394F /* zxing-icon-128.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "zxing-icon-128.png"; sourceTree = "<group>"; };
|
||||
855A66B30DF5E884007B394F /* AddressBook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AddressBook.framework; path = System/Library/Frameworks/AddressBook.framework; sourceTree = SDKROOT; };
|
||||
855A66BC0DF5E8D6007B394F /* libsqlite3.0.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.0.dylib; path = usr/lib/libsqlite3.0.dylib; sourceTree = SDKROOT; };
|
||||
|
@ -300,6 +299,9 @@
|
|||
857D36400DF60E37000E0C89 /* Exception.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Exception.cpp; sourceTree = "<group>"; };
|
||||
857D368E0DF613F3000E0C89 /* GrayBytesMonochromeBitmapSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GrayBytesMonochromeBitmapSource.h; sourceTree = "<group>"; };
|
||||
857D368F0DF613F3000E0C89 /* GrayBytesMonochromeBitmapSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GrayBytesMonochromeBitmapSource.cpp; sourceTree = "<group>"; };
|
||||
85B1D7ED0E18EB6700514A6A /* ScanCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScanCell.h; sourceTree = "<group>"; };
|
||||
85B1D7EE0E18EB6700514A6A /* ScanCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ScanCell.m; sourceTree = "<group>"; };
|
||||
85B1D8840E190E3A00514A6A /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = "<group>"; };
|
||||
85C0B9120E123AFC005EED58 /* ResultParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResultParser.h; sourceTree = "<group>"; };
|
||||
85C0B9130E123AFC005EED58 /* ResultParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ResultParser.m; sourceTree = "<group>"; };
|
||||
85C0B9180E123BD2005EED58 /* DoCoMoResultParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DoCoMoResultParser.h; sourceTree = "<group>"; };
|
||||
|
@ -336,6 +338,8 @@
|
|||
85C3CC340E119E1700A01C6A /* text.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = text.png; sourceTree = "<group>"; };
|
||||
85D937250E11064700B785E0 /* ScanViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScanViewController.h; sourceTree = "<group>"; };
|
||||
85D937260E11064700B785E0 /* ScanViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ScanViewController.m; sourceTree = "<group>"; };
|
||||
85E883960E1A34D2004C4547 /* ScannedImageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScannedImageView.h; sourceTree = "<group>"; };
|
||||
85E883970E1A34D2004C4547 /* ScannedImageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ScannedImageView.m; sourceTree = "<group>"; };
|
||||
8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
|
@ -376,6 +380,8 @@
|
|||
85D937250E11064700B785E0 /* ScanViewController.h */,
|
||||
85D937260E11064700B785E0 /* ScanViewController.m */,
|
||||
855A66510DF5E757007B394F /* ArchiveController.m */,
|
||||
85B1D7ED0E18EB6700514A6A /* ScanCell.h */,
|
||||
85B1D7EE0E18EB6700514A6A /* ScanCell.m */,
|
||||
855A66520DF5E757007B394F /* ArchiveController.h */,
|
||||
855A66530DF5E757007B394F /* Database.h */,
|
||||
855A66540DF5E757007B394F /* Database.m */,
|
||||
|
@ -390,6 +396,8 @@
|
|||
855A66770DF5E757007B394F /* NSString+HTML.m */,
|
||||
855A667E0DF5E757007B394F /* Scan.h */,
|
||||
855A667F0DF5E757007B394F /* Scan.m */,
|
||||
85E883960E1A34D2004C4547 /* ScannedImageView.h */,
|
||||
85E883970E1A34D2004C4547 /* ScannedImageView.m */,
|
||||
);
|
||||
path = Classes;
|
||||
sourceTree = "<group>";
|
||||
|
@ -429,15 +437,14 @@
|
|||
29B97317FDCFA39411CA2CEA /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
85B1D8840E190E3A00514A6A /* Default.png */,
|
||||
85C3CC0F0E119E0500A01C6A /* Images */,
|
||||
852A99960E0BC49E003E6D6D /* Localizable.strings */,
|
||||
855A66A00DF5E7B4007B394F /* scans.db */,
|
||||
855A66A10DF5E7B4007B394F /* Settings.bundle */,
|
||||
855A66A20DF5E7B4007B394F /* zxing-icon-128.png */,
|
||||
852A998E0E0BC433003E6D6D /* DecoderView.xib */,
|
||||
852A99900E0BC43C003E6D6D /* MainWindow.xib */,
|
||||
8D1107310486CEB800E47090 /* Info.plist */,
|
||||
8552C4970E0A61D6000CC4F0 /* Default.png */,
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
|
@ -827,11 +834,9 @@
|
|||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
855A66A50DF5E7B4007B394F /* scans.db in Resources */,
|
||||
855A66A60DF5E7B4007B394F /* Settings.bundle in Resources */,
|
||||
855A66A70DF5E7B4007B394F /* zxing-icon-128.png in Resources */,
|
||||
852A998F0E0BC433003E6D6D /* DecoderView.xib in Resources */,
|
||||
852A99910E0BC43C003E6D6D /* MainWindow.xib in Resources */,
|
||||
8552C4980E0A61D6000CC4F0 /* Default.png in Resources */,
|
||||
852A99970E0BC49E003E6D6D /* Localizable.strings in Resources */,
|
||||
85C3CC350E119E1700A01C6A /* business-card.png in Resources */,
|
||||
85C3CC360E119E1700A01C6A /* email.png in Resources */,
|
||||
|
@ -841,6 +846,7 @@
|
|||
85C3CC3A0E119E1700A01C6A /* phone.png in Resources */,
|
||||
85C3CC3B0E119E1700A01C6A /* sms.png in Resources */,
|
||||
85C3CC3C0E119E1700A01C6A /* text.png in Resources */,
|
||||
85B1D8850E190E3A00514A6A /* Default.png in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -888,6 +894,8 @@
|
|||
85C0BC100E12548D005EED58 /* SMSTOResultParser.m in Sources */,
|
||||
85C0BC140E1254C0005EED58 /* SMSParsedResult.m in Sources */,
|
||||
85C0BC1C0E125842005EED58 /* SMSResultParser.m in Sources */,
|
||||
85B1D7EF0E18EB6800514A6A /* ScanCell.m in Sources */,
|
||||
85E883980E1A34D2004C4547 /* ScannedImageView.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
|
@ -3,12 +3,12 @@
|
|||
<data>
|
||||
<int key="IBDocument.SystemTarget">512</int>
|
||||
<string key="IBDocument.SystemVersion">9D34</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">667</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">670</string>
|
||||
<string key="IBDocument.AppKitVersion">949.33</string>
|
||||
<string key="IBDocument.HIToolboxVersion">352.00</string>
|
||||
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<integer value="1"/>
|
||||
<integer value="70"/>
|
||||
</object>
|
||||
<object class="NSArray" key="IBDocument.PluginDependencies">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
|
@ -27,28 +27,6 @@
|
|||
<int key="NSvFlags">274</int>
|
||||
<object class="NSMutableArray" key="NSSubviews">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBUIImageView" id="752226104">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrameSize">{320, 431}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
|
||||
<int key="IBUIContentMode">1</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
</object>
|
||||
<object class="IBUIView" id="167911890">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">266</int>
|
||||
<string key="NSFrame">{{0, 367}, {320, 64}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MSAwAA</bytes>
|
||||
</object>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
|
||||
</object>
|
||||
<object class="IBUIToolbar" id="17982920">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">266</int>
|
||||
|
@ -103,13 +81,22 @@
|
|||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUIView" id="484684247">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrameSize">{320, 431}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor" id="633901396">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MCAwIDAAA</bytes>
|
||||
</object>
|
||||
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
|
||||
<int key="IBUIContentMode">3</int>
|
||||
</object>
|
||||
</object>
|
||||
<string key="NSFrameSize">{320, 480}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MCAwIDAAA</bytes>
|
||||
</object>
|
||||
<reference key="IBUIBackgroundColor" ref="633901396"/>
|
||||
<int key="IBUIContentMode">3</int>
|
||||
</object>
|
||||
</object>
|
||||
|
@ -124,14 +111,6 @@
|
|||
</object>
|
||||
<int key="connectionID">9</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">imageView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="752226104"/>
|
||||
</object>
|
||||
<int key="connectionID">18</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">actionBarItem</string>
|
||||
|
@ -222,11 +201,11 @@
|
|||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">resultView</string>
|
||||
<string key="label">imageView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="167911890"/>
|
||||
<reference key="destination" ref="484684247"/>
|
||||
</object>
|
||||
<int key="connectionID">69</int>
|
||||
<int key="connectionID">71</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
|
@ -246,8 +225,7 @@
|
|||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference ref="17982920"/>
|
||||
<reference ref="167911890"/>
|
||||
<reference ref="752226104"/>
|
||||
<reference ref="484684247"/>
|
||||
</object>
|
||||
<reference key="parent" ref="360949347"/>
|
||||
</object>
|
||||
|
@ -325,17 +303,8 @@
|
|||
<reference key="parent" ref="17982920"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">68</int>
|
||||
<reference key="object" ref="167911890"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
<string key="objectName">ResultView</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">16</int>
|
||||
<reference key="object" ref="752226104"/>
|
||||
<int key="objectID">70</int>
|
||||
<reference key="object" ref="484684247"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
</object>
|
||||
|
@ -348,7 +317,6 @@
|
|||
<string>-2.CustomClassName</string>
|
||||
<string>1.IBEditorWindowLastContentRect</string>
|
||||
<string>1.IBPluginDependency</string>
|
||||
<string>16.IBPluginDependency</string>
|
||||
<string>34.IBPluginDependency</string>
|
||||
<string>35.IBPluginDependency</string>
|
||||
<string>36.IBPluginDependency</string>
|
||||
|
@ -359,14 +327,14 @@
|
|||
<string>56.IBPluginDependency</string>
|
||||
<string>58.IBPluginDependency</string>
|
||||
<string>59.IBPluginDependency</string>
|
||||
<string>68.IBPluginDependency</string>
|
||||
<string>70.CustomClassName</string>
|
||||
<string>70.IBPluginDependency</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>DecodingController</string>
|
||||
<string>DecoderViewController</string>
|
||||
<string>UIResponder</string>
|
||||
<string>{{387, 315}, {320, 480}}</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>{{387, 352}, {320, 480}}</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
|
@ -378,6 +346,7 @@
|
|||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>ScannedImageView</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
</object>
|
||||
|
@ -401,13 +370,13 @@
|
|||
</object>
|
||||
</object>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">69</int>
|
||||
<int key="maxID">71</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">DecodingController</string>
|
||||
<string key="className">DecoderViewController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<object class="NSMutableDictionary" key="actions">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
|
@ -434,7 +403,6 @@
|
|||
<string>imageView</string>
|
||||
<string>libraryBarItem</string>
|
||||
<string>messageView</string>
|
||||
<string>resultView</string>
|
||||
<string>savedPhotosBarItem</string>
|
||||
<string>toolbar</string>
|
||||
</object>
|
||||
|
@ -443,31 +411,30 @@
|
|||
<string>UIBarItem</string>
|
||||
<string>UIBarItem</string>
|
||||
<string>UIBarItem</string>
|
||||
<string>UIImageView</string>
|
||||
<string>ScannedImageView</string>
|
||||
<string>UIBarItem</string>
|
||||
<string>UITextView</string>
|
||||
<string>UIView</string>
|
||||
<string>UIBarItem</string>
|
||||
<string>UIToolbar</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">Classes/DecodingController.h</string>
|
||||
<string key="minorKey">Classes/DecoderViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">DecodingController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<string key="className">ScannedImageView</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBUserSource</string>
|
||||
<string key="minorKey"/>
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">Classes/ScannedImageView.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.LastKnownRelativeProjectPath">ZXing.xcodeproj</string>
|
||||
<string key="IBDocument.LastKnownRelativeProjectPath">../ZXing.xcodeproj</string>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
</data>
|
||||
</archive>
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
<string key="IBDocument.HIToolboxVersion">352.00</string>
|
||||
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<integer value="1"/>
|
||||
<integer value="70"/>
|
||||
</object>
|
||||
<object class="NSArray" key="IBDocument.PluginDependencies">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
|
@ -27,28 +27,6 @@
|
|||
<int key="NSvFlags">274</int>
|
||||
<object class="NSMutableArray" key="NSSubviews">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBUIImageView" id="752226104">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrameSize">{320, 431}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
|
||||
<int key="IBUIContentMode">1</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
</object>
|
||||
<object class="IBUIView" id="167911890">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">266</int>
|
||||
<string key="NSFrame">{{0, 367}, {320, 64}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MSAwAA</bytes>
|
||||
</object>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
|
||||
</object>
|
||||
<object class="IBUIToolbar" id="17982920">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">266</int>
|
||||
|
@ -103,13 +81,22 @@
|
|||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUIView" id="209438645">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrameSize">{320, 431}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor" id="280346055">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MCAwIDAAA</bytes>
|
||||
</object>
|
||||
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
|
||||
<int key="IBUIContentMode">3</int>
|
||||
</object>
|
||||
</object>
|
||||
<string key="NSFrameSize">{320, 480}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MCAwIDAAA</bytes>
|
||||
</object>
|
||||
<reference key="IBUIBackgroundColor" ref="280346055"/>
|
||||
<int key="IBUIContentMode">3</int>
|
||||
</object>
|
||||
</object>
|
||||
|
@ -124,14 +111,6 @@
|
|||
</object>
|
||||
<int key="connectionID">9</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">imageView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="752226104"/>
|
||||
</object>
|
||||
<int key="connectionID">18</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">actionBarItem</string>
|
||||
|
@ -222,11 +201,11 @@
|
|||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">resultView</string>
|
||||
<string key="label">imageView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="167911890"/>
|
||||
<reference key="destination" ref="209438645"/>
|
||||
</object>
|
||||
<int key="connectionID">69</int>
|
||||
<int key="connectionID">71</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
|
@ -246,8 +225,7 @@
|
|||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference ref="17982920"/>
|
||||
<reference ref="167911890"/>
|
||||
<reference ref="752226104"/>
|
||||
<reference ref="209438645"/>
|
||||
</object>
|
||||
<reference key="parent" ref="360949347"/>
|
||||
</object>
|
||||
|
@ -325,17 +303,8 @@
|
|||
<reference key="parent" ref="17982920"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">68</int>
|
||||
<reference key="object" ref="167911890"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
<string key="objectName">ResultView</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">16</int>
|
||||
<reference key="object" ref="752226104"/>
|
||||
<int key="objectID">70</int>
|
||||
<reference key="object" ref="209438645"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
</object>
|
||||
|
@ -348,7 +317,6 @@
|
|||
<string>-2.CustomClassName</string>
|
||||
<string>1.IBEditorWindowLastContentRect</string>
|
||||
<string>1.IBPluginDependency</string>
|
||||
<string>16.IBPluginDependency</string>
|
||||
<string>34.IBPluginDependency</string>
|
||||
<string>35.IBPluginDependency</string>
|
||||
<string>36.IBPluginDependency</string>
|
||||
|
@ -359,14 +327,14 @@
|
|||
<string>56.IBPluginDependency</string>
|
||||
<string>58.IBPluginDependency</string>
|
||||
<string>59.IBPluginDependency</string>
|
||||
<string>68.IBPluginDependency</string>
|
||||
<string>70.CustomClassName</string>
|
||||
<string>70.IBPluginDependency</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>DecodingController</string>
|
||||
<string>DecoderViewController</string>
|
||||
<string>UIResponder</string>
|
||||
<string>{{387, 315}, {320, 480}}</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>{{387, 352}, {320, 480}}</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
|
@ -378,6 +346,7 @@
|
|||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>ScannedImageView</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
</object>
|
||||
|
@ -401,17 +370,65 @@
|
|||
</object>
|
||||
</object>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">69</int>
|
||||
<int key="maxID">71</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">DecodingController</string>
|
||||
<string key="className">DecoderViewController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<object class="NSMutableDictionary" key="actions">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSMutableArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>performResultAction:</string>
|
||||
<string>pickAndDecode:</string>
|
||||
<string>showArchive:</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSMutableArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>actionBarItem</string>
|
||||
<string>archiveBarItem</string>
|
||||
<string>cameraBarItem</string>
|
||||
<string>imageView</string>
|
||||
<string>libraryBarItem</string>
|
||||
<string>messageView</string>
|
||||
<string>savedPhotosBarItem</string>
|
||||
<string>toolbar</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>UIBarItem</string>
|
||||
<string>UIBarItem</string>
|
||||
<string>UIBarItem</string>
|
||||
<string>ScannedImageView</string>
|
||||
<string>UIBarItem</string>
|
||||
<string>UITextView</string>
|
||||
<string>UIBarItem</string>
|
||||
<string>UIToolbar</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBUserSource</string>
|
||||
<string key="minorKey"/>
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">Classes/DecoderViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">ScannedImageView</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">Classes/ScannedImageView.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
|
|
|
@ -3,12 +3,12 @@
|
|||
<data>
|
||||
<int key="IBDocument.SystemTarget">512</int>
|
||||
<string key="IBDocument.SystemVersion">9D34</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">667</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">670</string>
|
||||
<string key="IBDocument.AppKitVersion">949.33</string>
|
||||
<string key="IBDocument.HIToolboxVersion">352.00</string>
|
||||
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<integer value="1"/>
|
||||
<integer value="70"/>
|
||||
</object>
|
||||
<object class="NSArray" key="IBDocument.PluginDependencies">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
|
@ -27,28 +27,6 @@
|
|||
<int key="NSvFlags">274</int>
|
||||
<object class="NSMutableArray" key="NSSubviews">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBUIImageView" id="752226104">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrameSize">{320, 431}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
|
||||
<int key="IBUIContentMode">1</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
</object>
|
||||
<object class="IBUIView" id="167911890">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">266</int>
|
||||
<string key="NSFrame">{{0, 367}, {320, 64}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MSAwAA</bytes>
|
||||
</object>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
|
||||
</object>
|
||||
<object class="IBUIToolbar" id="17982920">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">266</int>
|
||||
|
@ -103,13 +81,22 @@
|
|||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUIView" id="680144344">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrameSize">{320, 431}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor" id="139529231">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MCAwIDAAA</bytes>
|
||||
</object>
|
||||
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
|
||||
<int key="IBUIContentMode">3</int>
|
||||
</object>
|
||||
</object>
|
||||
<string key="NSFrameSize">{320, 480}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MCAwIDAAA</bytes>
|
||||
</object>
|
||||
<reference key="IBUIBackgroundColor" ref="139529231"/>
|
||||
<int key="IBUIContentMode">3</int>
|
||||
</object>
|
||||
</object>
|
||||
|
@ -124,14 +111,6 @@
|
|||
</object>
|
||||
<int key="connectionID">9</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">imageView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="752226104"/>
|
||||
</object>
|
||||
<int key="connectionID">18</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">actionBarItem</string>
|
||||
|
@ -222,11 +201,11 @@
|
|||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">resultView</string>
|
||||
<string key="label">imageView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="167911890"/>
|
||||
<reference key="destination" ref="680144344"/>
|
||||
</object>
|
||||
<int key="connectionID">69</int>
|
||||
<int key="connectionID">71</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
|
@ -246,8 +225,7 @@
|
|||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference ref="17982920"/>
|
||||
<reference ref="167911890"/>
|
||||
<reference ref="752226104"/>
|
||||
<reference ref="680144344"/>
|
||||
</object>
|
||||
<reference key="parent" ref="360949347"/>
|
||||
</object>
|
||||
|
@ -325,17 +303,8 @@
|
|||
<reference key="parent" ref="17982920"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">68</int>
|
||||
<reference key="object" ref="167911890"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
<string key="objectName">ResultView</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">16</int>
|
||||
<reference key="object" ref="752226104"/>
|
||||
<int key="objectID">70</int>
|
||||
<reference key="object" ref="680144344"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
</object>
|
||||
|
@ -348,7 +317,6 @@
|
|||
<string>-2.CustomClassName</string>
|
||||
<string>1.IBEditorWindowLastContentRect</string>
|
||||
<string>1.IBPluginDependency</string>
|
||||
<string>16.IBPluginDependency</string>
|
||||
<string>34.IBPluginDependency</string>
|
||||
<string>35.IBPluginDependency</string>
|
||||
<string>36.IBPluginDependency</string>
|
||||
|
@ -359,14 +327,14 @@
|
|||
<string>56.IBPluginDependency</string>
|
||||
<string>58.IBPluginDependency</string>
|
||||
<string>59.IBPluginDependency</string>
|
||||
<string>68.IBPluginDependency</string>
|
||||
<string>70.CustomClassName</string>
|
||||
<string>70.IBPluginDependency</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>DecodingController</string>
|
||||
<string>DecoderViewController</string>
|
||||
<string>UIResponder</string>
|
||||
<string>{{387, 315}, {320, 480}}</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>{{387, 352}, {320, 480}}</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
|
@ -378,6 +346,7 @@
|
|||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>ScannedImageView</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
</object>
|
||||
|
@ -401,13 +370,13 @@
|
|||
</object>
|
||||
</object>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">69</int>
|
||||
<int key="maxID">71</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">DecodingController</string>
|
||||
<string key="className">DecoderViewController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<object class="NSMutableDictionary" key="actions">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
|
@ -434,7 +403,6 @@
|
|||
<string>imageView</string>
|
||||
<string>libraryBarItem</string>
|
||||
<string>messageView</string>
|
||||
<string>resultView</string>
|
||||
<string>savedPhotosBarItem</string>
|
||||
<string>toolbar</string>
|
||||
</object>
|
||||
|
@ -443,31 +411,30 @@
|
|||
<string>UIBarItem</string>
|
||||
<string>UIBarItem</string>
|
||||
<string>UIBarItem</string>
|
||||
<string>UIImageView</string>
|
||||
<string>ScannedImageView</string>
|
||||
<string>UIBarItem</string>
|
||||
<string>UITextView</string>
|
||||
<string>UIView</string>
|
||||
<string>UIBarItem</string>
|
||||
<string>UIToolbar</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">Classes/DecodingController.h</string>
|
||||
<string key="minorKey">Classes/DecoderViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">DecodingController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<string key="className">ScannedImageView</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBUserSource</string>
|
||||
<string key="minorKey"/>
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">Classes/ScannedImageView.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.LastKnownRelativeProjectPath">ZXing.xcodeproj</string>
|
||||
<string key="IBDocument.LastKnownRelativeProjectPath">../ZXing.xcodeproj</string>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
</data>
|
||||
</archive>
|
||||
|
|
Loading…
Reference in a new issue