ttfInsertTextString function

bool ttfInsertTextString(
  1. Pointer<TtfText> text,
  2. int offset,
  3. String? string,
  4. int length,
)

Insert UTF-8 text into a text object.

\param text the TTF_Text to modify. \param offset the offset, in bytes, from the beginning of the string if >= 0, the offset from the end of the string if < 0. Note that this does not do UTF-8 validation, so you should only insert at UTF-8 sequence boundaries. \param string the UTF-8 text to insert. \param length the length of the text, in bytes, or 0 for null terminated text. \returns true on success or false on failure; call SDL_GetError() for more information.

\threadsafety This function should be called on the thread that created the text.

\since This function is available since SDL_ttf 3.0.0.

\sa TTF_AppendTextString \sa TTF_DeleteTextString \sa TTF_SetTextString

extern SDL_DECLSPEC bool SDLCALL TTF_InsertTextString(TTF_Text *text, int offset, const char *string, size_t length)

Implementation

bool ttfInsertTextString(
    Pointer<TtfText> text, int offset, String? string, int length) {
  final ttfInsertTextStringLookupFunction = libSdl3Ttf.lookupFunction<
      Uint8 Function(Pointer<TtfText> text, Int32 offset, Pointer<Utf8> string,
          Uint32 length),
      int Function(Pointer<TtfText> text, int offset, Pointer<Utf8> string,
          int length)>('TTF_InsertTextString');
  final stringPointer = string != null ? string.toNativeUtf8() : nullptr;
  final result =
      ttfInsertTextStringLookupFunction(text, offset, stringPointer, length) ==
          1;
  calloc.free(stringPointer);
  return result;
}