From 04ac06b7119933997ee0b407478d4cb409007098 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Sat, 18 Jan 2014 09:34:05 +0000 Subject: end of crazy matrix mechanics in chat's icon ordering git-svn-id: http://svn.miranda-ng.org/main/trunk@7708 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- src/modules/chat/chat_svc.cpp | 17 ++++++++++++++--- src/modules/chat/manager.cpp | 18 +++--------------- 2 files changed, 17 insertions(+), 18 deletions(-) (limited to 'src/modules/chat') diff --git a/src/modules/chat/chat_svc.cpp b/src/modules/chat/chat_svc.cpp index bfb928ce11..7aefea1e20 100644 --- a/src/modules/chat/chat_svc.cpp +++ b/src/modules/chat/chat_svc.cpp @@ -175,7 +175,7 @@ static INT_PTR Service_Register(WPARAM wParam, LPARAM lParam) memcpy(mi->crColors, gcr->pColors, sizeof(COLORREF)* gcr->nColors); } - mi->pszHeader = Log_CreateRtfHeader(mi); + mi->pszHeader = ci.Log_CreateRtfHeader(mi); CheckColorsInModule((char*)gcr->pszModule); ci.SetAllOffline(TRUE, gcr->pszModule); @@ -248,6 +248,17 @@ static INT_PTR Service_NewChat(WPARAM wParam, LPARAM lParam) return 0; } +static void SetInitDone(SESSION_INFO *si) +{ + if (si->bInitDone) + return; + + si->bInitDone = true; + for (STATUSINFO *p = si->pStatuses; p; p = p->next) + if ((UINT_PTR)p->hIcon < STATUSICONCOUNT) + p->hIcon = HICON(si->iStatusCount - (int)p->hIcon - 1); +} + static int DoControl(GCEVENT *gce, WPARAM wp) { SESSION_INFO *si; @@ -256,7 +267,7 @@ static int DoControl(GCEVENT *gce, WPARAM wp) switch (wp) { case WINDOW_HIDDEN: if (si = ci.SM_FindSession(gce->pDest->ptszID, gce->pDest->pszModule)) { - si->bInitDone = TRUE; + SetInitDone(si); ci.SetActiveSession(si->ptszID, si->pszModule); if (si->hWnd) ci.ShowRoom(si, wp, FALSE); @@ -268,7 +279,7 @@ static int DoControl(GCEVENT *gce, WPARAM wp) case WINDOW_VISIBLE: case SESSION_INITDONE: if (si = ci.SM_FindSession(gce->pDest->ptszID, gce->pDest->pszModule)) { - si->bInitDone = TRUE; + SetInitDone(si); if (wp != SESSION_INITDONE || db_get_b(NULL, "Chat", "PopupOnJoin", 0) == 0) ci.ShowRoom(si, wp, TRUE); return 0; diff --git a/src/modules/chat/manager.cpp b/src/modules/chat/manager.cpp index 6c7b1c6afa..d418b56a24 100644 --- a/src/modules/chat/manager.cpp +++ b/src/modules/chat/manager.cpp @@ -226,22 +226,10 @@ static HICON SM_GetStatusIcon(SESSION_INFO *si, USERINFO * ui) STATUSINFO *ti = ci.TM_FindStatus(si->pStatuses, ci.TM_WordToString(si->pStatuses, ui->Status)); if (ti != NULL) { - if ((INT_PTR)ti->hIcon >= STATUSICONCOUNT) + if ((UINT_PTR)ti->hIcon >= STATUSICONCOUNT) return ti->hIcon; - int id = si->iStatusCount - (int)ti->hIcon - 1; - if (id == 0) - return ci.hIcons[ICON_STATUS0]; - if (id == 1) - return ci.hIcons[ICON_STATUS1]; - if (id == 2) - return ci.hIcons[ICON_STATUS2]; - if (id == 3) - return ci.hIcons[ICON_STATUS3]; - if (id == 4) - return ci.hIcons[ICON_STATUS4]; - if (id == 5) - return ci.hIcons[ICON_STATUS5]; + return ci.hIcons[ICON_STATUS0 + (int)ti->hIcon]; } return ci.hIcons[ICON_STATUS0]; } @@ -898,7 +886,7 @@ static void MM_FontsChanged(void) { MODULEINFO *pTemp = m_ModList; while (pTemp != NULL) { - pTemp->pszHeader = Log_CreateRtfHeader(pTemp); + pTemp->pszHeader = ci.Log_CreateRtfHeader(pTemp); pTemp = pTemp->next; } return; -- cgit v1.2.3