view src/luan/modules/swing/Layout.luan @ 1884:55ad3e7cd01a

swing
author Franklin Schmidt <fschmidt@gmail.com>
date Tue, 08 Apr 2025 19:43:00 -0600
parents c7c7d62f8c62
children a28e22991c58
line wrap: on
line source

local Luan = require "luan:Luan.luan"
local error = Luan.error
local Number = require "luan:Number.luan"
local integer = Number.integer or error()
require "java"
local FlowLayout = require "java:java.awt.FlowLayout"
local BoxLayout = require "java:javax.swing.BoxLayout"


local Layout = {}

local flow_layout_alignments = {
	left = FlowLayout.LEFT
	center = FlowLayout.CENTER
	right = FlowLayout.RIGHT
}

function Layout.new_flow_layout(align)
	if align == nil then
		return FlowLayout.new()
	else
		align = flow_layout_alignments[align] or error "invalid align"
		return FlowLayout.new(align)
	end
end

local box_layout_axes = {
	x_axis = BoxLayout.X_AXIS
	y_axis = BoxLayout.Y_AXIS
}

function Layout.new_box_layout(target,axis)
	axis or error "missing axis"
	axis = box_layout_axes[axis] or error "invalid axis"
	return BoxLayout.new(target.java,axis)
end

return Layout