Mercurial Hosting > luan
changeset 1893:0170d482b5d5
add FlatLaf
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sun, 13 Apr 2025 12:25:08 -0600 |
parents | 3990486911d9 |
children | 801e1fe227f9 |
files | lib/flatlaf-3.6.jar src/luan/modules/swing/Button.luan src/luan/modules/swing/Component.luan src/luan/modules/swing/Frame.luan src/luan/modules/swing/Swing.luan src/luan/modules/swing/Text_area.luan src/luan/modules/swing/Utils.luan |
diffstat | 7 files changed, 28 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/luan/modules/swing/Button.luan Fri Apr 11 21:40:51 2025 -0600 +++ b/src/luan/modules/swing/Button.luan Sun Apr 13 12:25:08 2025 -0600 @@ -10,18 +10,15 @@ local super_mt = Abstract_button.mt or error() require "java" local JButton = require "java:javax.swing.JButton" -local Insets = require "java:java.awt.Insets" local Logging = require "luan:logging/Logging.luan" local logger = Logging.logger "swing/Button" local Button = {} -local no_insets = Insets.new(0,0,0,0) function Button.new(props) local jbutton = JButton.new() - jbutton.setMargin(no_insets) local button = { java = jbutton } super_construct(button,props) check_empty(props)
--- a/src/luan/modules/swing/Component.luan Fri Apr 11 21:40:51 2025 -0600 +++ b/src/luan/modules/swing/Component.luan Sun Apr 13 12:25:08 2025 -0600 @@ -33,6 +33,9 @@ if key == "constraints" then return nil end + if key == "visible" then + return component.java.isVisible() + end return fail end @@ -45,6 +48,10 @@ component.java.setBorder(value) return end + if key == "visible" then + component.java.setVisible(value) + return + end return fail end @@ -76,6 +83,8 @@ if foreground_color~=nil then jcomponent.setForeground(foreground_color) end local background_color = delete(props,"background_color") if background_color~=nil then jcomponent.setBackground(background_color) end + local visible = delete(props,"visible") + if visible~=nil then jcomponent.setVisible(visible) end local alignment_x = delete(props,"alignment_x") if alignment_x~=nil then alignment_x = alignments[alignment_x] or error "invalid alignment_x" @@ -98,6 +107,9 @@ function component.add(el) jcomponent.add(el.java) end + function component.remove(el) + jcomponent.remove(el.java) + end function component.add_all(list) for _, child in ipairs(list) do jcomponent.add(child.java)
--- a/src/luan/modules/swing/Frame.luan Fri Apr 11 21:40:51 2025 -0600 +++ b/src/luan/modules/swing/Frame.luan Sun Apr 13 12:25:08 2025 -0600 @@ -9,6 +9,7 @@ local delete = Utils.delete or error() local check_empty = Utils.check_empty or error() local check_not_nil = Utils.check_not_nil or error() +local to_dimension = Utils.to_dimension or error() require "java" local JFrame = require "java:javax.swing.JFrame" local FileDialog = require "java:java.awt.FileDialog" @@ -99,6 +100,8 @@ local frame = { java = jframe } local content_pane = delete(props,"content_pane") if content_pane~=nil then jframe.setContentPane(content_pane.java) end + local preferred_size = delete(props,"preferred_size") + if preferred_size~=nil then jframe.setPreferredSize(to_dimension(preferred_size)) end check_empty(props) function frame.add_close_listener(close_listener) jframe.addWindowListener(newCloseListener(close_listener))
--- a/src/luan/modules/swing/Swing.luan Fri Apr 11 21:40:51 2025 -0600 +++ b/src/luan/modules/swing/Swing.luan Sun Apr 13 12:25:08 2025 -0600 @@ -5,12 +5,14 @@ local System = require "java:java.lang.System" local Insets = require "java:java.awt.Insets" local UIManager = require "java:javax.swing.UIManager" +local FlatLightLaf = require "java:com.formdev.flatlaf.FlatLightLaf" local SwingLuan = require "java:luan.modules.swing.SwingLuan" local Swing = {} System.setProperty("apple.laf.useScreenMenuBar", "true") +UIManager.setLookAndFeel(FlatLightLaf.new()) function Swing.get_installed_look_and_feels() local list = {} @@ -30,5 +32,6 @@ Swing.run = SwingLuan.run Swing.new_insets = Insets.new -- top, left, bottom, right +Swing.no_insets = Insets.new(0,0,0,0) return Swing
--- a/src/luan/modules/swing/Text_area.luan Fri Apr 11 21:40:51 2025 -0600 +++ b/src/luan/modules/swing/Text_area.luan Sun Apr 13 12:25:08 2025 -0600 @@ -12,6 +12,8 @@ local super_construct = Text_component.construct or error() require "java" local TextAreaLuan = require "java:luan.modules.swing.TextAreaLuan" +local Logging = require "luan:logging/Logging.luan" +local logger = Logging.logger "swing/Text_area" local Text_area = {}
--- a/src/luan/modules/swing/Utils.luan Fri Apr 11 21:40:51 2025 -0600 +++ b/src/luan/modules/swing/Utils.luan Sun Apr 13 12:25:08 2025 -0600 @@ -5,6 +5,8 @@ local pairs = Luan.pairs or error() local Table = require "luan:Table.luan" local is_empty = Table.is_empty or error() +require "java" +local Dimension = require "java:java.awt.Dimension" local Utils = {} @@ -50,4 +52,10 @@ props or error "missing required properties table" end +function Utils.to_dimension(tbl) + local width = tbl.width or error "missing width" + local height = tbl.height or error "missing height" + return Dimension.new(width,height) +end + return Utils