summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2016-04-28 11:27:27 +0000
committerGeorge Hazan <george.hazan@gmail.com>2016-04-28 11:27:27 +0000
commit7c2e75f14ad9dd186a85b17587c21c2561286581 (patch)
treefcd4db66a9b149cb7ee480a89d3f20582bea2823
parent01433b81e943d57b1ec2ebb5758bd2a85d836753 (diff)
- 2nd & 3rd lines handling unification;
- no need to copy data to make async calls; - no need to launch a thread to save a couple of msecs on a very large roster; - unused code & params cleaning git-svn-id: http://svn.miranda-ng.org/main/trunk@16785 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
-rw-r--r--plugins/Clist_modern/src/modern_awaymsg.cpp15
-rw-r--r--plugins/Clist_modern/src/modern_cache_funcs.h9
-rw-r--r--plugins/Clist_modern/src/modern_cachefuncs.cpp115
-rw-r--r--plugins/Clist_modern/src/modern_clc.cpp79
-rw-r--r--plugins/Clist_modern/src/modern_clc.h87
-rw-r--r--plugins/Clist_modern/src/modern_clcitems.cpp4
-rw-r--r--plugins/Clist_modern/src/modern_clcpaint.cpp28
-rw-r--r--plugins/Clist_modern/src/modern_clcutils.cpp60
-rw-r--r--plugins/Clist_modern/src/modern_clist.h4
-rw-r--r--plugins/Clist_modern/src/modern_clistmod.cpp2
-rw-r--r--plugins/Clist_modern/src/modern_clistsettings.cpp93
-rw-r--r--plugins/Clist_modern/src/modern_clui.cpp20
-rw-r--r--plugins/Clist_modern/src/modern_commonprototypes.h5
-rw-r--r--plugins/Clist_modern/src/modern_gettextasync.cpp172
-rw-r--r--plugins/Clist_modern/src/modern_gettextasync.h6
-rw-r--r--plugins/Clist_modern/src/modern_rowheight_funcs.cpp34
-rw-r--r--plugins/Clist_modern/src/modern_static_clui.h5
-rw-r--r--plugins/Clist_modern/src/stdafx.h3
-rw-r--r--plugins/Clist_nicer/src/clc.cpp49
-rw-r--r--plugins/Clist_nicer/src/clc.h1
20 files changed, 179 insertions, 612 deletions
diff --git a/plugins/Clist_modern/src/modern_awaymsg.cpp b/plugins/Clist_modern/src/modern_awaymsg.cpp
index 7a10a0cbb4..0cdae03c29 100644
--- a/plugins/Clist_modern/src/modern_awaymsg.cpp
+++ b/plugins/Clist_modern/src/modern_awaymsg.cpp
@@ -78,9 +78,6 @@ static void amThreadProc(void *)
{
Netlib_Logf(NULL, "amThreadProc thread start");
- ClcCacheEntry dnce;
- memset(&dnce, 0, sizeof(dnce));
-
while (!MirandaExiting()) {
MCONTACT hContact = amGetCurrentChain();
while (hContact) {
@@ -90,22 +87,20 @@ static void amThreadProc(void *)
if (MirandaExiting())
goto LBL_Exit;
}
- CListSettings_FreeCacheItemData(&dnce);
- dnce.hContact = hContact;
- Sync(CLUI_SyncGetPDNCE, (WPARAM)0, (LPARAM)&dnce);
+
+ ClcCacheEntry *pdnce = pcli->pfnGetCacheEntry(hContact);
HANDLE ACK = 0;
- if (dnce.ApparentMode != ID_STATUS_OFFLINE) //don't ask if contact is always invisible (should be done with protocol)
+ if (pdnce->ApparentMode != ID_STATUS_OFFLINE) //don't ask if contact is always invisible (should be done with protocol)
ACK = (HANDLE)CallContactService(hContact, PSS_GETAWAYMSG, 0, 0);
if (!ACK) {
ACKDATA ack;
ack.hContact = hContact;
ack.type = ACKTYPE_AWAYMSG;
ack.result = ACKRESULT_FAILED;
- ack.szModule = dnce.m_pszProto;
- ClcDoProtoAck(hContact, &ack);
+ ack.szModule = pdnce->m_pszProto;
+ ClcDoProtoAck(&ack);
}
- CListSettings_FreeCacheItemData(&dnce);
amRequestTick = time;
hContact = amGetCurrentChain();
if (hContact) {
diff --git a/plugins/Clist_modern/src/modern_cache_funcs.h b/plugins/Clist_modern/src/modern_cache_funcs.h
index b518c8bcd9..c7316308c2 100644
--- a/plugins/Clist_modern/src/modern_cache_funcs.h
+++ b/plugins/Clist_modern/src/modern_cache_funcs.h
@@ -32,15 +32,12 @@ Created by Pescuma
#include "modern_clc.h"
#include "modern_commonprototypes.h"
-void Cache_GetText(ClcData *dat, ClcContact *contact, BOOL forceRenew);
+void Cache_GetText(ClcData *dat, ClcContact *contact);
void Cache_GetFirstLineText(ClcData *dat, ClcContact *contact);
-void Cache_GetSecondLineText(SHORTDATA *dat, ClcCacheEntry *pdnce);
-void Cache_GetThirdLineText(SHORTDATA *dat, ClcCacheEntry *pdnce);
+void Cache_GetNthLineText(ClcData *dat, ClcCacheEntry *pdnce, int n);
void Cache_GetAvatar(ClcData *dat, ClcContact *contact);
void Cache_GetTimezone(ClcData *dat, MCONTACT hContact);
-int Cache_GetLineText(ClcCacheEntry *pdnce, int type, LPTSTR text, int text_size, TCHAR *variable_text, BOOL xstatus_has_priority,
- BOOL show_status_if_no_away, BOOL show_listening_if_no_away, BOOL use_name_and_message_for_xstatus,
- BOOL pdnce_time_show_only_if_different);
+int Cache_GetLineText(ClcCacheEntry *pdnce, int type, LPTSTR text, int text_size, ClcLineInfo &line);
void amRequestAwayMsg(MCONTACT hContact);
diff --git a/plugins/Clist_modern/src/modern_cachefuncs.cpp b/plugins/Clist_modern/src/modern_cachefuncs.cpp
index af7a5d4ff7..59f54be0f7 100644
--- a/plugins/Clist_modern/src/modern_cachefuncs.cpp
+++ b/plugins/Clist_modern/src/modern_cachefuncs.cpp
@@ -31,7 +31,6 @@ Modified by FYR
#include "stdafx.h"
#include "modern_cache_funcs.h"
#include "newpluginapi.h"
-#include "./modern_gettextasync.h"
#include "modern_sync.h"
typedef BOOL(*ExecuteOnAllContactsFuncPtr) (ClcContact *contact, BOOL subcontact, void *param);
@@ -43,9 +42,6 @@ static int CopySkipUnprintableChars(TCHAR *to, TCHAR * buf, DWORD size);
static BOOL ExecuteOnAllContacts(ClcData *dat, ExecuteOnAllContactsFuncPtr func, void *param);
static BOOL ExecuteOnAllContactsOfGroup(ClcGroup *group, ExecuteOnAllContactsFuncPtr func, void *param);
-int CLUI_SyncGetShortData(WPARAM wParam, LPARAM lParam);
-void CListSettings_FreeCacheItemData(ClcCacheEntry *pDst);
-void CListSettings_FreeCacheItemDataOption(ClcCacheEntry *pDst, DWORD flag);
/////////////////////////////////////////////////////////////////////////////////////////
// Get time zone for contact
@@ -65,16 +61,19 @@ void Cache_GetTimezone(ClcData *dat, MCONTACT hContact)
/////////////////////////////////////////////////////////////////////////////////////////
// Get all lines of text
//
-void Cache_GetText(ClcData *dat, ClcContact *contact, BOOL forceRenew)
+void Cache_GetText(ClcData *dat, ClcContact *contact)
{
Cache_GetFirstLineText(dat, contact);
+
if (!dat->force_in_dialog) {
- if ((dat->second_line_show && (forceRenew || contact->pce->szSecondLineText == NULL)) || (dat->third_line_show && (forceRenew || contact->pce->szThirdLineText == NULL)))
- gtaAddRequest(dat, contact->hContact);
+ if (dat->secondLine.show)
+ Cache_GetNthLineText(dat, contact->pce, 2);
+ if (dat->thirdLine.show)
+ Cache_GetNthLineText(dat, contact->pce, 3);
}
}
-void CSmileyString::AddListeningToIcon(SHORTDATA *dat, TCHAR *szText)
+void CSmileyString::AddListeningToIcon(ClcData *dat, TCHAR *szText)
{
iMaxSmileyHeight = 0;
DestroySmileyList();
@@ -173,7 +172,7 @@ void CSmileyString::DestroySmileyList()
/////////////////////////////////////////////////////////////////////////////////////////
// Parsing of text for smiley
//
-void CSmileyString::ReplaceSmileys(SHORTDATA *dat, ClcCacheEntry *pdnce, TCHAR * szText, BOOL replace_smileys)
+void CSmileyString::ReplaceSmileys(ClcData *dat, ClcCacheEntry *pdnce, TCHAR * szText, BOOL replace_smileys)
{
int last_pos = 0;
iMaxSmileyHeight = 0;
@@ -382,11 +381,8 @@ int GetStatusMessage(TCHAR *text, int text_size, ClcCacheEntry *pdnce, BOOL xsta
/////////////////////////////////////////////////////////////////////////////////////////
// Get the text for specified lines
-//
-int Cache_GetLineText(
- ClcCacheEntry *pdnce, int type, LPTSTR text, int text_size, TCHAR *variable_text, BOOL xstatus_has_priority,
- BOOL show_status_if_no_away, BOOL show_listening_if_no_away, BOOL use_name_and_message_for_xstatus,
- BOOL pdnce_time_show_only_if_different)
+
+int Cache_GetLineText(ClcCacheEntry *pdnce, int type, LPTSTR text, int text_size, ClcLineInfo &line)
{
if (text == NULL)
return TEXT_EMPTY;
@@ -394,7 +390,8 @@ int Cache_GetLineText(
switch (type) {
case TEXT_STATUS:
- if (GetStatusName(text, text_size, pdnce, xstatus_has_priority) == -1 && use_name_and_message_for_xstatus) {
+LBL_Status:
+ if (GetStatusName(text, text_size, pdnce, line.xstatus_has_priority) == -1 && line.use_name_and_message_for_xstatus) {
// Try to get XStatusMsg
ptrT tszXStatusMsg(db_get_tsa(pdnce->hContact, pdnce->m_pszProto, "XStatusMsg"));
if (tszXStatusMsg != NULL && tszXStatusMsg[0] != 0) {
@@ -416,7 +413,7 @@ int Cache_GetLineText(
return TEXT_NICKNAME;
case TEXT_STATUS_MESSAGE:
- if (GetStatusMessage(text, text_size, pdnce, xstatus_has_priority) == -1 && use_name_and_message_for_xstatus) {
+ if (GetStatusMessage(text, text_size, pdnce, line.xstatus_has_priority) == -1 && line.use_name_and_message_for_xstatus) {
// Try to get XStatusName
ptrT tszXStatusName(db_get_tsa(pdnce->hContact, pdnce->m_pszProto, "XStatusName"));
if (tszXStatusName != NULL && tszXStatusName[0] != 0) {
@@ -425,7 +422,7 @@ int Cache_GetLineText(
CopySkipUnprintableChars(text, text, text_size - 1);
}
}
- else if (use_name_and_message_for_xstatus && xstatus_has_priority) {
+ else if (line.use_name_and_message_for_xstatus && line.xstatus_has_priority) {
// Try to get XStatusName
ptrT tszXStatusName(db_get_tsa(pdnce->hContact, pdnce->m_pszProto, "XStatusName"));
if (tszXStatusName != NULL && tszXStatusName[0] != 0) {
@@ -435,14 +432,14 @@ int Cache_GetLineText(
}
if (text[0] == '\0') {
- if (show_listening_if_no_away) {
- Cache_GetLineText(pdnce, TEXT_LISTENING_TO, text, text_size, variable_text, xstatus_has_priority, 0, 0, use_name_and_message_for_xstatus, pdnce_time_show_only_if_different);
+ if (line.show_listening_if_no_away) {
+ GetListeningTo(text, text_size, pdnce);
if (text[0] != '\0')
return TEXT_LISTENING_TO;
}
- if (show_status_if_no_away) // re-request status if no away
- return Cache_GetLineText(pdnce, TEXT_STATUS, text, text_size, variable_text, xstatus_has_priority, 0, 0, use_name_and_message_for_xstatus, pdnce_time_show_only_if_different);
+ if (line.show_status_if_no_away) // re-request status if no away
+ goto LBL_Status;
}
return TEXT_STATUS_MESSAGE;
@@ -452,7 +449,7 @@ int Cache_GetLineText(
case TEXT_TEXT:
{
- ptrT tmp(variables_parsedup(variable_text, pdnce->tszName, pdnce->hContact));
+ ptrT tmp(variables_parsedup(line.text, pdnce->tszName, pdnce->hContact));
mir_tstrncpy(text, tmp, text_size);
CopySkipUnprintableChars(text, text, text_size - 1);
}
@@ -472,7 +469,7 @@ int Cache_GetLineText(
/////////////////////////////////////////////////////////////////////////////////////////
// Get the text for First Line
-//
+
void Cache_GetFirstLineText(ClcData *dat, ClcContact *contact)
{
if (GetCurrentThreadId() != g_dwMainThreadID)
@@ -497,60 +494,42 @@ void Cache_GetFirstLineText(ClcData *dat, ClcContact *contact)
}
else mir_tstrncpy(contact->szText, name, _countof(contact->szText));
- if (!dat->force_in_dialog) {
- SHORTDATA data = { 0 };
- Sync(CLUI_SyncGetShortData, (WPARAM)pcli->hwndContactTree, (LPARAM)&data);
- contact->ssText.ReplaceSmileys(&data, pdnce, contact->szText, dat->first_line_draw_smileys);
- }
+ if (!dat->force_in_dialog)
+ contact->ssText.ReplaceSmileys(dat, pdnce, contact->szText, dat->first_line_draw_smileys);
}
/////////////////////////////////////////////////////////////////////////////////////////
// Get the text for Second Line
-//
-void Cache_GetSecondLineText(SHORTDATA *dat, ClcCacheEntry *pdnce)
-{
- TCHAR Text[240 - EXTRA_ICON_COUNT] = { 0 };
- int type = TEXT_EMPTY;
- if (dat->second_line_show)
- type = Cache_GetLineText(pdnce, dat->second_line_type, Text, _countof(Text), dat->second_line_text,
- dat->second_line_xstatus_has_priority, dat->second_line_show_status_if_no_away, dat->second_line_show_listening_if_no_away,
- dat->second_line_use_name_and_message_for_xstatus, dat->contact_time_show_only_if_different);
+void Cache_GetNthLineText(ClcData *dat, ClcCacheEntry *pdnce, int n)
+{
+ TCHAR Text[240 - EXTRA_ICON_COUNT]; Text[0] = 0;
+ ClcLineInfo &line = (n == 2) ? dat->secondLine : dat->thirdLine;
+ TCHAR* &szText = (n == 2) ? pdnce->szSecondLineText : pdnce->szThirdLineText;
+ // in most cases replaceStrT does nothing
+ if (!line.show) {
+ replaceStrT(szText, NULL);
+ return;
+ }
+
+ int type = Cache_GetLineText(pdnce, line.type, Text, _countof(Text), line);
+ if (Text[0] == 0) {
+ replaceStrT(szText, NULL);
+ return;
+ }
+
Text[_countof(Text) - 1] = 0; //to be sure that it is null terminated string
+ replaceStrT(szText, Text);
- replaceStrT(pdnce->szSecondLineText, (dat->second_line_show) ? Text : NULL);
-
- if (pdnce->szSecondLineText) {
- if (type == TEXT_LISTENING_TO && pdnce->szSecondLineText[0] != _T('\0'))
- pdnce->ssSecondLine.AddListeningToIcon(dat, pdnce->szSecondLineText);
- else
- pdnce->ssSecondLine.ReplaceSmileys(dat, pdnce, pdnce->szSecondLineText, dat->second_line_draw_smileys);
- }
+ CSmileyString &ss = (n == 2) ? pdnce->ssSecondLine : pdnce->ssThirdLine;
+ if (type == TEXT_LISTENING_TO && szText[0] != _T('\0'))
+ ss.AddListeningToIcon(dat, szText);
+ else
+ ss.ReplaceSmileys(dat, pdnce, szText, line.draw_smileys);
}
/////////////////////////////////////////////////////////////////////////////////////////
-// Get the text for Third Line
-//
-void Cache_GetThirdLineText(SHORTDATA *dat, ClcCacheEntry *pdnce)
-{
- TCHAR Text[240 - EXTRA_ICON_COUNT] = { 0 };
- int type = TEXT_EMPTY;
- if (dat->third_line_show)
- type = Cache_GetLineText(pdnce, dat->third_line_type, Text, _countof(Text), dat->third_line_text,
- dat->third_line_xstatus_has_priority, dat->third_line_show_status_if_no_away, dat->third_line_show_listening_if_no_away,
- dat->third_line_use_name_and_message_for_xstatus, dat->contact_time_show_only_if_different);
-
- Text[_countof(Text) - 1] = 0; //to be sure that it is null terminated string
-
- replaceStrT(pdnce->szThirdLineText, (dat->third_line_show) ? Text : NULL);
- if (pdnce->szThirdLineText) {
- if (type == TEXT_LISTENING_TO && pdnce->szThirdLineText[0] != _T('\0'))
- pdnce->ssThirdLine.AddListeningToIcon(dat, pdnce->szThirdLineText);
- else
- pdnce->ssThirdLine.ReplaceSmileys(dat, pdnce, pdnce->szThirdLineText, dat->third_line_draw_smileys);
- }
-}
void RemoveTag(TCHAR *to, TCHAR *tag)
{
@@ -564,8 +543,8 @@ void RemoveTag(TCHAR *to, TCHAR *tag)
}
/////////////////////////////////////////////////////////////////////////////////////////
-//Copy string with removing Escape chars from text and BBcodes
-//
+// Copy string with removing Escape chars from text and BBcodes
+
static int CopySkipUnprintableChars(TCHAR *to, TCHAR * buf, DWORD size)
{
DWORD i;
diff --git a/plugins/Clist_modern/src/modern_clc.cpp b/plugins/Clist_modern/src/modern_clc.cpp
index 094ca5b4f8..7c7fa0815a 100644
--- a/plugins/Clist_modern/src/modern_clc.cpp
+++ b/plugins/Clist_modern/src/modern_clc.cpp
@@ -67,9 +67,9 @@ static int clcHookSmileyAddOptionsChanged(WPARAM, LPARAM)
return 0;
}
-static int clcHookProtoAck(WPARAM wParam, LPARAM lParam)
+static int clcHookProtoAck(WPARAM, LPARAM lParam)
{
- return ClcDoProtoAck(wParam, (ACKDATA*)lParam);
+ return ClcDoProtoAck((ACKDATA*)lParam);
}
static int clcHookIconsChanged(WPARAM, LPARAM)
@@ -313,7 +313,7 @@ static LRESULT clcOnCreate(ClcData *dat, HWND hwnd, UINT msg, WPARAM wParam, LPA
corecli.pfnContactListControlWndProc(hwnd, msg, wParam, lParam);
LoadCLCOptions(hwnd, dat, TRUE);
- if (dat->contact_time_show || dat->second_line_type == TEXT_CONTACT_TIME || dat->third_line_type == TEXT_CONTACT_TIME)
+ if (dat->contact_time_show || dat->secondLine.type == TEXT_CONTACT_TIME || dat->thirdLine.type == TEXT_CONTACT_TIME)
CLUI_SafeSetTimer(hwnd, TIMERID_INVALIDATE, 5000, NULL);
else
KillTimer(hwnd, TIMERID_INVALIDATE);
@@ -621,12 +621,6 @@ void clcSetDelayTimer(UINT_PTR uIDEvent, HWND hwnd, int nDelay)
static LRESULT clcOnTimer(ClcData *dat, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (wParam) {
- case TIMERID_INVALIDATE_FULL:
- KillTimer(hwnd, TIMERID_INVALIDATE_FULL);
- pcli->pfnRecalcScrollBar(hwnd, dat);
- pcli->pfnInvalidateRect(hwnd, NULL, 0);
- return corecli.pfnContactListControlWndProc(hwnd, msg, wParam, lParam);
-
case TIMERID_INVALIDATE:
{
time_t cur_time = (time(NULL) / 60);
@@ -1467,7 +1461,7 @@ static LRESULT clcOnIntmTimeZoneChanged(ClcData *dat, HWND hwnd, UINT msg, WPARA
if (contact) {
Cache_GetTimezone(dat, contact->hContact);
- Cache_GetText(dat, contact, 1);
+ Cache_GetText(dat, contact);
cliRecalcScrollBar(hwnd, dat);
}
return 0;
@@ -1485,7 +1479,7 @@ static LRESULT clcOnIntmNameChanged(ClcData *dat, HWND hwnd, UINT msg, WPARAM wP
if (contact) {
mir_tstrncpy(contact->szText, pcli->pfnGetContactDisplayName(wParam, 0), _countof(contact->szText));
- Cache_GetText(dat, contact, 1);
+ Cache_GetText(dat, contact);
// cliRecalcScrollBar(hwnd, dat);
}
@@ -1508,7 +1502,7 @@ static LRESULT clcOnIntmStatusMsgChanged(ClcData *dat, HWND hwnd, UINT msg, WPAR
return corecli.pfnContactListControlWndProc(hwnd, msg, hContact, lParam);
if (contact) {
- Cache_GetText(dat, contact, 1);
+ Cache_GetText(dat, contact);
// cliRecalcScrollBar(hwnd, dat);
PostMessage(hwnd, INTM_INVALIDATE, 0, 0);
}
@@ -1549,15 +1543,19 @@ static LRESULT clcOnIntmScrollBarChanged(ClcData *dat, HWND hwnd, UINT, WPARAM,
static LRESULT clcOnIntmStatusChanged(ClcData *dat, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
int ret = corecli.pfnContactListControlWndProc(hwnd, msg, wParam, lParam);
+
if (wParam != 0) {
- ClcCacheEntry *pdnce = pcli->pfnGetCacheEntry(wParam);
- if (pdnce && pdnce->m_pszProto) {
- if (!dat->force_in_dialog && (dat->second_line_show || dat->third_line_show))
- gtaRenewText(pdnce->hContact);
- SendMessage(hwnd, INTM_ICONCHANGED, wParam, corecli.pfnGetContactIcon(wParam));
+ ClcContact *contact;
+ if (FindItem(hwnd, dat, wParam, &contact, NULL, NULL, TRUE)) {
+ ClcCacheEntry *pdnce = contact->pce;
+ if (pdnce && pdnce->m_pszProto) {
+ if (!dat->force_in_dialog) {
+ Cache_GetNthLineText(dat, pdnce, 2);
+ Cache_GetNthLineText(dat, pdnce, 3);
+ }
+
+ SendMessage(hwnd, INTM_ICONCHANGED, wParam, corecli.pfnGetContactIcon(wParam));
- ClcContact *contact;
- if (FindItem(hwnd, dat, wParam, &contact, NULL, NULL, TRUE)) {
if (contact && contact->type == CLCIT_CONTACT) {
if (!contact->image_is_special && pdnce->getStatus() > ID_STATUS_OFFLINE)
contact->iImage = corecli.pfnGetContactIcon(wParam);
@@ -1686,7 +1684,7 @@ int ClcUnloadModule()
return 0;
}
-int ClcDoProtoAck(MCONTACT, ACKDATA *ack)
+int ClcDoProtoAck(ACKDATA *ack)
{
if (MirandaExiting()) return 0;
if (ack->type == ACKTYPE_STATUS) {
@@ -1708,7 +1706,7 @@ int ClcDoProtoAck(MCONTACT, ACKDATA *ack)
return 0;
db_set_ws(ack->hContact, "CList", "StatusMsg", (const TCHAR *)ack->lParam);
- gtaRenewText(ack->hContact);
+ pcli->pfnClcBroadcast(INTM_STATUSCHANGED, ack->hContact, 0);
}
else {
if (ack->szModule != NULL)
@@ -1721,7 +1719,7 @@ int ClcDoProtoAck(MCONTACT, ACKDATA *ack)
if (mir_strcmpi(val, ""))
db_set_s(ack->hContact, "CList", "StatusMsg", "");
else
- gtaRenewText(ack->hContact);
+ pcli->pfnClcBroadcast(INTM_STATUSCHANGED, ack->hContact, 0);
mir_free(val);
}
}
@@ -1733,43 +1731,6 @@ int ClcDoProtoAck(MCONTACT, ACKDATA *ack)
return 0;
}
-int ClcGetShortData(ClcData* pData, SHORTDATA *pShortData)
-{
- if (!pData || !pShortData)
- return -1;
-
- pShortData->hWnd = pData->hWnd;
- pShortData->text_replace_smileys = pData->text_replace_smileys;
- pShortData->text_smiley_height = pData->text_smiley_height;
- pShortData->text_use_protocol_smileys = pData->text_use_protocol_smileys;
- pShortData->contact_time_show_only_if_different = pData->contact_time_show_only_if_different;
-
- // Second line
- pShortData->second_line_show = pData->second_line_show;
- pShortData->second_line_draw_smileys = pData->second_line_draw_smileys;
- pShortData->second_line_type = pData->second_line_type;
-
- mir_tstrncpy(pShortData->second_line_text, pData->second_line_text, _countof(pShortData->second_line_text));
-
- pShortData->second_line_xstatus_has_priority = pData->second_line_xstatus_has_priority;
- pShortData->second_line_show_status_if_no_away = pData->second_line_show_status_if_no_away;
- pShortData->second_line_show_listening_if_no_away = pData->second_line_show_listening_if_no_away;
- pShortData->second_line_use_name_and_message_for_xstatus = pData->second_line_use_name_and_message_for_xstatus;
-
- // Third line
- pShortData->third_line_show = pData->third_line_show;
- pShortData->third_line_draw_smileys = pData->third_line_draw_smileys;
- pShortData->third_line_type = pData->third_line_type;
-
- mir_tstrncpy(pShortData->third_line_text, pData->third_line_text, _countof(pShortData->third_line_text));
-
- pShortData->third_line_xstatus_has_priority = pData->third_line_xstatus_has_priority;
- pShortData->third_line_show_status_if_no_away = pData->third_line_show_status_if_no_away;
- pShortData->third_line_show_listening_if_no_away = pData->third_line_show_listening_if_no_away;
- pShortData->third_line_use_name_and_message_for_xstatus = pData->third_line_use_name_and_message_for_xstatus;
- return 0;
-}
-
int ClcEnterDragToScroll(HWND hwnd, int Y)
{
if (IsDragToScrollMode)
diff --git a/plugins/Clist_modern/src/modern_clc.h b/plugins/Clist_modern/src/modern_clc.h
index 72ae4d3b02..b61584cf57 100644
--- a/plugins/Clist_modern/src/modern_clc.h
+++ b/plugins/Clist_modern/src/modern_clc.h
@@ -64,7 +64,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define TIMERID_SUBEXPAND 21
#define TIMERID_INVALIDATE 22
-#define TIMERID_INVALIDATE_FULL 25
#define TIMERID_RECALCSCROLLBAR 26
#define TIMERID_FIRST TIMERID_RENAME
@@ -221,6 +220,19 @@ struct ClcContact : public ClcContactBase
}
};
+struct ClcLineInfo
+{
+ BOOL show;
+ int top_space;
+ BOOL draw_smileys;
+ int type;
+ TCHAR text[TEXT_TEXT_MAX_LENGTH];
+ BOOL xstatus_has_priority;
+ BOOL show_status_if_no_away;
+ BOOL show_listening_if_no_away;
+ BOOL use_name_and_message_for_xstatus;
+};
+
struct ClcModernFontInfo {
HFONT hFont;
int fontHeight, changed;
@@ -301,73 +313,26 @@ struct ClcData : public ClcDataBase
BOOL first_line_draw_smileys;
BOOL first_line_append_nick;
- // Second line
- BOOL second_line_show;
- int second_line_top_space;
- BOOL second_line_draw_smileys;
- int second_line_type;
- TCHAR second_line_text[TEXT_TEXT_MAX_LENGTH];
- BOOL second_line_xstatus_has_priority;
- BOOL second_line_show_status_if_no_away;
- BOOL second_line_show_listening_if_no_away;
- BOOL second_line_use_name_and_message_for_xstatus;
-
- // Third line
- BOOL third_line_show;
- int third_line_top_space;
- BOOL third_line_draw_smileys;
- int third_line_type;
- TCHAR third_line_text[TEXT_TEXT_MAX_LENGTH];
- BOOL third_line_xstatus_has_priority;
- BOOL third_line_show_status_if_no_away;
- BOOL third_line_show_listening_if_no_away;
- BOOL third_line_use_name_and_message_for_xstatus;
- struct ClcModernFontInfo fontModernInfo[FONTID_MODERN_MAX + 1];
- HWND hWnd;
- BYTE menuOwnerType;
- int menuOwnerID;
+ // Second & third line
+ ClcLineInfo secondLine, thirdLine;
+
+ ClcModernFontInfo fontModernInfo[FONTID_MODERN_MAX + 1];
+ HWND hWnd;
+ BYTE menuOwnerType;
+ int menuOwnerID;
DWORD m_paintCouter; //range is enoght to 49 days if painting will occure each one millisecond
- BYTE useMetaIcon;
- BYTE drawOverlayedStatus;
- int nInsertionLevel;
+ BYTE useMetaIcon;
+ BYTE drawOverlayedStatus;
+ int nInsertionLevel;
- BYTE dbbMetaHideExtra;
- BYTE dbbBlendInActiveState;
- BYTE dbbBlend25;
+ BYTE dbbMetaHideExtra;
+ BYTE dbbBlendInActiveState;
+ BYTE dbbBlend25;
XPTHANDLE hCheckBoxTheme;
BYTE bCompactMode;
};
-struct SHORTDATA
-{
- HWND hWnd;
- BOOL contact_time_show_only_if_different;
- int text_smiley_height;
- BOOL text_replace_smileys;
- BOOL text_use_protocol_smileys;
-
- // Second line
- BOOL second_line_show;
- BOOL second_line_draw_smileys;
- int second_line_type;
- TCHAR second_line_text[TEXT_TEXT_MAX_LENGTH];
- BOOL second_line_xstatus_has_priority;
- BOOL second_line_show_status_if_no_away;
- BOOL second_line_show_listening_if_no_away;
- BOOL second_line_use_name_and_message_for_xstatus;
-
- // Third line
- BOOL third_line_show;
- BOOL third_line_draw_smileys;
- int third_line_type;
- TCHAR third_line_text[TEXT_TEXT_MAX_LENGTH];
- BOOL third_line_xstatus_has_priority;
- BOOL third_line_show_status_if_no_away;
- BOOL third_line_show_listening_if_no_away;
- BOOL third_line_use_name_and_message_for_xstatus;
-};
-
typedef struct tagOVERLAYICONINFO
{
char *name;
diff --git a/plugins/Clist_modern/src/modern_clcitems.cpp b/plugins/Clist_modern/src/modern_clcitems.cpp
index 866b96d512..79df85ad71 100644
--- a/plugins/Clist_modern/src/modern_clcitems.cpp
+++ b/plugins/Clist_modern/src/modern_clcitems.cpp
@@ -71,7 +71,7 @@ void AddSubcontacts(ClcData *dat, ClcContact *cont, BOOL showOfflineHereGroup)
p.image_is_special = FALSE;
//p.status = cacheEntry->status;
Cache_GetTimezone(dat, (&p)->hContact);
- Cache_GetText(dat, &p, 1);
+ Cache_GetText(dat, &p);
char *szProto = cacheEntry->m_pszProto;
if (szProto != NULL && !pcli->pfnIsHiddenMode(dat, wStatus))
@@ -196,7 +196,7 @@ static void _LoadDataToContact(ClcContact *cont, ClcGroup *group, ClcData *dat,
cont->lastPaintCounter = 0;
cont->avatar_pos = AVATAR_POS_DONT_HAVE;
Cache_GetAvatar(dat, cont);
- Cache_GetText(dat, cont, 1);
+ Cache_GetText(dat, cont);
Cache_GetTimezone(dat, cont->hContact);
cont->iImage = corecli.pfnGetContactIcon(hContact);
cont->bContactRate = db_get_b(hContact, "CList", "Rate", 0);
diff --git a/plugins/Clist_modern/src/modern_clcpaint.cpp b/plugins/Clist_modern/src/modern_clcpaint.cpp
index 5a256386f5..8f1e6d7563 100644
--- a/plugins/Clist_modern/src/modern_clcpaint.cpp
+++ b/plugins/Clist_modern/src/modern_clcpaint.cpp
@@ -1099,7 +1099,7 @@ void CLCPaint::_PaintRowItemsEx(HDC hdcMem, ClcData *dat, ClcContact *Drawing, R
// Select font
UINT uTextFormat = (dat->text_rtl ? DT_RTLREADING : 0);
- if (dat->second_line_show && dat->second_line_type == TEXT_CONTACT_TIME && pdnce->hTimeZone) {
+ if (dat->secondLine.show && dat->secondLine.type == TEXT_CONTACT_TIME && pdnce->hTimeZone) {
// Get contact time
TCHAR buf[70] = _T("");
mir_free_and_nil(pdnce->szSecondLineText);
@@ -1127,7 +1127,7 @@ void CLCPaint::_PaintRowItemsEx(HDC hdcMem, ClcData *dat, ClcContact *Drawing, R
// Select font
UINT uTextFormat = (dat->text_rtl ? DT_RTLREADING : 0);
- if (dat->third_line_show && dat->third_line_type == TEXT_CONTACT_TIME && pdnce->hTimeZone) {
+ if (dat->thirdLine.show && dat->thirdLine.type == TEXT_CONTACT_TIME && pdnce->hTimeZone) {
// Get contact time
TCHAR buf[70] = _T("");
mir_free(pdnce->szThirdLineText);
@@ -2320,8 +2320,8 @@ void CLCPaint::_CalcItemsPos(HDC hdcMem, ClcData *dat, ClcContact *Drawing, RECT
}
else if (Drawing->type == CLCIT_CONTACT && !CheckMiniMode(dat, selected)) {
int tmp;
- if (dat->second_line_show) {
- if (dat->second_line_type == TEXT_CONTACT_TIME && pdnce->hTimeZone) {
+ if (dat->secondLine.show) {
+ if (dat->secondLine.type == TEXT_CONTACT_TIME && pdnce->hTimeZone) {
// Get contact time
TCHAR buf[70] = _T("");
TimeZone_PrintDateTime(pdnce->hTimeZone, _T("t"), buf, _countof(buf), 0);
@@ -2329,7 +2329,7 @@ void CLCPaint::_CalcItemsPos(HDC hdcMem, ClcData *dat, ClcContact *Drawing, RECT
pdnce->szSecondLineText = mir_tstrdup(buf);
}
- if (pdnce->szSecondLineText && pdnce->szSecondLineText[0] && free_height > dat->second_line_top_space) {
+ if (pdnce->szSecondLineText && pdnce->szSecondLineText[0] && free_height > dat->secondLine.top_space) {
ChangeToFont(hdcMem, dat, FONTID_SECONDLINE, NULL);
// Get sizes
@@ -2337,7 +2337,7 @@ void CLCPaint::_CalcItemsPos(HDC hdcMem, ClcData *dat, ClcContact *Drawing, RECT
uTextFormat, dat->text_resize_smileys ? 0 : pdnce->ssSecondLine.iMaxSmileyHeight);
// Get rect
- tmp = min(free_height, dat->second_line_top_space + second_line_text_size.cy);
+ tmp = min(free_height, dat->secondLine.top_space + second_line_text_size.cy);
free_height -= tmp;
text_rc.top = free_row_rc.top + (free_height >> 1);
@@ -2351,18 +2351,18 @@ void CLCPaint::_CalcItemsPos(HDC hdcMem, ClcData *dat, ClcContact *Drawing, RECT
selection_text_rc.top = text_rc.top;
selection_text_rc.bottom = min(selection_text_rc.bottom, selection_text_rc.top + text_size.cy);
- max_bottom_selection_border = min(max_bottom_selection_border, dat->second_line_top_space / 2);
+ max_bottom_selection_border = min(max_bottom_selection_border, dat->secondLine.top_space / 2);
}
}
- if (dat->third_line_show) {
- if (dat->third_line_type == TEXT_CONTACT_TIME && pdnce->hTimeZone) {
+ if (dat->thirdLine.show) {
+ if (dat->thirdLine.type == TEXT_CONTACT_TIME && pdnce->hTimeZone) {
// Get contact time
TCHAR buf[70] = _T("");
TimeZone_PrintDateTime(pdnce->hTimeZone, _T("t"), buf, _countof(buf), 0);
mir_free(pdnce->szThirdLineText);
pdnce->szThirdLineText = mir_tstrdup(buf);
}
- if (pdnce->szThirdLineText != NULL && pdnce->szThirdLineText[0] && free_height > dat->third_line_top_space) {
+ if (pdnce->szThirdLineText != NULL && pdnce->szThirdLineText[0] && free_height > dat->thirdLine.top_space) {
//RECT rc_tmp = free_row_rc;
ChangeToFont(hdcMem, dat, FONTID_THIRDLINE, NULL);
@@ -2372,7 +2372,7 @@ void CLCPaint::_CalcItemsPos(HDC hdcMem, ClcData *dat, ClcContact *Drawing, RECT
uTextFormat, dat->text_resize_smileys ? 0 : pdnce->ssThirdLine.iMaxSmileyHeight);
// Get rect
- tmp = min(free_height, dat->third_line_top_space + third_line_text_size.cy);
+ tmp = min(free_height, dat->thirdLine.top_space + third_line_text_size.cy);
free_height -= tmp;
text_rc.top = free_row_rc.top + (free_height >> 1);
@@ -2386,7 +2386,7 @@ void CLCPaint::_CalcItemsPos(HDC hdcMem, ClcData *dat, ClcContact *Drawing, RECT
selection_text_rc.top = text_rc.top;
selection_text_rc.bottom = min(selection_text_rc.bottom, selection_text_rc.top + text_size.cy);
- max_bottom_selection_border = min(max_bottom_selection_border, dat->third_line_top_space / 2);
+ max_bottom_selection_border = min(max_bottom_selection_border, dat->thirdLine.top_space / 2);
}
}
@@ -2488,7 +2488,7 @@ void CLCPaint::_CalcItemsPos(HDC hdcMem, ClcData *dat, ClcContact *Drawing, RECT
}
uTextFormat &= ~DT_VCENTER;
if (second_line_text_size.cx > 0 && free_rc.bottom > free_rc.top) {
- free_rc.top += dat->second_line_top_space;
+ free_rc.top += dat->secondLine.top_space;
if (free_rc.bottom > free_rc.top) {
RECT rc = free_rc;
@@ -2506,7 +2506,7 @@ void CLCPaint::_CalcItemsPos(HDC hdcMem, ClcData *dat, ClcContact *Drawing, RECT
}
if (third_line_text_size.cx > 0 && free_rc.bottom > free_rc.top) {
- free_rc.top += dat->third_line_top_space;
+ free_rc.top += dat->thirdLine.top_space;
if (free_rc.bottom > free_rc.top) {
RECT rc = free_rc;
diff --git a/plugins/Clist_modern/src/modern_clcutils.cpp b/plugins/Clist_modern/src/modern_clcutils.cpp
index f395506d2e..d6e132edff 100644
--- a/plugins/Clist_modern/src/modern_clcutils.cpp
+++ b/plugins/Clist_modern/src/modern_clcutils.cpp
@@ -595,59 +595,43 @@ void LoadCLCOptions(HWND hwnd, ClcData *dat, BOOL bFirst)
// Second line
if (pcli->hwndContactTree == hwnd || pcli->hwndContactTree == NULL) {
- dat->second_line_show = db_get_b(NULL, "CList", "SecondLineShow", SETTING_SECONDLINE_SHOW_DEFAULT);
- dat->second_line_top_space = db_get_w(NULL, "CList", "SecondLineTopSpace", SETTING_SECONDLINE_TOPSPACE_DEFAULT);
- dat->second_line_draw_smileys = db_get_b(NULL, "CList", "SecondLineDrawSmileys", SETTING_SECONDLINE_SMILEYS_DEFAULT);
- dat->second_line_type = db_get_w(NULL, "CList", "SecondLineType", SETTING_SECONDLINE_TYPE_DEFAULT);
+ dat->secondLine.show = db_get_b(NULL, "CList", "SecondLineShow", SETTING_SECONDLINE_SHOW_DEFAULT);
+ dat->secondLine.top_space = db_get_w(NULL, "CList", "SecondLineTopSpace", SETTING_SECONDLINE_TOPSPACE_DEFAULT);
+ dat->secondLine.draw_smileys = db_get_b(NULL, "CList", "SecondLineDrawSmileys", SETTING_SECONDLINE_SMILEYS_DEFAULT);
+ dat->secondLine.type = db_get_w(NULL, "CList", "SecondLineType", SETTING_SECONDLINE_TYPE_DEFAULT);
ptrT tszLineText(db_get_tsa(NULL, "CList", "SecondLineText"));
if (tszLineText)
- mir_tstrncpy(dat->second_line_text, tszLineText, _countof(dat->second_line_text));
+ mir_tstrncpy(dat->secondLine.text, tszLineText, _countof(dat->secondLine.text));
else
- dat->second_line_text[0] = _T('\0');
+ dat->secondLine.text[0] = _T('\0');
- dat->second_line_xstatus_has_priority = db_get_b(NULL, "CList", "SecondLineXStatusHasPriority", SETTING_SECONDLINE_XSTATUS_DEFAULT);
- dat->second_line_show_status_if_no_away = db_get_b(NULL, "CList", "SecondLineShowStatusIfNoAway", SETTING_SECONDLINE_STATUSIFNOAWAY_DEFAULT);
- dat->second_line_show_listening_if_no_away = db_get_b(NULL, "CList", "SecondLineShowListeningIfNoAway", SETTING_SECONDLINE_LISTENINGIFNOAWAY_DEFAULT);
- dat->second_line_use_name_and_message_for_xstatus = db_get_b(NULL, "CList", "SecondLineUseNameAndMessageForXStatus", SETTING_SECONDLINE_XSTATUSNAMETEXT_DEFAULT);
- }
- else {
- dat->second_line_show = 0;
- dat->second_line_top_space = 0;
- dat->second_line_draw_smileys = 0;
- dat->second_line_type = 0;
- dat->second_line_text[0] = _T('\0');
- dat->second_line_xstatus_has_priority = 0;
- dat->second_line_use_name_and_message_for_xstatus = 0;
+ dat->secondLine.xstatus_has_priority = db_get_b(NULL, "CList", "SecondLineXStatusHasPriority", SETTING_SECONDLINE_XSTATUS_DEFAULT);
+ dat->secondLine.show_status_if_no_away = db_get_b(NULL, "CList", "SecondLineShowStatusIfNoAway", SETTING_SECONDLINE_STATUSIFNOAWAY_DEFAULT);
+ dat->secondLine.show_listening_if_no_away = db_get_b(NULL, "CList", "SecondLineShowListeningIfNoAway", SETTING_SECONDLINE_LISTENINGIFNOAWAY_DEFAULT);
+ dat->secondLine.use_name_and_message_for_xstatus = db_get_b(NULL, "CList", "SecondLineUseNameAndMessageForXStatus", SETTING_SECONDLINE_XSTATUSNAMETEXT_DEFAULT);
}
+ else memset(&dat->secondLine, 0, sizeof(dat->secondLine));
// Third line
if (pcli->hwndContactTree == hwnd || pcli->hwndContactTree == NULL) {
- dat->third_line_show = db_get_b(NULL, "CList", "ThirdLineShow", SETTING_THIRDLINE_SHOW_DEFAULT);
- dat->third_line_top_space = db_get_w(NULL, "CList", "ThirdLineTopSpace", SETTING_THIRDLINE_TOPSPACE_DEFAULT);
- dat->third_line_draw_smileys = db_get_b(NULL, "CList", "ThirdLineDrawSmileys", SETTING_THIRDLINE_SMILEYS_DEFAULT);
- dat->third_line_type = db_get_w(NULL, "CList", "ThirdLineType", SETTING_THIRDLINE_TYPE_DEFAULT);
+ dat->thirdLine.show = db_get_b(NULL, "CList", "ThirdLineShow", SETTING_THIRDLINE_SHOW_DEFAULT);
+ dat->thirdLine.top_space = db_get_w(NULL, "CList", "ThirdLineTopSpace", SETTING_THIRDLINE_TOPSPACE_DEFAULT);
+ dat->thirdLine.draw_smileys = db_get_b(NULL, "CList", "ThirdLineDrawSmileys", SETTING_THIRDLINE_SMILEYS_DEFAULT);
+ dat->thirdLine.type = db_get_w(NULL, "CList", "ThirdLineType", SETTING_THIRDLINE_TYPE_DEFAULT);
ptrT tszLineText(db_get_tsa(NULL, "CList", "ThirdLineText"));
if (tszLineText)
- mir_tstrncpy(dat->third_line_text, tszLineText, _countof(dat->third_line_text));
+ mir_tstrncpy(dat->thirdLine.text, tszLineText, _countof(dat->thirdLine.text));
else
- dat->third_line_text[0] = _T('\0');
+ dat->thirdLine.text[0] = _T('\0');
- dat->third_line_xstatus_has_priority = db_get_b(NULL, "CList", "ThirdLineXStatusHasPriority", SETTING_THIRDLINE_XSTATUS_DEFAULT);
- dat->third_line_show_status_if_no_away = db_get_b(NULL, "CList", "ThirdLineShowStatusIfNoAway", SETTING_THIRDLINE_STATUSIFNOAWAY_DEFAULT);
- dat->third_line_show_listening_if_no_away = db_get_b(NULL, "CList", "ThirdLineShowListeningIfNoAway", SETTING_THIRDLINE_LISTENINGIFNOAWAY_DEFAULT);
- dat->third_line_use_name_and_message_for_xstatus = db_get_b(NULL, "CList", "ThirdLineUseNameAndMessageForXStatus", SETTING_THIRDLINE_XSTATUSNAMETEXT_DEFAULT);
- }
- else {
- dat->third_line_show = 0;
- dat->third_line_top_space = 0;
- dat->third_line_draw_smileys = 0;
- dat->third_line_type = TEXT_STATUS_MESSAGE;
- dat->third_line_text[0] = _T('\0');
- dat->third_line_xstatus_has_priority = 1;
- dat->third_line_use_name_and_message_for_xstatus = 0;
+ dat->thirdLine.xstatus_has_priority = db_get_b(NULL, "CList", "ThirdLineXStatusHasPriority", SETTING_THIRDLINE_XSTATUS_DEFAULT);
+ dat->thirdLine.show_status_if_no_away = db_get_b(NULL, "CList", "ThirdLineShowStatusIfNoAway", SETTING_THIRDLINE_STATUSIFNOAWAY_DEFAULT);
+ dat->thirdLine.show_listening_if_no_away = db_get_b(NULL, "CList", "ThirdLineShowListeningIfNoAway", SETTING_THIRDLINE_LISTENINGIFNOAWAY_DEFAULT);
+ dat->thirdLine.use_name_and_message_for_xstatus = db_get_b(NULL, "CList", "ThirdLineUseNameAndMessageForXStatus", SETTING_THIRDLINE_XSTATUSNAMETEXT_DEFAULT);
}
+ else memset(&dat->thirdLine, 0, sizeof(dat->thirdLine));
dat->rightMargin = db_get_b(NULL, "CLC", "RightMargin", CLCDEFAULT_RIGHTMARGIN);
dat->force_in_dialog = (pcli->hwndContactTree) ? (hwnd != pcli->hwndContactTree) : 0;
diff --git a/plugins/Clist_modern/src/modern_clist.h b/plugins/Clist_modern/src/modern_clist.h
index 3d321906d0..edce2c60a6 100644
--- a/plugins/Clist_modern/src/modern_clist.h
+++ b/plugins/Clist_modern/src/modern_clist.h
@@ -59,13 +59,13 @@ public:
DestroySmileyList();
}
- void ReplaceSmileys(struct SHORTDATA *dat, ClcCacheEntry *pdnce, TCHAR *szText, BOOL replace_smileys);
+ void ReplaceSmileys(ClcData *dat, ClcCacheEntry *pdnce, TCHAR *szText, BOOL replace_smileys);
/** Destroy smiley list */
void DestroySmileyList();
/** Copy Smiley List */
void _CopySmileyList(SortedList *plInput);
- void AddListeningToIcon(SHORTDATA *dat, TCHAR *szText);
+ void AddListeningToIcon(ClcData *dat, TCHAR *szText);
};
diff --git a/plugins/Clist_modern/src/modern_clistmod.cpp b/plugins/Clist_modern/src/modern_clistmod.cpp
index 1de81d7980..2377f671e9 100644
--- a/plugins/Clist_modern/src/modern_clistmod.cpp
+++ b/plugins/Clist_modern/src/modern_clistmod.cpp
@@ -25,7 +25,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "stdafx.h"
#include "modern_clist.h"
#include "modern_commonprototypes.h"
-#include "modern_gettextasync.h"
#include "modern_sync.h"
#include "modern_clui.h"
#include <m_modernopt.h>
@@ -138,7 +137,6 @@ void UnLoadContactListModule() //unhooks noncritical events
int CListMod_ContactListShutdownProc(WPARAM, LPARAM)
{
- gtaShutdown();
FreeDisplayNameCache();
return 0;
}
diff --git a/plugins/Clist_modern/src/modern_clistsettings.cpp b/plugins/Clist_modern/src/modern_clistsettings.cpp
index f244b0b54f..0c6ff8b492 100644
--- a/plugins/Clist_modern/src/modern_clistsettings.cpp
+++ b/plugins/Clist_modern/src/modern_clistsettings.cpp
@@ -26,16 +26,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "modern_clist.h"
#include "modern_commonprototypes.h"
#include "modern_awaymsg.h"
-#include "modern_gettextasync.h"
void InsertContactIntoTree(MCONTACT hContact, int status);
-void CListSettings_FreeCacheItemDataOption(ClcCacheEntry *pDst, DWORD flag);
TCHAR* UnknownConctactTranslatedName = NULL;
void InitDisplayNameCache(void)
{
- InitCacheAsync();
InitAwayMsgModule();
}
@@ -44,96 +41,6 @@ void FreeDisplayNameCache()
UninitAwayMsgModule();
}
-void CListSettings_FreeCacheItemData(ClcCacheEntry *pDst)
-{
- CListSettings_FreeCacheItemDataOption(pDst, CCI_ALL);
-}
-
-void CListSettings_FreeCacheItemDataOption(ClcCacheEntry *pDst, DWORD flag)
-{
- if (!pDst)
- return;
-
- if (flag & CCI_NAME)
- mir_free_and_nil(pDst->tszName);
-
- if (flag & CCI_GROUP)
- mir_free_and_nil(pDst->tszGroup);
-
- if (flag & CCI_LINES) {
- mir_free_and_nil(pDst->szSecondLineText);
- mir_free_and_nil(pDst->szThirdLineText);
- pDst->ssSecondLine.DestroySmileyList();
- pDst->ssThirdLine.DestroySmileyList();
- }
-}
-
-int CListSettings_GetCopyFromCache(ClcCacheEntry *pDest, DWORD flag);
-int CListSettings_SetToCache(ClcCacheEntry *pSrc, DWORD flag);
-
-void CListSettings_CopyCacheItems(ClcCacheEntry *pDst, ClcCacheEntry *pSrc, DWORD flag)
-{
- if (!pDst || !pSrc) return;
- CListSettings_FreeCacheItemDataOption(pDst, flag);
-
- if (flag & CCI_NAME) pDst->tszName = mir_tstrdup(pSrc->tszName);
- if (flag & CCI_GROUP) pDst->tszGroup = mir_tstrdup(pSrc->tszGroup);
- if (flag & CCI_PROTO) pDst->m_pszProto = pSrc->m_pszProto;
- if (flag & CCI_STATUS) pDst->m_iStatus = pSrc->m_iStatus;
-
- if (flag & CCI_LINES) {
- mir_free(pDst->szThirdLineText);
- pDst->szThirdLineText = mir_tstrdup(pSrc->szThirdLineText);
-
- mir_free(pDst->szSecondLineText);
- pDst->szSecondLineText = mir_tstrdup(pSrc->szSecondLineText);
-
- pDst->ssThirdLine = pSrc->ssThirdLine;
- pDst->ssSecondLine = pSrc->ssSecondLine;
- }
-
- if (flag & CCI_TIME)
- pDst->hTimeZone = pSrc->hTimeZone;
-
- if (flag & CCI_OTHER) {
- pDst->bIsHidden = pSrc->bIsHidden;
- pDst->m_bNoHiddenOffline = pSrc->m_bNoHiddenOffline;
-
- pDst->m_bIsSub = pSrc->m_bIsSub;
- pDst->ApparentMode = pSrc->ApparentMode;
- pDst->NotOnList = pSrc->NotOnList;
- pDst->IdleTS = pSrc->IdleTS;
- pDst->ClcContact = pSrc->ClcContact;
- pDst->IsExpanded = pSrc->IsExpanded;
- }
-}
-
-int CListSettings_GetCopyFromCache(ClcCacheEntry *pDest, DWORD flag)
-{
- if (!pDest || !pDest->hContact)
- return -1;
-
- ClcCacheEntry *pSource = pcli->pfnGetCacheEntry(pDest->hContact);
- if (!pSource)
- return -1;
-
- CListSettings_CopyCacheItems(pDest, pSource, flag);
- return 0;
-}
-
-int CListSettings_SetToCache(ClcCacheEntry *pSrc, DWORD flag)
-{
- if (!pSrc || !pSrc->hContact)
- return -1;
-
- ClcCacheEntry *pDst = pcli->pfnGetCacheEntry(pSrc->hContact);
- if (!pDst)
- return -1;
-
- CListSettings_CopyCacheItems(pDst, pSrc, flag);
- return 0;
-}
-
void cliFreeCacheItem(ClcCacheEntry *p)
{
mir_free_and_nil(p->tszName);
diff --git a/plugins/Clist_modern/src/modern_clui.cpp b/plugins/Clist_modern/src/modern_clui.cpp
index 98a383166a..d2d3919cc2 100644
--- a/plugins/Clist_modern/src/modern_clui.cpp
+++ b/plugins/Clist_modern/src/modern_clui.cpp
@@ -1227,23 +1227,6 @@ int CLUI_SizingGetWindowRect(HWND hwnd, RECT *rc)
}
-int CLUI_SyncGetPDNCE(WPARAM wParam, LPARAM lParam)
-{
- return CListSettings_GetCopyFromCache((ClcCacheEntry *)lParam, wParam ? (DWORD)wParam : CCI_ALL);
-}
-
-int CLUI_SyncSetPDNCE(WPARAM wParam, LPARAM lParam)
-{
- return CListSettings_SetToCache((ClcCacheEntry *)lParam, wParam ? (DWORD)wParam : CCI_ALL);
-}
-
-int CLUI_SyncGetShortData(WPARAM wParam, LPARAM lParam)
-{
- HWND hwnd = (HWND)wParam;
- ClcData *dat = (ClcData *)GetWindowLongPtr(hwnd, 0);
- return ClcGetShortData(dat, (SHORTDATA*)lParam);
-}
-
int CLUI_IconsChanged(WPARAM, LPARAM)
{
if (MirandaExiting())
@@ -2544,9 +2527,6 @@ LRESULT CLUI::OnDestroy(UINT, WPARAM, LPARAM)
if (amWakeThread())
wait = TRUE;
- if (gtaWakeThread())
- wait = TRUE;
-
if (wait) {
//need to give them a little time to exit.
Sleep(50);
diff --git a/plugins/Clist_modern/src/modern_commonprototypes.h b/plugins/Clist_modern/src/modern_commonprototypes.h
index addd09a319..628ab82fc8 100644
--- a/plugins/Clist_modern/src/modern_commonprototypes.h
+++ b/plugins/Clist_modern/src/modern_commonprototypes.h
@@ -192,7 +192,7 @@ HICON cliGetIconFromStatusMode(MCONTACT hContact, const char *szProto, int sta
HICON GetMainStatusOverlay(int STATUS); //clc.c
int __fastcall CLVM_GetContactHiddenStatus(MCONTACT hContact, char *szStatus, ClcData *dat); //clcitems.c
int BgStatusBarChange(WPARAM wParam, LPARAM lParam); //clcopts.c
-int ClcDoProtoAck(MCONTACT wParam, ACKDATA *ack); //clc.c
+int ClcDoProtoAck(ACKDATA *ack); //clc.c
int ModernSkinButtonDeleteAll(); //modernbutton.c
int GetContactCachedStatus(MCONTACT hContact); //clistsettings.c
int GetContactIconC(ClcCacheEntry *cacheEntry); //clistmod.c
@@ -230,8 +230,7 @@ void UpdateAllAvatars(ClcData *dat); //cac
void ApplyViewMode(const char *Name, bool onlySelector = false);
void SaveViewMode(const char *name, const TCHAR *szGroupFilter, const char *szProtoFilter, DWORD statusMask, DWORD stickyStatusMask, unsigned int options, unsigned int stickies, unsigned int operators, unsigned int lmdat);
-//cluiframes.c
-void gtaRenewText(MCONTACT hContact);
+// cluiframes.c
int ExtraImage_ExtraIDToColumnNum(int extra);
int LoadSkinButtonModule();
diff --git a/plugins/Clist_modern/src/modern_gettextasync.cpp b/plugins/Clist_modern/src/modern_gettextasync.cpp
deleted file mode 100644
index 7180896a78..0000000000
--- a/plugins/Clist_modern/src/modern_gettextasync.cpp
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
-
-Miranda NG: the free IM client for Microsoft* Windows*
-
-Copyright (ñ) 2012-16 Miranda NG project (http://miranda-ng.org),
-Copyright (c) 2000-08 Miranda ICQ/IM project,
-all portions of this codebase are copyrighted to the people
-listed in contributors.txt.
-
-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; either version 2
-of the License, or (at your option) any later version.
-
-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, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-
-/*
-* Author Artem Shpynov aka FYR
-* Copyright 2000-2008 Artem Shpynov
-*/
-
-//////////////////////////////////////////////////////////////////////////
-// Module to async parsing of texts
-
-#include "stdafx.h"
-#include "modern_gettextasync.h"
-#include "newpluginapi.h"
-#include "modern_sync.h"
-
-int CLUI_SyncSetPDNCE(WPARAM wParam, LPARAM lParam);
-int CLUI_SyncGetShortData(WPARAM wParam, LPARAM lParam);
-
-typedef struct _GetTextAsyncItem {
- MCONTACT hContact;
- ClcData *dat;
- struct _GetTextAsyncItem *Next;
-} GTACHAINITEM;
-
-static GTACHAINITEM *gtaFirstItem = NULL;
-static GTACHAINITEM *gtaLastItem = NULL;
-static mir_cs gtaCS;
-static HANDLE hgtaWakeupEvent = NULL;
-
-static BOOL gtaGetItem(GTACHAINITEM *mpChain)
-{
- if (!mpChain)
- return FALSE;
-
- mir_cslock lck(gtaCS);
- if (!gtaFirstItem)
- return FALSE;
-
- GTACHAINITEM *ch = gtaFirstItem;
- *mpChain = *ch;
- gtaFirstItem = (GTACHAINITEM*)ch->Next;
- if (!gtaFirstItem)
- gtaLastItem = NULL;
- free(ch);
- return TRUE;
-}
-
-static void gtaThreadProc(void*)
-{
- Netlib_Logf(NULL, "GTA thread start");
-
- SHORTDATA data = { 0 };
-
- while (!MirandaExiting()) {
- Sync(CLUI_SyncGetShortData, (WPARAM)pcli->hwndContactTree, (LPARAM)&data);
- while (true) {
- if (MirandaExiting())
- goto LBL_Exit;
-
- SleepEx(0, TRUE); //1000 contacts per second
-
- GTACHAINITEM mpChain = { 0 };
- SHORTDATA dat2 = { 0 };
- if (!gtaGetItem(&mpChain))
- break;
-
- SHORTDATA *dat;
- if (mpChain.dat == NULL || (!IsBadReadPtr(mpChain.dat, sizeof(*mpChain.dat)) && mpChain.dat->hWnd == data.hWnd))
- dat = &data;
- else {
- Sync(CLUI_SyncGetShortData, (WPARAM)mpChain.dat->hWnd, (LPARAM)&dat2);
- dat = &dat2;
- }
- if (MirandaExiting())
- goto LBL_Exit;
-
- ClcCacheEntry cacheEntry;
- memset(&cacheEntry, 0, sizeof(cacheEntry));
- cacheEntry.hContact = mpChain.hContact;
- if (!Sync(CLUI_SyncGetPDNCE, (WPARAM)0, (LPARAM)&cacheEntry)) {
- Cache_GetSecondLineText(dat, &cacheEntry);
- Cache_GetThirdLineText(dat, &cacheEntry);
- Sync(CLUI_SyncSetPDNCE, (WPARAM)CCI_LINES, (LPARAM)&cacheEntry);
- CListSettings_FreeCacheItemData(&cacheEntry);
- }
-
- KillTimer(dat->hWnd, TIMERID_INVALIDATE_FULL);
- CLUI_SafeSetTimer(dat->hWnd, TIMERID_INVALIDATE_FULL, 500, NULL);
- }
-
- WaitForSingleObjectEx(hgtaWakeupEvent, INFINITE, TRUE);
- ResetEvent(hgtaWakeupEvent);
- }
-
-LBL_Exit:
- CloseHandle(hgtaWakeupEvent);
- hgtaWakeupEvent = NULL;
- g_hGetTextAsyncThread = NULL;
- Netlib_Logf(NULL, "GTA thread end");
-}
-
-BOOL gtaWakeThread()
-{
- if (hgtaWakeupEvent && g_hGetTextAsyncThread) {
- SetEvent(hgtaWakeupEvent);
- return TRUE;
- }
-
- return FALSE;
-}
-
-int gtaAddRequest(ClcData *dat, MCONTACT hContact)
-{
- if (MirandaExiting()) return 0;
-
- mir_cslock lck(gtaCS);
-
- GTACHAINITEM *mpChain = (GTACHAINITEM*)malloc(sizeof(GTACHAINITEM));
- mpChain->hContact = hContact;
- mpChain->dat = dat;
- mpChain->Next = NULL;
- if (gtaLastItem) {
- gtaLastItem->Next = (GTACHAINITEM*)mpChain;
- gtaLastItem = mpChain;
- }
- else {
- gtaFirstItem = mpChain;
- gtaLastItem = mpChain;
- SetEvent(hgtaWakeupEvent);
- }
-
- return FALSE;
-}
-
-void gtaRenewText(MCONTACT hContact)
-{
- gtaAddRequest(NULL, hContact);
-}
-
-void gtaShutdown()
-{
- if (hgtaWakeupEvent)
- SetEvent(hgtaWakeupEvent);
-}
-
-void InitCacheAsync()
-{
- hgtaWakeupEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
- g_hGetTextAsyncThread = mir_forkthread(gtaThreadProc, 0);
-}
diff --git a/plugins/Clist_modern/src/modern_gettextasync.h b/plugins/Clist_modern/src/modern_gettextasync.h
deleted file mode 100644
index c53039da71..0000000000
--- a/plugins/Clist_modern/src/modern_gettextasync.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#pragma once
-void InitCacheAsync();
-
-void gtaRenewText(MCONTACT hContact);
-int gtaAddRequest(ClcData *dat, MCONTACT hContact);
-void gtaShutdown(void);
diff --git a/plugins/Clist_modern/src/modern_rowheight_funcs.cpp b/plugins/Clist_modern/src/modern_rowheight_funcs.cpp
index 00119588d1..7a09e62960 100644
--- a/plugins/Clist_modern/src/modern_rowheight_funcs.cpp
+++ b/plugins/Clist_modern/src/modern_rowheight_funcs.cpp
@@ -159,9 +159,9 @@ int mod_CalcRowHeight_worker(ClcData *dat, ClcContact *contact, int item)
case TC_TEXT2:
{
int tmp = 0;
- if (dat->second_line_show && pdnce->szSecondLineText && pdnce->szSecondLineText[0]) {
+ if (dat->secondLine.show && pdnce->szSecondLineText && pdnce->szSecondLineText[0]) {
tmp = dat->fontModernInfo[FONTID_SECONDLINE].fontHeight;
- if (dat->text_replace_smileys && dat->second_line_draw_smileys && !dat->text_resize_smileys)
+ if (dat->text_replace_smileys && dat->secondLine.draw_smileys && !dat->text_resize_smileys)
tmp = max(tmp, pdnce->ssSecondLine.iMaxSmileyHeight);
if (item == -1) {
//calculate text width here
@@ -184,9 +184,9 @@ int mod_CalcRowHeight_worker(ClcData *dat, ClcContact *contact, int item)
case TC_TEXT3:
{
int tmp = 0;
- if (dat->third_line_show && pdnce->szThirdLineText && pdnce->szThirdLineText[0]) {
+ if (dat->thirdLine.show && pdnce->szThirdLineText && pdnce->szThirdLineText[0]) {
tmp = dat->fontModernInfo[FONTID_THIRDLINE].fontHeight;
- if (dat->text_replace_smileys && dat->third_line_draw_smileys && !dat->text_resize_smileys)
+ if (dat->text_replace_smileys && dat->thirdLine.draw_smileys && !dat->text_resize_smileys)
tmp = max(tmp, pdnce->ssThirdLine.iMaxSmileyHeight);
if (item == -1) {
//calculate text width here
@@ -397,18 +397,18 @@ int RowHeights_GetMaxRowHeight(ClcData *dat, HWND hwnd)
max_height += tmp;
- if (dat->second_line_show) {
+ if (dat->secondLine.show) {
tmp = dat->fontModernInfo[FONTID_SECONDLINE].fontHeight;
- if (dat->text_replace_smileys && dat->second_line_draw_smileys && !dat->text_resize_smileys)
+ if (dat->text_replace_smileys && dat->secondLine.draw_smileys && !dat->text_resize_smileys)
tmp = max(tmp, dat->text_smiley_height);
- max_height += dat->second_line_top_space + tmp;
+ max_height += dat->secondLine.top_space + tmp;
}
- if (dat->third_line_show) {
+ if (dat->thirdLine.show) {
tmp = dat->fontModernInfo[FONTID_THIRDLINE].fontHeight;
- if (dat->text_replace_smileys && dat->third_line_draw_smileys && !dat->text_resize_smileys)
+ if (dat->text_replace_smileys && dat->thirdLine.draw_smileys && !dat->text_resize_smileys)
tmp = max(tmp, dat->text_smiley_height);
- max_height += dat->third_line_top_space + tmp;
+ max_height += dat->thirdLine.top_space + tmp;
}
// Get other font sizes
@@ -545,19 +545,19 @@ int RowHeights_GetRowHeight_worker(ClcData *dat, HWND hwnd, ClcContact *contact,
tmp = max(tmp, contact->ssText.iMaxSmileyHeight);
height += tmp;
- if (pdnce) {
- if (!minimalistic && dat->second_line_show && pdnce->szSecondLineText && pdnce->szSecondLineText[0]) {
+ if (pdnce && !minimalistic) {
+ if (dat->secondLine.show && pdnce->szSecondLineText && pdnce->szSecondLineText[0]) {
tmp = dat->fontModernInfo[FONTID_SECONDLINE].fontHeight;
- if (dat->text_replace_smileys && dat->second_line_draw_smileys && !dat->text_resize_smileys)
+ if (dat->text_replace_smileys && dat->secondLine.draw_smileys && !dat->text_resize_smileys)
tmp = max(tmp, pdnce->ssSecondLine.iMaxSmileyHeight);
- height += dat->second_line_top_space + tmp;
+ height += dat->secondLine.top_space + tmp;
}
- if (!minimalistic && dat->third_line_show && pdnce->szThirdLineText && pdnce->szThirdLineText[0]) {
+ if (dat->thirdLine.show && pdnce->szThirdLineText && pdnce->szThirdLineText[0]) {
tmp = dat->fontModernInfo[FONTID_THIRDLINE].fontHeight;
- if (dat->text_replace_smileys && dat->third_line_draw_smileys && !dat->text_resize_smileys)
+ if (dat->text_replace_smileys && dat->thirdLine.draw_smileys && !dat->text_resize_smileys)
tmp = max(tmp, pdnce->ssThirdLine.iMaxSmileyHeight);
- height += dat->third_line_top_space + tmp;
+ height += dat->thirdLine.top_space + tmp;
}
}
}
diff --git a/plugins/Clist_modern/src/modern_static_clui.h b/plugins/Clist_modern/src/modern_static_clui.h
index 46ac620ac0..734ea3142a 100644
--- a/plugins/Clist_modern/src/modern_static_clui.h
+++ b/plugins/Clist_modern/src/modern_static_clui.h
@@ -55,15 +55,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
/* Declaration of prototypes in other modules */
int ClcUnloadModule();
-int ClcGetShortData(ClcData* pData, SHORTDATA *pShortData);
int ClcEnterDragToScroll(HWND hwnd, int Y);
int CListMod_ContactListShutdownProc(WPARAM wParam, LPARAM lParam);
int CListMod_HideWindow(HWND hwndContactList, int mode);
-int CListSettings_GetCopyFromCache(ClcCacheEntry *pDest, DWORD flag);
-int CListSettings_SetToCache(ClcCacheEntry *pSrc, DWORD flag);
-
int CLUIServices_LoadModule(void);
INT_PTR CLUIServices_SortList(WPARAM wParam, LPARAM lParam);
@@ -118,5 +114,4 @@ int SizeFramesByWindowRect(RECT *r, HDWP * PosBatch, int mode); //cluiframes.c
int InitSkinHotKeys();
BOOL amWakeThread();
-BOOL gtaWakeThread();
void CreateViewModeFrame();
diff --git a/plugins/Clist_modern/src/stdafx.h b/plugins/Clist_modern/src/stdafx.h
index 8382e91ae4..196d825723 100644
--- a/plugins/Clist_modern/src/stdafx.h
+++ b/plugins/Clist_modern/src/stdafx.h
@@ -244,9 +244,6 @@ int AniAva_RenderAvatar(MCONTACT hContact, HDC hdcMem, RECT *rc);
#define CCI_OTHER ~( CCI_NAME|CCI_GROUP|CCI_PROTO|CCI_STATUS|CCI_LINES|CCI_TIME )
#define CCI_ALL (0xFFFFFFFF)
-void CListSettings_FreeCacheItemData(ClcCacheEntry *pDst);
-int CLUI_SyncGetPDNCE(WPARAM wParam, LPARAM lParam);
-
/* move to list module */
typedef void(*ItemDestuctor)(void*);
diff --git a/plugins/Clist_nicer/src/clc.cpp b/plugins/Clist_nicer/src/clc.cpp
index 18127ae461..35237961cf 100644
--- a/plugins/Clist_nicer/src/clc.cpp
+++ b/plugins/Clist_nicer/src/clc.cpp
@@ -260,7 +260,6 @@ LRESULT CALLBACK ContactListControlWndProc(HWND hwnd, UINT msg, WPARAM wParam, L
KillTimer(hwnd, TIMERID_INFOTIP);
KillTimer(hwnd, TIMERID_RENAME);
pcli->pfnRecalcScrollBar(hwnd, dat);
-LBL_Def:
return DefWindowProc(hwnd, msg, wParam, lParam);
case WM_NCCALCSIZE:
@@ -302,7 +301,7 @@ LBL_Def:
dat->needsResort = TRUE;
PostMessage(hwnd, INTM_SORTCLC, 0, 1);
}
- goto LBL_Def;
+ return DefWindowProc(hwnd, msg, wParam, lParam);
case INTM_ICONCHANGED:
{
@@ -369,7 +368,7 @@ LBL_Def:
if (recalcScrollBar)
pcli->pfnRecalcScrollBar(hwnd, dat);
}
- goto LBL_Def;
+ return DefWindowProc(hwnd, msg, wParam, lParam);
case INTM_METACHANGED:
if (!pcli->pfnFindItem(hwnd, dat, wParam, &contact, NULL, NULL))
@@ -393,14 +392,14 @@ LBL_Def:
}
}
SendMessage(hwnd, INTM_NAMEORDERCHANGED, wParam, lParam);
- goto LBL_Def;
+ return DefWindowProc(hwnd, msg, wParam, lParam);
case INTM_METACHANGEDEVENT:
if (!FindItem(hwnd, dat, (HANDLE)wParam, &contact, NULL, NULL))
break;
if (lParam == 0)
pcli->pfnInitAutoRebuild(hwnd);
- goto LBL_Def;
+ return DefWindowProc(hwnd, msg, wParam, lParam);
case INTM_NAMECHANGED:
if (!FindItem(hwnd, dat, (HANDLE)wParam, &contact, NULL, NULL))
@@ -411,14 +410,15 @@ LBL_Def:
dat->needsResort = TRUE;
PostMessage(hwnd, INTM_SORTCLC, 0, 0);
- goto LBL_Def;
+ return DefWindowProc(hwnd, msg, wParam, lParam);
case INTM_CODEPAGECHANGED:
if (!FindItem(hwnd, dat, (HANDLE)wParam, &contact, NULL, NULL))
break;
+
contact->codePage = db_get_dw(wParam, "Tab_SRMsg", "ANSIcodepage", db_get_dw(wParam, "UserInfo", "ANSIcodepage", CP_ACP));
PostMessage(hwnd, INTM_INVALIDATE, 0, 0);
- goto LBL_Def;
+ return DefWindowProc(hwnd, msg, wParam, lParam);
case INTM_AVATARCHANGED:
contact = NULL;
@@ -430,7 +430,7 @@ LBL_Def:
cfg::dat.bForceRefetchOnPaint = TRUE;
RedrawWindow(hwnd, NULL, NULL, RDW_ERASE | RDW_INVALIDATE | RDW_UPDATENOW);
cfg::dat.bForceRefetchOnPaint = FALSE;
- goto LBL_Def;
+ return DefWindowProc(hwnd, msg, wParam, lParam);
}
if (!FindItem(hwnd, dat, (HANDLE)wParam, &contact, NULL, NULL))
@@ -453,7 +453,7 @@ LBL_Def:
}
PostMessage(hwnd, INTM_INVALIDATE, 0, (LPARAM)contact->hContact);
}
- goto LBL_Def;
+ return DefWindowProc(hwnd, msg, wParam, lParam);
case INTM_STATUSMSGCHANGED:
{
@@ -469,7 +469,7 @@ LBL_Def:
GetCachedStatusMsg(p, szProto);
PostMessage(hwnd, INTM_INVALIDATE, 0, contact ? contact->hContact : 0);
}
- goto LBL_Def;
+ return DefWindowProc(hwnd, msg, wParam, lParam);
case INTM_STATUSCHANGED:
if (FindItem(hwnd, dat, (HANDLE)wParam, &contact, NULL, NULL)) {
@@ -480,7 +480,7 @@ LBL_Def:
LoadAvatarForContact(contact);
}
contact->wStatus = wStatus;
- goto LBL_Def;
+ return DefWindowProc(hwnd, msg, wParam, lParam);
}
break;
@@ -496,7 +496,7 @@ LBL_Def:
dat->needsResort = TRUE;
PostMessage(hwnd, INTM_SORTCLC, 0, 0);
- goto LBL_Def;
+ return DefWindowProc(hwnd, msg, wParam, lParam);
case INTM_INVALIDATE:
if (!dat->bNeedPaint) {
@@ -504,18 +504,7 @@ LBL_Def:
SetTimer(hwnd, TIMERID_PAINT, 100, NULL);
dat->bNeedPaint = TRUE;
}
- goto LBL_Def;
-
- case INTM_INVALIDATECONTACT:
- if (!FindItem(hwnd, dat, (HANDLE)wParam, &contact, &group, NULL))
- break;
-
- if (contact && group) {
- int iItem = pcli->pfnGetRowsPriorTo(&dat->list, group, List_IndexOf((SortedList*)& group->cl, contact));
- pcli->pfnInvalidateItem(hwnd, dat, iItem);
- goto LBL_Def;
- }
- break;
+ return DefWindowProc(hwnd, msg, wParam, lParam);
case INTM_FORCESORT:
dat->needsResort = TRUE;
@@ -528,7 +517,7 @@ LBL_Def:
}
if (lParam)
pcli->pfnRecalcScrollBar(hwnd, dat);
- goto LBL_Def;
+ return DefWindowProc(hwnd, msg, wParam, lParam);
case INTM_IDLECHANGED:
if (FindItem(hwnd, dat, (HANDLE)wParam, &contact, NULL, NULL)) {
@@ -542,7 +531,7 @@ LBL_Def:
contact->flags |= CONTACTF_IDLE;
}
PostMessage(hwnd, INTM_INVALIDATE, 0, (LPARAM)contact->hContact);
- goto LBL_Def;
+ return DefWindowProc(hwnd, msg, wParam, lParam);
}
break;
@@ -581,7 +570,7 @@ LBL_Def:
GetCachedStatusMsg(p, szProto);
PostMessage(hwnd, INTM_INVALIDATE, 0, contact ? contact->hContact : 0);
}
- goto LBL_Def;
+ return DefWindowProc(hwnd, msg, wParam, lParam);
case WM_PAINT:
{
@@ -598,7 +587,7 @@ LBL_Def:
dat->oldSelection = dat->selection;
}
}
- goto LBL_Def;
+ return DefWindowProc(hwnd, msg, wParam, lParam);
case WM_MOUSEWHEEL:
dat->forceScroll = TRUE;
@@ -608,12 +597,12 @@ LBL_Def:
if (wParam == TIMERID_PAINT) {
KillTimer(hwnd, TIMERID_PAINT);
InvalidateRect(hwnd, NULL, FALSE);
- goto LBL_Def;
+ return DefWindowProc(hwnd, msg, wParam, lParam);
}
if (wParam == TIMERID_REFRESH) {
InvalidateRect(hwnd, NULL, FALSE);
- goto LBL_Def;
+ return DefWindowProc(hwnd, msg, wParam, lParam);
}
break;
diff --git a/plugins/Clist_nicer/src/clc.h b/plugins/Clist_nicer/src/clc.h
index a20582d6cb..58d9c11594 100644
--- a/plugins/Clist_nicer/src/clc.h
+++ b/plugins/Clist_nicer/src/clc.h
@@ -30,7 +30,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define INTM_SORTCLC (WM_USER+32)
#define INTM_STATUSCHANGED (WM_USER+33)
#define INTM_METACHANGED (WM_USER+34)
-#define INTM_INVALIDATECONTACT (WM_USER+35)
#define INTM_FORCESORT (WM_USER+36)
#define DEFAULT_TITLEBAR_HEIGHT 18