Mercurial Hosting > luan
changeset 1864:a005c503d564
swing work
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 31 Mar 2025 16:59:43 -0600 |
parents | 928e73bfe7ea |
children | 58938d6045e4 |
files | src/luan/modules/swing/Check_box_menu_item.luan src/luan/modules/swing/Component.luan src/luan/modules/swing/Menu_item.luan src/luan/modules/swing/Text_area.luan |
diffstat | 4 files changed, 54 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/luan/modules/swing/Check_box_menu_item.luan Mon Mar 31 16:59:43 2025 -0600 @@ -0,0 +1,45 @@ +local Luan = require "luan:Luan.luan" +local error = Luan.error +local set_metatable = Luan.set_metatable or error() +local Utils = require "luan:swing/Utils.luan" +local fail = Utils.fail or error() +local make_metatable = Utils.make_metatable or error() +local Menu_item = require "luan:swing/Menu_item.luan" +local super__index = Menu_item.__index or error() +local super__new_index = Menu_item.__new_index or error() +local new_menu_item = Menu_item.new or error() +require "java" +local JCheckBoxMenuItem = require "java:javax.swing.JCheckBoxMenuItem" + + +local Check_box_menu_item = {} + +function Check_box_menu_item.__index(cbmi,key) + local rtn = super__index(cbmi,key) + if rtn ~= fail then return rtn end + if key == "state" then + return cbmi.java.getState() + end + return fail +end + +function Check_box_menu_item.__new_index(cbmi,key,value) + local rtn = super__new_index(cbmi,key,value) + if rtn ~= fail then return end + if key == "state" then + cbmi.java.setState(value) + return + end + return fail +end + +local mt = make_metatable(Check_box_menu_item) + +function Check_box_menu_item.new(cbmi) + local cbmi = { java = JCheckBoxMenuItem.new() } + new_menu_item(cbmi) + set_metatable(cbmi,mt) + return cbmi +end + +return Check_box_menu_item
--- a/src/luan/modules/swing/Component.luan Mon Mar 31 13:46:47 2025 -0600 +++ b/src/luan/modules/swing/Component.luan Mon Mar 31 16:59:43 2025 -0600 @@ -5,9 +5,9 @@ local Component = {} -function Component.new(java) - local component = { java = java } - component.request_focus_in_window = java.requestFocusInWindow +function Component.new(component) + local jcomponent = component.java + component.request_focus_in_window = jcomponent.requestFocusInWindow return component end
--- a/src/luan/modules/swing/Menu_item.luan Mon Mar 31 13:46:47 2025 -0600 +++ b/src/luan/modules/swing/Menu_item.luan Mon Mar 31 16:59:43 2025 -0600 @@ -39,9 +39,9 @@ local mt = make_metatable(Menu_item) -function Menu_item.new() - local jmenu_item = JMenuItem.new() - local menu_item = { java = jmenu_item } +function Menu_item.new(menu_item) + local menu_item = menu_item or { java = JMenuItem.new() } + local jmenu_item = menu_item.java function menu_item.add_action_listener(action_listener) jmenu_item.addActionListener(newActionListener(action_listener)) end
--- a/src/luan/modules/swing/Text_area.luan Mon Mar 31 13:46:47 2025 -0600 +++ b/src/luan/modules/swing/Text_area.luan Mon Mar 31 16:59:43 2025 -0600 @@ -69,8 +69,9 @@ local mt = make_metatable(Text_area) function Text_area.new() - local jtext_area = JTextArea.new() - local text_area = new_text_component(jtext_area) + local text_area = { java = JTextArea.new() } + new_text_component(text_area) + local jtext_area = text_area.java text_area.select = jtext_area.select or error() function text_area.set_font(font) if type(font) == "table" then