nodesnim/core/font

    Dark Mode
Search:
Group by:

Provides TTF text rendering. Use SDL2_ttf.

Types

StyleUnicode = ref object
  is_url*: bool
  style*: cint
  c*, url*: string
  color*: ColorRef
StyleText = ref object
  font*: FontPtr
  rendered*: bool
  need_free*: bool
  spacing*: float
  max_lines*: int
  texture*: GlTextureObj
  chars*: seq[StyleUnicode]

Procs

proc schar(c: string; color: ColorRef = nil; style: cint = TTF_STYLE_NORMAL;
           is_url: bool = false): StyleUnicode {...}{.raises: [], tags: [].}
proc stext(text: string; color: ColorRef = nil; style: cint = TTF_STYLE_NORMAL): StyleText {...}{.
    raises: [], tags: [].}
proc len(text: StyleText): int {...}{.raises: [], tags: [].}
proc `$`(c: StyleUnicode): string {...}{.raises: [], tags: [].}
proc `$`(text: StyleText): string {...}{.raises: [], tags: [].}
proc `&`(text: StyleText; c: StyleUnicode): StyleText {...}{.raises: [], tags: [].}
proc `&`(text, t: StyleText): StyleText {...}{.raises: [], tags: [].}
proc `&`(text: StyleText; t: string): StyleText {...}{.raises: [], tags: [].}
proc `&`(text: string; c: StyleUnicode | StyleText): string
proc `&=`(text: var StyleText; c: StyleUnicode | StyleText)
proc `&=`(text: var string; c: StyleUnicode | StyleText)
proc `&=`(text: var StyleText; t: string) {...}{.raises: [], tags: [].}
proc `[]`(text: StyleText; index: int | BackwardsIndex): StyleUnicode
proc `[]`[T, U](text: StyleText; slice: HSlice[T, U]): StyleText
proc `==`(x, y: StyleUnicode): bool {...}{.raises: [], tags: [].}
proc `==`(x, y: StyleText): bool {...}{.raises: [], tags: [].}
proc applyStyle(symbol: StyleUnicode; style: cint; enabled: bool = true) {...}{.
    raises: [], tags: [].}
proc clear(text: StyleText) {...}{.raises: [], tags: [].}
proc toUpper(text: StyleText): StyleText {...}{.raises: [], tags: [].}
proc toLower(text: StyleText): StyleText {...}{.raises: [], tags: [].}
proc setColor(c: StyleUnicode; color: ColorRef) {...}{.raises: [], tags: [].}
proc setColor(text: StyleText; color: ColorRef) {...}{.raises: [], tags: [].}
proc setColor(text: StyleText; index: int; color: ColorRef) {...}{.raises: [],
    tags: [].}
proc setColor(text: StyleText; s, e: int; color: ColorRef) {...}{.raises: [],
    tags: [].}
proc setNormal(c`gensym4: StyleUnicode; val`gensym4: bool = true) {...}{.raises: [],
    tags: [].}
proc setNormal(text`gensym4: StyleText; val`gensym4: bool) {...}{.raises: [],
    tags: [].}
proc setNormal(text`gensym4: StyleText; index`gensym4: int; val`gensym4: bool) {...}{.
    raises: [], tags: [].}
proc setNormal(text`gensym4: StyleText; s`gensym4, e`gensym4: int;
               val`gensym4: bool) {...}{.raises: [], tags: [].}
proc setBold(c`gensym5: StyleUnicode; val`gensym5: bool = true) {...}{.raises: [],
    tags: [].}
proc setBold(text`gensym5: StyleText; val`gensym5: bool) {...}{.raises: [], tags: [].}
proc setBold(text`gensym5: StyleText; index`gensym5: int; val`gensym5: bool) {...}{.
    raises: [], tags: [].}
proc setBold(text`gensym5: StyleText; s`gensym5, e`gensym5: int;
             val`gensym5: bool) {...}{.raises: [], tags: [].}
proc setItalic(c`gensym6: StyleUnicode; val`gensym6: bool = true) {...}{.raises: [],
    tags: [].}
proc setItalic(text`gensym6: StyleText; val`gensym6: bool) {...}{.raises: [],
    tags: [].}
proc setItalic(text`gensym6: StyleText; index`gensym6: int; val`gensym6: bool) {...}{.
    raises: [], tags: [].}
proc setItalic(text`gensym6: StyleText; s`gensym6, e`gensym6: int;
               val`gensym6: bool) {...}{.raises: [], tags: [].}
proc setUnderline(c`gensym7: StyleUnicode; val`gensym7: bool = true) {...}{.
    raises: [], tags: [].}
proc setUnderline(text`gensym7: StyleText; val`gensym7: bool) {...}{.raises: [],
    tags: [].}
proc setUnderline(text`gensym7: StyleText; index`gensym7: int; val`gensym7: bool) {...}{.
    raises: [], tags: [].}
proc setUnderline(text`gensym7: StyleText; s`gensym7, e`gensym7: int;
                  val`gensym7: bool) {...}{.raises: [], tags: [].}
proc setStrikethrough(c`gensym8: StyleUnicode; val`gensym8: bool = true) {...}{.
    raises: [], tags: [].}
proc setStrikethrough(text`gensym8: StyleText; val`gensym8: bool) {...}{.raises: [],
    tags: [].}
proc setStrikethrough(text`gensym8: StyleText; index`gensym8: int;
                      val`gensym8: bool) {...}{.raises: [], tags: [].}
proc setStrikethrough(text`gensym8: StyleText; s`gensym8, e`gensym8: int;
                      val`gensym8: bool) {...}{.raises: [], tags: [].}
proc setURL(text: StyleText; s, e: int; url: string;
            color: ColorRef = current_theme ~ url_color) {...}{.raises: [], tags: [].}
proc setFont(text: StyleText; font: cstring; size: cint) {...}{.raises: [], tags: [].}
proc setFont(text: StyleText; font: FontPtr) {...}{.raises: [], tags: [].}
proc loadFont(font: cstring; size: cint): FontPtr {...}{.raises: [], tags: [].}
proc splitLines(text: StyleText): seq[StyleText] {...}{.raises: [], tags: [].}
proc split(text: StyleText; splitval: string): seq[StyleText] {...}{.raises: [],
    tags: [].}
proc getTextSize(text: StyleText): Vector2Obj {...}{.raises: [], tags: [].}
proc getCaretPos(text: StyleText; pos: uint32): tuple[a: Vector2Obj, b: uint16] {...}{.
    raises: [], tags: [].}
proc getPosUnderPoint(text: StyleText; global_pos, text_pos: Vector2Obj;
                      text_align: AnchorObj = Anchor(0, 0, 0, 0)): uint32 {...}{.
    raises: [], tags: [].}
Returns caret position under mouse.
proc getCharUnderPoint(text: StyleText; global_pos, text_pos: Vector2Obj;
                       text_align: AnchorObj = Anchor(0, 0, 0, 0)): tuple[
    c: StyleUnicode, pos: uint32] {...}{.raises: [], tags: [].}
proc renderSurface(text: StyleText; align: AnchorObj): SurfacePtr {...}{.
    raises: [ResourceError], tags: [].}
Renders the surface and returns it, if available.
Arguments:
  • align -- text align.
proc render(text: StyleText; size: Vector2Obj; align: AnchorObj) {...}{.
    raises: [ResourceError, GLerror], tags: [].}
Translates SDL2 surface to OpenGL texture and frees surface memory.
proc renderTo(text: StyleText; pos, size: Vector2Obj; align: AnchorObj) {...}{.
    raises: [ResourceError, GLerror], tags: [].}
proc freeMemory(text: StyleText) {...}{.raises: [GLerror], tags: [].}
Frees memory.