From f7474176bdd54fc9ea0d929176e9f7275977bcb7 Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Thu, 27 Jan 2022 19:59:14 -0500 Subject: tk: Simplify check render code --- (limited to 'src/tk/check.c') diff --git a/src/tk/check.c b/src/tk/check.c index 13af1cf..e425467 100644 --- a/src/tk/check.c +++ b/src/tk/check.c @@ -228,10 +228,17 @@ _mftk_check_render_cir(SDL_Rect *rect, SDL_Color *color, SDL_Renderer *renderer) static int _mftk_check_render(struct mftk_widget *w, SDL_Renderer *renderer, int x, int y) { - struct mftk_check *c = (struct mftk_check *) w; - SDL_Rect rect; - SDL_Color *border; - int e = 0; + struct mftk_check *c = (struct mftk_check *) w; + int (*render)(SDL_Rect *, SDL_Color *, SDL_Renderer *); + SDL_Rect rect; + SDL_Color *border; + int e = 0; + + if (c->shape == MFTK_CHECK_SHAPE_BOX) { + render = &_mftk_check_render_box; + } else { + render = &_mftk_check_render_cir; + } rect.x = x - c->butn_border; rect.y = y - c->butn_border; @@ -242,30 +249,16 @@ _mftk_check_render(struct mftk_widget *w, SDL_Renderer *renderer, int x, int y) } else { border = &_mftk_check_bdrn_color; } - if (c->shape == MFTK_CHECK_SHAPE_BOX) { - if (_mftk_check_render_box(&rect, border, renderer) < 0) { - e = -1; - } - } else { - if (_mftk_check_render_cir(&rect, border, renderer) < 0) { - e = -1; - } + if (render(&rect, border, renderer) < 0) { + e = -1; } rect.x = x; rect.y = y; rect.w = c->butn_width; rect.h = c->butn_width; - if (c->shape == MFTK_CHECK_SHAPE_BOX) { - if (_mftk_check_render_box(&rect, &_mftk_check_butn_color, - renderer) < 0) { - e = -1; - } - } else { - if (_mftk_check_render_cir(&rect, &_mftk_check_butn_color, - renderer) < 0) { + if (render(&rect, &_mftk_check_butn_color, renderer) < 0) { e = -1; - } } if (c->state == SDL_TRUE) { @@ -273,18 +266,8 @@ _mftk_check_render(struct mftk_widget *w, SDL_Renderer *renderer, int x, int y) rect.y += c->butn_padding; rect.w -= c->butn_padding * 2; rect.h -= c->butn_padding * 2; - if (c->shape == MFTK_CHECK_SHAPE_BOX) { - if (_mftk_check_render_box(&rect, - &_mftk_check_mark_color, - renderer) < 0) { - e = -1; - } - } else { - if (_mftk_check_render_cir(&rect, - &_mftk_check_mark_color, - renderer) < 0) { - e = -1; - } + if (render(&rect, &_mftk_check_mark_color, renderer) < 0) { + e = -1; } } -- cgit v0.9.1