From 491ec3ae499df0b1f48941ae5fb651195718725a Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 11 Feb 2017 17:10:59 -0500 Subject: [PATCH] Actually let's do paragraph alignment first. Haven't tested hit-test with that just yet. --- ui_attrstr.h | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/ui_attrstr.h b/ui_attrstr.h index 9fb81513..8e95be98 100644 --- a/ui_attrstr.h +++ b/ui_attrstr.h @@ -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);