This repository has been archived by the owner on Aug 8, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
OS X SDK and revamped OS X demo application #3135
Merged
Commits on Dec 14, 2015
-
[osx] Rewrote platform-osx and osxapp
platform-osx now vends a real NSView subclass, MGLMapView, that is readily embedded inside a Cocoa application for OS X. MGLMapView is backed by an NSOpenGLLayer for optimal performance and integration with other layer-backed views. It supports keyboard shortcuts and several gestures and hosts attribution, zooming, and rotation controls as subviews. osxapp is now a bona fide Cocoa application that embeds MGLMapView inside a XIB. osxapp has preferences and a share button for tight integration with custom styles. Enabling asynchronous rendering would be more consistent with iOS but increases CPU usage so much, even when idle, that it isn’t worth any performance gain. The bigger issue is that VAOs aren’t being used. make xpackage creates a static library similar to the one created by make ipackage. make clean cleans additional places where build output ends up. The OS X minimum deployment target has been increased from 10.9 to 10.10. osxapp’s window has a full size content view, which requires 10.10. Lightweight generics require iOS 9+ and OS X 10.11 regardless, because it was only in that release that Foundation collection classes started adopting lightweight generics. Shuffled files around and refactored annotations so that iOS and OS X share a good chunk of the annotations code, which now takes advantage of polymorphism. MGLMapView can now display annotations but cannot yet select them. In osxapp, a long press drops a pin, and so does the map view’s context menu. Annotations have NSPopovers as callouts, and their view controllers can be customized. Annotation image alignment rects are respected for hit testing purposes and for positioning the callout anchor. Callouts in osxapp demonstrate the use of bindings to keep callouts in sync with underlying model objects.
Configuration menu - View commit details
-
Copy full SHA for 0cab780 - Browse repository at this point
Copy the full SHA 0cab780View commit details -
[osx, ios] Improved annotation interaction
Corrected annotation image alignment rects used in positioning the popover and hit testing for selection. The alignment rects were flipped in a couple places and we were getting lucky until now. Query for any point annotation within a slop area that extends by the maximum image dimensions in each direction, then filter by annotations whose images actually hit-test. (So to select an annotation that has a doughnut image, you have to click on the actual doughnut, not its hole.) It’s a fuzzy hit test with a four-pixel-radius slop area, so there shouldn’t be any clicking precision issues. Clicking on an annotation while a callout is open merely closes the callout popover, so it isn’t possible to go immediately from one callout to another. Since we still want to cycle through coincident annotations, keep track of the last selected annotation ID. Clicking on a visible point annotation whose center is out of the visible bounds now selects the annotation. Ported the callout-positioning portion of these changes to iOS. Also refactored some geometry conversion methods and removed a redundant constant.
Configuration menu - View commit details
-
Copy full SHA for cc35f5a - Browse repository at this point
Copy the full SHA cc35f5aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 96145ef - Browse repository at this point
Copy the full SHA 96145efView commit details -
Annotations can optionally have tooltips. osxapp has an option, off by default, to assign a (localized) tooltip to each dropped pin.
3Configuration menu - View commit details
-
Copy full SHA for f542d7b - Browse repository at this point
Copy the full SHA f542d7bView commit details -
Also added an option to osxapp for assigning a random cursor to all the annotations each time an annotation is added or removed.
Configuration menu - View commit details
-
Copy full SHA for 004d040 - Browse repository at this point
Copy the full SHA 004d040View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9d2e0a1 - Browse repository at this point
Copy the full SHA 9d2e0a1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6890af9 - Browse repository at this point
Copy the full SHA 6890af9View commit details -
Configuration menu - View commit details
-
Copy full SHA for df0511a - Browse repository at this point
Copy the full SHA df0511aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1598330 - Browse repository at this point
Copy the full SHA 1598330View commit details -
Configuration menu - View commit details
-
Copy full SHA for 47fb5e8 - Browse repository at this point
Copy the full SHA 47fb5e8View commit details -
[osx] Renamed annotation IDs to annotation tags
By analogy with Cocoa tracking area tags, tooltip tags, view tags, etc.
Configuration menu - View commit details
-
Copy full SHA for 7f04c5d - Browse repository at this point
Copy the full SHA 7f04c5dView commit details -
[osx] Align build settings with Xcode framework project template
In particular, -Os yields significant size improvements in Release.
Configuration menu - View commit details
-
Copy full SHA for 62e6c04 - Browse repository at this point
Copy the full SHA 62e6c04View commit details -
Configuration menu - View commit details
-
Copy full SHA for 73324ae - Browse repository at this point
Copy the full SHA 73324aeView commit details -
[osx] Documentation comments for public classes
Added documentation comments for all the public headers that aren’t being shared with iOS. Removed an animated: parameter from -selectAnnotation: and -deselectAnnotation:: because callout popovers may extend beyond the entire window, there is no need to scroll the map to make the entire callout visible. Added missing geometric conversion methods. Renamed -mapView:regionWillChangeAnimated: et al. to say “camera” instead of “region”. “Region” leaves ambiguity about whether properties like rotation and pitch trigger this method. “Camera” associates these methods with the camera property, which seems apt.
Configuration menu - View commit details
-
Copy full SHA for ea57be5 - Browse repository at this point
Copy the full SHA ea57be5View commit details -
[osx] Fixed standalone launch of osxapp (and run-xosx)
Mapbox.framework needs to be embedded in the application bundle.
Configuration menu - View commit details
-
Copy full SHA for bab3935 - Browse repository at this point
Copy the full SHA bab3935View commit details -
Configuration menu - View commit details
-
Copy full SHA for fdff790 - Browse repository at this point
Copy the full SHA fdff790View commit details -
Configuration menu - View commit details
-
Copy full SHA for cd6830b - Browse repository at this point
Copy the full SHA cd6830bView commit details -
[osx] Don’t strip on copy in Debug
Stripping the framework means you can’t debug the framework.
Configuration menu - View commit details
-
Copy full SHA for 3f2fae5 - Browse repository at this point
Copy the full SHA 3f2fae5View commit details -
Shared MGLMapCamera between iOS and OS X. Unfortunately -camera and -setCamera: implementations need to be copy-pasted for now.
Configuration menu - View commit details
-
Copy full SHA for 0fb2b85 - Browse repository at this point
Copy the full SHA 0fb2b85View commit details -
Configuration menu - View commit details
-
Copy full SHA for b869d3c - Browse repository at this point
Copy the full SHA b869d3cView commit details -
Also fixed an issue where removing a selected annotation failed to deselect it.
Configuration menu - View commit details
-
Copy full SHA for 0722d26 - Browse repository at this point
Copy the full SHA 0722d26View commit details -
[ios] Strip OS X–specific APIs from iOS documentation
appledoc can’t understand conditional compilation. This is the best we can do until we move to Jazzy.
Configuration menu - View commit details
-
Copy full SHA for e7d7add - Browse repository at this point
Copy the full SHA e7d7addView commit details -
Configuration menu - View commit details
-
Copy full SHA for 727dd61 - Browse repository at this point
Copy the full SHA 727dd61View commit details -
Configuration menu - View commit details
-
Copy full SHA for 835bb6a - Browse repository at this point
Copy the full SHA 835bb6aView commit details -
Corrected the path to the build output. Also added a missing inline comment.
Configuration menu - View commit details
-
Copy full SHA for a01dd8a - Browse repository at this point
Copy the full SHA a01dd8aView commit details
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.