Added roster contact themes

This commit is contained in:
James Booth
2016-01-14 22:54:50 +00:00
parent 042ad4758f
commit fbc302317a
20 changed files with 411 additions and 5 deletions

View File

@@ -447,6 +447,60 @@ _theme_find(const char *const theme_name)
return path;
}
theme_item_t
theme_roster_unread_presence_attrs(const char *const presence)
{
if (g_strcmp0(presence, "online") == 0) {
return THEME_ROSTER_ONLINE_UNREAD;
} else if (g_strcmp0(presence, "away") == 0) {
return THEME_ROSTER_AWAY_UNREAD;
} else if (g_strcmp0(presence, "chat") == 0) {
return THEME_ROSTER_CHAT_UNREAD;
} else if (g_strcmp0(presence, "dnd") == 0) {
return THEME_ROSTER_DND_UNREAD;
} else if (g_strcmp0(presence, "xa") == 0) {
return THEME_ROSTER_XA_UNREAD;
} else {
return THEME_ROSTER_OFFLINE_UNREAD;
}
}
theme_item_t
theme_roster_active_presence_attrs(const char *const presence)
{
if (g_strcmp0(presence, "online") == 0) {
return THEME_ROSTER_ONLINE_ACTIVE;
} else if (g_strcmp0(presence, "away") == 0) {
return THEME_ROSTER_AWAY_ACTIVE;
} else if (g_strcmp0(presence, "chat") == 0) {
return THEME_ROSTER_CHAT_ACTIVE;
} else if (g_strcmp0(presence, "dnd") == 0) {
return THEME_ROSTER_DND_ACTIVE;
} else if (g_strcmp0(presence, "xa") == 0) {
return THEME_ROSTER_XA_ACTIVE;
} else {
return THEME_ROSTER_OFFLINE_ACTIVE;
}
}
theme_item_t
theme_roster_presence_attrs(const char *const presence)
{
if (g_strcmp0(presence, "online") == 0) {
return THEME_ROSTER_ONLINE;
} else if (g_strcmp0(presence, "away") == 0) {
return THEME_ROSTER_AWAY;
} else if (g_strcmp0(presence, "chat") == 0) {
return THEME_ROSTER_CHAT;
} else if (g_strcmp0(presence, "dnd") == 0) {
return THEME_ROSTER_DND;
} else if (g_strcmp0(presence, "xa") == 0) {
return THEME_ROSTER_XA;
} else {
return THEME_ROSTER_OFFLINE;
}
}
theme_item_t
theme_main_presence_attrs(const char *const presence)
{
@@ -554,6 +608,24 @@ theme_attrs(theme_item_t attrs)
case THEME_OTR_TRUSTED: _theme_prep_fgnd("otr.trusted", "green", lookup_str, &bold); break;
case THEME_OTR_UNTRUSTED: _theme_prep_fgnd("otr.untrusted", "yellow", lookup_str, &bold); break;
case THEME_ROSTER_HEADER: _theme_prep_fgnd("roster.header", "yellow", lookup_str, &bold); break;
case THEME_ROSTER_ONLINE: _theme_prep_fgnd("roster.online", "green", lookup_str, &bold); break;
case THEME_ROSTER_OFFLINE: _theme_prep_fgnd("roster.offline", "red", lookup_str, &bold); break;
case THEME_ROSTER_CHAT: _theme_prep_fgnd("roster.chat", "green", lookup_str, &bold); break;
case THEME_ROSTER_AWAY: _theme_prep_fgnd("roster.away", "cyan", lookup_str, &bold); break;
case THEME_ROSTER_DND: _theme_prep_fgnd("roster.dnd", "red", lookup_str, &bold); break;
case THEME_ROSTER_XA: _theme_prep_fgnd("roster.xa", "cyan", lookup_str, &bold); break;
case THEME_ROSTER_ONLINE_ACTIVE: _theme_prep_fgnd("roster.online.active", "green", lookup_str, &bold); break;
case THEME_ROSTER_OFFLINE_ACTIVE: _theme_prep_fgnd("roster.offline.active", "red", lookup_str, &bold); break;
case THEME_ROSTER_CHAT_ACTIVE: _theme_prep_fgnd("roster.chat.active", "green", lookup_str, &bold); break;
case THEME_ROSTER_AWAY_ACTIVE: _theme_prep_fgnd("roster.away.active", "cyan", lookup_str, &bold); break;
case THEME_ROSTER_DND_ACTIVE: _theme_prep_fgnd("roster.dnd.active", "red", lookup_str, &bold); break;
case THEME_ROSTER_XA_ACTIVE: _theme_prep_fgnd("roster.xa.active", "cyan", lookup_str, &bold); break;
case THEME_ROSTER_ONLINE_UNREAD: _theme_prep_fgnd("roster.online.unread", "green", lookup_str, &bold); break;
case THEME_ROSTER_OFFLINE_UNREAD: _theme_prep_fgnd("roster.offline.unread", "red", lookup_str, &bold); break;
case THEME_ROSTER_CHAT_UNREAD: _theme_prep_fgnd("roster.chat.unread", "green", lookup_str, &bold); break;
case THEME_ROSTER_AWAY_UNREAD: _theme_prep_fgnd("roster.away.unread", "cyan", lookup_str, &bold); break;
case THEME_ROSTER_DND_UNREAD: _theme_prep_fgnd("roster.dnd.unread", "red", lookup_str, &bold); break;
case THEME_ROSTER_XA_UNREAD: _theme_prep_fgnd("roster.xa.unread", "cyan", lookup_str, &bold); break;
case THEME_ROSTER_ROOM: _theme_prep_fgnd("roster.room", "green", lookup_str, &bold); break;
case THEME_ROSTER_ROOM_UNREAD: _theme_prep_fgnd("roster.room.unread", "green", lookup_str, &bold); break;
case THEME_OCCUPANTS_HEADER: _theme_prep_fgnd("occupants.header", "yellow", lookup_str, &bold); break;

View File

@@ -85,6 +85,24 @@ typedef enum {
THEME_OTR_UNTRUSTED,
THEME_OCCUPANTS_HEADER,
THEME_ROSTER_HEADER,
THEME_ROSTER_ONLINE,
THEME_ROSTER_OFFLINE,
THEME_ROSTER_AWAY,
THEME_ROSTER_CHAT,
THEME_ROSTER_DND,
THEME_ROSTER_XA,
THEME_ROSTER_ONLINE_ACTIVE,
THEME_ROSTER_OFFLINE_ACTIVE,
THEME_ROSTER_AWAY_ACTIVE,
THEME_ROSTER_CHAT_ACTIVE,
THEME_ROSTER_DND_ACTIVE,
THEME_ROSTER_XA_ACTIVE,
THEME_ROSTER_ONLINE_UNREAD,
THEME_ROSTER_OFFLINE_UNREAD,
THEME_ROSTER_AWAY_UNREAD,
THEME_ROSTER_CHAT_UNREAD,
THEME_ROSTER_DND_UNREAD,
THEME_ROSTER_XA_UNREAD,
THEME_ROSTER_ROOM,
THEME_ROSTER_ROOM_UNREAD,
THEME_RECEIPT_SENT,
@@ -113,6 +131,10 @@ gboolean theme_load(const char *const theme_name);
GSList* theme_list(void);
void theme_close(void);
int theme_attrs(theme_item_t attrs);
theme_item_t theme_main_presence_attrs(const char *const presence);
theme_item_t theme_roster_unread_presence_attrs(const char *const presence);
theme_item_t theme_roster_active_presence_attrs(const char *const presence);
theme_item_t theme_roster_presence_attrs(const char *const presence);
#endif