History

kconfig: Remove support for lxdialog --checklist

Remove support for lxdialog --checklist The checklist lxdialog functionality is not used by menuconfig (only the radiolist variant is used) and supporting it would significantly complicate the forthcoming liblxdialog API.

Petr Baudis committed 20 years ago

Commit 00213b11 parent 352dd1d3 files · +17 −51Browse files

Showing the changes to scripts (3 of 3 files). Show all

Unified · Split

3 files
  1. scripts/kconfig/lxdialog/checklist.c +14 −33
  2. scripts/kconfig/lxdialog/dialog.h +1 −8
  3. scripts/kconfig/lxdialog/lxdialog.c +2 −10
scripts/kconfig/lxdialog/checklist.c+14−33
@@ -23,7 +23,7 @@ · 22 unmodified lines
23 23
24#include "dialog.h"24#include "dialog.h"
25 25
26static int list_width, check_x, item_x, checkflag;26static int list_width, check_x, item_x;
27 27
28/*28/*
29 * Print list item29 * Print list item
@@ -41,10 +41,7 @@ static void print_item(WINDOW * win, const char *item, int status, int choice, · 11 unmodified lines
41 41
42 wmove(win, choice, check_x);42 wmove(win, choice, check_x);
43 wattrset(win, selected ? check_selected_attr : check_attr);43 wattrset(win, selected ? check_selected_attr : check_attr);
44 if (checkflag == FLAG_CHECK)44 wprintw(win, "(%c)", status ? 'X' : ' ');
45 wprintw(win, "[%c]", status ? 'X' : ' ');
46 else
47 wprintw(win, "(%c)", status ? 'X' : ' ');
48 45
49 wattrset(win, selected ? tag_selected_attr : tag_attr);46 wattrset(win, selected ? tag_selected_attr : tag_attr);
50 mvwaddch(win, choice, item_x, item[0]);47 mvwaddch(win, choice, item_x, item[0]);
@@ -109,18 +106,16 @@ static void print_buttons(WINDOW * dialog, int height, int width, int selected) · 58 unmodified lines
109 106
110/*107/*
111 * Display a dialog box with a list of options that can be turned on or off108 * Display a dialog box with a list of options that can be turned on or off
112 * The `flag' parameter is used to select between radiolist and checklist.109 * in the style of radiolist (only one option turned on at a time).
113 */110 */
114int dialog_checklist(const char *title, const char *prompt, int height,111int dialog_checklist(const char *title, const char *prompt, int height,
115 int width, int list_height, int item_no,112 int width, int list_height, int item_no,
116 const char *const *items, int flag)113 const char *const *items)
117{114{
118 int i, x, y, box_x, box_y;115 int i, x, y, box_x, box_y;
119 int key = 0, button = 0, choice = 0, scroll = 0, max_choice, *status;116 int key = 0, button = 0, choice = 0, scroll = 0, max_choice, *status;
120 WINDOW *dialog, *list;117 WINDOW *dialog, *list;
121 118
122 checkflag = flag;
123
124 /* Allocate space for storing item on/off status */119 /* Allocate space for storing item on/off status */
125 if ((status = malloc(sizeof(int) * item_no)) == NULL) {120 if ((status = malloc(sizeof(int) * item_no)) == NULL) {
126 endwin();121 endwin();
@@ -303,34 +298,20 @@ int dialog_checklist(const char *title, const char *prompt, int height, · 176 unmodified lines
303 case ' ':298 case ' ':
304 case '\n':299 case '\n':
305 if (!button) {300 if (!button) {
306 if (flag == FLAG_CHECK) {301 if (!status[scroll + choice]) {
307 status[scroll + choice] = !status[scroll + choice];302 for (i = 0; i < item_no; i++)
308 wmove(list, choice, check_x);303 status[i] = 0;
309 wattrset(list, check_selected_attr);304 status[scroll + choice] = 1;
310 wprintw(list, "[%c]", status[scroll + choice] ? 'X' : ' ');305 for (i = 0; i < max_choice; i++)
311 } else {306 print_item(list, items[(scroll + i) * 3 + 1],
312 if (!status[scroll + choice]) {307 status[scroll + i], i, i == choice);
313 for (i = 0; i < item_no; i++)
314 status[i] = 0;
315 status[scroll + choice] = 1;
316 for (i = 0; i < max_choice; i++)
317 print_item(list, items[(scroll + i) * 3 + 1],
318 status[scroll + i], i, i == choice);
319 }
320 }308 }
321 wnoutrefresh(list);309 wnoutrefresh(list);
322 wrefresh(dialog);310 wrefresh(dialog);
323 311
324 for (i = 0; i < item_no; i++) {312 for (i = 0; i < item_no; i++)
325 if (status[i]) {313 if (status[i])
326 if (flag == FLAG_CHECK) {314 fprintf(stderr, "%s", items[i * 3]);
327 fprintf(stderr, "\"%s\" ", items[i * 3]);
328 } else {
329 fprintf(stderr, "%s", items[i * 3]);
330 }
331
332 }
333 }
334 } else315 } else
335 fprintf(stderr, "%s", items[(scroll + choice) * 3]);316 fprintf(stderr, "%s", items[(scroll + choice) * 3]);
336 delwin(dialog);317 delwin(dialog);
scripts/kconfig/lxdialog/dialog.h+1−8
@@ -160,7 +160,7 @@ int dialog_menu(const char *title, const char *prompt, int height, int width, · 159 unmodified lines
160 const char *const *items);160 const char *const *items);
161int dialog_checklist(const char *title, const char *prompt, int height,161int dialog_checklist(const char *title, const char *prompt, int height,
162 int width, int list_height, int item_no,162 int width, int list_height, int item_no,
163 const char *const *items, int flag);163 const char *const *items);
164extern char dialog_input_result[];164extern char dialog_input_result[];
165int dialog_inputbox(const char *title, const char *prompt, int height,165int dialog_inputbox(const char *title, const char *prompt, int height,
166 int width, const char *init);166 int width, const char *init);
@@ -175,10 +175,3 @@ int dialog_inputbox(const char *title, const char *prompt, int height, · 8 unmodified lines
175 * -- uppercase chars are used to invoke the button (M_EVENT + 'O')175 * -- uppercase chars are used to invoke the button (M_EVENT + 'O')
176 */176 */
177#define M_EVENT (KEY_MAX+1)177#define M_EVENT (KEY_MAX+1)
178
179/*
180 * The `flag' parameter in checklist is used to select between
181 * radiolist and checklist
182 */
183#define FLAG_CHECK 1
184#define FLAG_RADIO 0
scripts/kconfig/lxdialog/lxdialog.c+2−10
@@ -31,12 +31,11 @@ struct Mode { · 30 unmodified lines
31 jumperFn *jumper;31 jumperFn *jumper;
32};32};
33 33
34jumperFn j_menu, j_checklist, j_radiolist, j_yesno, j_textbox, j_inputbox;34jumperFn j_menu, j_radiolist, j_yesno, j_textbox, j_inputbox;
35jumperFn j_msgbox, j_infobox;35jumperFn j_msgbox, j_infobox;
36 36
37static struct Mode modes[] = {37static struct Mode modes[] = {
38 {"--menu", 9, 0, 3, j_menu},38 {"--menu", 9, 0, 3, j_menu},
39 {"--checklist", 9, 0, 3, j_checklist},
40 {"--radiolist", 9, 0, 3, j_radiolist},39 {"--radiolist", 9, 0, 3, j_radiolist},
41 {"--yesno", 5, 5, 1, j_yesno},40 {"--yesno", 5, 5, 1, j_yesno},
42 {"--textbox", 5, 5, 1, j_textbox},41 {"--textbox", 5, 5, 1, j_textbox},
@@ -151,7 +150,6 @@ static void Usage(const char *name) · 108 unmodified lines
151\nBox options:\150\nBox options:\
152\n\151\n\
153\n --menu <text> <height> <width> <menu height> <tag1> <item1>...\152\n --menu <text> <height> <width> <menu height> <tag1> <item1>...\
154\n --checklist <text> <height> <width> <list height> <tag1> <item1> <status1>...\
155\n --radiolist <text> <height> <width> <list height> <tag1> <item1> <status1>...\153\n --radiolist <text> <height> <width> <list height> <tag1> <item1> <status1>...\
156\n --textbox <file> <height> <width>\154\n --textbox <file> <height> <width>\
157\n --inputbox <text> <height> <width> [<init>]\155\n --inputbox <text> <height> <width> [<init>]\
@@ -170,16 +168,10 @@ int j_menu(const char *t, int ac, const char *const *av) · 12 unmodified lines
170 atoi(av[5]), av[6], (ac - 6) / 2, av + 7);168 atoi(av[5]), av[6], (ac - 6) / 2, av + 7);
171}169}
172 170
173int j_checklist(const char *t, int ac, const char *const *av)
174{
175 return dialog_checklist(t, av[2], atoi(av[3]), atoi(av[4]),
176 atoi(av[5]), (ac - 6) / 3, av + 6, FLAG_CHECK);
177}
178
179int j_radiolist(const char *t, int ac, const char *const *av)171int j_radiolist(const char *t, int ac, const char *const *av)
180{172{
181 return dialog_checklist(t, av[2], atoi(av[3]), atoi(av[4]),173 return dialog_checklist(t, av[2], atoi(av[3]), atoi(av[4]),
182 atoi(av[5]), (ac - 6) / 3, av + 6, FLAG_RADIO);174 atoi(av[5]), (ac - 6) / 3, av + 6);
183}175}
184 176
185int j_textbox(const char *t, int ac, const char *const *av)177int j_textbox(const char *t, int ac, const char *const *av)

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t