Add extra font metrics
parent
b9c3ddf839
commit
53cb1af757
|
@ -3313,6 +3313,8 @@ void gdispGDrawBox(GDisplay *g, coord_t x, coord_t y, coord_t cx, coord_t cy, co
|
|||
case fontCharPadding: return 0;
|
||||
case fontMinWidth: return font->min_x_advance;
|
||||
case fontMaxWidth: return font->max_x_advance;
|
||||
case fontBaselineX: return font->baseline_x;
|
||||
case fontBaselineY: return font->baseline_y;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
@ -3322,12 +3324,20 @@ void gdispGDrawBox(GDisplay *g, coord_t x, coord_t y, coord_t cx, coord_t cy, co
|
|||
return mf_character_width(font, c);
|
||||
}
|
||||
|
||||
coord_t gdispGetStringWidth(const char* str, font_t font) {
|
||||
coord_t gdispGetStringWidthCount(const char* str, font_t font, uint16_t count) {
|
||||
if (!str)
|
||||
return 0;
|
||||
|
||||
/* No mutex required as we only read static data */
|
||||
return mf_get_string_width(font, str, 0, 0);
|
||||
// No mutex required as we only read static data
|
||||
#if GDISP_NEED_TEXT_KERNING
|
||||
return mf_get_string_width(font, str, count, TRUE);
|
||||
#else
|
||||
return mf_get_string_width(font, str, count, FALSE);
|
||||
#endif
|
||||
}
|
||||
|
||||
coord_t gdispGetStringWidth(const char* str, font_t font) {
|
||||
return gdispGetStringWidthCount(str, font, 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -72,7 +72,9 @@ typedef enum fontmetric {
|
|||
fontLineSpacing, /**< The line spacing */
|
||||
fontCharPadding, /**< The char padding */
|
||||
fontMinWidth, /**< The minimum width */
|
||||
fontMaxWidth /**< The maximum width */
|
||||
fontMaxWidth, /**< The maximum width */
|
||||
fontBaselineX, /**< The base line in x direction */
|
||||
fontBaselineY /**< The base line in y direction */
|
||||
} fontmetric_t;
|
||||
|
||||
/**
|
||||
|
@ -976,7 +978,22 @@ void gdispGDrawBox(GDisplay *g, coord_t x, coord_t y, coord_t cx, coord_t cy, co
|
|||
coord_t gdispGetCharWidth(char c, font_t font);
|
||||
|
||||
/**
|
||||
* @brief Get the pixel width of a string.
|
||||
* @brief Get the pixel width of a string of a given character length.
|
||||
* @return The width of the string in pixels.
|
||||
* @pre GDISP_NEED_TEXT must be TRUE in your gfxconf.h
|
||||
*
|
||||
* @note Passing 0 to count has the same effect as calling gdispGetStringWidt()
|
||||
*
|
||||
* @param[in] str The string to measure
|
||||
* @param[in] font The font to use
|
||||
* @param[in] count The number of characters to take into account
|
||||
*
|
||||
* @api
|
||||
*/
|
||||
coord_t gdispGetStringWidthCount(const char* str, font_t font, uint16_t count);
|
||||
|
||||
/**
|
||||
* @brief Get the pixel width of an entire string.
|
||||
* @return The width of the string in pixels.
|
||||
* @pre GDISP_NEED_TEXT must be TRUE in your gfxconf.h
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue