diff options
| author | Sam Ravnborg <sam@mars.ravnborg.org> | 2005-11-19 17:38:06 -0500 |
|---|---|---|
| committer | Sam Ravnborg <sam@mars.ravnborg.org> | 2005-11-19 17:38:06 -0500 |
| commit | fa7009d5b59b8acd8071f7b3057d36eeeaf08146 (patch) | |
| tree | ba88e9f448aed4c047d8ce311ba44c8731ee96c2 /scripts/lxdialog | |
| parent | a06104af7dcf2f5bafaf18f373c8b2554cbfe014 (diff) | |
kconfig: Add print_title helper in lxdialog
Simplify check for long title and use a helper function in util.c
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Diffstat (limited to 'scripts/lxdialog')
| -rw-r--r-- | scripts/lxdialog/checklist.c | 15 | ||||
| -rw-r--r-- | scripts/lxdialog/dialog.h | 1 | ||||
| -rw-r--r-- | scripts/lxdialog/inputbox.c | 15 | ||||
| -rw-r--r-- | scripts/lxdialog/menubox.c | 15 | ||||
| -rw-r--r-- | scripts/lxdialog/msgbox.c | 14 | ||||
| -rw-r--r-- | scripts/lxdialog/textbox.c | 14 | ||||
| -rw-r--r-- | scripts/lxdialog/util.c | 14 | ||||
| -rw-r--r-- | scripts/lxdialog/yesno.c | 15 |
8 files changed, 21 insertions, 82 deletions
diff --git a/scripts/lxdialog/checklist.c b/scripts/lxdialog/checklist.c index ae40a2b3b885..3fb681fb9632 100644 --- a/scripts/lxdialog/checklist.c +++ b/scripts/lxdialog/checklist.c | |||
| @@ -158,20 +158,7 @@ int dialog_checklist(const char *title, const char *prompt, int height, | |||
| 158 | wattrset(dialog, dialog_attr); | 158 | wattrset(dialog, dialog_attr); |
| 159 | waddch(dialog, ACS_RTEE); | 159 | waddch(dialog, ACS_RTEE); |
| 160 | 160 | ||
| 161 | if (title != NULL && strlen(title) >= width - 2) { | 161 | print_title(dialog, title, width); |
| 162 | /* truncate long title -- mec */ | ||
| 163 | char *title2 = malloc(width - 2 + 1); | ||
| 164 | memcpy(title2, title, width - 2); | ||
| 165 | title2[width - 2] = '\0'; | ||
| 166 | title = title2; | ||
| 167 | } | ||
| 168 | |||
| 169 | if (title != NULL) { | ||
| 170 | wattrset(dialog, title_attr); | ||
| 171 | mvwaddch(dialog, 0, (width - strlen(title)) / 2 - 1, ' '); | ||
| 172 | waddstr(dialog, (char *)title); | ||
| 173 | waddch(dialog, ' '); | ||
| 174 | } | ||
| 175 | 162 | ||
| 176 | wattrset(dialog, dialog_attr); | 163 | wattrset(dialog, dialog_attr); |
| 177 | print_autowrap(dialog, prompt, width - 2, 1, 3); | 164 | print_autowrap(dialog, prompt, width - 2, 1, 3); |
diff --git a/scripts/lxdialog/dialog.h b/scripts/lxdialog/dialog.h index 3cf3d3526ef0..f882204cb3c2 100644 --- a/scripts/lxdialog/dialog.h +++ b/scripts/lxdialog/dialog.h | |||
| @@ -145,6 +145,7 @@ void dialog_clear(void); | |||
| 145 | void color_setup(void); | 145 | void color_setup(void); |
| 146 | void print_autowrap(WINDOW * win, const char *prompt, int width, int y, int x); | 146 | void print_autowrap(WINDOW * win, const char *prompt, int width, int y, int x); |
| 147 | void print_button(WINDOW * win, const char *label, int y, int x, int selected); | 147 | void print_button(WINDOW * win, const char *label, int y, int x, int selected); |
| 148 | void print_title(WINDOW *dialog, const char *title, int width); | ||
| 148 | void draw_box(WINDOW * win, int y, int x, int height, int width, chtype box, | 149 | void draw_box(WINDOW * win, int y, int x, int height, int width, chtype box, |
| 149 | chtype border); | 150 | chtype border); |
| 150 | void draw_shadow(WINDOW * win, int y, int x, int height, int width); | 151 | void draw_shadow(WINDOW * win, int y, int x, int height, int width); |
diff --git a/scripts/lxdialog/inputbox.c b/scripts/lxdialog/inputbox.c index bc135c7093d9..779503726b0a 100644 --- a/scripts/lxdialog/inputbox.c +++ b/scripts/lxdialog/inputbox.c | |||
| @@ -66,20 +66,7 @@ int dialog_inputbox(const char *title, const char *prompt, int height, int width | |||
| 66 | wattrset(dialog, dialog_attr); | 66 | wattrset(dialog, dialog_attr); |
| 67 | waddch(dialog, ACS_RTEE); | 67 | waddch(dialog, ACS_RTEE); |
| 68 | 68 | ||
| 69 | if (title != NULL && strlen(title) >= width - 2) { | 69 | print_title(dialog, title, width); |
| 70 | /* truncate long title -- mec */ | ||
| 71 | char *title2 = malloc(width - 2 + 1); | ||
| 72 | memcpy(title2, title, width - 2); | ||
| 73 | title2[width - 2] = '\0'; | ||
| 74 | title = title2; | ||
| 75 | } | ||
| 76 | |||
| 77 | if (title != NULL) { | ||
| 78 | wattrset(dialog, title_attr); | ||
| 79 | mvwaddch(dialog, 0, (width - strlen(title)) / 2 - 1, ' '); | ||
| 80 | waddstr(dialog, (char *)title); | ||
| 81 | waddch(dialog, ' '); | ||
| 82 | } | ||
| 83 | 70 | ||
| 84 | wattrset(dialog, dialog_attr); | 71 | wattrset(dialog, dialog_attr); |
| 85 | print_autowrap(dialog, prompt, width - 2, 1, 3); | 72 | print_autowrap(dialog, prompt, width - 2, 1, 3); |
diff --git a/scripts/lxdialog/menubox.c b/scripts/lxdialog/menubox.c index ff3a6179833d..ebfe6a3c8ccc 100644 --- a/scripts/lxdialog/menubox.c +++ b/scripts/lxdialog/menubox.c | |||
| @@ -189,20 +189,7 @@ int dialog_menu(const char *title, const char *prompt, int height, int width, | |||
| 189 | wbkgdset(dialog, dialog_attr & A_COLOR); | 189 | wbkgdset(dialog, dialog_attr & A_COLOR); |
| 190 | waddch(dialog, ACS_RTEE); | 190 | waddch(dialog, ACS_RTEE); |
| 191 | 191 | ||
| 192 | if (title != NULL && strlen(title) >= width - 2) { | 192 | print_title(dialog, title, width); |
| 193 | /* truncate long title -- mec */ | ||
| 194 | char *title2 = malloc(width - 2 + 1); | ||
| 195 | memcpy(title2, title, width - 2); | ||
| 196 | title2[width - 2] = '\0'; | ||
| 197 | title = title2; | ||
| 198 | } | ||
| 199 | |||
| 200 | if (title != NULL) { | ||
| 201 | wattrset(dialog, title_attr); | ||
| 202 | mvwaddch(dialog, 0, (width - strlen(title)) / 2 - 1, ' '); | ||
| 203 | waddstr(dialog, (char *)title); | ||
| 204 | waddch(dialog, ' '); | ||
| 205 | } | ||
| 206 | 193 | ||
| 207 | wattrset(dialog, dialog_attr); | 194 | wattrset(dialog, dialog_attr); |
| 208 | print_autowrap(dialog, prompt, width - 2, 1, 3); | 195 | print_autowrap(dialog, prompt, width - 2, 1, 3); |
diff --git a/scripts/lxdialog/msgbox.c b/scripts/lxdialog/msgbox.c index b39405717da1..7323f5471f69 100644 --- a/scripts/lxdialog/msgbox.c +++ b/scripts/lxdialog/msgbox.c | |||
| @@ -42,20 +42,8 @@ int dialog_msgbox(const char *title, const char *prompt, int height, int width, | |||
| 42 | 42 | ||
| 43 | draw_box(dialog, 0, 0, height, width, dialog_attr, border_attr); | 43 | draw_box(dialog, 0, 0, height, width, dialog_attr, border_attr); |
| 44 | 44 | ||
| 45 | if (title != NULL && strlen(title) >= width - 2) { | 45 | print_title(dialog, title, width); |
| 46 | /* truncate long title -- mec */ | ||
| 47 | char *title2 = malloc(width - 2 + 1); | ||
| 48 | memcpy(title2, title, width - 2); | ||
| 49 | title2[width - 2] = '\0'; | ||
| 50 | title = title2; | ||
| 51 | } | ||
| 52 | 46 | ||
| 53 | if (title != NULL) { | ||
| 54 | wattrset(dialog, title_attr); | ||
| 55 | mvwaddch(dialog, 0, (width - strlen(title)) / 2 - 1, ' '); | ||
| 56 | waddstr(dialog, (char *)title); | ||
| 57 | waddch(dialog, ' '); | ||
| 58 | } | ||
| 59 | wattrset(dialog, dialog_attr); | 47 | wattrset(dialog, dialog_attr); |
| 60 | print_autowrap(dialog, prompt, width - 2, 1, 2); | 48 | print_autowrap(dialog, prompt, width - 2, 1, 2); |
| 61 | 49 | ||
diff --git a/scripts/lxdialog/textbox.c b/scripts/lxdialog/textbox.c index fa8d92ea02b6..77848bb8e07f 100644 --- a/scripts/lxdialog/textbox.c +++ b/scripts/lxdialog/textbox.c | |||
| @@ -103,20 +103,8 @@ int dialog_textbox(const char *title, const char *file, int height, int width) | |||
| 103 | wbkgdset(dialog, dialog_attr & A_COLOR); | 103 | wbkgdset(dialog, dialog_attr & A_COLOR); |
| 104 | waddch(dialog, ACS_RTEE); | 104 | waddch(dialog, ACS_RTEE); |
| 105 | 105 | ||
| 106 | if (title != NULL && strlen(title) >= width - 2) { | 106 | print_title(dialog, title, width); |
| 107 | /* truncate long title -- mec */ | ||
| 108 | char *title2 = malloc(width - 2 + 1); | ||
| 109 | memcpy(title2, title, width - 2); | ||
| 110 | title2[width - 2] = '\0'; | ||
| 111 | title = title2; | ||
| 112 | } | ||
| 113 | 107 | ||
| 114 | if (title != NULL) { | ||
| 115 | wattrset(dialog, title_attr); | ||
| 116 | mvwaddch(dialog, 0, (width - strlen(title)) / 2 - 1, ' '); | ||
| 117 | waddstr(dialog, (char *)title); | ||
| 118 | waddch(dialog, ' '); | ||
| 119 | } | ||
| 120 | print_button(dialog, " Exit ", height - 2, width / 2 - 4, TRUE); | 108 | print_button(dialog, " Exit ", height - 2, width / 2 - 4, TRUE); |
| 121 | wnoutrefresh(dialog); | 109 | wnoutrefresh(dialog); |
| 122 | getyx(dialog, cur_y, cur_x); /* Save cursor position */ | 110 | getyx(dialog, cur_y, cur_x); /* Save cursor position */ |
diff --git a/scripts/lxdialog/util.c b/scripts/lxdialog/util.c index ce411474d729..f82cebb9ff06 100644 --- a/scripts/lxdialog/util.c +++ b/scripts/lxdialog/util.c | |||
| @@ -177,6 +177,20 @@ void end_dialog(void) | |||
| 177 | endwin(); | 177 | endwin(); |
| 178 | } | 178 | } |
| 179 | 179 | ||
| 180 | /* Print the title of the dialog. Center the title and truncate | ||
| 181 | * tile if wider than dialog (- 2 chars). | ||
| 182 | **/ | ||
| 183 | void print_title(WINDOW *dialog, const char *title, int width) | ||
| 184 | { | ||
| 185 | if (title) { | ||
| 186 | int tlen = MIN(width - 2, strlen(title)); | ||
| 187 | wattrset(dialog, title_attr); | ||
| 188 | mvwaddch(dialog, 0, (width - tlen) / 2 - 1, ' '); | ||
| 189 | mvwaddnstr(dialog, 0, (width - tlen)/2, title, tlen); | ||
| 190 | waddch(dialog, ' '); | ||
| 191 | } | ||
| 192 | } | ||
| 193 | |||
| 180 | /* | 194 | /* |
| 181 | * Print a string of text in a window, automatically wrap around to the | 195 | * Print a string of text in a window, automatically wrap around to the |
| 182 | * next line if the string is too long to fit on one line. Newline | 196 | * next line if the string is too long to fit on one line. Newline |
diff --git a/scripts/lxdialog/yesno.c b/scripts/lxdialog/yesno.c index 84f3e8e005e4..cb2568aae3ed 100644 --- a/scripts/lxdialog/yesno.c +++ b/scripts/lxdialog/yesno.c | |||
| @@ -61,20 +61,7 @@ int dialog_yesno(const char *title, const char *prompt, int height, int width) | |||
| 61 | wattrset(dialog, dialog_attr); | 61 | wattrset(dialog, dialog_attr); |
| 62 | waddch(dialog, ACS_RTEE); | 62 | waddch(dialog, ACS_RTEE); |
| 63 | 63 | ||
| 64 | if (title != NULL && strlen(title) >= width - 2) { | 64 | print_title(dialog, title, width); |
| 65 | /* truncate long title -- mec */ | ||
| 66 | char *title2 = malloc(width - 2 + 1); | ||
| 67 | memcpy(title2, title, width - 2); | ||
| 68 | title2[width - 2] = '\0'; | ||
| 69 | title = title2; | ||
| 70 | } | ||
| 71 | |||
| 72 | if (title != NULL) { | ||
| 73 | wattrset(dialog, title_attr); | ||
| 74 | mvwaddch(dialog, 0, (width - strlen(title)) / 2 - 1, ' '); | ||
| 75 | waddstr(dialog, (char *)title); | ||
| 76 | waddch(dialog, ' '); | ||
| 77 | } | ||
| 78 | 65 | ||
| 79 | wattrset(dialog, dialog_attr); | 66 | wattrset(dialog, dialog_attr); |
| 80 | print_autowrap(dialog, prompt, width - 2, 1, 3); | 67 | print_autowrap(dialog, prompt, width - 2, 1, 3); |
