9#ifndef TEXT_GP_TEXT_METRIC_H
10#define TEXT_GP_TEXT_METRIC_H
13#include <text/gp_text_style.h>
15enum gp_text_len_type {
38gp_size gp_glyph_advance_x(
const gp_text_style *style, uint32_t ch);
51gp_ssize gp_glyph_bearing_x(
const gp_text_style *style, uint32_t ch);
63gp_size gp_text_width_len(
const gp_text_style *style,
enum gp_text_len_type type,
64 const char *str,
size_t len);
75static inline gp_size gp_text_wbbox_len(
const gp_text_style *style,
const char *str,
size_t len)
77 return gp_text_width_len(style, GP_TEXT_LEN_BBOX, str, len);
89gp_size gp_text_width(
const gp_text_style *style,
enum gp_text_len_type type,
const char *str);
99static inline gp_size gp_text_wbbox(
const gp_text_style *style,
const char *str)
101 return gp_text_width(style, GP_TEXT_LEN_BBOX, str);
107gp_size gp_text_max_width(
const gp_text_style *style,
unsigned int len);
112gp_size gp_text_avg_width(
const gp_text_style *style,
unsigned int len);
117gp_size gp_text_max_width_chars(
const gp_text_style *style,
const char *chars,
123gp_size gp_text_height(
const gp_text_style *style);
129gp_size gp_text_ascent(
const gp_text_style *style);
135gp_size gp_text_descent(
const gp_text_style *style);
144size_t gp_text_fit_width(
const gp_text_style *style,
const char *str,
159gp_size gp_text_cur_pos(
const gp_text_style *style,
const char *str,
gp_coord x_off);
int gp_coord
Integer type for coordinates i.e. x, y, ...
unsigned int gp_size
Integer type for sizes i.e. w, h, ...