From ff36b7225cd146b50cb8e4522ad58aa43c6bc153 Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Fri, 06 Aug 2021 08:25:33 -0400 Subject: tk: Build focus tab index --- (limited to 'src/tk/window.c') 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) { -- cgit v0.9.1