YR7AXEYBLB7Y4OZKPX4REW5JD5VOCSKMAC2TR5N75UJEG72XJUQAC
ZGPYJMP3UB7LDCJ4O5UBVGMNEF47GPCIFFIXAX65GGFPMQCCYSSQC
DZLFYLDUMYM4TXT5WKUHD4YXF2J2TQM5SO4W4VXLPBJNDXYV43VQC
AZMYKWMHE3RTQ7Z7NTBK3H4YTZ46HQE2GHUY7WADMITC7UIVB5RQC
R5QXEHUIZLELJGGCZAE7ATNS3CLRJ7JFRENMGH4XXH24C5WABZDQC
FIUQJVL2MCC4VKKX7JBT6377TWIGPTUC5NXMUABV5JILB3ZDWZFAC
W4EQ6IW4KVNJDAN32RUK7BLGWJB3TKZIE27PLIIGU5ARJPBMVS6QC
OGDDLU5BOJEAETHLBI5S3HAOHI275IVIY5UOJ4TG6DROJJ5PIOLAC
5MEJ7XNHNFG2BIX3TFU6PDJHSJOS2Z45L25QAZKFGRW7ZNOFEUKAC
GWLETNMWE7L7P3YBVUFZGBNT3DKHB7IT7ZJ54FUCNYLC72UNCXGAC
I27BLL75VM2WNO2TBUFBYQUYVXGERSQTD6UAHAZD5AAYDWRQJNYQC
SIJ5I4NZN5LFATNT5QIWUK75Z5W6P4B4AKNPVYFQ7IVRMOCVWR3AC
RK2ASPN7A55RCEG2YRFZLFXNPSME2VKBE2ZXO257DYZPS5TPXC5QC
X2YWEIZSRESZM4LE5JNEXIRP6YIBPGTYRJLXLUI45FS2QBPMFNAQC
NV4WC3K4KQMF4NSGAKJG7JMN3WNDWPIA7NVYVZUOWFUKZ4562UEQC
W3RRTO4PYRYYWVCL5FZFD7646E4WVPYAUVPCSCPI545EM74GY7EQC
I52S4E5FT6E6FHH3QEDJPWO7C6W7AIMAFDP2KQ5FEWXFQX7RY6CAC
HVXZLNCCLSMOKMA6TU7H7LKCRH5TAOP3X3EY6MEWFWZRWMVHEFWQC
GAKJROFZ5QBGUKTCAFC53JT5U2NYWVMUZHPYRALERQD7UUXSRHYAC
PN6VP3LVDRGXBTDTXHMQYUZRLP2JHJPNCJPBAW7SR7UFEFXXTDDAC
PRE6XPRNICDCHMF7C45A6DRPVT47IPAIWW6Q7AHNGW3D2PBGOPNAC
6DJMOJKEO5DIOEDV655SPA7C7HN2HXWMDJ7UF2CRDRBAF5YO3UEAC
ZM7NOBRMD5HHA35Y4JDC76EOA2RD4KQOQCPURXYKXA6ABMKOJIGQC
press_previous_pane_button = function()
Show_menu = nil
Current_pane.car = car
Current_pane_index = Current_pane_index-1
Current_pane = Panes[Current_pane_index]
car = Current_pane.car or {}
end
press_next_pane_button = function()
Show_menu = nil
Current_pane.car = car
Current_pane_index = Current_pane_index+1
Current_pane = Panes[Current_pane_index]
car = Current_pane.car or {}
end
press_load_button = function()
Show_menu = nil
Show_file_dialog = true
File_dialog_callback = function(filename)
if filename == '' then
-- clear filename
Current_pane.filename = nil
return
end
Current_pane.filename = filename
one_time_load()
-- Load new filename in future sessions.
-- On mobile devices, we can't depend on on.save_settings() triggering on quit.
love.filesystem.write('config', json.encode(settings()))
end
end
press_save_button = function()
Show_menu = nil
if Current_pane.filename == nil then
Show_file_dialog = true
File_dialog_callback = function(filename)
if filename == '' then return end
Current_pane.filename = filename
one_time_save()
-- Load new filename in future sessions.
-- On mobile devices, we can't depend on on.save_settings() triggering on quit.
love.filesystem.write('config', json.encode(settings()))
end
else
one_time_save()
end
end
press_hide_button = function()
Show_menu = nil
Show_code = false
end
press_show_button = function()
Show_menu = nil
Show_code = true
end
press_stop_button = function()
if car.quit then
call_protected(car.quit)
end
Show_menu = nil
clear_handlers()
end
press_run_button = function()
Show_menu = nil
-- ## run: initialize
clear_handlers()
local buf = table.concat(map(Current_pane.editor_state.lines, function(line) return line.data end), '\n')
Current_pane.canvas = love.graphics.newCanvas()
love.graphics.setCanvas(Current_pane.canvas)
love.graphics.push('all')
love.graphics.setBackgroundColor(1,1,1)
edit.clear(Current_pane.output_editor_state)
print = print_to_output
-- ## run
local status, result = live.eval(buf, 'editor')
-- ## run: save some stuff, clean up the rest
print = Real_print
if result then
-- could be either output or error
table.insert(Current_pane.output_editor_state.lines, {data=tostring(result)})
end
if #Current_pane.output_editor_state.lines == 0 then
table.insert(Current_pane.output_editor_state.lines, {data=''})
end
Text.redraw_all(Current_pane.output_editor_state)
love.graphics.pop()
love.graphics.setCanvas()
end
return overflowable_button('save', x, y, r,
function()
Show_menu = nil
if Current_pane.filename == nil then
Show_file_dialog = true
File_dialog_callback = function(filename)
if filename == '' then return end
Current_pane.filename = filename
one_time_save()
-- Load new filename in future sessions.
-- On mobile devices, we can't depend on on.save_settings() triggering on quit.
love.filesystem.write('config', json.encode(settings()))
end
else
one_time_save()
end
end)
return overflowable_button('save', x, y, r, press_save_button)
styled_button('stop', x,y,
function()
if car.quit then
call_protected(car.quit)
end
Show_menu = nil
clear_handlers()
end)
styled_button('stop', x,y, press_stop_button)
return overflowable_button('hide', x, y, r,
function()
Show_menu = nil
Show_code = false
end)
end
return overflowable_button('hide', x, y, r, press_hide_button)
end
return overflowable_button('show', x, y, r,
function()
Show_menu = nil
Show_code = true
end)
end
return overflowable_button('show', x, y, r, press_show_button)
end
end,
onpress1 = function()
Show_menu = nil
Current_pane.car = car
Current_pane_index = Current_pane_index+1
Current_pane = Panes[Current_pane_index]
car = Current_pane.car or {}
end,
onpress1 = function()
Show_menu = nil
Current_pane.car = car
Current_pane_index = Current_pane_index-1
Current_pane = Panes[Current_pane_index]
car = Current_pane.car or {}
styled_button('run', x,y,
function()
Show_menu = nil
-- ## run: initialize
clear_handlers()
local buf = table.concat(map(Current_pane.editor_state.lines, function(line) return line.data end), '\n')
Current_pane.canvas = love.graphics.newCanvas()
love.graphics.setCanvas(Current_pane.canvas)
love.graphics.push('all')
love.graphics.setBackgroundColor(1,1,1)
edit.clear(Current_pane.output_editor_state)
print = print_to_output
-- ## run
local status, result = live.eval(buf, 'editor')
-- ## run: save some stuff, clean up the rest
print = Real_print
if result then
-- could be either output or error
table.insert(Current_pane.output_editor_state.lines, {data=tostring(result)})
end
if #Current_pane.output_editor_state.lines == 0 then
table.insert(Current_pane.output_editor_state.lines, {data=''})
end
Text.redraw_all(Current_pane.output_editor_state)
love.graphics.pop()
love.graphics.setCanvas()
end)
styled_button('run', x,y, press_run_button)
if Current_pane.editor_state.cursor_x then
if chord == 'C-left' then press_previous_pane_button()
elseif chord == 'C-right' then press_next_pane_button()
elseif chord == 'f1' then press_run_button()
elseif chord == 'f2' then press_stop_button()
elseif chord == 'f3' then press_hide_button()
elseif chord == 'f4' then press_save_button()
elseif chord == 'f5' then press_load_button()
elseif Current_pane.editor_state.cursor_x then