Skip to content

Commit 3ac389e

Browse files
author
bjn
committed
Test
1 parent 721ecc1 commit 3ac389e

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

lib/include/elements/support/canvas.hpp

+9
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,13 @@ namespace cycfi { namespace elements
163163
point size;
164164
};
165165

166+
struct font_metrics
167+
{
168+
float ascent;
169+
float descent;
170+
float height;
171+
};
172+
166173
[[deprecated("Use fill_text(utf8, p) instead following artist API.")]]
167174
void fill_text(point p, char const* utf8);
168175
void fill_text(std::string_view utf8, point p);
@@ -174,6 +181,8 @@ namespace cycfi { namespace elements
174181
text_metrics measure_text(char const* utf8);
175182
void text_align(int align);
176183

184+
font_metrics measure_font();
185+
177186
///////////////////////////////////////////////////////////////////////////////////
178187
// Pixmaps
179188

lib/src/support/canvas.cpp

+7-1
Original file line numberDiff line numberDiff line change
@@ -417,6 +417,13 @@ namespace cycfi { namespace elements
417417
};
418418
}
419419

420+
canvas::font_metrics canvas::measure_font()
421+
{
422+
cairo_font_extents_t font_extents;
423+
cairo_scaled_font_extents(cairo_get_scaled_font(&_context), &font_extents);
424+
return font_extents;
425+
}
426+
420427
void canvas::draw(pixmap const& pm, elements::rect src, elements::rect dest)
421428
{
422429
auto state = new_state();
@@ -443,4 +450,3 @@ namespace cycfi { namespace elements
443450
cairo_restore(&_context);
444451
}
445452
}}
446-

0 commit comments

Comments
 (0)