libui/darwin/drawtext.m

82 lines
1.9 KiB
Mathematica
Raw Normal View History

// 2 january 2017
#import "uipriv_darwin.h"
struct uiDrawTextLayout {
CFAttributedStringRef attrstr;
double width;
};
CFAttributedStringRef attrstrToCoreFoundation(uiAttributedString *s, uiDrawFontDescriptor *defaultFont)
{
CFStringRef cfstr;
CFAttributedStringRef base;
CFMutableAttributedStringRef mas;
CFMutableDictionaryRef defaultAttrs;
cfstr = CFStringCreateWithCharacters(NULL, attrstrUTF16(s), attrstrUTF16Len(s));
if (cfstr == NULL) {
// TODO
}
defaultAttrs = CFDictionaryCreateMutable(NULL, 4,
&kCFCopyStringDictionaryKeyCallBacks,
&kCFTypeDictionaryValueCallBacks);
if (defaultAttrs == NULL) {
// TODO
}
base = CFAttributedStringCreate(NULL, cfstr, defaultAttrs);
if (base == NULL) {
// TODO
}
CFRelease(cfstr);
CFRelease(defaultAttrs);
mas = CFAttributedStringCreateMutableCopy(NULL, 0, base);
CFRelease(base);
CFAttributedStringBeginEditing(mas);
// TODO copy in the attributes
CFAttributedStringEndEditing(mas);
return mas;
}
uiDrawTextLayout *uiDrawNewTextLayout(uiAttributedString *s, uiDrawFontDescriptor *defaultFont, double width)
{
}
void uiDrawFreeTextLayout(uiDrawTextLayout *tl)
{
}
void uiDrawText(uiDrawContext *c, uiDrawTextLayout *tl, double x, double y)
{
}
void uiDrawTextLayoutExtents(uiDrawTextLayout *tl, double *width, double *height)
{
}
int uiDrawTextLayoutNumLines(uiDrawTextLayout *tl)
{
}
2016-01-15 21:48:38 -06:00
void uiDrawTextLayoutLineByteRange(uiDrawTextLayout *tl, int line, size_t *start, size_t *end)
{
}
void uiDrawTextLayoutLineGetMetrics(uiDrawTextLayout *tl, int line, uiDrawTextLayoutLineMetrics *m)
{
}
void uiDrawTextLayoutByteIndexToGraphemeRect(uiDrawTextLayout *tl, size_t pos, int *line, double *x, double *y, double *width, double *height)
{
}
uiDrawTextLayoutHitTestResult uiDrawTextLayoutHitTest(uiDrawTextLayout *tl, double x, double y, size_t *byteIndex, int *line)
2016-05-23 00:11:43 -05:00
{
}
void uiDrawTextLayoutByteRangeToRectangle(uiDrawTextLayout *tl, size_t start, size_t end, uiDrawTextLayoutByteRangeRectangle *r)
{
}