X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=lxdialog%2Futil.c;h=b3a7af9d2ddaa1ea9057c2dbf958b155007e8f99;hb=b5277240aa78e2515cc4f32ca4b582160b2ee8d8;hp=9d181aef470dc937e7ad7c3b1cd51a0031c99744;hpb=6ee1e193fd896ab9a4729fde14f009d9ce629815;p=vlc diff --git a/lxdialog/util.c b/lxdialog/util.c index 9d181aef47..b3a7af9d2d 100644 --- a/lxdialog/util.c +++ b/lxdialog/util.c @@ -29,40 +29,40 @@ const char *backtitle = NULL; const char *dialog_result; -/* +/* * Attribute values, default is for mono display */ chtype attributes[] = { - A_NORMAL, /* screen_attr */ - A_NORMAL, /* shadow_attr */ - A_NORMAL, /* dialog_attr */ - A_BOLD, /* title_attr */ - A_NORMAL, /* border_attr */ - A_REVERSE, /* button_active_attr */ - A_DIM, /* button_inactive_attr */ - A_REVERSE, /* button_key_active_attr */ - A_BOLD, /* button_key_inactive_attr */ - A_REVERSE, /* button_label_active_attr */ - A_NORMAL, /* button_label_inactive_attr */ - A_NORMAL, /* inputbox_attr */ - A_NORMAL, /* inputbox_border_attr */ - A_NORMAL, /* searchbox_attr */ - A_BOLD, /* searchbox_title_attr */ - A_NORMAL, /* searchbox_border_attr */ - A_BOLD, /* position_indicator_attr */ - A_NORMAL, /* menubox_attr */ - A_NORMAL, /* menubox_border_attr */ - A_NORMAL, /* item_attr */ - A_REVERSE, /* item_selected_attr */ - A_BOLD, /* tag_attr */ - A_REVERSE, /* tag_selected_attr */ - A_BOLD, /* tag_key_attr */ - A_REVERSE, /* tag_key_selected_attr */ - A_BOLD, /* check_attr */ - A_REVERSE, /* check_selected_attr */ - A_BOLD, /* uarrow_attr */ - A_BOLD /* darrow_attr */ + A_NORMAL, /* screen_attr */ + A_NORMAL, /* shadow_attr */ + A_NORMAL, /* dialog_attr */ + A_BOLD, /* title_attr */ + A_NORMAL, /* border_attr */ + A_REVERSE, /* button_active_attr */ + A_DIM, /* button_inactive_attr */ + A_REVERSE, /* button_key_active_attr */ + A_BOLD, /* button_key_inactive_attr */ + A_REVERSE, /* button_label_active_attr */ + A_NORMAL, /* button_label_inactive_attr */ + A_NORMAL, /* inputbox_attr */ + A_NORMAL, /* inputbox_border_attr */ + A_NORMAL, /* searchbox_attr */ + A_BOLD, /* searchbox_title_attr */ + A_NORMAL, /* searchbox_border_attr */ + A_BOLD, /* position_indicator_attr */ + A_NORMAL, /* menubox_attr */ + A_NORMAL, /* menubox_border_attr */ + A_NORMAL, /* item_attr */ + A_REVERSE, /* item_selected_attr */ + A_BOLD, /* tag_attr */ + A_REVERSE, /* tag_selected_attr */ + A_BOLD, /* tag_key_attr */ + A_REVERSE, /* tag_key_selected_attr */ + A_BOLD, /* check_attr */ + A_REVERSE, /* check_selected_attr */ + A_BOLD, /* uarrow_attr */ + A_BOLD /* darrow_attr */ }; @@ -103,7 +103,7 @@ int color_table[][3] = {CHECK_SELECTED_FG, CHECK_SELECTED_BG, CHECK_SELECTED_HL}, {UARROW_FG, UARROW_BG, UARROW_HL}, {DARROW_FG, DARROW_BG, DARROW_HL}, -}; /* color_table */ +}; /* color_table */ /* * Set window to attribute 'attr' @@ -115,9 +115,9 @@ attr_clear (WINDOW * win, int height, int width, chtype attr) wattrset (win, attr); for (i = 0; i < height; i++) { - wmove (win, i, 0); - for (j = 0; j < width; j++) - waddch (win, ' '); + wmove (win, i, 0); + for (j = 0; j < width; j++) + waddch (win, ' '); } touchwin (win); } @@ -144,14 +144,14 @@ void dialog_clear (void) void init_dialog (void) { - initscr (); /* Init curses */ + initscr (); /* Init curses */ keypad (stdscr, TRUE); cbreak (); noecho (); - if (use_colors) /* Set up colors */ - color_setup (); + if (use_colors) /* Set up colors */ + color_setup (); dialog_clear (); @@ -165,16 +165,16 @@ color_setup (void) { int i; - if (has_colors ()) { /* Terminal supports color? */ - start_color (); + if (has_colors ()) { /* Terminal supports color? */ + start_color (); - /* Initialize color pairs */ - for (i = 0; i < ATTRIBUTE_COUNT; i++) - init_pair (i + 1, color_table[i][0], color_table[i][1]); + /* Initialize color pairs */ + for (i = 0; i < ATTRIBUTE_COUNT; i++) + init_pair (i + 1, color_table[i][0], color_table[i][1]); - /* Setup color attributes */ - for (i = 0; i < ATTRIBUTE_COUNT; i++) - attributes[i] = C_ATTR (color_table[i][2], i + 1); + /* Setup color attributes */ + for (i = 0; i < ATTRIBUTE_COUNT; i++) + attributes[i] = C_ATTR (color_table[i][2], i + 1); } } @@ -204,50 +204,50 @@ print_autowrap (WINDOW * win, const char *prompt, int width, int y, int x) strcpy (tempstr, prompt); prompt_len = strlen(tempstr); - + /* * Remove newlines */ for(i=0; i room || - (newl && wlen < 4 && sp && wlen+1+strlen(sp) > room - && (!(sp2 = index(sp, ' ')) || wlen+1+(sp2-sp) > room))) { - cur_y++; - cur_x = x; - } - wmove (win, cur_y, cur_x); - waddstr (win, word); - getyx (win, cur_y, cur_x); - cur_x++; - if (sp && *sp == ' ') { - cur_x++; /* double space */ - while (*++sp == ' '); - newl = 1; - } else - newl = 0; - word = sp; - } + cur_x = x; + cur_y = y; + newl = 1; + word = tempstr; + while (word && *word) { + sp = index(word, ' '); + if (sp) + *sp++ = 0; + + /* Wrap to next line if either the word does not fit, + or it is the first word of a new sentence, and it is + short, and the next word does not fit. */ + room = width - cur_x; + wlen = strlen(word); + if (wlen > room || + (newl && wlen < 4 && sp && wlen+1+strlen(sp) > room + && (!(sp2 = index(sp, ' ')) || wlen+1+(sp2-sp) > room))) { + cur_y++; + cur_x = x; + } + wmove (win, cur_y, cur_x); + waddstr (win, word); + getyx (win, cur_y, cur_x); + cur_x++; + if (sp && *sp == ' ') { + cur_x++; /* double space */ + while (*++sp == ' '); + newl = 1; + } else + newl = 0; + word = sp; + } } } @@ -265,14 +265,14 @@ print_button (WINDOW * win, const char *label, int y, int x, int selected) temp = strspn (label, " "); label += temp; wattrset (win, selected ? button_label_active_attr - : button_label_inactive_attr); + : button_label_inactive_attr); for (i = 0; i < temp; i++) - waddch (win, ' '); + waddch (win, ' '); wattrset (win, selected ? button_key_active_attr - : button_key_inactive_attr); + : button_key_inactive_attr); waddch (win, label[0]); wattrset (win, selected ? button_label_active_attr - : button_label_inactive_attr); + : button_label_inactive_attr); waddstr (win, (char *)label + 1); wattrset (win, selected ? button_active_attr : button_inactive_attr); waddstr (win, ">"); @@ -284,32 +284,32 @@ print_button (WINDOW * win, const char *label, int y, int x, int selected) */ void draw_box (WINDOW * win, int y, int x, int height, int width, - chtype box, chtype border) + chtype box, chtype border) { int i, j; wattrset (win, 0); for (i = 0; i < height; i++) { - wmove (win, y + i, x); - for (j = 0; j < width; j++) - if (!i && !j) - waddch (win, border | ACS_ULCORNER); - else if (i == height - 1 && !j) - waddch (win, border | ACS_LLCORNER); - else if (!i && j == width - 1) - waddch (win, box | ACS_URCORNER); - else if (i == height - 1 && j == width - 1) - waddch (win, box | ACS_LRCORNER); - else if (!i) - waddch (win, border | ACS_HLINE); - else if (i == height - 1) - waddch (win, box | ACS_HLINE); - else if (!j) - waddch (win, border | ACS_VLINE); - else if (j == width - 1) - waddch (win, box | ACS_VLINE); - else - waddch (win, box | ' '); + wmove (win, y + i, x); + for (j = 0; j < width; j++) + if (!i && !j) + waddch (win, border | ACS_ULCORNER); + else if (i == height - 1 && !j) + waddch (win, border | ACS_LLCORNER); + else if (!i && j == width - 1) + waddch (win, box | ACS_URCORNER); + else if (i == height - 1 && j == width - 1) + waddch (win, box | ACS_LRCORNER); + else if (!i) + waddch (win, border | ACS_HLINE); + else if (i == height - 1) + waddch (win, box | ACS_HLINE); + else if (!j) + waddch (win, border | ACS_VLINE); + else if (j == width - 1) + waddch (win, box | ACS_VLINE); + else + waddch (win, box | ' '); } } @@ -322,17 +322,17 @@ draw_shadow (WINDOW * win, int y, int x, int height, int width) { int i; - if (has_colors ()) { /* Whether terminal supports color? */ - wattrset (win, shadow_attr); - wmove (win, y + height, x + 2); - for (i = 0; i < width; i++) - waddch (win, winch (win) & A_CHARTEXT); - for (i = y + 1; i < y + height + 1; i++) { - wmove (win, i, x + width); - waddch (win, winch (win) & A_CHARTEXT); - waddch (win, winch (win) & A_CHARTEXT); - } - wnoutrefresh (win); + if (has_colors ()) { /* Whether terminal supports color? */ + wattrset (win, shadow_attr); + wmove (win, y + height, x + 2); + for (i = 0; i < width; i++) + waddch (win, winch (win) & A_CHARTEXT); + for (i = y + 1; i < y + height + 1; i++) { + wmove (win, i, x + width); + waddch (win, winch (win) & A_CHARTEXT); + waddch (win, winch (win) & A_CHARTEXT); + } + wnoutrefresh (win); } } @@ -342,18 +342,18 @@ draw_shadow (WINDOW * win, int y, int x, int height, int width) int first_alpha(const char *string, const char *exempt) { - int i, in_paren=0, c; + int i, in_paren=0, c; - for (i = 0; i < strlen(string); i++) { - c = tolower(string[i]); + for (i = 0; i < strlen(string); i++) { + c = tolower(string[i]); - if (strchr("<[(", c)) ++in_paren; - if (strchr(">])", c)) --in_paren; + if (strchr("<[(", c)) ++in_paren; + if (strchr(">])", c)) --in_paren; - if ((! in_paren) && isalpha(c) && - strchr(exempt, c) == 0) - return i; - } + if ((! in_paren) && isalpha(c) && + strchr(exempt, c) == 0) + return i; + } - return 0; + return 0; }