Client for playing 300 publicly available Sokoban puzzles on a computer or phone.
-- draw a button in the menu if possible
-- if not, stash it behind an overflow ('>>') button
overflowable_button = function(name, x, y, r, onpress1, final_button, tooltip_text, fg)
	local w = Font:getWidth(name)+10
	local x2, y2 = maybe_draw_overflow_button(x, y, w, r, final_button)
	if Overflow_button then
		-- overflow
		if Show_menu ~= 'overflow' then
			return x, y
		else
			y = y2
		end
	end
	styled_button(name, x,y, onpress1, tooltip_text, fg)
	if Overflow_button then
		return x, y+Line_height
	else
		return x+w+10, y
	end
end