Text Documents
PBTextDocument
Opaque object handle:
This object maintains an internal reference count. When the reference count reaches zero, the object will be automatically deallocated. To increment the reference count, call PBTextDocumentRetain; to decrement the reference count, call PBTextDocumentRelease. These functions are thread-safe.
PBTextDocumentBuilder
Opaque object handle:
This object maintains an internal reference count. When the reference count reaches zero, the object will be automatically deallocated. To increment the reference count, call PBTextDocumentBuilderRetain; to decrement the reference count, call PBTextDocumentBuilderRelease. These functions are thread-safe.
PBPositionedTextAttribute
Structure: A text attribute and the position from where to apply it.
Fields
start (uint32_t
): A position in the text document string, in bytes. This must be at a UTF-8 codepoint boundary. The text attribute will be applied starting from this offset until either the end of the string, or the next attribute of the same type, whichever comes first.
attribute (PBTextAttribute): The text attribute itself.
PBRangedTextAttribute
Structure: A text attribute and the range in which to apply it.
Fields
start (uint32_t
): A position in the text document string, in bytes. This must be at a UTF-8 codepoint boundary.
end (uint32_t
): A position in the text document string, in bytes. This must be at a UTF-8 codepoint boundary.
attribute (PBTextAttribute): The text attribute itself.
PBMarkdownDocumentFlags
Enumeration/bitset of type uint32_t: Flags controlling the parsing and styling of a markdown document.
Constants
PBMarkdownDocument_WITH_MARGIN
PBMarkdownDocument_WITH_MARGIN = 1<<0
PBTextDocumentCreateWithMarkdown
Function: Create a text document by parsing a markdown file.
Syntax (C/C++)
PBTextDocumentPtr _Nullable PBTextDocumentCreateWithMarkdown(
ConstStr markdownText, PBMarkdownDocumentFlags flags);
Syntax (Python)
TextDocumentCreateWithMarkdown(markdownText, flags) -> (document)
Parameters and Return Values
[in] markdownText (referenced string): The document in markdown.
[in] flags (PBMarkdownDocumentFlags): Flags bitwise OR-ed together controlling the parsing and styling of the document.
[out] document (nullable owned PBTextDocument): The created document.
Example (C/C++)
PBTextDocument *document = PBTextDocumentCreateWithMarkdown(
PB_STR("plain *italic* **bold**"), PBMarkdownDocument_WITH_MARGIN);
PBTextDisplayAddWithDocument(container,
PBElement_H_FILL | PBElement_CLIP_LAYER, document);
PBTextDocumentRelease(document);
PBTextDocumentCreateWithPositionedAttributes
Function:
Syntax (C/C++)
PBTextDocumentPtr _Nullable PBTextDocumentCreateWithPositionedAttributes(
ConstStr contents,
const PBPositionedTextAttribute *_Nullable attributes, size_t attributesCount,
PBTextRoleID defaultsStyleID);
Syntax (Python)
TextDocumentCreateWithPositionedAttributes(contents, attributes, defaultsStyleID) -> (document)
Parameters and Return Values
[in] contents (referenced string):
[in] attributes (referenced array of PBPositionedTextAttribute):
[in] defaultsStyleID (PBTextRoleID):
[out] document (nullable owned PBTextDocument):
PBTextDocumentCreateWithRangedAttributes
Function:
Syntax (C/C++)
PBTextDocumentPtr _Nullable PBTextDocumentCreateWithRangedAttributes(
ConstStr contents,
const PBRangedTextAttribute *_Nullable attributes, size_t attributesCount,
PBTextRoleID defaultsStyleID);
Syntax (Python)
TextDocumentCreateWithRangedAttributes(contents, attributes, defaultsStyleID) -> (document)
Parameters and Return Values
[in] contents (referenced string):
[in] attributes (referenced array of PBRangedTextAttribute):
[in] defaultsStyleID (PBTextRoleID):
[out] document (nullable owned PBTextDocument):
PBTextDocumentIsTextNode
Function:
Syntax (C/C++)
bool PBTextDocumentIsTextNode(PBTextDocumentRef document);
Syntax (Python)
TextDocumentIsTextNode(document) -> (isTextNode)
Parameters and Return Values
[in] document (referenced PBTextDocument):
[out] isTextNode (bool
):
PBTextDocumentGetTextLength
Function:
Syntax (C/C++)
uintptr_t PBTextDocumentGetTextLength(PBTextDocumentRef document);
Syntax (Python)
TextDocumentGetTextLength(document) -> (textLengthInBytes)
Parameters and Return Values
[in] document (referenced PBTextDocument):
[out] textLengthInBytes (uintptr_t
):
PBTextDocumentCopyTextToBuffer
Function:
Syntax (C/C++)
void PBTextDocumentCopyTextToBuffer(PBTextDocumentRef document,
uintptr_t fromByte, uintptr_t toByte, /* in-out */ IOStr * __restrict text);
Syntax (Python)
TextDocumentCopyTextToBuffer(document, fromByte, toByte, text)
Parameters and Return Values
[in] document (referenced PBTextDocument):
[in] fromByte (uintptr_t
):
[in] toByte (uintptr_t
):
[in-out] text (string buffer):
PBTextDocumentGetHyperlinkURLAtOffset
Function:
Syntax (C/C++)
void PBTextDocumentGetHyperlinkURLAtOffset(PBTextDocumentRef document,
uintptr_t offsetByte, /* in-out */ IOStr * __restrict url,
/* output */ intptr_t * _Nullable __restrict fromAttributeAtIndex);
Syntax (Python)
TextDocumentGetHyperlinkURLAtOffset(document, offsetByte, url) -> (fromAttributeAtIndex)
Parameters and Return Values
[in] document (referenced PBTextDocument):
[in] offsetByte (uintptr_t
):
[in-out] url (string buffer):
[optional-out] fromAttributeAtIndex (intptr_t
):
PBTextDocumentGetHyperlinkRange
Function:
Syntax (C/C++)
void PBTextDocumentGetHyperlinkRange(PBTextDocumentRef document,
uintptr_t fromAttributeAtIndex,
/* output */ uintptr_t * _Nullable __restrict fromByte,
/* output */ uintptr_t * _Nullable __restrict toByte);
Syntax (Python)
TextDocumentGetHyperlinkRange(document, fromAttributeAtIndex) -> (fromByte, toByte)
Parameters and Return Values
[in] document (referenced PBTextDocument):
[in] fromAttributeAtIndex (uintptr_t
):
[optional-out] fromByte (uintptr_t
):
[optional-out] toByte (uintptr_t
):
PBTextDocumentFindTextFlags
Enumeration/bitset of type uint32_t:
Constants
PBTextDocumentFindText_CASE_SENSITIVE
PBTextDocumentFindText_CASE_SENSITIVE = 1<<0
PBTextDocumentFindText_BACKWARDS
PBTextDocumentFindText_BACKWARDS = 1<<1
PBTextDocumentFindText
Function:
Syntax (C/C++)
bool PBTextDocumentFindText(PBTextDocumentRef document, ConstStr needle,
uintptr_t fromByte, uintptr_t toByte, PBTextDocumentFindTextFlags flags,
/* output */ uintptr_t * __restrict index);
Syntax (Python)
TextDocumentFindText(document, needle, fromByte, toByte, flags) -> (didFind, index)
Parameters and Return Values
[in] document (referenced PBTextDocument):
[in] needle (referenced string):
[in] fromByte (uintptr_t
):
[in] toByte (uintptr_t
):
[in] flags (PBTextDocumentFindTextFlags):
[out] didFind (bool
):
[out] index (uintptr_t
):
PBTextDocumentGetChildNodeCount
Function:
Syntax (C/C++)
uintptr_t PBTextDocumentGetChildNodeCount(PBTextDocumentRef document);
Syntax (Python)
TextDocumentGetChildNodeCount(document) -> (childNodeCount)
Parameters and Return Values
[in] document (referenced PBTextDocument):
[out] childNodeCount (uintptr_t
):
PBTextDocumentGetChildNode
Function:
Syntax (C/C++)
PBTextDocumentPtr PBTextDocumentGetChildNode(PBTextDocumentRef document,
uintptr_t index, /* output */ PBTextRoleID * _Nullable __restrict roleID);
Syntax (Python)
TextDocumentGetChildNode(document, index) -> (childNode, roleID)
Parameters and Return Values
[in] document (referenced PBTextDocument):
[in] index (uintptr_t
):
[out] childNode (owned PBTextDocument):
[optional-out] roleID (PBTextRoleID):
PBTextDocumentGetNodeForOffset
Function:
Syntax (C/C++)
PBTextDocumentPtr PBTextDocumentGetNodeForOffset(PBTextDocumentRef document,
uintptr_t offsetInBytes,
/* output */ uintptr_t * _Nullable __restrict offsetWithinChildNode,
/* output */ PBTextRoleID * _Nullable __restrict roleID);
Syntax (Python)
TextDocumentGetNodeForOffset(document, offsetInBytes) -> (childNode, offsetWithinChildNode, roleID)
Parameters and Return Values
[in] document (referenced PBTextDocument):
[in] offsetInBytes (uintptr_t
):
[out] childNode (owned PBTextDocument):
[optional-out] offsetWithinChildNode (uintptr_t
):
[optional-out] roleID (PBTextRoleID):
PBTextDocumentFindOffsetOfNode
Function:
Syntax (C/C++)
uintptr_t PBTextDocumentFindOffsetOfNode(PBTextDocumentRef document,
PBTextDocumentRef descendentNode);
Syntax (Python)
TextDocumentFindOffsetOfNode(document, descendentNode) -> (offset)
Parameters and Return Values
[in] document (referenced PBTextDocument):
[in] descendentNode (referenced PBTextDocument):
[out] offset (uintptr_t
):
PBTextDocumentBuilderCreate
Function:
Syntax (C/C++)
PBTextDocumentBuilderPtr _Nullable PBTextDocumentBuilderCreate(
PBTextRoleID defaultRole);
Syntax (Python)
TextDocumentBuilderCreate(defaultRole) -> (builder)
Parameters and Return Values
[in] defaultRole (PBTextRoleID):
[out] builder (nullable owned PBTextDocumentBuilder):
PBTextDocumentBuilderFinish
Function:
Syntax (C/C++)
PBTextDocumentPtr _Nullable PBTextDocumentBuilderFinish(
PBTextDocumentBuilderPtr builder);
Syntax (Python)
TextDocumentBuilderFinish(builder) -> (document)
Parameters and Return Values
[in] builder (owned PBTextDocumentBuilder):
[out] document (nullable owned PBTextDocument):
PBTextDocumentBuilderAppend
Function:
Syntax (C/C++)
void PBTextDocumentBuilderAppend(PBTextDocumentBuilderRef builder,
ConstStr contents,
const PBPositionedTextAttribute *_Nullable attributes, size_t attributesCount);
Syntax (Python)
TextDocumentBuilderAppend(builder, contents, attributes)
Parameters and Return Values
[in] builder (referenced PBTextDocumentBuilder):
[in] contents (referenced string):
[in] attributes (referenced array of PBPositionedTextAttribute):
PBTextDocumentBuilderAppendSoftBreak
Function:
Syntax (C/C++)
void PBTextDocumentBuilderAppendSoftBreak(PBTextDocumentBuilderRef builder);
Syntax (Python)
TextDocumentBuilderAppendSoftBreak(builder)
Parameters and Return Values
[in] builder (referenced PBTextDocumentBuilder):
PBTextDocumentBuilderAppendImage
Function:
Syntax (C/C++)
void PBTextDocumentBuilderAppendImage(PBTextDocumentBuilderRef builder,
ConstStr sourceReference, ConstStr alternateText);
Syntax (Python)
TextDocumentBuilderAppendImage(builder, sourceReference, alternateText)
Parameters and Return Values
[in] builder (referenced PBTextDocumentBuilder):
[in] sourceReference (referenced string):
[in] alternateText (referenced string):
PBTextDocumentBuilderOpenListItem
Function:
Syntax (C/C++)
void PBTextDocumentBuilderOpenListItem(PBTextDocumentBuilderRef builder,
ConstStr bulletOrNumberText, int32_t indentDp,
const PBPositionedTextAttribute *_Nullable attributes, size_t attributesCount);
Syntax (Python)
TextDocumentBuilderOpenListItem(builder, bulletOrNumberText, indentDp, attributes)
Parameters and Return Values
[in] builder (referenced PBTextDocumentBuilder):
[in] bulletOrNumberText (referenced string):
[in] indentDp (int32_t
):
[in] attributes (referenced array of PBPositionedTextAttribute):
PBTextDocumentBuilderOpenBlockWithRole
Function:
Syntax (C/C++)
void PBTextDocumentBuilderOpenBlockWithRole(PBTextDocumentBuilderRef builder,
PBTextRoleID role);
Syntax (Python)
TextDocumentBuilderOpenBlockWithRole(builder, role)
Parameters and Return Values
[in] builder (referenced PBTextDocumentBuilder):
[in] role (PBTextRoleID):
PBTextDocumentBuilderClose
Function:
Syntax (C/C++)
void PBTextDocumentBuilderClose(PBTextDocumentBuilderRef builder);
Syntax (Python)
TextDocumentBuilderClose(builder)
Parameters and Return Values
[in] builder (referenced PBTextDocumentBuilder):