commit 1577540cfba6ba170eb61e67601af3c8fde3b9e6 from: Omar Polo date: Fri Nov 05 15:09:40 2021 UTC add download and download.* line styles commit - 3b5f459ef42c1d975ca5f15ed6402b5658f779f4 commit + 1577540cfba6ba170eb61e67601af3c8fde3b9e6 blob - a0b1ce16d95d70b3bc36ff9a2e5d943fe5aaa938 blob + fbeff6d3abbfb029a41926db3f3c1c74b8450203 --- defaults.c +++ defaults.c @@ -63,6 +63,10 @@ struct lineprefix line_prefixes[] = { [LINE_COMPL_CURRENT] = {"", ""}, [LINE_HELP] = {"", ""}, + + [LINE_DOWNLOAD] = {" Fetching ", " "}, + [LINE_DOWNLOAD_DONE] = {" Done ", " "}, + [LINE_DOWNLOAD_INFO] = {" ", " "}, }; struct line_face line_faces[] = { @@ -169,6 +173,23 @@ struct line_face line_faces[] = { .pair = PHELP, .trail_pair = PHELP_TRAIL, }, + + /* download */ + [LINE_DOWNLOAD] = { + .prfx_pair = PDOWNLOAD_PRFX, + .pair = PDOWNLOAD, + .trail_pair = PDOWNLOAD_TRAIL + }, + [LINE_DOWNLOAD_DONE] = { + .prfx_pair = PDOWNLOAD_DONE_PRFX, + .pair = PDOWNLOAD_DONE, + .trail_pair = PDOWNLOAD_DONE_TRAIL + }, + [LINE_DOWNLOAD_INFO] = { + .prfx_pair = PDOWNLOAD_INFO_PRFX, + .pair = PDOWNLOAD_INFO, + .trail_pair = PDOWNLOAD_INFO_TRAIL + }, }; struct tab_face tab_face = { @@ -189,6 +210,12 @@ struct body_face body_face = { .lbg = -1, .lfg = -1, .bg = -1, .fg = -1, .rbg = -1, .rfg = -1, +}; + +struct download_face download_face = { + .bg = -1, + .fg = -1, + .attr = A_NORMAL, }; struct modeline_face modeline_face = { @@ -231,6 +258,11 @@ struct mapping { /* help */ {"help", LINE_HELP}, + + /* download */ + {"download.ongoing", LINE_DOWNLOAD}, + {"download.done", LINE_DOWNLOAD_DONE}, + {"download.info", LINE_DOWNLOAD_INFO}, }; static struct mapping * @@ -246,7 +278,6 @@ mapping_by_name(const char *name) return NULL; } - static inline void global_set_key(const char *key, void (*fn)(struct buffer*)) { @@ -595,6 +626,11 @@ config_setcolor(int bg, const char *name, int prfx, in body_face.fg = line; body_face.rfg = trail; } + } else if (!strcmp(name, "download")) { + if (bg) + download_face.bg = prfx; + else + download_face.fg = prfx; } else if (!strcmp(name, "minibuffer")) { if (bg) minibuffer_face.bg = prfx; @@ -640,6 +676,8 @@ config_setattr(const char *name, int prfx, int line, i f->prfx_attr = prfx; f->attr = line; f->trail_attr = trail; + } else if (!strcmp(name, "download")) { + download_face.attr = prfx; } else if (!strcmp(name, "minibuffer")) { minibuffer_face.attr = prfx; } else if (!strcmp(name, "modeline")) { @@ -703,6 +741,10 @@ config_apply_style(void) tl_init_pair(colors, PBRIGHT, body_face.rfg, body_face.rbg); body_face.right = COLOR_PAIR(PBRIGHT); + /* download */ + tl_init_pair(colors, PDOWNLOAD_WIN, download_face.fg, download_face.bg); + download_face.background = COLOR_PAIR(PDOWNLOAD_WIN) | download_face.attr; + /* modeline */ tl_init_pair(colors, PMODELINE, modeline_face.fg, modeline_face.bg); modeline_face.background = COLOR_PAIR(PMODELINE) | modeline_face.attr; blob - 3cba5204c6090a919e9696a2f3e47017b27aa334 blob + d6f309f1e81cbc284fc8df38ac3bbe09c1926ad1 --- defaults.h +++ defaults.h @@ -66,6 +66,12 @@ struct body_face { }; extern struct body_face body_face; +struct download_face { + int bg, fg, attr; + int background; +}; +extern struct download_face download_face; + struct modeline_face { int bg, fg, attr; int background; blob - 63410a1f03f784a88dde11a6efcbba36c07f66d6 blob + 9d708132fdd258da8fa1edb5c800afb742f9f820 --- downloads.c +++ downloads.c @@ -32,7 +32,7 @@ no_downloads() if ((l = calloc(1, sizeof(*l))) == NULL) abort(); - l->type = LINE_HELP; + l->type = LINE_DOWNLOAD_INFO; l->line = strdup("No downloads"); TAILQ_INSERT_TAIL(&downloadwin.page.head, l, lines); @@ -59,7 +59,10 @@ recompute_downloads(void) fmt_scaled(d->bytes, buf); - l->type = LINE_HELP; + l->type = LINE_DOWNLOAD; + if (d->fd == -1) + l->type = LINE_DOWNLOAD_DONE; + l->line = strdup(d->path); l->alt = strdup(buf); blob - c8af1bde86cf787c02f3005817bfb3a87a78a7ee blob + 9dfc3ba2b2baaef7923eb1b8ab8420ff58c01bb3 --- telescope.h +++ telescope.h @@ -97,6 +97,11 @@ enum line_type { /* help */ LINE_HELP, + + /* download */ + LINE_DOWNLOAD, + LINE_DOWNLOAD_DONE, + LINE_DOWNLOAD_INFO, }; /* for lines: mark as hidden */ blob - 7b27a983d7361174f628a5f797108e126415826c blob + 301dbc78589b9db6f31e69ef46ca1dc759430288 --- ui.c +++ ui.c @@ -437,7 +437,10 @@ print_vline_descr(int width, WINDOW *window, struct vl if (vl->parent->type != LINE_COMPL && vl->parent->type != LINE_COMPL_CURRENT && - vl->parent->type != LINE_HELP) + vl->parent->type != LINE_HELP && + vl->parent->type != LINE_DOWNLOAD && + vl->parent->type != LINE_DOWNLOAD_DONE && + vl->parent->type != LINE_DOWNLOAD_INFO) return; if (vl->parent->alt == NULL) @@ -446,10 +449,16 @@ print_vline_descr(int width, WINDOW *window, struct vl (void)y; getyx(window, y, x); - if (vl->parent->type == LINE_HELP) - goal = 8; - else + switch (vl->parent->type) { + case LINE_HELP: + case LINE_DOWNLOAD: + case LINE_DOWNLOAD_DONE: + case LINE_DOWNLOAD_INFO: + goal = 8; + break; + default: goal = width/2; + } if (goal <= x) wprintw(window, " "); @@ -1110,6 +1119,7 @@ ui_init() return 0; wbkgd(body, body_face.body); + wbkgd(download, download_face.background); wbkgd(echoarea, minibuffer_face.background); update_x_offset(); blob - 145069e54bea933d47bcd2dca0bb2c984bfd151c blob + 85ce1c100a10ea58bde4ef9f458428f4452f0ed3 --- ui.h +++ ui.h @@ -100,6 +100,20 @@ enum pairs { PHELP, PHELP_TRAIL, + PDOWNLOAD_PRFX, + PDOWNLOAD, + PDOWNLOAD_TRAIL, + + PDOWNLOAD_DONE_PRFX, + PDOWNLOAD_DONE, + PDOWNLOAD_DONE_TRAIL, + + PDOWNLOAD_INFO_PRFX, + PDOWNLOAD_INFO, + PDOWNLOAD_INFO_TRAIL, + + PDOWNLOAD_WIN, + PMODELINE, PMINIBUF, blob - 6fd7a38bb0ef087bbca6a041f93fb5abbdefc022 blob + 7cf9b8af5ba28dda0dbf628cf0c5cdc7a7491f40 --- wrap.c +++ wrap.c @@ -278,6 +278,9 @@ wrap_page(struct buffer *buffer, int width) case LINE_COMPL: case LINE_COMPL_CURRENT: case LINE_HELP: + case LINE_DOWNLOAD: + case LINE_DOWNLOAD_DONE: + case LINE_DOWNLOAD_INFO: wrap_one(buffer, prfx, l, width); break; }