mirror of
https://git.jabber.space/devs/cproof.git
synced 2026-07-20 13:26:22 +00:00
WIP: Add /theme properties command
This commit is contained in:
@@ -1727,13 +1727,15 @@ static struct cmd_t command_defs[] =
|
||||
CMD_SYN(
|
||||
"/theme list",
|
||||
"/theme load <theme>",
|
||||
"/theme colours")
|
||||
"/theme colours",
|
||||
"/theme properties")
|
||||
CMD_DESC(
|
||||
"Load a theme, includes colours and UI options.")
|
||||
CMD_ARGS(
|
||||
{ "list", "List all available themes." },
|
||||
{ "load <theme>", "Load the specified theme. 'default' will reset to the default theme." },
|
||||
{ "colours", "Show the colour values as rendered by the terminal." })
|
||||
{ "colours", "Show the colour values as rendered by the terminal." },
|
||||
{ "properties", "Show each themed property." })
|
||||
CMD_EXAMPLES(
|
||||
"/theme list",
|
||||
"/theme load forest")
|
||||
@@ -2106,6 +2108,7 @@ cmd_init(void)
|
||||
autocomplete_add(theme_ac, "load");
|
||||
autocomplete_add(theme_ac, "list");
|
||||
autocomplete_add(theme_ac, "colours");
|
||||
autocomplete_add(theme_ac, "properties");
|
||||
|
||||
disco_ac = autocomplete_new();
|
||||
autocomplete_add(disco_ac, "info");
|
||||
|
||||
@@ -1401,6 +1401,8 @@ cmd_theme(ProfWin *window, const char *const command, gchar **args)
|
||||
// show colours
|
||||
} else if (g_strcmp0(args[0], "colours") == 0) {
|
||||
cons_theme_colours();
|
||||
} else if (g_strcmp0(args[0], "properties") == 0) {
|
||||
cons_theme_properties();
|
||||
} else {
|
||||
cons_bad_cmd_usage(command);
|
||||
}
|
||||
|
||||
100
src/ui/console.c
100
src/ui/console.c
@@ -2003,6 +2003,106 @@ cons_get_string(ProfConsoleWin *conswin)
|
||||
return strdup("Console");
|
||||
}
|
||||
|
||||
void
|
||||
cons_theme_properties(void)
|
||||
{
|
||||
ProfWin *console = wins_get_console();
|
||||
cons_show("Title bar:");
|
||||
win_print(console, '-', 0, NULL, NO_EOL, THEME_TITLE_TEXT, "", "titlebar.text ");
|
||||
win_print(console, '-', 0, NULL, NO_DATE | NO_EOL, THEME_TITLE_BRACKET, "", "titlebar.brackets");
|
||||
win_print(console, '-', 0, NULL, NO_DATE, THEME_TEXT, "", "");
|
||||
|
||||
win_print(console, '-', 0, NULL, NO_EOL, THEME_TITLE_UNENCRYPTED, "", "titlebar.unencrypted ");
|
||||
win_print(console, '-', 0, NULL, NO_DATE | NO_EOL, THEME_TITLE_ENCRYPTED, "", "titlebar.encrypted ");
|
||||
win_print(console, '-', 0, NULL, NO_DATE | NO_EOL, THEME_TITLE_UNTRUSTED, "", "titlebar.untrusted ");
|
||||
win_print(console, '-', 0, NULL, NO_DATE | NO_EOL, THEME_TITLE_TRUSTED, "", "titlebar.trusted");
|
||||
win_print(console, '-', 0, NULL, NO_DATE, THEME_TEXT, "", "");
|
||||
|
||||
win_print(console, '-', 0, NULL, NO_EOL, THEME_TITLE_CHAT, "", "titlebar.chat ");
|
||||
win_print(console, '-', 0, NULL, NO_DATE | NO_EOL, THEME_TITLE_ONLINE, "", "titlebar.online ");
|
||||
win_print(console, '-', 0, NULL, NO_DATE | NO_EOL, THEME_TITLE_AWAY, "", "titlebar.away ");
|
||||
win_print(console, '-', 0, NULL, NO_DATE | NO_EOL, THEME_TITLE_XA, "", "titlebar.xa ");
|
||||
win_print(console, '-', 0, NULL, NO_DATE | NO_EOL, THEME_TITLE_DND, "", "titlebar.dnd ");
|
||||
win_print(console, '-', 0, NULL, NO_DATE | NO_EOL, THEME_TITLE_OFFLINE, "", "titlebar.offline");
|
||||
win_print(console, '-', 0, NULL, NO_DATE, THEME_TEXT, "", "");
|
||||
|
||||
cons_show("");
|
||||
cons_show("Status bar:");
|
||||
win_print(console, '-', 0, NULL, NO_EOL, THEME_STATUS_TEXT, "", "statusbar.text ");
|
||||
win_print(console, '-', 0, NULL, NO_DATE | NO_EOL, THEME_STATUS_BRACKET, "", "statusbar.brackets ");
|
||||
win_print(console, '-', 0, NULL, NO_DATE | NO_EOL, THEME_STATUS_ACTIVE, "", "statusbar.active ");
|
||||
win_print(console, '-', 0, NULL, NO_DATE | NO_EOL, THEME_STATUS_NEW, "", "statusbar.new");
|
||||
win_print(console, '-', 0, NULL, NO_DATE, THEME_TEXT, "", "");
|
||||
|
||||
cons_show("");
|
||||
cons_show("Main text:");
|
||||
win_print(console, '-', 0, NULL, NO_EOL, THEME_TIME, "", "main.time ");
|
||||
win_print(console, '-', 0, NULL, NO_DATE | NO_EOL, THEME_TEXT, "", "main.text ");
|
||||
win_print(console, '-', 0, NULL, NO_DATE | NO_EOL, THEME_SPLASH, "", "main.splash ");
|
||||
win_print(console, '-', 0, NULL, NO_DATE, THEME_ERROR, "", "error");
|
||||
win_print(console, '-', 0, NULL, NO_EOL, THEME_OTR_STARTED_TRUSTED, "", "otr.started.trusted ");
|
||||
win_print(console, '-', 0, NULL, NO_DATE | NO_EOL, THEME_OTR_STARTED_UNTRUSTED, "", "otr.started.untrusted ");
|
||||
win_print(console, '-', 0, NULL, NO_DATE | NO_EOL, THEME_OTR_ENDED, "", "otr.ended ");
|
||||
win_print(console, '-', 0, NULL, NO_DATE | NO_EOL, THEME_OTR_TRUSTED, "", "otr.trusted ");
|
||||
win_print(console, '-', 0, NULL, NO_DATE, THEME_OTR_UNTRUSTED, "", "otr.untrusted");
|
||||
|
||||
cons_show("");
|
||||
cons_show("Messages:");
|
||||
win_print(console, '-', 0, NULL, NO_EOL, THEME_ME, "", "me ");
|
||||
win_print(console, '-', 0, NULL, NO_DATE, THEME_TEXT_ME, "", "main.text.me");
|
||||
win_print(console, '-', 0, NULL, NO_EOL, THEME_THEM, "", "them ");
|
||||
win_print(console, '-', 0, NULL, NO_DATE, THEME_TEXT_THEM, "", "main.text.them");
|
||||
|
||||
cons_show("");
|
||||
cons_show("Presence:");
|
||||
win_print(console, '-', 0, NULL, NO_EOL, THEME_CHAT, "", "chat ");
|
||||
win_print(console, '-', 0, NULL, NO_DATE | NO_EOL, THEME_ONLINE, "", "online ");
|
||||
win_print(console, '-', 0, NULL, NO_DATE | NO_EOL, THEME_AWAY, "", "away ");
|
||||
win_print(console, '-', 0, NULL, NO_DATE | NO_EOL, THEME_XA, "", "xa ");
|
||||
win_print(console, '-', 0, NULL, NO_DATE | NO_EOL, THEME_DND, "", "dnd ");
|
||||
win_print(console, '-', 0, NULL, NO_DATE, THEME_OFFLINE, "", "offline");
|
||||
win_print(console, '-', 0, NULL, NO_EOL, THEME_SUBSCRIBED, "", "subscribed ");
|
||||
win_print(console, '-', 0, NULL, NO_DATE, THEME_UNSUBSCRIBED, "", "unsubscribed");
|
||||
|
||||
cons_show("");
|
||||
win_print(console, '-', 0, NULL, 0, THEME_INCOMING, "", "incoming");
|
||||
win_print(console, '-', 0, NULL, 0, THEME_TYPING, "", "typing");
|
||||
win_print(console, '-', 0, NULL, 0, THEME_GONE, "", "gone");
|
||||
|
||||
win_print(console, '-', 0, NULL, 0, THEME_ROOMINFO, "", "roominfo");
|
||||
win_print(console, '-', 0, NULL, 0, THEME_ROOMMENTION, "", "roommention");
|
||||
|
||||
win_print(console, '-', 0, NULL, 0, THEME_ROSTER_HEADER, "", "roster.header");
|
||||
win_print(console, '-', 0, NULL, 0, THEME_ROSTER_CHAT, "", "roster.chat");
|
||||
win_print(console, '-', 0, NULL, 0, THEME_ROSTER_ONLINE, "", "roster.online");
|
||||
win_print(console, '-', 0, NULL, 0, THEME_ROSTER_AWAY, "", "roster.away");
|
||||
win_print(console, '-', 0, NULL, 0, THEME_ROSTER_XA, "", "roster.xa");
|
||||
win_print(console, '-', 0, NULL, 0, THEME_ROSTER_DND, "", "roster.dnd");
|
||||
win_print(console, '-', 0, NULL, 0, THEME_ROSTER_OFFLINE, "", "roster.offline");
|
||||
win_print(console, '-', 0, NULL, 0, THEME_ROSTER_CHAT_ACTIVE, "", "roster.chat.active");
|
||||
win_print(console, '-', 0, NULL, 0, THEME_ROSTER_ONLINE_ACTIVE, "", "roster.online.active");
|
||||
win_print(console, '-', 0, NULL, 0, THEME_ROSTER_AWAY_ACTIVE, "", "roster.away.active");
|
||||
win_print(console, '-', 0, NULL, 0, THEME_ROSTER_XA_ACTIVE, "", "roster.xa.active");
|
||||
win_print(console, '-', 0, NULL, 0, THEME_ROSTER_DND_ACTIVE, "", "roster.dnd.active");
|
||||
win_print(console, '-', 0, NULL, 0, THEME_ROSTER_OFFLINE_ACTIVE, "", "roster.offline.active");
|
||||
win_print(console, '-', 0, NULL, 0, THEME_ROSTER_CHAT_UNREAD, "", "roster.chat.unread");
|
||||
win_print(console, '-', 0, NULL, 0, THEME_ROSTER_ONLINE_UNREAD, "", "roster.online.unread");
|
||||
win_print(console, '-', 0, NULL, 0, THEME_ROSTER_AWAY_UNREAD, "", "roster.away.unread");
|
||||
win_print(console, '-', 0, NULL, 0, THEME_ROSTER_XA_UNREAD, "", "roster.xa.unread");
|
||||
win_print(console, '-', 0, NULL, 0, THEME_ROSTER_DND_UNREAD, "", "roster.dnd.unread");
|
||||
win_print(console, '-', 0, NULL, 0, THEME_ROSTER_OFFLINE_UNREAD, "", "roster.offline.unread");
|
||||
win_print(console, '-', 0, NULL, 0, THEME_ROSTER_ROOM, "", "roster.room");
|
||||
win_print(console, '-', 0, NULL, 0, THEME_ROSTER_ROOM_UNREAD, "", "roster.room.unread");
|
||||
|
||||
win_print(console, '-', 0, NULL, 0, THEME_OCCUPANTS_HEADER, "", "occupants.header");
|
||||
|
||||
win_print(console, '-', 0, NULL, 0, THEME_RECEIPT_SENT, "", "receipt.sent");
|
||||
|
||||
win_print(console, '-', 0, NULL, 0, THEME_INPUT_TEXT, "", "input.text");
|
||||
|
||||
cons_show("");
|
||||
}
|
||||
|
||||
void
|
||||
cons_theme_colours(void)
|
||||
{
|
||||
|
||||
@@ -301,6 +301,7 @@ void cons_autoconnect_setting(void);
|
||||
void cons_inpblock_setting(void);
|
||||
void cons_show_contact_online(PContact contact, Resource *resource, GDateTime *last_activity);
|
||||
void cons_show_contact_offline(PContact contact, char *resource, char *status);
|
||||
void cons_theme_properties(void);
|
||||
void cons_theme_colours(void);
|
||||
void cons_show_tlscert(TLSCertificate *cert);
|
||||
void cons_show_tlscert_summary(TLSCertificate *cert);
|
||||
|
||||
@@ -1086,6 +1086,7 @@ _win_print(ProfWin *window, const char show_char, int pad_indent, GDateTime *tim
|
||||
if ((flags & NO_DATE) == 0) {
|
||||
if (date_fmt && strlen(date_fmt)) {
|
||||
if ((flags & NO_COLOUR_DATE) == 0) {
|
||||
wbkgdset(window->layout->win, theme_attrs(THEME_TIME));
|
||||
wattron(window->layout->win, theme_attrs(THEME_TIME));
|
||||
}
|
||||
wprintw(window->layout->win, "%s %c ", date_fmt, show_char);
|
||||
@@ -1108,6 +1109,7 @@ _win_print(ProfWin *window, const char show_char, int pad_indent, GDateTime *tim
|
||||
colour = theme_attrs(THEME_RECEIPT_SENT);
|
||||
}
|
||||
|
||||
wbkgdset(window->layout->win, colour);
|
||||
wattron(window->layout->win, colour);
|
||||
if (strncmp(message, "/me ", 4) == 0) {
|
||||
wprintw(window->layout->win, "*%s ", from);
|
||||
@@ -1121,8 +1123,10 @@ _win_print(ProfWin *window, const char show_char, int pad_indent, GDateTime *tim
|
||||
|
||||
if (!me_message) {
|
||||
if (receipt && !receipt->received) {
|
||||
wbkgdset(window->layout->win, theme_attrs(THEME_RECEIPT_SENT));
|
||||
wattron(window->layout->win, theme_attrs(THEME_RECEIPT_SENT));
|
||||
} else {
|
||||
wbkgdset(window->layout->win, theme_attrs(theme_item));
|
||||
wattron(window->layout->win, theme_attrs(theme_item));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user