diff options
| author | Nathan Reiner <nathan@nathanreiner.xyz> | 2023-03-23 17:56:45 +0100 |
|---|---|---|
| committer | Nathan Reiner <nathan@nathanreiner.xyz> | 2023-03-23 17:56:45 +0100 |
| commit | 1588062e0df5f280ad5d2411a9dca4ff337001de (patch) | |
| tree | 497bf747ccf927e81e800b44c9ab33077709732f | |
| parent | 72458b53a52566689d7094c69ffa2f9d6cfd4519 (diff) | |
add prompt
| -rw-r--r-- | dmenu-wl.c | 20 |
1 files changed, 19 insertions, 1 deletions
@@ -145,6 +145,7 @@ Monitor *active_monitor = 0; uint32_t height = 50; uint32_t numitems = 0; char input_field[MAX_LINE_LENGTH] = ""; +char *prompt = 0; int running = 1; #include "config.h" @@ -251,8 +252,16 @@ draw_dmenu(Monitor *monitor) monitor->width - 2 * borderwidth, height - 2 * borderwidth, background); draw_rect(monitor->canvas, 0, fontsize + borderwidth + 2 * padding, monitor->width, borderwidth, highlight); + + if (prompt) { + x = font_width(monitor->font, prompt) + padding + borderwidth; + draw_rect(monitor->canvas, 0, 0, x + padding, fontsize + 2 * padding + borderwidth, highlight); + draw_font(monitor->canvas, monitor->font, prompt, padding + borderwidth, + borderwidth + fontsize + padding, foreground); + } + x = draw_font(monitor->canvas, monitor->font, input_field, - padding + borderwidth, borderwidth + fontsize + padding, foreground); + x + padding + borderwidth, borderwidth + fontsize + padding, foreground); draw_rect(monitor->canvas, x + cursor_horizontal_offset, borderwidth + padding - cursor_vertical_offset, cursor_width, fontsize + 2 * cursor_vertical_offset, foreground); @@ -588,6 +597,15 @@ main(int argc, char *argv[]) { struct itimerspec spec = { 0 }; struct pollfd fds[2]; + char **arg; + + for (arg = argv; *arg; ++arg) { + if (strcmp(*arg, "-p") == 0) { + prompt = *(++arg); + } else if (strcmp(*arg, "-h") == 0) { + fprintf(stderr, "dmenu-wl [-p PROMPT]\n"); + } + } readstdin(); setup(); |