1
0
mirror of https://github.com/SquidDev-CC/CC-Tweaked synced 2024-06-25 06:33:23 +00:00

Added term.getLine and window.getLine

This commit is contained in:
liquid 2019-07-12 22:54:37 -05:00
parent f9929cb27d
commit 85b740f484
4 changed files with 46 additions and 0 deletions

View File

@ -67,6 +67,7 @@ public String[] getMethodNames()
"nativePaletteColour",
"nativePaletteColor",
"getCursorBlink",
"getLine"
};
}
@ -279,6 +280,21 @@ public Object[] callMethod( @Nonnull ILuaContext context, int method, @Nonnull O
case 25:
// getCursorBlink
return new Object[] { m_terminal.getCursorBlink() };
case 26:
// getLine
int y = getInt( args, 0 ) - 1;
if ( y < 0 || y >= m_terminal.getHeight() )
{
throw new LuaException( "Line is out of range." );
}
String line, lineTextColour, lineBackgroundColour;
synchronized (m_terminal)
{
line = m_terminal.getLine( y ).read();
lineTextColour = m_terminal.getTextColourLine( y ).read();
lineBackgroundColour = m_terminal.getBackgroundColourLine( y ).read();
}
return new Object[] { line, lineTextColour, lineBackgroundColour };
default:
return null;
}

View File

@ -388,6 +388,16 @@ function create( parent, nX, nY, nWidth, nHeight, bStartVisible )
return nBackgroundColor
end
function window.getLine( nY )
if type(nY) ~= "number" then expect(1, nY, "number") end
if nY < 1 or nY > nHeight then
error( "Line is out of range.", 2 )
end
return tLines[nY].text, tLines[nY].textColor, tLines[nY].backgroundColor
end
-- Other functions
function window.setVisible( bVis )
if type(bVis) ~= "boolean" then expect(1, bVis, "boolean") end

View File

@ -9,4 +9,13 @@ describe("The term library", function()
:eq("term is not a recommended redirect target, try term.current() instead")
end)
end)
describe("term.getLine", function()
it("validates arguments", function()
local _, y = term.getSize()
expect.error(term.getLine, nil):eq("bad argument #1 (expected number, got nil)")
expect.error(term.getLine, 0):eq("Line is out of range.")
expect.error(term.getLine, y + 1):eq("Line is out of range.")
end)
end)
end)

View File

@ -120,4 +120,15 @@ describe("The window library", function()
expect.error(w.reposition, 1, 1, 1, nil):eq("bad argument #4 (expected number, got nil)")
end)
end)
describe("Window.getLine", function()
it("validates arguments", function()
local w = mk()
w.getLine(1)
local _, y = w.getSize()
expect.error(w.getLine, nil):eq("bad argument #1 (expected number, got nil)")
expect.error(w.getLine, 0):eq("Line is out of range.")
expect.error(w.getLine, y + 1):eq("Line is out of range.")
end)
end)
end)