{"action":"created","comment":{"url":"https://api.github.com/repos/runrev/livecode/pulls/comments/25935223","id":25935223,"diff_hunk":"@@ -0,0 +1,716 @@\n+/*\n+Copyright (C) 2015 Runtime Revolution Ltd.\n+\n+This file is part of LiveCode.\n+\n+LiveCode is free software; you can redistribute it and/or modify it under\n+the terms of the GNU General Public License v3 as published by the Free\n+Software Foundation.\n+\n+LiveCode is distributed in the hope that it will be useful, but WITHOUT ANY\n+WARRANTY; without even the implied warranty of MERCHANTABILITY or\n+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License\n+for more details.\n+\n+You should have received a copy of the GNU General Public License\n+along with LiveCode.  If not see <http://www.gnu.org/licenses/>.  */\n+\n+/*\n+Description: This widget is a segmented control.\n+A segmented control is a horizontal control that is made up of multiple segments, where each segment functions as a discrete button.\n+*/\n+\n+-- declaring extension as widget, followed by identifier\n+widget com.livecode.extensions.livecode.segmented\n+--\n+\n+-- adding metadata to ensure the extension displays correctly in livecode\n+metadata title is \"Segmented\"\n+metadata author is \"Georgia Hutchings\"\n+metadata version is \"1.0.0\"\n+--\n+\n+-- dependency declarations\n+use com.livecode.canvas\n+use com.livecode.widget\n+use com.livecode.engine\n+--\n+\n+-- property declarations\n+property theme\t\t\t\tget mTheme\t\t\t\tset setTheme\n+property segmentStyle \t\tget mStyle\t\t\t\tset setStyle\t\t\t-- string (enum) : segment or bar\n+property multiSelect\t\tget mMultiSelect\t\tset setMultiSelect\t\t\n+\n+--property segementNames\t\tget getSegmentNames\t\tset setSegmentNames\t\t-- list of optional strings\n+property segmentNames\t\tget mSegmentNames\t\tset setSegmentNames\n+\n+property segmentLabels\t\tget getSegmentLabels\tset setSegmentLabels\t-- list of optional strings\n+property segmentIcons\t\tget getSegmentIcons\t\tset setSegmentIcons\t\t-- list of optional strings\n+property selectedIcons\t\tget getSelectedIcons\tset setSelectedIcons\t-- list of optional strings\n+\n+property segmentDisplay\t\tget mSegmentDisplay\t\tset setSegmentDisplay\t-- string (enum) : text or icon\n+property segmentMinWidth\tget getSegmentMinWidth\tset setSegmentMinWidth\t-- list of optional number\n+property selectedSegment\tget getSelectedSegment\tset setSelectedSegment\t\n+--\n+\n+-- private instance variables\n+--properties\n+private variable mTheme \t\t\tas string\n+private variable mStyle\t\t\t\tas string\n+private variable mMultiSelect\t\tas boolean\n+\n+private variable mSegmentNames\t\tas list\n+private variable mSegmentLabels\t\tas list\n+private variable mSegmentIcons\t\tas list\n+private variable mSelectedIcons\t\tas list\n+\n+private variable mSegmentDisplay\tas string\n+private variable mSegmentMinWidth\tas list\n+private variable mSelectedSegments\tas list\n+\n+--variables\n+private variable mGeometryIsChanged\tas boolean\n+private variable mNumSegments\t\tas integer\n+private variable mLeft\t\t\t\tas real\n+\n+private variable mPerimeter\t\t\tas Path\n+private variable mLines\t\t\t\tas list\t\t\t-- list of line paths\n+private variable mRadius\t\t\tas real\n+--\n+\n+-- constants\n+constant kIconSize is 16\n+constant kTextSize is 13\n+--\n+\n+----------\n+-- this handler is called when the widget is saved\n+public handler OnSave(out rProperties as array)\n+\tput the empty array into rProperties\n+\t\n+\tput mTheme\t\t\t\tinto rProperties[\"theme\"]\n+\tput mStyle\t\t\t\tinto rProperties[\"style\"]\n+\tput mMultiSelect\t\tinto rProperties[\"multiSelect\"]\n+\tput mSegmentNames\t\tinto rProperties[\"segmentNames\"]\n+\tput mSegmentLabels\t\tinto rProperties[\"segmentLabels\"]\n+\tput mSegmentIcons\t\tinto rProperties[\"segmentIcons\"]\n+\tput mSelectedIcons\t\tinto rProperties[\"selectedIcons\"]\n+\tput mSegmentDisplay\t\tinto rProperties[\"segmentDisplay\"]\n+\tput mSegmentMinWidth\tinto rProperties[\"segmentMinWidth\"]\t\n+\tput mSelectedSegments\tinto rProperties[\"selectedSegment\"]\n+\t\n+\treturn rProperties\n+end handler\n+----------\n+\n+----------\n+-- this handler is called when the widget is created\n+public handler OnLoad(in pProperties as array)\n+\t\n+\tput pProperties[\"theme\"]\t\t\tinto mTheme\n+\tput pProperties[\"style\"]\t\t\tinto mStyle\n+\tput pProperties[\"multiSelect\"]\t\tinto mMultiSelect\n+\tput pProperties[\"segmentNames\"]\t\tinto mSegmentNames\n+\tput pProperties[\"segmentLabels\"]\tinto mSegmentLabels\n+\tput pProperties[\"segmentIcons\"]\t\tinto mSegmentIcons\n+\tput pProperties[\"selectedIcons\"]\tinto mSelectedIcons\n+\tput pProperties[\"segmentDisplay\"]\tinto mSegmentDisplay\n+\tput pProperties[\"segmentMinWidth\"]\tinto mSegmentMinWidth\n+\tput pProperties[\"selectedSegment\"]\tinto mSelectedSegments\n+\t\n+end handler\n+----------\n+\n+----------\n+-- this handler is called when the widget is created\n+public handler OnCreate()\n+\t\n+\t-- properties\n+\tput \"ios-8\" into mTheme\n+\tput \"segment\" into mStyle\n+\tput true into mMultiSelect\n+\t\n+\tput [\"left\",\"centre\",\"right\"] into mSegmentNames\n+\tput [\"Left\",\"Centre\",\"Right\"] into mSegmentLabels\n+\tput [\"0xf036\",\"0xf037\",\"0xf038\"] into mSegmentIcons\n+\tput [\"0xf036\",\"0xf037\",\"0xf038\"] into mSelectedIcons\n+\t\n+\tput \"icon\" into mSegmentDisplay\n+\tput [30,30,30] into mSegmentMinWidth\n+\tput [1] into mSelectedSegments\n+\t--\n+\t\n+\t-- variables\n+\tput true into mGeometryIsChanged\n+\tput (the number of elements in mSegmentNames) into mNumSegments\n+\tput 0 into mLeft\n+\tput the empty path into mPerimeter\n+\tput the empty list into mLines\n+\tput 0 into mRadius\n+\t--\n+\t\n+end handler\n+----------\n+\n+----------\n+-- this handler is called whenever LiveCode needs to redraw the widget\n+public handler OnPaint()\n+\t\n+\tif mGeometryIsChanged then\n+\t\t-- update mPerimeter and mLines variables if the geometry has changed\n+\t\tput (the trunc of my height)/5 into mRadius\n+\t\tupdatePerimeter()\n+\t\tupdateLines()\n+\tend if\n+\t\n+\tdrawSegments()\n+\t\n+\t-- draw the lines to separate the segments\n+\tset the antialias of this canvas to false\n+\tset the stroke width of this canvas to 1\n+\tset the paint of this canvas to fetchPaint(\"lines\")\n+\t\n+\tvariable tLine\n+\trepeat for each element tLine in mLines\n+\t\tstroke tLine on this canvas\n+\tend repeat\n+\t\n+\tset the antialias of this canvas to true\n+\t--\n+\t\n+\t-- draw the perimeter of the control\n+\tset the paint of this canvas to fetchPaint(\"lines\")\n+\tset the stroke width of this canvas to 1\n+\t--stroke rectangle path of mPerimeter on this canvas\n+\tstroke mPerimeter on this canvas\n+\t--\n+\t\n+\tput false into mGeometryIsChanged\n+end handler\n+----------\n+\n+----------\n+-- this handler is called whenever the geometry is changed\n+public handler OnGeometryChanged()\n+\tput true into mGeometryIsChanged\n+end handler\n+----------\n+\n+----------\n+-- this handler is called when the mouse is clicked\n+public handler OnClick(in pXLoc as integer, in pYLoc as integer, in pMouseButton as integer, in pClicks as integer)\n+\t\n+\tvariable tX as integer\n+\tvariable tLabel as string\n+\tvariable tSegment\n+\tvariable tCount as integer\n+\t \n+\tif mMultiSelect is false then\n+\t\t-- if cannot multiselect, then need to select the clicked-on segment and deselect the currently selected segment\n+\t\t-- if the clicked-on segment is already selected, then do nothing\n+\t\n+\t\tif the click position is not within fetchBounds(element 1 of mSelectedSegments) then\n+\t\t\trepeat with tX from 1 up to mNumSegments\n+\t\t\t\n+\t\t\t\tif the click position is within fetchBounds(tX) then\n+\t\t\t\t\t\n+\t\t\t\t\tput the empty list into mSelectedSegments\n+\t\t\t\t\tpush tX onto back of mSelectedSegments\n+\t\t\t\t\t\n+\t\t\t\t\tput element tX of mSegmentNames into tLabel\n+\t\t\t\t\tdispatch command \"segmentSelected\" to my script object with [tLabel]\n+\t\t\t\tend if\n+\t\t\t\t\n+\t\t\tend repeat\t\n+\t\tend if\n+\t\t\n+\telse\n+\t\t-- if can multiselect, then select the clicked-on segment if it is unselected or unselect if its selected\n+\t\t-- cannot deselect a segment if it is the only selected segment\n+\t\t\n+\t\trepeat with tX from 1 up to mNumSegments\n+\t\t\tif the click position is within fetchBounds(tX) then\n+\t\t\n+\t\t\t\tvariable tIsIn\n+\t\t\t\tput tX is in mSelectedSegments into tIsIn\n+\t\t\n+\t\t\t\tif tIsIn then\n+\t\t\t\t\tif (the number of elements in mSelectedSegments) > 1 then\n+\t\t\t\t\n+\t\t\t\t\t\tput 1 into tCount\n+\t\t\t\t\t\tvariable tElement\n+\t\t\t\t\t\trepeat for each element tElement in mSelectedSegments\n+\t\t\t\t\t\t\tif tElement = tX then\n+\t\t\t\t\t\t\t\texit repeat\n+\t\t\t\t\t\t\tend if\n+\t\t\t\t\t\t\tadd 1 to tCount\n+\t\t\t\t\t\tend repeat\n+\t\t\t\t\t\n+\t\t\t\t\t\tdelete element tCount of mSelectedSegments\n+\t\t\t\t\t\tput element tX of mSegmentNames into tLabel\n+\t\t\t\t\t\tdispatch command \"segmentUnselected\" to my script object with [tLabel]\n+\t\t\t\t\t\t\n+\t\t\t\t\tend if\n+\t\t\t\telse\n+\t\t\t\t\tput element tX of mSegmentNames into tLabel\n+\t\t\t\t\tdispatch command \"segmentSelected\" to my script object with [tLabel]\n+\t\t\t\t\tpush tX onto back of mSelectedSegments\n+\t\t\t\t\t\t\n+\t\t\t\tend if\n+\t\t\tend if\n+\t\tend repeat\n+\tend if\n+\t\n+\tredraw all\n+end handler\n+----------\n+\n+----------\n+-- this handler draws the segments\n+private handler drawSegments() as undefined\n+\t\n+\tvariable tX as integer\n+\tvariable tLabel as string\n+\tvariable tWidth as real\n+\tvariable tIsIn as boolean\n+\t\n+\tput 0 into mLeft\n+\tset the font of this canvas to fetchFont()\n+\t\n+\trepeat with tX from 1 up to mNumSegments\n+\t\tput fetchWidth(tX) into tWidth\n+\t\tput tX is in mSelectedSegments into tIsIn\n+\t\t\n+\t\tif tIsIn then\n+\t\n+\t\t\t-- fill in the background of the selected segment(s)\n+\t\t\tset the paint of this canvas to fetchPaint(\"lines\")\n+\t\t\tif tX = 1 then\n+\t\t\t\t-- rounded rectangle segment\n+\t\t\t\tfill rounded rectangle path of rectangle [mLeft, 0, mLeft+tWidth, my height] with radius mRadius on this canvas\n+\t\t\t\tfill rectangle path of rectangle [mLeft+tWidth, 0, mLeft+tWidth*0.8, my height] on this canvas\n+\t\t\t\t\n+\t\t\telse if tX = mNumSegments then\n+\t\t\t\t-- rounded rectangle segment\n+\t\t\t\tfill rounded rectangle path of rectangle [mLeft, 0, mLeft+tWidth, my height] with radius mRadius on this canvas\n+\t\t\t\tfill rectangle path of rectangle [mLeft, 0, mLeft+tWidth*0.25, my height] on this canvas\n+\t\t\t\t\n+\t\t\telse\n+\t\t\t\tfill rectangle path of rectangle [mLeft, 0, mLeft+tWidth, my height] on this canvas\n+\t\t\tend if\n+\t\t\t--\n+\t\t\t\n+\t\t\t-- draw the label(s) in the selected segment(s)\n+\t\t\tif mSegmentDisplay is \"icon\" then\n+\t\t\t\texecute script (\"return numtocodepoint(\" & element tX of mSelectedIcons & \")\")","path":"extensions/widgets/segment_new/segment_new.lcb","position":305,"original_position":305,"commit_id":"b56228cf1c407bdcac02d4c45b4f83e7fd4c57af","original_commit_id":"b56228cf1c407bdcac02d4c45b4f83e7fd4c57af","user":{"login":"runrevmark","id":3985298,"avatar_url":"https://avatars.githubusercontent.com/u/3985298?v=3","gravatar_id":"","url":"https://api.github.com/users/runrevmark","html_url":"https://github.com/runrevmark","followers_url":"https://api.github.com/users/runrevmark/followers","following_url":"https://api.github.com/users/runrevmark/following{/other_user}","gists_url":"https://api.github.com/users/runrevmark/gists{/gist_id}","starred_url":"https://api.github.com/users/runrevmark/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/runrevmark/subscriptions","organizations_url":"https://api.github.com/users/runrevmark/orgs","repos_url":"https://api.github.com/users/runrevmark/repos","events_url":"https://api.github.com/users/runrevmark/events{/privacy}","received_events_url":"https://api.github.com/users/runrevmark/received_events","type":"User","site_admin":false},"body":"'parsed as number' only works with base 10 strings at the moment (its strict) so you need to base convert first...\r\n\r\nIf you look in one of the other widgets which I updated you can crib code from there.","created_at":"2015-03-06T10:00:08Z","updated_at":"2015-03-06T10:00:08Z","html_url":"https://github.com/runrev/livecode/pull/1976#discussion_r25935223","pull_request_url":"https://api.github.com/repos/runrev/livecode/pulls/1976","_links":{"self":{"href":"https://api.github.com/repos/runrev/livecode/pulls/comments/25935223"},"html":{"href":"https://github.com/runrev/livecode/pull/1976#discussion_r25935223"},"pull_request":{"href":"https://api.github.com/repos/runrev/livecode/pulls/1976"}}},"pull_request":{"url":"https://api.github.com/repos/runrev/livecode/pulls/1976","id":30559079,"html_url":"https://github.com/runrev/livecode/pull/1976","diff_url":"https://github.com/runrev/livecode/pull/1976.diff","patch_url":"https://github.com/runrev/livecode/pull/1976.patch","issue_url":"https://api.github.com/repos/runrev/livecode/issues/1976","number":1976,"state":"open","locked":false,"title":"[[ New Widget ]] segmented control as discussed","user":{"login":"livecodegeorgia","id":8805531,"avatar_url":"https://avatars.githubusercontent.com/u/8805531?v=3","gravatar_id":"","url":"https://api.github.com/users/livecodegeorgia","html_url":"https://github.com/livecodegeorgia","followers_url":"https://api.github.com/users/livecodegeorgia/followers","following_url":"https://api.github.com/users/livecodegeorgia/following{/other_user}","gists_url":"https://api.github.com/users/livecodegeorgia/gists{/gist_id}","starred_url":"https://api.github.com/users/livecodegeorgia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/livecodegeorgia/subscriptions","organizations_url":"https://api.github.com/users/livecodegeorgia/orgs","repos_url":"https://api.github.com/users/livecodegeorgia/repos","events_url":"https://api.github.com/users/livecodegeorgia/events{/privacy}","received_events_url":"https://api.github.com/users/livecodegeorgia/received_events","type":"User","site_admin":false},"body":"","created_at":"2015-03-05T14:07:48Z","updated_at":"2015-03-06T10:00:08Z","closed_at":null,"merged_at":null,"merge_commit_sha":"04d70c3b7c5390c55a31998ae8bbb0db8e487ad0","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/runrev/livecode/pulls/1976/commits","review_comments_url":"https://api.github.com/repos/runrev/livecode/pulls/1976/comments","review_comment_url":"https://api.github.com/repos/runrev/livecode/pulls/comments{/number}","comments_url":"https://api.github.com/repos/runrev/livecode/issues/1976/comments","statuses_url":"https://api.github.com/repos/runrev/livecode/statuses/b56228cf1c407bdcac02d4c45b4f83e7fd4c57af","head":{"label":"livecodegeorgia:feature-widget_segmented","ref":"feature-widget_segmented","sha":"b56228cf1c407bdcac02d4c45b4f83e7fd4c57af","user":{"login":"livecodegeorgia","id":8805531,"avatar_url":"https://avatars.githubusercontent.com/u/8805531?v=3","gravatar_id":"","url":"https://api.github.com/users/livecodegeorgia","html_url":"https://github.com/livecodegeorgia","followers_url":"https://api.github.com/users/livecodegeorgia/followers","following_url":"https://api.github.com/users/livecodegeorgia/following{/other_user}","gists_url":"https://api.github.com/users/livecodegeorgia/gists{/gist_id}","starred_url":"https://api.github.com/users/livecodegeorgia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/livecodegeorgia/subscriptions","organizations_url":"https://api.github.com/users/livecodegeorgia/orgs","repos_url":"https://api.github.com/users/livecodegeorgia/repos","events_url":"https://api.github.com/users/livecodegeorgia/events{/privacy}","received_events_url":"https://api.github.com/users/livecodegeorgia/received_events","type":"User","site_admin":false},"repo":{"id":30863630,"name":"livecode","full_name":"livecodegeorgia/livecode","owner":{"login":"livecodegeorgia","id":8805531,"avatar_url":"https://avatars.githubusercontent.com/u/8805531?v=3","gravatar_id":"","url":"https://api.github.com/users/livecodegeorgia","html_url":"https://github.com/livecodegeorgia","followers_url":"https://api.github.com/users/livecodegeorgia/followers","following_url":"https://api.github.com/users/livecodegeorgia/following{/other_user}","gists_url":"https://api.github.com/users/livecodegeorgia/gists{/gist_id}","starred_url":"https://api.github.com/users/livecodegeorgia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/livecodegeorgia/subscriptions","organizations_url":"https://api.github.com/users/livecodegeorgia/orgs","repos_url":"https://api.github.com/users/livecodegeorgia/repos","events_url":"https://api.github.com/users/livecodegeorgia/events{/privacy}","received_events_url":"https://api.github.com/users/livecodegeorgia/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/livecodegeorgia/livecode","description":"","fork":true,"url":"https://api.github.com/repos/livecodegeorgia/livecode","forks_url":"https://api.github.com/repos/livecodegeorgia/livecode/forks","keys_url":"https://api.github.com/repos/livecodegeorgia/livecode/keys{/key_id}","collaborators_url":"https://api.github.com/repos/livecodegeorgia/livecode/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/livecodegeorgia/livecode/teams","hooks_url":"https://api.github.com/repos/livecodegeorgia/livecode/hooks","issue_events_url":"https://api.github.com/repos/livecodegeorgia/livecode/issues/events{/number}","events_url":"https://api.github.com/repos/livecodegeorgia/livecode/events","assignees_url":"https://api.github.com/repos/livecodegeorgia/livecode/assignees{/user}","branches_url":"https://api.github.com/repos/livecodegeorgia/livecode/branches{/branch}","tags_url":"https://api.github.com/repos/livecodegeorgia/livecode/tags","blobs_url":"https://api.github.com/repos/livecodegeorgia/livecode/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/livecodegeorgia/livecode/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/livecodegeorgia/livecode/git/refs{/sha}","trees_url":"https://api.github.com/repos/livecodegeorgia/livecode/git/trees{/sha}","statuses_url":"https://api.github.com/repos/livecodegeorgia/livecode/statuses/{sha}","languages_url":"https://api.github.com/repos/livecodegeorgia/livecode/languages","stargazers_url":"https://api.github.com/repos/livecodegeorgia/livecode/stargazers","contributors_url":"https://api.github.com/repos/livecodegeorgia/livecode/contributors","subscribers_url":"https://api.github.com/repos/livecodegeorgia/livecode/subscribers","subscription_url":"https://api.github.com/repos/livecodegeorgia/livecode/subscription","commits_url":"https://api.github.com/repos/livecodegeorgia/livecode/commits{/sha}","git_commits_url":"https://api.github.com/repos/livecodegeorgia/livecode/git/commits{/sha}","comments_url":"https://api.github.com/repos/livecodegeorgia/livecode/comments{/number}","issue_comment_url":"https://api.github.com/repos/livecodegeorgia/livecode/issues/comments{/number}","contents_url":"https://api.github.com/repos/livecodegeorgia/livecode/contents/{+path}","compare_url":"https://api.github.com/repos/livecodegeorgia/livecode/compare/{base}...{head}","merges_url":"https://api.github.com/repos/livecodegeorgia/livecode/merges","archive_url":"https://api.github.com/repos/livecodegeorgia/livecode/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/livecodegeorgia/livecode/downloads","issues_url":"https://api.github.com/repos/livecodegeorgia/livecode/issues{/number}","pulls_url":"https://api.github.com/repos/livecodegeorgia/livecode/pulls{/number}","milestones_url":"https://api.github.com/repos/livecodegeorgia/livecode/milestones{/number}","notifications_url":"https://api.github.com/repos/livecodegeorgia/livecode/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/livecodegeorgia/livecode/labels{/name}","releases_url":"https://api.github.com/repos/livecodegeorgia/livecode/releases{/id}","created_at":"2015-02-16T10:35:23Z","updated_at":"2015-03-05T13:51:18Z","pushed_at":"2015-03-05T17:43:07Z","git_url":"git://github.com/livecodegeorgia/livecode.git","ssh_url":"git@github.com:livecodegeorgia/livecode.git","clone_url":"https://github.com/livecodegeorgia/livecode.git","svn_url":"https://github.com/livecodegeorgia/livecode","homepage":null,"size":67587,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"develop"}},"base":{"label":"runrev:develop","ref":"develop","sha":"9827c6a2892dfde23f1252b1371290efd47d75fd","user":{"login":"runrev","id":3985749,"avatar_url":"https://avatars.githubusercontent.com/u/3985749?v=3","gravatar_id":"","url":"https://api.github.com/users/runrev","html_url":"https://github.com/runrev","followers_url":"https://api.github.com/users/runrev/followers","following_url":"https://api.github.com/users/runrev/following{/other_user}","gists_url":"https://api.github.com/users/runrev/gists{/gist_id}","starred_url":"https://api.github.com/users/runrev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/runrev/subscriptions","organizations_url":"https://api.github.com/users/runrev/orgs","repos_url":"https://api.github.com/users/runrev/repos","events_url":"https://api.github.com/users/runrev/events{/privacy}","received_events_url":"https://api.github.com/users/runrev/received_events","type":"Organization","site_admin":false},"repo":{"id":9334445,"name":"livecode","full_name":"runrev/livecode","owner":{"login":"runrev","id":3985749,"avatar_url":"https://avatars.githubusercontent.com/u/3985749?v=3","gravatar_id":"","url":"https://api.github.com/users/runrev","html_url":"https://github.com/runrev","followers_url":"https://api.github.com/users/runrev/followers","following_url":"https://api.github.com/users/runrev/following{/other_user}","gists_url":"https://api.github.com/users/runrev/gists{/gist_id}","starred_url":"https://api.github.com/users/runrev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/runrev/subscriptions","organizations_url":"https://api.github.com/users/runrev/orgs","repos_url":"https://api.github.com/users/runrev/repos","events_url":"https://api.github.com/users/runrev/events{/privacy}","received_events_url":"https://api.github.com/users/runrev/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/runrev/livecode","description":"","fork":false,"url":"https://api.github.com/repos/runrev/livecode","forks_url":"https://api.github.com/repos/runrev/livecode/forks","keys_url":"https://api.github.com/repos/runrev/livecode/keys{/key_id}","collaborators_url":"https://api.github.com/repos/runrev/livecode/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/runrev/livecode/teams","hooks_url":"https://api.github.com/repos/runrev/livecode/hooks","issue_events_url":"https://api.github.com/repos/runrev/livecode/issues/events{/number}","events_url":"https://api.github.com/repos/runrev/livecode/events","assignees_url":"https://api.github.com/repos/runrev/livecode/assignees{/user}","branches_url":"https://api.github.com/repos/runrev/livecode/branches{/branch}","tags_url":"https://api.github.com/repos/runrev/livecode/tags","blobs_url":"https://api.github.com/repos/runrev/livecode/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/runrev/livecode/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/runrev/livecode/git/refs{/sha}","trees_url":"https://api.github.com/repos/runrev/livecode/git/trees{/sha}","statuses_url":"https://api.github.com/repos/runrev/livecode/statuses/{sha}","languages_url":"https://api.github.com/repos/runrev/livecode/languages","stargazers_url":"https://api.github.com/repos/runrev/livecode/stargazers","contributors_url":"https://api.github.com/repos/runrev/livecode/contributors","subscribers_url":"https://api.github.com/repos/runrev/livecode/subscribers","subscription_url":"https://api.github.com/repos/runrev/livecode/subscription","commits_url":"https://api.github.com/repos/runrev/livecode/commits{/sha}","git_commits_url":"https://api.github.com/repos/runrev/livecode/git/commits{/sha}","comments_url":"https://api.github.com/repos/runrev/livecode/comments{/number}","issue_comment_url":"https://api.github.com/repos/runrev/livecode/issues/comments{/number}","contents_url":"https://api.github.com/repos/runrev/livecode/contents/{+path}","compare_url":"https://api.github.com/repos/runrev/livecode/compare/{base}...{head}","merges_url":"https://api.github.com/repos/runrev/livecode/merges","archive_url":"https://api.github.com/repos/runrev/livecode/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/runrev/livecode/downloads","issues_url":"https://api.github.com/repos/runrev/livecode/issues{/number}","pulls_url":"https://api.github.com/repos/runrev/livecode/pulls{/number}","milestones_url":"https://api.github.com/repos/runrev/livecode/milestones{/number}","notifications_url":"https://api.github.com/repos/runrev/livecode/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/runrev/livecode/labels{/name}","releases_url":"https://api.github.com/repos/runrev/livecode/releases{/id}","created_at":"2013-04-10T00:15:57Z","updated_at":"2015-03-06T09:52:07Z","pushed_at":"2015-03-06T09:52:07Z","git_url":"git://github.com/runrev/livecode.git","ssh_url":"git@github.com:runrev/livecode.git","clone_url":"https://github.com/runrev/livecode.git","svn_url":"https://github.com/runrev/livecode","homepage":null,"size":125057,"stargazers_count":80,"watchers_count":80,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":68,"mirror_url":null,"open_issues_count":62,"forks":68,"open_issues":62,"watchers":80,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/runrev/livecode/pulls/1976"},"html":{"href":"https://github.com/runrev/livecode/pull/1976"},"issue":{"href":"https://api.github.com/repos/runrev/livecode/issues/1976"},"comments":{"href":"https://api.github.com/repos/runrev/livecode/issues/1976/comments"},"review_comments":{"href":"https://api.github.com/repos/runrev/livecode/pulls/1976/comments"},"review_comment":{"href":"https://api.github.com/repos/runrev/livecode/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/runrev/livecode/pulls/1976/commits"},"statuses":{"href":"https://api.github.com/repos/runrev/livecode/statuses/b56228cf1c407bdcac02d4c45b4f83e7fd4c57af"}}}}