From 16c83b50e88a3f4bb344a918c4ebe4cae5a38e31 Mon Sep 17 00:00:00 2001 From: Joursoir Date: Mon, 29 Nov 2021 16:19:22 +0300 Subject: menu-bar: not use a global variable --- Library/UefiShellUfmCommandLib/menu-bar.c | 27 ++++++++++++++++----------- Library/UefiShellUfmCommandLib/menu-bar.h | 6 ++++-- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/Library/UefiShellUfmCommandLib/menu-bar.c b/Library/UefiShellUfmCommandLib/menu-bar.c index ff1ac7e..0503388 100644 --- a/Library/UefiShellUfmCommandLib/menu-bar.c +++ b/Library/UefiShellUfmCommandLib/menu-bar.c @@ -4,22 +4,27 @@ #include "tbi/win.h" #include "menu-bar.h" -struct window *menubar = NULL; - -BOOLEAN init_menubar(struct screen *scr) +struct window *init_menubar(struct screen *scr) { - menubar = newwin(scr, scr->columns, 1, 0, 0); + struct window *menubar = newwin(scr, scr->columns, 1, 0, 0); if(!menubar) - return FALSE; + return NULL; - wrefresh(menubar); - return TRUE; + mvwprintf(menubar, 0, 0, L"Menu bar"); + menubar_refresh(menubar); + return menubar; } -VOID free_menubar(VOID) +VOID free_menubar(struct window *w) { - ASSERT(menubar != NULL); + ASSERT(w != NULL); + + delwin(w); +} - delwin(menubar); - menubar = NULL; +VOID menubar_refresh(struct window *w) +{ + ASSERT(w != NULL); + + wrefresh(w); } diff --git a/Library/UefiShellUfmCommandLib/menu-bar.h b/Library/UefiShellUfmCommandLib/menu-bar.h index 9012f9f..85e1ce7 100644 --- a/Library/UefiShellUfmCommandLib/menu-bar.h +++ b/Library/UefiShellUfmCommandLib/menu-bar.h @@ -10,8 +10,10 @@ #include struct screen; +struct window; -BOOLEAN init_menubar(struct screen *scr); -VOID free_menubar(VOID); +struct window *init_menubar(struct screen *scr); +VOID free_menubar(struct window *w); +VOID menubar_refresh(struct window *w); #endif /* UFM_MENU_BAR_H */ -- cgit v1.2.3-18-g5258