view src/luan/modules/swing/Font.luan @ 1990:f34f0a2447a5 default tip

add change_password.luan
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 30 Jun 2025 22:52:19 -0600
parents 2f8ab1aa8c57
children
line wrap: on
line source

local Luan = require "luan:Luan.luan"
local error = Luan.error
local pairs = Luan.pairs or error()
require "java"
local JFont = require "java:java.awt.Font"
local GraphicsEnvironment = require "java:java.awt.GraphicsEnvironment"
local TextAttribute = require "java:java.awt.font.TextAttribute"
local Logging = require "luan:logging/Logging.luan"
local logger = Logging.logger "swing/Font"


local Font = {}

local keys = {
	family = TextAttribute.FAMILY
	size = TextAttribute.SIZE
}

local function to_java_attributes(attrs)
	local jattrs = {}
	for key, val in pairs(attrs) do
		key = keys[key] or error("invalid font key: "..key)
		jattrs[key] = val
	end
	return jattrs
end
Font.to_java_attributes = to_java_attributes

function Font.get(attrs)
	local jattrs = to_java_attributes(attrs)
	return JFont.getFont(jattrs)
end

function Font.get_available_font_family_names()
	return {GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()}
end

return Font