diff options
author | June McEnroe <june@causal.agency> | 2020-02-06 19:05:51 -0500 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2020-02-06 19:05:51 -0500 |
commit | 9cff026b5a7ed15e5e34f51e796908e77a3bc3b4 (patch) | |
tree | a25710b4df69ba8642ed450b83fcc48c4ed76767 | |
parent | Render actions in italic (diff) | |
download | catgirl-9cff026b5a7ed15e5e34f51e796908e77a3bc3b4.tar.gz catgirl-9cff026b5a7ed15e5e34f51e796908e77a3bc3b4.zip |
Show input in italics for actions and set Debug prompt
-rw-r--r-- | ui.c | 58 |
1 files changed, 33 insertions, 25 deletions
diff --git a/ui.c b/ui.c index 9f0bb88..96f722a 100644 --- a/ui.c +++ b/ui.c @@ -474,36 +474,44 @@ static void inputAdd(struct Style *style, const char *str) { } static void inputUpdate(void) { - wmove(input, 0, 0); - wattr_set( - input, - colorAttr(mapColor(self.color)), - colorPair(mapColor(self.color), -1), - NULL - ); + size_t id = windows.active->id; + const char *nick = self.nick; const char *head = editHead(); const char *skip = NULL; - if (self.nick) { - size_t id = windows.active->id; - if (NULL != (skip = commandIsPrivmsg(id, head))) { - waddch(input, '<'); - waddstr(input, self.nick); - waddstr(input, "> "); - } else if (NULL != (skip = commandIsNotice(id, head))) { - waddch(input, '-'); - waddstr(input, self.nick); - waddstr(input, "- "); - } else if (NULL != (skip = commandIsAction(id, head))) { - waddstr(input, "* "); - waddstr(input, self.nick); - waddch(input, ' '); - } + const char *pre = ""; + const char *suf = " "; + struct Style style = { .fg = self.color, .bg = Default }; + if (NULL != (skip = commandIsPrivmsg(id, head))) { + pre = "<"; + suf = "> "; + } else if (NULL != (skip = commandIsNotice(id, head))) { + pre = "-"; + suf = "- "; + } else if (NULL != (skip = commandIsAction(id, head))) { + style.attr |= A_ITALIC; + pre = "* "; + } else if (id == Debug) { + skip = head; + style.fg = Gray; + pre = "<<"; + nick = NULL; } - if (skip) head = skip; int y, x; - struct Style style = Reset; - inputAdd(&style, head); + wmove(input, 0, 0); + if (skip) { + wattr_set( + input, + style.attr | colorAttr(mapColor(style.fg)), + colorPair(mapColor(style.fg), mapColor(style.bg)), + NULL + ); + waddstr(input, pre); + if (nick) waddstr(input, nick); + waddstr(input, suf); + } + style.fg = Default; + inputAdd(&style, (skip ? skip : head)); getyx(input, y, x); inputAdd(&style, editTail()); wclrtoeol(input); |