Skip to content
Browse files

2.8.7

  • Loading branch information...
1 parent 0c4de35 commit 85194342edcb8ceba28ae7c3db1a909279e420e7 @dalexsoto committed Mar 11, 2013
Showing with 3,232 additions and 747 deletions.
  1. +104 −0 GHeaders/GMSCameraPosition.h
  2. +52 −0 GHeaders/GMSCoordinateBounds.h
  3. +37 −0 GHeaders/GMSGeocoder.h
  4. +46 −0 GHeaders/GMSGroundOverlay.h
  5. +54 −0 GHeaders/GMSGroundOverlayOptions.h
  6. +284 −0 GHeaders/GMSMapView.h
  7. +64 −0 GHeaders/GMSMarker.h
  8. +75 −0 GHeaders/GMSMarkerOptions.h
  9. +69 −0 GHeaders/GMSMutablePath.h
  10. +32 −0 GHeaders/GMSPath.h
  11. +39 −0 GHeaders/GMSPolyline.h
  12. +39 −0 GHeaders/GMSPolylineOptions.h
  13. +64 −0 GHeaders/GMSProjection.h
  14. +41 −0 GHeaders/GMSReverseGeocodeOutput.h
  15. +21 −0 GHeaders/GMSScreenshot.h
  16. +34 −0 GHeaders/GMSServices.h
  17. +45 −0 GHeaders/GMSUISettings.h
  18. BIN GHeaders/GoogleMaps.bundle/GMSCacheStorage.momd/Storage.mom
  19. BIN GHeaders/GoogleMaps.bundle/GMSCacheStorage.momd/Storage.omo
  20. +34 −0 GHeaders/GoogleMaps.bundle/GMSCacheStorage.momd/VersionInfo.plist
  21. BIN GHeaders/GoogleMaps.bundle/GMSSprites-0.png
  22. BIN GHeaders/GoogleMaps.bundle/GMSSprites-0@2x.png
  23. BIN GHeaders/GoogleMaps.bundle/Info.plist
  24. BIN GHeaders/GoogleMaps.bundle/ar.lproj/SDK.strings
  25. BIN GHeaders/GoogleMaps.bundle/bubble_left.png
  26. BIN GHeaders/GoogleMaps.bundle/bubble_left@2x.png
  27. BIN GHeaders/GoogleMaps.bundle/bubble_right.png
  28. BIN GHeaders/GoogleMaps.bundle/bubble_right@2x.png
  29. BIN GHeaders/GoogleMaps.bundle/ca.lproj/SDK.strings
  30. BIN GHeaders/GoogleMaps.bundle/cs.lproj/SDK.strings
  31. BIN GHeaders/GoogleMaps.bundle/da.lproj/SDK.strings
  32. BIN GHeaders/GoogleMaps.bundle/dav_one_way_16_256.png
  33. BIN GHeaders/GoogleMaps.bundle/dav_road_32_128.png
  34. BIN GHeaders/GoogleMaps.bundle/dav_road_32_64.png
  35. BIN GHeaders/GoogleMaps.bundle/dav_road_40_128.png
  36. BIN GHeaders/GoogleMaps.bundle/dav_road_44_64.png
  37. BIN GHeaders/GoogleMaps.bundle/dav_road_48_128.png
  38. BIN GHeaders/GoogleMaps.bundle/dav_road_48_64.png
  39. BIN GHeaders/GoogleMaps.bundle/dav_road_56_128.png
  40. BIN GHeaders/GoogleMaps.bundle/dav_road_hybrid_6_32_high_zoom.png
  41. BIN GHeaders/GoogleMaps.bundle/dav_road_hybrid_6_32_low_zoom.png
  42. BIN GHeaders/GoogleMaps.bundle/de.lproj/SDK.strings
  43. BIN GHeaders/GoogleMaps.bundle/default_marker.png
  44. BIN GHeaders/GoogleMaps.bundle/default_marker@2x.png
  45. BIN GHeaders/GoogleMaps.bundle/el.lproj/SDK.strings
  46. BIN GHeaders/GoogleMaps.bundle/en.lproj/InfoPlist.strings
  47. BIN GHeaders/GoogleMaps.bundle/en.lproj/SDK.strings
  48. BIN GHeaders/GoogleMaps.bundle/en_GB.lproj/SDK.strings
  49. BIN GHeaders/GoogleMaps.bundle/es.lproj/SDK.strings
  50. BIN GHeaders/GoogleMaps.bundle/fi.lproj/SDK.strings
  51. BIN GHeaders/GoogleMaps.bundle/fr.lproj/SDK.strings
  52. BIN GHeaders/GoogleMaps.bundle/he.lproj/SDK.strings
  53. BIN GHeaders/GoogleMaps.bundle/hr.lproj/SDK.strings
  54. BIN GHeaders/GoogleMaps.bundle/hu.lproj/SDK.strings
  55. BIN GHeaders/GoogleMaps.bundle/it.lproj/SDK.strings
  56. BIN GHeaders/GoogleMaps.bundle/ja.lproj/SDK.strings
  57. BIN GHeaders/GoogleMaps.bundle/ko.lproj/SDK.strings
  58. BIN GHeaders/GoogleMaps.bundle/location_dot.png
  59. BIN GHeaders/GoogleMaps.bundle/location_dot@2x.png
  60. BIN GHeaders/GoogleMaps.bundle/logo.png
  61. BIN GHeaders/GoogleMaps.bundle/logo@2x.png
  62. BIN GHeaders/GoogleMaps.bundle/nl.lproj/SDK.strings
  63. BIN GHeaders/GoogleMaps.bundle/no.lproj/SDK.strings
  64. BIN GHeaders/GoogleMaps.bundle/pl.lproj/SDK.strings
  65. BIN GHeaders/GoogleMaps.bundle/polyline_colors_texture.png
  66. BIN GHeaders/GoogleMaps.bundle/polyline_colors_texture@2x.png
  67. BIN GHeaders/GoogleMaps.bundle/pt.lproj/SDK.strings
  68. BIN GHeaders/GoogleMaps.bundle/pt_PT.lproj/SDK.strings
  69. BIN GHeaders/GoogleMaps.bundle/ro.lproj/SDK.strings
  70. BIN GHeaders/GoogleMaps.bundle/ru.lproj/SDK.strings
  71. BIN GHeaders/GoogleMaps.bundle/sk.lproj/SDK.strings
  72. BIN GHeaders/GoogleMaps.bundle/sv.lproj/SDK.strings
  73. BIN GHeaders/GoogleMaps.bundle/th.lproj/SDK.strings
  74. BIN GHeaders/GoogleMaps.bundle/tr.lproj/SDK.strings
  75. BIN GHeaders/GoogleMaps.bundle/turn_arrow_background.png
  76. BIN GHeaders/GoogleMaps.bundle/turn_arrow_foreground.png
  77. BIN GHeaders/GoogleMaps.bundle/uk.lproj/SDK.strings
  78. BIN GHeaders/GoogleMaps.bundle/vi.lproj/SDK.strings
  79. BIN GHeaders/GoogleMaps.bundle/zh_CN.lproj/SDK.strings
  80. BIN GHeaders/GoogleMaps.bundle/zh_TW.lproj/SDK.strings
  81. +31 −0 GHeaders/GoogleMaps.h
  82. +55 −0 Headers/NSDate+PSPDFKitAdditions.h
  83. +35 −0 Headers/NSValueTransformer+PSPDFPredefinedTransformerAdditions.h
  84. +2 −2 Headers/PSPDFAESCryptoDataProvider.h
  85. +3 −3 Headers/PSPDFActionSheet.h
  86. +1 −1 Headers/PSPDFActivityBarButtonItem.h
  87. +5 −5 Headers/PSPDFAlertView.h
  88. +90 −32 Headers/PSPDFAnnotation.h
  89. +2 −2 Headers/PSPDFAnnotationBarButtonItem.h
  90. +6 −6 Headers/PSPDFAnnotationController.h
  91. +20 −6 Headers/PSPDFAnnotationParser.h
  92. +3 −3 Headers/PSPDFAnnotationProvider.h
  93. +44 −11 Headers/PSPDFAnnotationToolbar.h
  94. +4 −1 Headers/PSPDFAnnotationView.h
  95. +6 −6 Headers/PSPDFAttributedLabel.h
  96. +10 −10 Headers/PSPDFBarButtonItem.h
  97. +1 −1 Headers/PSPDFBaseViewController.h
  98. +7 −9 Headers/PSPDFBookmark.h
  99. +2 −2 Headers/PSPDFBookmarkBarButtonItem.h
  100. +2 −2 Headers/PSPDFBookmarkParser.h
  101. +2 −2 Headers/PSPDFBookmarkViewController.h
  102. +1 −1 Headers/PSPDFBrightnessBarButtonItem.h
  103. +2 −2 Headers/PSPDFBrightnessSlider.h
  104. +10 −4 Headers/PSPDFBrightnessViewController.h
  105. +5 −6 Headers/PSPDFCache.h
  106. +1 −1 Headers/PSPDFCloseBarButtonItem.h
  107. +1 −1 Headers/PSPDFColorButton.h
  108. +21 −4 Headers/PSPDFColorPickerView.h
  109. +3 −3 Headers/PSPDFColorSelectionViewController.h
  110. +1 −1 Headers/PSPDFColorView.h
  111. +1 −1 Headers/PSPDFContentScrollView.h
  112. +7 −5 Headers/PSPDFContinuousScrollViewController.h
  113. +6 −8 Headers/PSPDFConverter.h
  114. +61 −24 Headers/PSPDFDocument.h
  115. +4 −2 Headers/PSPDFDocumentDelegate.h
  116. +1 −1 Headers/PSPDFDocumentLabelView.h
  117. +29 −1 Headers/PSPDFDocumentParser.h
  118. +29 −6 Headers/PSPDFDocumentProvider.h
  119. +20 −3 Headers/PSPDFDrawView.h
  120. +19 −13 Headers/PSPDFEmailBarButtonItem.h
  121. +4 −1 Headers/PSPDFExtendedPopoverController.h
  122. +4 −4 Headers/PSPDFFileAnnotationProvider.h
  123. +35 −8 Headers/PSPDFFontInfo.h
  124. +13 −2 Headers/PSPDFFontSelectorViewController.h
  125. +2 −2 Headers/PSPDFFontStyleViewController.h
  126. +10 −1 Headers/PSPDFFreeTextAnnotation.h
  127. +39 −0 Headers/PSPDFFreeTextAnnotationView.h
  128. +3 −1 Headers/PSPDFGenericAnnotationView.h
  129. +2 −2 Headers/PSPDFGlobalLock.h
  130. +24 −13 Headers/PSPDFGlyph.h
  131. +1 −1 Headers/PSPDFGradientView.h
  132. +2 −1 Headers/PSPDFGraphicsState.h
  133. +2 −2 Headers/PSPDFHSVColorPickerController.h
  134. +1 −1 Headers/PSPDFHUDView.h
  135. +17 −12 Headers/PSPDFHighlightAnnotation.h
  136. +1 −1 Headers/PSPDFHighlightAnnotationView.h
  137. +4 −1 Headers/PSPDFHostingAnnotationView.h
  138. +4 −5 Headers/PSPDFIconGenerator.h
  139. +1 −1 Headers/PSPDFImageAnnotationView.h
  140. +11 −1 Headers/PSPDFImageInfo.h
  141. +22 −6 Headers/PSPDFInkAnnotation.h
  142. +35 −0 Headers/PSPDFKeyboardAvoidingScrollView.h
  143. +21 −2 Headers/PSPDFKit.h
  144. +37 −12 Headers/PSPDFKitGlobal.h
  145. +1 −1 Headers/PSPDFLabelParser.h
  146. +3 −3 Headers/PSPDFLabelView.h
  147. +1 −1 Headers/PSPDFLineAnnotation.h
  148. +9 −9 Headers/PSPDFLinkAnnotation.h
  149. +1 −1 Headers/PSPDFLinkAnnotationBaseView.h
  150. +15 −2 Headers/PSPDFLinkAnnotationView.h
  151. +1 −1 Headers/PSPDFLongPressGestureRecognizer.h
  152. +1 −1 Headers/PSPDFLoupeView.h
  153. +29 −6 Headers/PSPDFMenuItem.h
  154. +188 −0 Headers/PSPDFModel.h
  155. +1 −1 Headers/PSPDFMoreBarButtonItem.h
  156. +84 −0 Headers/PSPDFMultiDocumentViewController.h
  157. +1 −1 Headers/PSPDFNavigationAppearanceSnapshot.h
  158. +16 −0 Headers/PSPDFNavigationController.h
  159. +2 −2 Headers/PSPDFNoteAnnotation.h
  160. +8 −4 Headers/PSPDFNoteAnnotationController.h
  161. +2 −2 Headers/PSPDFNoteAnnotationView.h
  162. +6 −2 Headers/PSPDFOpenInBarButtonItem.h
  163. +1 −1 Headers/PSPDFOrderedDictionary.h
  164. +2 −2 Headers/PSPDFOutlineBarButtonItem.h
  165. +4 −4 Headers/PSPDFOutlineCell.h
  166. +11 −4 Headers/PSPDFOutlineElement.h
  167. +12 −4 Headers/PSPDFOutlineParser.h
  168. +7 −7 Headers/PSPDFOutlineViewController.h
  169. +2 −2 Headers/PSPDFPageInfo.h
  170. +1 −1 Headers/PSPDFPageLabelView.h
  171. +7 −3 Headers/PSPDFPageRenderer.h
  172. +2 −2 Headers/PSPDFPageScrollViewController.h
  173. +38 −19 Headers/PSPDFPageView.h
  174. +1 −1 Headers/PSPDFPageViewController.h
  175. +2 −2 Headers/PSPDFPasswordView.h
  176. +1 −1 Headers/PSPDFPatches.h
  177. +6 −3 Headers/PSPDFPopoverController.h
  178. +1 −1 Headers/PSPDFPrintBarButtonItem.h
  179. +34 −11 Headers/PSPDFProcessor.h
  180. +2 −0 Headers/PSPDFProgressHUD.h
  181. +4 −4 Headers/PSPDFRenderQueue.h
  182. +49 −8 Headers/PSPDFResizableView.h
  183. +1 −1 Headers/PSPDFRichMediaAnnotation.h
  184. +19 −0 Headers/PSPDFRoundedLabel.h
  185. +1 −1 Headers/PSPDFScreenAnnotation.h
  186. +29 −8 Headers/PSPDFScrobbleBar.h
  187. +16 −9 Headers/PSPDFScrollView.h
  188. +1 −1 Headers/PSPDFSearchBarButtonItem.h
  189. +4 −2 Headers/PSPDFSearchHighlightView.h
  190. +6 −19 Headers/PSPDFSearchOperation.h
  191. +3 −2 Headers/PSPDFSearchResult.h
  192. +23 −0 Headers/PSPDFSearchResultCell.h
  193. +6 −4 Headers/PSPDFSearchStatusCell.h
  194. +6 −13 Headers/PSPDFSearchViewController.h
  195. +1 −1 Headers/PSPDFSegmentedControl.h
  196. +4 −1 Headers/PSPDFSelectionView.h
  197. +13 −3 Headers/PSPDFShapeAnnotation.h
  198. +85 −6 Headers/PSPDFSignatureViewController.h
  199. +1 −1 Headers/PSPDFSimplePageViewController.h
  200. +2 −2 Headers/PSPDFSinglePageViewController.h
  201. +24 −10 Headers/PSPDFStampAnnotation.h
  202. +66 −0 Headers/PSPDFStampViewController.h
  203. +11 −2 Headers/PSPDFStream.h
  204. +8 −8 Headers/PSPDFStyleable.h
  205. +2 −2 Headers/PSPDFTabBarButton.h
  206. +1 −1 Headers/PSPDFTabBarView.h
  207. +6 −29 Headers/PSPDFTabbedViewController.h
  208. +1 −1 Headers/PSPDFTextBlock.h
  209. +3 −3 Headers/PSPDFTextLine.h
  210. +6 −3 Headers/PSPDFTextParser.h
  211. +4 −4 Headers/PSPDFTextSearch.h
  212. +2 −2 Headers/PSPDFTextSelectionView.h
  213. +47 −0 Headers/PSPDFTextStampViewController.h
  214. +10 −10 Headers/PSPDFThumbnailGridViewCell.h
  215. +3 −3 Headers/PSPDFTransitionHelper.h
  216. +1 −1 Headers/PSPDFTransitionProtocol.h
  217. +1 −1 Headers/PSPDFTransparentToolbar.h
  218. +29 −0 Headers/PSPDFValueTransformer.h
  219. +4 −4 Headers/PSPDFVideoAnnotationView.h
  220. +8 −1 Headers/PSPDFViewController+Delegates.h
  221. +122 −126 Headers/PSPDFViewController.h
  222. +55 −20 Headers/PSPDFViewControllerDelegate.h
  223. +1 −1 Headers/PSPDFViewModeBarButtonItem.h
  224. +11 −2 Headers/PSPDFViewState.h
  225. +1 −1 Headers/PSPDFWebAnnotationView.h
  226. +18 −2 Headers/PSPDFWebViewController.h
  227. +3 −3 Headers/PSPDFWord.h
  228. +1 −1 Headers/PSPDFYouTubeAnnotationView.h
  229. +1 −18 Headers/PSTCollectionView.h
  230. +1 −1 Headers/PSTCollectionViewCell.h
  231. +1 −8 Headers/PSTCollectionViewCommon.h
  232. +1 −1 Headers/PSTCollectionViewController.h
  233. +2 −9 Headers/PSTCollectionViewFlowLayout.h
  234. +4 −2 Headers/PSTCollectionViewLayout.h
  235. +1 −1 Headers/PSTCollectionViewUpdateItem.h
  236. +5 −2 Headers/UIColor+PSPDFKitAdditions.h
  237. +8 −2 Headers/UIImage+PSPDFKitAdditions.h
View
104 GHeaders/GMSCameraPosition.h
@@ -0,0 +1,104 @@
+//
+// GMSCameraPosition.h
+// Google Maps SDK for iOS
+//
+// Copyright 2012 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import <CoreLocation/CoreLocation.h>
+
+
+/**
+ * An immutable class that aggregates all camera position parameters.
+ */
+@interface GMSCameraPosition : NSObject
+
+/**
+ * Designated initializer. Configures this GMSCameraPosition with all available
+ * camera properties. Building a GMSCameraPosition via this initializer (or by
+ * the following convenience constructors) will implicitly clamp camera values.
+ *
+ * @param target location on the earth which the camera points
+ * @param zoom the zoom level near the center of the screen
+ * @param bearing of the camera in degrees from true north
+ * @param viewingAngle in degrees, of the camera angle from the nadir
+ */
+- (id)initWithTarget:(CLLocationCoordinate2D)target
+ zoom:(CGFloat)zoom
+ bearing:(CLLocationDirection)bearing
+ viewingAngle:(double)viewingAngle;
+
+/**
+ * Convenience constructor for GMSCameraPosition for a particular target and
+ * zoom level. This will set the bearing and viewingAngle properties of this
+ * camera to zero defaults. i.e., directly facing the Earth's surface, with the
+ * top of the screen pointing north.
+ */
++ (GMSCameraPosition *)cameraWithTarget:(CLLocationCoordinate2D)target
+ zoom:(CGFloat)zoom;
+
+/**
+ * Convenience constructor for GMSCameraPosition, as per cameraWithTarget:zoom:.
+ */
++ (GMSCameraPosition *)cameraWithLatitude:(CLLocationDegrees)latitude
+ longitude:(CLLocationDegrees)longitude
+ zoom:(CGFloat)zoom;
+
+/**
+ * Convenience constructor for GMSCameraPosition, with all camera properties as
+ * per initWithTarget:zoom:bearing:viewingAngle:.
+ */
++ (GMSCameraPosition *)cameraWithTarget:(CLLocationCoordinate2D)target
+ zoom:(CGFloat)zoom
+ bearing:(CLLocationDirection)bearing
+ viewingAngle:(double)viewingAngle;
+
+/**
+ * Convenience constructor for GMSCameraPosition, with latitude/longitude and
+ * all other camera properties as per initWithTarget:zoom:bearing:viewingAngle:.
+ */
++ (GMSCameraPosition *)cameraWithLatitude:(CLLocationDegrees)latitude
+ longitude:(CLLocationDegrees)longitude
+ zoom:(CGFloat)zoom
+ bearing:(CLLocationDirection)bearing
+ viewingAngle:(double)viewingAngle;
+
+/** Location on the Earth towards which the camera points. */
+@property (nonatomic, readonly, getter=targetAsCoordinate) CLLocationCoordinate2D target;
+
+/**
+ * Zoom level. Zoom uses an exponentional scale, where zoom 0 represents the
+ * entire world as a 256 x 256 square. Each successive zoom level increases
+ * magnification by a factor of 2. At zoom 10, the entire world is a 256k x
+ * 256k square, and so on.
+ */
+@property (nonatomic, readonly) CGFloat zoom;
+
+/**
+ * Bearing of the camera, in degrees clockwise from true north.
+ */
+@property (nonatomic, readonly) CLLocationDirection bearing;
+
+/**
+ * The angle, in degrees, of the camera angle from the nadir (directly facing
+ * the Earth). 0 is straight down, 90 is parallel to the ground. Note that the
+ * maximum angle allowed is 45 degrees.
+ */
+@property (nonatomic, readonly) double viewingAngle;
+
+@end
+
+/**
+ * The maximum zoom (closest to the Earth's surface) permitted by the map
+ * camera.
+ */
+FOUNDATION_EXTERN const CGFloat kGMSMaxZoomLevel;
+
+/**
+ * The minimum zoom (farthest from the Earth's surface) permitted by the map
+ * camera.
+ */
+FOUNDATION_EXTERN const CGFloat kGMSMinZoomLevel;
View
52 GHeaders/GMSCoordinateBounds.h
@@ -0,0 +1,52 @@
+//
+// GMSCoordinateBounds.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import <CoreLocation/CoreLocation.h>
+#import <GoogleMaps/GMSProjection.h>
+
+/**
+ * GMSCoordinateBounds represents a rectangular bounding box on the Earth's
+ * surface. Is is immutable and can't be modified after construction.
+ */
+@interface GMSCoordinateBounds : NSObject
+
+@property (readonly) CLLocationCoordinate2D northEast;
+
+@property (readonly) CLLocationCoordinate2D southWest;
+
+/**
+ * Inits the northEast and southWest bounds corresponding
+ * to the rectangular region defined by the two corners.
+ *
+ * It is ambiguous whether the longitude of the box
+ * extends from |coord1| to |coord2| or vice-versa;
+ * the box is constructed as the smaller of the two variants, eliminating the
+ * ambiguity.
+ */
+- (id)initWithCoordinate:(CLLocationCoordinate2D)coord1
+ andCoordinate:(CLLocationCoordinate2D)coord2;
+
+/**
+ * Inits bounds that encompass |region|.
+ */
+- (id)initWithRegion:(GMSVisibleRegion)region;
+
+/**
+ * Allocates and returns a new GMSCoordinateBounds, representing
+ * the current bounds extended to include the passed-in coordinate.
+ */
+- (GMSCoordinateBounds *)including:(CLLocationCoordinate2D)coordinate;
+
+/**
+ * Returns YES if |coordinate| is contained within the bounds.
+ */
+- (BOOL)containsCoordinate:(CLLocationCoordinate2D)coordinate;
+
+@end
View
37 GHeaders/GMSGeocoder.h
@@ -0,0 +1,37 @@
+//
+// GMSGeocoder.h
+// Google Maps SDK for iOS
+//
+// Copyright 2012 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import <CoreLocation/CoreLocation.h>
+
+#import <GoogleMaps/GMSReverseGeocodeOutput.h>
+
+typedef void (^GMSReverseGeocodeCallback)(GMSReverseGeocodeResponse *,
+ NSError *);
+
+/**
+ * Exposes a service for reverse geocoding. This maps Earth coordinates
+ * (latitude and longitude) to a collection of addresses near that coordinate.
+ */
+@interface GMSGeocoder : NSObject
+
+/* Convenience constructor for GMSGeocoder. */
++ (GMSGeocoder *)geocoder;
+
+/**
+ * Reverse geocodes a coordinate on the Earth's surface.
+ *
+ * @param coordinate The coordinate to reverse geocode.
+ * @param handler The callback to invoke with the reverse geocode results.
+ * The callback will be invoked asynchronously from the main thread.
+ */
+- (void)reverseGeocodeCoordinate:(CLLocationCoordinate2D)coordinate
+ completionHandler:(GMSReverseGeocodeCallback)handler;
+
+@end
View
46 GHeaders/GMSGroundOverlay.h
@@ -0,0 +1,46 @@
+//
+// GMSGroundOverlay.h
+// Google Maps SDK for iOS
+//
+// Copyright 2012 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import <CoreLocation/CoreLocation.h>
+
+/** Ground overlay on a map. */
+@protocol GMSGroundOverlay <NSObject>
+
+/**
+ * The position of this ground overlay, or more specifically, the physical
+ * position of its anchor.
+ */
+@property (nonatomic, assign) CLLocationCoordinate2D position;
+
+/**
+ * As groundAnchor on GMSMarker. Specifies where the overlay is anchored to the
+ * earth in relation to its position.
+ */
+@property (nonatomic, assign) CGPoint anchor;
+
+/** Icon to render on the earth. Unlike for GMSMarker, this is required. */
+@property (nonatomic, strong) UIImage *icon;
+
+/**
+ * The zoom level at which this ground overlay is displayed at 1:1. This value
+ * is clamped in the range [kGMSMinZoomLevel, kGMSMaxZoomLevel].
+ */
+@property (nonatomic, assign) CGFloat zoomLevel;
+
+/**
+ * Bearing of this ground overlay, in degrees. The default value, zero, points
+ * this overlay up/down along the normal Y axis of the earth.
+ */
+@property (nonatomic, assign) CLLocationDirection bearing;
+
+/** Removes this ground overlay from the map. */
+- (void)remove;
+
+@end
View
54 GHeaders/GMSGroundOverlayOptions.h
@@ -0,0 +1,54 @@
+//
+// GMSGroundOverlayOptions.h
+// Google Maps SDK for iOS
+//
+// Copyright 2012 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import <CoreLocation/CoreLocation.h>
+
+/**
+ * The default position of the ground anchor of a GMSGroundOverlay: the center
+ * point of the icon.
+ */
+FOUNDATION_EXTERN const CGPoint kGMSGroundOverlayDefaultAnchor;
+
+/** The default zoom level this overlay is displayed at. */
+FOUNDATION_EXTERN const CGFloat kGMSGroundOverlayDefaultZoom;
+
+@interface GMSGroundOverlayOptions : NSObject
+
+/**
+ * The position of this ground overlay, or more specifically, the physical
+ * position of its anchor.
+ */
+@property (nonatomic, assign) CLLocationCoordinate2D position;
+
+/**
+ * As groundAnchor on GMSMarker. Specifies where the overlay is anchored to the
+ * earth in relation to its position.
+ */
+@property (nonatomic, assign) CGPoint anchor;
+
+/** Icon to render on the earth. Unlike for GMSMarker, this is required. */
+@property (nonatomic, strong) UIImage *icon;
+
+/**
+ * The zoom level at which this ground overlay is displayed at 1:1. This value
+ * is clamped in the range [kGMSMinZoomLevel, kGMSMaxZoomLevel].
+ */
+@property (nonatomic, assign) CGFloat zoomLevel;
+
+/**
+ * Bearing of this ground overlay, in degrees. The default value, zero, points
+ * this overlay up/down along the normal Y axis of the earth.
+ */
+@property (nonatomic, assign) CLLocationDirection bearing;
+
+/** Convenience constructor for default initialized options. */
++ (GMSGroundOverlayOptions *)options;
+
+@end
View
284 GHeaders/GMSMapView.h
@@ -0,0 +1,284 @@
+//
+// GMSMapView.h
+// Google Maps SDK for iOS
+//
+// Copyright 2012 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import <CoreLocation/CoreLocation.h>
+#import <UIKit/UIKit.h>
+
+#import <GoogleMaps/GMSUISettings.h>
+
+@class GMSCameraPosition;
+@class GMSGroundOverlayOptions;
+@class GMSMapView;
+@class GMSMarkerOptions;
+@class GMSPolylineOptions;
+@class GMSProjection;
+
+@protocol GMSGroundOverlay;
+@protocol GMSMarker;
+@protocol GMSPolyline;
+
+@protocol GMSMapViewDelegate <NSObject>
+
+@optional
+
+/**
+ * Called after the camera position has changed. During an animation, this
+ * delegate might not be notified of intermediate camera positions. However, it
+ * will always be called eventually with the final position of an the animation.
+ */
+- (void)mapView:(GMSMapView *)mapView
+ didChangeCameraPosition:(GMSCameraPosition *)position;
+
+/**
+ * Called after a tap gesture at a particular coordinate, but only if a marker
+ * was not tapped. This is called before deselecting any currently selected
+ * marker (the implicit action for tapping on the map).
+ */
+- (void)mapView:(GMSMapView *)mapView
+ didTapAtCoordinate:(CLLocationCoordinate2D)coordinate;
+
+/**
+ * Called after a long-press gesture at a particular coordinate.
+ *
+ * @param mapView The map view that was pressed.
+ * @param coordinate The location that was pressed.
+ */
+- (void)mapView:(GMSMapView *)mapView
+ didLongPressAtCoordinate:(CLLocationCoordinate2D)coordinate;
+
+/**
+ * Called after a marker has been tapped.
+ *
+ * @param mapView The map view that was pressed.
+ * @param marker The marker that was pressed.
+ * @return YES if this delegate handled the tap event, which prevents the map
+ * from performing its default selection behavior, and NO if the map
+ * should continue with its default selection behavior.
+ */
+- (BOOL)mapView:(GMSMapView *)mapView didTapMarker:(id<GMSMarker>)marker;
+
+/**
+ * Called after a marker's info window has been tapped.
+ */
+- (void)mapView:(GMSMapView *)mapView
+ didTapInfoWindowOfMarker:(id<GMSMarker>)marker;
+
+/**
+ * Called when a marker is about to become selected, and provides an optional
+ * custom info window to use for that marker if this method returns a UIView.
+ * If you change this view after this method is called, those changes will not
+ * necessarily be reflected in the rendered version.
+ *
+ * The returned UIView must not have bounds greater than 500 points on either
+ * dimension. As there is only one info window shown at any time, the returned
+ * view may be reused between other info windows.
+ *
+ * @return The custom info window for the specified marker, or nil for default
+ */
+- (UIView *)mapView:(GMSMapView *)mapView
+ markerInfoWindow:(id<GMSMarker>)marker;
+
+@end
+
+/**
+ * Display types for GMSMapView.
+ */
+typedef enum {
+ /** Basic maps. The default. */
+ kGMSTypeNormal = 1,
+
+ /** Satellite maps with no labels. */
+ kGMSTypeSatellite,
+
+ /** Terrain maps. */
+ kGMSTypeTerrain,
+
+ /** Satellite maps with a transparent label overview. */
+ kGMSTypeHybrid,
+
+} GMSMapViewType;
+
+/**
+ * A map view. This class should not be instantiated directly, instead it
+ * must be created with [GMSServices mapWithFrame:camera:].
+ *
+ * GMSMapView is not thread safe, and should only be interacted with on the UI
+ * thread. This also follows for related objects such as markers and polylines.
+ */
+@interface GMSMapView : UIView
+
+/** GMSMapView delegate. */
+@property (nonatomic, weak) id<GMSMapViewDelegate> delegate;
+
+/**
+ * Controls the camera, which defines how the map is oriented. If this property
+ * is explicitly set, the camera is moved immediately, without animation; this
+ * will also stop any previous animation.
+ */
+@property (nonatomic, strong) GMSCameraPosition *camera;
+
+/**
+ * The GMSProjection currently used by this GMSMapView. This is a snapshot of
+ * the current projection, and will not automatically update when the camera
+ * moves. The projection may be nil while the render is not running (if the map
+ * is not yet part of your UI, or is part of a hidden UIViewController, or you
+ * have called stopRendering).
+ */
+@property (nonatomic, readonly) GMSProjection *projection;
+
+/**
+ * Controls whether the My Location dot and accuracy circle is enabled.
+ * Defaults to NO.
+ */
+@property (nonatomic, assign, getter=isMyLocationEnabled) BOOL myLocationEnabled;
+
+/**
+ * If My Location is enabled, reveals where the user location dot is being
+ * drawn. If it is disabled, or it is enabled but no location data is available,
+ * this will be nil. This property is observable using KVO.
+ */
+@property (nonatomic, strong, readonly) CLLocation *myLocation;
+
+/**
+ * The marker that is selected. Setting this property selects a particular
+ * marker, showing an info window on it. If this property is non-nil, setting
+ * it to nil deselects the marker, hiding the info window. This property is
+ * observable using KVO.
+ */
+@property (nonatomic, strong) id<GMSMarker> selectedMarker;
+
+/**
+ * Controls whether the map is drawing traffic data, if available. This is
+ * subject to the availability of traffic data. Defaults to NO.
+ */
+@property (nonatomic, assign, getter=isTrafficEnabled) BOOL trafficEnabled;
+
+/**
+ * Controls the type of map tiles that should be displayed. Defaults to
+ * kGMSTypeNormal.
+ */
+@property (nonatomic, assign) GMSMapViewType mapType;
+
+/**
+ * Gets the GMSUISettings object, which controls user interface settings for the
+ * map.
+ */
+@property (nonatomic, readonly) GMSUISettings *settings;
+
+/**
+ * Builds and returns a GMSMapView, with a frame and camera target.
+ */
++ (GMSMapView *)mapWithFrame:(CGRect)frame
+ camera:(GMSCameraPosition *)camera;
+
+/**
+ * Tells this map to power up its renderer. This is optional- GMSMapView will
+ * automatically invoke this method when added to a window. It is safe to call
+ * this method more than once.
+ */
+- (void)startRendering;
+
+/**
+ * Tells this map to power down its renderer, releasing its resources. This is
+ * optional- GMSMapView will automatically invoke this method when removed from
+ * a window. It is safe to call this method more than once.
+ */
+- (void)stopRendering;
+
+/**
+ * Animates the camera of this map to |cameraPosition|. During the animation,
+ * retrieving the camera position through the camera property returns an
+ * intermediate immutable GMSCameraPosition.
+ *
+ * The duration of this animation, and those below (animateToLocation:,
+ * animateToZoom:, animateToBearing: and animateToViewingAngle:) is controlled
+ * by Core Animation.
+ */
+- (void)animateToCameraPosition:(GMSCameraPosition *)cameraPosition;
+
+/**
+ * As animateToCamera:, but changes only the location of the camera (i.e., from
+ * the current location to |location|).
+ */
+- (void)animateToLocation:(CLLocationCoordinate2D)location;
+
+/**
+ * As animateToCamera:, but changes only the zoom level of the camera. This
+ * value is clamped by [kGMSMinZoomLevel, kGMSMaxZoomLevel].
+ */
+- (void)animateToZoom:(CGFloat)zoom;
+
+/**
+ * As animateToCamera:, but changes only the bearing of the camera (in degrees).
+ * Zero indicates true north.
+ */
+- (void)animateToBearing:(CLLocationDirection)bearing;
+
+/**
+ * As animateToCamera:, but changes only the viewing angle of the camera (in
+ * degrees). This value will be clamped to a minimum of zero (i.e., facing
+ * straight down) and between 30 and 45 degrees towards the horizon, depending
+ * on the relative closeness to the earth.
+ */
+- (void)animateToViewingAngle:(double)viewingAngle;
+
+/**
+ * Adds a marker to the map. To remove the marker, call GMSMarker remove.
+ *
+ * @param options The marker options that configure the marker.
+ * @return A marker object.
+ */
+- (id<GMSMarker>)addMarkerWithOptions:(GMSMarkerOptions *)options;
+
+/**
+ * Gets a list of all makers.
+ *
+ * @return A NSArray of the id<GMSMarker> instances currently on the map.
+ */
+- (NSArray *)markers;
+
+/**
+ * Adds a polyline to the map. To remove the polyline, call GMSPolyline remove.
+ *
+ * @param options The polyline options that configure the polyline.
+ * @return A polyline.
+ */
+- (id<GMSPolyline>)addPolylineWithOptions:(GMSPolylineOptions *)options;
+
+/**
+ * Gets a list of all polylines.
+ *
+ * @return A NSArray of the id<GMSPolyline> instances currently on the map.
+ */
+- (NSArray *)polylines;
+
+/**
+ * Adds a ground overlay to the map.
+ *
+ * @param options The ground overlay options that configure the ground overlay.
+ * @return A ground overlay object.
+ */
+- (id<GMSGroundOverlay>)addGroundOverlayWithOptions:(GMSGroundOverlayOptions *)options;
+
+/**
+ * Gets a list of all ground overlays.
+ *
+ * @return A NSArray of the id<GMSGroundOverlay> instances currently on the map.
+ */
+- (NSArray *)groundOverlays;
+
+/**
+ * Clears all markup that has been added to the map, including markers,
+ * polylines and ground overlays. This will not clear the visible location dot
+ * or reset the current mapType.
+ */
+- (void)clear;
+
+@end
View
64 GHeaders/GMSMarker.h
@@ -0,0 +1,64 @@
+//
+// GMSMarker.h
+// Google Maps SDK for iOS
+//
+// Copyright 2012 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import <CoreLocation/CoreLocation.h>
+
+/**
+ * A marker on a map.
+ */
+@protocol GMSMarker <NSObject>
+
+/** Marker position. */
+@property (nonatomic, assign) CLLocationCoordinate2D position;
+
+/** Title text, shown prominently in the info window when selected. */
+@property (nonatomic, copy) NSString *title;
+
+/** Snippet text, shown beneath the title in the info window when selected. */
+@property (nonatomic, copy) NSString *snippet;
+
+/** Marker icon to render. If left nil, uses a default SDK place marker. */
+@property (nonatomic, strong) UIImage *icon;
+
+/**
+ * The ground anchor specifies the point in the icon image that is anchored to
+ * the marker's position on the Earth's surface. This point is specified within
+ * the continuous space [0.0, 1.0] x [0.0, 1.0], where (0,0) is the top-left
+ * corner of the image, and (1,1) is the bottom-right corner.
+ */
+@property (nonatomic, assign) CGPoint groundAnchor;
+
+/**
+ * The info window anchor specifies the point in the icon image at which to
+ * anchor the info window, which will be displayed directly above this point.
+ * This point is specified within the same space as groundAnchor.
+ */
+@property (nonatomic, assign) CGPoint infoWindowAnchor;
+
+/**
+ * The accessibility label of this marker, as per the UIAccessibility
+ * protocol. When this value is unset, the title will take precedence.
+ */
+@property (nonatomic, copy) NSString *accessibilityLabel;
+
+/**
+ * Marker data. You can use this property to associate an arbitrary object with
+ * this marker. Google Maps SDK for iOS neither reads nor writes this property.
+ *
+ * Note that userData should not hold any strong references to any Maps
+ * objects, otherwise a loop may be created (preventing ARC from releasing
+ * objects).
+ */
+@property (nonatomic, strong) id userData;
+
+/** Removes this marker from the map. */
+- (void)remove;
+
+@end
View
75 GHeaders/GMSMarkerOptions.h
@@ -0,0 +1,75 @@
+//
+// GMSMarkerOptions.h
+// Google Maps SDK for iOS
+//
+// Copyright 2012 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import <CoreLocation/CoreLocation.h>
+#import <UIKit/UIGeometry.h>
+
+@class UIImage;
+
+/**
+ * The default position of the ground anchor of a GMSMarker: the center bottom
+ * point of the marker icon.
+ */
+FOUNDATION_EXTERN const CGPoint kGMSMarkerDefaultGroundAnchor;
+
+/**
+ * The default position of the info window anchor of a GMSMarker: the center top
+ * point of the marker icon.
+ */
+FOUNDATION_EXTERN const CGPoint kGMSMarkerDefaultInfoWindowAnchor;
+
+/**
+ * Contains options used to configure a marker.
+ */
+@interface GMSMarkerOptions : NSObject<NSCopying>
+
+/** Marker position. */
+@property (nonatomic, assign) CLLocationCoordinate2D position;
+
+/** Title text, shown prominently in the info window when selected. */
+@property (nonatomic, copy) NSString *title;
+
+/** Snippet text, shown beneath the title in the info window when selected. */
+@property (nonatomic, copy) NSString *snippet;
+
+/** Marker icon to render. If left nil, uses a default SDK place marker. */
+@property (nonatomic, strong) UIImage *icon;
+
+/**
+ * The ground anchor specifies the point in the icon image that is anchored to
+ * the marker's position on the Earth's surface. This point is specified within
+ * the continuous space [0.0, 1.0] x [0.0, 1.0], where (0,0) is the top-left
+ * corner of the image, and (1,1) is the bottom-right corner.
+ */
+@property (nonatomic, assign) CGPoint groundAnchor;
+
+/**
+ * The info window anchor specifies the point in the icon image at which to
+ * anchor the info window, which will be displayed directly above this point.
+ * This point is specified within the same space as groundAnchor.
+ */
+@property (nonatomic, assign) CGPoint infoWindowAnchor;
+
+/**
+ * The accessibility label of this marker, as per the UIAccessibility
+ * protocol. When this value is unset, the title will take precedence.
+ */
+@property (nonatomic, copy) NSString *accessibilityLabel;
+
+/**
+ * Marker data. You can use this property to associate an arbitrary object with
+ * this marker. The Google Maps library neither reads nor writes this property.
+ */
+@property (nonatomic, strong) id userData;
+
+/** Convenience constructor for default initialized options. */
++ (GMSMarkerOptions *)options;
+
+@end
View
69 GHeaders/GMSMutablePath.h
@@ -0,0 +1,69 @@
+//
+// GMSMutablePath.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import <GoogleMaps/GMSPath.h>
+
+#import <CoreLocation/CoreLocation.h>
+#import <Foundation/Foundation.h>
+
+/**
+ * GMSMutablePath is a dynamic (resizable) array of CLLocationCoordinate2D
+ * structs. It is the mutable counterpart to the immutable GMSPath.
+ */
+@interface GMSMutablePath : GMSPath
+
+/** Adds |coord| at the end of the path. */
+- (void)addCoordinate:(CLLocationCoordinate2D)coord;
+
+/** Adds a new CLLocationCoordinate2D instance with the given lat/lng. */
+- (void)addLatitude:(CLLocationDegrees)latitude
+ longitude:(CLLocationDegrees)longitude;
+
+/**
+ * Inserts |coord| at |index|.
+ *
+ * If this is smaller than the size of the path, shifts all coordinates forward
+ * by one. Otherwise, behaves as replaceCoordinateAtIndex:withCoordinate: and
+ * grows the array with kCLLocationCoordinate2DInvalid.
+ */
+- (void)insertCoordinate:(CLLocationCoordinate2D)coord
+ atIndex:(NSUInteger)index;
+
+/**
+ * Replace the coordinate at |index| with |coord|.
+ *
+ * If |index| is after the end, grows the array
+ * with kCLLocationCoordinate2DInvalid.
+ */
+- (void)replaceCoordinateAtIndex:(NSUInteger)index
+ withCoordinate:(CLLocationCoordinate2D)coord;
+
+/**
+ * Remove entry at |index|.
+ *
+ * If |index| < count decrements size. If |index| >= count this is a silent
+ * no-op.
+ */
+- (void)removeCoordinateAtIndex:(NSUInteger)index;
+
+/**
+ * Removes the last coordinate of the path.
+ *
+ * If the array is non-empty decrements size. If the array is empty, this is
+ * a silent no-op.
+ */
+- (void)removeLastCoordinate;
+
+/**
+ * Removes all coordinates in this path.
+ */
+- (void)removeAllCoordinates;
+
+@end
View
32 GHeaders/GMSPath.h
@@ -0,0 +1,32 @@
+//
+// GMSPath.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import <CoreLocation/CoreLocation.h>
+#import <Foundation/Foundation.h>
+
+/**
+ * GMSPath encapsulates an immutable array of CLLocationCooordinate2D structs.
+ * Its mutable counterpart exists in GMSMutablePath.
+ */
+@interface GMSPath : NSObject <NSCopying, NSMutableCopying>
+
+/** Convenience constructor for an empty path. */
++ (instancetype)path;
+
+/** Initializes a newly allocated path with the contents of another GMSPath. */
+- (id)initWithPath:(GMSPath *)path;
+
+/** Get size of path. */
+- (NSUInteger)count;
+
+/** Returns kCLLocationCoordinate2DInvalid if |index| >= count. */
+- (CLLocationCoordinate2D)coordinateAtIndex:(NSUInteger)index;
+
+@end
View
39 GHeaders/GMSPolyline.h
@@ -0,0 +1,39 @@
+//
+// GMSPolyline.h
+// Google Maps SDK for iOS
+//
+// Copyright 2012 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+@class GMSPath;
+
+/**
+ * A polyline on a map.
+ */
+@protocol GMSPolyline <NSObject>
+
+/** The path that describes this polyline. */
+@property (nonatomic, copy) GMSPath *path;
+
+/** The UIColor used to render the polyline. Defaults to blueColor. */
+@property (nonatomic, strong) UIColor *color;
+
+/** The width of the line in screen points. Defaults to 1. */
+@property (nonatomic, assign) float width;
+
+/** If this line should be rendered with geodesic correction. */
+@property (nonatomic, assign) BOOL geodesic;
+
+/**
+ * The accessibility label of this polyline, as per the UIAccessibility
+ * protocol.
+ */
+@property (nonatomic, copy) NSString *accessibilityLabel;
+
+/** Removes this polyline from the map. */
+- (void)remove;
+
+@end
View
39 GHeaders/GMSPolylineOptions.h
@@ -0,0 +1,39 @@
+//
+// GMSPolylineOptions.h
+// Google Maps SDK for iOS
+//
+// Copyright 2012 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+@class GMSPath;
+
+/**
+ * Contains options used to configure a polyline.
+ */
+@interface GMSPolylineOptions : NSObject<NSCopying>
+
+/** The path that describes this polyline. */
+@property (nonatomic, copy) GMSPath *path;
+
+/** The UIColor used to render the polyline. Defaults to blueColor. */
+@property (nonatomic, strong) UIColor *color;
+
+/** The width of the line in screen points. Defaults to 1. */
+@property (nonatomic, assign) float width;
+
+/** If this line should be rendered with geodesic correction. */
+@property (nonatomic, assign) BOOL geodesic;
+
+/**
+ * The accessibility label of this polyline, as per the UIAccessibility
+ * protocol.
+ */
+@property (nonatomic, copy) NSString *accessibilityLabel;
+
+/** Convenience constructor for default initialized options. */
++ (GMSPolylineOptions *)options;
+
+@end
View
64 GHeaders/GMSProjection.h
@@ -0,0 +1,64 @@
+//
+// GMSProjection.h
+// Google Maps SDK for iOS
+//
+// Copyright 2012 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import <CoreLocation/CoreLocation.h>
+
+/**
+ * GMSVisibleRegion is returned by visibleRegion on GMSProjection,
+ * it contains a set of four coordinates.
+ */
+typedef struct {
+ CLLocationCoordinate2D nearLeft;
+ CLLocationCoordinate2D nearRight;
+ CLLocationCoordinate2D farLeft;
+ CLLocationCoordinate2D farRight;
+} GMSVisibleRegion;
+
+/**
+ * Defines a mapping between Earth coordinates (CLLocationCoordinate2D) and
+ * coordinates in the map's view (CGPoint). A projection is constant and
+ * immutable, in that the mapping it embodies never changes. The mapping is not
+ * necessarily linear.
+ *
+ * This class should not be instantiated directly, instead, obtained via
+ * projection on GMSMapView.
+ */
+@interface GMSProjection : NSObject
+
+/** Maps an Earth coordinate to a point coordinate in the map's view. */
+- (CGPoint)pointForCoordinate:(CLLocationCoordinate2D)coordinate;
+
+/** Maps a point coordinate in the map's view to an Earth coordinate. */
+- (CLLocationCoordinate2D)coordinateForPoint:(CGPoint)point;
+
+/**
+ * Converts a distance in meters to content size. This is only accurate for
+ * small Earth distances, as we're using CGFloat for screen distances.
+ */
+- (CGFloat)pointsForMeters:(CGFloat)meters
+ atCoordinate:(CLLocationCoordinate2D)coordinate;
+
+/**
+ * Returns whether a given coordinate (lat/lng) is contained within the
+ * projection.
+ */
+- (bool)containsCoordinate:(CLLocationCoordinate2D)coordinate;
+
+/**
+ * Returns the region (four location coordinates) that is visible according to
+ * the projection.
+ *
+ * The visible region can be non-rectangular. The result is undefined if the
+ * projection includes points that do not map to anywhere on the map (e.g.,
+ * camera sees outer space).
+ */
+- (GMSVisibleRegion)visibleRegion;
+
+@end
View
41 GHeaders/GMSReverseGeocodeOutput.h
@@ -0,0 +1,41 @@
+//
+// GMSReverseGeocodeOutput.h
+// Google Maps SDK for iOS
+//
+// Copyright 2012 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+// Models representing the results of reverse geocode operations.
+
+#import <Foundation/Foundation.h>
+
+/**
+ * A result from a reverse geocode request, containing a human-readable address.
+ */
+@interface GMSReverseGeocodeResult : NSObject<NSCopying>
+
+/** Returns the first line of the address. */
+- (NSString *)addressLine1;
+
+/** Returns the second line of the address. */
+- (NSString *)addressLine2;
+
+@end
+
+/**
+ * A collection of results from a reverse geocode request. The query methods
+ * <tt>firstResult</tt> and <tt>allResults</tt> construct their answers lazily,
+ * and are not cached. If you only need the first result, just use
+ * <tt>firstResult</tt>.
+ */
+@interface GMSReverseGeocodeResponse : NSObject<NSCopying>
+
+/** Returns the first result. */
+- (GMSReverseGeocodeResult *)firstResult;
+
+/** Returns an array of all the results (including the first result). */
+- (NSArray *)results;
+
+@end
View
21 GHeaders/GMSScreenshot.h
@@ -0,0 +1,21 @@
+//
+// GMSScreenshot.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import <UIKit/UIKit.h>
+
+@interface GMSScreenshot : NSObject
+
+/** Takes a screenshot of the windows on the main screen. */
++ (UIImage *)screenshotOfMainScreen;
+
+/** Takes a screenshot of the windows on the given screen. */
++ (UIImage *)screenshotOfScreen:(UIScreen *)screen;
+
+@end
View
34 GHeaders/GMSServices.h
@@ -0,0 +1,34 @@
+//
+// GMSServices.h
+// Google Maps SDK for iOS
+//
+// Copyright 2012 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+@interface GMSServices : NSObject
+
+/**
+ * Provides your API key to the Google Maps SDK for iOS. This key is generated
+ * for your application via the Google APIs Console, and is paired with your
+ * application's bundle ID to identify it. This should be called exactly once
+ * by your application, e.g., in application: didFinishLaunchingWithOptions:.
+ *
+ * @return YES if the APIKey was successfully provided
+ */
++ (BOOL)provideAPIKey:(NSString *)APIKey;
+
+/**
+ * Returns the open source software license information for Google Maps SDK for
+ * iOS. This information must be made available within your application.
+ */
++ (NSString *)openSourceLicenseInfo;
+
+/**
+ * Returns the current version of the Google Maps SDK for iOS.
+ */
++ (NSString *)SDKVersion;
+
+@end
View
45 GHeaders/GMSUISettings.h
@@ -0,0 +1,45 @@
+//
+// GMSUISettings.h
+// Google Maps SDK for iOS
+//
+// Copyright 2012 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+@interface GMSUISettings : NSObject
+
+/**
+ * Controls whether scroll gestures are enabled (default) or disabled. If
+ * enabled, users may swipe to pan the camera. This does not limit programmatic
+ * movement of the camera.
+ */
+@property (nonatomic, assign) BOOL scrollGestures;
+
+/**
+ * Controls whether zoom gestures are enabled (default) or disabled. If
+ * enabled, users may double tap/two-finger tap or pinch to zoom the camera.
+ * This does not limit programmatic movement of the camera.
+ *
+ * Note that zoom gestures may allow the user to pan around the map, as a double
+ * tap gesture will move the camera towards the specified point, and conversely
+ * for two-finger tap to zoom out.
+ */
+@property (nonatomic, assign) BOOL zoomGestures;
+
+/**
+ * Controls whether tilt gestures are enabled (default) or disabled. If enabled,
+ * users may use a two-finger vertical down or up swipe to tilt the camera. This
+ * does not limit programmatic control of the camera's viewingAngle.
+ */
+@property (nonatomic, assign) BOOL tiltGestures;
+
+/**
+ * Controls whether rotate gestures are enabled (default) or disabled. If
+ * enabled, users may use a two-finger rotate gesture to rotate the camera. This
+ * does not limit programmatic control of the camera's bearing.
+ */
+@property (nonatomic, assign) BOOL rotateGestures;
+
+@end
View
BIN GHeaders/GoogleMaps.bundle/GMSCacheStorage.momd/Storage.mom
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/GMSCacheStorage.momd/Storage.omo
Binary file not shown.
View
34 GHeaders/GoogleMaps.bundle/GMSCacheStorage.momd/VersionInfo.plist
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>NSManagedObjectModel_CurrentVersionName</key>
+ <string>Storage</string>
+ <key>NSManagedObjectModel_VersionHashes</key>
+ <dict>
+ <key>Storage</key>
+ <dict>
+ <key>GMSCacheProperty</key>
+ <data>
+ QaoIkcym3itula0F304pZa3x432niQez51fLRsScFMw=
+ </data>
+ <key>GMSCachedObject</key>
+ <data>
+ QSOFyJYNNqHN5xlbUj9GIZC+F35CGWBGHNhd2/Z0cQA=
+ </data>
+ <key>GMSCachedObjectBlob</key>
+ <data>
+ noK2ayPbzw+yZIq2ekMRGSILYZyxs7oE4dZjuknRPrk=
+ </data>
+ <key>GMSCachedTile</key>
+ <data>
+ 6GLdEuCbhqgrpr/FNSMyfhXYz0OsfUtbp/2zzxPZFpU=
+ </data>
+ <key>GMSCachedTileBlob</key>
+ <data>
+ GOwOTZdLt947wADRzN4reePTdqMZWEYvUjuniL9EgdI=
+ </data>
+ </dict>
+ </dict>
+</dict>
+</plist>
View
BIN GHeaders/GoogleMaps.bundle/GMSSprites-0.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN GHeaders/GoogleMaps.bundle/GMSSprites-0@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN GHeaders/GoogleMaps.bundle/Info.plist
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/ar.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/bubble_left.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN GHeaders/GoogleMaps.bundle/bubble_left@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN GHeaders/GoogleMaps.bundle/bubble_right.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN GHeaders/GoogleMaps.bundle/bubble_right@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN GHeaders/GoogleMaps.bundle/ca.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/cs.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/da.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/dav_one_way_16_256.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN GHeaders/GoogleMaps.bundle/dav_road_32_128.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN GHeaders/GoogleMaps.bundle/dav_road_32_64.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN GHeaders/GoogleMaps.bundle/dav_road_40_128.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN GHeaders/GoogleMaps.bundle/dav_road_44_64.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN GHeaders/GoogleMaps.bundle/dav_road_48_128.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN GHeaders/GoogleMaps.bundle/dav_road_48_64.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN GHeaders/GoogleMaps.bundle/dav_road_56_128.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN GHeaders/GoogleMaps.bundle/dav_road_hybrid_6_32_high_zoom.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN GHeaders/GoogleMaps.bundle/dav_road_hybrid_6_32_low_zoom.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN GHeaders/GoogleMaps.bundle/de.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/default_marker.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN GHeaders/GoogleMaps.bundle/default_marker@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN GHeaders/GoogleMaps.bundle/el.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/en.lproj/InfoPlist.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/en.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/en_GB.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/es.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/fi.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/fr.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/he.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/hr.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/hu.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/it.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/ja.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/ko.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/location_dot.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN GHeaders/GoogleMaps.bundle/location_dot@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN GHeaders/GoogleMaps.bundle/logo.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN GHeaders/GoogleMaps.bundle/logo@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN GHeaders/GoogleMaps.bundle/nl.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/no.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/pl.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/polyline_colors_texture.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN GHeaders/GoogleMaps.bundle/polyline_colors_texture@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN GHeaders/GoogleMaps.bundle/pt.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/pt_PT.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/ro.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/ru.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/sk.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/sv.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/th.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/tr.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/turn_arrow_background.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN GHeaders/GoogleMaps.bundle/turn_arrow_foreground.png
Diff not rendered.
View
BIN GHeaders/GoogleMaps.bundle/uk.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/vi.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/zh_CN.lproj/SDK.strings
Binary file not shown.
View
BIN GHeaders/GoogleMaps.bundle/zh_TW.lproj/SDK.strings
Binary file not shown.
View
31 GHeaders/GoogleMaps.h
@@ -0,0 +1,31 @@
+//
+// GoogleMaps.h
+// Google Maps SDK for iOS
+//
+// Copyright 2012 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import <CoreLocation/CoreLocation.h>
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
+
+#import <GoogleMaps/GMSCameraPosition.h>
+#import <GoogleMaps/GMSCoordinateBounds.h>
+#import <GoogleMaps/GMSGeocoder.h>
+#import <GoogleMaps/GMSGroundOverlay.h>
+#import <GoogleMaps/GMSGroundOverlayOptions.h>
+#import <GoogleMaps/GMSMapView.h>
+#import <GoogleMaps/GMSMarker.h>
+#import <GoogleMaps/GMSMarkerOptions.h>
+#import <GoogleMaps/GMSMutablePath.h>
+#import <GoogleMaps/GMSPath.h>
+#import <GoogleMaps/GMSPolyline.h>
+#import <GoogleMaps/GMSPolylineOptions.h>
+#import <GoogleMaps/GMSProjection.h>
+#import <GoogleMaps/GMSReverseGeocodeOutput.h>
+#import <GoogleMaps/GMSScreenshot.h>
+#import <GoogleMaps/GMSServices.h>
+#import <GoogleMaps/GMSUISettings.h>
View
55 Headers/NSDate+PSPDFKitAdditions.h
@@ -0,0 +1,55 @@
+//
+// NSDate+PSPDFKitAdditions.h
+// PSPDFKit
+//
+// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved.
+//
+
+@interface NSDate (PSPDFKitAdditions)
+
+///---------------
+/// @name ISO 8601
+///---------------
+
+/**
+ Returns a new date represented by an ISO8601 string.
+
+ @param iso8601String An ISO8601 string
+
+ Borrowed from the excellent SSToolkit by Sam Soffes, MIT licensed.
+ */
++ (NSDate *)pspdf_dateFromISO8601String:(NSString *)iso8601String;
+
+/**
+ Returns a string representation of the receiver in ISO8601 format.
+
+ Borrowed from the excellent SSToolkit by Sam Soffes, MIT licensed.
+ */
+- (NSString *)pspdf_ISO8601String;
+
+///-------------------------
+/// @name PDF Representation
+///-------------------------
+
+/**
+ Converts a string formatted after PDF Reference 7.9.4 to an NSDate.
+
+ Date values used in a PDF shall conform to a standard date format, which closely follows that of the international standard ASN.1 (Abstract Syntax Notation One), defined in ISO/IEC 8824. A date shall be a text string of the form
+ ( D : YYYYMMDDHHmmSSOHH ' mm ) where:
+ YYYY shall be the year
+ MM shall be the month (01–12) DD shall be the day (01–31) HH shall be the hour (00–23)
+ mm shall be the minute (00–59) SS shall be the second (00–59)
+
+ O shall be the relationship of local time to Universal Time (UT), and shall be denoted by one of the characters PLUS SIGN (U+002B) (+), HYPHEN-MINUS (U+002D) (-), or LATIN CAPITAL LETTER Z (U+005A) (Z) (see below)
+ HH followed by APOSTROPHE (U+0027) (') shall be the absolute value of the offset from UT in hours (00–23)
+ mm shall be the absolute value of the offset from UT in minutes (00–59)
+ The prefix D: shall be present, the year field (YYYY) shall be present and all other fields may be present but only if all of their preceding fields are also present. The APOSTROPHE following the hour offset field (HH) shall only be present if the HH field is present. The minute offset field (mm) shall only be present if the APOSTROPHE following the hour offset field (HH) is present. The default values for MM and DD shall be both 01; all other numerical fields shall default to zero values. A PLUS SIGN as the value of the O field signifies that local time is later than UT, a HYPHEN-MINUS signifies that local time is earlier than UT, and the LATIN CAPITAL LETTER Z signifies that local time is equal to UT. If no UT information is specified, the relationship of the specified time to UT shall be considered to be GMT. Regardless of whether the time zone is specified, the rest of the date shall be specified in local time.
+ EXAMPLE For example, December 23, 1998, at 7:52 PM, U.S. Pacific Standard Time, is represented by the string D : 199812231952 - 08 ' 00
+ */
++ (NSDate *)pspdf_dateFromPDFDateString:(NSString *)PDFDateString;
+
+/**
+ */
+- (NSString *)pspdf_PDFDateString;
+
+@end
View
35 Headers/NSValueTransformer+PSPDFPredefinedTransformerAdditions.h
@@ -0,0 +1,35 @@
+//
+// NSValueTransformer+PSPDFPredefinedTransformerAdditions.h
+// PSPDFKit
+//
+// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved.
+// Based on GitHub's Mantle project, MIT licensed.
+//
+
+#import <Foundation/Foundation.h>
+
+/// The name for a value transformer that converts strings into URLs and back.
+extern NSString *const PSPDFURLValueTransformerName;
+
+/// Ensure an NSNumber is backed by __NSCFBoolean/CFBooleanRef
+///
+/// NSJSONSerialization, and likely other serialization libraries, ordinarily
+/// serialize NSNumbers as numbers, and thus booleans would be serialized as
+/// 0/1. The exception is when the NSNumber is backed by __NSCFBoolean, which,
+/// though very much an implementation detail, is detected and serialized as a
+/// proper boolean.
+extern NSString *const PSPDFBooleanValueTransformerName;
+
+@interface NSValueTransformer (PSPDFPredefinedTransformerAdditions)
+
+/// Returns a reversible transformer which will convert an external
+/// representation dictionary into an instance of the given MTLModel subclass,
+/// and vice versa.
++ (NSValueTransformer *)pspdf_externalRepresentationTransformerWithModelClass:(Class)modelClass inFormat:(NSString *)externalRepresentationFormat;
+
+/// Like -pspdf_externalRepresentationTransformerWithModelClass:, but converts
+/// from an array of external representations to an array of models, and vice
+/// versa.
+//+ (NSValueTransformer *)pspdf_externalRepresentationArrayTransformerWithModelClass:(Class)modelClass;
+
+@end
View
4 Headers/PSPDFAESCryptoDataProvider.h 100755 → 100644
@@ -2,13 +2,13 @@
// PSPDFAESCryptoDataProvider.h
// PSPDFKit
//
-// Copyright (c) 2012 Peter Steinberger. All rights reserved.
+// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved.
//
#import "PSPDFKitGlobal.h"
/**
- This class allows a tranparent decryption of AES256 encrypted files (using CBC and an initial 16 byte IV vector)
+ This class allows a transparent decryption of AES256 encrypted files (using CBC and an initial 16 byte IV vector)
The IV vector for the file is written in the first 16 bytes of the file to read.
Use the provided encryption tool to prepare your documents.
View
6 Headers/PSPDFActionSheet.h 100755 → 100644
@@ -2,7 +2,7 @@
// PSPDFActionSheet.h
// PSPDFKit
//
-// Copyright (c) 2012 Peter Steinberger. All rights reserved.
+// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved.
//
#import <UIKit/UIKit.h>
@@ -11,7 +11,7 @@
/// After block has been executed, it is set to nil, breaking potential retain cycles.
@interface PSPDFActionSheet : UIActionSheet
-/// @name Inititalization
+/// @name Initialization
/// Default initializer.
- (id)initWithTitle:(NSString *)title;
@@ -41,7 +41,7 @@
/// Clears all blocks, breaks retain cycles. Automatically called once a button has been pressed.
- (void)destroy;
-/// Call block when actionsheet gets dismissed.
+/// Call block when action sheet gets dismissed.
@property (nonatomic, copy) void (^destroyBlock)(PSPDFActionSheet *sheet, NSInteger buttonIndex);
@end
View
2 Headers/PSPDFActivityBarButtonItem.h 100755 → 100644
@@ -2,7 +2,7 @@
// PSPDFActivityBarButtonItem.h
// PSPDFKit
//
-// Copyright (c) 2012 Peter Steinberger. All rights reserved.
+// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved.
//
#import "PSPDFBarButtonItem.h"
View
10 Headers/PSPDFAlertView.h 100755 → 100644
@@ -1,7 +1,7 @@
//
// PSPDFAlertView.h
//
-// Copyright 2011-2012 Peter Steinberger. All rights reserved.
+// Copyright 2011-2013 Peter Steinberger. All rights reserved.
//
#import <UIKit/UIKit.h>
@@ -19,12 +19,12 @@
/// @name Adding Buttons
/// Add a cancel button. (use only once!)
-- (void)setCancelButtonWithTitle:(NSString *)title block:(void (^)())block;
-- (void)setCancelButtonWithTitle:(NSString *)title extendedBlock:(void (^)(PSPDFAlertView *alert, NSInteger buttonIndex))block;
+- (NSInteger)setCancelButtonWithTitle:(NSString *)title block:(void (^)())block;
+- (NSInteger)setCancelButtonWithTitle:(NSString *)title extendedBlock:(void (^)(PSPDFAlertView *alert, NSInteger buttonIndex))block;
/// Add regular button.
-- (void)addButtonWithTitle:(NSString *)title block:(void (^)())block;
-- (void)addButtonWithTitle:(NSString *)title extendedBlock:(void (^)(PSPDFAlertView *alert, NSInteger buttonIndex))block;
+- (NSInteger)addButtonWithTitle:(NSString *)title block:(void (^)())block;
+- (NSInteger)addButtonWithTitle:(NSString *)title extendedBlock:(void (^)(PSPDFAlertView *alert, NSInteger buttonIndex))block;
/// @name Style
View
122 Headers/PSPDFAnnotation.h 100755 → 100644
@@ -2,14 +2,16 @@
// PSPDFAnnotation.h
// PSPDFKit
//
-// Copyright 2011-2012 Peter Steinberger. All rights reserved.
+// Copyright 2011-2013 Peter Steinberger. All rights reserved.
//
#import "PSPDFKitGlobal.h"
+#import "PSPDFModel.h"
@class PSPDFDocument, PSPDFDocumentProvider;
-// list of editable annotation types.
+/// List of editable annotation types.
+/// Set those constants in the editableAnnotationTypes set of PSPDFDocument.
extern NSString *const PSPDFAnnotationTypeStringLink;
extern NSString *const PSPDFAnnotationTypeStringHighlight;
extern NSString *const PSPDFAnnotationTypeStringUnderline;
@@ -19,28 +21,31 @@ extern NSString *const PSPDFAnnotationTypeStringFreeText;
extern NSString *const PSPDFAnnotationTypeStringInk;
extern NSString *const PSPDFAnnotationTypeStringSquare;
extern NSString *const PSPDFAnnotationTypeStringCircle;
-// Signature is technically an Ink annotation, but this enables an optimized adding mode (toolbar).
-extern NSString *const PSPDFAnnotationTypeStringSignature;
+extern NSString *const PSPDFAnnotationTypeStringSignature; // Signature is an image annotation.
+extern NSString *const PSPDFAnnotationTypeStringStamp;
+// UIImagePickerController used in the image add feature will throw a UIApplicationInvalidInterfaceOrientation exception if your app does not include portrait in UISupportedInterfaceOrientations (Info.plist).
+// For landscape only apps, we suggest enabling portrait orientation(s) in your Info.plist and rejecting these in UIViewController's auto-rotation methods. This way, you can be landscape only for your view controllers and still be able to use UIImagePickerController.
+extern NSString *const PSPDFAnnotationTypeStringImage; // Image is a stamp annotation.
// Annotations defined after the PDF standard.
typedef NS_OPTIONS(NSUInteger, PSPDFAnnotationType) {
PSPDFAnnotationTypeNone = 0,
- PSPDFAnnotationTypeLink = 1 << 1, // Links and multimedia extensions
- PSPDFAnnotationTypeHighlight = 1 << 2, // (Highlight, Underline, StrikeOut) - PSPDFHighlightAnnotationView
+ PSPDFAnnotationTypeUndefined = 1 << 0, // Any annotation whose type couldn't be recognized.
+ PSPDFAnnotationTypeLink = 1 << 1, // Links and PSPDFKit multimedia extensions.
+ PSPDFAnnotationTypeHighlight = 1 << 2, // Highlight, Underline, StrikeOut
PSPDFAnnotationTypeText = 1 << 3, // FreeText
- PSPDFAnnotationTypeInk = 1 << 4,
+ PSPDFAnnotationTypeInk = 1 << 4, // Ink (includes Signatures)
PSPDFAnnotationTypeShape = 1 << 5, // Square, Circle
PSPDFAnnotationTypeLine = 1 << 6,
PSPDFAnnotationTypeNote = 1 << 7,
- PSPDFAnnotationTypeStamp = 1 << 8,
+ PSPDFAnnotationTypeStamp = 1 << 8, // Stamp (includes images)
PSPDFAnnotationTypeRichMedia = 1 << 10, // Embedded PDF videos
PSPDFAnnotationTypeScreen = 1 << 11, // Embedded PDF videos
- PSPDFAnnotationTypeUndefined = 1 << 31, // any annotation whose type couldn't be recognized
PSPDFAnnotationTypeAll = UINT_MAX
};
-// Converts annotation type into the string representation.
+// Converts an annotation type into the string representation.
extern NSString *PSPDFTypeStringFromAnnotationType(PSPDFAnnotationType annotationType);
// Annotation border style. PSPDFKit currently only supports Solid and Dashed.
@@ -59,13 +64,13 @@ typedef NS_ENUM(NSUInteger, PSPDFAnnotationBorderStyle) {
PSPDFAnnotationParser searches the runtime for subclasses of PSPDFAnnotation and builds up a dictionary using supportedTypes.
- Don't directly make an instance of this class, use the subclasses like PSPDFNoteAnnotations, PSPDFLinkAnnotations or others. This class will return nil if initialized directly, unless with the type PSPDFAnnotationTypeUndefined.
+ Don't directly make an instance of this class, use subclasses like PSPDFNoteAnnotations or PSPDFLinkAnnotations. This class will return nil if initialized directly, unless with the type PSPDFAnnotationTypeUndefined.
Subclasses need to implement - (id)initWithAnnotationDictionary:(CGPDFDictionaryRef)annotationDictionary inAnnotsArray:(CGPDFArrayRef)annotsArray.
- Ensure that custom sublcasses also correctly implement hash and isEqual.
+ Ensure that custom subclasses also correctly implement hash and isEqual.
*/
-@interface PSPDFAnnotation : NSObject <NSCoding, NSCopying>
+@interface PSPDFAnnotation : PSPDFModel
/// Returns the annotation type strings that are supported. Implemented in each subclass.
+ (NSArray *)supportedTypes;
@@ -107,19 +112,31 @@ typedef NS_ENUM(NSUInteger, PSPDFAnnotationBorderStyle) {
(For performance considerations, you want to do this once, not every time drawInContext is called)
This draws the annotation border.
- Some annotations handle borders differently, so decide in your supclass if you call [super drawInContext] or not.
+ Some annotations handle borders differently, so decide in your subclass if you call [super drawInContext] or not.
*/
- (void)drawInContext:(CGContextRef)context;
+// Options to use for drawInContext:withOptions:
+extern NSString *const kPSPDFAnnotationDrawFlattened;
+
+/// Allows to customize the drawing process.
+/// Currently used to allow different annotation drawings during the annotation flattening process.
+- (void)drawInContext:(CGContextRef)context withOptions:(NSDictionary *)options;
+
+extern NSString *const kPSPDFAnnotationDrawCentered; // CGFloat, draw in the middle of the image, if size has a different aspect ratio.
+extern NSString *const kPSPDFAnnotationMargin; // UIEdgeInsets.
+
+/// Renders annotation into an image.
+- (UIImage *)imageWithSize:(CGSize)size withOptions:(NSDictionary *)options;
+
/// Helper that will prepare the context for the border style.
- (void)prepareBorderStyleInContext:(CGContextRef)context;
-/// Current annotation type.
+/// Current annotation type.
@property (nonatomic, assign, readonly) PSPDFAnnotationType type;
/// If YES, the annotation will be rendered as a overlay. If NO, it will be statically rendered within the PDF content image.
/// PSPDFAnnotationTypeLink and PSPDFAnnotationTypeNote currently are rendered as overlay.
-/// Currently won't work if you just set arbitrary annotations to overlay=YES.
/// If overlay is set to YES, you must also register the corresponding *annotationView class to render (override PSPDFAnnotationParser's annotationClassForAnnotation)
@property (nonatomic, assign, getter=isOverlay) BOOL overlay;
@@ -161,11 +178,15 @@ typedef NS_ENUM(NSUInteger, PSPDFAnnotationBorderStyle) {
/// (Optional; PDF1.4, "NM" key)
@property (nonatomic, copy) NSString *name;
-/// Date where the annotation was last modifed.
+/// Date where the annotation was last modified.
/// Saved into the PDF as the "M" property (Optional, since PDF 1.1)
-/// Will be updated by PSPDFKt as soon as a property is changed.
+/// Will be updated by PSPDFKit as soon as a property is changed.
@property (nonatomic, strong) NSDate *lastModified;
+/// Date when the annotation was created. Might be nil.
+/// PSPDFKit will set this for newly created annotations.
+@property (nonatomic, strong) NSDate *creationDate;
+
/// Border Line Width (only used in certain annotations)
@property (nonatomic, assign) float lineWidth;
@@ -181,14 +202,22 @@ typedef NS_ENUM(NSUInteger, PSPDFAnnotationBorderStyle) {
/// Rectangle of specific annotation. (PDF coordinates)
@property (nonatomic, assign) CGRect boundingBox;
+/// Rotation property (should be a multiple of 90, but there are exceptions, e.g. for stamp annotations)
+/// Defaults to 0. Allowed values are between 0 and 360.
+@property (nonatomic, assign) NSUInteger rotation;
+
+/// Certain annotation types like highlight might have multiple rects.
+@property (nonatomic, copy) NSArray *rects;
+
/// User (title) flag. ("T" property)
@property (nonatomic, copy) NSString *user;
/// Page for current annotation. Page is relative to the documentProvider.
@property (nonatomic, assign) NSUInteger page;
/// Page relative to the document.
-@property (nonatomic, assign, readonly) NSUInteger absolutePage;
+/// Will be calculated from page and will change page if set.
+@property (nonatomic, assign) NSUInteger absolutePage;
/// If this annotation isn't backed by the PDF, it's dirty by default.
/// After the annotation has been written to the file, this will be reset until the annotation has been changed.