From: Sam Ravnborg <sam@ravnborg.org>
To: Roman Zippel <zippel@linux-m68k.org>, linux-kernel@vger.kernel.org
Subject: [4/7] kconfig: Left aling menu items in menuconfig
Date: Mon, 21 Nov 2005 23:39:53 +0100 [thread overview]
Message-ID: <20051121223953.GE19157@mars.ravnborg.org> (raw)
In-Reply-To: <20051121223702.GA19157@mars.ravnborg.org>
kconfig: Left aling menu items in menuconfig
Keeping menu lines on a fixed position creates less visual
noise when navigating the menus.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
diff --git a/scripts/lxdialog/menubox.c b/scripts/lxdialog/menubox.c
index ebfe6a3..89fcf41 100644
--- a/scripts/lxdialog/menubox.c
+++ b/scripts/lxdialog/menubox.c
@@ -56,11 +56,12 @@
* fscanf would read in 'scroll', and eventually that value would get used.
*/
#include "dialog.h"
-static int menu_width, item_x;
+#define ITEM_IDENT 4 /* Indent of menu entries. Fixed for all menus */
+static int menu_width;
/*
* Print menu item
*/
static void print_item(WINDOW * win, const char *item, int choice,
@@ -84,17 +85,17 @@ static void print_item(WINDOW * win, con
}
#else
wclrtoeol(win);
#endif
wattrset(win, selected ? item_selected_attr : item_attr);
- mvwaddstr(win, choice, item_x, menu_item);
+ mvwaddstr(win, choice, ITEM_IDENT, menu_item);
if (hotkey) {
wattrset(win, selected ? tag_key_selected_attr : tag_key_attr);
- mvwaddch(win, choice, item_x + j, menu_item[j]);
+ mvwaddch(win, choice, ITEM_IDENT + j, menu_item[j]);
}
if (selected) {
- wmove(win, choice, item_x + 1);
+ wmove(win, choice, ITEM_IDENT + 1);
wrefresh(win);
}
free(menu_item);
}
@@ -205,23 +206,14 @@ int dialog_menu(const char *title, const
/* draw a box around the menu items */
draw_box(dialog, box_y, box_x, menu_height + 2, menu_width + 2,
menubox_border_attr, menubox_attr);
- /*
- * Find length of longest item in order to center menu.
- * Set 'choice' to default item.
- */
- item_x = 0;
- for (i = 0; i < item_no; i++) {
- item_x =
- MAX(item_x, MIN(menu_width, strlen(items[i * 2 + 1]) + 2));
+ /* Set choice to default item */
+ for (i = 0; i < item_no; i++)
if (strcmp(current, items[i * 2]) == 0)
choice = i;
- }
-
- item_x = (menu_width - item_x) / 2;
/* get the scroll info from the temp file */
if ((f = fopen("lxdialog.scrltmp", "r")) != NULL) {
if ((fscanf(f, "%d\n", &scroll) == 1) && (scroll <= choice) &&
(scroll + max_choice > choice) && (scroll >= 0) &&
@@ -252,14 +244,14 @@ int dialog_menu(const char *title, const
}
wnoutrefresh(menu);
print_arrows(dialog, item_no, scroll,
- box_y, box_x + item_x + 1, menu_height);
+ box_y, box_x + ITEM_IDENT + 1, menu_height);
print_buttons(dialog, height, width, 0);
- wmove(menu, choice, item_x + 1);
+ wmove(menu, choice, ITEM_IDENT + 1);
wrefresh(menu);
while (key != ESC) {
key = wgetch(menu);
@@ -284,11 +276,11 @@ int dialog_menu(const char *title, const
if (i < max_choice ||
key == KEY_UP || key == KEY_DOWN ||
key == '-' || key == '+' ||
key == KEY_PPAGE || key == KEY_NPAGE) {
-
+ /* Remove highligt of current item */
print_item(menu, items[(scroll + choice) * 2 + 1],
choice, FALSE,
(items[(scroll + choice) * 2][0] != ':'));
if (key == KEY_UP || key == '-') {
@@ -362,11 +354,11 @@ int dialog_menu(const char *title, const
print_item(menu, items[(scroll + choice) * 2 + 1],
choice, TRUE, (items[(scroll + choice) * 2][0] != ':'));
print_arrows(dialog, item_no, scroll,
- box_y, box_x + item_x + 1, menu_height);
+ box_y, box_x + ITEM_IDENT + 1, menu_height);
wnoutrefresh(dialog);
wrefresh(menu);
continue; /* wait for another key press */
next prev parent reply other threads:[~2005-11-21 22:39 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-11-21 22:37 [PATCH 0/7] kconfig/menuconfig Sam Ravnborg
2005-11-21 22:38 ` [1/7] kconfig: fixup after Lindent Sam Ravnborg
2005-11-21 22:38 ` [2/7] kconfig: lxdialog is now sparse clean Sam Ravnborg
2005-11-21 23:44 ` Al Viro
2005-11-21 22:39 ` [3/7] kconfig: Add print_title helper in lxdialog Sam Ravnborg
2005-11-21 22:39 ` Sam Ravnborg [this message]
2005-11-21 22:40 ` [5/7] kconfig: Fix indention when using menuconfig in text-onle consoles Sam Ravnborg
2005-11-21 22:40 ` [6/7] kconfig: make lxdialog/menubox.c more readable Sam Ravnborg
2005-11-21 22:41 ` [7/7] kconfig: truncate too long menu lines in menuconfig Sam Ravnborg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20051121223953.GE19157@mars.ravnborg.org \
--to=sam@ravnborg.org \
--cc=linux-kernel@vger.kernel.org \
--cc=zippel@linux-m68k.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®