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/NewAwaySysMod/src/AwayOpt.cpp | 12 ++++++++++++ plugins/NewAwaySysMod/src/AwaySys.cpp | 1 + plugins/NewAwaySysMod/src/Client.cpp | 1 + plugins/NewAwaySysMod/src/MsgEventAdded.cpp | 1 + plugins/NewAwaySysMod/src/MsgTree.cpp | 2 ++ plugins/NewAwaySysMod/src/Properties.cpp | 1 + plugins/NewAwaySysMod/src/Properties.h | 4 +++- plugins/NewAwaySysMod/src/resource.h | 10 ++++++++-- plugins/NewAwaySysMod/src/stdafx.h | 1 + 9 files changed, 30 insertions(+), 3 deletions(-) (limited to 'plugins/NewAwaySysMod/src') diff --git a/plugins/NewAwaySysMod/src/AwayOpt.cpp b/plugins/NewAwaySysMod/src/AwayOpt.cpp index 9169604e39..66c463d752 100644 --- a/plugins/NewAwaySysMod/src/AwayOpt.cpp +++ b/plugins/NewAwaySysMod/src/AwayOpt.cpp @@ -104,6 +104,7 @@ static Dlg1DefMsgDlgItems[] = { { IDC_MESSAGEDLG_DEF_NA, ID_STATUS_NA, ILI_PROTO_NA }, { IDC_MESSAGEDLG_DEF_OCC, ID_STATUS_OCCUPIED, ILI_PROTO_OCC }, { IDC_MESSAGEDLG_DEF_DND, ID_STATUS_DND, ILI_PROTO_DND }, + { IDC_MESSAGEDLG_DEF_FFC, ID_STATUS_FREECHAT, ILI_PROTO_FFC }, { IDC_MESSAGEDLG_DEF_INV, ID_STATUS_INVISIBLE, ILI_PROTO_INV } }; @@ -262,6 +263,7 @@ static INT_PTR CALLBACK MessagesOptDlg(HWND hwndDlg, UINT msg, WPARAM wParam, LP case IDC_MESSAGEDLG_DEF_NA: case IDC_MESSAGEDLG_DEF_OCC: case IDC_MESSAGEDLG_DEF_DND: + case IDC_MESSAGEDLG_DEF_FFC: case IDC_MESSAGEDLG_DEF_INV: for (int i = 0; i < _countof(Dlg1DefMsgDlgItems); i++) { if (LOWORD(wParam) == Dlg1DefMsgDlgItems[i].DlgItem) { @@ -344,6 +346,7 @@ static Dlg2StatusButtons[] = { { IDC_MOREOPTDLG_DONTPOPDLG_NA, ID_STATUS_NA, ILI_PROTO_NA }, { IDC_MOREOPTDLG_DONTPOPDLG_OCC, ID_STATUS_OCCUPIED, ILI_PROTO_OCC }, { IDC_MOREOPTDLG_DONTPOPDLG_DND, ID_STATUS_DND, ILI_PROTO_DND }, + { IDC_MOREOPTDLG_DONTPOPDLG_FFC, ID_STATUS_FREECHAT, ILI_PROTO_FFC }, { IDC_MOREOPTDLG_DONTPOPDLG_INV, ID_STATUS_INVISIBLE, ILI_PROTO_INV } }; @@ -410,6 +413,7 @@ static INT_PTR CALLBACK MoreOptDlg(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM case IDC_MOREOPTDLG_DONTPOPDLG_NA: case IDC_MOREOPTDLG_DONTPOPDLG_OCC: case IDC_MOREOPTDLG_DONTPOPDLG_DND: + case IDC_MOREOPTDLG_DONTPOPDLG_FFC: case IDC_MOREOPTDLG_DONTPOPDLG_INV: SendMessage(GetParent(hwndDlg), PSM_CHANGED, (WPARAM)hwndDlg, 0); return 0; @@ -464,6 +468,7 @@ Dlg3StatusButtons[] = { { IDC_REPLYDLG_DISABLE_NA, ID_STATUS_NA, ILI_PROTO_NA }, { IDC_REPLYDLG_DISABLE_OCC, ID_STATUS_OCCUPIED, ILI_PROTO_OCC }, { IDC_REPLYDLG_DISABLE_DND, ID_STATUS_DND, ILI_PROTO_DND }, + { IDC_REPLYDLG_DISABLE_FFC, ID_STATUS_FREECHAT, ILI_PROTO_FFC }, { IDC_REPLYDLG_DISABLE_INV, ID_STATUS_INVISIBLE, ILI_PROTO_INV }, }; @@ -588,6 +593,7 @@ INT_PTR CALLBACK AutoreplyOptDlg(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM l case IDC_REPLYDLG_DISABLE_NA: case IDC_REPLYDLG_DISABLE_OCC: case IDC_REPLYDLG_DISABLE_DND: + case IDC_REPLYDLG_DISABLE_FFC: case IDC_REPLYDLG_DISABLE_INV: if (!ChangeLock) SendMessage(GetParent(hwndDlg), PSM_CHANGED, (WPARAM)hwndDlg, 0); @@ -636,6 +642,7 @@ Dlg4DefMsgDlgItems[] = { { IDC_MESSAGEDLG_DEF_NA, ID_STATUS_NA, ILI_PROTO_NA }, { IDC_MESSAGEDLG_DEF_OCC, ID_STATUS_OCCUPIED, ILI_PROTO_OCC }, { IDC_MESSAGEDLG_DEF_DND, ID_STATUS_DND, ILI_PROTO_DND }, + { IDC_MESSAGEDLG_DEF_FFC, ID_STATUS_FREECHAT, ILI_PROTO_FFC }, { IDC_MESSAGEDLG_DEF_INV, ID_STATUS_INVISIBLE, ILI_PROTO_INV } }; @@ -1034,6 +1041,7 @@ void InitOptions() g_MessagesOptPage.Items.AddElem(new COptItem_Checkbox(IDC_MESSAGEDLG_DEF_NA, nullptr, DBVT_BYTE, 0, 0, IDC_MESSAGEDLG_MSGTREE)); g_MessagesOptPage.Items.AddElem(new COptItem_Checkbox(IDC_MESSAGEDLG_DEF_OCC, nullptr, DBVT_BYTE, 0, 0, IDC_MESSAGEDLG_MSGTREE)); g_MessagesOptPage.Items.AddElem(new COptItem_Checkbox(IDC_MESSAGEDLG_DEF_DND, nullptr, DBVT_BYTE, 0, 0, IDC_MESSAGEDLG_MSGTREE)); + g_MessagesOptPage.Items.AddElem(new COptItem_Checkbox(IDC_MESSAGEDLG_DEF_FFC, nullptr, DBVT_BYTE, 0, 0, IDC_MESSAGEDLG_MSGTREE)); g_MessagesOptPage.Items.AddElem(new COptItem_Checkbox(IDC_MESSAGEDLG_DEF_INV, nullptr, DBVT_BYTE, 0, 0, IDC_MESSAGEDLG_MSGTREE)); TreeItemArray DefMsgTree; @@ -1055,6 +1063,8 @@ void InitOptions() DefMsgTree.AddElem(CTreeItem(TranslateT("Occupied"), ParentID1, ID++, 0, TranslateT("Not right now."))); g_MsgTreePage.Items.AddElem(new COptItem_IntDBSetting(IDS_MESSAGEDLG_DEF_DND, StatusToDBSetting(ID_STATUS_DND, MESSAGES_DB_MSGTREEDEF), DBVT_WORD, false, ID)); DefMsgTree.AddElem(CTreeItem(TranslateT("Do not disturb"), ParentID1, ID++, 0, TranslateT("Give a guy some peace, would ya?"))); + g_MsgTreePage.Items.AddElem(new COptItem_IntDBSetting(IDS_MESSAGEDLG_DEF_FFC, StatusToDBSetting(ID_STATUS_FREECHAT, MESSAGES_DB_MSGTREEDEF), DBVT_WORD, false, ID)); + DefMsgTree.AddElem(CTreeItem(TranslateT("Free for chat"), ParentID1, ID++, 0, TranslateT("I'm a chatbot!"))); g_MsgTreePage.Items.AddElem(new COptItem_IntDBSetting(IDS_MESSAGEDLG_DEF_INV, StatusToDBSetting(ID_STATUS_INVISIBLE, MESSAGES_DB_MSGTREEDEF), DBVT_WORD, false, ID)); DefMsgTree.AddElem(CTreeItem(TranslateT("Invisible"), ParentID1, ID++, 0, TranslateT("I'm hiding from the mafia."))); g_MsgTreePage.Items.AddElem(new COptItem_TreeCtrl(IDV_MSGTREE, "MsgTree", DefMsgTree, RootItems, 0, "Text")); @@ -1084,6 +1094,7 @@ void InitOptions() g_MoreOptPage.Items.AddElem(new COptItem_Checkbox(IDC_MOREOPTDLG_DONTPOPDLG_NA, "DontPopDlg", DBVT_WORD, MOREOPTDLG_DEF_DONTPOPDLG, SF_NA)); g_MoreOptPage.Items.AddElem(new COptItem_Checkbox(IDC_MOREOPTDLG_DONTPOPDLG_OCC, "DontPopDlg", DBVT_WORD, MOREOPTDLG_DEF_DONTPOPDLG, SF_OCC)); g_MoreOptPage.Items.AddElem(new COptItem_Checkbox(IDC_MOREOPTDLG_DONTPOPDLG_DND, "DontPopDlg", DBVT_WORD, MOREOPTDLG_DEF_DONTPOPDLG, SF_DND)); + g_MoreOptPage.Items.AddElem(new COptItem_Checkbox(IDC_MOREOPTDLG_DONTPOPDLG_FFC, "DontPopDlg", DBVT_WORD, MOREOPTDLG_DEF_DONTPOPDLG, SF_FFC)); g_MoreOptPage.Items.AddElem(new COptItem_Checkbox(IDC_MOREOPTDLG_DONTPOPDLG_INV, "DontPopDlg", DBVT_WORD, MOREOPTDLG_DEF_DONTPOPDLG, SF_INV)); g_AutoreplyOptPage.Items.AddElem(new COptItem_Checkbox(IDC_REPLYDLG_ENABLEREPLY, DB_ENABLEREPLY, DBVT_BYTE, AUTOREPLY_DEF_REPLY)); @@ -1105,6 +1116,7 @@ void InitOptions() g_AutoreplyOptPage.Items.AddElem(new COptItem_Checkbox(IDC_REPLYDLG_DISABLE_NA, "DisableReply", DBVT_WORD, AUTOREPLY_DEF_DISABLEREPLY, SF_NA, IDC_REPLYDLG_ENABLEREPLY)); g_AutoreplyOptPage.Items.AddElem(new COptItem_Checkbox(IDC_REPLYDLG_DISABLE_OCC, "DisableReply", DBVT_WORD, AUTOREPLY_DEF_DISABLEREPLY, SF_OCC, IDC_REPLYDLG_ENABLEREPLY)); g_AutoreplyOptPage.Items.AddElem(new COptItem_Checkbox(IDC_REPLYDLG_DISABLE_DND, "DisableReply", DBVT_WORD, AUTOREPLY_DEF_DISABLEREPLY, SF_DND, IDC_REPLYDLG_ENABLEREPLY)); + g_AutoreplyOptPage.Items.AddElem(new COptItem_Checkbox(IDC_REPLYDLG_DISABLE_FFC, "DisableReply", DBVT_WORD, AUTOREPLY_DEF_DISABLEREPLY, SF_FFC, IDC_REPLYDLG_ENABLEREPLY)); g_AutoreplyOptPage.Items.AddElem(new COptItem_Checkbox(IDC_REPLYDLG_DISABLE_INV, "DisableReply", DBVT_WORD, AUTOREPLY_DEF_DISABLEREPLY, SF_INV, IDC_REPLYDLG_ENABLEREPLY)); g_AutoreplyOptPage.Items.AddElem(new COptItem_Generic(IDC_REPLYDLG_STATIC_FORMAT, IDC_REPLYDLG_ENABLEREPLY)); g_AutoreplyOptPage.Items.AddElem(new COptItem_Edit(IDC_REPLYDLG_PREFIX, "ReplyPrefix", AWAY_MSGDATA_MAX, AUTOREPLY_DEF_PREFIX, IDC_REPLYDLG_ENABLEREPLY)); diff --git a/plugins/NewAwaySysMod/src/AwaySys.cpp b/plugins/NewAwaySysMod/src/AwaySys.cpp index 93872e8f48..596f77e72f 100644 --- a/plugins/NewAwaySysMod/src/AwaySys.cpp +++ b/plugins/NewAwaySysMod/src/AwaySys.cpp @@ -134,6 +134,7 @@ static StatusModeList[] = { { ID_STATUS_NA, IDC_REPLYDLG_DISABLE_NA, IDC_MOREOPTDLG_DONTPOPDLG_NA }, { ID_STATUS_OCCUPIED, IDC_REPLYDLG_DISABLE_OCC, IDC_MOREOPTDLG_DONTPOPDLG_OCC }, { ID_STATUS_DND, IDC_REPLYDLG_DISABLE_DND, IDC_MOREOPTDLG_DONTPOPDLG_DND }, + { ID_STATUS_FREECHAT, IDC_REPLYDLG_DISABLE_FFC, IDC_MOREOPTDLG_DONTPOPDLG_FFC }, { ID_STATUS_INVISIBLE, IDC_REPLYDLG_DISABLE_INV, IDC_MOREOPTDLG_DONTPOPDLG_INV }, }; diff --git a/plugins/NewAwaySysMod/src/Client.cpp b/plugins/NewAwaySysMod/src/Client.cpp index 33f6eb3e6d..1c2d519969 100644 --- a/plugins/NewAwaySysMod/src/Client.cpp +++ b/plugins/NewAwaySysMod/src/Client.cpp @@ -110,6 +110,7 @@ void ChangeProtoMessages(char* szProto, int iMode, const TCString &Msg) ID_STATUS_NA, "Na", ID_STATUS_DND, "Dnd", ID_STATUS_OCCUPIED, "Occupied", + ID_STATUS_FREECHAT, "FreeChat", ID_STATUS_INVISIBLE, "Inv", ID_STATUS_IDLE, "Idl" }; diff --git a/plugins/NewAwaySysMod/src/MsgEventAdded.cpp b/plugins/NewAwaySysMod/src/MsgEventAdded.cpp index 72dcceb839..f66cd6dc24 100644 --- a/plugins/NewAwaySysMod/src/MsgEventAdded.cpp +++ b/plugins/NewAwaySysMod/src/MsgEventAdded.cpp @@ -33,6 +33,7 @@ static StatusModeList[] = { ID_STATUS_NA, IDC_REPLYDLG_DISABLE_NA, IDC_MOREOPTDLG_DONTPOPDLG_NA }, { ID_STATUS_OCCUPIED, IDC_REPLYDLG_DISABLE_OCC, IDC_MOREOPTDLG_DONTPOPDLG_OCC }, { ID_STATUS_DND, IDC_REPLYDLG_DISABLE_DND, IDC_MOREOPTDLG_DONTPOPDLG_DND }, + { ID_STATUS_FREECHAT, IDC_REPLYDLG_DISABLE_FFC, IDC_MOREOPTDLG_DONTPOPDLG_FFC }, { ID_STATUS_INVISIBLE, IDC_REPLYDLG_DISABLE_INV, IDC_MOREOPTDLG_DONTPOPDLG_INV }, }; diff --git a/plugins/NewAwaySysMod/src/MsgTree.cpp b/plugins/NewAwaySysMod/src/MsgTree.cpp index 7304da2dd8..8917fcd961 100644 --- a/plugins/NewAwaySysMod/src/MsgTree.cpp +++ b/plugins/NewAwaySysMod/src/MsgTree.cpp @@ -42,6 +42,7 @@ SettingsList[] = { IDS_MESSAGEDLG_DEF_NA, ID_STATUS_NA, IDR_MSGTREEMENU_DEF_NA }, { IDS_MESSAGEDLG_DEF_OCC, ID_STATUS_OCCUPIED, IDR_MSGTREEMENU_DEF_OCC }, { IDS_MESSAGEDLG_DEF_DND, ID_STATUS_DND, IDR_MSGTREEMENU_DEF_DND }, + { IDS_MESSAGEDLG_DEF_FFC, ID_STATUS_FREECHAT, IDR_MSGTREEMENU_DEF_FFC }, { IDS_MESSAGEDLG_DEF_INV, ID_STATUS_INVISIBLE, IDR_MSGTREEMENU_DEF_INV }, }; @@ -418,6 +419,7 @@ LRESULT CALLBACK MsgTreeSubclassProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM case IDR_MSGTREEMENU_DEF_NA: case IDR_MSGTREEMENU_DEF_OCC: case IDR_MSGTREEMENU_DEF_DND: + case IDR_MSGTREEMENU_DEF_FFC: case IDR_MSGTREEMENU_DEF_INV: for (int i = 0; i < _countof(SettingsList); i++) { if (SettingsList[i].MenuItemID == MenuResult) { diff --git a/plugins/NewAwaySysMod/src/Properties.cpp b/plugins/NewAwaySysMod/src/Properties.cpp index a60b45b70f..e4e1e2b22d 100644 --- a/plugins/NewAwaySysMod/src/Properties.cpp +++ b/plugins/NewAwaySysMod/src/Properties.cpp @@ -305,6 +305,7 @@ TCString CProtoSettings::GetMsgFormat(int Flags, int *pOrder) IDS_MESSAGEDLG_DEF_NA, ID_STATUS_NA, IDS_MESSAGEDLG_DEF_OCC, ID_STATUS_OCCUPIED, IDS_MESSAGEDLG_DEF_DND, ID_STATUS_DND, + IDS_MESSAGEDLG_DEF_FFC, ID_STATUS_FREECHAT, IDS_MESSAGEDLG_DEF_INV, ID_STATUS_INVISIBLE, }; diff --git a/plugins/NewAwaySysMod/src/Properties.h b/plugins/NewAwaySysMod/src/Properties.h index 9a445d8a2d..09790acdb5 100644 --- a/plugins/NewAwaySysMod/src/Properties.h +++ b/plugins/NewAwaySysMod/src/Properties.h @@ -82,6 +82,7 @@ private: #define ILI_PROTO_NA 4 #define ILI_PROTO_OCC 5 #define ILI_PROTO_DND 6 +#define ILI_PROTO_FFC 7 #define ILI_PROTO_INV 8 #define ILI_DOT 11 #define ILI_MSGICON 12 @@ -97,7 +98,7 @@ private: static unsigned Icons[] = { SKINICON_EVENT_MESSAGE | IL_SKINICON, SKINICON_EVENT_FILE | IL_SKINICON, - ID_STATUS_ONLINE | IL_PROTOICON, ID_STATUS_AWAY | IL_PROTOICON, ID_STATUS_NA | IL_PROTOICON, ID_STATUS_OCCUPIED | IL_PROTOICON, ID_STATUS_DND | IL_PROTOICON, ID_STATUS_INVISIBLE | IL_PROTOICON, + ID_STATUS_ONLINE | IL_PROTOICON, ID_STATUS_AWAY | IL_PROTOICON, ID_STATUS_NA | IL_PROTOICON, ID_STATUS_OCCUPIED | IL_PROTOICON, ID_STATUS_DND | IL_PROTOICON, ID_STATUS_FREECHAT | IL_PROTOICON, ID_STATUS_INVISIBLE | IL_PROTOICON, IDI_DOT, IDI_MSGICON, IDI_IGNORE, IDI_SOE_ENABLED, IDI_SOE_DISABLED, IDI_NEWMESSAGE, IDI_NEWCATEGORY, IDI_SAVE, IDI_SAVEASNEW, IDI_DELETE, IDI_SETTINGS }; @@ -286,6 +287,7 @@ StatusSettings[] = { { ID_STATUS_NA, "Na" }, { ID_STATUS_DND, "Dnd" }, { ID_STATUS_OCCUPIED, "Occ" }, + { ID_STATUS_FREECHAT, "Ffc" }, { ID_STATUS_INVISIBLE, "Inv" }, { ID_STATUS_IDLE, "Idle" } }; diff --git a/plugins/NewAwaySysMod/src/resource.h b/plugins/NewAwaySysMod/src/resource.h index 144ea69431..bbf83c6415 100644 --- a/plugins/NewAwaySysMod/src/resource.h +++ b/plugins/NewAwaySysMod/src/resource.h @@ -116,6 +116,7 @@ #define IDC_POPUPOPTDLG_NANOTIFY 1085 #define IDC_POPUPOPTDLG_OCCNOTIFY 1086 #define IDC_POPUPOPTDLG_DNDNOTIFY 1087 +#define IDC_POPUPOPTDLG_FFCNOTIFY 1088 #define IDC_POPUPOPTDLG_DEFBGCOLOUR 1089 #define IDC_POPUPOPTDLG_DEFTEXTCOLOUR 1090 #define IDC_NOTIFYVARS_STATIC_TIME 1091 @@ -143,6 +144,7 @@ #define IDC_MESSAGEDLG_DEF_NA 1114 #define IDC_MESSAGEDLG_DEF_OCC 1115 #define IDC_MESSAGEDLG_DEF_DND 1116 +#define IDC_MESSAGEDLG_DEF_FFC 1117 #define IDC_MESSAGEDLG_MSGTITLE 1120 #define IDC_MOREOPTDLG_DONTPOPDLG_INV 1120 #define IDC_MESSAGEDLG_MSGTREE 1121 @@ -152,6 +154,7 @@ #define IDC_MESSAGEDLG_NEWMSG 1123 #define IDC_REPLYDLG_DISABLE_OCC 1123 #define IDC_REPLYDLG_DISABLE_DND 1124 +#define IDC_REPLYDLG_DISABLE_FFC 1125 #define IDC_REPLYDLG_DISABLE_INV 1128 #define IDC_MOREOPTDLG_RECENTMSGSCOUNT 1129 #define IDC_MOREOPTDLG_UPDATEMSGSPERIOD 1130 @@ -162,6 +165,7 @@ #define IDC_MOREOPTDLG_DONTPOPDLG_NA 1135 #define IDC_MOREOPTDLG_DONTPOPDLG_OCC 1136 #define IDC_MOREOPTDLG_DONTPOPDLG_DND 1137 +#define IDC_MOREOPTDLG_DONTPOPDLG_FFC 1138 #define IDC_REPLYDLG_STATIC_TIMES 1141 #define IDC_MESSAGEDLG_TEST 1142 #define IDC_MOREOPTDLG_EDITMESSAGES 1142 @@ -201,7 +205,8 @@ #define IDS_MESSAGEDLG_DEF_NA 20002 #define IDS_MESSAGEDLG_DEF_OCC 20003 #define IDS_MESSAGEDLG_DEF_DND 20004 -#define IDS_MESSAGEDLG_DEF_INV 20005 +#define IDS_MESSAGEDLG_DEF_FFC 20005 +#define IDS_MESSAGEDLG_DEF_INV 20006 #define IDV_MSGTREE 20009 #define IDS_SAWAYMSG_SHOWMSGTREE 20100 #define IDS_SAWAYMSG_SHOWCONTACTTREE 20101 @@ -222,7 +227,8 @@ #define IDR_MSGTREEMENU_DEF_NA 40039 #define IDR_MSGTREEMENU_DEF_OCC 40040 #define IDR_MSGTREEMENU_DEF_DND 40041 -#define IDR_MSGTREEMENU_DEF_INV 40042 +#define IDR_MSGTREEMENU_DEF_FFC 40042 +#define IDR_MSGTREEMENU_DEF_INV 40043 #define IDM_SAM_OPTIONS_DISABLEVARIABLES 40047 #define IDC_READAWAYMSG_MSG 54765 diff --git a/plugins/NewAwaySysMod/src/stdafx.h b/plugins/NewAwaySysMod/src/stdafx.h index d73d285e65..c71216797b 100644 --- a/plugins/NewAwaySysMod/src/stdafx.h +++ b/plugins/NewAwaySysMod/src/stdafx.h @@ -91,6 +91,7 @@ #define SF_NA 0x8 #define SF_OCC 0x10 #define SF_DND 0x20 +#define SF_FFC 0x40 #define SF_INV 0x80 #define SF_OTHER 0x80000000 -- cgit v1.2.3