1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# console_font_style.rb has been released under MIT (*only this file*).
# Contributors outside of DragonRuby who also hold Copyright:
# - Kevin Fischer: https://github.com/kfischer-okarin
module GTK
class Console
class FontStyle
attr_reader :font, :size_enum, :line_height
def initialize(font:, size_enum:, line_height:)
@font = font
@size_enum = size_enum
@line_height = line_height
end
def letter_size
@letter_size ||= $gtk.calcstringbox 'W', size_enum, font
end
def line_height_px
@line_height_px ||= letter_size.y * line_height
end
def label(x:, y:, text:, color:, alignment_enum: 0)
{
x: x,
y: y.shift_up(line_height_px), # !!! FIXME: remove .shift_up(line_height_px) when we fix coordinate origin on labels.
text: text,
font: font,
size_enum: size_enum,
alignment_enum: alignment_enum,
**color.to_h,
}.label!
end
end
end
end
|