Actually let's do paragraph alignment first. Haven't tested hit-test with that just yet.

This commit is contained in:
Pietro Gagliardi 2017-02-11 17:10:59 -05:00
parent dca92d507e
commit 491ec3ae49
1 changed files with 15 additions and 1 deletions

View File

@ -86,8 +86,22 @@ struct uiDrawFontDescriptor {
};
typedef struct uiDrawTextLayout uiDrawTextLayout;
typedef struct uiDrawTextLayoutParams uiDrawTextLayoutParams;
typedef struct uiDrawTextLayoutLineMetrics uiDrawTextLayoutLineMetrics;
_UI_ENUM(uiDrawTextLayoutAlign) {
uiDrawTextLayoutAlignLeft,
uiDrawTextLayoutAlignCenter,
uiDrawTextLayoutAlignRight,
};
struct uiDrawTextLayoutParams {
uiAttributedString *String;
uiDrawFontDescriptor *DefaultFont;
double Width;
uiDrawTextLayoutAlign Align;
};
struct uiDrawTextLayoutLineMetrics {
// This describes the overall bounding box of the line.
// TODO figure out if X is correct regardless of both alignment and writing direction
@ -128,7 +142,7 @@ struct uiDrawTextLayoutLineMetrics {
// - uiDrawTextLayoutRangeForSize() (returns what substring would fit in a given size)
// - uiDrawTextLayoutNewWithHeight() (limits amount of string used by the height)
// - some function to fix up a range (for text editing)
_UI_EXTERN uiDrawTextLayout *uiDrawNewTextLayout(uiAttributedString *s, uiDrawFontDescriptor *defaultFont, double width);
_UI_EXTERN uiDrawTextLayout *uiDrawNewTextLayout(uiDrawTextLayoutParams *params);
_UI_EXTERN void uiDrawFreeTextLayout(uiDrawTextLayout *tl);
_UI_EXTERN void uiDrawText(uiDrawContext *c, uiDrawTextLayout *tl, double x, double y);
_UI_EXTERN void uiDrawTextLayoutExtents(uiDrawTextLayout *tl, double *width, double *height);