mirror of
https://github.com/zxing/zxing.git
synced 2025-03-05 20:48:51 -08:00
Added David Phillip Oster's fixes for compiling and getting the Barcodes app to scan for barcodes.
git-svn-id: https://zxing.googlecode.com/svn/trunk@1343 59b500cc-1b3d-0410-9834-0bbf25fbcc57
This commit is contained in:
parent
0e7aedd046
commit
52e6d56a63
1
AUTHORS
1
AUTHORS
|
@ -10,6 +10,7 @@ Brian Brown (Google)
|
||||||
Christian Brunschen (Google)
|
Christian Brunschen (Google)
|
||||||
Daniel Switkin (Google)
|
Daniel Switkin (Google)
|
||||||
Dave MacLachlan (Google)
|
Dave MacLachlan (Google)
|
||||||
|
David Phillip Oster (Google)
|
||||||
David Albert (Bug Labs)
|
David Albert (Bug Labs)
|
||||||
Diego Pierotto
|
Diego Pierotto
|
||||||
Eric Kobrin (Velocitude)
|
Eric Kobrin (Velocitude)
|
||||||
|
|
|
@ -29,11 +29,11 @@
|
||||||
|
|
||||||
namespace zxing {
|
namespace zxing {
|
||||||
|
|
||||||
class Binarizer : public Counted {
|
class Binarizer : public Counted {
|
||||||
private:
|
private:
|
||||||
Ref<LuminanceSource> source_;
|
Ref<LuminanceSource> source_;
|
||||||
Ref<BitMatrix> matrix_;
|
|
||||||
Ref<BitArray> array_;
|
Ref<BitArray> array_;
|
||||||
|
Ref<BitMatrix> matrix_;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Binarizer(Ref<LuminanceSource> source);
|
Binarizer(Ref<LuminanceSource> source);
|
||||||
|
@ -45,7 +45,7 @@ namespace zxing {
|
||||||
virtual Ref<BitMatrix> estimateBlackMatrix() = 0;
|
virtual Ref<BitMatrix> estimateBlackMatrix() = 0;
|
||||||
Ref<BitMatrix> getBlackMatrix();
|
Ref<BitMatrix> getBlackMatrix();
|
||||||
Ref<LuminanceSource> getSource();
|
Ref<LuminanceSource> getSource();
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
#endif /* BINARIZER_H_ */
|
#endif /* BINARIZER_H_ */
|
||||||
|
|
|
@ -24,26 +24,27 @@
|
||||||
#include <zxing/common/IllegalArgumentException.h>
|
#include <zxing/common/IllegalArgumentException.h>
|
||||||
|
|
||||||
namespace zxing {
|
namespace zxing {
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
const int LUMINANCE_BITS = 5;
|
const int LUMINANCE_BITS = 5;
|
||||||
const int LUMINANCE_SHIFT = 8 - LUMINANCE_BITS;
|
const int LUMINANCE_SHIFT = 8 - LUMINANCE_BITS;
|
||||||
const int LUMINANCE_BUCKETS = 1 << LUMINANCE_BITS;
|
const int LUMINANCE_BUCKETS = 1 << LUMINANCE_BITS;
|
||||||
|
|
||||||
GlobalHistogramBinarizer::GlobalHistogramBinarizer(Ref<LuminanceSource> source) :
|
GlobalHistogramBinarizer::GlobalHistogramBinarizer(Ref<LuminanceSource> source) :
|
||||||
Binarizer(source) {
|
Binarizer(source) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GlobalHistogramBinarizer::~GlobalHistogramBinarizer() {
|
GlobalHistogramBinarizer::~GlobalHistogramBinarizer() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Ref<BitArray> GlobalHistogramBinarizer::estimateBlackRow(int y, Ref<BitArray> row){
|
Ref<BitArray> GlobalHistogramBinarizer::estimateBlackRow(int y,
|
||||||
|
Ref<BitArray> row){
|
||||||
vector<int> histogram(LUMINANCE_BUCKETS, 0);
|
vector<int> histogram(LUMINANCE_BUCKETS, 0);
|
||||||
LuminanceSource& source = *getSource();
|
LuminanceSource& source = *getSource();
|
||||||
int width = source.getWidth();
|
int width = source.getWidth();
|
||||||
if (row == NULL || row->getSize() < width) {
|
if (row == NULL || static_cast<int>(row->getSize()) < width) {
|
||||||
row = new BitArray(width);
|
row = new BitArray(width);
|
||||||
} else {
|
} else {
|
||||||
row->clear();
|
row->clear();
|
||||||
|
@ -73,9 +74,9 @@ namespace zxing {
|
||||||
}
|
}
|
||||||
|
|
||||||
return array_ref;
|
return array_ref;
|
||||||
}
|
}
|
||||||
|
|
||||||
Ref<BitMatrix> GlobalHistogramBinarizer::estimateBlackMatrix() {
|
Ref<BitMatrix> GlobalHistogramBinarizer::estimateBlackMatrix() {
|
||||||
// Faster than working with the reference
|
// Faster than working with the reference
|
||||||
LuminanceSource& source = *getSource();
|
LuminanceSource& source = *getSource();
|
||||||
int width = source.getWidth();
|
int width = source.getWidth();
|
||||||
|
@ -83,8 +84,9 @@ namespace zxing {
|
||||||
vector<int> histogram(LUMINANCE_BUCKETS, 0);
|
vector<int> histogram(LUMINANCE_BUCKETS, 0);
|
||||||
|
|
||||||
|
|
||||||
// Quickly calculates the histogram by sampling four rows from the image. This proved to be
|
// Quickly calculates the histogram by sampling four rows from the image.
|
||||||
// more robust on the blackbox tests than sampling a diagonal as we used to do.
|
// This proved to be more robust on the blackbox tests than sampling a
|
||||||
|
// diagonal as we used to do.
|
||||||
for (int y = 1; y < 5; y++) {
|
for (int y = 1; y < 5; y++) {
|
||||||
int row = height * y / 5;
|
int row = height * y / 5;
|
||||||
int right = (width << 2) / 5;
|
int right = (width << 2) / 5;
|
||||||
|
@ -107,9 +109,9 @@ namespace zxing {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return matrix_ref;
|
return matrix_ref;
|
||||||
}
|
}
|
||||||
|
|
||||||
int GlobalHistogramBinarizer::estimate(vector<int> &histogram) {
|
int GlobalHistogramBinarizer::estimate(vector<int> &histogram) {
|
||||||
int numBuckets = histogram.size();
|
int numBuckets = histogram.size();
|
||||||
int maxBucketCount = 0;
|
int maxBucketCount = 0;
|
||||||
|
|
||||||
|
@ -148,11 +150,13 @@ namespace zxing {
|
||||||
secondPeak = temp;
|
secondPeak = temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Kind of arbitrary; if the two peaks are very close, then we figure there is so little
|
// Kind of arbitrary; if the two peaks are very close, then we figure there is
|
||||||
// dynamic range in the image, that discriminating black and white is too error-prone.
|
// so little dynamic range in the image, that discriminating black and white
|
||||||
// Decoding the image/line is either pointless, or may in some cases lead to a false positive
|
// is too error-prone.
|
||||||
// for 1D formats, which are relatively lenient.
|
// Decoding the image/line is either pointless, or may in some cases lead to
|
||||||
// We arbitrarily say "close" is "<= 1/16 of the total histogram buckets apart"
|
// a false positive for 1D formats, which are relatively lenient.
|
||||||
|
// We arbitrarily say "close" is
|
||||||
|
// "<= 1/16 of the total histogram buckets apart"
|
||||||
if (secondPeak - firstPeak <= numBuckets >> 4) {
|
if (secondPeak - firstPeak <= numBuckets >> 4) {
|
||||||
throw IllegalArgumentException("Too little dynamic range in luminance");
|
throw IllegalArgumentException("Too little dynamic range in luminance");
|
||||||
}
|
}
|
||||||
|
@ -162,9 +166,10 @@ namespace zxing {
|
||||||
int bestValleyScore = -1;
|
int bestValleyScore = -1;
|
||||||
for (int i = secondPeak - 1; i > firstPeak; i--) {
|
for (int i = secondPeak - 1; i > firstPeak; i--) {
|
||||||
int fromFirst = i - firstPeak;
|
int fromFirst = i - firstPeak;
|
||||||
// Favor a "valley" that is not too close to either peak -- especially not the black peak --
|
// Favor a "valley" that is not too close to either peak -- especially not
|
||||||
// and that has a low value of course
|
// the black peak -- and that has a low value of course
|
||||||
int score = fromFirst * fromFirst * (secondPeak - i) * (maxBucketCount - histogram[i]);
|
int score = fromFirst * fromFirst * (secondPeak - i) *
|
||||||
|
(maxBucketCount - histogram[i]);
|
||||||
if (score > bestValleyScore) {
|
if (score > bestValleyScore) {
|
||||||
bestValley = i;
|
bestValley = i;
|
||||||
bestValleyScore = score;
|
bestValleyScore = score;
|
||||||
|
@ -172,6 +177,7 @@ namespace zxing {
|
||||||
}
|
}
|
||||||
|
|
||||||
return bestValley;
|
return bestValley;
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace zxing
|
||||||
|
|
||||||
|
|
|
@ -28,8 +28,8 @@ PerspectiveTransform::PerspectiveTransform(float inA11, float inA21,
|
||||||
float inA22, float inA32,
|
float inA22, float inA32,
|
||||||
float inA13, float inA23,
|
float inA13, float inA23,
|
||||||
float inA33) :
|
float inA33) :
|
||||||
a11(inA11), a21(inA21), a31(inA31), a12(inA12), a22(inA22), a32(inA32),
|
a11(inA11), a12(inA12), a13(inA13), a21(inA21), a22(inA22), a23(inA23),
|
||||||
a13(inA13), a23(inA23), a33(inA33) {}
|
a31(inA31), a32(inA32), a33(inA33) {}
|
||||||
|
|
||||||
Ref<PerspectiveTransform> PerspectiveTransform::quadrilateralToQuadrilateral(float x0, float y0, float x1, float y1,
|
Ref<PerspectiveTransform> PerspectiveTransform::quadrilateralToQuadrilateral(float x0, float y0, float x1, float y1,
|
||||||
float x2, float y2, float x3, float y3, float x0p, float y0p, float x1p, float y1p, float x2p, float y2p,
|
float x2, float y2, float x3, float y3, float x0p, float y0p, float x1p, float y1p, float x2p, float y2p,
|
||||||
|
|
|
@ -28,8 +28,8 @@ int BitMatrixParser::copyBit(size_t x, size_t y, int versionBits) {
|
||||||
return bitMatrix_->get(x, y) ? (versionBits << 1) | 0x1 : versionBits << 1;
|
return bitMatrix_->get(x, y) ? (versionBits << 1) | 0x1 : versionBits << 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
BitMatrixParser::BitMatrixParser(Ref<BitMatrix> bitMatrix) : parsedVersion_(NULL),
|
BitMatrixParser::BitMatrixParser(Ref<BitMatrix> bitMatrix) : bitMatrix_(NULL),
|
||||||
bitMatrix_(NULL),
|
parsedVersion_(NULL),
|
||||||
readBitMatrix_(NULL) {
|
readBitMatrix_(NULL) {
|
||||||
size_t dimension = bitMatrix->getDimension();
|
size_t dimension = bitMatrix->getDimension();
|
||||||
if (dimension < 10 || dimension > 144 || (dimension & 0x01) != 0)
|
if (dimension < 10 || dimension > 144 || (dimension & 0x01) != 0)
|
||||||
|
|
|
@ -33,8 +33,8 @@ namespace datamatrix {
|
||||||
class BitMatrixParser : public Counted {
|
class BitMatrixParser : public Counted {
|
||||||
private:
|
private:
|
||||||
Ref<BitMatrix> bitMatrix_;
|
Ref<BitMatrix> bitMatrix_;
|
||||||
Ref<BitMatrix> readBitMatrix_;
|
|
||||||
Ref<Version> parsedVersion_;
|
Ref<Version> parsedVersion_;
|
||||||
|
Ref<BitMatrix> readBitMatrix_;
|
||||||
|
|
||||||
int copyBit(size_t x, size_t y, int versionBits);
|
int copyBit(size_t x, size_t y, int versionBits);
|
||||||
|
|
||||||
|
|
|
@ -29,14 +29,14 @@ namespace datamatrix {
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
ResultPointsAndTransitions::ResultPointsAndTransitions() : from_(), to_(), transitions_(0) {
|
ResultPointsAndTransitions::ResultPointsAndTransitions() : to_(), from_(), transitions_(0) {
|
||||||
Ref<CornerPoint> ref(new CornerPoint(0,0));
|
Ref<CornerPoint> ref(new CornerPoint(0,0));
|
||||||
from_ = ref;
|
from_ = ref;
|
||||||
to_ = ref;
|
to_ = ref;
|
||||||
}
|
}
|
||||||
|
|
||||||
ResultPointsAndTransitions::ResultPointsAndTransitions(Ref<CornerPoint> from, Ref<CornerPoint> to, int transitions) :
|
ResultPointsAndTransitions::ResultPointsAndTransitions(Ref<CornerPoint> from, Ref<CornerPoint> to, int transitions) :
|
||||||
from_(from), to_(to), transitions_(transitions) {
|
to_(to), from_(from), transitions_(transitions) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Ref<CornerPoint> ResultPointsAndTransitions::getFrom() {
|
Ref<CornerPoint> ResultPointsAndTransitions::getFrom() {
|
||||||
|
|
|
@ -26,15 +26,16 @@
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
|
|
||||||
namespace zxing {
|
namespace zxing {
|
||||||
namespace oned {
|
namespace oned {
|
||||||
|
|
||||||
static const char* ALPHABET = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%";
|
static const char* ALPHABET = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%";
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* These represent the encodings of characters, as patterns of wide and narrow bars.
|
* These represent the encodings of characters, as patterns of wide and narrow
|
||||||
* The 9 least-significant bits of each int correspond to the pattern of wide and narrow,
|
* bars.
|
||||||
* with 1s representing "wide" and 0s representing narrow.
|
* The 9 least-significant bits of each int correspond to the pattern of wide
|
||||||
|
* and narrow, with 1s representing "wide" and 0s representing narrow.
|
||||||
*/
|
*/
|
||||||
const int CHARACTER_ENCODINGS_LEN = 44;
|
const int CHARACTER_ENCODINGS_LEN = 44;
|
||||||
static int CHARACTER_ENCODINGS[CHARACTER_ENCODINGS_LEN] = {
|
static int CHARACTER_ENCODINGS[CHARACTER_ENCODINGS_LEN] = {
|
||||||
|
@ -46,12 +47,14 @@ namespace zxing {
|
||||||
};
|
};
|
||||||
|
|
||||||
static int ASTERISK_ENCODING = 0x094;
|
static int ASTERISK_ENCODING = 0x094;
|
||||||
static const char* ALPHABET_STRING = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%";
|
static const char* ALPHABET_STRING =
|
||||||
|
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%";
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a reader that assumes all encoded data is data, and does not treat the final
|
* Creates a reader that assumes all encoded data is data, and does not treat
|
||||||
* character as a check digit. It will not decoded "extended Code 39" sequences.
|
* the final character as a check digit. It will not decoded "extended
|
||||||
|
* Code 39" sequences.
|
||||||
*/
|
*/
|
||||||
Code39Reader::Code39Reader() : alphabet_string(ALPHABET_STRING),
|
Code39Reader::Code39Reader() : alphabet_string(ALPHABET_STRING),
|
||||||
usingCheckDigit(false),
|
usingCheckDigit(false),
|
||||||
|
@ -59,13 +62,14 @@ namespace zxing {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a reader that can be configured to check the last character as a check digit.
|
* Creates a reader that can be configured to check the last character as a
|
||||||
* It will not decoded "extended Code 39" sequences.
|
* check digit. It will not decoded "extended Code 39" sequences.
|
||||||
*
|
*
|
||||||
* @param usingCheckDigit if true, treat the last data character as a check digit, not
|
* @param usingCheckDigit if true, treat the last data character as a check
|
||||||
* data, and verify that the checksum passes.
|
* digit, not data, and verify that the checksum passes.
|
||||||
*/
|
*/
|
||||||
Code39Reader::Code39Reader(bool usingCheckDigit_) : alphabet_string(ALPHABET_STRING),
|
Code39Reader::Code39Reader(bool usingCheckDigit_) :
|
||||||
|
alphabet_string(ALPHABET_STRING),
|
||||||
usingCheckDigit(usingCheckDigit_),
|
usingCheckDigit(usingCheckDigit_),
|
||||||
extendedMode(false) {
|
extendedMode(false) {
|
||||||
}
|
}
|
||||||
|
@ -125,8 +129,8 @@ namespace zxing {
|
||||||
delete [] counters;
|
delete [] counters;
|
||||||
// IS end
|
// IS end
|
||||||
int whiteSpaceAfterEnd = nextStart - lastStart - lastPatternSize;
|
int whiteSpaceAfterEnd = nextStart - lastStart - lastPatternSize;
|
||||||
// If 50% of last pattern size, following last pattern, is not whitespace, fail
|
// If 50% of last pattern size, following last pattern, is not whitespace,
|
||||||
// (but if it's whitespace to the very end of the image, that's OK)
|
// fail (but if it's whitespace to the very end of the image, that's OK)
|
||||||
if (nextStart != end && whiteSpaceAfterEnd / 2 < lastPatternSize) {
|
if (nextStart != end && whiteSpaceAfterEnd / 2 < lastPatternSize) {
|
||||||
delete [] start;
|
delete [] start;
|
||||||
throw ReaderException("too short end white space");
|
throw ReaderException("too short end white space");
|
||||||
|
@ -134,7 +138,7 @@ namespace zxing {
|
||||||
|
|
||||||
if (usingCheckDigit) {
|
if (usingCheckDigit) {
|
||||||
int max = tmpResultString.length() - 1;
|
int max = tmpResultString.length() - 1;
|
||||||
int total = 0;
|
unsigned int total = 0;
|
||||||
for (int i = 0; i < max; i++) {
|
for (int i = 0; i < max; i++) {
|
||||||
total += alphabet_string.find_first_of(tmpResultString[i], 0);
|
total += alphabet_string.find_first_of(tmpResultString[i], 0);
|
||||||
}
|
}
|
||||||
|
@ -163,8 +167,10 @@ namespace zxing {
|
||||||
float right = (float) (nextStart + lastStart) / 2.0f;
|
float right = (float) (nextStart + lastStart) / 2.0f;
|
||||||
|
|
||||||
std::vector< Ref<ResultPoint> > resultPoints(2);
|
std::vector< Ref<ResultPoint> > resultPoints(2);
|
||||||
Ref<OneDResultPoint> resultPoint1(new OneDResultPoint(left, (float) rowNumber));
|
Ref<OneDResultPoint> resultPoint1(
|
||||||
Ref<OneDResultPoint> resultPoint2(new OneDResultPoint(right, (float) rowNumber));
|
new OneDResultPoint(left, (float) rowNumber));
|
||||||
|
Ref<OneDResultPoint> resultPoint2(
|
||||||
|
new OneDResultPoint(right, (float) rowNumber));
|
||||||
resultPoints[0] = resultPoint1;
|
resultPoints[0] = resultPoint1;
|
||||||
resultPoints[1] = resultPoint2;
|
resultPoints[1] = resultPoint2;
|
||||||
|
|
||||||
|
@ -172,7 +178,8 @@ namespace zxing {
|
||||||
|
|
||||||
delete [] start;
|
delete [] start;
|
||||||
|
|
||||||
Ref<Result> res(new Result(resultString, resultBytes, resultPoints, BarcodeFormat_CODE_39));
|
Ref<Result> res(new Result(
|
||||||
|
resultString, resultBytes, resultPoints, BarcodeFormat_CODE_39));
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -203,8 +210,11 @@ namespace zxing {
|
||||||
} else {
|
} else {
|
||||||
if (counterPosition == patternLength - 1) {
|
if (counterPosition == patternLength - 1) {
|
||||||
if (toNarrowWidePattern(counters, countersLen) == ASTERISK_ENCODING) {
|
if (toNarrowWidePattern(counters, countersLen) == ASTERISK_ENCODING) {
|
||||||
// Look for whitespace before start pattern, >= 50% of width of start pattern
|
// Look for whitespace before start pattern, >= 50% of width of
|
||||||
if (row->isRange(fmaxl(0, patternStart - (i - patternStart) / 2), patternStart, false)) {
|
// start pattern.
|
||||||
|
long double longPatternOffset =
|
||||||
|
fmaxl(0, patternStart - (i - patternStart) / 2);
|
||||||
|
if (row->isRange(longPatternOffset, patternStart, false)) {
|
||||||
int* resultValue = new int[2];
|
int* resultValue = new int[2];
|
||||||
resultValue[0] = patternStart;
|
resultValue[0] = patternStart;
|
||||||
resultValue[1] = i;
|
resultValue[1] = i;
|
||||||
|
@ -231,8 +241,8 @@ namespace zxing {
|
||||||
throw ReaderException("");
|
throw ReaderException("");
|
||||||
}
|
}
|
||||||
|
|
||||||
// For efficiency, returns -1 on failure. Not throwing here saved as many as 700 exceptions
|
// For efficiency, returns -1 on failure. Not throwing here saved as many as
|
||||||
// per image when using some of our blackbox images.
|
// 700 exceptions per image when using some of our blackbox images.
|
||||||
int Code39Reader::toNarrowWidePattern(int counters[], int countersLen){
|
int Code39Reader::toNarrowWidePattern(int counters[], int countersLen){
|
||||||
int numCounters = countersLen;
|
int numCounters = countersLen;
|
||||||
int maxNarrowCounter = 0;
|
int maxNarrowCounter = 0;
|
||||||
|
@ -265,7 +275,8 @@ namespace zxing {
|
||||||
int counter = counters[i];
|
int counter = counters[i];
|
||||||
if (counters[i] > maxNarrowCounter) {
|
if (counters[i] > maxNarrowCounter) {
|
||||||
wideCounters--;
|
wideCounters--;
|
||||||
// totalWideCountersWidth = 3 * average, so this checks if counter >= 3/2 * average
|
// totalWideCountersWidth = 3 * average, so this checks if
|
||||||
|
// counter >= 3/2 * average.
|
||||||
if ((counter << 1) >= totalWideCountersWidth) {
|
if ((counter << 1) >= totalWideCountersWidth) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -342,5 +353,6 @@ namespace zxing {
|
||||||
Ref<String> decoded(new String(tmpDecoded));
|
Ref<String> decoded(new String(tmpDecoded));
|
||||||
return decoded;
|
return decoded;
|
||||||
}
|
}
|
||||||
}
|
} // namespace oned
|
||||||
}
|
} // namespace zxing
|
||||||
|
|
||||||
|
|
|
@ -42,6 +42,7 @@
|
||||||
IBOutlet UIButton *messageHelpButton;
|
IBOutlet UIButton *messageHelpButton;
|
||||||
IBOutlet ScannedImageView *imageView;
|
IBOutlet ScannedImageView *imageView;
|
||||||
IBOutlet UIToolbar *toolbar;
|
IBOutlet UIToolbar *toolbar;
|
||||||
|
UIImagePickerController *picker;
|
||||||
|
|
||||||
Decoder *decoder;
|
Decoder *decoder;
|
||||||
ParsedResult *result;
|
ParsedResult *result;
|
||||||
|
@ -60,6 +61,7 @@
|
||||||
@property (nonatomic, retain) UITextView *messageTextView;
|
@property (nonatomic, retain) UITextView *messageTextView;
|
||||||
@property (nonatomic, retain) UIButton *messageHelpButton;
|
@property (nonatomic, retain) UIButton *messageHelpButton;
|
||||||
@property (nonatomic, retain) ScannedImageView *imageView;
|
@property (nonatomic, retain) ScannedImageView *imageView;
|
||||||
|
@property (nonatomic, retain) UIImagePickerController *picker;
|
||||||
@property (nonatomic, retain) UIToolbar *toolbar;
|
@property (nonatomic, retain) UIToolbar *toolbar;
|
||||||
|
|
||||||
@property (nonatomic, retain) Decoder *decoder;
|
@property (nonatomic, retain) Decoder *decoder;
|
||||||
|
@ -86,8 +88,7 @@
|
||||||
/* UIImagePickerControllerDelegate methods */
|
/* UIImagePickerControllerDelegate methods */
|
||||||
|
|
||||||
- (void)imagePickerController:(UIImagePickerController *)picker
|
- (void)imagePickerController:(UIImagePickerController *)picker
|
||||||
didFinishPickingImage:(UIImage *)image
|
didFinishPickingMediaWithInfo:(NSDictionary *)info;
|
||||||
editingInfo:(NSDictionary *)editingInfo;
|
|
||||||
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker;
|
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker;
|
||||||
|
|
||||||
/* UINavigationControllerDelegate methods */
|
/* UINavigationControllerDelegate methods */
|
||||||
|
|
|
@ -32,6 +32,24 @@
|
||||||
#import "Scan.h"
|
#import "Scan.h"
|
||||||
#import "TwoDDecoderResult.h"
|
#import "TwoDDecoderResult.h"
|
||||||
|
|
||||||
|
// Michael Jurewitz, Dec 16, 2009 6:32 PM writes:
|
||||||
|
// https://devforums.apple.com/message/149553
|
||||||
|
// Notice Regarding UIGetScreenImage()
|
||||||
|
// After carefully considering the issue, Apple is now allowing applications to
|
||||||
|
// use the function UIGetScreenImage() to programmatically capture the current
|
||||||
|
// screen contents.
|
||||||
|
// Note that a future release of iPhone OS may provide a public API equivalent
|
||||||
|
// of this functionality. At such time, all applications using
|
||||||
|
// UIGetScreenImage() will be required to adopt the public API.
|
||||||
|
CGImageRef MyCGImageCopyScreenContents(void) {
|
||||||
|
extern CGImageRef UIGetScreenImage(void);
|
||||||
|
return UIGetScreenImage(); /* already retained */
|
||||||
|
}
|
||||||
|
|
||||||
|
@interface DecoderViewController()
|
||||||
|
- (void)takeScreenshot;
|
||||||
|
@end
|
||||||
|
|
||||||
@implementation DecoderViewController
|
@implementation DecoderViewController
|
||||||
|
|
||||||
@synthesize cameraBarItem;
|
@synthesize cameraBarItem;
|
||||||
|
@ -44,6 +62,7 @@
|
||||||
@synthesize messageTextView;
|
@synthesize messageTextView;
|
||||||
@synthesize messageHelpButton;
|
@synthesize messageHelpButton;
|
||||||
@synthesize imageView;
|
@synthesize imageView;
|
||||||
|
@synthesize picker;
|
||||||
@synthesize toolbar;
|
@synthesize toolbar;
|
||||||
|
|
||||||
@synthesize decoder;
|
@synthesize decoder;
|
||||||
|
@ -55,7 +74,8 @@
|
||||||
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
|
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
|
||||||
if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
|
if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
|
||||||
// Initialization code
|
// Initialization code
|
||||||
self.title = NSLocalizedString(@"DecoderViewController AppTitle", @"Barcode Scanner");
|
self.title =
|
||||||
|
NSLocalizedString(@"DecoderViewController AppTitle", @"Barcode Scanner");
|
||||||
|
|
||||||
Decoder *d = [[Decoder alloc] init];
|
Decoder *d = [[Decoder alloc] init];
|
||||||
self.decoder = d;
|
self.decoder = d;
|
||||||
|
@ -86,7 +106,8 @@
|
||||||
target:self
|
target:self
|
||||||
onSuccess:@selector(messageReady:)
|
onSuccess:@selector(messageReady:)
|
||||||
onFailure:@selector(messageFailed:)];
|
onFailure:@selector(messageFailed:)];
|
||||||
hintsController.title = NSLocalizedString(@"DecoderViewController Hints MessageViewController title", @"Hints");
|
hintsController.title =
|
||||||
|
NSLocalizedString(@"DecoderViewController Hints MessageViewController title", @"Hints");
|
||||||
[hintsController view];
|
[hintsController view];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -98,7 +119,8 @@
|
||||||
target:self
|
target:self
|
||||||
onSuccess:@selector(messageReady:)
|
onSuccess:@selector(messageReady:)
|
||||||
onFailure:@selector(messageFailed:)];
|
onFailure:@selector(messageFailed:)];
|
||||||
aboutController.title = NSLocalizedString(@"DecoderViewController About MessageViewController title", @"About");
|
aboutController.title =
|
||||||
|
NSLocalizedString(@"DecoderViewController About MessageViewController title", @"About");
|
||||||
[aboutController view];
|
[aboutController view];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -114,7 +136,8 @@
|
||||||
self.result = nil;
|
self.result = nil;
|
||||||
[self clearImageView];
|
[self clearImageView];
|
||||||
[self updateToolbar];
|
[self updateToolbar];
|
||||||
[self showMessage:NSLocalizedString(@"DecoderViewController take or choose picture", @"Please take or choose a picture containing a barcode") helpButton:YES];
|
[self showMessage:NSLocalizedString(@"DecoderViewController take or choose picture",
|
||||||
|
@"Please take or choose a picture containing a barcode") helpButton:YES];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Implement loadView if you want to create a view hierarchy programmatically
|
// Implement loadView if you want to create a view hierarchy programmatically
|
||||||
|
@ -199,10 +222,41 @@
|
||||||
|
|
||||||
// Create the Image Picker
|
// Create the Image Picker
|
||||||
if ([UIImagePickerController isSourceTypeAvailable:sourceType]) {
|
if ([UIImagePickerController isSourceTypeAvailable:sourceType]) {
|
||||||
UIImagePickerController* picker = [[UIImagePickerController alloc] init];
|
UIImagePickerController* aPicker =
|
||||||
picker.sourceType = sourceType;
|
[[[UIImagePickerController alloc] init] autorelease];
|
||||||
picker.delegate = self;
|
aPicker.sourceType = sourceType;
|
||||||
picker.allowsImageEditing = YES; // [[NSUserDefaults standardUserDefaults] boolForKey:@"allowEditing"];
|
aPicker.delegate = self;
|
||||||
|
self.picker = aPicker;
|
||||||
|
|
||||||
|
// [[NSUserDefaults standardUserDefaults] boolForKey:@"allowEditing"];
|
||||||
|
BOOL isCamera = (sourceType == UIImagePickerControllerSourceTypeCamera);
|
||||||
|
picker.allowsEditing = !isCamera;
|
||||||
|
if (isCamera) {
|
||||||
|
picker.showsCameraControls = NO;
|
||||||
|
UIButton *cancelButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
|
||||||
|
NSString *cancelString =
|
||||||
|
NSLocalizedString(@"DecoderViewController cancel button title", @"");
|
||||||
|
CGFloat height = [UIFont systemFontSize];
|
||||||
|
CGSize size = [cancelString sizeWithFont:[UIFont systemFontOfSize:height]];
|
||||||
|
[cancelButton setTitle:cancelString forState:UIControlStateNormal];
|
||||||
|
CGRect appFrame = [[UIScreen mainScreen] bounds];
|
||||||
|
static const int kMargin = 10;
|
||||||
|
static const int kInternalXMargin = 10;
|
||||||
|
static const int kInternalYMargin = 10;
|
||||||
|
CGRect frame = CGRectMake(kMargin,
|
||||||
|
appFrame.size.height - (height + 2*kInternalYMargin + kMargin),
|
||||||
|
2*kInternalXMargin + size.width,
|
||||||
|
height + 2*kInternalYMargin);
|
||||||
|
[cancelButton setFrame:frame];
|
||||||
|
[cancelButton addTarget:self
|
||||||
|
action:@selector(cancel:)
|
||||||
|
forControlEvents:UIControlEventTouchUpInside];
|
||||||
|
picker.cameraOverlayView = cancelButton;
|
||||||
|
// The camera takes quite a while to start up. Hence the 2 second delay.
|
||||||
|
[self performSelector:@selector(takeScreenshot)
|
||||||
|
withObject:nil
|
||||||
|
afterDelay:2.0];
|
||||||
|
}
|
||||||
|
|
||||||
// Picker is displayed asynchronously.
|
// Picker is displayed asynchronously.
|
||||||
[self presentModalViewController:picker animated:YES];
|
[self presentModalViewController:picker animated:YES];
|
||||||
|
@ -246,8 +300,9 @@
|
||||||
[savedPhotosBarItem release];
|
[savedPhotosBarItem release];
|
||||||
[archiveBarItem release];
|
[archiveBarItem release];
|
||||||
[toolbar release];
|
[toolbar release];
|
||||||
[actions dealloc];
|
[picker release];
|
||||||
[resultPointViews dealloc];
|
[actions release];
|
||||||
|
[resultPointViews release];
|
||||||
|
|
||||||
[super dealloc];
|
[super dealloc];
|
||||||
}
|
}
|
||||||
|
@ -338,6 +393,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)decoder:(Decoder *)decoder didDecodeImage:(UIImage *)image usingSubset:(UIImage *)subset withResult:(TwoDDecoderResult *)twoDResult {
|
- (void)decoder:(Decoder *)decoder didDecodeImage:(UIImage *)image usingSubset:(UIImage *)subset withResult:(TwoDDecoderResult *)twoDResult {
|
||||||
|
self.picker = nil;
|
||||||
[self presentResultForString:twoDResult.text];
|
[self presentResultForString:twoDResult.text];
|
||||||
|
|
||||||
[self presentResultPoints:twoDResult.points forImage:image usingSubset:subset];
|
[self presentResultPoints:twoDResult.points forImage:image usingSubset:subset];
|
||||||
|
@ -349,8 +405,14 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)decoder:(Decoder *)decoder failedToDecodeImage:(UIImage *)image usingSubset:(UIImage *)subset reason:(NSString *)reason {
|
- (void)decoder:(Decoder *)decoder failedToDecodeImage:(UIImage *)image usingSubset:(UIImage *)subset reason:(NSString *)reason {
|
||||||
|
if (self.picker && UIImagePickerControllerSourceTypeCamera == self.picker.sourceType) {
|
||||||
|
// If we are using the camera, and the user hasn't manually cancelled,
|
||||||
|
// take another snapshot and try to decode it.
|
||||||
|
[self takeScreenshot];
|
||||||
|
} else {
|
||||||
[self showMessage:reason helpButton:YES];
|
[self showMessage:reason helpButton:YES];
|
||||||
[self updateToolbar];
|
[self updateToolbar];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -392,14 +454,37 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)cancel:(id)sender {
|
||||||
|
self.picker = nil;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)takeScreenshot {
|
||||||
|
if (picker) {
|
||||||
|
CGImageRef cgScreen = MyCGImageCopyScreenContents();
|
||||||
|
if (cgScreen) {
|
||||||
|
CGRect croppedFrame = CGRectMake(0, 0, CGImageGetWidth(cgScreen),
|
||||||
|
CGImageGetHeight(cgScreen) - (10+toolbar.bounds.size.height));
|
||||||
|
CGImageRef cgCropped = CGImageCreateWithImageInRect(cgScreen, croppedFrame);
|
||||||
|
if (cgCropped) {
|
||||||
|
UIImage *screenshot = [UIImage imageWithCGImage:cgCropped];
|
||||||
|
CGImageRelease(cgCropped);
|
||||||
|
[self.decoder decodeImage:screenshot];
|
||||||
|
}
|
||||||
|
CGImageRelease(cgScreen);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// UIImagePickerControllerDelegate methods
|
// UIImagePickerControllerDelegate methods
|
||||||
|
|
||||||
- (void)imagePickerController:(UIImagePickerController *)picker
|
- (void)imagePickerController:(UIImagePickerController *)aPicker
|
||||||
didFinishPickingImage:(UIImage *)image
|
didFinishPickingMediaWithInfo:(NSDictionary *)info {
|
||||||
editingInfo:(NSDictionary *)editingInfo
|
UIImage *imageToDecode =
|
||||||
{
|
[info objectForKey:UIImagePickerControllerEditedImage];
|
||||||
UIImage *imageToDecode = image;
|
if (!imageToDecode) {
|
||||||
CGSize size = [image size];
|
imageToDecode = [info objectForKey:UIImagePickerControllerOriginalImage];
|
||||||
|
}
|
||||||
|
CGSize size = [imageToDecode size];
|
||||||
CGRect cropRect = CGRectMake(0.0, 0.0, size.width, size.height);
|
CGRect cropRect = CGRectMake(0.0, 0.0, size.width, size.height);
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
|
@ -407,14 +492,13 @@
|
||||||
#endif
|
#endif
|
||||||
NSString *systemVersion = [[UIDevice currentDevice] systemVersion];
|
NSString *systemVersion = [[UIDevice currentDevice] systemVersion];
|
||||||
|
|
||||||
if (editingInfo) {
|
NSValue *cropRectValue = [info objectForKey:UIImagePickerControllerCropRect];
|
||||||
UIImage *originalImage = [editingInfo objectForKey:UIImagePickerControllerOriginalImage];
|
if (cropRectValue) {
|
||||||
|
UIImage *originalImage = [info objectForKey:UIImagePickerControllerOriginalImage];
|
||||||
if (originalImage) {
|
if (originalImage) {
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
NSLog(@"original image size = (%f, %f)", originalImage.size.width, originalImage.size.height);
|
NSLog(@"original image size = (%f, %f)", originalImage.size.width, originalImage.size.height);
|
||||||
#endif
|
#endif
|
||||||
NSValue *cropRectValue = [editingInfo objectForKey:UIImagePickerControllerCropRect];
|
|
||||||
if (cropRectValue) {
|
|
||||||
cropRect = [cropRectValue CGRectValue];
|
cropRect = [cropRectValue CGRectValue];
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
NSLog(@"crop rect = (%f, %f) x (%f, %f)", CGRectGetMinX(cropRect), CGRectGetMinY(cropRect), CGRectGetWidth(cropRect), CGRectGetHeight(cropRect));
|
NSLog(@"crop rect = (%f, %f) x (%f, %f)", CGRectGetMinX(cropRect), CGRectGetMinY(cropRect), CGRectGetWidth(cropRect), CGRectGetHeight(cropRect));
|
||||||
|
@ -434,21 +518,24 @@
|
||||||
imageToDecode = originalImage;
|
imageToDecode = originalImage;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
[[picker parentViewController] dismissModalViewControllerAnimated:YES];
|
|
||||||
[imageToDecode retain];
|
[imageToDecode retain];
|
||||||
[picker release];
|
self.picker = nil;
|
||||||
[self.decoder decodeImage:imageToDecode cropRect:cropRect];
|
[self.decoder decodeImage:imageToDecode cropRect:cropRect];
|
||||||
[imageToDecode release];
|
[imageToDecode release];
|
||||||
[self updateToolbar];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
|
|
||||||
{
|
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)aPicker {
|
||||||
|
self.picker = nil;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setPicker:(UIImagePickerController *)aPicker {
|
||||||
|
if (picker != aPicker) {
|
||||||
[picker dismissModalViewControllerAnimated:YES];
|
[picker dismissModalViewControllerAnimated:YES];
|
||||||
[picker release];
|
picker = [aPicker retain];
|
||||||
[self updateToolbar];
|
[self updateToolbar];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)navigationController:(UINavigationController *)navigationController
|
- (void)navigationController:(UINavigationController *)navigationController
|
||||||
|
|
|
@ -65,8 +65,8 @@ static NSString *_timeString(NSDate *date) {
|
||||||
@synthesize timeView;
|
@synthesize timeView;
|
||||||
|
|
||||||
|
|
||||||
- (id)initWithFrame:(CGRect)frame reuseIdentifier:(NSString *)reuseIdentifier {
|
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
|
||||||
if ((self = [super initWithFrame:frame reuseIdentifier:reuseIdentifier])) {
|
if ((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])) {
|
||||||
imageView = [[UIImageView alloc] initWithFrame:CGRectZero];
|
imageView = [[UIImageView alloc] initWithFrame:CGRectZero];
|
||||||
imageView.contentMode = UIViewContentModeCenter;
|
imageView.contentMode = UIViewContentModeCenter;
|
||||||
[self.contentView addSubview:imageView];
|
[self.contentView addSubview:imageView];
|
||||||
|
|
|
@ -10,8 +10,8 @@
|
||||||
<p style="font-weight: bold;">
|
<p style="font-weight: bold;">
|
||||||
<img style="width: 128px; height: 128px;" alt="ZXing Project Logo" src="../ZxingLarge.png"></p>
|
<img style="width: 128px; height: 128px;" alt="ZXing Project Logo" src="../ZxingLarge.png"></p>
|
||||||
<h2>Strichcodes</h2>
|
<h2>Strichcodes</h2>
|
||||||
<p>Version 1.0</p>
|
<p>Version 1.1</p>
|
||||||
<p>© 2008 The <a href="http://code.google.com/p/zxing/">ZXing</a>
|
<p>© 2008-2010 The <a href="http://code.google.com/p/zxing/">ZXing</a>
|
||||||
Authors<br>
|
Authors<br>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
|
|
|
@ -1,11 +1,15 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.02">
|
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
|
||||||
<data>
|
<data>
|
||||||
<int key="IBDocument.SystemTarget">512</int>
|
<int key="IBDocument.SystemTarget">768</int>
|
||||||
<string key="IBDocument.SystemVersion">9E17</string>
|
<string key="IBDocument.SystemVersion">10D573</string>
|
||||||
<string key="IBDocument.InterfaceBuilderVersion">670</string>
|
<string key="IBDocument.InterfaceBuilderVersion">762</string>
|
||||||
<string key="IBDocument.AppKitVersion">949.33</string>
|
<string key="IBDocument.AppKitVersion">1038.29</string>
|
||||||
<string key="IBDocument.HIToolboxVersion">352.00</string>
|
<string key="IBDocument.HIToolboxVersion">460.00</string>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||||
|
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||||
|
<string key="NS.object.0">87</string>
|
||||||
|
</object>
|
||||||
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
</object>
|
</object>
|
||||||
|
@ -13,13 +17,24 @@
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSArray" key="dict.sortedKeys" id="0">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableArray" key="dict.values">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<object class="IBProxyObject" id="372490531">
|
<object class="IBProxyObject" id="372490531">
|
||||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||||
|
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBProxyObject" id="711762367">
|
<object class="IBProxyObject" id="711762367">
|
||||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||||
|
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBUIWebView" id="221386056">
|
<object class="IBUIWebView" id="221386056">
|
||||||
<nil key="NSNextResponder"/>
|
<nil key="NSNextResponder"/>
|
||||||
|
@ -31,6 +46,7 @@
|
||||||
</object>
|
</object>
|
||||||
<bool key="IBUIClipsSubviews">YES</bool>
|
<bool key="IBUIClipsSubviews">YES</bool>
|
||||||
<bool key="IBUIMultipleTouchEnabled">YES</bool>
|
<bool key="IBUIMultipleTouchEnabled">YES</bool>
|
||||||
|
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||||
<bool key="IBUIScalesPageToFit">YES</bool>
|
<bool key="IBUIScalesPageToFit">YES</bool>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
@ -51,33 +67,31 @@
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">0</int>
|
<int key="objectID">0</int>
|
||||||
<object class="NSArray" key="object" id="360949347">
|
<reference key="object" ref="0"/>
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
<reference key="children" ref="1000"/>
|
<reference key="children" ref="1000"/>
|
||||||
<nil key="parent"/>
|
<nil key="parent"/>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">-1</int>
|
<int key="objectID">-1</int>
|
||||||
<reference key="object" ref="372490531"/>
|
<reference key="object" ref="372490531"/>
|
||||||
<reference key="parent" ref="360949347"/>
|
<reference key="parent" ref="0"/>
|
||||||
<string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string>
|
<string key="objectName">File's Owner</string>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">-2</int>
|
<int key="objectID">-2</int>
|
||||||
<reference key="object" ref="711762367"/>
|
<reference key="object" ref="711762367"/>
|
||||||
<reference key="parent" ref="360949347"/>
|
<reference key="parent" ref="0"/>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">4</int>
|
<int key="objectID">4</int>
|
||||||
<reference key="object" ref="221386056"/>
|
<reference key="object" ref="221386056"/>
|
||||||
<reference key="parent" ref="360949347"/>
|
<reference key="parent" ref="0"/>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSMutableDictionary" key="flattenedProperties">
|
<object class="NSMutableDictionary" key="flattenedProperties">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<object class="NSMutableArray" key="dict.sortedKeys">
|
<object class="NSArray" key="dict.sortedKeys">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<string>-1.CustomClassName</string>
|
<string>-1.CustomClassName</string>
|
||||||
<string>-2.CustomClassName</string>
|
<string>-2.CustomClassName</string>
|
||||||
|
@ -85,16 +99,14 @@
|
||||||
</object>
|
</object>
|
||||||
<object class="NSMutableArray" key="dict.values">
|
<object class="NSMutableArray" key="dict.values">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<string>HintsViewController</string>
|
<string>MessageViewController</string>
|
||||||
<string>UIResponder</string>
|
<string>UIResponder</string>
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<object class="NSArray" key="dict.sortedKeys">
|
<reference key="dict.sortedKeys" ref="0"/>
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
<object class="NSMutableArray" key="dict.values">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
</object>
|
</object>
|
||||||
|
@ -102,9 +114,7 @@
|
||||||
<nil key="activeLocalization"/>
|
<nil key="activeLocalization"/>
|
||||||
<object class="NSMutableDictionary" key="localizations">
|
<object class="NSMutableDictionary" key="localizations">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<object class="NSArray" key="dict.sortedKeys">
|
<reference key="dict.sortedKeys" ref="0"/>
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
<object class="NSMutableArray" key="dict.values">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
</object>
|
</object>
|
||||||
|
@ -116,17 +126,224 @@
|
||||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
<string key="className">HintsViewController</string>
|
<string key="className">MessageViewController</string>
|
||||||
<string key="superclassName">UIViewController</string>
|
<string key="superclassName">UIViewController</string>
|
||||||
|
<object class="NSMutableDictionary" key="outlets">
|
||||||
|
<string key="NS.key.0">callbackTarget</string>
|
||||||
|
<string key="NS.object.0">id</string>
|
||||||
|
</object>
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
<string key="majorKey">IBProjectSource</string>
|
<string key="majorKey">IBProjectSource</string>
|
||||||
<string key="minorKey">Classes/HintsViewController.h</string>
|
<string key="minorKey">Classes/MessageViewController.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSError.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSNetServices.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSPort.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSStream.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSXMLParser.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="28199712">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">UIResponder</string>
|
||||||
|
<string key="superclassName">NSObject</string>
|
||||||
|
<reference key="sourceIdentifier" ref="28199712"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">UISearchBar</string>
|
||||||
|
<string key="superclassName">UIView</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">UISearchDisplayController</string>
|
||||||
|
<string key="superclassName">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">UIView</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">UIView</string>
|
||||||
|
<string key="superclassName">UIResponder</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UIView.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">UIViewController</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">UIViewController</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">UIViewController</string>
|
||||||
|
<string key="superclassName">UIResponder</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">UIWebView</string>
|
||||||
|
<string key="superclassName">UIView</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UIWebView.h</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<int key="IBDocument.localizationMode">0</int>
|
<int key="IBDocument.localizationMode">0</int>
|
||||||
<nil key="IBDocument.LastKnownRelativeProjectPath"/>
|
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
|
||||||
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
|
||||||
|
<integer value="768" key="NS.object.0"/>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
||||||
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
|
||||||
|
<integer value="784" key="NS.object.0"/>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
||||||
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
|
||||||
|
<integer value="3000" key="NS.object.0"/>
|
||||||
|
</object>
|
||||||
|
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||||
|
<string key="IBDocument.LastKnownRelativeProjectPath">../ZXing.xcodeproj</string>
|
||||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||||
|
<string key="IBCocoaTouchPluginVersion">87</string>
|
||||||
</data>
|
</data>
|
||||||
</archive>
|
</archive>
|
||||||
|
|
|
@ -10,8 +10,8 @@
|
||||||
<p style="font-weight: bold;">
|
<p style="font-weight: bold;">
|
||||||
<img style="width: 128px; height: 128px;" alt="ZXing Project Logo" src="../ZxingLarge.png"></p>
|
<img style="width: 128px; height: 128px;" alt="ZXing Project Logo" src="../ZxingLarge.png"></p>
|
||||||
<h2>Barcodes</h2>
|
<h2>Barcodes</h2>
|
||||||
<p>Version 1.0</p>
|
<p>Version 1.1</p>
|
||||||
<p>© 2008 The <a href="http://code.google.com/p/zxing/">ZXing</a>
|
<p>© 2008-2010 The <a href="http://code.google.com/p/zxing/">ZXing</a>
|
||||||
Authors<br>
|
Authors<br>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
|
|
|
@ -1,11 +1,15 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.02">
|
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
|
||||||
<data>
|
<data>
|
||||||
<int key="IBDocument.SystemTarget">512</int>
|
<int key="IBDocument.SystemTarget">768</int>
|
||||||
<string key="IBDocument.SystemVersion">9E17</string>
|
<string key="IBDocument.SystemVersion">10D573</string>
|
||||||
<string key="IBDocument.InterfaceBuilderVersion">670</string>
|
<string key="IBDocument.InterfaceBuilderVersion">762</string>
|
||||||
<string key="IBDocument.AppKitVersion">949.33</string>
|
<string key="IBDocument.AppKitVersion">1038.29</string>
|
||||||
<string key="IBDocument.HIToolboxVersion">352.00</string>
|
<string key="IBDocument.HIToolboxVersion">460.00</string>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||||
|
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||||
|
<string key="NS.object.0">87</string>
|
||||||
|
</object>
|
||||||
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
</object>
|
</object>
|
||||||
|
@ -13,13 +17,24 @@
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSArray" key="dict.sortedKeys" id="0">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableArray" key="dict.values">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<object class="IBProxyObject" id="372490531">
|
<object class="IBProxyObject" id="372490531">
|
||||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||||
|
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBProxyObject" id="711762367">
|
<object class="IBProxyObject" id="711762367">
|
||||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||||
|
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBUIWebView" id="221386056">
|
<object class="IBUIWebView" id="221386056">
|
||||||
<nil key="NSNextResponder"/>
|
<nil key="NSNextResponder"/>
|
||||||
|
@ -31,6 +46,7 @@
|
||||||
</object>
|
</object>
|
||||||
<bool key="IBUIClipsSubviews">YES</bool>
|
<bool key="IBUIClipsSubviews">YES</bool>
|
||||||
<bool key="IBUIMultipleTouchEnabled">YES</bool>
|
<bool key="IBUIMultipleTouchEnabled">YES</bool>
|
||||||
|
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||||
<bool key="IBUIScalesPageToFit">YES</bool>
|
<bool key="IBUIScalesPageToFit">YES</bool>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
@ -43,7 +59,7 @@
|
||||||
<reference key="source" ref="372490531"/>
|
<reference key="source" ref="372490531"/>
|
||||||
<reference key="destination" ref="221386056"/>
|
<reference key="destination" ref="221386056"/>
|
||||||
</object>
|
</object>
|
||||||
<int key="connectionID">5</int>
|
<int key="connectionID">6</int>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||||
|
@ -51,33 +67,31 @@
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">0</int>
|
<int key="objectID">0</int>
|
||||||
<object class="NSArray" key="object" id="360949347">
|
<reference key="object" ref="0"/>
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
<reference key="children" ref="1000"/>
|
<reference key="children" ref="1000"/>
|
||||||
<nil key="parent"/>
|
<nil key="parent"/>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">-1</int>
|
<int key="objectID">-1</int>
|
||||||
<reference key="object" ref="372490531"/>
|
<reference key="object" ref="372490531"/>
|
||||||
<reference key="parent" ref="360949347"/>
|
<reference key="parent" ref="0"/>
|
||||||
<string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string>
|
<string key="objectName">File's Owner</string>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">-2</int>
|
<int key="objectID">-2</int>
|
||||||
<reference key="object" ref="711762367"/>
|
<reference key="object" ref="711762367"/>
|
||||||
<reference key="parent" ref="360949347"/>
|
<reference key="parent" ref="0"/>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">4</int>
|
<int key="objectID">4</int>
|
||||||
<reference key="object" ref="221386056"/>
|
<reference key="object" ref="221386056"/>
|
||||||
<reference key="parent" ref="360949347"/>
|
<reference key="parent" ref="0"/>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSMutableDictionary" key="flattenedProperties">
|
<object class="NSMutableDictionary" key="flattenedProperties">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<object class="NSMutableArray" key="dict.sortedKeys">
|
<object class="NSArray" key="dict.sortedKeys">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<string>-1.CustomClassName</string>
|
<string>-1.CustomClassName</string>
|
||||||
<string>-2.CustomClassName</string>
|
<string>-2.CustomClassName</string>
|
||||||
|
@ -85,16 +99,14 @@
|
||||||
</object>
|
</object>
|
||||||
<object class="NSMutableArray" key="dict.values">
|
<object class="NSMutableArray" key="dict.values">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<string>HintsViewController</string>
|
<string>MessageViewController</string>
|
||||||
<string>UIResponder</string>
|
<string>UIResponder</string>
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<object class="NSArray" key="dict.sortedKeys">
|
<reference key="dict.sortedKeys" ref="0"/>
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
<object class="NSMutableArray" key="dict.values">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
</object>
|
</object>
|
||||||
|
@ -102,31 +114,236 @@
|
||||||
<nil key="activeLocalization"/>
|
<nil key="activeLocalization"/>
|
||||||
<object class="NSMutableDictionary" key="localizations">
|
<object class="NSMutableDictionary" key="localizations">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<object class="NSArray" key="dict.sortedKeys">
|
<reference key="dict.sortedKeys" ref="0"/>
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
<object class="NSMutableArray" key="dict.values">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<nil key="sourceID"/>
|
<nil key="sourceID"/>
|
||||||
<int key="maxID">5</int>
|
<int key="maxID">6</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
<string key="className">HintsViewController</string>
|
<string key="className">MessageViewController</string>
|
||||||
<string key="superclassName">UIViewController</string>
|
<string key="superclassName">UIViewController</string>
|
||||||
|
<object class="NSMutableDictionary" key="outlets">
|
||||||
|
<string key="NS.key.0">callbackTarget</string>
|
||||||
|
<string key="NS.object.0">id</string>
|
||||||
|
</object>
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
<string key="majorKey">IBProjectSource</string>
|
<string key="majorKey">IBProjectSource</string>
|
||||||
<string key="minorKey">Classes/HintsViewController.h</string>
|
<string key="minorKey">Classes/MessageViewController.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSError.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSNetServices.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSPort.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSStream.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSXMLParser.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="25161611">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">UIResponder</string>
|
||||||
|
<string key="superclassName">NSObject</string>
|
||||||
|
<reference key="sourceIdentifier" ref="25161611"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">UISearchBar</string>
|
||||||
|
<string key="superclassName">UIView</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">UISearchDisplayController</string>
|
||||||
|
<string key="superclassName">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">UIView</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">UIView</string>
|
||||||
|
<string key="superclassName">UIResponder</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UIView.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">UIViewController</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">UIViewController</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">UIViewController</string>
|
||||||
|
<string key="superclassName">UIResponder</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">UIWebView</string>
|
||||||
|
<string key="superclassName">UIView</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UIWebView.h</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<int key="IBDocument.localizationMode">0</int>
|
<int key="IBDocument.localizationMode">0</int>
|
||||||
<nil key="IBDocument.LastKnownRelativeProjectPath"/>
|
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
|
||||||
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
|
||||||
|
<integer value="768" key="NS.object.0"/>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
||||||
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
|
||||||
|
<integer value="784" key="NS.object.0"/>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
||||||
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
|
||||||
|
<integer value="3000" key="NS.object.0"/>
|
||||||
|
</object>
|
||||||
|
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||||
|
<string key="IBDocument.LastKnownRelativeProjectPath">../ZXing.xcodeproj</string>
|
||||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||||
|
<string key="IBCocoaTouchPluginVersion">87</string>
|
||||||
</data>
|
</data>
|
||||||
</archive>
|
</archive>
|
||||||
|
|
|
@ -10,8 +10,8 @@
|
||||||
<p style="font-weight: bold;">
|
<p style="font-weight: bold;">
|
||||||
<img style="width: 128px; height: 128px;" alt="ZXing Project Logo" src="../ZxingLarge.png"></p>
|
<img style="width: 128px; height: 128px;" alt="ZXing Project Logo" src="../ZxingLarge.png"></p>
|
||||||
<h2>Streckkoder</h2>
|
<h2>Streckkoder</h2>
|
||||||
<p>Version 1.0</p>
|
<p>Version 1.1</p>
|
||||||
<p>© 2008 The <a href="http://code.google.com/p/zxing/">ZXing</a>
|
<p>© 2008-2010 The <a href="http://code.google.com/p/zxing/">ZXing</a>
|
||||||
Authors<br>
|
Authors<br>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
|
|
|
@ -1,11 +1,15 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.02">
|
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
|
||||||
<data>
|
<data>
|
||||||
<int key="IBDocument.SystemTarget">512</int>
|
<int key="IBDocument.SystemTarget">768</int>
|
||||||
<string key="IBDocument.SystemVersion">9E17</string>
|
<string key="IBDocument.SystemVersion">10D573</string>
|
||||||
<string key="IBDocument.InterfaceBuilderVersion">670</string>
|
<string key="IBDocument.InterfaceBuilderVersion">762</string>
|
||||||
<string key="IBDocument.AppKitVersion">949.33</string>
|
<string key="IBDocument.AppKitVersion">1038.29</string>
|
||||||
<string key="IBDocument.HIToolboxVersion">352.00</string>
|
<string key="IBDocument.HIToolboxVersion">460.00</string>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||||
|
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||||
|
<string key="NS.object.0">87</string>
|
||||||
|
</object>
|
||||||
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
</object>
|
</object>
|
||||||
|
@ -13,13 +17,24 @@
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSArray" key="dict.sortedKeys" id="0">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableArray" key="dict.values">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<object class="IBProxyObject" id="372490531">
|
<object class="IBProxyObject" id="372490531">
|
||||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||||
|
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBProxyObject" id="711762367">
|
<object class="IBProxyObject" id="711762367">
|
||||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||||
|
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBUIWebView" id="221386056">
|
<object class="IBUIWebView" id="221386056">
|
||||||
<nil key="NSNextResponder"/>
|
<nil key="NSNextResponder"/>
|
||||||
|
@ -31,6 +46,7 @@
|
||||||
</object>
|
</object>
|
||||||
<bool key="IBUIClipsSubviews">YES</bool>
|
<bool key="IBUIClipsSubviews">YES</bool>
|
||||||
<bool key="IBUIMultipleTouchEnabled">YES</bool>
|
<bool key="IBUIMultipleTouchEnabled">YES</bool>
|
||||||
|
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||||
<bool key="IBUIScalesPageToFit">YES</bool>
|
<bool key="IBUIScalesPageToFit">YES</bool>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
@ -51,33 +67,31 @@
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">0</int>
|
<int key="objectID">0</int>
|
||||||
<object class="NSArray" key="object" id="360949347">
|
<reference key="object" ref="0"/>
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
<reference key="children" ref="1000"/>
|
<reference key="children" ref="1000"/>
|
||||||
<nil key="parent"/>
|
<nil key="parent"/>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">-1</int>
|
<int key="objectID">-1</int>
|
||||||
<reference key="object" ref="372490531"/>
|
<reference key="object" ref="372490531"/>
|
||||||
<reference key="parent" ref="360949347"/>
|
<reference key="parent" ref="0"/>
|
||||||
<string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string>
|
<string key="objectName">File's Owner</string>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">-2</int>
|
<int key="objectID">-2</int>
|
||||||
<reference key="object" ref="711762367"/>
|
<reference key="object" ref="711762367"/>
|
||||||
<reference key="parent" ref="360949347"/>
|
<reference key="parent" ref="0"/>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">4</int>
|
<int key="objectID">4</int>
|
||||||
<reference key="object" ref="221386056"/>
|
<reference key="object" ref="221386056"/>
|
||||||
<reference key="parent" ref="360949347"/>
|
<reference key="parent" ref="0"/>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSMutableDictionary" key="flattenedProperties">
|
<object class="NSMutableDictionary" key="flattenedProperties">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<object class="NSMutableArray" key="dict.sortedKeys">
|
<object class="NSArray" key="dict.sortedKeys">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<string>-1.CustomClassName</string>
|
<string>-1.CustomClassName</string>
|
||||||
<string>-2.CustomClassName</string>
|
<string>-2.CustomClassName</string>
|
||||||
|
@ -85,16 +99,14 @@
|
||||||
</object>
|
</object>
|
||||||
<object class="NSMutableArray" key="dict.values">
|
<object class="NSMutableArray" key="dict.values">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<string>HintsViewController</string>
|
<string>MessageViewController</string>
|
||||||
<string>UIResponder</string>
|
<string>UIResponder</string>
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<object class="NSArray" key="dict.sortedKeys">
|
<reference key="dict.sortedKeys" ref="0"/>
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
<object class="NSMutableArray" key="dict.values">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
</object>
|
</object>
|
||||||
|
@ -102,9 +114,7 @@
|
||||||
<nil key="activeLocalization"/>
|
<nil key="activeLocalization"/>
|
||||||
<object class="NSMutableDictionary" key="localizations">
|
<object class="NSMutableDictionary" key="localizations">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<object class="NSArray" key="dict.sortedKeys">
|
<reference key="dict.sortedKeys" ref="0"/>
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
<object class="NSMutableArray" key="dict.values">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
</object>
|
</object>
|
||||||
|
@ -116,17 +126,224 @@
|
||||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
<string key="className">HintsViewController</string>
|
<string key="className">MessageViewController</string>
|
||||||
<string key="superclassName">UIViewController</string>
|
<string key="superclassName">UIViewController</string>
|
||||||
|
<object class="NSMutableDictionary" key="outlets">
|
||||||
|
<string key="NS.key.0">callbackTarget</string>
|
||||||
|
<string key="NS.object.0">id</string>
|
||||||
|
</object>
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
<string key="majorKey">IBProjectSource</string>
|
<string key="majorKey">IBProjectSource</string>
|
||||||
<string key="minorKey">Classes/HintsViewController.h</string>
|
<string key="minorKey">Classes/MessageViewController.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSError.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSNetServices.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSPort.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSStream.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSXMLParser.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="63869399">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">UIResponder</string>
|
||||||
|
<string key="superclassName">NSObject</string>
|
||||||
|
<reference key="sourceIdentifier" ref="63869399"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">UISearchBar</string>
|
||||||
|
<string key="superclassName">UIView</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">UISearchDisplayController</string>
|
||||||
|
<string key="superclassName">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">UIView</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">UIView</string>
|
||||||
|
<string key="superclassName">UIResponder</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UIView.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">UIViewController</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">UIViewController</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">UIViewController</string>
|
||||||
|
<string key="superclassName">UIResponder</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">UIWebView</string>
|
||||||
|
<string key="superclassName">UIView</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">UIKit.framework/Headers/UIWebView.h</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<int key="IBDocument.localizationMode">0</int>
|
<int key="IBDocument.localizationMode">0</int>
|
||||||
<nil key="IBDocument.LastKnownRelativeProjectPath"/>
|
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
|
||||||
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
|
||||||
|
<integer value="768" key="NS.object.0"/>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
||||||
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
|
||||||
|
<integer value="784" key="NS.object.0"/>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
||||||
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
|
||||||
|
<integer value="3000" key="NS.object.0"/>
|
||||||
|
</object>
|
||||||
|
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||||
|
<string key="IBDocument.LastKnownRelativeProjectPath">../ZXing.xcodeproj</string>
|
||||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||||
|
<string key="IBCocoaTouchPluginVersion">87</string>
|
||||||
</data>
|
</data>
|
||||||
</archive>
|
</archive>
|
||||||
|
|
Loading…
Reference in a new issue