Mercurial Hosting > luan
comparison 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 |
comparison
equal
deleted
inserted
replaced
1615:38894708bade | 1616:915cb538e2a3 |
---|---|
1 local Luan = require "luan:Luan.luan" | |
2 local error = Luan.error | |
3 local set_metatable = Luan.set_metatable or error() | |
4 local type = Luan.type or error() | |
5 local Font = require "luan:swing/Font.luan" | |
6 require "java" | |
7 local JTextArea = require "java:javax.swing.JTextArea" | |
8 | |
9 | |
10 local Text_area = {} | |
11 | |
12 local mt = {} | |
13 | |
14 function mt.__index(text_area,key) | |
15 if key == "line_wrap" then | |
16 return text_area.java.getLineWrap() | |
17 end | |
18 if key == "wrap_style_word" then | |
19 return text_area.java.getWrapStyleWord() | |
20 end | |
21 if key == "tab_size" then | |
22 return text_area.java.getTabSize() | |
23 end | |
24 error("'"..key.."' not defined") | |
25 end | |
26 | |
27 function mt.__new_index(text_area,key,value) | |
28 if key == "line_wrap" then | |
29 text_area.java.setLineWrap(value) | |
30 return | |
31 end | |
32 if key == "wrap_style_word" then | |
33 text_area.java.setWrapStyleWord(value) | |
34 return | |
35 end | |
36 if key == "tab_size" then | |
37 text_area.java.setTabSize(value) | |
38 return | |
39 end | |
40 if key == "font" then | |
41 if type(value) == "table" then | |
42 value = Font.get(value) | |
43 end | |
44 text_area.java.setFont(value) | |
45 return | |
46 end | |
47 error("'"..key.."' not defined") | |
48 end | |
49 | |
50 function Text_area.new(rows,columns) | |
51 local jtext_area = JTextArea.new(rows,columns) | |
52 local text_area = { java = jtext_area } | |
53 set_metatable(text_area,mt) | |
54 return text_area | |
55 end | |
56 | |
57 return Text_area |