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.') font_context.draw_text(dx, dy, 'Now is the time for all good men to come to the aid of the party.')
dx = 300 dx = 300
dy = 350 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_size(60.0)
font_context.set_font(state.font_normal) font_context.set_font(state.font_normal)
font_context.set_color(white) font_context.set_color(white)
@ -134,27 +134,27 @@ fn (state &AppState) render_font() {
dx = 50 dx = 50
dy = 350 dy = 350
line(f32(dx - 10), f32(dy), f32(dx + 250), f32(dy)) 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 = font_context.draw_text(dx, dy, 'Top')
dx += 10 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 = font_context.draw_text(dx, dy, 'Middle')
dx += 10 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 = font_context.draw_text(dx, dy, 'Baseline')
dx += 10 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') font_context.draw_text(dx, dy, 'Bottom')
dx = 150 dx = 150
dy = 400 dy = 400
line(f32(dx), f32(dy - 30), f32(dx), f32(dy + 80.0)) 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') font_context.draw_text(dx, dy, 'Left')
dy += 30 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') font_context.draw_text(dx, dy, 'Center')
dy += 30 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') font_context.draw_text(dx, dy, 'Right')
sfons.flush(font_context) sfons.flush(font_context)
} }

View File

@ -178,7 +178,17 @@ pub fn (s &Context) set_blur(blur f32) {
// See also: clear_state // See also: clear_state
[inline] [inline]
pub fn (s &Context) set_align(align int) { 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. // set_font sets the font used for this render on the active state.

View File

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