#include #include #include #include #include "scenes.h" #include "../ui_elements/UI.h" #include "../resources/resources.h" static const int PADDING = 10; static const int BORDER = 2; typedef struct { char *value; int scroll; } ResultViewData; Rectangle GetResultViewBodyRect() { int HeaderOffset = PADDING * 2; Rectangle outp = { .x = PADDING, .y = HeaderOffset, .width = GetScreenWidth() - PADDING * 2, .height = GetScreenHeight() - HeaderOffset - PADDING * 3, }; return outp; } bool updateResultView(void *self) { if (IsKeyDown(KEY_ESCAPE)) { DeleteSceneFromStack(); return true; } return true; } bool drawResultView(void *self) { ResultViewData *data = ((Scene *)self)->data; DrawBackground(); Rectangle body = GetResultViewBodyRect(); DrawRecBordered(body, WHITE, COLORSCHEME_ORANGE, BORDER); DrawTextInRec(body, data->value, GetMainFont(), 20, COLORSCHEME_BROWN, 3, &data->scroll); return true; } void deinitResultView(void *self) { TraceLog(LOG_INFO, "Deleting a result view"); free((Scene *)self); } Scene *CreateResultView(char *result) { TraceLog(LOG_INFO, "Creating a main menu"); Scene *outp = malloc(sizeof(Scene)); outp->Draw = drawResultView; outp->Update = updateResultView; outp->Deint = deinitResultView; ResultViewData *data = malloc(sizeof(ResultViewData)); if (data == NULL) { free(outp); return NULL; } data->value = result; data->scroll = 0; outp->data = data; return outp; }