diff options
author | P. J. McDermott <pj@pehjota.net> | 2021-08-06 08:25:33 (EDT) |
---|---|---|
committer | P. J. McDermott <pj@pehjota.net> | 2021-08-06 08:35:56 (EDT) |
commit | ff36b7225cd146b50cb8e4522ad58aa43c6bc153 (patch) | |
tree | ef0b4d61dfc4a2d7c878b10f5f2ac3179654303a /src/tk/window.c | |
parent | ff4f77ec223c5a0b1a015789d34177d8ddb4a4b2 (diff) | |
download | mazefight-ff36b7225cd146b50cb8e4522ad58aa43c6bc153.zip mazefight-ff36b7225cd146b50cb8e4522ad58aa43c6bc153.tar.gz mazefight-ff36b7225cd146b50cb8e4522ad58aa43c6bc153.tar.bz2 |
tk: Build focus tab index
Diffstat (limited to 'src/tk/window.c')
-rw-r--r-- | src/tk/window.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/tk/window.c b/src/tk/window.c index 532a2e4..b87e7c0 100644 --- a/src/tk/window.c +++ b/src/tk/window.c @@ -26,6 +26,8 @@ struct mftk_window { struct mftk_widget *root; + struct mftk_widget *first; + struct mftk_widget *focus; }; struct mftk_window * @@ -44,10 +46,31 @@ mftk_window_new(struct mftk_widget *root) w->root = root; mftk_widget_layout(w->root); + mftk_widget_index(w->root, w); + w->focus = w->first; return w; } +void +mftk_window_index(struct mftk_window *win, struct mftk_widget *wid) +{ + if (win->first == NULL) { + win->first = wid; + wid->prev = wid; + wid->next = wid; + return; + } + /* + * Head: win->first + * Tail: win->first->prev + */ + wid->prev = win->first->prev; + wid->next = win->first; + win->first->prev->next = wid; + win->first->prev = wid; +} + int mftk_window_event(struct mftk_window *w, SDL_Event *e) { |