diff options
Diffstat (limited to 'src/libui_sdl/libui/test/page9.c')
-rw-r--r-- | src/libui_sdl/libui/test/page9.c | 289 |
1 files changed, 0 insertions, 289 deletions
diff --git a/src/libui_sdl/libui/test/page9.c b/src/libui_sdl/libui/test/page9.c deleted file mode 100644 index 65b2d3a..0000000 --- a/src/libui_sdl/libui/test/page9.c +++ /dev/null @@ -1,289 +0,0 @@ -// 22 december 2015 -#include "test.h" - -static uiEntry *textString; -static uiEntry *textFont; -static uiEntry *textSize; -static uiCombobox *textWeight; -static uiCombobox *textItalic; -static uiCheckbox *textSmallCaps; -static uiCombobox *textStretch; -static uiEntry *textWidth; -static uiButton *textApply; -static uiCheckbox *addLeading; -static uiArea *textArea; -static uiAreaHandler textAreaHandler; - -static double entryDouble(uiEntry *e) -{ - char *s; - double d; - - s = uiEntryText(e); - d = atof(s); - uiFreeText(s); - return d; -} - -static void drawGuides(uiDrawContext *c, uiDrawTextFontMetrics *m) -{ - uiDrawPath *p; - uiDrawBrush b; - uiDrawStrokeParams sp; - double leading; - double y; - - leading = 0; - if (uiCheckboxChecked(addLeading)) - leading = m->Leading; - - memset(&b, 0, sizeof (uiDrawBrush)); - b.Type = uiDrawBrushTypeSolid; - memset(&sp, 0, sizeof (uiDrawStrokeParams)); - sp.Cap = uiDrawLineCapFlat; - sp.Join = uiDrawLineJoinMiter; - sp.MiterLimit = uiDrawDefaultMiterLimit; - sp.Thickness = 2; - - uiDrawSave(c); - - p = uiDrawNewPath(uiDrawFillModeWinding); - y = 10; - uiDrawPathNewFigure(p, 8, y); - y += m->Ascent; - uiDrawPathLineTo(p, 8, y); - uiDrawPathEnd(p); - b.R = 0.94; - b.G = 0.5; - b.B = 0.5; - b.A = 1.0; - uiDrawStroke(c, p, &b, &sp); - uiDrawFreePath(p); - - p = uiDrawNewPath(uiDrawFillModeWinding); - uiDrawPathNewFigure(p, 8, y); - y += m->Descent; - uiDrawPathLineTo(p, 8, y); - uiDrawPathEnd(p); - b.R = 0.12; - b.G = 0.56; - b.B = 1.0; - b.A = 1.0; - uiDrawStroke(c, p, &b, &sp); - uiDrawFreePath(p); - - // and again for the second line - p = uiDrawNewPath(uiDrawFillModeWinding); - y += leading; - uiDrawPathNewFigure(p, 8, y); - y += m->Ascent; - uiDrawPathLineTo(p, 8, y); - uiDrawPathEnd(p); - b.R = 0.94; - b.G = 0.5; - b.B = 0.5; - b.A = 0.75; - uiDrawStroke(c, p, &b, &sp); - uiDrawFreePath(p); - - p = uiDrawNewPath(uiDrawFillModeWinding); - uiDrawPathNewFigure(p, 8, y); - y += m->Descent; - uiDrawPathLineTo(p, 8, y); - uiDrawPathEnd(p); - b.R = 0.12; - b.G = 0.56; - b.B = 1.0; - b.A = 0.75; - uiDrawStroke(c, p, &b, &sp); - uiDrawFreePath(p); - - // and a box to text layout top-left corners - p = uiDrawNewPath(uiDrawFillModeWinding); - uiDrawPathAddRectangle(p, 0, 0, 10, 10); - uiDrawPathEnd(p); - uiDrawClip(c, p); - b.R = 0.85; - b.G = 0.65; - b.B = 0.13; - b.A = 1.0; - uiDrawStroke(c, p, &b, &sp); - uiDrawFreePath(p); - - uiDrawRestore(c); -} - -static void handlerDraw(uiAreaHandler *a, uiArea *area, uiAreaDrawParams *dp) -{ - uiDrawTextFontDescriptor desc; - uiDrawTextFont *font; - char *s; - char *family; // make compiler happy - uiDrawTextLayout *layout; - uiDrawTextFontMetrics metrics; - double ypos; - double width; - double height; - - memset(&desc, 0, sizeof (uiDrawTextFontDescriptor)); - family = uiEntryText(textFont); - desc.Family = family; - desc.Size = entryDouble(textSize); - desc.Weight = uiComboboxSelected(textWeight); - desc.Italic = uiComboboxSelected(textItalic); - desc.Stretch = uiComboboxSelected(textStretch); - font = uiDrawLoadClosestFont(&desc); - uiFreeText(family); - uiDrawTextFontGetMetrics(font, &metrics); - - width = entryDouble(textWidth); - - drawGuides(dp->Context, &metrics); - - s = uiEntryText(textString); - layout = uiDrawNewTextLayout(s, font, width); - uiFreeText(s); - if (uiCheckboxChecked(textSmallCaps)) - ; // TODO - ypos = 10; - uiDrawText(dp->Context, 10, ypos, layout); - // TODO make these optional? - uiDrawTextLayoutExtents(layout, &width, &height); - uiDrawFreeTextLayout(layout); - - layout = uiDrawNewTextLayout("This is a second line", font, -1); - if (/*TODO reuse width*/entryDouble(textWidth) < 0) { - double ad; - - ad = metrics.Ascent + metrics.Descent; - printf("ad:%g extent:%g\n", ad, height); - } - ypos += height; - if (uiCheckboxChecked(addLeading)) - ypos += metrics.Leading; - uiDrawText(dp->Context, 10, ypos, layout); - uiDrawFreeTextLayout(layout); - - uiDrawFreeTextFont(font); -} - -static void handlerMouseEvent(uiAreaHandler *a, uiArea *area, uiAreaMouseEvent *e) -{ - // do nothing -} - -static void handlerMouseCrossed(uiAreaHandler *ah, uiArea *a, int left) -{ - // do nothing -} - -static void handlerDragBroken(uiAreaHandler *ah, uiArea *a) -{ - // do nothing -} - -static int handlerKeyEvent(uiAreaHandler *ah, uiArea *a, uiAreaKeyEvent *e) -{ - // do nothing - return 0; -} - -static void onTextApply(uiButton *b, void *data) -{ - uiAreaQueueRedrawAll(textArea); -} - -uiBox *makePage9(void) -{ - uiBox *page9; - uiBox *vbox; - uiBox *hbox; - - page9 = newVerticalBox(); - vbox = page9; - - hbox = newHorizontalBox(); - uiBoxAppend(vbox, uiControl(hbox), 0); - - textString = uiNewEntry(); - // TODO make it placeholder - uiEntrySetText(textString, "Enter text here"); - uiBoxAppend(hbox, uiControl(textString), 1); - - textFont = uiNewEntry(); - uiEntrySetText(textFont, "Arial"); - uiBoxAppend(hbox, uiControl(textFont), 1); - - textSize = uiNewEntry(); - uiEntrySetText(textSize, "10"); - uiBoxAppend(hbox, uiControl(textSize), 1); - - hbox = newHorizontalBox(); - uiBoxAppend(vbox, uiControl(hbox), 0); - - textWeight = uiNewCombobox(); - uiComboboxAppend(textWeight, "Thin"); - uiComboboxAppend(textWeight, "Ultra Light"); - uiComboboxAppend(textWeight, "Light"); - uiComboboxAppend(textWeight, "Book"); - uiComboboxAppend(textWeight, "Normal"); - uiComboboxAppend(textWeight, "Medium"); - uiComboboxAppend(textWeight, "Semi Bold"); - uiComboboxAppend(textWeight, "Bold"); - uiComboboxAppend(textWeight, "Ultra Bold"); - uiComboboxAppend(textWeight, "Heavy"); - uiComboboxAppend(textWeight, "Ultra Heavy"); - uiComboboxSetSelected(textWeight, uiDrawTextWeightNormal); - uiBoxAppend(hbox, uiControl(textWeight), 1); - - textItalic = uiNewCombobox(); - uiComboboxAppend(textItalic, "Normal"); - uiComboboxAppend(textItalic, "Oblique"); - uiComboboxAppend(textItalic, "Italic"); - uiComboboxSetSelected(textItalic, uiDrawTextItalicNormal); - uiBoxAppend(hbox, uiControl(textItalic), 1); - - textSmallCaps = uiNewCheckbox("Small Caps"); - uiBoxAppend(hbox, uiControl(textSmallCaps), 1); - - hbox = newHorizontalBox(); - uiBoxAppend(vbox, uiControl(hbox), 0); - - textStretch = uiNewCombobox(); - uiComboboxAppend(textStretch, "Ultra Condensed"); - uiComboboxAppend(textStretch, "Extra Condensed"); - uiComboboxAppend(textStretch, "Condensed"); - uiComboboxAppend(textStretch, "Semi Condensed"); - uiComboboxAppend(textStretch, "Normal"); - uiComboboxAppend(textStretch, "Semi Expanded"); - uiComboboxAppend(textStretch, "Expanded"); - uiComboboxAppend(textStretch, "Extra Expanded"); - uiComboboxAppend(textStretch, "Ultra Expanded"); - uiComboboxSetSelected(textStretch, uiDrawTextStretchNormal); - uiBoxAppend(hbox, uiControl(textStretch), 1); - - textWidth = uiNewEntry(); - uiEntrySetText(textWidth, "-1"); - uiBoxAppend(hbox, uiControl(textWidth), 1); - - hbox = newHorizontalBox(); - uiBoxAppend(vbox, uiControl(hbox), 0); - - textApply = uiNewButton("Apply"); - uiButtonOnClicked(textApply, onTextApply, NULL); - uiBoxAppend(hbox, uiControl(textApply), 1); - - addLeading = uiNewCheckbox("Add Leading"); - uiCheckboxSetChecked(addLeading, 1); - uiBoxAppend(hbox, uiControl(addLeading), 0); - - textAreaHandler.Draw = handlerDraw; - textAreaHandler.MouseEvent = handlerMouseEvent; - textAreaHandler.MouseCrossed = handlerMouseCrossed; - textAreaHandler.DragBroken = handlerDragBroken; - textAreaHandler.KeyEvent = handlerKeyEvent; - textArea = uiNewArea(&textAreaHandler); - uiBoxAppend(vbox, uiControl(textArea), 1); - - return page9; -} |