{"action":"created","comment":{"url":"https://api.github.com/repos/Khan/Prototope/pulls/comments/41721368","id":41721368,"diff_hunk":"@@ -820,3 +1007,47 @@ private func incorporateTouches(touches: NSSet, intoTouchSequenceMappings mappin\n \tlet updatedTouchSequences = incorporateTouchSequences(touchSequencesFromTouchSet(touches), intoTouchSequenceMappings: mappings)\n \treturn touchSequenceMappingsFromTouchSequences(updatedTouchSequences)\n }\n+\n+#endif\n+\n+\n+#if os(iOS)\n+\timport UIKit\n+\tpublic typealias SystemImageView = UIImageView\n+\t#else\n+\timport AppKit\n+\tpublic typealias SystemImageView = NSImageView\n+\t\n+\textension SystemView {\n+\t\tfunc setNeedsLayout() {\n+\t\t\t// TODO(jb): What's the OS X equiv of this again?\n+\t\t\t// no-op?\n+\t\t}\n+\t\t\n+\t\tfunc layoutSubviews() {\n+\t\t\tself.resizeSubviewsWithOldSize(self.frame.size)","path":"Prototope/Layer.swift","position":501,"original_position":501,"commit_id":"2c1092a782859e02c2ea4f4773b4e2474ef7d143","original_commit_id":"2c1092a782859e02c2ea4f4773b4e2474ef7d143","user":{"login":"andymatuschak","id":2771,"avatar_url":"https://avatars.githubusercontent.com/u/2771?v=3","gravatar_id":"","url":"https://api.github.com/users/andymatuschak","html_url":"https://github.com/andymatuschak","followers_url":"https://api.github.com/users/andymatuschak/followers","following_url":"https://api.github.com/users/andymatuschak/following{/other_user}","gists_url":"https://api.github.com/users/andymatuschak/gists{/gist_id}","starred_url":"https://api.github.com/users/andymatuschak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andymatuschak/subscriptions","organizations_url":"https://api.github.com/users/andymatuschak/orgs","repos_url":"https://api.github.com/users/andymatuschak/repos","events_url":"https://api.github.com/users/andymatuschak/events{/privacy}","received_events_url":"https://api.github.com/users/andymatuschak/received_events","type":"User","site_admin":false},"body":"Why is this necessary? Isn't this what would normally happen?","created_at":"2015-10-12T03:47:50Z","updated_at":"2015-10-12T03:47:50Z","html_url":"https://github.com/Khan/Prototope/pull/105#discussion_r41721368","pull_request_url":"https://api.github.com/repos/Khan/Prototope/pulls/105","_links":{"self":{"href":"https://api.github.com/repos/Khan/Prototope/pulls/comments/41721368"},"html":{"href":"https://github.com/Khan/Prototope/pull/105#discussion_r41721368"},"pull_request":{"href":"https://api.github.com/repos/Khan/Prototope/pulls/105"}}},"pull_request":{"url":"https://api.github.com/repos/Khan/Prototope/pulls/105","id":45231543,"html_url":"https://github.com/Khan/Prototope/pull/105","diff_url":"https://github.com/Khan/Prototope/pull/105.diff","patch_url":"https://github.com/Khan/Prototope/pull/105.patch","issue_url":"https://api.github.com/repos/Khan/Prototope/issues/105","number":105,"state":"open","locked":false,"title":"Experimental Mac support","user":{"login":"jbrennan","id":131923,"avatar_url":"https://avatars.githubusercontent.com/u/131923?v=3","gravatar_id":"","url":"https://api.github.com/users/jbrennan","html_url":"https://github.com/jbrennan","followers_url":"https://api.github.com/users/jbrennan/followers","following_url":"https://api.github.com/users/jbrennan/following{/other_user}","gists_url":"https://api.github.com/users/jbrennan/gists{/gist_id}","starred_url":"https://api.github.com/users/jbrennan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jbrennan/subscriptions","organizations_url":"https://api.github.com/users/jbrennan/orgs","repos_url":"https://api.github.com/users/jbrennan/repos","events_url":"https://api.github.com/users/jbrennan/events{/privacy}","received_events_url":"https://api.github.com/users/jbrennan/received_events","type":"User","site_admin":false},"body":"Hullo hullo! Over the past little while I’ve been working away at experimental support for prototope on the Mac. It works quite nicely, but there are lots of little issues.\r\n\r\nMy main goal isn’t for the Mac port to be perfect, but for it to:\r\n\r\n1. Work well enough to do basic prototyping in.\r\n2. Not make the iOS code significantly crappier.\r\n\r\nI think I’ve achieved both goals. Most of the work was done in existing iOS-based files, but #def’d out for specific OS X stuff.\r\n\r\nDone\r\n-------\r\n\r\n- Basic support for layers and the layer hierarchy\r\n- Dealing with sounds, speech, and images\r\n- video support (not super tested)\r\n- Camera support (not really tested)\r\n- Mouse events\r\n\r\nNot really done yet, but maybe some day\r\n------\r\n\r\n- JS bridge\r\n- Text layers\r\n- Scroll layers\r\n- Keyboard events\r\n- Multiple windows\r\n- lots of todos\r\n\r\nAlso of note\r\n-------\r\n\r\nI had significant trouble getting this into a reusable OS X framework. Frameworks don’t seem to like including other frameworks or using bridging headers (although, much chagrin, the iOS framework *somehow* does this). I wasted about three working days on it over the course of the project.\r\n\r\nThe “fix” was to make my own fork of `pop`, create a static library target for OS X for it, and then point the Prototope OS X framework at that. I should probably try to get my changes merged upstream with Facebook, or figure out what the hell is the problem with it.","created_at":"2015-09-16T22:20:46Z","updated_at":"2015-10-12T03:47:50Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a428ff64dda1a4b66b68a727b2dd383cd0790105","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/Khan/Prototope/pulls/105/commits","review_comments_url":"https://api.github.com/repos/Khan/Prototope/pulls/105/comments","review_comment_url":"https://api.github.com/repos/Khan/Prototope/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Khan/Prototope/issues/105/comments","statuses_url":"https://api.github.com/repos/Khan/Prototope/statuses/2c1092a782859e02c2ea4f4773b4e2474ef7d143","head":{"label":"jbrennan:mac","ref":"mac","sha":"2c1092a782859e02c2ea4f4773b4e2474ef7d143","user":{"login":"jbrennan","id":131923,"avatar_url":"https://avatars.githubusercontent.com/u/131923?v=3","gravatar_id":"","url":"https://api.github.com/users/jbrennan","html_url":"https://github.com/jbrennan","followers_url":"https://api.github.com/users/jbrennan/followers","following_url":"https://api.github.com/users/jbrennan/following{/other_user}","gists_url":"https://api.github.com/users/jbrennan/gists{/gist_id}","starred_url":"https://api.github.com/users/jbrennan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jbrennan/subscriptions","organizations_url":"https://api.github.com/users/jbrennan/orgs","repos_url":"https://api.github.com/users/jbrennan/repos","events_url":"https://api.github.com/users/jbrennan/events{/privacy}","received_events_url":"https://api.github.com/users/jbrennan/received_events","type":"User","site_admin":false},"repo":{"id":38979136,"name":"Prototope","full_name":"jbrennan/Prototope","owner":{"login":"jbrennan","id":131923,"avatar_url":"https://avatars.githubusercontent.com/u/131923?v=3","gravatar_id":"","url":"https://api.github.com/users/jbrennan","html_url":"https://github.com/jbrennan","followers_url":"https://api.github.com/users/jbrennan/followers","following_url":"https://api.github.com/users/jbrennan/following{/other_user}","gists_url":"https://api.github.com/users/jbrennan/gists{/gist_id}","starred_url":"https://api.github.com/users/jbrennan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jbrennan/subscriptions","organizations_url":"https://api.github.com/users/jbrennan/orgs","repos_url":"https://api.github.com/users/jbrennan/repos","events_url":"https://api.github.com/users/jbrennan/events{/privacy}","received_events_url":"https://api.github.com/users/jbrennan/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jbrennan/Prototope","description":"Swift library of lightweight interfaces for prototyping, bridged to JS","fork":true,"url":"https://api.github.com/repos/jbrennan/Prototope","forks_url":"https://api.github.com/repos/jbrennan/Prototope/forks","keys_url":"https://api.github.com/repos/jbrennan/Prototope/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jbrennan/Prototope/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jbrennan/Prototope/teams","hooks_url":"https://api.github.com/repos/jbrennan/Prototope/hooks","issue_events_url":"https://api.github.com/repos/jbrennan/Prototope/issues/events{/number}","events_url":"https://api.github.com/repos/jbrennan/Prototope/events","assignees_url":"https://api.github.com/repos/jbrennan/Prototope/assignees{/user}","branches_url":"https://api.github.com/repos/jbrennan/Prototope/branches{/branch}","tags_url":"https://api.github.com/repos/jbrennan/Prototope/tags","blobs_url":"https://api.github.com/repos/jbrennan/Prototope/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jbrennan/Prototope/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jbrennan/Prototope/git/refs{/sha}","trees_url":"https://api.github.com/repos/jbrennan/Prototope/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jbrennan/Prototope/statuses/{sha}","languages_url":"https://api.github.com/repos/jbrennan/Prototope/languages","stargazers_url":"https://api.github.com/repos/jbrennan/Prototope/stargazers","contributors_url":"https://api.github.com/repos/jbrennan/Prototope/contributors","subscribers_url":"https://api.github.com/repos/jbrennan/Prototope/subscribers","subscription_url":"https://api.github.com/repos/jbrennan/Prototope/subscription","commits_url":"https://api.github.com/repos/jbrennan/Prototope/commits{/sha}","git_commits_url":"https://api.github.com/repos/jbrennan/Prototope/git/commits{/sha}","comments_url":"https://api.github.com/repos/jbrennan/Prototope/comments{/number}","issue_comment_url":"https://api.github.com/repos/jbrennan/Prototope/issues/comments{/number}","contents_url":"https://api.github.com/repos/jbrennan/Prototope/contents/{+path}","compare_url":"https://api.github.com/repos/jbrennan/Prototope/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jbrennan/Prototope/merges","archive_url":"https://api.github.com/repos/jbrennan/Prototope/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jbrennan/Prototope/downloads","issues_url":"https://api.github.com/repos/jbrennan/Prototope/issues{/number}","pulls_url":"https://api.github.com/repos/jbrennan/Prototope/pulls{/number}","milestones_url":"https://api.github.com/repos/jbrennan/Prototope/milestones{/number}","notifications_url":"https://api.github.com/repos/jbrennan/Prototope/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jbrennan/Prototope/labels{/name}","releases_url":"https://api.github.com/repos/jbrennan/Prototope/releases{/id}","created_at":"2015-07-12T21:40:25Z","updated_at":"2015-09-30T14:02:28Z","pushed_at":"2015-10-03T04:00:10Z","git_url":"git://github.com/jbrennan/Prototope.git","ssh_url":"git@github.com:jbrennan/Prototope.git","clone_url":"https://github.com/jbrennan/Prototope.git","svn_url":"https://github.com/jbrennan/Prototope","homepage":"http://khan.github.io/Prototope","size":4245,"stargazers_count":1,"watchers_count":1,"language":"Swift","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":1,"default_branch":"master"}},"base":{"label":"Khan:master","ref":"master","sha":"111f06de63f2f69d88f611a13f8f30dc10bd3d92","user":{"login":"Khan","id":15455,"avatar_url":"https://avatars.githubusercontent.com/u/15455?v=3","gravatar_id":"","url":"https://api.github.com/users/Khan","html_url":"https://github.com/Khan","followers_url":"https://api.github.com/users/Khan/followers","following_url":"https://api.github.com/users/Khan/following{/other_user}","gists_url":"https://api.github.com/users/Khan/gists{/gist_id}","starred_url":"https://api.github.com/users/Khan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Khan/subscriptions","organizations_url":"https://api.github.com/users/Khan/orgs","repos_url":"https://api.github.com/users/Khan/repos","events_url":"https://api.github.com/users/Khan/events{/privacy}","received_events_url":"https://api.github.com/users/Khan/received_events","type":"Organization","site_admin":false},"repo":{"id":24968831,"name":"Prototope","full_name":"Khan/Prototope","owner":{"login":"Khan","id":15455,"avatar_url":"https://avatars.githubusercontent.com/u/15455?v=3","gravatar_id":"","url":"https://api.github.com/users/Khan","html_url":"https://github.com/Khan","followers_url":"https://api.github.com/users/Khan/followers","following_url":"https://api.github.com/users/Khan/following{/other_user}","gists_url":"https://api.github.com/users/Khan/gists{/gist_id}","starred_url":"https://api.github.com/users/Khan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Khan/subscriptions","organizations_url":"https://api.github.com/users/Khan/orgs","repos_url":"https://api.github.com/users/Khan/repos","events_url":"https://api.github.com/users/Khan/events{/privacy}","received_events_url":"https://api.github.com/users/Khan/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Khan/Prototope","description":"Swift library of lightweight interfaces for prototyping, bridged to JS","fork":false,"url":"https://api.github.com/repos/Khan/Prototope","forks_url":"https://api.github.com/repos/Khan/Prototope/forks","keys_url":"https://api.github.com/repos/Khan/Prototope/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Khan/Prototope/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Khan/Prototope/teams","hooks_url":"https://api.github.com/repos/Khan/Prototope/hooks","issue_events_url":"https://api.github.com/repos/Khan/Prototope/issues/events{/number}","events_url":"https://api.github.com/repos/Khan/Prototope/events","assignees_url":"https://api.github.com/repos/Khan/Prototope/assignees{/user}","branches_url":"https://api.github.com/repos/Khan/Prototope/branches{/branch}","tags_url":"https://api.github.com/repos/Khan/Prototope/tags","blobs_url":"https://api.github.com/repos/Khan/Prototope/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Khan/Prototope/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Khan/Prototope/git/refs{/sha}","trees_url":"https://api.github.com/repos/Khan/Prototope/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Khan/Prototope/statuses/{sha}","languages_url":"https://api.github.com/repos/Khan/Prototope/languages","stargazers_url":"https://api.github.com/repos/Khan/Prototope/stargazers","contributors_url":"https://api.github.com/repos/Khan/Prototope/contributors","subscribers_url":"https://api.github.com/repos/Khan/Prototope/subscribers","subscription_url":"https://api.github.com/repos/Khan/Prototope/subscription","commits_url":"https://api.github.com/repos/Khan/Prototope/commits{/sha}","git_commits_url":"https://api.github.com/repos/Khan/Prototope/git/commits{/sha}","comments_url":"https://api.github.com/repos/Khan/Prototope/comments{/number}","issue_comment_url":"https://api.github.com/repos/Khan/Prototope/issues/comments{/number}","contents_url":"https://api.github.com/repos/Khan/Prototope/contents/{+path}","compare_url":"https://api.github.com/repos/Khan/Prototope/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Khan/Prototope/merges","archive_url":"https://api.github.com/repos/Khan/Prototope/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Khan/Prototope/downloads","issues_url":"https://api.github.com/repos/Khan/Prototope/issues{/number}","pulls_url":"https://api.github.com/repos/Khan/Prototope/pulls{/number}","milestones_url":"https://api.github.com/repos/Khan/Prototope/milestones{/number}","notifications_url":"https://api.github.com/repos/Khan/Prototope/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Khan/Prototope/labels{/name}","releases_url":"https://api.github.com/repos/Khan/Prototope/releases{/id}","created_at":"2014-10-09T01:41:46Z","updated_at":"2015-09-23T02:35:02Z","pushed_at":"2015-10-01T02:55:20Z","git_url":"git://github.com/Khan/Prototope.git","ssh_url":"git@github.com:Khan/Prototope.git","clone_url":"https://github.com/Khan/Prototope.git","svn_url":"https://github.com/Khan/Prototope","homepage":"http://khan.github.io/Prototope","size":5614,"stargazers_count":211,"watchers_count":211,"language":"Swift","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":12,"mirror_url":null,"open_issues_count":26,"forks":12,"open_issues":26,"watchers":211,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Khan/Prototope/pulls/105"},"html":{"href":"https://github.com/Khan/Prototope/pull/105"},"issue":{"href":"https://api.github.com/repos/Khan/Prototope/issues/105"},"comments":{"href":"https://api.github.com/repos/Khan/Prototope/issues/105/comments"},"review_comments":{"href":"https://api.github.com/repos/Khan/Prototope/pulls/105/comments"},"review_comment":{"href":"https://api.github.com/repos/Khan/Prototope/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Khan/Prototope/pulls/105/commits"},"statuses":{"href":"https://api.github.com/repos/Khan/Prototope/statuses/2c1092a782859e02c2ea4f4773b4e2474ef7d143"}}}}