File: freetypeharfbuzz.R

package info (click to toggle)
r-cran-freetypeharfbuzz 0.2.6%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 524 kB
  • sloc: ansic: 370; sh: 74; makefile: 61
file content (56 lines) | stat: -rw-r--r-- 1,663 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#' @useDynLib freetypeharfbuzz, .registration = TRUE
NULL

.onLoad <- function(lib, pkg) {
  .Call(freetypeharfbuzz_library_load)
}
.onUnLoad <- function(lib, pkg) {
  .Call(freetypeharfbuzz_library_unload)
}

#' Font metrics
#'
#' @description
#'
#' * `font_info()` returns the typographical metrics (ascent, descent,
#'    linegap) for a font.
#'
#' * `str_info()` returns the metrics (width, height, ascent,
#'   descent) for a string. `str_width()` only returns the width.
#'
#' @param font_size Font size in point.
#' @param font_file Path to a ttf or otf file.
#' @param string A string whose metrics will be computed.
#'
#' @export
#' @examples
#' file <- fontquiver::font("Liberation", "serif", "bold")$ttf
#' font_info(font_size = 13, font_file = file)
#'
#' str_width("foobar", font_size = 13)
#' str_info("foobar", font_size = 13)
#' str_info("foobar", font_size = 13, font_file = file)
font_info <- function(font_size = 12, font_file = NULL) {
  if (is.null(font_file)) {
    font_file <- fontquiver::font("Liberation", "sans", "regular")$ttf
  }
  .Call(freetypeharfbuzz_font_info, font_size, font_file)
}

#' @rdname font_info
#' @export
str_info <- function(string, font_size = 12, font_file = NULL) {
  if (is.null(font_file)) {
    font_file <- fontquiver::font("Liberation", "sans", "regular")$ttf
  }
  .Call(freetypeharfbuzz_string_info, string, font_size, font_file)
}

#' @rdname font_info
#' @export
str_width <- function(string, font_size = 12, font_file = NULL) {
  if (is.null(font_file)) {
    font_file <- fontquiver::font("Liberation", "sans", "regular")$ttf
  }
  .Call(freetypeharfbuzz_string_width, string, font_size, font_file)
}