rhodes 3.3.3.beta.4 → 3.3.3
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +7 -5
- data/CREDITS +2215 -0
- data/Rakefile +225 -59
- data/bin/c2dm.rb +0 -0
- data/bin/get-rhodes-info.bat +0 -0
- data/bin/migrate-rhodes-app +0 -0
- data/bin/migrate-rhodes-app.bat +0 -0
- data/bin/rhodes +0 -0
- data/bin/rhodes-setup +0 -0
- data/bin/rhodes-setup.bat +0 -0
- data/bin/rhogen +0 -0
- data/bin/rhogen.bat +0 -0
- data/bin/set-rhodes-sdk +0 -0
- data/bin/set-rhodes-sdk.bat +0 -0
- data/bin/upgrade-rhodes-app +0 -0
- data/bin/upgrade-rhodes-app.bat +0 -0
- data/doc/build.txt +20 -9
- data/doc/configuration.txt +8 -8
- data/doc/connect-to-web-services.txt +1 -1
- data/doc/device-caps.txt +63 -26
- data/doc/extensions.txt +14 -2
- data/doc/install.txt +28 -19
- data/doc/introduction.txt +6 -3
- data/doc/jqt-jqm-transition.txt +10 -9
- data/doc/release.txt +5 -1
- data/doc/rhodes-command-line.txt +130 -0
- data/doc/rhom.txt +16 -11
- data/doc/rhostudio-eclipse.txt +3 -3
- data/doc/simulator.txt +28 -31
- data/doc/syncengine-ajax-api.txt +246 -0
- data/doc/synchronization.txt +21 -3
- data/doc/test-log-debug.txt +3 -1
- data/doc/ui.txt +16 -16
- data/ext/extconf.rb +8 -0
- data/lib/build/jake.rb +5 -5
- data/lib/extensions/barcode/ext/barcode/platform/android/Rakefile +9 -9
- data/lib/extensions/barcode/ext/barcode/platform/android/jni/src/barcode.cpp +81 -1
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/android/CaptureActivityHandler.java +6 -13
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/android/DecodeHandler.java +2 -6
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/rhomobile/barcode/Barcode.java +12 -1
- data/lib/extensions/barcode/ext/barcode/platform/bb/run.bat +0 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/BarcodeCallbackHelper.h +2 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/BarcodeCallbackHelper.mm +36 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/BarcodeViewController.h +0 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/BarcodeViewController.m +15 -5
- data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/barcode.m +64 -1
- data/lib/extensions/barcode/ext/barcode/shared/ruby/barcode.i +35 -1
- data/lib/extensions/barcode/ext/barcode/shared/ruby/barcode_wrap.c +126 -2
- data/lib/extensions/barcode/ext/barcode/shared/src/zbar.c +18 -1
- data/lib/extensions/barcode/ext/build +0 -0
- data/lib/extensions/barcode/ext/build.bat +0 -0
- data/lib/extensions/digest-md5/ext/Rakefile +12 -10
- data/lib/extensions/digest-md5/ext/build +0 -0
- data/lib/extensions/digest-md5/ext/build.bat +0 -0
- data/lib/extensions/digest-md5/ext/digest-md5.sln +2 -2
- data/lib/extensions/digest-md5/ext/digest-md5.vcproj +41 -28
- data/lib/extensions/digest-sha1/ext/Rakefile +11 -10
- data/lib/extensions/digest-sha1/ext/build +0 -0
- data/lib/extensions/digest-sha1/ext/build.bat +0 -0
- data/lib/extensions/digest-sha1/ext/digest-sha1.sln +2 -2
- data/lib/extensions/digest-sha1/ext/digest-sha1.vcproj +41 -28
- data/lib/extensions/digest/ext/Rakefile +12 -11
- data/lib/extensions/digest/ext/build +0 -0
- data/lib/extensions/digest/ext/build.bat +0 -0
- data/lib/extensions/digest/ext/digest.sln +44 -0
- data/lib/extensions/digest/ext/digest.vcproj +40 -27
- data/lib/extensions/esri/ext/build +0 -0
- data/lib/extensions/esri/ext/build.bat +0 -0
- data/lib/extensions/fcntl/ext/Rakefile +10 -9
- data/lib/extensions/fcntl/ext/build +0 -0
- data/lib/extensions/fcntl/ext/build.bat +0 -0
- data/lib/extensions/fcntl/ext/fcntl.vcproj +1 -1
- data/lib/extensions/nfc/ext/build +0 -0
- data/lib/extensions/nfc/ext/build.bat +0 -0
- data/lib/extensions/nfc/ext/nfc/platform/android/Rakefile +11 -11
- data/lib/extensions/nfc/ext/nfc/platform/android/jni/src/nfc.cpp +0 -0
- data/lib/extensions/nfc/ext/nfc/platform/android/src/com/rhomobile/nfc/Nfc.java +12 -10
- data/lib/extensions/nfc/ext/nfc/shared/ruby/nfc_wrap.c +16 -9
- data/lib/extensions/pdf-writer/color.rb +145 -0
- data/lib/extensions/pdf-writer/color/cmyk.rb +279 -0
- data/lib/extensions/pdf-writer/color/css.rb +28 -0
- data/lib/extensions/pdf-writer/color/grayscale.rb +212 -0
- data/lib/extensions/pdf-writer/color/hsl.rb +221 -0
- data/lib/extensions/pdf-writer/color/palette.rb +16 -0
- data/lib/extensions/pdf-writer/color/palette/adobecolor.rb +272 -0
- data/lib/extensions/pdf-writer/color/palette/gimp.rb +116 -0
- data/lib/extensions/pdf-writer/color/palette/monocontrast.rb +180 -0
- data/lib/extensions/pdf-writer/color/rgb-colors.rb +355 -0
- data/lib/extensions/pdf-writer/color/rgb.rb +453 -0
- data/lib/extensions/pdf-writer/color/rgb/metallic.rb +43 -0
- data/lib/extensions/pdf-writer/color/yiq.rb +84 -0
- data/lib/extensions/pdf-writer/ext/LICENSES/color/Licence.txt +27 -0
- data/lib/extensions/pdf-writer/ext/LICENSES/color/README.txt +32 -0
- data/lib/extensions/pdf-writer/ext/LICENSES/pdf-writer/LICENCE +131 -0
- data/lib/extensions/pdf-writer/ext/LICENSES/pdf-writer/README +33 -0
- data/lib/extensions/pdf-writer/ext/LICENSES/transaction-simple/Licence.txt +25 -0
- data/lib/extensions/pdf-writer/ext/LICENSES/transaction-simple/Readme.txt +204 -0
- data/lib/extensions/pdf-writer/pdf/charts.rb +13 -0
- data/lib/extensions/pdf-writer/pdf/charts/stddev.rb +430 -0
- data/lib/extensions/pdf-writer/pdf/math.rb +108 -0
- data/lib/extensions/pdf-writer/pdf/quickref.rb +332 -0
- data/lib/extensions/pdf-writer/pdf/simpletable.rb +947 -0
- data/lib/extensions/pdf-writer/pdf/techbook.rb +901 -0
- data/lib/extensions/pdf-writer/pdf/writer.rb +2729 -0
- data/lib/extensions/pdf-writer/pdf/writer/arc4.rb +63 -0
- data/lib/extensions/pdf-writer/pdf/writer/fontmetrics.rb +203 -0
- data/lib/extensions/pdf-writer/pdf/writer/fonts/Courier-Bold.afm +342 -0
- data/lib/extensions/pdf-writer/pdf/writer/fonts/Courier-BoldOblique.afm +342 -0
- data/lib/extensions/pdf-writer/pdf/writer/fonts/Courier-Oblique.afm +342 -0
- data/lib/extensions/pdf-writer/pdf/writer/fonts/Courier.afm +342 -0
- data/lib/extensions/pdf-writer/pdf/writer/fonts/Helvetica-Bold.afm +2827 -0
- data/lib/extensions/pdf-writer/pdf/writer/fonts/Helvetica-BoldOblique.afm +2827 -0
- data/lib/extensions/pdf-writer/pdf/writer/fonts/Helvetica-Oblique.afm +3051 -0
- data/lib/extensions/pdf-writer/pdf/writer/fonts/Helvetica.afm +3051 -0
- data/lib/extensions/pdf-writer/pdf/writer/fonts/MustRead.html +19 -0
- data/lib/extensions/pdf-writer/pdf/writer/fonts/Symbol.afm +213 -0
- data/lib/extensions/pdf-writer/pdf/writer/fonts/Times-Bold.afm +2588 -0
- data/lib/extensions/pdf-writer/pdf/writer/fonts/Times-BoldItalic.afm +2384 -0
- data/lib/extensions/pdf-writer/pdf/writer/fonts/Times-Italic.afm +2667 -0
- data/lib/extensions/pdf-writer/pdf/writer/fonts/Times-Roman.afm +2419 -0
- data/lib/extensions/pdf-writer/pdf/writer/fonts/ZapfDingbats.afm +225 -0
- data/lib/extensions/pdf-writer/pdf/writer/graphics.rb +813 -0
- data/lib/extensions/pdf-writer/pdf/writer/graphics/imageinfo.rb +365 -0
- data/lib/extensions/pdf-writer/pdf/writer/lang.rb +43 -0
- data/lib/extensions/pdf-writer/pdf/writer/lang/en.rb +99 -0
- data/lib/extensions/pdf-writer/pdf/writer/object.rb +23 -0
- data/lib/extensions/pdf-writer/pdf/writer/object/action.rb +35 -0
- data/lib/extensions/pdf-writer/pdf/writer/object/annotation.rb +42 -0
- data/lib/extensions/pdf-writer/pdf/writer/object/catalog.rb +39 -0
- data/lib/extensions/pdf-writer/pdf/writer/object/contents.rb +65 -0
- data/lib/extensions/pdf-writer/pdf/writer/object/destination.rb +40 -0
- data/lib/extensions/pdf-writer/pdf/writer/object/encryption.rb +53 -0
- data/lib/extensions/pdf-writer/pdf/writer/object/font.rb +72 -0
- data/lib/extensions/pdf-writer/pdf/writer/object/fontdescriptor.rb +34 -0
- data/lib/extensions/pdf-writer/pdf/writer/object/fontencoding.rb +40 -0
- data/lib/extensions/pdf-writer/pdf/writer/object/image.rb +304 -0
- data/lib/extensions/pdf-writer/pdf/writer/object/info.rb +51 -0
- data/lib/extensions/pdf-writer/pdf/writer/object/outline.rb +30 -0
- data/lib/extensions/pdf-writer/pdf/writer/object/outlines.rb +30 -0
- data/lib/extensions/pdf-writer/pdf/writer/object/page.rb +195 -0
- data/lib/extensions/pdf-writer/pdf/writer/object/pages.rb +115 -0
- data/lib/extensions/pdf-writer/pdf/writer/object/procset.rb +46 -0
- data/lib/extensions/pdf-writer/pdf/writer/object/viewerpreferences.rb +74 -0
- data/lib/extensions/pdf-writer/pdf/writer/ohash.rb +58 -0
- data/lib/extensions/pdf-writer/pdf/writer/oreader.rb +25 -0
- data/lib/extensions/pdf-writer/pdf/writer/state.rb +48 -0
- data/lib/extensions/pdf-writer/pdf/writer/strokestyle.rb +138 -0
- data/lib/extensions/pdf-writer/transaction/simple.rb +486 -0
- data/lib/extensions/pdf-writer/transaction/simple/group.rb +146 -0
- data/lib/extensions/pdf-writer/transaction/simple/threadsafe.rb +68 -0
- data/lib/extensions/pdf-writer/transaction/simple/threadsafe/group.rb +36 -0
- data/lib/framework/builtinME.rb +0 -0
- data/lib/framework/dateOrig.rb +8 -2
- data/lib/framework/rational.rb +0 -0
- data/lib/framework/res/esri.wm.png +0 -0
- data/lib/framework/rho/rho.rb +6 -0
- data/lib/framework/rho/rhobluetooth.rb +0 -0
- data/lib/framework/rho/rhofsconnector.rb +0 -0
- data/lib/framework/rho/rhonativeviewmanager.rb +0 -0
- data/lib/framework/rhofsconnector.rb +0 -0
- data/lib/framework/rhom/rhom_object_factory.rb +8 -0
- data/lib/framework/rhomotoapi.rb +3 -2
- data/platform/android/Rhodes/jni/include/rhodes/JNIRhodes.h +9 -1
- data/platform/android/Rhodes/jni/include/rhodes/details/rhojava.inc +1 -0
- data/platform/android/Rhodes/jni/include/rhodes/jni/com_rhomobile_rhodes_file_RhoFileApi.h +26 -2
- data/platform/android/Rhodes/jni/src/callbacks.cpp +0 -5
- data/platform/android/Rhodes/jni/src/camera.cpp +1 -1
- data/platform/android/Rhodes/jni/src/fileapi.cpp +39 -19
- data/platform/android/Rhodes/jni/src/geolocation.cpp +3 -3
- data/platform/android/Rhodes/jni/src/mapview.cpp +206 -64
- data/platform/android/Rhodes/jni/src/nativeview.cpp +1 -1
- data/platform/android/Rhodes/jni/src/rhodes.cpp +13 -0
- data/platform/android/Rhodes/jni/src/rhodesapp.cpp +20 -0
- data/platform/android/Rhodes/jni/src/rhodessystem.cpp +36 -3
- data/platform/android/Rhodes/jni/src/signature.cpp +22 -2
- data/platform/android/Rhodes/res/drawable/alert_info.png +0 -0
- data/platform/android/Rhodes/res/drawable/esri.png +0 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/Capabilities.java +17 -16
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/Logger.java +4 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/MemoryInfoCollector.java +67 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesActivity.java +139 -114
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesApplication.java +106 -13
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesService.java +11 -3
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/WebView.java +71 -16
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/CameraNewService.java +4 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/CameraSemiService.java +4 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/AbstractRhoExtension.java +22 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/Config.java +243 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/IRhoExtManager.java +19 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/IRhoExtension.java +9 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/{RhodesActivityListener.java → extmanager/IRhoListener.java} +16 -12
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/RhoExtManager.java +63 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/RhoExtManagerImpl.java +239 -14
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/RhodesStartupListeners.java +9 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/WebkitExtension.java +53 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/file/RhoFileApi.java +27 -12
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/geolocation/GeoLocation.java +124 -62
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/geolocation/GeoLocationImpl.java +49 -137
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SimpleMainView.java +84 -114
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SplashScreen.java +75 -82
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/TabbedMainView.java +3 -2
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/Callout.java +4 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/MapBitmapManager.java +124 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/MapView.java +232 -43
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/Request.java +193 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/nativeview/IRhoCustomView.java +13 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/nativeview/RhoNativeViewManager.java +32 -23
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/nativeview/RhoVideoView.java +74 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality.java +6 -7
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality01.java +37 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality03.java +14 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality05.java +51 -38
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality07.java +9 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality08.java +48 -31
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionalityManager.java +15 -16
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/signature/Signature.java +52 -15
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/uri/LocalFileHandler.java +20 -2
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/ChromeClientOld.java +1 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/GoogleWebView.java +77 -34
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/IRhoWebView.java +9 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebChromeClient.java +105 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebViewClient.java +1 -1
- data/platform/android/build/RhodesSRC_build.files +8 -7
- data/platform/android/build/android.rake +326 -216
- data/platform/android/build/androidcommon.rb +27 -13
- data/platform/bb/RubyVM/src/com/rho/file/SimpleFile.java +27 -1
- data/platform/bb/RubyVM/src/j2me/io/File.java +104 -38
- data/platform/bb/build/bb.rake +1 -0
- data/platform/bb/build/runRAPC.bat +0 -0
- data/platform/bb/rhodes/resources/background.png +0 -0
- data/platform/bb/rhodes/resources/esri.png +0 -0
- data/platform/bb/rhodes/resources/mappin.png +0 -0
- data/platform/bb/rhodes/src/com/rho/rubyext/System.java +5 -1
- data/platform/bb/rhodes/src/rhomobile/PushListeningThread.java +2 -2
- data/platform/bb/rhodes/src/rhomobile/mapview/ESRIMapField.java +0 -0
- data/platform/bb/rhodes/src/rhomobile/mapview/ESRIMapProvider.java +0 -0
- data/platform/bb/rhodes/src/rhomobile/mapview/GeoCoding.java +0 -0
- data/platform/bb/rhodes/src/rhomobile/mapview/GoogleGeoCoding.java +0 -0
- data/platform/bb/rhodes/src/rhomobile/mapview/MapTools.java +0 -0
- data/platform/iphone/Classes/AppManager/AppManager.m +7 -1
- data/platform/iphone/Classes/Camera/PickImageDelegate.h +9 -0
- data/platform/iphone/Classes/Camera/PickImageDelegate.m +75 -4
- data/platform/iphone/Classes/GeoLocation/LocationController.h +8 -2
- data/platform/iphone/Classes/GeoLocation/LocationController.m +74 -76
- data/platform/iphone/Classes/InitMemoryInfoCollector.h +33 -0
- data/platform/iphone/Classes/InitMemoryInfoCollector.mm +52 -0
- data/platform/iphone/Classes/NativeView/NVViewController.h +0 -0
- data/platform/iphone/Classes/NativeView/NVViewController.m +34 -2
- data/platform/iphone/Classes/Rhodes.m +22 -2
- data/platform/iphone/Classes/Signature/SignatureDelegate.m +19 -0
- data/platform/iphone/Classes/Signature/SignatureViewController.h +0 -0
- data/platform/iphone/Classes/Signature/SignatureViewController.m +0 -0
- data/platform/iphone/Classes/SimpleMainView.h +0 -0
- data/platform/iphone/Classes/SimpleMainView.m +3 -3
- data/platform/iphone/ESRI/BluePushpin.png +0 -0
- data/platform/iphone/ESRI/BluePushpin@2x.png +0 -0
- data/platform/iphone/ESRI/esri.png +0 -0
- data/platform/iphone/ESRI/esri@2x.png +0 -0
- data/platform/iphone/rbuild/iphone.rake +75 -7
- data/platform/iphone/rhorunner.xcodeproj/project.pbxproj +13 -4
- data/platform/linux/target/compiler/rubylinux +0 -0
- data/platform/mac/target/compiler/RubyMac +0 -0
- data/platform/osx/Rhodes Launcher/rhorunner.app/rhorunner b/data/platform/osx/Rhodes → Launcher/rhorunner.app/rhorunner +0 -0
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Frameworks/QtCore.framework/Versions/4/QtCore +0 -0
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Frameworks/QtGui.framework/Resources/qt_menu.nib/keyedobjects.nib +0 -0
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Frameworks/QtGui.framework/Versions/4/QtGui +0 -0
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Frameworks/QtNetwork.framework/Versions/4/QtNetwork +0 -0
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Frameworks/QtWebKit.framework/Versions/4/QtWebKit +0 -0
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Info.plist +1 -1
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/MacOS/RhoSimulator +0 -0
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/accessible/libqtaccessiblewidgets.dylib +0 -0
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/bearer/libqcorewlanbearer.dylib +0 -0
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/bearer/libqgenericbearer.dylib +0 -0
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/codecs/libqcncodecs.dylib +0 -0
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/codecs/libqjpcodecs.dylib +0 -0
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/codecs/libqkrcodecs.dylib +0 -0
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/codecs/libqtwcodecs.dylib +0 -0
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/graphicssystems/libqtracegraphicssystem.dylib +0 -0
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/imageformats/libqgif.dylib +0 -0
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/imageformats/libqico.dylib +0 -0
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/imageformats/libqjpeg.dylib +0 -0
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/imageformats/libqmng.dylib +0 -0
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/imageformats/libqtga.dylib +0 -0
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/imageformats/libqtiff.dylib +0 -0
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/qmltooling/libqmldbg_inspector.dylib +0 -0
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/qmltooling/libqmldbg_tcp.dylib +0 -0
- data/platform/osx/build/osx.rake +6 -8
- data/platform/shared/RhoConnectClient/RhoConnectClient.cpp +165 -33
- data/platform/shared/RhoConnectClient/RhoConnectClient.h +10 -1
- data/platform/shared/common/BundleManager.cpp +27 -16
- data/platform/shared/common/ExtManager.h +15 -2
- data/platform/shared/common/RhoConf.cpp +17 -2
- data/platform/shared/common/RhoConf.h +3 -1
- data/platform/shared/common/RhoDefs.h +6 -6
- data/platform/shared/common/RhoFatalError.h +1 -1
- data/platform/shared/common/RhoFile.cpp +9 -9
- data/platform/shared/common/RhoFilePath.h +7 -3
- data/platform/shared/common/RhoPort.h +3 -3
- data/platform/shared/common/RhoSystem.h +1 -1
- data/platform/shared/common/RhodesApp.cpp +426 -26
- data/platform/shared/common/RhodesApp.h +11 -3
- data/platform/shared/common/RhodesAppBase.cpp +4 -1
- data/platform/shared/common/StringConverter.h +3 -3
- data/platform/shared/common/app_build_capabilities.h +8 -0
- data/platform/shared/common/map/BaseMapEngine.cpp +302 -21
- data/platform/shared/common/map/BaseMapEngine.h +132 -6
- data/platform/shared/common/map/ESRIMapEngine.cpp +2 -1
- data/platform/shared/common/map/GeocodingMapEngine.cpp +22 -4
- data/platform/shared/common/map/GeocodingMapEngine.h +40 -0
- data/platform/shared/common/map/GoogleMapEngine.cpp +13 -1
- data/platform/shared/common/map/MapEngine.h +7 -0
- data/platform/shared/common/map/OSMMapEngine.cpp +12 -1
- data/platform/shared/json/JSONIterator.cpp +1 -1
- data/platform/shared/json/RJSONTokener.c +2 -0
- data/platform/shared/json/config.h +3 -3
- data/platform/shared/logging/RhoLog.cpp +12 -3
- data/platform/shared/logging/RhoLog.h +2 -1
- data/platform/shared/logging/RhoLogConf.cpp +147 -11
- data/platform/shared/logging/RhoLogConf.h +39 -1
- data/platform/shared/logging/RhoLogSink.cpp +1 -1
- data/platform/shared/net/HttpServer.cpp +8 -4
- data/platform/shared/net/INetRequest.cpp +7 -0
- data/platform/shared/net/INetRequest.h +2 -0
- data/platform/shared/net/RawSocket.cpp +1 -1
- data/platform/shared/qt/pbxproj2pro.pl +0 -0
- data/platform/shared/qt/pro_vcproj_diff.pl +0 -0
- data/platform/shared/qt/rhodes/QtMainWindow.cpp +1 -1
- data/platform/shared/qt/rhodes/impl/RhoClassFactoryImpl.h +2 -2
- data/platform/shared/qt/rhodes/impl/RhoThreadImpl.cpp +2 -2
- data/platform/shared/qt/rhodes/impl/SystemImpl.cpp +11 -1
- data/platform/shared/qt/rhodes/main.cpp +5 -5
- data/platform/shared/ruby/ext/alert/alert_wrap.c +8 -8
- data/platform/shared/ruby/ext/bluetooth/bluetooth.i +0 -0
- data/platform/shared/ruby/ext/bluetooth/bluetooth_wrap.c +16 -9
- data/platform/shared/ruby/ext/camera/camera.i +2 -2
- data/platform/shared/ruby/ext/camera/camera_wrap.c +18 -3
- data/platform/shared/ruby/ext/datetimepicker/datetimepicker_wrap.c +37 -8
- data/platform/shared/ruby/ext/geolocation/geolocation_wrap.c +8 -8
- data/platform/shared/ruby/ext/mapview/mapview_wrap.c +16 -9
- data/platform/shared/ruby/ext/nativebar/nativebar_wrap.c +16 -9
- data/platform/shared/ruby/ext/nativeviewmanager/nativeviewmanager.i +0 -0
- data/platform/shared/ruby/ext/nativeviewmanager/nativeviewmanager_wrap.c +16 -9
- data/platform/shared/ruby/ext/phonebook/phonebook_wrap.c +8 -1
- data/platform/shared/ruby/ext/rho/rhoruby.c +7 -1
- data/platform/shared/ruby/ext/rho/rhoruby.h +1 -0
- data/platform/shared/ruby/ext/rhoconf/rhoconf_wrap.c +16 -9
- data/platform/shared/ruby/ext/signature/signature.i +0 -0
- data/platform/shared/ruby/ext/signature/signature_wrap.c +9 -9
- data/platform/shared/ruby/ext/syncengine/syncengine_wrap.c +16 -9
- data/platform/shared/ruby/ext/system/system_wrap.c +16 -9
- data/platform/shared/ruby/ext/webview/webview_wrap.c +16 -9
- data/platform/shared/ruby/gc.c +1 -0
- data/platform/shared/ruby/regint.h +6 -4
- data/platform/shared/ruby/vm.c +1 -0
- data/platform/shared/ruby/wince/wince.h +1 -1
- data/platform/shared/rubyext/System.cpp +1 -1
- data/platform/shared/shttpd/src/rdispatcher.c +3 -3
- data/platform/shared/shttpd/src/std_includes.h +1 -1
- data/platform/shared/sqlite/sqlite3.c +1 -0
- data/platform/shared/statistic/test/TestProfiling.cpp +1 -1
- data/platform/shared/stlport/build/lib/configure +0 -0
- data/platform/shared/stlport/build/lib/configure.bat +0 -0
- data/platform/shared/sync/SyncEngine.cpp +9 -12
- data/platform/shared/sync/SyncNotify.cpp +36 -3
- data/platform/shared/sync/SyncNotify.h +11 -4
- data/platform/shared/sync/SyncSource.cpp +32 -16
- data/platform/shared/sync/SyncSource.h +2 -3
- data/platform/shared/sync/SyncThread.cpp +13 -4
- data/platform/shared/sync/SyncThread.h +4 -0
- data/platform/shared/tcmalloc/page_heap.h +1 -1
- data/platform/shared/tcmalloc/rhomem.h +1 -1
- data/platform/shared/tcmalloc/windows/port.cpp +12 -3
- data/platform/shared/test/Tests.cpp +4 -4
- data/platform/shared/test/test_helper.cpp +4 -4
- data/platform/symbian/sqlite3/src/sqlite3.h +1 -1
- data/platform/win32/RhoSimulator/Microsoft.VC90.CRT.manifest +6 -0
- data/platform/win32/RhoSimulator/Microsoft.VC90.OpenMP.manifest +6 -0
- data/platform/win32/RhoSimulator/QtCore4.dll +0 -0
- data/platform/win32/RhoSimulator/QtGui4.dll +0 -0
- data/platform/win32/RhoSimulator/QtNetwork4.dll +0 -0
- data/platform/win32/RhoSimulator/QtWebKit4.dll +0 -0
- data/platform/win32/RhoSimulator/RhoSimulator.exe +0 -0
- data/platform/win32/RhoSimulator/imageformats/qgif4.dll +0 -0
- data/platform/win32/RhoSimulator/imageformats/qico4.dll +0 -0
- data/platform/win32/RhoSimulator/imageformats/qjpeg4.dll +0 -0
- data/platform/win32/RhoSimulator/imageformats/qmng4.dll +0 -0
- data/platform/win32/RhoSimulator/imageformats/qsvg4.dll +0 -0
- data/platform/win32/RhoSimulator/imageformats/qtiff4.dll +0 -0
- data/platform/win32/RhoSimulator/libeay32.dll +0 -0
- data/platform/win32/RhoSimulator/msvcm90.dll +0 -0
- data/platform/win32/RhoSimulator/msvcp90.dll +0 -0
- data/platform/win32/RhoSimulator/msvcr90.dll +0 -0
- data/platform/win32/RhoSimulator/phonon4.dll +0 -0
- data/platform/win32/RhoSimulator/ssleay32.dll +0 -0
- data/platform/win32/RhoSimulator/vcomp90.dll +0 -0
- data/platform/win32/target/replaceicon/replaceicon.exe +0 -0
- data/platform/win32/target/updateresstring/updateresstring.exe +0 -0
- data/platform/wm/RhoLib/RhoLib.vcproj +394 -69
- data/platform/wm/build/build_inf.js +83 -23
- data/platform/wm/build/wm.rake +127 -81
- data/platform/wm/rhodes.sln +6 -6
- data/platform/wm/rhodes/DateTimePicker.h +2 -2
- data/platform/wm/rhodes/IBrowserEngine.h +3 -0
- data/platform/wm/rhodes/IEBrowserEngine.cpp +34 -2
- data/platform/wm/rhodes/IEBrowserEngine.h +4 -1
- data/platform/wm/rhodes/LicenseStub.cpp +73 -0
- data/platform/{android/Rhodes/src/com/rhomobile/rhodes/webview/ChromeClientNew.java → wm/rhodes/LogMemory.cpp} +32 -20
- data/platform/{android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebSettings.java → wm/rhodes/LogMemory.h} +11 -8
- data/platform/wm/rhodes/LogOptionsDlg.h +1 -1
- data/platform/wm/rhodes/LogView.cpp +10 -10
- data/platform/wm/rhodes/LogView.h +10 -10
- data/platform/wm/rhodes/MainWindow.cpp +431 -173
- data/platform/wm/rhodes/MainWindow.h +37 -19
- data/platform/wm/rhodes/MapView/MapViewManager.h +1 -1
- data/platform/wm/rhodes/OkCancelModalDialog.h +1 -1
- data/platform/wm/rhodes/Rhodes.cpp +210 -47
- data/platform/wm/rhodes/Rhodes.rc +38 -0
- data/platform/wm/rhodes/bluetooth/Bluetooth.cpp +2 -2
- data/platform/wm/rhodes/bluetooth/Bluetooth.h +3 -3
- data/platform/wm/rhodes/camera/Camera.cpp +2 -1
- data/platform/wm/rhodes/camera/Camera.h +1 -1
- data/platform/wm/rhodes/resource.h +1 -1
- data/platform/wm/rhodes/rho/common/ExtManager.cpp +93 -5
- data/platform/wm/rhodes/rho/net/NetRequestImpl.cpp +2 -2
- data/platform/wm/rhodes/rho/rubyext/NativeToolbar.cpp +2 -2
- data/platform/wm/rhodes/rho/rubyext/SystemImpl.cpp +13 -7
- data/platform/wm/rhodes/rhodes.vcproj +1409 -1008
- data/platform/wm/rhodes/simulator/MainWindowQt.h +1 -1
- data/platform/wm/rhodes/stdafx.h +2 -2
- data/platform/wm/rhoelements.sln +7 -9
- data/platform/wm/rubylib/rubylib.vcproj +62 -1
- data/platform/wm/sqlite3/sqlite3.vcproj +62 -1
- data/platform/wm/syncengine/syncengine.vcproj +62 -1
- data/platform/wm/tcmalloc/tcmalloc.vcproj +72 -53
- data/platform/wm/tools/detool/detool.cpp +1435 -1357
- data/platform/wp7/RhoRubyExtGen/GenerateInitializers.cmd +0 -0
- data/platform/wp7/RhoRubyLib/common/RhoLicense.cs +105 -0
- data/platform/wp7/RhoRubyLib/common/RhodesApp.cs +23 -5
- data/platform/wp7/RhoRubyLib/sync/SyncNotify.cs +5 -0
- data/platform/wp7/RhoRubyLib/views/RhoView.xaml.cs +22 -3
- data/platform/wp7/build/wp.rake +1 -0
- data/platform/wp7/rhodes/MainPage.xaml.cs +11 -0
- data/rakefile.rb +225 -59
- data/res/build-tools/7za.exe +0 -0
- data/res/build-tools/RhoAppRunner.exe +0 -0
- data/res/build-tools/RhoLogServer.exe +0 -0
- data/res/build-tools/RhoRuby.exe +0 -0
- data/res/build-tools/RubyMac +0 -0
- data/res/build-tools/detool.exe +0 -0
- data/res/build-tools/iphonesim/Source/iPhoneSimulator.m +1 -1
- data/res/build-tools/iphonesim/build/Release/iphonesim +0 -0
- data/res/build-tools/iphonesim/build/Release/iphonesim_43 +0 -0
- data/res/build-tools/license_rc.dll +0 -0
- data/res/build-tools/make.exe +0 -0
- data/res/build-tools/rubylinux +0 -0
- data/res/build-tools/swig_patch/Lib/typemaps/fragments.swg +235 -0
- data/res/build-tools/wmdc_connect.exe +0 -0
- data/res/build-tools/wp7explorer.exe +0 -0
- data/res/generators/rhogen.rb +2 -2
- data/res/generators/templates/application/app/Settings/controller.rb +1 -1
- data/res/generators/templates/application/app/layout.erb +1 -1
- data/res/generators/templates/application/app/loading.png +0 -0
- data/res/generators/templates/application/public/css/re_webkit.css +736 -0
- data/res/generators/templates/application/public/css/windows_mobile.css +0 -0
- data/res/generators/templates/application/public/images/listArrow.png +0 -0
- data/res/generators/templates/application/public/jqmobile/images/ajax-loader.png +0 -0
- data/res/generators/templates/application/public/jqmobile/images/icons-18-black.png +0 -0
- data/res/generators/templates/application/public/jqmobile/images/icons-18-white.png +0 -0
- data/res/generators/templates/application/public/jqmobile/images/icons-36-black.png +0 -0
- data/res/generators/templates/application/public/jqmobile/images/icons-36-white.png +0 -0
- data/res/generators/templates/application/public/js/syncengine.js +409 -52
- data/res/generators/templates/extension/extensions/montana/ext/build +0 -0
- data/res/generators/templates/extension/extensions/montana/ext/build.bat +0 -0
- data/res/generators/templates/extension/extensions/montana/ext/montana/platform/android/Rakefile +10 -10
- data/res/generators/templates/spec/app/SpecRunner/controller.rb +2 -0
- data/res/libs/motorolalicence/android/MotorolaLicence.h +13 -0
- data/res/libs/motorolalicence/android/libMotorolaLicence.a +0 -0
- data/res/libs/motorolalicence/iphone/MotorolaLicence.h +13 -0
- data/res/libs/motorolalicence/iphone/libMotorolaLicence.a +0 -0
- data/rhodes.gemspec +1 -1
- data/spec/framework_spec/app/SpecRunner/controller.rb +2 -0
- data/spec/phone_spec/app/SpecRunner/controller.rb +2 -0
- data/version +1 -1
- metadata +487 -412
- data/Manifest.txt +0 -7960
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesActivityStartupListeners.java +0 -12
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebSettingsNew.java +0 -52
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebSettingsOld.java +0 -62
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Frameworks/phonon.framework/Versions/4/phonon +0 -0
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/phonon_backend/libphonon_qt7.dylib +0 -0
- data/platform/win32/RhoSimulator/Microsoft.VC80.CRT.manifest +0 -8
- data/platform/win32/RhoSimulator/Microsoft.VC80.OpenMP.manifest +0 -7
- data/platform/win32/RhoSimulator/msvcm80.dll +0 -0
- data/platform/win32/RhoSimulator/msvcp80.dll +0 -0
- data/platform/win32/RhoSimulator/msvcr80.dll +0 -0
- data/platform/win32/RhoSimulator/vcomp.dll +0 -0
- data/rhomobile-debug-1.0.6.gem +0 -0
@@ -0,0 +1,365 @@
|
|
1
|
+
#--
|
2
|
+
# PDF::Writer for Ruby.
|
3
|
+
# http://rubyforge.org/projects/ruby-pdf/
|
4
|
+
# Copyright 2003 - 2005 Austin Ziegler.
|
5
|
+
#
|
6
|
+
# Licensed under a MIT-style licence. See LICENCE in the main distribution
|
7
|
+
# for full licensing information.
|
8
|
+
#
|
9
|
+
# This file is also licensed under standard Ruby licensing provisions: the
|
10
|
+
# Ruby licence and the GNU General Public Licence, version 2 or later.
|
11
|
+
#
|
12
|
+
# $Id: imageinfo.rb 173 2007-11-15 17:58:43Z sandal $
|
13
|
+
#++
|
14
|
+
require 'pdf/writer/oreader'
|
15
|
+
|
16
|
+
# This is based on ImageSize, by Keisuke Minami <keisuke@rccn.com>. It can
|
17
|
+
# be found at http://www.rubycgi.org/tools/index.en.htm
|
18
|
+
#
|
19
|
+
# This has been integrated into PDF::Writer because as yet there has been
|
20
|
+
# no response to emails asking for my extensions to be integrated and a
|
21
|
+
# RubyGem package to be made available.
|
22
|
+
class PDF::Writer::Graphics::ImageInfo
|
23
|
+
# Image Format Constants
|
24
|
+
module Formats
|
25
|
+
OTHER = "OTHER"
|
26
|
+
GIF = "GIF" # CompuServe GIF87a and GIF89a images.
|
27
|
+
PNG = "PNG" # Portable Network Graphics, PNG
|
28
|
+
JPEG = "JPEG" # JPEG
|
29
|
+
BMP = "BMP" # Windows or OS/2 Bitmaps
|
30
|
+
PPM = "PPM" # PPM is like PBM, PGM, & XV
|
31
|
+
PBM = "PBM"
|
32
|
+
PGM = "PGM"
|
33
|
+
# XV = "XV" # Not supported
|
34
|
+
TIFF = "TIFF" # TIFF formats
|
35
|
+
XBM = "XBM" # X Bitmap
|
36
|
+
XPM = "XPM" # X Pixmap
|
37
|
+
PSD = "PSD" # PhotoShop
|
38
|
+
PCX = "PCX" # PCX Bitmap
|
39
|
+
SWF = "SWF" # Flash
|
40
|
+
end
|
41
|
+
Type = Formats
|
42
|
+
|
43
|
+
class << self
|
44
|
+
def formats
|
45
|
+
Formats.constants
|
46
|
+
end
|
47
|
+
alias :type_list :formats
|
48
|
+
end
|
49
|
+
|
50
|
+
JPEG_SOF_BLOCKS = %W(\xc0 \xc1 \xc2 \xc3 \xc5 \xc6 \xc7 \xc9 \xca \xcb \xcd \xce \xcf)
|
51
|
+
JPEG_APP_BLOCKS = %W(\xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec \xed \xee \xef)
|
52
|
+
|
53
|
+
# Receive image & make size. argument is image String or IO
|
54
|
+
def initialize(data, format = nil)
|
55
|
+
@data = data.dup rescue data
|
56
|
+
@info = {}
|
57
|
+
|
58
|
+
if @data.kind_of?(IO)
|
59
|
+
@top = @data.read(128)
|
60
|
+
@data.seek(0, 0)
|
61
|
+
# Define Singleton-method definition to IO (byte, offset)
|
62
|
+
def @data.read_o(length = 1, offset = nil)
|
63
|
+
self.seek(offset, 0) if offset
|
64
|
+
ret = self.read(length)
|
65
|
+
raise "cannot read!!" unless ret
|
66
|
+
ret
|
67
|
+
end
|
68
|
+
elsif @data.is_a?(String)
|
69
|
+
@top = @data[0, 128]
|
70
|
+
# Define Singleton-method definition to String (byte, offset)
|
71
|
+
@data.extend(PDF::Writer::OffsetReader)
|
72
|
+
else
|
73
|
+
raise "argument class error!! #{data.type}"
|
74
|
+
end
|
75
|
+
|
76
|
+
if format.nil?
|
77
|
+
@format = discover_format
|
78
|
+
else
|
79
|
+
match = false
|
80
|
+
Formats.constants.each { |t| match = true if format == t }
|
81
|
+
raise("format is failed. #{format}\n") unless match
|
82
|
+
@format = format
|
83
|
+
end
|
84
|
+
|
85
|
+
__send__("measure_#@format".intern) unless @format == Formats::OTHER
|
86
|
+
|
87
|
+
@data = data.dup
|
88
|
+
end
|
89
|
+
|
90
|
+
attr_reader :format
|
91
|
+
alias :get_type :format
|
92
|
+
attr_reader :height
|
93
|
+
alias :get_height :height
|
94
|
+
attr_reader :width
|
95
|
+
alias :get_width width
|
96
|
+
|
97
|
+
attr_reader :bits
|
98
|
+
attr_reader :channels
|
99
|
+
|
100
|
+
attr_reader :info
|
101
|
+
|
102
|
+
def discover_format
|
103
|
+
if @top =~ %r{^GIF8[79]a}
|
104
|
+
Formats::GIF
|
105
|
+
elsif @top[0, 3] == "\xff\xd8\xff"
|
106
|
+
Formats::JPEG
|
107
|
+
elsif @top[0, 8] == "\x89PNG\x0d\x0a\x1a\x0a"
|
108
|
+
Formats::PNG
|
109
|
+
elsif @top[0, 3] == "FWS"
|
110
|
+
Formats::SWF
|
111
|
+
elsif @top[0, 4] == "8BPS"
|
112
|
+
Formats::PSD
|
113
|
+
elsif @top[0, 2] == 'BM'
|
114
|
+
Formats::BMP
|
115
|
+
elsif @top[0, 4] == "MM\x00\x2a"
|
116
|
+
Formats::TIFF
|
117
|
+
elsif @top[0, 4] == "II\x2a\x00"
|
118
|
+
Formats::TIFF
|
119
|
+
elsif @top[0, 12] == "\x00\x00\x00\x0c\x6a\x50\x20\x20\x0d\x0a\x87\x0a"
|
120
|
+
Formats::JP2
|
121
|
+
elsif @top =~ %r{^P[1-7]}
|
122
|
+
Formats::PPM
|
123
|
+
elsif @top =~ %r{\#define\s+\S+\s+\d+}
|
124
|
+
Formats::XBM
|
125
|
+
elsif @top =~ %r{/\* XPM \*/}
|
126
|
+
Formats::XPM
|
127
|
+
elsif @top[0] == 10
|
128
|
+
Formats::PCX
|
129
|
+
else
|
130
|
+
Formats::OTHER # might be WBMP
|
131
|
+
end
|
132
|
+
end
|
133
|
+
private :discover_format
|
134
|
+
|
135
|
+
def measure_GIF
|
136
|
+
@data.read_o(6) # Skip GIF8.a
|
137
|
+
@width, @height, @bits = @data.read_o(5).unpack('vvC')
|
138
|
+
if @bits & 0x80 == 0x80
|
139
|
+
@bits = (@bits & 0x07) + 1
|
140
|
+
else
|
141
|
+
@bits = 0
|
142
|
+
end
|
143
|
+
@channels = 3
|
144
|
+
end
|
145
|
+
private :measure_GIF
|
146
|
+
|
147
|
+
def measure_PNG
|
148
|
+
@data.read_o(12)
|
149
|
+
raise "This file is not PNG." unless @data.read_o(4) == "IHDR"
|
150
|
+
# The file information is in the IHDR section.
|
151
|
+
# Offset Bytes Meaning
|
152
|
+
# 0 4 Width
|
153
|
+
# 5 4 Height
|
154
|
+
# 9 1 Bit Depth
|
155
|
+
# 10 1 Compression Method
|
156
|
+
# 11 1 Filter Method
|
157
|
+
# 12 1 Interlace Method
|
158
|
+
ihdr = @data.read_o(13).unpack("NNCCCCC")
|
159
|
+
@width = ihdr[0]
|
160
|
+
@height = ihdr[1]
|
161
|
+
@bits = ihdr[2]
|
162
|
+
@info[:color_type] = ihdr[3]
|
163
|
+
@info[:compression_method] = ihdr[4]
|
164
|
+
@info[:filter_method] = ihdr[5]
|
165
|
+
@info[:interlace_method] = ihdr[6]
|
166
|
+
|
167
|
+
|
168
|
+
end
|
169
|
+
private :measure_PNG
|
170
|
+
|
171
|
+
def measure_JPEG
|
172
|
+
c_marker = "\xff" # Section marker.
|
173
|
+
@data.read_o(2) # Skip the first two bytes of JPEG identifier.
|
174
|
+
loop do
|
175
|
+
marker, code, length = @data.read_o(4).unpack('aan')
|
176
|
+
raise "JPEG marker not found!" if marker != c_marker
|
177
|
+
|
178
|
+
if JPEG_SOF_BLOCKS.include?(code)
|
179
|
+
@bits, @height, @width, @channels = @data.read_o(6).unpack("CnnC")
|
180
|
+
break
|
181
|
+
end
|
182
|
+
|
183
|
+
buffer = @data.read_o(length - 2)
|
184
|
+
|
185
|
+
if JPEG_APP_BLOCKS.include?(code)
|
186
|
+
@info["APP#{code.to_i - 0xe0}"] = buffer
|
187
|
+
end
|
188
|
+
end
|
189
|
+
end
|
190
|
+
private :measure_JPEG
|
191
|
+
|
192
|
+
def measure_BMP
|
193
|
+
# Skip the first 14 bytes of the image.
|
194
|
+
@data.read_o(14)
|
195
|
+
# Up to the next 16 bytes will be used.
|
196
|
+
dim = @data.read_o(16)
|
197
|
+
|
198
|
+
# Get the "size" of the image from the next four bytes.
|
199
|
+
size = dim.unpack("V").first # <- UNPACK RETURNS ARRAY, SO GET FIRST ELEMENT
|
200
|
+
|
201
|
+
if size == 12
|
202
|
+
@width, @height, @bits = dim.unpack("x4vvx3C")
|
203
|
+
elsif size > 12 and (size <= 64 or size == 108)
|
204
|
+
@width, @height, @bits = dim.unpack("x4VVv")
|
205
|
+
end
|
206
|
+
end
|
207
|
+
private :measure_BMP
|
208
|
+
|
209
|
+
def measure_PPM
|
210
|
+
header = @data.read_o(1024)
|
211
|
+
header.gsub!(/^\#[^\n\r]*/m, "")
|
212
|
+
md = %r{^(P[1-6])\s+?(\d+)\s+?(\d+)}mo.match(header)
|
213
|
+
|
214
|
+
@width = md.captures[1]
|
215
|
+
@height = md.captures[2]
|
216
|
+
|
217
|
+
case md.captures[0]
|
218
|
+
when "P1", "P4"
|
219
|
+
@format = "PBM"
|
220
|
+
when "P2", "P5"
|
221
|
+
@format = "PGM"
|
222
|
+
when "P3", "P6"
|
223
|
+
@format = "PPM"
|
224
|
+
# when "P7"
|
225
|
+
# @format = "XV"
|
226
|
+
# header =~ /IMGINFO:(\d+)x(\d+)/m
|
227
|
+
# width = $1.to_i; height = $2.to_i
|
228
|
+
end
|
229
|
+
end
|
230
|
+
private :measure_PPM
|
231
|
+
|
232
|
+
alias :measure_PGM :measure_PPM
|
233
|
+
private :measure_PGM
|
234
|
+
alias :measure_PBM :measure_PPM
|
235
|
+
private :measure_PBM
|
236
|
+
|
237
|
+
XBM_DIMENSIONS_RE = %r{^\#define\s*\S*\s*(\d+)\s*\n\#define\s*\S*\s*(\d+)}mi
|
238
|
+
def measure_XBM
|
239
|
+
md = XBM_DIMENSIONS_RE.match(@data.read_o(1024))
|
240
|
+
|
241
|
+
@width = md.captures[0].to_i
|
242
|
+
@height = md.captures[1].to_i
|
243
|
+
end
|
244
|
+
private :measure_XBM
|
245
|
+
|
246
|
+
XPM_DIMENSIONS_RE = %r<"\s*(\d+)\s+(\d+)(\s+\d+\s+\d+){1,2}\s*">m
|
247
|
+
def measure_XPM
|
248
|
+
while line = @data.read_o(1024)
|
249
|
+
md = XPM_DIMENSIONS_RE.match(line)
|
250
|
+
if md
|
251
|
+
@width = md.captures[0].to_i
|
252
|
+
@height = md.captures[1].to_i
|
253
|
+
break
|
254
|
+
end
|
255
|
+
end
|
256
|
+
end
|
257
|
+
private :measure_XPM
|
258
|
+
|
259
|
+
def measure_PSD
|
260
|
+
@width, @height = @data.read_o(26).unpack("x14NN")
|
261
|
+
end
|
262
|
+
private :measure_PSD
|
263
|
+
|
264
|
+
def measure_PCX
|
265
|
+
header = @data.read_o(128)
|
266
|
+
head_part = header.unpack('C4S4')
|
267
|
+
@width = head_part[6] - head_part[4] + 1
|
268
|
+
@height = head_part[7] - head_part[5] + 1
|
269
|
+
end
|
270
|
+
private :measure_PCX
|
271
|
+
|
272
|
+
def measure_SWF
|
273
|
+
header = @data.read_o(9)
|
274
|
+
raise "This file is not SWF." unless header.unpack('a3')[0] == 'FWS'
|
275
|
+
|
276
|
+
bits = Integer("0b#{header.unpack('@8B5')}")
|
277
|
+
header << @data.read_o(bits * 4 / 8 + 1)
|
278
|
+
|
279
|
+
str = *(header.unpack("@8B#{5 + bits * 4}"))
|
280
|
+
last = 5
|
281
|
+
x_min = Integer("0b#{str[last, bits]}")
|
282
|
+
x_max = Integer("0b#{str[(last + bits), bits]}")
|
283
|
+
y_min = Integer("0b#{str[(last + (2 * bits)), bits]}")
|
284
|
+
y_max = Integer("0b#{str[(last + (3 * bits)), bits]}")
|
285
|
+
@width = (x_max - x_min) / 20
|
286
|
+
@height = (y_max - y_min) / 20
|
287
|
+
end
|
288
|
+
private :measure_SWF
|
289
|
+
|
290
|
+
# The same as SWF, except that the original data is compressed with
|
291
|
+
# Zlib. Disabled for now.
|
292
|
+
def measure_SWC
|
293
|
+
end
|
294
|
+
private :measure_SWC
|
295
|
+
|
296
|
+
def measure_TIFF
|
297
|
+
# 'v' little-endian
|
298
|
+
# 'n' default to big-endian
|
299
|
+
endian = (@data.read_o(4) =~ /II\x2a\x00/o) ? 'v' : 'n'
|
300
|
+
|
301
|
+
packspec = [
|
302
|
+
nil, # nothing (shouldn't happen)
|
303
|
+
'C', # BYTE (8-bit unsigned integer)
|
304
|
+
nil, # ASCII
|
305
|
+
endian, # SHORT (16-bit unsigned integer)
|
306
|
+
endian.upcase, # LONG (32-bit unsigned integer)
|
307
|
+
nil, # RATIONAL
|
308
|
+
'c', # SBYTE (8-bit signed integer)
|
309
|
+
nil, # UNDEFINED
|
310
|
+
endian, # SSHORT (16-bit unsigned integer)
|
311
|
+
endian.upcase, # SLONG (32-bit unsigned integer)
|
312
|
+
]
|
313
|
+
|
314
|
+
# Find the IFD location.
|
315
|
+
ifd_addr = *(@data.read_o(4).unpack(endian.upcase))
|
316
|
+
# Get the number of entries in the IFD.
|
317
|
+
ifd = @data.read_o(2, ifd_addr)
|
318
|
+
num_dirent = *(ifd.unpack(endian)) # Make it useful
|
319
|
+
ifd_addr += 2
|
320
|
+
num_dirent = ifd_addr + (num_dirent * 12) # Calc. maximum offset of IFD
|
321
|
+
|
322
|
+
loop do
|
323
|
+
break if @width and @height
|
324
|
+
|
325
|
+
ifd = @data.read_o(12, ifd_addr) # Get directory entry.
|
326
|
+
break if ifd.nil? or ifd_addr > num_dirent
|
327
|
+
ifd_addr += 12
|
328
|
+
|
329
|
+
tag = *(ifd.unpack(endian)) # ...decode its tag
|
330
|
+
type = *(ifd[2, 2].unpack(endian)) # ... and data type
|
331
|
+
|
332
|
+
# Check the type for sanity.
|
333
|
+
next if type > packspec.size or packspec[type].nil?
|
334
|
+
|
335
|
+
case tag
|
336
|
+
when 0x0100, 0xa002 # width
|
337
|
+
@width = *(ifd[8, 4].unpack(packspec[type]))
|
338
|
+
when 0x0101, 0xa003 # height
|
339
|
+
@height = *(ifd[8, 4].unpack(packspec[type]))
|
340
|
+
end
|
341
|
+
end
|
342
|
+
end
|
343
|
+
private :measure_TIFF
|
344
|
+
end
|
345
|
+
|
346
|
+
if __FILE__ == $0
|
347
|
+
require 'pdf/writer'
|
348
|
+
require 'pdf/writer/graphics'
|
349
|
+
|
350
|
+
print "Image Formats: #{PDF::Writer::Graphics::ImageInfo.formats.inspect}\n"
|
351
|
+
|
352
|
+
Dir.glob("*").each do |file|
|
353
|
+
print "#{file} (string)\n"
|
354
|
+
open(file, "rb") do |fh|
|
355
|
+
image = PDF::Writer::Graphics::ImageInfo.new(fh.read)
|
356
|
+
print <<-EOF
|
357
|
+
Format : #{image.format}
|
358
|
+
Width : #{image.width.inspect}
|
359
|
+
Height : #{image.height.inspect}
|
360
|
+
Bits : #{image.bits.inspect}
|
361
|
+
Channels: #{image.channels.inspect}
|
362
|
+
EOF
|
363
|
+
end
|
364
|
+
end
|
365
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
#--
|
2
|
+
# PDF::Writer for Ruby.
|
3
|
+
# http://rubyforge.org/projects/ruby-pdf/
|
4
|
+
# Copyright 2003 - 2005 Austin Ziegler.
|
5
|
+
#
|
6
|
+
# Licensed under a MIT-style licence. See LICENCE in the main distribution
|
7
|
+
# for full licensing information.
|
8
|
+
#
|
9
|
+
# $Id: lang.rb 57 2005-05-18 11:57:58Z austin $
|
10
|
+
#++
|
11
|
+
|
12
|
+
module PDF::Writer::Lang
|
13
|
+
@message = {}
|
14
|
+
|
15
|
+
class << self
|
16
|
+
# PDF::Writer is fully internationalized. This module method sets the
|
17
|
+
# error messages to the specified language Module. The language Module
|
18
|
+
# must have a constant Hash called +Message+ containing a set of
|
19
|
+
# symbols and localized versions of the messages associated with them.
|
20
|
+
#
|
21
|
+
# If the file 'pdf/writer/lang/es' contains the module
|
22
|
+
# <tt>PDF::Writer::Lang::ES</tt>, the error messages for PDF could be
|
23
|
+
# localized to Espa�ol thus:
|
24
|
+
#
|
25
|
+
# require 'pdf/writer'
|
26
|
+
# require 'pdf/writer/lang/es'
|
27
|
+
#
|
28
|
+
# Localization is module-global; in a multithreaded program, all
|
29
|
+
# threads will use the current language's messages.
|
30
|
+
#
|
31
|
+
# See PDF::Writer::Lang::EN for more information.
|
32
|
+
attr_accessor :language
|
33
|
+
def language=(ll) #:nodoc:
|
34
|
+
@language = ll
|
35
|
+
@message.replace ll.instance_variable_get('@message')
|
36
|
+
end
|
37
|
+
|
38
|
+
# Looks up the mesasge
|
39
|
+
def [](message_id)
|
40
|
+
@message[message_id]
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
#--
|
2
|
+
# PDF::Writer for Ruby.
|
3
|
+
# http://rubyforge.org/projects/ruby-pdf/
|
4
|
+
# Copyright 2003 - 2005 Austin Ziegler.
|
5
|
+
#
|
6
|
+
# Licensed under a MIT-style licence. See LICENCE in the main distribution
|
7
|
+
# for full licensing information.
|
8
|
+
#
|
9
|
+
# $Id: en.rb 134 2005-08-25 03:38:06Z austin $
|
10
|
+
#++
|
11
|
+
# PDF::Writer::Lang::EN is the English-language output module. It contains a
|
12
|
+
# hash, @message, that contains the messages that may be reported by any
|
13
|
+
# method in the PDF library. The messages are identified by a Symbol.
|
14
|
+
#
|
15
|
+
# <b>Symbol</b>:: <b>Meaning</b>
|
16
|
+
# <b>:uri_09x</b>:: URIs must be HTTP or FTP URIs in this version of RSS.
|
17
|
+
module PDF::Writer::Lang::EN
|
18
|
+
@message = {
|
19
|
+
:invalid_pos => ":pos must be either :before or :after.",
|
20
|
+
:req_FPXO => "Pages#<< requires a PDF::Writer::Page, PDF::Writer::Font, or PDF::Writer::ExternalObject.",
|
21
|
+
:req_FPXOH => "Pages#add requires a PDF::Writer::Page, PDF::Writer::Font, PDF::Writer::ExternalObject, or Hash.",
|
22
|
+
:text_width_parameters_reversed => <<-EOS,
|
23
|
+
%s
|
24
|
+
As of PDF::Writer 1.1, the signature for #text_width and #text_line_width
|
25
|
+
is (text, size), not (size, text). It appears that the old version is still
|
26
|
+
in use in your code. Please change it.
|
27
|
+
EOS
|
28
|
+
:add_text_parameters_reversed => <<-EOS,
|
29
|
+
%s
|
30
|
+
As of PDF::Writer 1.1, the signature for #add_text is (x, y, text, size,
|
31
|
+
angle, word_space_adjust), not (x, y, size, text, angle, word_space_adjust).
|
32
|
+
It appears that the old version is still in use in your code. Please change
|
33
|
+
it.
|
34
|
+
EOS
|
35
|
+
:add_textw_parameters_reversed => <<-EOS,
|
36
|
+
%s
|
37
|
+
As of PDF::Writer 1.1, the signature for #add_text_wrap is (x, y, text,
|
38
|
+
size, justification, angle, test), not (x, y, size, text, justification,
|
39
|
+
angle, test). It appears that the old version is still in use in your
|
40
|
+
code. Please change it.
|
41
|
+
EOS
|
42
|
+
:png_invalid_header => "Invalid PNG header.",
|
43
|
+
:png_unsupp_compres => "Unsupported PNG compression method.",
|
44
|
+
:png_unsupp_filter => "Unsupported PNG filter method.",
|
45
|
+
:png_header_missing => "PNG information header is missing.",
|
46
|
+
:png_8bit_colour => "Only PNG colour depths of 8 bits or less are supported.",
|
47
|
+
:png_interlace => "Interlaced PNG images are not currently supported.",
|
48
|
+
:png_alpha_trans => "PNG alpha channel transparency is not supported; only palette transparency is supported.",
|
49
|
+
:data_must_be_array => "The table data is not an Array. (Temporary limitation.)",
|
50
|
+
:columns_unspecified => "Columns are unspecified. They must be data[0] and be an array.",
|
51
|
+
:no_zlib_no_compress => "Could not load Zlib. PDF compression is disabled.",
|
52
|
+
:ttf_licence_no_embedding => "The TrueType font %1s has a licence that does not allow for embedding.",
|
53
|
+
:simpletable_columns_undefined => "Columns are undefined for table.",
|
54
|
+
:simpletable_data_empty => "Table data is empty.",
|
55
|
+
:techbook_eval_exception => <<-EOS,
|
56
|
+
|
57
|
+
Error in document around line %d:
|
58
|
+
%s
|
59
|
+
Backtrace:
|
60
|
+
%s
|
61
|
+
EOS
|
62
|
+
:techbook_bad_columns_directive => "Invalid argument to directive .columns: %s",
|
63
|
+
:techbook_cannot_find_document => "Error: cannot find a document.",
|
64
|
+
:techbook_using_default_doc => "Using default document '%s'.",
|
65
|
+
:techbook_using_cached_doc => "Using cached document '%s'...",
|
66
|
+
:techbook_regenerating => "Cached document is older than source document. Regenerating.",
|
67
|
+
:techbook_ignoring_cache => "Ignoring cached document.",
|
68
|
+
:techbook_unknown_xref => "Unknown cross-reference %s.",
|
69
|
+
:techbook_code_not_empty => "Code is not empty:",
|
70
|
+
:techbook_usage_banner => "Usage: %s [options] [INPUT FILE]",
|
71
|
+
:techbook_usage_banner_1 => [
|
72
|
+
"INPUT FILE, if not specified, will be 'manual.pwd', either in the",
|
73
|
+
"current directory or relative to this file.",
|
74
|
+
""
|
75
|
+
],
|
76
|
+
:techbook_help_force_regen => [
|
77
|
+
"Forces the regeneration of the document,",
|
78
|
+
"ignoring the cached document version."
|
79
|
+
],
|
80
|
+
:techbook_help_no_cache => [
|
81
|
+
"Disables generated document caching.",
|
82
|
+
],
|
83
|
+
:techbook_help_compress => [
|
84
|
+
"Compresses the resulting PDF.",
|
85
|
+
],
|
86
|
+
:techbook_help_help => [
|
87
|
+
"Shows this text.",
|
88
|
+
],
|
89
|
+
:techbook_exception => "Exception %1s around line %2d.",
|
90
|
+
:C_callback_form_error => "Stand-alone callbacks must be of the form <C:callback />.",
|
91
|
+
:c_callback_form_error => "Paired callbacks must be of the form <c:callback>...</c:callback>.",
|
92
|
+
:callback_warning => "Unknown %1s callback: '%2s'. Ignoring.",
|
93
|
+
:charts_stddev_data_empty => "Charts::StdDev data is empty.",
|
94
|
+
:charts_stddev_scale_norange => "Charts::StdDev::Scale has no range.",
|
95
|
+
:charts_stddev_scale_nostep => "Charts::StdDev::Scale has no step.",
|
96
|
+
}
|
97
|
+
|
98
|
+
PDF::Writer::Lang.language = self
|
99
|
+
end
|