43 lines
1.2 KiB
Java
43 lines
1.2 KiB
Java
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());
|
|
}
|
|
});
|
|
}
|
|
} |