diff options
author | StapleButter <thetotalworm@gmail.com> | 2017-09-09 02:30:51 +0200 |
---|---|---|
committer | StapleButter <thetotalworm@gmail.com> | 2017-09-09 02:30:51 +0200 |
commit | 70e4841d311d68689724768157cc9cbfbde7a9fc (patch) | |
tree | ba9499f77d1258530a7e60aa6e1732c41d98161c /src/libui_sdl/libui/test/page10.c | |
parent | 81747d6c34eb159481a6ca3f283d065fa3568617 (diff) |
another UI attempt, I guess.
sorry.
Diffstat (limited to 'src/libui_sdl/libui/test/page10.c')
-rw-r--r-- | src/libui_sdl/libui/test/page10.c | 185 |
1 files changed, 185 insertions, 0 deletions
diff --git a/src/libui_sdl/libui/test/page10.c b/src/libui_sdl/libui/test/page10.c new file mode 100644 index 0000000..d7f26a7 --- /dev/null +++ b/src/libui_sdl/libui/test/page10.c @@ -0,0 +1,185 @@ +// 22 december 2015 +#include "test.h" + +static uiEntry *textString; +static uiFontButton *textFontButton; +static uiColorButton *textColorButton; +static uiEntry *textWidth; +static uiButton *textApply; +static uiCheckbox *noZ; +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 handlerDraw(uiAreaHandler *a, uiArea *area, uiAreaDrawParams *dp) +{ + uiDrawTextFont *font; + uiDrawTextLayout *layout; + double r, g, b, al; + char surrogates[1 + 4 + 1 + 1]; + char composed[2 + 2 + 2 + 3 + 2 + 1]; + double width, height; + + font = uiFontButtonFont(textFontButton); + + layout = uiDrawNewTextLayout("One two three four", font, -1); + uiDrawTextLayoutSetColor(layout, + 4, 7, + 1, 0, 0, 1); + uiDrawTextLayoutSetColor(layout, + 8, 14, + 1, 0, 0.5, 0.5); + uiColorButtonColor(textColorButton, &r, &g, &b, &al); + uiDrawTextLayoutSetColor(layout, + 14, 18, + r, g, b, al); + uiDrawText(dp->Context, 10, 10, layout); + uiDrawTextLayoutExtents(layout, &width, &height); + uiDrawFreeTextLayout(layout); + + surrogates[0] = 'x'; + surrogates[1] = 0xF0; // surrogates D800 DF08 + surrogates[2] = 0x90; + surrogates[3] = 0x8C; + surrogates[4] = 0x88; + surrogates[5] = 'y'; + surrogates[6] = '\0'; + + layout = uiDrawNewTextLayout(surrogates, font, -1); + uiDrawTextLayoutSetColor(layout, + 1, 2, + 1, 0, 0.5, 0.5); + uiDrawText(dp->Context, 10, 10 + height, layout); + uiDrawFreeTextLayout(layout); + + composed[0] = 'z'; + composed[1] = 'z'; + composed[2] = 0xC3; // 2 + composed[3] = 0xA9; + composed[4] = 'z'; + composed[5] = 'z'; + composed[6] = 0x65; // 5 + composed[7] = 0xCC; + composed[8] = 0x81; + composed[9] = 'z'; + composed[10] = 'z'; + composed[11] = '\0'; + + layout = uiDrawNewTextLayout(composed, font, -1); + uiDrawTextLayoutSetColor(layout, + 2, 3, + 1, 0, 0.5, 0.5); + uiDrawTextLayoutSetColor(layout, + 5, 6, + 1, 0, 0.5, 0.5); + if (!uiCheckboxChecked(noZ)) + uiDrawTextLayoutSetColor(layout, + 6, 7, + 0.5, 0, 1, 0.5); + uiDrawText(dp->Context, 10, 10 + height + height, 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 onFontChanged(uiFontButton *b, void *data) +{ + uiAreaQueueRedrawAll(textArea); +} + +static void onColorChanged(uiColorButton *b, void *data) +{ + uiAreaQueueRedrawAll(textArea); +} + +static void onNoZ(uiCheckbox *b, void *data) +{ + uiAreaQueueRedrawAll(textArea); +} + +uiBox *makePage10(void) +{ + uiBox *page10; + uiBox *vbox; + uiBox *hbox; + + page10 = newVerticalBox(); + vbox = page10; + + hbox = newHorizontalBox(); + uiBoxAppend(vbox, uiControl(hbox), 0); + + textString = uiNewEntry(); + // TODO make it placeholder + uiEntrySetText(textString, "Enter text here"); + uiBoxAppend(hbox, uiControl(textString), 1); + + textFontButton = uiNewFontButton(); + uiFontButtonOnChanged(textFontButton, onFontChanged, NULL); + uiBoxAppend(hbox, uiControl(textFontButton), 1); + + textColorButton = uiNewColorButton(); + uiColorButtonOnChanged(textColorButton, onColorChanged, NULL); + uiBoxAppend(hbox, uiControl(textColorButton), 1); + + hbox = newHorizontalBox(); + uiBoxAppend(vbox, uiControl(hbox), 0); + + textApply = uiNewButton("Apply"); + uiBoxAppend(hbox, uiControl(textApply), 1); + + textWidth = uiNewEntry(); + uiEntrySetText(textWidth, "-1"); + uiBoxAppend(hbox, uiControl(textWidth), 1); + + noZ = uiNewCheckbox("No Z Color"); + uiCheckboxOnToggled(noZ, onNoZ, NULL); + uiBoxAppend(hbox, uiControl(noZ), 0); + + textAreaHandler.Draw = handlerDraw; + textAreaHandler.MouseEvent = handlerMouseEvent; + textAreaHandler.MouseCrossed = handlerMouseCrossed; + textAreaHandler.DragBroken = handlerDragBroken; + textAreaHandler.KeyEvent = handlerKeyEvent; + textArea = uiNewArea(&textAreaHandler); + uiBoxAppend(vbox, uiControl(textArea), 1); + + // dummy objects to test single-activation + hbox = newHorizontalBox(); + uiBoxAppend(vbox, uiControl(hbox), 0); + uiBoxAppend(hbox, uiControl(uiNewFontButton()), 1); + uiBoxAppend(hbox, uiControl(uiNewColorButton()), 1); + + return page10; +} |