Mercurial Hosting > luan
diff src/luan/modules/swing/Text_area.luan @ 1616:915cb538e2a3
start swing
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sat, 05 Jun 2021 21:42:29 -0600 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/luan/modules/swing/Text_area.luan Sat Jun 05 21:42:29 2021 -0600 @@ -0,0 +1,57 @@ +local Luan = require "luan:Luan.luan" +local error = Luan.error +local set_metatable = Luan.set_metatable or error() +local type = Luan.type or error() +local Font = require "luan:swing/Font.luan" +require "java" +local JTextArea = require "java:javax.swing.JTextArea" + + +local Text_area = {} + +local mt = {} + +function mt.__index(text_area,key) + if key == "line_wrap" then + return text_area.java.getLineWrap() + end + if key == "wrap_style_word" then + return text_area.java.getWrapStyleWord() + end + if key == "tab_size" then + return text_area.java.getTabSize() + end + error("'"..key.."' not defined") +end + +function mt.__new_index(text_area,key,value) + if key == "line_wrap" then + text_area.java.setLineWrap(value) + return + end + if key == "wrap_style_word" then + text_area.java.setWrapStyleWord(value) + return + end + if key == "tab_size" then + text_area.java.setTabSize(value) + return + end + if key == "font" then + if type(value) == "table" then + value = Font.get(value) + end + text_area.java.setFont(value) + return + end + error("'"..key.."' not defined") +end + +function Text_area.new(rows,columns) + local jtext_area = JTextArea.new(rows,columns) + local text_area = { java = jtext_area } + set_metatable(text_area,mt) + return text_area +end + +return Text_area