diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-03 08:51:38 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-03 08:51:38 -0700 |
commit | b4a9071af62f95dc6d22040a0b37ac7225ce4d54 (patch) | |
tree | b40a3ec798f42674f0ff62a071ff4c29348c8605 /scripts/kconfig/lxdialog/yesno.c | |
parent | 8b2a1fd1b394c60eaa2587716102dd5e9b4e5990 (diff) | |
parent | 99c8b9477f2b8c4f625545c41f0318570fa38894 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild
* git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild:
kbuild: trivial documentation fixes
kconfig: fix saving alternate kconfig file in parent dir
kbuild: make modpost processing configurable
kconfig/menuconfig: do not let ncurses clutter screen on exit
kconfig/lxdialog: clear long menu lines
kbuild: do not build mconf & lxdialog unless needed
kconfig/lxdialog: fix make mrproper
kconfig/lxdialog: support resize
kconfig/lxdialog: let <ESC><ESC> behave as expected
kconfig/menuconfig: lxdialog is now built-in
kconfig/lxdialog: add a new theme bluetitle which is now default
kconfig/lxdialog: add support for color themes and add blackbg theme
kconfig/lxdialog: refactor color support
Diffstat (limited to 'scripts/kconfig/lxdialog/yesno.c')
-rw-r--r-- | scripts/kconfig/lxdialog/yesno.c | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/scripts/kconfig/lxdialog/yesno.c b/scripts/kconfig/lxdialog/yesno.c index cb2568aae3e..ee0a04e3e01 100644 --- a/scripts/kconfig/lxdialog/yesno.c +++ b/scripts/kconfig/lxdialog/yesno.c @@ -44,6 +44,12 @@ int dialog_yesno(const char *title, const char *prompt, int height, int width) int i, x, y, key = 0, button = 0; WINDOW *dialog; +do_resize: + if (getmaxy(stdscr) < (height + 4)) + return -ERRDISPLAYTOOSMALL; + if (getmaxx(stdscr) < (width + 4)) + return -ERRDISPLAYTOOSMALL; + /* center dialog box on screen */ x = (COLS - width) / 2; y = (LINES - height) / 2; @@ -53,22 +59,23 @@ int dialog_yesno(const char *title, const char *prompt, int height, int width) dialog = newwin(height, width, y, x); keypad(dialog, TRUE); - draw_box(dialog, 0, 0, height, width, dialog_attr, border_attr); - wattrset(dialog, border_attr); + draw_box(dialog, 0, 0, height, width, + dlg.dialog.atr, dlg.border.atr); + wattrset(dialog, dlg.border.atr); mvwaddch(dialog, height - 3, 0, ACS_LTEE); for (i = 0; i < width - 2; i++) waddch(dialog, ACS_HLINE); - wattrset(dialog, dialog_attr); + wattrset(dialog, dlg.dialog.atr); waddch(dialog, ACS_RTEE); print_title(dialog, title, width); - wattrset(dialog, dialog_attr); + wattrset(dialog, dlg.dialog.atr); print_autowrap(dialog, prompt, width - 2, 1, 3); print_buttons(dialog, height, width, 0); - while (key != ESC) { + while (key != KEY_ESC) { key = wgetch(dialog); switch (key) { case 'Y': @@ -92,11 +99,16 @@ int dialog_yesno(const char *title, const char *prompt, int height, int width) case '\n': delwin(dialog); return button; - case ESC: + case KEY_ESC: + key = on_key_esc(dialog); break; + case KEY_RESIZE: + delwin(dialog); + on_key_resize(); + goto do_resize; } } delwin(dialog); - return -1; /* ESC pressed */ + return key; /* ESC pressed */ } |