From b078dfb78c89aea87cd422eae52694738e473cf3 Mon Sep 17 00:00:00 2001 From: dartraiden Date: Sun, 21 Jul 2019 19:59:18 +0300 Subject: Restore "Free for chat" status support (fixes #1963) --- plugins/Clist_modern/src/modern_clc.h | 1 + plugins/Clist_modern/src/modern_clcmsgs.cpp | 1 + plugins/Clist_modern/src/modern_clcopts.cpp | 7 +++++-- plugins/Clist_modern/src/modern_clcpaint.cpp | 3 +++ plugins/Clist_modern/src/modern_clcpaint.h | 1 + plugins/Clist_modern/src/modern_clisttray.cpp | 1 + plugins/Clist_modern/src/modern_clui.cpp | 6 ++++-- plugins/Clist_modern/src/modern_contact.cpp | 3 ++- plugins/Clist_modern/src/modern_rowheight_funcs.cpp | 2 +- plugins/Clist_modern/src/resource.h | 2 ++ 10 files changed, 21 insertions(+), 6 deletions(-) (limited to 'plugins/Clist_modern/src') diff --git a/plugins/Clist_modern/src/modern_clc.h b/plugins/Clist_modern/src/modern_clc.h index 967d6b17aa..c26cc854b2 100644 --- a/plugins/Clist_modern/src/modern_clc.h +++ b/plugins/Clist_modern/src/modern_clc.h @@ -82,6 +82,7 @@ void clcSetDelayTimer(UINT_PTR uIDEvent, HWND hwnd, int nDelay = -1); #define FONTID_DND 11 #define FONTID_NA 12 #define FONTID_OCCUPIED 13 +#define FONTID_CHAT 14 #define FONTID_INVISIBLE 15 #define FONTID_CONTACT_TIME 18 #define FONTID_CLOSEDGROUPS 19 diff --git a/plugins/Clist_modern/src/modern_clcmsgs.cpp b/plugins/Clist_modern/src/modern_clcmsgs.cpp index 79aaedf31f..12928facf9 100644 --- a/plugins/Clist_modern/src/modern_clcmsgs.cpp +++ b/plugins/Clist_modern/src/modern_clcmsgs.cpp @@ -87,6 +87,7 @@ LRESULT cli_ProcessExternalMessages(HWND hwnd, ClcData *dat, UINT msg, WPARAM wP dat->fontModernInfo[FONTID_DND].colour = lParam; dat->fontModernInfo[FONTID_NA].colour = lParam; dat->fontModernInfo[FONTID_OCCUPIED].colour = lParam; + dat->fontModernInfo[FONTID_CHAT].colour = lParam; dat->fontModernInfo[FONTID_INVISIBLE].colour = lParam; dat->fontModernInfo[FONTID_CONTACT_TIME].colour = lParam; break; diff --git a/plugins/Clist_modern/src/modern_clcopts.cpp b/plugins/Clist_modern/src/modern_clcopts.cpp index 790ae94055..5bf36d5ccf 100644 --- a/plugins/Clist_modern/src/modern_clcopts.cpp +++ b/plugins/Clist_modern/src/modern_clcopts.cpp @@ -74,6 +74,7 @@ static fontOptionsList[] = { FIDF_CLASSGENERAL, FONTID_DND, CLCGROUP, LPGENW("Do not disturb contacts"), DEFAULT_COLOUR, DEFAULT_FAMILY, DEFAULT_CHARSET, FONTF_NORMAL, DEFAULT_SIZE, DEFAULT_EFFECT }, { FIDF_CLASSGENERAL, FONTID_NA, CLCGROUP, LPGENW("Not available contacts"), DEFAULT_COLOUR, DEFAULT_FAMILY, DEFAULT_CHARSET, FONTF_NORMAL, DEFAULT_SIZE, DEFAULT_EFFECT }, { FIDF_CLASSGENERAL, FONTID_OCCUPIED, CLCGROUP, LPGENW("Occupied contacts"), DEFAULT_COLOUR, DEFAULT_FAMILY, DEFAULT_CHARSET, FONTF_NORMAL, DEFAULT_SIZE, DEFAULT_EFFECT }, + { FIDF_CLASSGENERAL, FONTID_CHAT, CLCGROUP, LPGENW("Free for chat contacts"), DEFAULT_COLOUR, DEFAULT_FAMILY, DEFAULT_CHARSET, FONTF_NORMAL, DEFAULT_SIZE, DEFAULT_EFFECT }, { FIDF_CLASSGENERAL, FONTID_INVISIBLE, CLCGROUP, LPGENW("Invisible contacts"), DEFAULT_COLOUR, DEFAULT_FAMILY, DEFAULT_CHARSET, FONTF_NORMAL, DEFAULT_SIZE, DEFAULT_EFFECT }, { FIDF_CLASSGENERAL, FONTID_OFFLINE, CLCGROUP, LPGENW("Offline contacts"), DEFAULT_GREYCOLOUR, DEFAULT_FAMILY, DEFAULT_CHARSET, FONTF_NORMAL, DEFAULT_SIZE, DEFAULT_EFFECT }, { FIDF_CLASSGENERAL, FONTID_INVIS, CLCGROUP, LPGENW("Online contacts to whom you have a different visibility"), DEFAULT_COLOUR, DEFAULT_FAMILY, DEFAULT_CHARSET, FONTF_NORMAL, DEFAULT_SIZE, DEFAULT_EFFECT }, @@ -253,7 +254,8 @@ static const struct CheckBoxValues_t greyoutValues[] = { { PF2_LONGAWAY, LPGENW("Not available") }, { PF2_LIGHTDND, LPGENW("Occupied") }, { PF2_HEAVYDND, LPGENW("Do not disturb") }, - { PF2_INVISIBLE, LPGENW("Invisible") }, + { PF2_FREECHAT, LPGENW("Free for chat") }, + { PF2_INVISIBLE, LPGENW("Invisible") } }; static const struct CheckBoxValues_t offlineValues[] = { @@ -263,7 +265,8 @@ static const struct CheckBoxValues_t offlineValues[] = { { PF2_LONGAWAY, LPGENW("Not available") }, { PF2_LIGHTDND, LPGENW("Occupied") }, { PF2_HEAVYDND, LPGENW("Do not disturb") }, - { PF2_INVISIBLE, LPGENW("Invisible") }, + { PF2_FREECHAT, LPGENW("Free for chat") }, + { PF2_INVISIBLE, LPGENW("Invisible") } }; static void FillCheckBoxTree(HWND hwndTree, const struct CheckBoxValues_t *values, int nValues, DWORD style) diff --git a/plugins/Clist_modern/src/modern_clcpaint.cpp b/plugins/Clist_modern/src/modern_clcpaint.cpp index 04280de335..0e25c8159c 100644 --- a/plugins/Clist_modern/src/modern_clcpaint.cpp +++ b/plugins/Clist_modern/src/modern_clcpaint.cpp @@ -54,6 +54,7 @@ const char* CLCPaint::HASHTEXT[hi_LastItem] = { "DND", "NA", "OCCUPIED", + "FREECHAT", "INVISIBLE", "IDLE", "OFFLINE", @@ -170,6 +171,7 @@ int CLCPaint::GetBasicFontID(ClcContact *contact) case ID_STATUS_DND: return FONTID_DND; case ID_STATUS_NA: return FONTID_NA; case ID_STATUS_OCCUPIED: return FONTID_OCCUPIED; + case ID_STATUS_FREECHAT: return FONTID_CHAT; case ID_STATUS_INVISIBLE: return FONTID_INVISIBLE; } @@ -521,6 +523,7 @@ MODERNMASK* CLCPaint::_GetCLCContactRowBackModernMask(ClcGroup *group, ClcContac case ID_STATUS_DND: _AddParamShort(mpModernMask, hi_Status, hi_DND); break; case ID_STATUS_NA: _AddParamShort(mpModernMask, hi_Status, hi_NA); break; case ID_STATUS_OCCUPIED: _AddParamShort(mpModernMask, hi_Status, hi_OCCUPIED); break; + case ID_STATUS_FREECHAT: _AddParamShort(mpModernMask, hi_Status, hi_FREECHAT); break; case ID_STATUS_INVISIBLE: _AddParamShort(mpModernMask, hi_Status, hi_INVISIBLE); break; case ID_STATUS_IDLE: _AddParamShort(mpModernMask, hi_Status, hi_IDLE); break; default: _AddParamShort(mpModernMask, hi_Status, hi_OFFLINE); diff --git a/plugins/Clist_modern/src/modern_clcpaint.h b/plugins/Clist_modern/src/modern_clcpaint.h index d6bb60af40..20699e003c 100644 --- a/plugins/Clist_modern/src/modern_clcpaint.h +++ b/plugins/Clist_modern/src/modern_clcpaint.h @@ -62,6 +62,7 @@ private: hi_DND, hi_NA, hi_OCCUPIED, + hi_FREECHAT, hi_INVISIBLE, hi_IDLE, hi_OFFLINE, diff --git a/plugins/Clist_modern/src/modern_clisttray.cpp b/plugins/Clist_modern/src/modern_clisttray.cpp index 596a7256df..e464d57e8b 100644 --- a/plugins/Clist_modern/src/modern_clisttray.cpp +++ b/plugins/Clist_modern/src/modern_clisttray.cpp @@ -63,6 +63,7 @@ int GetStatusVal(int status) switch (status) { case ID_STATUS_OFFLINE: return 50; case ID_STATUS_ONLINE: return 100; + case ID_STATUS_FREECHAT: return 110; case ID_STATUS_INVISIBLE: return 120; case ID_STATUS_AWAY: return 200; case ID_STATUS_DND: return 210; diff --git a/plugins/Clist_modern/src/modern_clui.cpp b/plugins/Clist_modern/src/modern_clui.cpp index cf75e7b84e..6641cd1c62 100644 --- a/plugins/Clist_modern/src/modern_clui.cpp +++ b/plugins/Clist_modern/src/modern_clui.cpp @@ -119,7 +119,8 @@ OVERLAYICONINFO g_pAvatarOverlayIcons[MAX_STATUS_COUNT] = { "AVATAR_OVERLAY_DND", LPGEN("Do not disturb"), IDI_AVATAR_OVERLAY_DND, -1 }, { "AVATAR_OVERLAY_NA", LPGEN("Not available"), IDI_AVATAR_OVERLAY_NA, -1 }, { "AVATAR_OVERLAY_OCCUPIED", LPGEN("Occupied"), IDI_AVATAR_OVERLAY_OCCUPIED, -1 }, - { "AVATAR_OVERLAY_INVISIBLE", LPGEN("Invisible"), IDI_AVATAR_OVERLAY_INVISIBLE, -1 }, + { "AVATAR_OVERLAY_CHAT", LPGEN("Free for chat"), IDI_AVATAR_OVERLAY_CHAT, -1 }, + { "AVATAR_OVERLAY_INVISIBLE", LPGEN("Invisible"), IDI_AVATAR_OVERLAY_INVISIBLE, -1 } }; OVERLAYICONINFO g_pStatusOverlayIcons[MAX_STATUS_COUNT] = @@ -130,7 +131,8 @@ OVERLAYICONINFO g_pStatusOverlayIcons[MAX_STATUS_COUNT] = { "STATUS_OVERLAY_DND", LPGEN("Do not disturb"), IDI_STATUS_OVERLAY_DND, -1 }, { "STATUS_OVERLAY_NA", LPGEN("Not available"), IDI_STATUS_OVERLAY_NA, -1 }, { "STATUS_OVERLAY_OCCUPIED", LPGEN("Occupied"), IDI_STATUS_OVERLAY_OCCUPIED, -1 }, - { "STATUS_OVERLAY_INVISIBLE", LPGEN("Invisible"), IDI_STATUS_OVERLAY_INVISIBLE, -1 }, + { "STATUS_OVERLAY_CHAT", LPGEN("Free for chat"), IDI_STATUS_OVERLAY_CHAT, -1 }, + { "STATUS_OVERLAY_INVISIBLE", LPGEN("Invisible"), IDI_STATUS_OVERLAY_INVISIBLE, -1 } }; //////////////// CLUI CLASS IMPLEMENTATION // /////////////////////////////// diff --git a/plugins/Clist_modern/src/modern_contact.cpp b/plugins/Clist_modern/src/modern_contact.cpp index d3592fb2f7..78789e5d80 100644 --- a/plugins/Clist_modern/src/modern_contact.cpp +++ b/plugins/Clist_modern/src/modern_contact.cpp @@ -36,7 +36,8 @@ static statusModeOrder[] = { ID_STATUS_DND, 110 }, { ID_STATUS_NA, 450 }, { ID_STATUS_OCCUPIED, 100 }, - { ID_STATUS_INVISIBLE, 20 }, + { ID_STATUS_FREECHAT, 0 }, + { ID_STATUS_INVISIBLE, 20 } }; static int LocaleId = -1; diff --git a/plugins/Clist_modern/src/modern_rowheight_funcs.cpp b/plugins/Clist_modern/src/modern_rowheight_funcs.cpp index f9e3497a45..588ba21e21 100644 --- a/plugins/Clist_modern/src/modern_rowheight_funcs.cpp +++ b/plugins/Clist_modern/src/modern_rowheight_funcs.cpp @@ -324,7 +324,7 @@ BOOL RowHeights_Alloc(ClcData *dat, int size) static int contact_fonts[] = { FONTID_CONTACTS, FONTID_INVIS, FONTID_OFFLINE, FONTID_NOTONLIST, FONTID_OFFINVIS, - FONTID_AWAY, FONTID_DND, FONTID_NA, FONTID_OCCUPIED, FONTID_INVISIBLE }; + FONTID_AWAY, FONTID_DND, FONTID_NA, FONTID_OCCUPIED, FONTID_CHAT, FONTID_INVISIBLE }; static int other_fonts[] = { FONTID_OPENGROUPS, FONTID_OPENGROUPCOUNTS, FONTID_CLOSEDGROUPS, FONTID_CLOSEDGROUPCOUNTS, FONTID_DIVIDERS, FONTID_CONTACT_TIME }; diff --git a/plugins/Clist_modern/src/resource.h b/plugins/Clist_modern/src/resource.h index 4d1e111c47..ddaf7b5b40 100644 --- a/plugins/Clist_modern/src/resource.h +++ b/plugins/Clist_modern/src/resource.h @@ -71,6 +71,7 @@ #define IDI_AVATAR_OVERLAY_AWAY 362 #define IDI_AVATAR_OVERLAY_DND 363 #define IDI_AVATAR_OVERLAY_INVISIBLE 364 +#define IDI_AVATAR_OVERLAY_CHAT 366 #define IDI_ICQC1 367 #define IDI_ICQC2 368 #define IDI_ICQC3 369 @@ -93,6 +94,7 @@ #define IDI_STATUS_OVERLAY_AWAY 405 #define IDI_STATUS_OVERLAY_DND 406 #define IDI_STATUS_OVERLAY_INVISIBLE 407 +#define IDI_STATUS_OVERLAY_CHAT 409 #define IDR_TGA_DEFAULT_SKIN 413 #define IDR_MSF_DEFAULT_SKIN 413 #define IDD_OPT_CLUI_2 451 -- cgit v1.2.3