Many new things
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
package org.openautonomousconnection.luascript.tables;
|
||||
|
||||
import org.luaj.vm2.LuaValue;
|
||||
import org.luaj.vm2.lib.*;
|
||||
import org.openautonomousconnection.luascript.hosts.ClipboardHost;
|
||||
import org.openautonomousconnection.luascript.hosts.HostServices;
|
||||
import org.openautonomousconnection.luascript.utils.ScriptTable;
|
||||
|
||||
/**
|
||||
* Lua table: clipboard
|
||||
*
|
||||
* <p>Functions:</p>
|
||||
* <ul>
|
||||
* <li>clipboard.set(text)</li>
|
||||
* <li>clipboard.get() -> text</li>
|
||||
* </ul>
|
||||
*/
|
||||
public final class ClipboardTable extends ScriptTable {
|
||||
|
||||
public ClipboardTable() {
|
||||
super("clipboard");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void define(HostServices services) {
|
||||
ClipboardHost host = services.clipboard().orElseThrow(() -> new IllegalStateException("ClipboardHost not provided"));
|
||||
|
||||
table().set("set", new OneArgFunction() {
|
||||
@Override
|
||||
public LuaValue call(LuaValue text) {
|
||||
host.setText(text.isnil() ? "" : text.tojstring());
|
||||
return LuaValue.NIL;
|
||||
}
|
||||
});
|
||||
|
||||
table().set("get", new ZeroArgFunction() {
|
||||
@Override
|
||||
public LuaValue call() {
|
||||
return LuaValue.valueOf(host.getText());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user