From ab6b4908f4cd77306467e861f31b63dff797a116 Mon Sep 17 00:00:00 2001 From: rpechayr Date: Sun, 14 Nov 2010 17:18:29 +0000 Subject: [PATCH] [iphone] first version of new Barcodes zxing app git-svn-id: https://zxing.googlecode.com/svn/trunk@1649 59b500cc-1b3d-0410-9834-0bbf25fbcc57 --- iphone/Barcodes/Barcodes-Info.plist | 30 + .../Barcodes.xcodeproj/project.pbxproj | 502 +++++++++++++++++ iphone/Barcodes/Barcodes_Prefix.pch | 8 + iphone/Barcodes/Classes/BarcodesAppDelegate.h | 21 + iphone/Barcodes/Classes/BarcodesAppDelegate.m | 84 +++ .../Barcodes/Classes/MessageViewController.h | 41 ++ .../Barcodes/Classes/MessageViewController.m | 108 ++++ .../Barcodes/Classes/ZXMainViewController.h | 30 + .../Barcodes/Classes/ZXMainViewController.mm | 151 +++++ .../Barcodes/Classes/ZXMainViewController.xib | 522 ++++++++++++++++++ iphone/Barcodes/MainWindow.xib | 456 +++++++++++++++ iphone/Barcodes/beep-beep.aiff | Bin 0 -> 66046 bytes iphone/Barcodes/de.lproj/About.html | 23 + iphone/Barcodes/de.lproj/DecoderView.xib | 450 +++++++++++++++ iphone/Barcodes/de.lproj/Hints.html | 14 + iphone/Barcodes/de.lproj/InfoPlist.strings | 1 + iphone/Barcodes/de.lproj/Localizable.strings | 141 +++++ iphone/Barcodes/de.lproj/MainWindow.xib | 171 ++++++ iphone/Barcodes/de.lproj/Message.xib | 349 ++++++++++++ iphone/Barcodes/en.lproj/About.html | 23 + iphone/Barcodes/en.lproj/DecoderView.xib | 450 +++++++++++++++ iphone/Barcodes/en.lproj/Hints.html | 17 + iphone/Barcodes/en.lproj/InfoPlist.strings | 1 + iphone/Barcodes/en.lproj/Localizable.strings | 141 +++++ iphone/Barcodes/en.lproj/MainWindow.xib | 171 ++++++ iphone/Barcodes/en.lproj/Message.xib | 349 ++++++++++++ iphone/Barcodes/images/ZxingLarge.png | Bin 0 -> 15022 bytes iphone/Barcodes/images/icon.png | Bin 0 -> 3713 bytes iphone/Barcodes/images/icon@2x.png | Bin 0 -> 10959 bytes iphone/Barcodes/images/zxing-512.tiff | Bin 0 -> 47058 bytes iphone/Barcodes/main.mm | 17 + iphone/Barcodes/sv.lproj/About.html | 23 + iphone/Barcodes/sv.lproj/DecoderView.xib | 450 +++++++++++++++ iphone/Barcodes/sv.lproj/Hints.html | 14 + iphone/Barcodes/sv.lproj/InfoPlist.strings | 1 + iphone/Barcodes/sv.lproj/Localizable.strings | 141 +++++ iphone/Barcodes/sv.lproj/MainWindow.xib | 171 ++++++ iphone/Barcodes/sv.lproj/Message.xib | 349 ++++++++++++ 38 files changed, 5420 insertions(+) create mode 100644 iphone/Barcodes/Barcodes-Info.plist create mode 100755 iphone/Barcodes/Barcodes.xcodeproj/project.pbxproj create mode 100644 iphone/Barcodes/Barcodes_Prefix.pch create mode 100644 iphone/Barcodes/Classes/BarcodesAppDelegate.h create mode 100644 iphone/Barcodes/Classes/BarcodesAppDelegate.m create mode 100644 iphone/Barcodes/Classes/MessageViewController.h create mode 100644 iphone/Barcodes/Classes/MessageViewController.m create mode 100644 iphone/Barcodes/Classes/ZXMainViewController.h create mode 100644 iphone/Barcodes/Classes/ZXMainViewController.mm create mode 100644 iphone/Barcodes/Classes/ZXMainViewController.xib create mode 100644 iphone/Barcodes/MainWindow.xib create mode 100644 iphone/Barcodes/beep-beep.aiff create mode 100644 iphone/Barcodes/de.lproj/About.html create mode 100644 iphone/Barcodes/de.lproj/DecoderView.xib create mode 100644 iphone/Barcodes/de.lproj/Hints.html create mode 100644 iphone/Barcodes/de.lproj/InfoPlist.strings create mode 100644 iphone/Barcodes/de.lproj/Localizable.strings create mode 100644 iphone/Barcodes/de.lproj/MainWindow.xib create mode 100644 iphone/Barcodes/de.lproj/Message.xib create mode 100644 iphone/Barcodes/en.lproj/About.html create mode 100644 iphone/Barcodes/en.lproj/DecoderView.xib create mode 100644 iphone/Barcodes/en.lproj/Hints.html create mode 100644 iphone/Barcodes/en.lproj/InfoPlist.strings create mode 100644 iphone/Barcodes/en.lproj/Localizable.strings create mode 100644 iphone/Barcodes/en.lproj/MainWindow.xib create mode 100644 iphone/Barcodes/en.lproj/Message.xib create mode 100644 iphone/Barcodes/images/ZxingLarge.png create mode 100644 iphone/Barcodes/images/icon.png create mode 100644 iphone/Barcodes/images/icon@2x.png create mode 100644 iphone/Barcodes/images/zxing-512.tiff create mode 100644 iphone/Barcodes/main.mm create mode 100644 iphone/Barcodes/sv.lproj/About.html create mode 100644 iphone/Barcodes/sv.lproj/DecoderView.xib create mode 100644 iphone/Barcodes/sv.lproj/Hints.html create mode 100644 iphone/Barcodes/sv.lproj/InfoPlist.strings create mode 100644 iphone/Barcodes/sv.lproj/Localizable.strings create mode 100644 iphone/Barcodes/sv.lproj/MainWindow.xib create mode 100644 iphone/Barcodes/sv.lproj/Message.xib diff --git a/iphone/Barcodes/Barcodes-Info.plist b/iphone/Barcodes/Barcodes-Info.plist new file mode 100644 index 000000000..1210ba481 --- /dev/null +++ b/iphone/Barcodes/Barcodes-Info.plist @@ -0,0 +1,30 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.rpechayr.barcodes + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + NSMainNibFile + MainWindow + + diff --git a/iphone/Barcodes/Barcodes.xcodeproj/project.pbxproj b/iphone/Barcodes/Barcodes.xcodeproj/project.pbxproj new file mode 100755 index 000000000..905ad23ee --- /dev/null +++ b/iphone/Barcodes/Barcodes.xcodeproj/project.pbxproj @@ -0,0 +1,502 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 1D3623260D0F684500981E51 /* BarcodesAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* BarcodesAppDelegate.m */; }; + 1D60589B0D05DD56006BFB54 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.mm */; }; + 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; + 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; }; + 1FB4301D128FFDCF002D63E8 /* libZXingWidget.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FB4301C128FFDCD002D63E8 /* libZXingWidget.a */; }; + 1FB43030128FFF56002D63E8 /* icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 1FB4302E128FFF56002D63E8 /* icon.png */; }; + 1FB43031128FFF56002D63E8 /* icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1FB4302F128FFF56002D63E8 /* icon@2x.png */; }; + 1FB430371290002C002D63E8 /* ZXMainViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1FB430351290002C002D63E8 /* ZXMainViewController.mm */; }; + 1FB430381290002C002D63E8 /* ZXMainViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1FB430361290002C002D63E8 /* ZXMainViewController.xib */; }; + 1FB4303B129000B4002D63E8 /* ZxingLarge.png in Resources */ = {isa = PBXBuildFile; fileRef = 1FB4303A129000B4002D63E8 /* ZxingLarge.png */; }; + 1FB43083129006DC002D63E8 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FB43082129006DC002D63E8 /* AudioToolbox.framework */; }; + 1FB43087129006E6002D63E8 /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FB43086129006E6002D63E8 /* libiconv.dylib */; }; + 1FB430AE12900742002D63E8 /* beep-beep.aiff in Resources */ = {isa = PBXBuildFile; fileRef = 1FB430AD12900742002D63E8 /* beep-beep.aiff */; }; + 1FB430F612900879002D63E8 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FB430F512900879002D63E8 /* AVFoundation.framework */; }; + 1FB430FC129008A2002D63E8 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FB430FB129008A2002D63E8 /* CoreVideo.framework */; }; + 1FB43100129008B9002D63E8 /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FB430FF129008B9002D63E8 /* CoreMedia.framework */; }; + 1FB431AB12901D7D002D63E8 /* AddressBook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FB431AA12901D7D002D63E8 /* AddressBook.framework */; }; + 1FB431B112901D8C002D63E8 /* AddressBookUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FB431B012901D8C002D63E8 /* AddressBookUI.framework */; }; + 1FB432831290295C002D63E8 /* About.html in Resources */ = {isa = PBXBuildFile; fileRef = 1FB432751290295C002D63E8 /* About.html */; }; + 1FB432841290295C002D63E8 /* DecoderView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1FB432771290295C002D63E8 /* DecoderView.xib */; }; + 1FB432851290295C002D63E8 /* Hints.html in Resources */ = {isa = PBXBuildFile; fileRef = 1FB432791290295C002D63E8 /* Hints.html */; }; + 1FB432861290295C002D63E8 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 1FB4327B1290295C002D63E8 /* InfoPlist.strings */; }; + 1FB432871290295C002D63E8 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 1FB4327D1290295C002D63E8 /* Localizable.strings */; }; + 1FB432881290295C002D63E8 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1FB4327F1290295C002D63E8 /* MainWindow.xib */; }; + 1FB432891290295C002D63E8 /* Message.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1FB432811290295C002D63E8 /* Message.xib */; }; + 1FB4352E12904F56002D63E8 /* MessageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FB4352D12904F56002D63E8 /* MessageViewController.m */; }; + 288765FD0DF74451002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765FC0DF74451002DB57D /* CoreGraphics.framework */; }; + 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD733E0D9D9553002E5188 /* MainWindow.xib */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 1FB4301B128FFDCD002D63E8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1FB43017128FFDCD002D63E8 /* ZXingWidget.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = D2AAC07E0554694100DB518D; + remoteInfo = ZXingWidget; + }; + 1FB43025128FFEF9002D63E8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1FB43017128FFDCD002D63E8 /* ZXingWidget.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = D2AAC07D0554694100DB518D; + remoteInfo = ZXingWidget; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 1D3623240D0F684500981E51 /* BarcodesAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BarcodesAppDelegate.h; sourceTree = ""; }; + 1D3623250D0F684500981E51 /* BarcodesAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BarcodesAppDelegate.m; sourceTree = ""; }; + 1D6058910D05DD3D006BFB54 /* Barcodes.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Barcodes.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 1FB43017128FFDCD002D63E8 /* ZXingWidget.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = ZXingWidget.xcodeproj; path = ../ZXingWidget/ZXingWidget.xcodeproj; sourceTree = SOURCE_ROOT; }; + 1FB4302E128FFF56002D63E8 /* icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = icon.png; path = images/icon.png; sourceTree = ""; }; + 1FB4302F128FFF56002D63E8 /* icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "icon@2x.png"; path = "images/icon@2x.png"; sourceTree = ""; }; + 1FB430341290002C002D63E8 /* ZXMainViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZXMainViewController.h; sourceTree = ""; }; + 1FB430351290002C002D63E8 /* ZXMainViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ZXMainViewController.mm; sourceTree = ""; }; + 1FB430361290002C002D63E8 /* ZXMainViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ZXMainViewController.xib; sourceTree = ""; }; + 1FB4303A129000B4002D63E8 /* ZxingLarge.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ZxingLarge.png; path = images/ZxingLarge.png; sourceTree = ""; }; + 1FB43082129006DC002D63E8 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + 1FB43086129006E6002D63E8 /* libiconv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libiconv.dylib; path = usr/lib/libiconv.dylib; sourceTree = SDKROOT; }; + 1FB430AD12900742002D63E8 /* beep-beep.aiff */ = {isa = PBXFileReference; lastKnownFileType = audio.aiff; path = "beep-beep.aiff"; sourceTree = ""; }; + 1FB430F512900879002D63E8 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + 1FB430FB129008A2002D63E8 /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = System/Library/Frameworks/CoreVideo.framework; sourceTree = SDKROOT; }; + 1FB430FF129008B9002D63E8 /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; }; + 1FB431AA12901D7D002D63E8 /* AddressBook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AddressBook.framework; path = System/Library/Frameworks/AddressBook.framework; sourceTree = SDKROOT; }; + 1FB431B012901D8C002D63E8 /* AddressBookUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AddressBookUI.framework; path = System/Library/Frameworks/AddressBookUI.framework; sourceTree = SDKROOT; }; + 1FB432761290295C002D63E8 /* de */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = de; path = de.lproj/About.html; sourceTree = ""; }; + 1FB432781290295C002D63E8 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = de.lproj/DecoderView.xib; sourceTree = ""; }; + 1FB4327A1290295C002D63E8 /* de */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = de; path = de.lproj/Hints.html; sourceTree = ""; }; + 1FB4327C1290295C002D63E8 /* de */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = ""; }; + 1FB4327E1290295C002D63E8 /* de */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; + 1FB432801290295C002D63E8 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = de.lproj/MainWindow.xib; sourceTree = ""; }; + 1FB432821290295C002D63E8 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = de.lproj/Message.xib; sourceTree = ""; }; + 1FB4328A12902968002D63E8 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.html; name = en; path = en.lproj/About.html; sourceTree = ""; }; + 1FB4328B12902968002D63E8 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/DecoderView.xib; sourceTree = ""; }; + 1FB4328C12902968002D63E8 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.html; name = en; path = en.lproj/Hints.html; sourceTree = ""; }; + 1FB4328D12902968002D63E8 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 1FB4328E12902968002D63E8 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + 1FB4328F12902968002D63E8 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainWindow.xib; sourceTree = ""; }; + 1FB4329012902968002D63E8 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/Message.xib; sourceTree = ""; }; + 1FB4329112902973002D63E8 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.html; name = sv; path = sv.lproj/About.html; sourceTree = ""; }; + 1FB4329212902973002D63E8 /* sv */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = sv; path = sv.lproj/DecoderView.xib; sourceTree = ""; }; + 1FB4329312902973002D63E8 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.html; name = sv; path = sv.lproj/Hints.html; sourceTree = ""; }; + 1FB4329412902973002D63E8 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/InfoPlist.strings; sourceTree = ""; }; + 1FB4329512902973002D63E8 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = ""; }; + 1FB4329612902973002D63E8 /* sv */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = sv; path = sv.lproj/MainWindow.xib; sourceTree = ""; }; + 1FB4329712902973002D63E8 /* sv */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = sv; path = sv.lproj/Message.xib; sourceTree = ""; }; + 1FB4352C12904F56002D63E8 /* MessageViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MessageViewController.h; sourceTree = ""; }; + 1FB4352D12904F56002D63E8 /* MessageViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MessageViewController.m; sourceTree = ""; }; + 288765FC0DF74451002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + 28AD733E0D9D9553002E5188 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = ""; }; + 29B97316FDCFA39411CA2CEA /* main.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = main.mm; sourceTree = ""; }; + 32CA4F630368D1EE00C91783 /* Barcodes_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Barcodes_Prefix.pch; sourceTree = ""; }; + 8D1107310486CEB800E47090 /* Barcodes-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Barcodes-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 1D60588F0D05DD3D006BFB54 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */, + 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */, + 288765FD0DF74451002DB57D /* CoreGraphics.framework in Frameworks */, + 1FB4301D128FFDCF002D63E8 /* libZXingWidget.a in Frameworks */, + 1FB43083129006DC002D63E8 /* AudioToolbox.framework in Frameworks */, + 1FB43087129006E6002D63E8 /* libiconv.dylib in Frameworks */, + 1FB430F612900879002D63E8 /* AVFoundation.framework in Frameworks */, + 1FB430FC129008A2002D63E8 /* CoreVideo.framework in Frameworks */, + 1FB43100129008B9002D63E8 /* CoreMedia.framework in Frameworks */, + 1FB431AB12901D7D002D63E8 /* AddressBook.framework in Frameworks */, + 1FB431B112901D8C002D63E8 /* AddressBookUI.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 080E96DDFE201D6D7F000001 /* Classes */ = { + isa = PBXGroup; + children = ( + 1FB4352C12904F56002D63E8 /* MessageViewController.h */, + 1FB4352D12904F56002D63E8 /* MessageViewController.m */, + 1D3623240D0F684500981E51 /* BarcodesAppDelegate.h */, + 1D3623250D0F684500981E51 /* BarcodesAppDelegate.m */, + 1FB430341290002C002D63E8 /* ZXMainViewController.h */, + 1FB430351290002C002D63E8 /* ZXMainViewController.mm */, + 1FB430361290002C002D63E8 /* ZXMainViewController.xib */, + ); + path = Classes; + sourceTree = ""; + }; + 19C28FACFE9D520D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 1D6058910D05DD3D006BFB54 /* Barcodes.app */, + ); + name = Products; + sourceTree = ""; + }; + 1FB43016128FFDBB002D63E8 /* dependencies */ = { + isa = PBXGroup; + children = ( + 1FB43017128FFDCD002D63E8 /* ZXingWidget.xcodeproj */, + ); + name = dependencies; + sourceTree = ""; + }; + 1FB43018128FFDCD002D63E8 /* Products */ = { + isa = PBXGroup; + children = ( + 1FB4301C128FFDCD002D63E8 /* libZXingWidget.a */, + ); + name = Products; + sourceTree = ""; + }; + 1FB4302D128FFF46002D63E8 /* images */ = { + isa = PBXGroup; + children = ( + 1FB4303A129000B4002D63E8 /* ZxingLarge.png */, + 1FB4302E128FFF56002D63E8 /* icon.png */, + 1FB4302F128FFF56002D63E8 /* icon@2x.png */, + ); + name = images; + sourceTree = ""; + }; + 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { + isa = PBXGroup; + children = ( + 080E96DDFE201D6D7F000001 /* Classes */, + 29B97315FDCFA39411CA2CEA /* Other Sources */, + 29B97317FDCFA39411CA2CEA /* Resources */, + 1FB43016128FFDBB002D63E8 /* dependencies */, + 29B97323FDCFA39411CA2CEA /* Frameworks */, + 19C28FACFE9D520D11CA2CBB /* Products */, + ); + name = CustomTemplate; + sourceTree = ""; + }; + 29B97315FDCFA39411CA2CEA /* Other Sources */ = { + isa = PBXGroup; + children = ( + 32CA4F630368D1EE00C91783 /* Barcodes_Prefix.pch */, + 29B97316FDCFA39411CA2CEA /* main.mm */, + ); + name = "Other Sources"; + sourceTree = ""; + }; + 29B97317FDCFA39411CA2CEA /* Resources */ = { + isa = PBXGroup; + children = ( + 1FB432751290295C002D63E8 /* About.html */, + 1FB432771290295C002D63E8 /* DecoderView.xib */, + 1FB432791290295C002D63E8 /* Hints.html */, + 1FB4327B1290295C002D63E8 /* InfoPlist.strings */, + 1FB4327D1290295C002D63E8 /* Localizable.strings */, + 1FB4327F1290295C002D63E8 /* MainWindow.xib */, + 1FB432811290295C002D63E8 /* Message.xib */, + 1FB430AD12900742002D63E8 /* beep-beep.aiff */, + 1FB4302D128FFF46002D63E8 /* images */, + 28AD733E0D9D9553002E5188 /* MainWindow.xib */, + 8D1107310486CEB800E47090 /* Barcodes-Info.plist */, + ); + name = Resources; + sourceTree = ""; + }; + 29B97323FDCFA39411CA2CEA /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */, + 1D30AB110D05D00D00671497 /* Foundation.framework */, + 288765FC0DF74451002DB57D /* CoreGraphics.framework */, + 1FB43082129006DC002D63E8 /* AudioToolbox.framework */, + 1FB43086129006E6002D63E8 /* libiconv.dylib */, + 1FB430F512900879002D63E8 /* AVFoundation.framework */, + 1FB430FB129008A2002D63E8 /* CoreVideo.framework */, + 1FB430FF129008B9002D63E8 /* CoreMedia.framework */, + 1FB431AA12901D7D002D63E8 /* AddressBook.framework */, + 1FB431B012901D8C002D63E8 /* AddressBookUI.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 1D6058900D05DD3D006BFB54 /* Barcodes */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "Barcodes" */; + buildPhases = ( + 1D60588D0D05DD3D006BFB54 /* Resources */, + 1D60588E0D05DD3D006BFB54 /* Sources */, + 1D60588F0D05DD3D006BFB54 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 1FB43026128FFEF9002D63E8 /* PBXTargetDependency */, + ); + name = Barcodes; + productName = Barcodes; + productReference = 1D6058910D05DD3D006BFB54 /* Barcodes.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 29B97313FDCFA39411CA2CEA /* Project object */ = { + isa = PBXProject; + buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Barcodes" */; + compatibilityVersion = "Xcode 3.1"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + English, + Japanese, + French, + German, + de, + en, + sv, + ); + mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 1FB43018128FFDCD002D63E8 /* Products */; + ProjectRef = 1FB43017128FFDCD002D63E8 /* ZXingWidget.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 1D6058900D05DD3D006BFB54 /* Barcodes */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 1FB4301C128FFDCD002D63E8 /* libZXingWidget.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libZXingWidget.a; + remoteRef = 1FB4301B128FFDCD002D63E8 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 1D60588D0D05DD3D006BFB54 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */, + 1FB43030128FFF56002D63E8 /* icon.png in Resources */, + 1FB43031128FFF56002D63E8 /* icon@2x.png in Resources */, + 1FB430381290002C002D63E8 /* ZXMainViewController.xib in Resources */, + 1FB4303B129000B4002D63E8 /* ZxingLarge.png in Resources */, + 1FB430AE12900742002D63E8 /* beep-beep.aiff in Resources */, + 1FB432831290295C002D63E8 /* About.html in Resources */, + 1FB432841290295C002D63E8 /* DecoderView.xib in Resources */, + 1FB432851290295C002D63E8 /* Hints.html in Resources */, + 1FB432861290295C002D63E8 /* InfoPlist.strings in Resources */, + 1FB432871290295C002D63E8 /* Localizable.strings in Resources */, + 1FB432881290295C002D63E8 /* MainWindow.xib in Resources */, + 1FB432891290295C002D63E8 /* Message.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 1D60588E0D05DD3D006BFB54 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1D60589B0D05DD56006BFB54 /* main.mm in Sources */, + 1D3623260D0F684500981E51 /* BarcodesAppDelegate.m in Sources */, + 1FB430371290002C002D63E8 /* ZXMainViewController.mm in Sources */, + 1FB4352E12904F56002D63E8 /* MessageViewController.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 1FB43026128FFEF9002D63E8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = ZXingWidget; + targetProxy = 1FB43025128FFEF9002D63E8 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 1FB432751290295C002D63E8 /* About.html */ = { + isa = PBXVariantGroup; + children = ( + 1FB432761290295C002D63E8 /* de */, + 1FB4328A12902968002D63E8 /* en */, + 1FB4329112902973002D63E8 /* sv */, + ); + name = About.html; + sourceTree = ""; + }; + 1FB432771290295C002D63E8 /* DecoderView.xib */ = { + isa = PBXVariantGroup; + children = ( + 1FB432781290295C002D63E8 /* de */, + 1FB4328B12902968002D63E8 /* en */, + 1FB4329212902973002D63E8 /* sv */, + ); + name = DecoderView.xib; + sourceTree = ""; + }; + 1FB432791290295C002D63E8 /* Hints.html */ = { + isa = PBXVariantGroup; + children = ( + 1FB4327A1290295C002D63E8 /* de */, + 1FB4328C12902968002D63E8 /* en */, + 1FB4329312902973002D63E8 /* sv */, + ); + name = Hints.html; + sourceTree = ""; + }; + 1FB4327B1290295C002D63E8 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 1FB4327C1290295C002D63E8 /* de */, + 1FB4328D12902968002D63E8 /* en */, + 1FB4329412902973002D63E8 /* sv */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + 1FB4327D1290295C002D63E8 /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + 1FB4327E1290295C002D63E8 /* de */, + 1FB4328E12902968002D63E8 /* en */, + 1FB4329512902973002D63E8 /* sv */, + ); + name = Localizable.strings; + sourceTree = ""; + }; + 1FB4327F1290295C002D63E8 /* MainWindow.xib */ = { + isa = PBXVariantGroup; + children = ( + 1FB432801290295C002D63E8 /* de */, + 1FB4328F12902968002D63E8 /* en */, + 1FB4329612902973002D63E8 /* sv */, + ); + name = MainWindow.xib; + sourceTree = ""; + }; + 1FB432811290295C002D63E8 /* Message.xib */ = { + isa = PBXVariantGroup; + children = ( + 1FB432821290295C002D63E8 /* de */, + 1FB4329012902968002D63E8 /* en */, + 1FB4329712902973002D63E8 /* sv */, + ); + name = Message.xib; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 1D6058940D05DD3E006BFB54 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = Barcodes_Prefix.pch; + INFOPLIST_FILE = "Barcodes-Info.plist"; + PRODUCT_NAME = Barcodes; + }; + name = Debug; + }; + 1D6058950D05DD3E006BFB54 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = Barcodes_Prefix.pch; + INFOPLIST_FILE = "Barcodes-Info.plist"; + PRODUCT_NAME = Barcodes; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + C01FCF4F08A954540054247B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Romain Pechayre (2CQ4EGKG4S)"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../ZXingWidget/Classes/**", + ../../cpp/core/src, + ); + PREBINDING = NO; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = "6B49E4AA-03F0-4CBB-80B6-5987C7E23569"; + SDKROOT = iphoneos; + }; + name = Debug; + }; + C01FCF5008A954540054247B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; + PREBINDING = NO; + SDKROOT = iphoneos; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "Barcodes" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1D6058940D05DD3E006BFB54 /* Debug */, + 1D6058950D05DD3E006BFB54 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Barcodes" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C01FCF4F08A954540054247B /* Debug */, + C01FCF5008A954540054247B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; +} diff --git a/iphone/Barcodes/Barcodes_Prefix.pch b/iphone/Barcodes/Barcodes_Prefix.pch new file mode 100644 index 000000000..bb34b4f86 --- /dev/null +++ b/iphone/Barcodes/Barcodes_Prefix.pch @@ -0,0 +1,8 @@ +// +// Prefix header for all source files of the 'Barcodes' target in the 'Barcodes' project +// + +#ifdef __OBJC__ + #import + #import +#endif diff --git a/iphone/Barcodes/Classes/BarcodesAppDelegate.h b/iphone/Barcodes/Classes/BarcodesAppDelegate.h new file mode 100644 index 000000000..a98002085 --- /dev/null +++ b/iphone/Barcodes/Classes/BarcodesAppDelegate.h @@ -0,0 +1,21 @@ +// +// BarcodesAppDelegate.h +// Barcodes +// +// Created by Romain Pechayre on 11/14/10. +// Copyright 2010 __MyCompanyName__. All rights reserved. +// + +#import +@class ZXMainViewController; + +@interface BarcodesAppDelegate : NSObject { + UIWindow *window; + ZXMainViewController *rootController; + +} + +@property (nonatomic, retain) IBOutlet UIWindow *window; +@property (nonatomic, retain) IBOutlet ZXMainViewController *rootController; +@end + diff --git a/iphone/Barcodes/Classes/BarcodesAppDelegate.m b/iphone/Barcodes/Classes/BarcodesAppDelegate.m new file mode 100644 index 000000000..7cf922424 --- /dev/null +++ b/iphone/Barcodes/Classes/BarcodesAppDelegate.m @@ -0,0 +1,84 @@ +// +// BarcodesAppDelegate.m +// Barcodes +// +// Created by Romain Pechayre on 11/14/10. +// Copyright 2010 __MyCompanyName__. All rights reserved. +// + +#import "BarcodesAppDelegate.h" +#import "ZXMainViewController.h" + +@implementation BarcodesAppDelegate + +@synthesize window; +@synthesize rootController; + +#pragma mark - +#pragma mark Application lifecycle + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + + // Override point for customization after application launch. + [self.window addSubview:rootController.view]; + [self.window makeKeyAndVisible]; + return YES; +} + + +- (void)applicationWillResignActive:(UIApplication *)application { + /* + Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. + Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. + */ +} + + +- (void)applicationDidEnterBackground:(UIApplication *)application { + /* + Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. + If your application supports background execution, called instead of applicationWillTerminate: when the user quits. + */ +} + + +- (void)applicationWillEnterForeground:(UIApplication *)application { + /* + Called as part of transition from the background to the inactive state: here you can undo many of the changes made on entering the background. + */ +} + + +- (void)applicationDidBecomeActive:(UIApplication *)application { + /* + Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. + */ +} + + +- (void)applicationWillTerminate:(UIApplication *)application { + /* + Called when the application is about to terminate. + See also applicationDidEnterBackground:. + */ +} + + +#pragma mark - +#pragma mark Memory management + +- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application { + /* + Free up as much memory as possible by purging cached data objects that can be recreated (or reloaded from disk) later. + */ +} + + +- (void)dealloc { + [rootController release]; + [window release]; + [super dealloc]; +} + + +@end diff --git a/iphone/Barcodes/Classes/MessageViewController.h b/iphone/Barcodes/Classes/MessageViewController.h new file mode 100644 index 000000000..348d0a44d --- /dev/null +++ b/iphone/Barcodes/Classes/MessageViewController.h @@ -0,0 +1,41 @@ +// +// MessageViewController.h +// ZXing +// +// Created by Christian Brunschen on 30/07/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@interface MessageViewController : UIViewController { + id callbackTarget; + SEL callbackSelectorSuccess; + SEL callbackSelectorFailure; + NSURL *contentURL; +} + +@property (nonatomic, retain) id callbackTarget; +@property (nonatomic, assign) SEL callbackSelectorSuccess; +@property (nonatomic, assign) SEL callbackSelectorFailure; + +@property (nonatomic, readonly) UIWebView *webView; + +@property (nonatomic, retain) NSURL *contentURL; + +- (id)initWithMessageFilename:(NSString *)filename target:(id)cbt onSuccess:(SEL)ss onFailure:(SEL)fs; + +@end diff --git a/iphone/Barcodes/Classes/MessageViewController.m b/iphone/Barcodes/Classes/MessageViewController.m new file mode 100644 index 000000000..886b60c0f --- /dev/null +++ b/iphone/Barcodes/Classes/MessageViewController.m @@ -0,0 +1,108 @@ +// +// MessageViewController.m +// ZXing +// +// Created by Christian Brunschen on 30/07/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "MessageViewController.h" + + +@implementation MessageViewController + +@synthesize callbackTarget; +@synthesize callbackSelectorSuccess; +@synthesize callbackSelectorFailure; +@synthesize contentURL; + +- (UIWebView *)webView { + return (UIWebView *)self.view; +} + +- (id)initWithMessageFilename:(NSString *)filename + target:(id)cbt + onSuccess:(SEL)ss + onFailure:(SEL)fs { + if ((self = [super initWithNibName:@"Message" bundle:nil])) { + self.callbackTarget = cbt; + self.callbackSelectorSuccess = ss; + self.callbackSelectorFailure = fs; + self.contentURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:filename + ofType:@"html"]]; + } + return self; +} + +- (void)loadView { + [super loadView]; + self.webView.delegate = self; + [self.webView loadRequest:[NSURLRequest requestWithURL:self.contentURL]]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; +} + + +- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { + // Return YES for supported orientations + return (interfaceOrientation == UIInterfaceOrientationPortrait); +} + +- (void)didReceiveMemoryWarning { + [super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview + // Release anything that's not essential, such as cached data +} + + +- (void)dealloc { + [super dealloc]; +} + +// open a URL, asynchronously +- (void) openURL:(NSURL *)url { + [url autorelease]; + [[UIApplication sharedApplication] openURL:url]; +} + + +// UIWebViewDelegate methods + +- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { + if ([[request URL] isFileURL]) { + // only load 'file' URL requests ourselves + return true; + } else { + // any other url:s are handed off to the system + NSURL *url = [[request URL] retain]; + [self performSelectorOnMainThread:@selector(openURL:) withObject:url waitUntilDone:false]; + return false; + } +} + +- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error { + NSLog(@"failed to load content, performing failure callback"); + [self.callbackTarget performSelector:self.callbackSelectorFailure withObject:self afterDelay:0.0]; +} + +- (void)webViewDidFinishLoad:(UIWebView *)webView { + NSLog(@"finished loading content, performing success callback"); + [self.callbackTarget performSelector:self.callbackSelectorSuccess withObject:self afterDelay:0.0]; +} + + +@end diff --git a/iphone/Barcodes/Classes/ZXMainViewController.h b/iphone/Barcodes/Classes/ZXMainViewController.h new file mode 100644 index 000000000..ba62e893c --- /dev/null +++ b/iphone/Barcodes/Classes/ZXMainViewController.h @@ -0,0 +1,30 @@ +// +// ZXMainViewController.h +// Barcodes +// +// Created by Romain Pechayre on 11/14/10. +// Copyright 2010 __MyCompanyName__. All rights reserved. +// + +#import +#import "ZXingWidgetController.h" +@class UniversalResultParser; +@class ParsedResult; + +@interface ZXMainViewController : UIViewController { + UniversalResultParser *resultParser; + NSArray *actions; + ParsedResult *result; +} + +@property(nonatomic,retain) UniversalResultParser *resultParser; +@property (nonatomic,assign) NSArray *actions; +@property (nonatomic,assign) ParsedResult *result; + +- (IBAction)scan:(id)sender; +- (void)zxingController:(ZXingWidgetController*)controller didScanResult:(NSString *)result; +- (void)zxingControllerDidCancel:(ZXingWidgetController*)controller; +- (void)performResultAction; + + +@end diff --git a/iphone/Barcodes/Classes/ZXMainViewController.mm b/iphone/Barcodes/Classes/ZXMainViewController.mm new file mode 100644 index 000000000..fed6ba9af --- /dev/null +++ b/iphone/Barcodes/Classes/ZXMainViewController.mm @@ -0,0 +1,151 @@ +// +// ZXMainViewController.m +// Barcodes +// +// Created by Romain Pechayre on 11/14/10. +// Copyright 2010 __MyCompanyName__. All rights reserved. +// + +#import "ZXMainViewController.h" +#import +#import +#import +#import + +@implementation ZXMainViewController +@synthesize resultParser; +@synthesize actions; +@synthesize result; + +// The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad. +/* +- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { + self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; + if (self) { + + } + return self; +} +*/ + + +// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. +- (void)viewDidLoad { + [super viewDidLoad]; + UniversalResultParser *parser = [[UniversalResultParser alloc] initWithDefaultParsers]; + self.resultParser = parser; + [parser release]; +} + + +/* +// Override to allow orientations other than the default portrait orientation. +- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { + // Return YES for supported orientations. + return (interfaceOrientation == UIInterfaceOrientationPortrait); +} +*/ + +- (IBAction)scan:(id)sender { + + ZXingWidgetController *widController = [[ZXingWidgetController alloc] initWithDelegate:self showCancel:YES OneDMode:NO]; + QRCodeReader* qrcodeReader = [[QRCodeReader alloc] init]; + NSSet *readers = [[NSSet alloc ] initWithObjects:qrcodeReader,nil]; + [qrcodeReader release]; + widController.readers = readers; + [readers release]; + NSBundle *mainBundle = [NSBundle mainBundle]; + widController.soundToPlay = + [NSURL fileURLWithPath:[mainBundle pathForResource:@"beep-beep" ofType:@"aiff"] isDirectory:NO]; + [self presentModalViewController:widController animated:YES]; + [widController release]; +} + +- (IBAction) info:(id)sender { + +} + +- (void)didReceiveMemoryWarning { + // Releases the view if it doesn't have a superview. + [super didReceiveMemoryWarning]; + + // Release any cached data, images, etc. that aren't in use. +} + +- (void)viewDidUnload { + [super viewDidUnload]; + // Release any retained subviews of the main view. + // e.g. self.myOutlet = nil; +} + + +- (void)dealloc { + [resultParser release]; + actions = nil; + result = nil; + [super dealloc]; +} + +#pragma mark - +#pragma mark ZXingDelegateMethods + +- (void)zxingController:(ZXingWidgetController*)controller didScanResult:(NSString *)resultString { + [self dismissModalViewControllerAnimated:YES]; + ParsedResult *theResult = [self.resultParser resultForString:resultString]; + self.result = [theResult retain]; + self.actions = [self.result.actions retain]; +#ifdef DEBUG + NSLog(@"result has %d actions", actions ? 0 : actions.count); +#endif + [self performResultAction]; +} + +- (void)confirmAndPerformAction:(ResultAction *)action { + [action performActionWithController:self shouldConfirm:YES]; +} + +- (void)performResultAction { + if (self.result == nil) { + NSLog(@"no result to perform an action on!"); + return; + } + + if (self.actions == nil || self.actions.count == 0) { + NSLog(@"result has no actions to perform!"); + return; + } + + if (self.actions.count == 1) { + ResultAction *action = [self.actions lastObject]; +#ifdef DEBUG + NSLog(@"Result has the single action, (%@) '%@', performing it", + NSStringFromClass([action class]), [action title]); +#endif + [self performSelector:@selector(confirmAndPerformAction:) + withObject:action + afterDelay:0.0]; + } else { +#ifdef DEBUG + NSLog(@"Result has multiple actions, popping up an action sheet"); +#endif + UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithFrame:self.view.bounds]; + + for (ResultAction *action in self.actions) { + [actionSheet addButtonWithTitle:[action title]]; + } + + int cancelIndex = [actionSheet addButtonWithTitle:NSLocalizedString(@"DecoderViewController cancel button title", @"Cancel")]; + actionSheet.cancelButtonIndex = cancelIndex; + + actionSheet.delegate = self; + + [actionSheet showInView:self.view]; + } +} + +- (void)zxingControllerDidCancel:(ZXingWidgetController*)controller { + [self dismissModalViewControllerAnimated:YES]; +} + + +@end diff --git a/iphone/Barcodes/Classes/ZXMainViewController.xib b/iphone/Barcodes/Classes/ZXMainViewController.xib new file mode 100644 index 000000000..f43204383 --- /dev/null +++ b/iphone/Barcodes/Classes/ZXMainViewController.xib @@ -0,0 +1,522 @@ + + + + 1056 + 10H542 + 823 + 1038.35 + 461.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 132 + + + YES + + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + YES + + YES + + + YES + + + + YES + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + + 274 + + YES + + + 274 + {{96, 81}, {128, 128}} + + NO + IBCocoaTouchFramework + + NSImage + ZxingLarge.png + + + + + 292 + {{68, 30}, {183, 21}} + + NO + YES + 7 + NO + IBCocoaTouchFramework + ZXing iPhone Scanner + + Helvetica-Bold + 17 + 16 + + + 1 + MCAwIDAAA + + + 3 + MQA + + 1 + 10 + + + + 292 + {{96, 240}, {128, 61}} + + NO + IBCocoaTouchFramework + 0 + 0 + + Helvetica-Bold + 15 + 16 + + 1 + Scan! + + + 1 + MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA + + + 3 + MC41AA + + + + + 292 + {{282, 421}, {18, 19}} + + NO + IBCocoaTouchFramework + 0 + 0 + + 4 + YES + + + 1 + MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA + + + + + {320, 460} + + + 1 + MC45MTM3MjU0OTAyIDAuOTMzMzMzMzMzMyAwLjk1Mjk0MTE3NjUAA + + + IBCocoaTouchFramework + + + + + YES + + + view + + + + 3 + + + + scan: + + + 7 + + 7 + + + + + YES + + 0 + + + + + + 1 + + + YES + + + + + + + + + -1 + + + File's Owner + + + -2 + + + + + 4 + + + + + 5 + + + + + 6 + + + + + 8 + + + + + + + YES + + YES + -1.CustomClassName + -2.CustomClassName + 1.IBEditorWindowLastContentRect + 1.IBPluginDependency + 4.IBPluginDependency + 4.IBViewBoundsToFrameTransform + 5.IBPluginDependency + 5.IBViewBoundsToFrameTransform + 6.IBPluginDependency + 6.IBViewBoundsToFrameTransform + 8.IBPluginDependency + 8.IBViewBoundsToFrameTransform + + + YES + ZXMainViewController + UIResponder + {{184, 249}, {320, 480}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + P4AAAL+AAABCoAAAwzYAAA + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + P4AAAL+AAABCzAAAwgAAAA + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + P4AAAL+AAABC+AAAw5CAAA + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + P4AAAL+AAABDQgAAw8CAAA + + + + + YES + + + YES + + + + + YES + + + YES + + + + 8 + + + + YES + + ZXMainViewController + UIViewController + + scan: + id + + + scan: + + scan: + id + + + + IBProjectSource + Classes/ZXMainViewController.h + + + + + YES + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIAccessibility.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UINibLoading.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIResponder.h + + + + UIButton + UIControl + + IBFrameworkSource + UIKit.framework/Headers/UIButton.h + + + + UIControl + UIView + + IBFrameworkSource + UIKit.framework/Headers/UIControl.h + + + + UIImageView + UIView + + IBFrameworkSource + UIKit.framework/Headers/UIImageView.h + + + + UILabel + UIView + + IBFrameworkSource + UIKit.framework/Headers/UILabel.h + + + + UIResponder + NSObject + + + + UISearchBar + UIView + + IBFrameworkSource + UIKit.framework/Headers/UISearchBar.h + + + + UISearchDisplayController + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UISearchDisplayController.h + + + + UIView + + IBFrameworkSource + UIKit.framework/Headers/UIPrintFormatter.h + + + + UIView + + IBFrameworkSource + UIKit.framework/Headers/UITextField.h + + + + UIView + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIView.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UINavigationController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UIPopoverController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UISplitViewController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UITabBarController.h + + + + UIViewController + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIViewController.h + + + + + 0 + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS + + + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + ../Barcodes.xcodeproj + 3 + + ZxingLarge.png + {128, 128} + + 132 + + diff --git a/iphone/Barcodes/MainWindow.xib b/iphone/Barcodes/MainWindow.xib new file mode 100644 index 000000000..a695aa9e2 --- /dev/null +++ b/iphone/Barcodes/MainWindow.xib @@ -0,0 +1,456 @@ + + + + 1056 + 10H542 + 823 + 1038.35 + 461.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 132 + + + YES + + + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + YES + + YES + + + YES + + + + YES + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + IBCocoaTouchFramework + + + + 1316 + + {320, 480} + + + 1 + MSAxIDEAA + + NO + NO + + IBCocoaTouchFramework + YES + + + ZXMainViewController + + + 1 + + IBCocoaTouchFramework + NO + + + + + YES + + + delegate + + + + 4 + + + + window + + + + 5 + + + + rootController + + + + 11 + + + + + YES + + 0 + + + + + + 2 + + + YES + + + + + -1 + + + File's Owner + + + 3 + + + + + -2 + + + + + 10 + + + + + + + YES + + YES + -1.CustomClassName + -2.CustomClassName + 10.CustomClassName + 10.IBEditorWindowLastContentRect + 10.IBPluginDependency + 2.IBAttributePlaceholdersKey + 2.IBEditorWindowLastContentRect + 2.IBPluginDependency + 3.CustomClassName + 3.IBPluginDependency + + + YES + UIApplication + UIResponder + ZXMainViewController + {{0, 254}, {320, 480}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + YES + + + YES + + + {{198, 276}, {320, 480}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + BarcodesAppDelegate + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + + YES + + + + + YES + + + YES + + + + 11 + + + + YES + + BarcodesAppDelegate + NSObject + + YES + + YES + rootController + window + + + YES + ZXMainViewController + UIWindow + + + + YES + + YES + rootController + window + + + YES + + rootController + ZXMainViewController + + + window + UIWindow + + + + + IBProjectSource + Classes/BarcodesAppDelegate.h + + + + BarcodesAppDelegate + NSObject + + IBUserSource + + + + + ZXMainViewController + UIViewController + + IBProjectSource + Classes/ZXMainViewController.h + + + + + YES + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIAccessibility.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UINibLoading.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIResponder.h + + + + UIApplication + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIApplication.h + + + + UIResponder + NSObject + + + + UISearchBar + UIView + + IBFrameworkSource + UIKit.framework/Headers/UISearchBar.h + + + + UISearchDisplayController + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UISearchDisplayController.h + + + + UIView + + IBFrameworkSource + UIKit.framework/Headers/UIPrintFormatter.h + + + + UIView + + IBFrameworkSource + UIKit.framework/Headers/UITextField.h + + + + UIView + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIView.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UINavigationController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UIPopoverController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UISplitViewController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UITabBarController.h + + + + UIViewController + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIViewController.h + + + + UIWindow + UIView + + IBFrameworkSource + UIKit.framework/Headers/UIWindow.h + + + + + 0 + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS + + + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + Barcodes.xcodeproj + 3 + 132 + + diff --git a/iphone/Barcodes/beep-beep.aiff b/iphone/Barcodes/beep-beep.aiff new file mode 100644 index 0000000000000000000000000000000000000000..8854a590a2b5c2570f9c5f51214468924bf8c69d GIT binary patch literal 66046 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 z%0D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 literal 0 HcmV?d00001 diff --git a/iphone/Barcodes/de.lproj/About.html b/iphone/Barcodes/de.lproj/About.html new file mode 100644 index 000000000..c425e06aa --- /dev/null +++ b/iphone/Barcodes/de.lproj/About.html @@ -0,0 +1,23 @@ + + +Info zu Strichcodes + + + + + +

+ZXing Project Logo

+

Strichcodes

+

Version 1.1

+

© 2008-2010 The ZXing +Authors
+

+

+Unterstützte Strichcode-Formate: +

+

+QR Code
+

+ \ No newline at end of file diff --git a/iphone/Barcodes/de.lproj/DecoderView.xib b/iphone/Barcodes/de.lproj/DecoderView.xib new file mode 100644 index 000000000..dc8e161f7 --- /dev/null +++ b/iphone/Barcodes/de.lproj/DecoderView.xib @@ -0,0 +1,450 @@ + + + + 512 + 9E17 + 670 + 949.33 + 352.00 + + YES + + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + YES + + IBFilesOwner + + + IBFirstResponder + + + + 274 + + YES + + + 266 + {{0, 431}, {320, 49}} + + NO + NO + + YES + + 15 + + + + 1 + 5 + + + + 1 + + NSImage + filmroll-2.png + + + + + 5 + + + + 2 + + NSImage + photolib.png + + + + + 1 + 5 + + + + 16 + 10 + + + + 1 + 5 + + + + 17 + 9 + + + + + + + 274 + {320, 431} + + + 1 + MCAwIDAAA + + NO + 3 + + + {320, 480} + + + 3 + + + + + YES + + + view + + + + 9 + + + + actionBarItem + + + + 51 + + + + performResultAction: + + + + 53 + + + + toolbar + + + + 57 + + + + pickAndDecode: + + + + 60 + + + + pickAndDecode: + + + + 61 + + + + pickAndDecode: + + + + 62 + + + + cameraBarItem + + + + 63 + + + + savedPhotosBarItem + + + + 64 + + + + libraryBarItem + + + + 65 + + + + archiveBarItem + + + + 66 + + + + showArchive: + + + + 67 + + + + imageView + + + + 71 + + + + + YES + + 0 + + YES + + + + + + 1 + + + YES + + + + + + + -1 + + + RmlsZSdzIE93bmVyA + + + -2 + + + + + 34 + + + YES + + + + + + + + + + + + + + 35 + + + + + 36 + + + + + 37 + + + + + 38 + + + + + 54 + + + + + 55 + + + + + 56 + + + + + 58 + + + + + 59 + + + + + 70 + + + + + + + YES + + YES + -1.CustomClassName + -2.CustomClassName + 1.IBEditorWindowLastContentRect + 1.IBPluginDependency + 34.IBPluginDependency + 35.IBPluginDependency + 36.IBPluginDependency + 37.IBPluginDependency + 38.IBPluginDependency + 54.IBPluginDependency + 55.IBPluginDependency + 56.IBPluginDependency + 58.IBPluginDependency + 59.IBPluginDependency + 70.CustomClassName + 70.IBPluginDependency + + + YES + DecoderViewController + UIResponder + {{387, 352}, {320, 480}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + ScannedImageView + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + YES + + + YES + + + + + YES + + YES + + + YES + + + + 71 + + + + YES + + DecoderViewController + UIViewController + + YES + + YES + performResultAction: + pickAndDecode: + showArchive: + + + YES + id + id + id + + + + YES + + YES + actionBarItem + archiveBarItem + cameraBarItem + imageView + libraryBarItem + messageHelpButton + messageTextView + messageView + savedPhotosBarItem + toolbar + + + YES + UIBarItem + UIBarItem + UIBarItem + ScannedImageView + UIBarItem + UIButton + UITextView + UIView + UIBarItem + UIToolbar + + + + IBProjectSource + Classes/DecoderViewController.h + + + + ScannedImageView + UIView + + IBProjectSource + Classes/ScannedImageView.h + + + + + 0 + ../ZXing.xcodeproj + 3 + + diff --git a/iphone/Barcodes/de.lproj/Hints.html b/iphone/Barcodes/de.lproj/Hints.html new file mode 100644 index 000000000..f874eb62b --- /dev/null +++ b/iphone/Barcodes/de.lproj/Hints.html @@ -0,0 +1,14 @@ + + +Barcode Hints + + + + +

iPhone hat eine fix-fokus-Kamera. Dies funktioniert oft gut, ist +aber für Strichcode-Erkennung ungeeignet, weil alles was zu nah an der +Kamera ist unscharf aussieht und schwer zu dekodieren ist. Für die +besten Resultate sollten Sie:

  • Mindestens 60 cm Abstand zwischen Kamera und Strichcode halten
  • Im Schritt Bewegen und Skalieren den Strichcode im Bild zentrieren und fast flächenfüllend vergrößern
Dies +gibt dem Dekoder ein scharfes, großes Bild, das hauptsächlich den +Strichcode enthält, und sich am einfachsten dekodieren läßt. \ No newline at end of file diff --git a/iphone/Barcodes/de.lproj/InfoPlist.strings b/iphone/Barcodes/de.lproj/InfoPlist.strings new file mode 100644 index 000000000..15309108b --- /dev/null +++ b/iphone/Barcodes/de.lproj/InfoPlist.strings @@ -0,0 +1 @@ +CFBundleDisplayName = "Strichcodes"; \ No newline at end of file diff --git a/iphone/Barcodes/de.lproj/Localizable.strings b/iphone/Barcodes/de.lproj/Localizable.strings new file mode 100644 index 000000000..008c2f830 --- /dev/null +++ b/iphone/Barcodes/de.lproj/Localizable.strings @@ -0,0 +1,141 @@ +/* Add Contact? */ +"AddContactAction alert message" = "Kontaktinfo speichern?"; + +/* Cancel */ +"AddContactAction cancel button title" = "Abbrechen"; + +/* Add Contact */ +"AddContactAction confirm button title" = "Kontaktinfo speichern"; + +/* Add Contact */ +"AddContactAction title" = "Kontaktinfo speichern"; + +/* Call %@ */ +"CallAction action title" = "%@ Anrufen"; + +/* Call */ +"CallAction alert button title" = "Anrufen"; + +/* Call %@? */ +"CallAction alert message" = "%@ Anrufen?"; + +/* Call */ +"CallAction alert title" = "Anrufen"; + +/* Compose */ +"SMSAction alert title" = "Schreiben"; + +/* Contact */ +"Contact Result Type Name" = "Kontakt"; + +/* No barcode detected. */ +"Decoder BarcodeDetectionFailure" = "Kein Strichcode gefunden."; + +/* Decoding ... */ +"Decoder MessageWhileDecoding" = "Dekodiert ..."; + +/* ZXing */ +"DecoderViewController AppTitle" = "Strichcodes"; + +/* Cancel */ +"DecoderViewController cancel button title" = "Abbrechen"; + +/* About */ +"DecoderViewController about button title" = "Info"; + +/* Hints */ +"DecoderViewController Hints MessageViewController title" = "Tips"; + +/* About */ +"DecoderViewController About MessageViewController title" = "Info"; + +/* Decoding image (%.0fx%.0f) ... */ +"DecoderViewController MessageWhileDecodingWithDimensions" = "Dekodiert Bild (%.0fx%.0f) ..."; + +/* Please take or choose a picture containing a barcode */ +"DecoderViewController take or choose picture" = "Bitte nehmen oder wählen Sie ein Bild mit Strichcode"; + +/* Email %@ */ +"EmailAction action title" = "Email an %@"; + +/* Compose */ +"EmailAction alert button title" = "Schreiben"; + +/* Compose Email to %@? */ +"EmailAction alert message" = "Email an %@ schreiben?"; + +/* Compose Email */ +"EmailAction alert title" = "Email schreiben"; + +/* %@ */ +"EmailParsedResult Display: Body" = "%@"; + +/* To: %@ */ +"EmailParsedResult Display: Recipient" = "An: %@"; + +/* Subject: %@ */ +"EmailParsedResult Display: Subject" = "Betreff: %@"; + +/* Email */ +"EmailParsedResult type name" = "Email"; + +/* Geo: %@ */ +"GeoParsedResult display" = "Geo: %@"; + +/* Geolocation */ +"GeoParsedResult type name" = "Platz"; + +/* Open URL */ +"OpenURLAction action title" = "Link öffnen"; + +/* Open */ +"OpenURLAction alert button title" = "Öffnen"; + +/* Open URL <%@>? */ +"OpenURLAction alert message" = "Link <%@> öffnen?"; + +/* Open URL */ +"OpenURLAction alert title" = "Link öffnen"; + +/* Cancel */ +"OpenURLAction cancel button title" = "Abbrechen"; + +/* Scan Archive */ +"ScanArchiveTitle" = "Scan Archiv"; + +/* Scan */ +"ScanViewController title" = "Scan"; + +/* Show on Map */ +"ShowMapAction action title" = "Auf der Karte zeigen"; + +/* Show */ +"ShowMapAction alert button title" = "Zeigen"; + +/* Show location %@ on Map ? */ +"ShowMapAction alert message" = "Platz %@ auf der Karte Zeigen?"; + +/* Show on Map */ +"ShowMapAction alert title" = "Auf der Karte zeigen"; + +/* Compose SMS to %@ */ +"SMSAction action title" = "SMS an %@ schreiben"; + +/* Compose */ +"SMSAction alert button title" = "Schreiben"; + +/* Compose SMS to %@? */ +"SMSAction alert message" = "SMS an %@ schreiben?"; + +/* SMS */ +"SMSParsedResult type name" = "SMS"; + +/* Tel */ +"TelParsedResult type name" = "Telefon"; + +/* Text */ +"TextParsedResult type name" = "Text"; + +/* URI */ +"URIParsedResult type name" = "Link"; + diff --git a/iphone/Barcodes/de.lproj/MainWindow.xib b/iphone/Barcodes/de.lproj/MainWindow.xib new file mode 100644 index 000000000..e0a569241 --- /dev/null +++ b/iphone/Barcodes/de.lproj/MainWindow.xib @@ -0,0 +1,171 @@ + + + + 512 + 9C7010 + 658 + 949.26 + 352.00 + + YES + + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + YES + + IBFilesOwner + + + IBFirstResponder + + + + + 1292 + + {320, 480} + + + 1 + MSAxIDEAA + + NO + NO + + + + + YES + + + window + + + + 5 + + + + delegate + + + + 9 + + + + + YES + + 0 + + YES + + + + + + 2 + + + YES + + + + + -1 + + + RmlsZSdzIE93bmVyA + + + 3 + + + + + -2 + + + + + + + YES + + YES + -1.CustomClassName + -2.CustomClassName + 2.IBAttributePlaceholdersKey + 2.IBEditorWindowLastContentRect + 2.IBPluginDependency + 3.CustomClassName + 3.IBPluginDependency + + + YES + UIApplication + UIResponder + + YES + + YES + + + YES + + + {{229, 113}, {320, 480}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + ZXingAppDelegate + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + YES + + + YES + + + + + YES + + YES + + + YES + + + + 11 + + + + YES + + ZXingAppDelegate + NSObject + + window + UIWindow + + + IBProjectSource + Classes/ZXingAppDelegate.h + + + + + 0 + ZXing.xcodeproj + 3 + + diff --git a/iphone/Barcodes/de.lproj/Message.xib b/iphone/Barcodes/de.lproj/Message.xib new file mode 100644 index 000000000..cd06af12c --- /dev/null +++ b/iphone/Barcodes/de.lproj/Message.xib @@ -0,0 +1,349 @@ + + + + 768 + 10D573 + 762 + 1038.29 + 460.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 87 + + + YES + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + YES + + YES + + + YES + + + + YES + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + + 274 + {320, 460} + + 3 + MAA + + YES + YES + IBCocoaTouchFramework + YES + + + + + YES + + + view + + + + 5 + + + + + YES + + 0 + + + + + + -1 + + + File's Owner + + + -2 + + + + + 4 + + + + + + + YES + + YES + -1.CustomClassName + -2.CustomClassName + 4.IBPluginDependency + + + YES + MessageViewController + UIResponder + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + + YES + + + + + YES + + + YES + + + + 5 + + + + YES + + MessageViewController + UIViewController + + callbackTarget + id + + + IBProjectSource + Classes/MessageViewController.h + + + + + YES + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSNetServices.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSPort.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSStream.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSXMLParser.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIAccessibility.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UINibLoading.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIResponder.h + + + + UIResponder + NSObject + + + + UISearchBar + UIView + + IBFrameworkSource + UIKit.framework/Headers/UISearchBar.h + + + + UISearchDisplayController + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UISearchDisplayController.h + + + + UIView + + IBFrameworkSource + UIKit.framework/Headers/UITextField.h + + + + UIView + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIView.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UINavigationController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UITabBarController.h + + + + UIViewController + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIViewController.h + + + + UIWebView + UIView + + IBFrameworkSource + UIKit.framework/Headers/UIWebView.h + + + + + 0 + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS + + + + com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS + + + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + ../ZXing.xcodeproj + 3 + 87 + + diff --git a/iphone/Barcodes/en.lproj/About.html b/iphone/Barcodes/en.lproj/About.html new file mode 100644 index 000000000..816c89d21 --- /dev/null +++ b/iphone/Barcodes/en.lproj/About.html @@ -0,0 +1,23 @@ + + +About Barcodes + + + + + +

+ZXing Project Logo

+

Barcodes

+

Version 1.1

+

© 2008-2010 The ZXing +Authors
+

+

+Supported barcode formats: +

+

+QR Code
+

+ \ No newline at end of file diff --git a/iphone/Barcodes/en.lproj/DecoderView.xib b/iphone/Barcodes/en.lproj/DecoderView.xib new file mode 100644 index 000000000..bf75d6633 --- /dev/null +++ b/iphone/Barcodes/en.lproj/DecoderView.xib @@ -0,0 +1,450 @@ + + + + 512 + 9E17 + 670 + 949.33 + 352.00 + + YES + + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + YES + + IBFilesOwner + + + IBFirstResponder + + + + 274 + + YES + + + 266 + {{0, 431}, {320, 49}} + + NO + NO + + YES + + 15 + + + + 1 + 5 + + + + 1 + + NSImage + filmroll-2.png + + + + + 5 + + + + 2 + + NSImage + photolib.png + + + + + 1 + 5 + + + + 16 + 10 + + + + 1 + 5 + + + + 17 + 9 + + + + + + + 274 + {320, 431} + + + 1 + MCAwIDAAA + + NO + 3 + + + {320, 480} + + + 3 + + + + + YES + + + view + + + + 9 + + + + actionBarItem + + + + 51 + + + + performResultAction: + + + + 53 + + + + toolbar + + + + 57 + + + + pickAndDecode: + + + + 60 + + + + pickAndDecode: + + + + 61 + + + + pickAndDecode: + + + + 62 + + + + cameraBarItem + + + + 63 + + + + savedPhotosBarItem + + + + 64 + + + + libraryBarItem + + + + 65 + + + + archiveBarItem + + + + 66 + + + + showArchive: + + + + 67 + + + + imageView + + + + 71 + + + + + YES + + 0 + + YES + + + + + + 1 + + + YES + + + + + + + -1 + + + RmlsZSdzIE93bmVyA + + + -2 + + + + + 34 + + + YES + + + + + + + + + + + + + + 35 + + + + + 36 + + + + + 37 + + + + + 38 + + + + + 54 + + + + + 55 + + + + + 56 + + + + + 58 + + + + + 59 + + + + + 70 + + + + + + + YES + + YES + -1.CustomClassName + -2.CustomClassName + 1.IBEditorWindowLastContentRect + 1.IBPluginDependency + 34.IBPluginDependency + 35.IBPluginDependency + 36.IBPluginDependency + 37.IBPluginDependency + 38.IBPluginDependency + 54.IBPluginDependency + 55.IBPluginDependency + 56.IBPluginDependency + 58.IBPluginDependency + 59.IBPluginDependency + 70.CustomClassName + 70.IBPluginDependency + + + YES + DecoderViewController + UIResponder + {{387, 352}, {320, 480}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + ScannedImageView + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + YES + + + YES + + + + + YES + + YES + + + YES + + + + 71 + + + + YES + + DecoderViewController + UIViewController + + YES + + YES + performResultAction: + pickAndDecode: + showArchive: + + + YES + id + id + id + + + + YES + + YES + actionBarItem + archiveBarItem + cameraBarItem + imageView + libraryBarItem + messageHelpButton + messageTextView + messageView + savedPhotosBarItem + toolbar + + + YES + UIBarItem + UIBarItem + UIBarItem + ScannedImageView + UIBarItem + UIButton + UITextView + UIView + UIBarItem + UIToolbar + + + + IBProjectSource + Classes/DecoderViewController.h + + + + ScannedImageView + UIView + + IBProjectSource + Classes/ScannedImageView.h + + + + + 0 + ../ZXing.xcodeproj + 3 + + diff --git a/iphone/Barcodes/en.lproj/Hints.html b/iphone/Barcodes/en.lproj/Hints.html new file mode 100644 index 000000000..15603d931 --- /dev/null +++ b/iphone/Barcodes/en.lproj/Hints.html @@ -0,0 +1,17 @@ + + +Barcode Hints + + + + + +

The +iPhone camera has a fixed focus depth, which works well for many +situations but is not ideal for scanning barcodes. Specifically, anything that is too close to the camera will look fuzzy +and will be difficult to decode. For best barcode scanning results:

  • Take the picture from a distance of at least 2 feet / 60 cm
  • Use the Scale and +Move screen to place the barcode centered, almost filling the screen
This will give the decoder a large picture +containing mainly the barcode, which will be the easiest for it to +decode. + \ No newline at end of file diff --git a/iphone/Barcodes/en.lproj/InfoPlist.strings b/iphone/Barcodes/en.lproj/InfoPlist.strings new file mode 100644 index 000000000..d22c0553a --- /dev/null +++ b/iphone/Barcodes/en.lproj/InfoPlist.strings @@ -0,0 +1 @@ +CFBundleDisplayName = "Barcodes"; \ No newline at end of file diff --git a/iphone/Barcodes/en.lproj/Localizable.strings b/iphone/Barcodes/en.lproj/Localizable.strings new file mode 100644 index 000000000..a8113c63d --- /dev/null +++ b/iphone/Barcodes/en.lproj/Localizable.strings @@ -0,0 +1,141 @@ +/* Add Contact? */ +"AddContactAction alert message" = "Add Contact?"; + +/* Cancel */ +"AddContactAction cancel button title" = "Cancel"; + +/* Add Contact */ +"AddContactAction confirm button title" = "Add Contact"; + +/* Add Contact */ +"AddContactAction title" = "Add Contact"; + +/* Call %@ */ +"CallAction action title" = "Call %@"; + +/* Call */ +"CallAction alert button title" = "Call"; + +/* Call %@? */ +"CallAction alert message" = "Call %@?"; + +/* Call */ +"CallAction alert title" = "Call"; + +/* Compose */ +"SMSAction alert title" = "Compose"; + +/* Contact */ +"Contact Result Type Name" = "Contact"; + +/* No barcode detected. */ +"Decoder BarcodeDetectionFailure" = "No barcode detected."; + +/* Decoding ... */ +"Decoder MessageWhileDecoding" = "Decoding ..."; + +/* ZXing */ +"DecoderViewController AppTitle" = "Barcodes"; + +/* Cancel */ +"DecoderViewController cancel button title" = "Cancel"; + +/* About */ +"DecoderViewController about button title" = "About"; + +/* Hints */ +"DecoderViewController Hints MessageViewController title" = "Hints"; + +/* About */ +"DecoderViewController About MessageViewController title" = "About"; + +/* Decoding image (%.0fx%.0f) ... */ +"DecoderViewController MessageWhileDecodingWithDimensions" = "Decoding image (%.0fx%.0f) ..."; + +/* Please take or choose a picture containing a barcode */ +"DecoderViewController take or choose picture" = "Please take or choose a picture containing a barcode"; + +/* Email %@ */ +"EmailAction action title" = "Email %@"; + +/* Compose */ +"EmailAction alert button title" = "Compose"; + +/* Compose Email to %@? */ +"EmailAction alert message" = "Compose Email to %@?"; + +/* Compose Email */ +"EmailAction alert title" = "Compose Email"; + +/* %@ */ +"EmailParsedResult Display: Body" = "%@"; + +/* To: %@ */ +"EmailParsedResult Display: Recipient" = "To: %@"; + +/* Subject: %@ */ +"EmailParsedResult Display: Subject" = "Subject: %@"; + +/* Email */ +"EmailParsedResult type name" = "Email"; + +/* Geo: %@ */ +"GeoParsedResult display" = "Geo: %@"; + +/* Geolocation */ +"GeoParsedResult type name" = "Geolocation"; + +/* Open URL */ +"OpenURLAction action title" = "Open URL"; + +/* Open */ +"OpenURLAction alert button title" = "Open"; + +/* Open URL <%@>? */ +"OpenURLAction alert message" = "Open URL <%@>?"; + +/* Open URL */ +"OpenURLAction alert title" = "Open URL"; + +/* Cancel */ +"OpenURLAction cancel button title" = "Cancel"; + +/* Scan Archive */ +"ScanArchiveTitle" = "Scan Archive"; + +/* Scan */ +"ScanViewController title" = "Scan"; + +/* Show on Map */ +"ShowMapAction action title" = "Show on Map"; + +/* Show */ +"ShowMapAction alert button title" = "Show"; + +/* Show location %@ on Map ? */ +"ShowMapAction alert message" = "Show location %@ on Map?"; + +/* Show on Map */ +"ShowMapAction alert title" = "Show on Map"; + +/* Compose SMS to %@ */ +"SMSAction action title" = "Compose SMS to %@"; + +/* Compose */ +"SMSAction alert button title" = "Compose"; + +/* Compose SMS to %@? */ +"SMSAction alert message" = "Compose SMS to %@?"; + +/* SMS */ +"SMSParsedResult type name" = "SMS"; + +/* Tel */ +"TelParsedResult type name" = "Tel"; + +/* Text */ +"TextParsedResult type name" = "Text"; + +/* URI */ +"URIParsedResult type name" = "URI"; + diff --git a/iphone/Barcodes/en.lproj/MainWindow.xib b/iphone/Barcodes/en.lproj/MainWindow.xib new file mode 100644 index 000000000..e0a569241 --- /dev/null +++ b/iphone/Barcodes/en.lproj/MainWindow.xib @@ -0,0 +1,171 @@ + + + + 512 + 9C7010 + 658 + 949.26 + 352.00 + + YES + + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + YES + + IBFilesOwner + + + IBFirstResponder + + + + + 1292 + + {320, 480} + + + 1 + MSAxIDEAA + + NO + NO + + + + + YES + + + window + + + + 5 + + + + delegate + + + + 9 + + + + + YES + + 0 + + YES + + + + + + 2 + + + YES + + + + + -1 + + + RmlsZSdzIE93bmVyA + + + 3 + + + + + -2 + + + + + + + YES + + YES + -1.CustomClassName + -2.CustomClassName + 2.IBAttributePlaceholdersKey + 2.IBEditorWindowLastContentRect + 2.IBPluginDependency + 3.CustomClassName + 3.IBPluginDependency + + + YES + UIApplication + UIResponder + + YES + + YES + + + YES + + + {{229, 113}, {320, 480}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + ZXingAppDelegate + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + YES + + + YES + + + + + YES + + YES + + + YES + + + + 11 + + + + YES + + ZXingAppDelegate + NSObject + + window + UIWindow + + + IBProjectSource + Classes/ZXingAppDelegate.h + + + + + 0 + ZXing.xcodeproj + 3 + + diff --git a/iphone/Barcodes/en.lproj/Message.xib b/iphone/Barcodes/en.lproj/Message.xib new file mode 100644 index 000000000..20ad456af --- /dev/null +++ b/iphone/Barcodes/en.lproj/Message.xib @@ -0,0 +1,349 @@ + + + + 768 + 10D573 + 762 + 1038.29 + 460.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 87 + + + YES + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + YES + + YES + + + YES + + + + YES + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + + 274 + {320, 460} + + 3 + MAA + + YES + YES + IBCocoaTouchFramework + YES + + + + + YES + + + view + + + + 6 + + + + + YES + + 0 + + + + + + -1 + + + File's Owner + + + -2 + + + + + 4 + + + + + + + YES + + YES + -1.CustomClassName + -2.CustomClassName + 4.IBPluginDependency + + + YES + MessageViewController + UIResponder + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + + YES + + + + + YES + + + YES + + + + 6 + + + + YES + + MessageViewController + UIViewController + + callbackTarget + id + + + IBProjectSource + Classes/MessageViewController.h + + + + + YES + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSNetServices.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSPort.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSStream.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSXMLParser.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIAccessibility.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UINibLoading.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIResponder.h + + + + UIResponder + NSObject + + + + UISearchBar + UIView + + IBFrameworkSource + UIKit.framework/Headers/UISearchBar.h + + + + UISearchDisplayController + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UISearchDisplayController.h + + + + UIView + + IBFrameworkSource + UIKit.framework/Headers/UITextField.h + + + + UIView + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIView.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UINavigationController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UITabBarController.h + + + + UIViewController + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIViewController.h + + + + UIWebView + UIView + + IBFrameworkSource + UIKit.framework/Headers/UIWebView.h + + + + + 0 + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS + + + + com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS + + + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + ../ZXing.xcodeproj + 3 + 87 + + diff --git a/iphone/Barcodes/images/ZxingLarge.png b/iphone/Barcodes/images/ZxingLarge.png new file mode 100644 index 0000000000000000000000000000000000000000..688a5a3ef4a742e9e3ce3d7915d444f0c646af00 GIT binary patch literal 15022 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 literal 0 HcmV?d00001 diff --git a/iphone/Barcodes/images/icon.png b/iphone/Barcodes/images/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4ca7bf6ac280522eba57c9f017bedfccfa87cbb3 GIT binary patch literal 3713 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 literal 0 HcmV?d00001 diff --git a/iphone/Barcodes/images/icon@2x.png b/iphone/Barcodes/images/icon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..82fad7b25385f5f6cf2592e8a04034b273d829a9 GIT binary patch literal 10959 zcma)CWm8;D6U8mK2KV3=+&#Fv6Ew)8VR0v62@u>_Bv^2F3GR|$%PtmdaR~14^8ADM z!`xd_HTTv`SNG{N-6uv{Qwax)0t*2F0Y^nyLHG6T_20lidwnLXehEfEKss@fm)BO2 zm#5SAa(8fYwMRhkL;RvY<3c1${4C^F{+j{A)CIS}FOfmTr1F#EywDSYjSKcNZHr=} z9ly$=o6zCOyXF$m_U0eRmz64*PW7iVwn&kfh5)o*+xENtZyxyA0>!t`up`Y<8eq1 znlJ>(2y#t_YP9K1G0(|FDvP9EdFo2#LSj=P)aXub4#T7P-CBvIos%b(HifyG*SLw@ z;L8xr#x<#a`u;cM)zTl@;`6TJ7Nj>nZWO}@ze-ZQ6}-H)CTXQ8zZL8!w!+t7`JwL# z<;FS7ta&m#SB>yU6dAYs80KxNtOZebyX}ZZ4Sok9s@?Q8)YnG*Qkhsn9~vyDQ%Y@pDJWUEf`s>CxZ zgJ-IIGe+{G>@$1qnAVQ}-Gq7FlHpBibxwB2`Csv&ovd~W8pzz}mbZpwP})2&#Yic= z%0Hkh`-npN$S8vk9wC@8=w0`4#$}Z@nZXuEJhWwSaiA9EW6CGIp6?neF1g7)!`-~- zT^$oEY?zbb_~fkoa8l8g0yntRvb;KbbetNr-DKl?2mH26ACob}eU`kWR{3Vr8Zd$Z zPW#F>3rMm- z=3ILEl&EerXMRe@{(*)B6*cs^aA4M|3O2caB8gKBS-G0ouhVE6Sk~g6!8gpZc%)Rp3HxiC)p3u9A zDcYCY5x7o5fPSOLMn8P7D8X%7bT=11#1rD_4e4AHjOlI}eBIK~Z$JU*Y>RbYgnHo1 z!}>a>SxZ&>>aiQ7YhT0Nd0O&j1ztCR>jH$@XTV8n{S+G)49x@sPrH5L7L+#AqTH=XJ+fqh8Kl+!9StC>%lo@E1RTKLT2u(xzBU?Lb0S=&Miwp7fgTo^PVr^ zll(JOMyOhq!hga=jo)BLUHa7Y+#iHf)O4MXPdiFoWKBOmoUXU8UDZIK{$=1>dNAec z-UslZ)yuvA@pEb5aT?^NeI{6J7wl`fSlE+=Fyn;l01E$zQ~?+Mb*HgwG816Pa%8=$ zBz>>58-|R#M}&L!HQ~5*U20D1s$9#SNA8E?e2yq3c_x@!JHP9XZei&CTz)p4^+jX; zQ`H^h*Yg6E*C_qe(~0jd_^+2Ickdw*BfBg5n5oyvX|A+e%f7?ZBdat|F8wv}KRa2- zgyQnPh6)@bYcB_;1sV^-d7Q9%o(+23qIH)#i_sFO=~H0=&#yeJ-Ao@&aCcT|9qmkH z2pd`W7zhXN*!x>{`FX}*k=FMhp# zA3U}G@_YkNN(i!RTn~A$A8QDYmAhAej{Qr+@XhOQRpa#d#lIO`@uNhQS5K2Zuc~(T z6*;xL@s6TG7so)zDnSdS@csqqxo)0%It_h+|CYxC2rauda(?kRk4XO6wf~ej9JsPY zGc`J@+~_k&uXdlxm(lgF{|%)NvTn$~K6GK{lGavCq>Uu1~*amXbROIv2jC~1DH0foWsv~LeTb*AsHht;W?&Xerf){Z%F zfPQ_ii{)ZFSaT}<(lFqm%U{742y-fX7lAk>^>8%zcwqF)Ii1@AmV4Vwlv8qJoDJ0P zw%1y=kFMR7`z#sP6yvuU!%~XXy~E`WeLc*nGQ&7p;TyQG?au*F?wF(;BZG`WuL;b3 zKV)jZEI;pN06RHm>#@o=X1@Nw9PGaaxS{MX?f;yG1bmIv#)_NfJ2 zuh`DOU-xTq@#<*}eAQvwIct}tQ&VohM%S|S7f(}rD^wIs(VbLmthyK&ANQ_?5VZL2 zBL8JY;&B7dy#?kqq3$T(8b^2kpVi<4w9g)m5X-<4h1LgQO}*9Py-Bg?J>@djVSUQV z_w~tA){Uj6Ar*H`dUR6vagGv2M3p3I^ZrvVmi*QuuW{;om0xY%?iCmRxY*jW5Xv3W z@o>_Kmx@<~xAJDcFJ6dxv&r?KFuJFJsP9Xa8tqdK_F{~}hsZJJX=V%Nk8Q99&ChM^ z0SgOkF?k!><}N)uKfQ*+4=V194T7(NN_Q*tJ{`MQJ(zNH)muo+#tXrILf;poV$_3! zuc6SHGng*kCoO5^9h$(SKaW?np@9A*C+_ac*;L(GF7wu{@8S+m3LW^ErmrSzC7+qmsdFd!*>WnLw91_XgKY@ znaYv8>5}a@8MxZ%jX+#XFEDt1HJlmIYzk3ua79cIfpVZ;xDdU?%d3eeZAkj%>niy5 zHE7Z2oi%(f_ceVx^t}6xw3M4eqQzG}#&6{c%2E9MPG+-0i4yz@DWSjaHpzZvR&MLb z4s(m2u27vNX9%$5-8N&$g%-4L;J9a6f-k1eu#?|>6ymF|g;lpe=0DIkfRMv$q-pr{ z*7oIT?|<7>03{2bVXd|`!s|8{aOsT4vb#|wsoBTZ_?#9kvhG8s`4i z$OV-DJ^0x;{89ba?GR7)Oz?>}8@OqP58lqpVkiif6e7CJE~Y3?E~z)?|-|<@Fx_Nn4sZ*ZLvSc+kl5`tvm$mB&w( zP)}j!HN3pN56#v)pn%p@v@T^I;-n5P+-Fk4Z+py$UVkt`<9b3ai)aD3VtWNr^emNH z?G@g08bSauGoNg{pufn;4>Ge#a-9g@iR8Q@5cFnitmgL?YD0XaD)VzjP7vYBoUJaF zBSy6@8lyr4TKD%VQ+%gl?=X$239RNZsd0Dd(D~v#M*qcWAaT@MLXEj(l=-HXSKvZf z&kyS_QmdDzLA&DQi0xw8PCmvccS|8?n3lIEd3aoJ%h6~V?a1oQX-S5_=M zcXh_*X(4!@2&OBG$Zr1b0T$ypRpn}N`TZf4vq3FxqCFHiXA$x^y9x&G4cM-EvxMtXe^y0g-lW3cB&VW z6BW%sz*@-*kwEL-p>V%QW*reS&-w5^s>C9RZCE?nhLB_yo?GW}3tPM^S(+BZ!;QAQr;jH>abjxE0EL$#j%_XE}Z((E}q8K`v zRen=M^{I6|Pynug)vR-@Z$iGj_1WsmfQF)%LCC;-mfMQ56u{^crHbD|n6mu^kzI?i zL}=;f*e3iH&N$;Tf26+G&m=Udwy+xo5(4$ z^w)1RTB28|`tDSR$2TqaolW)UUX$JzV|#P&^b=rfr{I4{_hGHLJ-eDz=x%eiOlpU1 zst+$foAx7&wYYgVcj1~>%c(N@<|_-8GbcGZW2T&}HQ=;XEZ4>Si~jeSSM(TF+d^BTc$0PD8w}O*Skm_4Z7{APpY}JL;K;^@* zaL=Eakk_OxT&t%VSPtWIZw4I@DE-iCwp=?YS6gG=coM_%Yr`-Z9hoeE$*DtNf8%w- zE%6XaHFH@Cg>)EUvEw1J zzzy;GKk*~1yF@^!v5}E2c%3K;A7pl@i*zrX{xum-1$ zaC<9@{>>{ybzR1_uDd-~px!JVL9y9pq<=Z~aF%k;tC!C~mvhF>_ zEHp>UmHIEUsZ%!Z8$V(p|4l?`9D7@Gea6}8YJ#Dfv3KBTBOQ^&iIV5s z=2*RmB}I?IJ@Ji@%O4{fgtOVZk7jY?S95`|gdesRnD-lap-U3SPFiaF;RPwk^z-}g zJcB=|H_%>$zGO^Bv7-5ySJBI1X!#iYv^Bqmv*C#f+zV#iVqkhT{%7x8AvIJ zK3(PuYWY2GqsilHxK_kljK?Rw+ql^iYiU>}V zNGex`q$Cp~ytJedQR3O(aY#Z2MMzw=TXGo`xU02I`@O-LgbG7h?p^-r&Qyg+7e`|6 z>a#+9s#tI%n+2~#Z9E1Nyeoqj$Orc!CQc)-7TK^mu-A5mR+rumc<%$vMrhGfxZE-bQ8DH zHGW143WXdwOrCe;i8rz3tiYAnOeXE$MXS5%%I=_&aRcB_K zdN2Emyh=m!1#^#QROlGfCp&gC;mF z1ldrcK`3}ZBR<1|a2h${?@n)9#!MlNP-|C?ygk{nr=Y(wX@WdEW`yU+6iFD^;=j2|HPO&&?;D5>yJ7^|jag6kI*t#{2B zg6{@{?Agd`S|FF_WUJ^quwI@{Cn~X=Cb8BN!A5u=TX?DQG&_E#v!0T7S^Uf%Nb3Cb zsdW_?kN1Az;V-(h$Zi``Jn^Ut)d{2e64l)-;|2BT?AsvJxma|mf8o&ay6vXyX)%cr zgj_m42VK{i(JjG++gC!FuP9d{lz_L410&4CJmY7UGjzcCanL)O%p81@Xox$QtSpSk zy^WGx;rCKSql@lzey$o_2&^p6`K+^3fWf7`h6dsiR#*}3`lv(C2itE-aQY^*Xi2@*Omd=;-vx3qVvOVtJ>;<^Kx z^@7u*7-|eFCl{8~c46!UE>OCbXnGFl%eQtd)v)_g|9@m$Frh#NZ+XEvzCujBe0?C?gggrhY*bztf=ec1IJxW6NJz z`^Dd46g|RYKVX6-lzKdRU^YgC{p5f);gyPt)9-`n3>Pf`QNYoMGU=!NEMbY!kSy(( zCl|faI$!WX{&@{g+rNluN82}c%_K>wUAXV|P$GAHx(@kx6~C?SK0S^PO^Ex4&g&>$ zeQobRw(1jb89cNT!Q-$0dLDUItHa=lqM2X`M>>9`eak&$Bg6GRRHVB6*yDd03i8DG zPe{fm1`G289E#HJRbEC%N40DInB_75WJ_vM$5ieRDC`;MH?0U%OhK4Y;Zkv{47Bwi z_QQ?K@ZZ3Uyv3EttL<=BRMm?YCUU%;bMtj2DGEM!-LS)9=&vxS9H`9B&>;oZtqmJw zX4fav^5hj~C@!R`7SQODL|J?Kt!R-{XbIvt1=bj#kD%$6Pc*b1&GY{IyyJw7!j@1t zPE%2IAp3jI3+WyArpixI+wQsWL_@A|^2WE?Pp6A@At4auQP8BF7I)WPzXC=M+Mt;< zt=Wx7t^aQVzH(|zaR)jKbUJK4DAzKB1_xcqEWh3%I+BR+W_-VKqGE+|EEidhYln*W zPH3%qe6Isi9HWC1?yxu2I|{hi^X--%vd1|7*FY4}i#%8rf^l)K+o1^+&0*@ZZHeHQjR z@y;*exWgpe&4k#CbZx=@ZEkzOF6> zKoYDMRnA1oYanoFG2xhiwU{|~R8(xNUh7&1Wnb?Zf>NYzxsS!JuHq4i8;xPJK6Q?= zWOfeMnyaUkhLOoK$`q!G5@LA)0}GO~ZqA~b%dF+jRi6%AhC1i#Jo45&i}rD6sl_cC ztcq`mq-N$z>|b;f2#30=a)oAe`QX2EuTI&kX@2eN%0!)m;l_@&PeqENkkrz=m;%?_ zee`0FGemI|XB&4_T?D5E%@R?05gYBPdFEc3??Ut?l>>fpA9u$89LMIB7iG4di^cY* zY6zww!8kV^`U4(K80qO%qPMoBV-S>kI2RFz1h;HuL}!RzE^@c!%;`xZ=;-x7Oq0>x zw2fQ=rvAO%84`fo!-E0aNyX8UM<2=6g{&^!lqtK=qGdm!Dzp%RFOhuKZhCGsqNC

mslMH0ws$G3VnmsZ%&#ifCvmjS@ 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 literal 0 HcmV?d00001 diff --git a/iphone/Barcodes/images/zxing-512.tiff b/iphone/Barcodes/images/zxing-512.tiff new file mode 100644 index 0000000000000000000000000000000000000000..a7a6159ded433026637a32c4e04e3c78dae3e727 GIT binary patch literal 47058 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
bJyUbdFHf&`;D`p&L7rt*8#&E|@~@f!Kp5jY8)e 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 Z7ytn5#MizdO0U`LFaZDm_4Vd8{eQEy;P(Ik literal 0 HcmV?d00001 diff --git a/iphone/Barcodes/main.mm b/iphone/Barcodes/main.mm new file mode 100644 index 000000000..128f50878 --- /dev/null +++ b/iphone/Barcodes/main.mm @@ -0,0 +1,17 @@ +// +// main.mm +// Barcodes +// +// Created by Romain Pechayre on 11/14/10. +// Copyright 2010 __MyCompanyName__. All rights reserved. +// + +#import + +int main(int argc, char *argv[]) { + + NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; + int retVal = UIApplicationMain(argc, argv, nil, nil); + [pool release]; + return retVal; +} diff --git a/iphone/Barcodes/sv.lproj/About.html b/iphone/Barcodes/sv.lproj/About.html new file mode 100644 index 000000000..c8031099c --- /dev/null +++ b/iphone/Barcodes/sv.lproj/About.html @@ -0,0 +1,23 @@ + + +Om Streckkoder + + + + + +

+ZXing Project Logo

+

Streckkoder

+

Version 1.1

+

© 2008-2010 The ZXing +Authors
+

+

+Stödda streckkods-format: +

+

+QR Code
+

+ \ No newline at end of file diff --git a/iphone/Barcodes/sv.lproj/DecoderView.xib b/iphone/Barcodes/sv.lproj/DecoderView.xib new file mode 100644 index 000000000..6acc4ea56 --- /dev/null +++ b/iphone/Barcodes/sv.lproj/DecoderView.xib @@ -0,0 +1,450 @@ + + + + 512 + 9E17 + 670 + 949.33 + 352.00 + + YES + + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + YES + + IBFilesOwner + + + IBFirstResponder + + + + 274 + + YES + + + 266 + {{0, 431}, {320, 49}} + + NO + NO + + YES + + 15 + + + + 1 + 5 + + + + 1 + + NSImage + filmroll-2.png + + + + + 5 + + + + 2 + + NSImage + photolib.png + + + + + 1 + 5 + + + + 16 + 10 + + + + 1 + 5 + + + + 17 + 9 + + + + + + + 274 + {320, 431} + + + 1 + MCAwIDAAA + + NO + 3 + + + {320, 480} + + + 3 + + + + + YES + + + view + + + + 9 + + + + actionBarItem + + + + 51 + + + + performResultAction: + + + + 53 + + + + toolbar + + + + 57 + + + + pickAndDecode: + + + + 60 + + + + pickAndDecode: + + + + 61 + + + + pickAndDecode: + + + + 62 + + + + cameraBarItem + + + + 63 + + + + savedPhotosBarItem + + + + 64 + + + + libraryBarItem + + + + 65 + + + + archiveBarItem + + + + 66 + + + + showArchive: + + + + 67 + + + + imageView + + + + 71 + + + + + YES + + 0 + + YES + + + + + + 1 + + + YES + + + + + + + -1 + + + RmlsZSdzIE93bmVyA + + + -2 + + + + + 34 + + + YES + + + + + + + + + + + + + + 35 + + + + + 36 + + + + + 37 + + + + + 38 + + + + + 54 + + + + + 55 + + + + + 56 + + + + + 58 + + + + + 59 + + + + + 70 + + + + + + + YES + + YES + -1.CustomClassName + -2.CustomClassName + 1.IBEditorWindowLastContentRect + 1.IBPluginDependency + 34.IBPluginDependency + 35.IBPluginDependency + 36.IBPluginDependency + 37.IBPluginDependency + 38.IBPluginDependency + 54.IBPluginDependency + 55.IBPluginDependency + 56.IBPluginDependency + 58.IBPluginDependency + 59.IBPluginDependency + 70.CustomClassName + 70.IBPluginDependency + + + YES + DecoderViewController + UIResponder + {{387, 352}, {320, 480}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + ScannedImageView + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + YES + + + YES + + + + + YES + + YES + + + YES + + + + 71 + + + + YES + + DecoderViewController + UIViewController + + YES + + YES + performResultAction: + pickAndDecode: + showArchive: + + + YES + id + id + id + + + + YES + + YES + actionBarItem + archiveBarItem + cameraBarItem + imageView + libraryBarItem + messageHelpButton + messageTextView + messageView + savedPhotosBarItem + toolbar + + + YES + UIBarItem + UIBarItem + UIBarItem + ScannedImageView + UIBarItem + UIButton + UITextView + UIView + UIBarItem + UIToolbar + + + + IBProjectSource + Classes/DecoderViewController.h + + + + ScannedImageView + UIView + + IBProjectSource + Classes/ScannedImageView.h + + + + + 0 + ../ZXing.xcodeproj + 3 + + diff --git a/iphone/Barcodes/sv.lproj/Hints.html b/iphone/Barcodes/sv.lproj/Hints.html new file mode 100644 index 000000000..ae70c0919 --- /dev/null +++ b/iphone/Barcodes/sv.lproj/Hints.html @@ -0,0 +1,14 @@ + + +Barcode Hints + + + + +

iPhone-kamera har ett fixt fokus-djup, vilket fungerar väl i många +sammanhang men inte är idealiskt för att känna igen streckkoder. Allt +som är för nära kameran kommer att se suddigt ut och vara svårt att +avkoda. För bästa resultat:

  • Ta fotot av streckkoden från minst ca 60 cm
  • I steget Flytta och skalanpassa, centrera streckkoden i bilden och skala upp den till att nästan fylla skärmen
Detta +ger avkodaren en stor, skarp bild med nästan bara streckkoden själv att +tolka, vilket gör avkodarens arbete så lätt som möjligt. \ No newline at end of file diff --git a/iphone/Barcodes/sv.lproj/InfoPlist.strings b/iphone/Barcodes/sv.lproj/InfoPlist.strings new file mode 100644 index 000000000..a53bf351e --- /dev/null +++ b/iphone/Barcodes/sv.lproj/InfoPlist.strings @@ -0,0 +1 @@ +CFBundleDisplayName = "Streckkoder"; \ No newline at end of file diff --git a/iphone/Barcodes/sv.lproj/Localizable.strings b/iphone/Barcodes/sv.lproj/Localizable.strings new file mode 100644 index 000000000..d9cccd018 --- /dev/null +++ b/iphone/Barcodes/sv.lproj/Localizable.strings @@ -0,0 +1,141 @@ +/* Add Contact? */ +"AddContactAction alert message" = "Lägg till kontakt?"; + +/* Cancel */ +"AddContactAction cancel button title" = "Avbryt"; + +/* Add Contact */ +"AddContactAction confirm button title" = "Lägg till kontakt"; + +/* Add Contact */ +"AddContactAction title" = "Lägg till kontakt"; + +/* Call %@ */ +"CallAction action title" = "Ring %@"; + +/* Call */ +"CallAction alert button title" = "Ring"; + +/* Call %@? */ +"CallAction alert message" = "Ring %@?"; + +/* Call */ +"CallAction alert title" = "Ring"; + +/* Compose */ +"SMSAction alert title" = "Skriv"; + +/* Contact */ +"Contact Result Type Name" = "Kontakt"; + +/* No barcode detected. */ +"Decoder BarcodeDetectionFailure" = "Ingen streckkod hittades."; + +/* Decoding ... */ +"Decoder MessageWhileDecoding" = "Avkodar ..."; + +/* ZXing */ +"DecoderViewController AppTitle" = "Streckkoder"; + +/* Cancel */ +"DecoderViewController cancel button title" = "Avbryt"; + +/* About */ +"DecoderViewController about button title" = "Info"; + +/* Hints */ +"DecoderViewController Hints MessageViewController title" = "Tips"; + +/* About */ +"DecoderViewController About MessageViewController title" = "Info"; + +/* Decoding image (%.0fx%.0f) ... */ +"DecoderViewController MessageWhileDecodingWithDimensions" = "Avkodar bild (%.0fx%.0f) ..."; + +/* Please take or choose a picture containing a barcode */ +"DecoderViewController take or choose picture" = "Tag eller välj en bild som innehåller en streckkod"; + +/* Email %@ */ +"EmailAction action title" = "Mejla %@"; + +/* Compose */ +"EmailAction alert button title" = "Skriv"; + +/* Compose Email to %@? */ +"EmailAction alert message" = "Skriv mejl till %@?"; + +/* Compose Email */ +"EmailAction alert title" = "Skriv mejl"; + +/* %@ */ +"EmailParsedResult Display: Body" = "%@"; + +/* To: %@ */ +"EmailParsedResult Display: Recipient" = "Till: %@"; + +/* Subject: %@ */ +"EmailParsedResult Display: Subject" = "Angående: %@"; + +/* Email */ +"EmailParsedResult type name" = "Mejl"; + +/* Geo: %@ */ +"GeoParsedResult display" = "Plats: %@"; + +/* Geolocation */ +"GeoParsedResult type name" = "Geografisk plats"; + +/* Open URL */ +"OpenURLAction action title" = "Öppna länk"; + +/* Open */ +"OpenURLAction alert button title" = "Öppna"; + +/* Open URL <%@>? */ +"OpenURLAction alert message" = "Öppna länk <%@>?"; + +/* Open URL */ +"OpenURLAction alert title" = "Öppna länk"; + +/* Cancel */ +"OpenURLAction cancel button title" = "Avbryt"; + +/* Scan Archive */ +"ScanArchiveTitle" = "Tidigare Streckkoder"; + +/* Scan */ +"ScanViewController title" = "Streckkod"; + +/* Show on Map */ +"ShowMapAction action title" = "Visa på karta"; + +/* Show */ +"ShowMapAction alert button title" = "Visa"; + +/* Show location %@ on Map ? */ +"ShowMapAction alert message" = "Visa plats %@ på karta?"; + +/* Show on Map */ +"ShowMapAction alert title" = "Visa på karta"; + +/* Compose SMS to %@ */ +"SMSAction action title" = "Skriv SMS till %@"; + +/* Compose */ +"SMSAction alert button title" = "Skriv"; + +/* Compose SMS to %@? */ +"SMSAction alert message" = "Skriv SMS till %@?"; + +/* SMS */ +"SMSParsedResult type name" = "SMS"; + +/* Tel */ +"TelParsedResult type name" = "Telefon"; + +/* Text */ +"TextParsedResult type name" = "Text"; + +/* URI */ +"URIParsedResult type name" = "Länk"; + diff --git a/iphone/Barcodes/sv.lproj/MainWindow.xib b/iphone/Barcodes/sv.lproj/MainWindow.xib new file mode 100644 index 000000000..e0a569241 --- /dev/null +++ b/iphone/Barcodes/sv.lproj/MainWindow.xib @@ -0,0 +1,171 @@ + + + + 512 + 9C7010 + 658 + 949.26 + 352.00 + + YES + + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + YES + + IBFilesOwner + + + IBFirstResponder + + + + + 1292 + + {320, 480} + + + 1 + MSAxIDEAA + + NO + NO + + + + + YES + + + window + + + + 5 + + + + delegate + + + + 9 + + + + + YES + + 0 + + YES + + + + + + 2 + + + YES + + + + + -1 + + + RmlsZSdzIE93bmVyA + + + 3 + + + + + -2 + + + + + + + YES + + YES + -1.CustomClassName + -2.CustomClassName + 2.IBAttributePlaceholdersKey + 2.IBEditorWindowLastContentRect + 2.IBPluginDependency + 3.CustomClassName + 3.IBPluginDependency + + + YES + UIApplication + UIResponder + + YES + + YES + + + YES + + + {{229, 113}, {320, 480}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + ZXingAppDelegate + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + YES + + + YES + + + + + YES + + YES + + + YES + + + + 11 + + + + YES + + ZXingAppDelegate + NSObject + + window + UIWindow + + + IBProjectSource + Classes/ZXingAppDelegate.h + + + + + 0 + ZXing.xcodeproj + 3 + + diff --git a/iphone/Barcodes/sv.lproj/Message.xib b/iphone/Barcodes/sv.lproj/Message.xib new file mode 100644 index 000000000..d85b217ee --- /dev/null +++ b/iphone/Barcodes/sv.lproj/Message.xib @@ -0,0 +1,349 @@ + + + + 768 + 10D573 + 762 + 1038.29 + 460.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 87 + + + YES + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + YES + + YES + + + YES + + + + YES + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + + 274 + {320, 460} + + 3 + MAA + + YES + YES + IBCocoaTouchFramework + YES + + + + + YES + + + view + + + + 5 + + + + + YES + + 0 + + + + + + -1 + + + File's Owner + + + -2 + + + + + 4 + + + + + + + YES + + YES + -1.CustomClassName + -2.CustomClassName + 4.IBPluginDependency + + + YES + MessageViewController + UIResponder + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + + YES + + + + + YES + + + YES + + + + 5 + + + + YES + + MessageViewController + UIViewController + + callbackTarget + id + + + IBProjectSource + Classes/MessageViewController.h + + + + + YES + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSNetServices.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSPort.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSStream.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSXMLParser.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIAccessibility.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UINibLoading.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIResponder.h + + + + UIResponder + NSObject + + + + UISearchBar + UIView + + IBFrameworkSource + UIKit.framework/Headers/UISearchBar.h + + + + UISearchDisplayController + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UISearchDisplayController.h + + + + UIView + + IBFrameworkSource + UIKit.framework/Headers/UITextField.h + + + + UIView + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIView.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UINavigationController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UITabBarController.h + + + + UIViewController + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIViewController.h + + + + UIWebView + UIView + + IBFrameworkSource + UIKit.framework/Headers/UIWebView.h + + + + + 0 + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS + + + + com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS + + + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + ../ZXing.xcodeproj + 3 + 87 + +