Mercurial Hosting > luan
changeset 1868:03209933fe4a default tip
swing
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 31 Mar 2025 22:36:08 -0600 (5 hours ago) |
parents | 8b3b0ada9420 |
children | |
files | src/luan/modules/swing/Abstract_button.luan src/luan/modules/swing/Component.luan src/luan/modules/swing/Menu_item.luan src/luan/modules/swing/Text_area.luan src/luan/modules/swing/Text_component.luan |
diffstat | 5 files changed, 23 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/src/luan/modules/swing/Abstract_button.luan Mon Mar 31 21:50:22 2025 -0600 +++ b/src/luan/modules/swing/Abstract_button.luan Mon Mar 31 22:36:08 2025 -0600 @@ -22,4 +22,10 @@ return fail end +function Abstract_button.new(button) + local jbutton = button.java + button.set_enabled = jbutton.setEnabled + return button +end + return Abstract_button
--- a/src/luan/modules/swing/Component.luan Mon Mar 31 21:50:22 2025 -0600 +++ b/src/luan/modules/swing/Component.luan Mon Mar 31 22:36:08 2025 -0600 @@ -1,5 +1,7 @@ local Luan = require "luan:Luan.luan" local error = Luan.error +local type = Luan.type or error() +local get_font = require("luan:swing/Font.luan").get or error() require "java" @@ -8,6 +10,12 @@ function Component.new(component) local jcomponent = component.java component.request_focus_in_window = jcomponent.requestFocusInWindow + function component.set_font(font) + if type(font) == "table" then + font = get_font(font) + end + jcomponent.setFont(font) + end return component end
--- a/src/luan/modules/swing/Menu_item.luan Mon Mar 31 21:50:22 2025 -0600 +++ b/src/luan/modules/swing/Menu_item.luan Mon Mar 31 22:36:08 2025 -0600 @@ -7,6 +7,7 @@ local Abstract_button = require "luan:swing/Abstract_button.luan" local super__index = Abstract_button.__index or error() local super__new_index = Abstract_button.__new_index or error() +local super = Abstract_button.new or error() require "java" local JMenuItem = require "java:javax.swing.JMenuItem" local KeyStroke = require "java:javax.swing.KeyStroke" @@ -41,6 +42,7 @@ function Menu_item.new(menu_item) local menu_item = menu_item or { java = JMenuItem.new() } + super(menu_item) local jmenu_item = menu_item.java function menu_item.add_action_listener(action_listener) jmenu_item.addActionListener(newActionListener(action_listener))
--- a/src/luan/modules/swing/Text_area.luan Mon Mar 31 21:50:22 2025 -0600 +++ b/src/luan/modules/swing/Text_area.luan Mon Mar 31 22:36:08 2025 -0600 @@ -1,11 +1,9 @@ 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 Utils = require "luan:swing/Utils.luan" local fail = Utils.fail or error() local make_metatable = Utils.make_metatable or error() -local get_font = require("luan:swing/Font.luan").get or error() local Text_component = require("luan:swing/Text_component.luan") local super__index = Text_component.__index or error() local super__new_index = Text_component.__new_index or error() @@ -72,13 +70,6 @@ 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 - font = get_font(font) - end - jtext_area.setFont(font) - end set_metatable(text_area,mt) return text_area end
--- a/src/luan/modules/swing/Text_component.luan Mon Mar 31 21:50:22 2025 -0600 +++ b/src/luan/modules/swing/Text_component.luan Mon Mar 31 22:36:08 2025 -0600 @@ -15,6 +15,9 @@ if key == "document" then return text_component.java.getDocument() end + if key == "caret_position" then + return text_component.java.getCaretPosition() + end return fail end @@ -27,6 +30,10 @@ text_component.java.setDocument(value) return end + if key == "caret_position" then + text_component.java.setCaretPosition(value) + return + end return fail end