diff options
Diffstat (limited to 'protocols/Teams/src/teams_mood.cpp')
-rw-r--r-- | protocols/Teams/src/teams_mood.cpp | 146 |
1 files changed, 0 insertions, 146 deletions
diff --git a/protocols/Teams/src/teams_mood.cpp b/protocols/Teams/src/teams_mood.cpp deleted file mode 100644 index fb366ac97a..0000000000 --- a/protocols/Teams/src/teams_mood.cpp +++ /dev/null @@ -1,146 +0,0 @@ -/* -Copyright (c) 2025 Miranda NG team (https://miranda-ng.org) - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation version 2 -of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -#include "stdafx.h" - -struct -{ - const char *ss; - const wchar_t *defStatus; - int defIcon; -} -static moods[] = -{ - { "", LPGENW("None") }, - { "", LPGENW("Custom emoji") }, - { "brb", LPGENW("Be right back") }, - { "burger", LPGENW("Out for lunch") }, - { "wait", LPGENW("In meetings") }, - { "learn", LPGENW("At school") }, - { "movie", LPGENW("At the movies") }, - { "plane", LPGENW("Traveling") }, - { "party", LPGENW("Celebrating") }, - { "car", LPGENW("Driving") }, - { "skip", LPGENW("At the gym") }, - { "wfh", LPGENW("Working from home") }, -}; - -struct SetStatusMsgRequest : public AsyncHttpRequest -{ - SetStatusMsgRequest(CTeamsProto *ppro) : - AsyncHttpRequest(REQUEST_POST, HOST_API, "/users/self/profile/partial") - { - int m_iMood = ppro->m_iMood; - auto &pMood = moods[m_iMood]; - - JSONNode node, payload; - payload.set_name("payload"); - - CMStringW s1, s2; - switch (m_iMood) { - case 0: // none - s1 = ppro->m_wstrMoodMessage; - break; - case 1: // custom - s1.Format(L"(%x) %s", Utf16toUtf32(ppro->m_wstrMoodEmoji), (wchar_t *)ppro->m_wstrMoodMessage); - break; - default: - s1.Format(L"(%S) %s", pMood.ss, (wchar_t *)ppro->m_wstrMoodMessage); - break; - } - payload << WCHAR_PARAM("mood", s1); - - if (m_iMood > 1) - s2.Format(L"<ss type=\"%S\">(%S)</ss>%s", pMood.ss, pMood.ss, (wchar_t*)ppro->m_wstrMoodMessage); - else if (m_iMood == 1) { - int code = Utf16toUtf32(ppro->m_wstrMoodEmoji); - s2.Format(L"<ss type=\"%x\">(%x)</ss>%s", code, code, (wchar_t *)ppro->m_wstrMoodMessage); - } - - if (!s2.IsEmpty()) - payload << WCHAR_PARAM("richMood", s2); - - node << payload; - m_szParam = node.write().c_str(); - } -}; - -int getMoodIndex(const char *pszMood) -{ - for (auto &it : moods) - if (!mir_strcmpi(it.ss, pszMood)) - return int(&it - moods); - - return -1; -} - -///////////////////////////////////////////////////////////////////////////////////////// -// Mood dialog - -class CMoodDialog : public CTeamsDlgBase -{ - CCtrlEdit edtText, edtEmoji; - CCtrlCombo cmbMoods; - -public: - CMoodDialog(CTeamsProto *ppro) : - CTeamsDlgBase(ppro, IDD_MOOD), - edtText(this, IDC_MOOD_TEXT), - edtEmoji(this, IDC_MOOD_EMOJI), - cmbMoods(this, IDC_MOOD_COMBO) - { - CreateLink(edtText, ppro->m_wstrMoodMessage); - CreateLink(edtEmoji, ppro->m_wstrMoodEmoji); - - cmbMoods.OnChange = Callback(this, &CMoodDialog::onChangeSel_Mood); - } - - bool OnInitDialog() override - { - for (auto &it : moods) - cmbMoods.AddString(TranslateW(it.defStatus), int(&it - moods)); - cmbMoods.SetCurSel(m_proto->m_iMood); - onChangeSel_Mood(0); - return true; - } - - bool OnApply() override - { - m_proto->m_iMood = cmbMoods.GetCurSel(); - - CMStringA szSetting(FORMAT, "Mood%d", (int)m_proto->m_iMood); - m_proto->setWString(szSetting, m_proto->m_wstrMoodMessage); - - m_proto->PushRequest(new SetStatusMsgRequest(m_proto)); - return true; - } - - void onChangeSel_Mood(CCtrlCombo *) - { - int m_iMood = cmbMoods.GetCurSel(); - edtEmoji.Enable(m_iMood == 1); - - CMStringA szSetting(FORMAT, "Mood%d", m_iMood); - edtText.SetText(m_proto->getMStringW(szSetting)); - } -}; - -INT_PTR CTeamsProto::SvcSetMood(WPARAM, LPARAM) -{ - CMoodDialog(this).DoModal(); - return 0; -} |