view src/luan/modules/swing/Font.luan @ 1996:d5c21ca9703e default tip

move threads to admin
author Franklin Schmidt <fschmidt@gmail.com>
date Fri, 04 Jul 2025 11:39:41 -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