1616
|
1 local Luan = require "luan:Luan.luan"
|
|
2 local error = Luan.error
|
|
3 local pairs = Luan.pairs or error()
|
|
4 require "java"
|
|
5 local JFont = require "java:java.awt.Font"
|
1973
|
6 local GraphicsEnvironment = require "java:java.awt.GraphicsEnvironment"
|
1616
|
7 local TextAttribute = require "java:java.awt.font.TextAttribute"
|
1973
|
8 local Logging = require "luan:logging/Logging.luan"
|
|
9 local logger = Logging.logger "swing/Font"
|
1616
|
10
|
|
11
|
|
12 local Font = {}
|
|
13
|
|
14 local keys = {
|
|
15 family = TextAttribute.FAMILY
|
|
16 size = TextAttribute.SIZE
|
|
17 }
|
|
18
|
1957
|
19 local function to_java_attributes(attrs)
|
1616
|
20 local jattrs = {}
|
|
21 for key, val in pairs(attrs) do
|
|
22 key = keys[key] or error("invalid font key: "..key)
|
|
23 jattrs[key] = val
|
|
24 end
|
1957
|
25 return jattrs
|
|
26 end
|
|
27 Font.to_java_attributes = to_java_attributes
|
|
28
|
|
29 function Font.get(attrs)
|
|
30 local jattrs = to_java_attributes(attrs)
|
1616
|
31 return JFont.getFont(jattrs)
|
|
32 end
|
|
33
|
1973
|
34 function Font.get_available_font_family_names()
|
|
35 return {GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()}
|
|
36 end
|
|
37
|
1616
|
38 return Font
|