summaryrefslogtreecommitdiff
path: root/macosx/main.mm
diff options
context:
space:
mode:
Diffstat (limited to 'macosx/main.mm')
-rw-r--r--macosx/main.mm14
1 files changed, 14 insertions, 0 deletions
diff --git a/macosx/main.mm b/macosx/main.mm
index 9ecc307c05..aeb49225cb 100644
--- a/macosx/main.mm
+++ b/macosx/main.mm
@@ -1,9 +1,12 @@
#include "../common/settings_nsuserdefaults.hpp"
#include "../common/glfw_view.hpp"
#include "../common/nslog_log.hpp"
+#include "../common/Reachability.h"
#import <Foundation/Foundation.h>
+#include <uv.h>
+
@interface URLHandler : NSObject
@property (nonatomic) mbgl::Map *map;
@@ -68,16 +71,25 @@
@end
int main() {
+ fprintf(stderr, "main thread: 0x%lx\n", uv_thread_self());
mbgl::Log::Set<mbgl::NSLogBackend>();
GLFWView view;
mbgl::Map map(view);
+ mbgl::Map *map_ptr = &map;
URLHandler *handler = [[URLHandler alloc] init];
[handler setMap:&map];
NSAppleEventManager *appleEventManager = [NSAppleEventManager sharedAppleEventManager];
[appleEventManager setEventHandler:handler andSelector:@selector(handleGetURLEvent:withReplyEvent:) forEventClass:kInternetEventClass andEventID:kAEGetURL];
+ // Notify map object when network reachability status changes.
+ Reachability* reachability = [Reachability reachabilityForInternetConnection];
+ reachability.reachableBlock = ^(Reachability *reachability) {
+ map_ptr->setReachability(true);
+ };
+ [reachability startNotifier];
+
// Load settings
mbgl::Settings_NSUserDefaults settings;
map.setLonLatZoom(settings.longitude, settings.latitude, settings.zoom);
@@ -97,6 +109,8 @@ int main() {
int ret = view.run();
+ [reachability stopNotifier];
+
// Save settings
map.getLonLatZoom(settings.longitude, settings.latitude, settings.zoom);
settings.bearing = map.getBearing();