From 9c7eb576c71bbb204a8214cee74a70b3d86f7644 Mon Sep 17 00:00:00 2001 From: Delyan Angelov Date: Mon, 11 Apr 2022 21:42:09 +0300 Subject: [PATCH] add a new Context.set_alignment function --- examples/sokol/fonts.v | 16 ++++++++-------- vlib/fontstash/fontstash.c.v | 12 +++++++++++- vlib/fontstash/fontstash_enums.v | 20 +++++++++++--------- 3 files changed, 30 insertions(+), 18 deletions(-) diff --git a/examples/sokol/fonts.v b/examples/sokol/fonts.v index f93ba43eb2..adadd603e2 100644 --- a/examples/sokol/fonts.v +++ b/examples/sokol/fonts.v @@ -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) } diff --git a/vlib/fontstash/fontstash.c.v b/vlib/fontstash/fontstash.c.v index 1f546acf34..c59d03451c 100644 --- a/vlib/fontstash/fontstash.c.v +++ b/vlib/fontstash/fontstash.c.v @@ -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. diff --git a/vlib/fontstash/fontstash_enums.v b/vlib/fontstash/fontstash_enums.v index 11f2d6acca..e7b4fc2ed6 100644 --- a/vlib/fontstash/fontstash_enums.v +++ b/vlib/fontstash/fontstash_enums.v @@ -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 {