FreeBSD Manual Pages
AG_TEXTELEMENT(3) BSD Library Functions Manual AG_TEXTELEMENT(3) NAME AG_TextElement -- agar dynamically-allocated multilanguage text buffer SYNOPSIS #include <agar/core.h> DESCRIPTION The AG_TextElement (or AG_Text) structure provides a dynamically-allo- cated buffer for a text element, specified in one or more languages. Agar GUI widgets such as AG_Textbox(3) or AG_Editable(3) may be bound to a AG_TextElement (in which case they make it possible to select the lan- guage from a contextual menu). It is also possible to define an AG_Variable(3) referencing an AG_TextElement. The AG_TextElement struc- ture is defined as: typedef struct ag_text { AG_Mutex lock; AG_TextEnt ent[AG_LANG_LAST]; /* Language entries */ enum ag_language lang; /* Selected language */ size_t maxLen; /* Maximum string length (bytes) */ Uint flags; } AG_Text, AG_TextElement; The lock mutex must be acquired prior to accessing any entry ent[]. The lang member is either AG_LANG_NONE or AG_LANG_xx, where xx is a ISO-639 language code. For convenience, the AG_LANG_* enums are also valid in- dices into public arrays agLanguageCodes[] (two-character codes) and agLanguageNames[] (full language names). Per-language entries are described by the AG_TextEnt structure: typedef struct ag_text_ent { char *buf; /* String buffer */ size_t maxLen; /* Length (allocated) */ size_t len; /* Length (chars) */ } AG_TextEnt; INTERFACE AG_Text * AG_TextNew(size_t maxLen) void AG_TextInit(AG_Text *T, size_t maxLen) void AG_TextSetLimit(AG_Text *T, size_t maxLen) void AG_TextDestroy(AG_Text *T) void AG_TextClear(AG_Text *T) void AG_TextSetLang(AG_Text *T, enum ag_language lang) enum ag_language AG_TextGetLang(AG_Text *T) void AG_TextSetLangISO(AG_Text *T, const char *lang_code) const char * AG_TextGetLangISO(AG_Text *T) void AG_TextSet(AG_Text *T, const char *fmt, ...) void AG_TextSetS(AG_Text *T, const char *s) void AG_TextSetEnt(AG_Text *T, enum ag_language lang, const char *fmt, ...) void AG_TextSetEntS(AG_Text *T, enum ag_language lang, const char *fmt, ...) AG_Text * AG_TextDup(AG_Text *T) int AG_TextLoad(AG_Text *T, AG_DataSource *ds) void AG_TextSave(AG_DataSource *ds, AG_Text *T) The AG_TextNew() function allocates and initializes a new, empty AG_TextElement. AG_TextInit() initializes an existing AG_TextElement. The maxLen argument specifies a maximum string length in bytes, or 0 for no limit. AG_TextSetLimit() may be used to set the effective limit. AG_TextDestroy() frees all resources allocated by a text element. AG_TextClear() frees and reinitializes all entries of the element. The functions AG_TextGetLang() and AG_TextSetLang() return or select the active language for a text element, specified as AG_LANG_NONE or AG_LANG_xx enum. The AG_TextGetLangISO() and AG_TextSetLangISO() vari- ants accept a two-character ISO-639 code as argument. The AG_TextSet() routine sets the text entry for the currently selected language. The AG_TextSetEnt() variant sets the text entry for the speci- fied language. The AG_TextDup() routine returns a newly-allocated copy of the specified text element. The AG_TextLoad() function initializes the specified text element from AG_DataSource(3) data. AG_TextSave() saves the text element to the given data source. SEE ALSO AG_Editable(3), AG_Intro(3), AG_Text(3), AG_Textbox(3), AG_Variable(3) HISTORY The AG_TextElement interface first appeared in Agar 1.5.0 BSD December 14, 2013 BSD
NAME | SYNOPSIS | DESCRIPTION | INTERFACE | SEE ALSO | HISTORY
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=AG_TextElement&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>