summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorP. J. McDermott <pj@pehjota.net>2022-01-27 19:59:14 (EST)
committer P. J. McDermott <pj@pehjota.net>2022-01-27 19:59:58 (EST)
commitf7474176bdd54fc9ea0d929176e9f7275977bcb7 (patch)
treeb5bc397ecf9660b4ebb2d54b0c774c0f8caf9547
parent22c1a167f7e82296ab8f222291b95129df0d6d78 (diff)
downloadmazefight-f7474176bdd54fc9ea0d929176e9f7275977bcb7.zip
mazefight-f7474176bdd54fc9ea0d929176e9f7275977bcb7.tar.gz
mazefight-f7474176bdd54fc9ea0d929176e9f7275977bcb7.tar.bz2
tk: Simplify check render code
-rw-r--r--src/tk/check.c49
1 files changed, 16 insertions, 33 deletions
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;
}
}