From ddf513909ce1742021b9c57ea7279a61aeda4899 Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Wed, 04 Aug 2021 20:17:59 -0400 Subject: tk: Implement mouse button up event --- (limited to 'src/tk/grid.c') diff --git a/src/tk/grid.c b/src/tk/grid.c index 5994929..67fa677 100644 --- a/src/tk/grid.c +++ b/src/tk/grid.c @@ -79,12 +79,33 @@ _mftk_grid_layout(struct mftk_widget *w) } static int -_mftk_grid_event(struct mftk_widget *w, SDL_Event *e) +_mftk_grid_event(struct mftk_widget *w, SDL_Event *e, int x, int y) { - struct mftk_grid *g = (struct mftk_grid *) w; + struct mftk_grid *g = (struct mftk_grid *) w; + SDL_Point p; + SDL_Rect rect; + int r; + int c; + struct mftk_widget *child; switch (e->type) { case SDL_MOUSEBUTTONUP: + p.x = e->button.x; + p.y = e->button.y; + for (r = 0; r < g->rows; ++r) { + for (c = 0; c < g->cols; ++c) { + child = g->children[r * g->cols + c]; + rect.x = x + g->children_x[c]; + rect.y = y + g->children_y[r]; + rect.w = child->w; + rect.h = child->h; + if (SDL_PointInRect(&p, &rect) + == SDL_TRUE) { + return mftk_widget_event(child, + e, x, y); + } + } + } break; default: break; -- cgit v0.9.1