More documentation, const correctness, and TODO wrangling.
This commit is contained in:
parent
5d7128781b
commit
180b6429ef
|
@ -73,12 +73,12 @@ void uiFreeAttributedString(uiAttributedString *s)
|
||||||
uiFree(s);
|
uiFree(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *uiAttributedStringString(uiAttributedString *s)
|
const char *uiAttributedStringString(const uiAttributedString *s)
|
||||||
{
|
{
|
||||||
return s->s;
|
return s->s;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t uiAttributedStringLen(uiAttributedString *s)
|
size_t uiAttributedStringLen(const uiAttributedString *s)
|
||||||
{
|
{
|
||||||
return s->len;
|
return s->len;
|
||||||
}
|
}
|
||||||
|
|
1
ui.h
1
ui.h
|
@ -5,6 +5,7 @@
|
||||||
// TODOs
|
// TODOs
|
||||||
// - make getters that return whether something exists accept a NULL pointer to discard the value (and thus only return that the thing exists?)
|
// - make getters that return whether something exists accept a NULL pointer to discard the value (and thus only return that the thing exists?)
|
||||||
// - const-correct everything
|
// - const-correct everything
|
||||||
|
// - normalize documentation between typedefs and structs
|
||||||
|
|
||||||
#ifndef __LIBUI_UI_H__
|
#ifndef __LIBUI_UI_H__
|
||||||
#define __LIBUI_UI_H__
|
#define __LIBUI_UI_H__
|
||||||
|
|
28
ui_attrstr.h
28
ui_attrstr.h
|
@ -163,7 +163,6 @@ typedef struct uiAttributeSpec uiAttributeSpec;
|
||||||
// TODO note that pointers are copied
|
// TODO note that pointers are copied
|
||||||
// TODO add a function to uiAttributedString to get an attribute's value at a specific index or in a specific range, so we can edit
|
// TODO add a function to uiAttributedString to get an attribute's value at a specific index or in a specific range, so we can edit
|
||||||
// (TODO related to above: what about memory consumption during a read-modify-write cycle due to copying?)
|
// (TODO related to above: what about memory consumption during a read-modify-write cycle due to copying?)
|
||||||
// TODO normalize documentation between typedefs and structs
|
|
||||||
struct uiAttributeSpec {
|
struct uiAttributeSpec {
|
||||||
uiAttribute Type;
|
uiAttribute Type;
|
||||||
const char *Family;
|
const char *Family;
|
||||||
|
@ -194,21 +193,42 @@ _UI_EXTERN void uiFreeAttributedString(uiAttributedString *s);
|
||||||
// uiAttributedStringString() returns the textual content of s as a
|
// uiAttributedStringString() returns the textual content of s as a
|
||||||
// '\0'-terminated UTF-8 string. The returned pointer is valid until
|
// '\0'-terminated UTF-8 string. The returned pointer is valid until
|
||||||
// the next change to the textual content of s.
|
// the next change to the textual content of s.
|
||||||
_UI_EXTERN const char *uiAttributedStringString(uiAttributedString *s);
|
_UI_EXTERN const char *uiAttributedStringString(const uiAttributedString *s);
|
||||||
|
|
||||||
// uiAttributedStringLength() returns the number of UTF-8 bytes in
|
// uiAttributedStringLength() returns the number of UTF-8 bytes in
|
||||||
// the textual content of s, excluding the terminating '\0'.
|
// the textual content of s, excluding the terminating '\0'.
|
||||||
_UI_EXTERN size_t uiAttributedStringLen(uiAttributedString *s);
|
_UI_EXTERN size_t uiAttributedStringLen(const uiAttributedString *s);
|
||||||
|
|
||||||
|
// uiAttributedStringAppendUnattributed() adds the '\0'-terminated
|
||||||
|
// UTF-8 string str to the end of s. The new substring will be
|
||||||
|
// unattributed.
|
||||||
_UI_EXTERN void uiAttributedStringAppendUnattributed(uiAttributedString *s, const char *str);
|
_UI_EXTERN void uiAttributedStringAppendUnattributed(uiAttributedString *s, const char *str);
|
||||||
|
|
||||||
|
// uiAttributedStringAppendUnattributed() adds the '\0'-terminated
|
||||||
|
// UTF-8 string str to s at the byte position specified by at. The new
|
||||||
|
// substring will be unattributed; existing attributes will be moved
|
||||||
|
// along with its text.
|
||||||
_UI_EXTERN void uiAttributedStringInsertAtUnattributed(uiAttributedString *s, const char *str, size_t at);
|
_UI_EXTERN void uiAttributedStringInsertAtUnattributed(uiAttributedString *s, const char *str, size_t at);
|
||||||
|
|
||||||
|
// TODO add the Append and InsertAtAttributed functions
|
||||||
|
|
||||||
|
// uiAttributedStringDelete() deletes the characters and attributes of
|
||||||
|
// s in the range [start, end).
|
||||||
_UI_EXTERN void uiAttributedStringDelete(uiAttributedString *s, size_t start, size_t end);
|
_UI_EXTERN void uiAttributedStringDelete(uiAttributedString *s, size_t start, size_t end);
|
||||||
|
|
||||||
|
// TODO const correct this somehow (the implementation needs to mutate the structure)
|
||||||
_UI_EXTERN size_t uiAttributedStringNumGraphemes(uiAttributedString *s);
|
_UI_EXTERN size_t uiAttributedStringNumGraphemes(uiAttributedString *s);
|
||||||
|
|
||||||
|
// TODO const correct this somehow (the implementation needs to mutate the structure)
|
||||||
_UI_EXTERN size_t uiAttributedStringByteIndexToGrapheme(uiAttributedString *s, size_t pos);
|
_UI_EXTERN size_t uiAttributedStringByteIndexToGrapheme(uiAttributedString *s, size_t pos);
|
||||||
|
|
||||||
|
// TODO const correct this somehow (the implementation needs to mutate the structure)
|
||||||
_UI_EXTERN size_t uiAttributedStringGraphemeToByteIndex(uiAttributedString *s, size_t pos);
|
_UI_EXTERN size_t uiAttributedStringGraphemeToByteIndex(uiAttributedString *s, size_t pos);
|
||||||
|
|
||||||
|
_UI_EXTERN void uiAttributedStringSetAttribute(uiAttributedString *s, uiAttributeSpec *spec, size_t start, size_t end);
|
||||||
|
|
||||||
// TODO document this
|
// TODO document this
|
||||||
// TODO possibly copy the spec each time to ensure it doesn't get clobbered
|
// TODO possibly copy the spec each time to ensure it doesn't get clobbered
|
||||||
_UI_EXTERN void uiAttributedStringSetAttribute(uiAttributedString *s, uiAttributeSpec *spec, size_t start, size_t end);
|
|
||||||
_UI_EXTERN void uiAttributedStringForEachAttribute(uiAttributedString *s, uiAttributedStringForEachAttributeFunc f, void *data);
|
_UI_EXTERN void uiAttributedStringForEachAttribute(uiAttributedString *s, uiAttributedStringForEachAttributeFunc f, void *data);
|
||||||
|
|
||||||
typedef struct uiDrawFontDescriptor uiDrawFontDescriptor;
|
typedef struct uiDrawFontDescriptor uiDrawFontDescriptor;
|
||||||
|
|
Loading…
Reference in New Issue