diff --git a/sys/sdl/mui_issue_1954/Makefile b/sys/sdl/mui_issue_1954/Makefile new file mode 100644 index 00000000..5030fe50 --- /dev/null +++ b/sys/sdl/mui_issue_1954/Makefile @@ -0,0 +1,12 @@ +CFLAGS = -g -Wall -I../../../csrc/. `sdl2-config --cflags` + +SRC = $(shell ls ../../../csrc/*.c) $(shell ls ../common/*.c ) $(shell ls ../../bitmap/common/*.c ) $(shell ls *.c ) + +OBJ = $(SRC:.c=.o) + +u8g2_sdl: $(OBJ) + $(CC) $(CFLAGS) $(LDFLAGS) $(OBJ) `sdl2-config --libs` -o u8g2_sdl + +clean: + -rm $(OBJ) u8g2_sdl + diff --git a/sys/sdl/mui_issue_1954/main.c b/sys/sdl/mui_issue_1954/main.c new file mode 100644 index 00000000..5ad3ebd0 --- /dev/null +++ b/sys/sdl/mui_issue_1954/main.c @@ -0,0 +1,124 @@ + +#include "u8g2.h" +#include +#include +#include +#include "mui.h" +#include "mui_u8g2.h" + + +/*=================================================*/ +/* global variables */ + +u8g2_t u8g2; +mui_t ui; + + +muif_t muif_list[] MUI_PROGMEM = { + MUIF_LABEL(mui_u8g2_draw_text) +}; + + +fds_t fds[] MUI_PROGMEM = +MUI_FORM(1) +MUI_LABEL(5,12, "A label") +; + + +int screenshot_n = 0; + +void do_screenshot(void) +{ + char s[4096]; + u8x8_SaveBitmapTGA(u8g2_GetU8x8(&u8g2), "screenshot.tga"); + sprintf( s, + "convert -border 4 -bordercolor 'rgb(255,190,40)'" + " -fill 'rgb(255,170,0)' -opaque white" + " -filter point -resize 200%%" + " screenshot.tga pic%04d.png", screenshot_n); + system(s); + screenshot_n++; + /* + gif animation: + convert -delay 40 -loop 0 pic*.png animation.gif + */ +} + +int main(void) +{ + int x, y; + int k; + + + u8g2_SetupBuffer_SDL_128x64_4(&u8g2, &u8g2_cb_r0); + u8x8_InitDisplay(u8g2_GetU8x8(&u8g2)); + u8x8_SetPowerSave(u8g2_GetU8x8(&u8g2), 0); + + u8x8_ConnectBitmapToU8x8(u8g2_GetU8x8(&u8g2)); /* connect to bitmap */ + + u8g2_SetFont(&u8g2, u8g2_font_6x10_tr); + u8g2_SetFontMode(&u8g2, 1); + mui_Init(&ui, &u8g2, fds, muif_list, sizeof(muif_list)/sizeof(muif_t)); + mui_GotoForm(&ui, 1, 0); + + + x = 4; // use as height for the box + y = 0; + + for(;;) + { + u8g2_SetFontRefHeightExtendedText(&u8g2); + u8g2_FirstPage(&u8g2); + do + { + mui_Draw(&ui); + } while( u8g2_NextPage(&u8g2) ); + do_screenshot(); + + // printf("mui_GetCurrentCursorFocusPosition=%d\n", mui_GetCurrentCursorFocusPosition(&ui)); + + do + { + k = u8g_sdl_get_key(); + } while( k < 0 ); + + if ( k == 273 ) y -= 1; + if ( k == 274 ) y += 1; + if ( k == 276 ) x -= 1; + if ( k == 275 ) x += 1; + + /* + if ( k == 'e' ) y -= 1; + if ( k == 'x' ) y += 1; + if ( k == 's' ) x -= 1; + if ( k == 'd' ) x += 1; + */ + + if ( k == 'q' ) break; + + if ( k == 'n' ) + { + mui_NextField(&ui); + } + if ( k == 'p' ) + { + mui_PrevField(&ui); + } + if ( k == 's' ) + { + mui_SendSelect(&ui); + } + + if ( k == 't' ) + { + puts("screenshot"); + do_screenshot(); + } + + if ( x < 0 ) + x = 0; + + } + return 0; +} +