diff options
Diffstat (limited to 'test/test_show_hide.c')
-rw-r--r-- | test/test_show_hide.c | 186 |
1 files changed, 93 insertions, 93 deletions
diff --git a/test/test_show_hide.c b/test/test_show_hide.c index 4280408..584448c 100644 --- a/test/test_show_hide.c +++ b/test/test_show_hide.c @@ -31,118 +31,118 @@ #include <stddef.h> typedef enum { - START, - CREATED, - CONFIGURED, - MAPPED, - EXPOSED, - UNMAPPED, - DESTROYED, + START, + CREATED, + CONFIGURED, + MAPPED, + EXPOSED, + UNMAPPED, + DESTROYED, } State; typedef struct { - PuglWorld* world; - PuglView* view; - PuglTestOptions opts; - State state; + PuglWorld* world; + PuglView* view; + PuglTestOptions opts; + State state; } PuglTest; static PuglStatus onEvent(PuglView* view, const PuglEvent* event) { - PuglTest* test = (PuglTest*)puglGetHandle(view); - - if (test->opts.verbose) { - printEvent(event, "Event: ", true); - } - - switch (event->type) { - case PUGL_CREATE: - assert(test->state == START); - test->state = CREATED; - break; - case PUGL_CONFIGURE: - if (test->state == CREATED) { - test->state = CONFIGURED; - } - break; - case PUGL_MAP: - assert(test->state == CONFIGURED || test->state == UNMAPPED); - test->state = MAPPED; - break; - case PUGL_EXPOSE: - assert(test->state == MAPPED || test->state == EXPOSED); - test->state = EXPOSED; - break; - case PUGL_UNMAP: - assert(test->state == EXPOSED); - test->state = UNMAPPED; - break; - case PUGL_DESTROY: - assert(test->state == UNMAPPED); - test->state = DESTROYED; - break; - default: - break; - } - - return PUGL_SUCCESS; + PuglTest* test = (PuglTest*)puglGetHandle(view); + + if (test->opts.verbose) { + printEvent(event, "Event: ", true); + } + + switch (event->type) { + case PUGL_CREATE: + assert(test->state == START); + test->state = CREATED; + break; + case PUGL_CONFIGURE: + if (test->state == CREATED) { + test->state = CONFIGURED; + } + break; + case PUGL_MAP: + assert(test->state == CONFIGURED || test->state == UNMAPPED); + test->state = MAPPED; + break; + case PUGL_EXPOSE: + assert(test->state == MAPPED || test->state == EXPOSED); + test->state = EXPOSED; + break; + case PUGL_UNMAP: + assert(test->state == EXPOSED); + test->state = UNMAPPED; + break; + case PUGL_DESTROY: + assert(test->state == UNMAPPED); + test->state = DESTROYED; + break; + default: + break; + } + + return PUGL_SUCCESS; } static void tick(PuglWorld* world) { #ifdef __APPLE__ - // FIXME: Expose events are not events on MacOS, so we can't block - // indefinitely here since it will block forever - assert(!puglUpdate(world, 1 / 30.0)); + // FIXME: Expose events are not events on MacOS, so we can't block + // indefinitely here since it will block forever + assert(!puglUpdate(world, 1 / 30.0)); #else - assert(!puglUpdate(world, -1)); + assert(!puglUpdate(world, -1)); #endif } int main(int argc, char** argv) { - PuglTest test = {puglNewWorld(PUGL_PROGRAM, 0), - NULL, - puglParseTestOptions(&argc, &argv), - START}; - - // Set up view - test.view = puglNewView(test.world); - puglSetClassName(test.world, "Pugl Test"); - puglSetBackend(test.view, puglStubBackend()); - puglSetHandle(test.view, &test); - puglSetEventFunc(test.view, onEvent); - puglSetDefaultSize(test.view, 512, 512); - - // Create initially invisible window - assert(!puglRealize(test.view)); - assert(!puglGetVisible(test.view)); - while (test.state < CREATED) { - tick(test.world); - } - - // Show and hide window a couple of times - for (unsigned i = 0u; i < 2u; ++i) { - assert(!puglShow(test.view)); - while (test.state != EXPOSED) { - tick(test.world); - } - - assert(puglGetVisible(test.view)); - assert(!puglHide(test.view)); - while (test.state != UNMAPPED) { - tick(test.world); - } - } - - // Tear down - assert(!puglGetVisible(test.view)); - puglFreeView(test.view); - assert(test.state == DESTROYED); - puglFreeWorld(test.world); - - return 0; + PuglTest test = {puglNewWorld(PUGL_PROGRAM, 0), + NULL, + puglParseTestOptions(&argc, &argv), + START}; + + // Set up view + test.view = puglNewView(test.world); + puglSetClassName(test.world, "Pugl Test"); + puglSetBackend(test.view, puglStubBackend()); + puglSetHandle(test.view, &test); + puglSetEventFunc(test.view, onEvent); + puglSetDefaultSize(test.view, 512, 512); + + // Create initially invisible window + assert(!puglRealize(test.view)); + assert(!puglGetVisible(test.view)); + while (test.state < CREATED) { + tick(test.world); + } + + // Show and hide window a couple of times + for (unsigned i = 0u; i < 2u; ++i) { + assert(!puglShow(test.view)); + while (test.state != EXPOSED) { + tick(test.world); + } + + assert(puglGetVisible(test.view)); + assert(!puglHide(test.view)); + while (test.state != UNMAPPED) { + tick(test.world); + } + } + + // Tear down + assert(!puglGetVisible(test.view)); + puglFreeView(test.view); + assert(test.state == DESTROYED); + puglFreeWorld(test.world); + + return 0; } |