kconfig/lxdialog: support resize

In all dialogs now properly catch KEY_RESIZE and take proper action.
In mconf try to behave sensibly when a dialog routine returns
-ERRDISPLAYTOOSMALL.

The original check for a screnn size of 80x19 is kept for now.
It may make sense to remove it later, but thats anyway what
much text is adjusted for.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
This commit is contained in:
Sam Ravnborg
2006-07-29 22:48:57 +02:00
committed by Sam Ravnborg
parent f3cbcdc955
commit c8dc68ad0f
8 changed files with 161 additions and 71 deletions

View File

@@ -606,9 +606,8 @@ static void conf(struct menu *menu)
reset_dialog();
res = dialog_menu(prompt ? prompt : _("Main Menu"),
_(menu_instructions),
rows, cols, rows - 10,
active_menu, &s_scroll);
if (res == 1 || res == KEY_ESC)
if (res == 1 || res == KEY_ESC || res == -ERRDISPLAYTOOSMALL)
break;
if (!item_activate_selected())
continue;
@@ -617,7 +616,10 @@ static void conf(struct menu *menu)
submenu = item_data();
active_menu = item_data();
sym = submenu->sym;
if (submenu)
sym = submenu->sym;
else
sym = NULL;
switch (res) {
case 0:
@@ -683,7 +685,7 @@ static void conf(struct menu *menu)
static void show_textbox(const char *title, const char *text, int r, int c)
{
reset_dialog();
dialog_textbox(title, text, r ? r : rows, c ? c : cols);
dialog_textbox(title, text, r, c);
}
static void show_helptext(const char *title, const char *text)
@@ -756,6 +758,8 @@ static void conf_choice(struct menu *menu)
break;
case KEY_ESC:
return;
case -ERRDISPLAYTOOSMALL:
return;
}
}
}