add a new Context.set_alignment function

pull/14011/head
Delyan Angelov 2022-04-11 21:42:09 +03:00
parent a2adaa4bef
commit 9c7eb576c7
No known key found for this signature in database
GPG Key ID: 66886C0F12D595ED
3 changed files with 30 additions and 18 deletions

View File

@ -110,7 +110,7 @@ fn (state &AppState) render_font() {
font_context.draw_text(dx, dy, 'Now is the time for all good men to come to the aid of the party.')
dx = 300
dy = 350
font_context.set_align(int(fontstash.Align.left) | int(fontstash.Align.baseline))
font_context.set_alignment(.left | .baseline)
font_context.set_size(60.0)
font_context.set_font(state.font_normal)
font_context.set_color(white)
@ -134,27 +134,27 @@ fn (state &AppState) render_font() {
dx = 50
dy = 350
line(f32(dx - 10), f32(dy), f32(dx + 250), f32(dy))
font_context.set_align(int(fontstash.Align.left) | int(fontstash.Align.top))
font_context.set_alignment(.left | .top)
dx = font_context.draw_text(dx, dy, 'Top')
dx += 10
font_context.set_align(int(fontstash.Align.left) | int(fontstash.Align.middle))
font_context.set_alignment(.left | .middle)
dx = font_context.draw_text(dx, dy, 'Middle')
dx += 10
font_context.set_align(int(fontstash.Align.left) | int(fontstash.Align.baseline))
font_context.set_alignment(.left | .baseline)
dx = font_context.draw_text(dx, dy, 'Baseline')
dx += 10
font_context.set_align(int(fontstash.Align.left) | int(fontstash.Align.bottom))
font_context.set_alignment(.left | .bottom)
font_context.draw_text(dx, dy, 'Bottom')
dx = 150
dy = 400
line(f32(dx), f32(dy - 30), f32(dx), f32(dy + 80.0))
font_context.set_align(int(fontstash.Align.left) | int(fontstash.Align.baseline))
font_context.set_alignment(.left | .baseline)
font_context.draw_text(dx, dy, 'Left')
dy += 30
font_context.set_align(int(fontstash.Align.center) | int(fontstash.Align.baseline))
font_context.set_alignment(.center | .baseline)
font_context.draw_text(dx, dy, 'Center')
dy += 30
font_context.set_align(int(fontstash.Align.right) | int(fontstash.Align.baseline))
font_context.set_alignment(.right | .baseline)
font_context.draw_text(dx, dy, 'Right')
sfons.flush(font_context)
}

View File

@ -178,7 +178,17 @@ pub fn (s &Context) set_blur(blur f32) {
// See also: clear_state
[inline]
pub fn (s &Context) set_align(align int) {
C.fonsSetAlign(s, align)
C.fonsSetAlign(s, int(align))
}
// set_alignment sets the font aligning to the `align` flags.
//
// See also: push_state
// See also: pop_state
// See also: clear_state
[inline]
pub fn (s &Context) set_alignment(align Align) {
C.fonsSetAlign(s, int(align))
}
// set_font sets the font used for this render on the active state.

View File

@ -1,20 +1,22 @@
module fontstash
[flag]
pub enum Flags {
top_left = 1
bottom_left = 2
top_left
bottom_left
}
[flag]
pub enum Align {
// Horizontal align
left = 1 // Default
center = 2
right = 4
left // Default
center
right
// Vertical align
top = 8
middle = 16
bottom = 32
baseline = 64 // Default
top
middle
bottom
baseline // Default
}
pub enum ErrorCode {