Skip to content

Commit 9517fe8

Browse files
committed
Expose CanvasRenderingContext2D::set_text_baseline() to C.
Closes #425.
1 parent 9cda274 commit 9517fe8

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

c/src/lib.rs

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
use font_kit::handle::Handle;
1414
use gl;
1515
use pathfinder_canvas::{Canvas, CanvasFontContext, CanvasRenderingContext2D, FillStyle, LineJoin};
16-
use pathfinder_canvas::{Path2D, TextAlign, TextMetrics};
16+
use pathfinder_canvas::{Path2D, TextAlign, TextBaseline, TextMetrics};
1717
use pathfinder_color::{ColorF, ColorU};
1818
use pathfinder_content::fill::FillRule;
1919
use pathfinder_content::outline::ArcDirection;
@@ -67,6 +67,13 @@ pub const PF_TEXT_ALIGN_LEFT: u8 = 0;
6767
pub const PF_TEXT_ALIGN_CENTER: u8 = 1;
6868
pub const PF_TEXT_ALIGN_RIGHT: u8 = 2;
6969

70+
pub const PF_TEXT_BASELINE_ALPHABETIC: u8 = 0;
71+
pub const PF_TEXT_BASELINE_TOP: u8 = 1;
72+
pub const PF_TEXT_BASELINE_HANGING: u8 = 2;
73+
pub const PF_TEXT_BASELINE_MIDDLE: u8 = 3;
74+
pub const PF_TEXT_BASELINE_IDEOGRAPHIC: u8 = 4;
75+
pub const PF_TEXT_BASELINE_BOTTOM: u8 = 5;
76+
7077
// `content`
7178

7279
pub const PF_ARC_DIRECTION_CW: u8 = 0;
@@ -100,6 +107,7 @@ pub type PFLineCap = u8;
100107
pub type PFLineJoin = u8;
101108
pub type PFArcDirection = u8;
102109
pub type PFTextAlign = u8;
110+
pub type PFTextBaseline = u8;
103111
#[repr(C)]
104112
pub struct PFTextMetrics {
105113
pub width: f32,
@@ -387,6 +395,19 @@ pub unsafe extern "C" fn PFCanvasSetTextAlign(canvas: PFCanvasRef, new_text_alig
387395
});
388396
}
389397

398+
#[no_mangle]
399+
pub unsafe extern "C" fn PFCanvasSetTextBaseline(canvas: PFCanvasRef,
400+
new_text_baseline: PFTextBaseline) {
401+
(*canvas).set_text_baseline(match new_text_baseline {
402+
PF_TEXT_BASELINE_ALPHABETIC => TextBaseline::Alphabetic,
403+
PF_TEXT_BASELINE_TOP => TextBaseline::Top,
404+
PF_TEXT_BASELINE_HANGING => TextBaseline::Hanging,
405+
PF_TEXT_BASELINE_MIDDLE => TextBaseline::Middle,
406+
PF_TEXT_BASELINE_IDEOGRAPHIC => TextBaseline::Ideographic,
407+
_ => TextBaseline::Bottom,
408+
});
409+
}
410+
390411
#[no_mangle]
391412
pub unsafe extern "C" fn PFCanvasSetFillStyle(canvas: PFCanvasRef, fill_style: PFFillStyleRef) {
392413
// FIXME(pcwalton): Avoid the copy?

0 commit comments

Comments
 (0)