From e82bfee6d62bce298ae1f69653470969f8c2a8ca Mon Sep 17 00:00:00 2001 From: Tobias Weimer <wishmaster51@googlemail.com> Date: Sat, 2 Aug 2014 15:29:00 +0000 Subject: Fixed displaying status changed (fixes #553) git-svn-id: http://svn.miranda-ng.org/main/trunk@10024 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- src/core/stdmsg/src/msgdialog.cpp | 6 ++-- src/core/stdmsg/src/msglog.cpp | 66 ++++++++++----------------------------- src/core/stdmsg/src/msgs.h | 2 +- 3 files changed, 21 insertions(+), 53 deletions(-) (limited to 'src') diff --git a/src/core/stdmsg/src/msgdialog.cpp b/src/core/stdmsg/src/msgdialog.cpp index dd9f9621bf..073839130d 100644 --- a/src/core/stdmsg/src/msgdialog.cpp +++ b/src/core/stdmsg/src/msgdialog.cpp @@ -790,7 +790,7 @@ INT_PTR CALLBACK DlgProcMessage(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lP DBEVENTINFO dbei = { sizeof(dbei) }; dat->hDbEventFirst = hPrevEvent; db_event_get(hPrevEvent, &dbei); - if (!DbEventIsShown(&dbei, dat)) + if (!DbEventIsShown(&dbei)) i++; } break; @@ -1312,8 +1312,8 @@ INT_PTR CALLBACK DlgProcMessage(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lP DBEVENTINFO dbei = { sizeof(dbei) }; db_event_get(hDbEvent, &dbei); - if (DbEventIsShown(&dbei, dat) && !(dbei.flags & DBEF_READ)) { - if ((dbei.eventType == EVENTTYPE_MESSAGE || DbEventIsForMsgWindow(&dbei)) && !(dbei.flags & DBEF_SENT)) { + if (DbEventIsShown(&dbei) && !(dbei.flags & DBEF_READ)) { + if ((dbei.eventType == EVENTTYPE_MESSAGE) && !(dbei.flags & DBEF_SENT)) { if (GetForegroundWindow() == hwndDlg) SkinPlaySound("RecvMsgActive"); else diff --git a/src/core/stdmsg/src/msglog.cpp b/src/core/stdmsg/src/msglog.cpp index b5c4d6c1fa..558a61ed54 100644 --- a/src/core/stdmsg/src/msglog.cpp +++ b/src/core/stdmsg/src/msglog.cpp @@ -168,27 +168,22 @@ static int AppendToBufferWithRTF(char **buffer, int *cbBufferEnd, int *cbBufferA static char *CreateRTFHeader(SrmmWindowData *dat) { - char *buffer; - int bufferAlloced, bufferEnd; - int i; - LOGFONT lf; - COLORREF colour; - HDC hdc; - - hdc = GetDC(NULL); + HDC hdc = GetDC(NULL); logPixelSY = GetDeviceCaps(hdc, LOGPIXELSY); ReleaseDC(NULL, hdc); - bufferEnd = 0; - bufferAlloced = 1024; - buffer = (char *)mir_alloc(bufferAlloced); + int bufferEnd = 0; + int bufferAlloced = 1024; + char *buffer = (char *)mir_alloc(bufferAlloced); buffer[0] = '\0'; AppendToBuffer(&buffer, &bufferEnd, &bufferAlloced, "{\\rtf1\\ansi\\deff0{\\fonttbl"); - for (i = 0; LoadMsgDlgFont(i, &lf, NULL); i++) + LOGFONT lf; + for (int i = 0; LoadMsgDlgFont(i, &lf, NULL); i++) AppendToBuffer(&buffer, &bufferEnd, &bufferAlloced, FONT_FORMAT, i, lf.lfCharSet, lf.lfFaceName); AppendToBuffer(&buffer, &bufferEnd, &bufferAlloced, "}{\\colortbl "); - for (i = 0; LoadMsgDlgFont(i, NULL, &colour); i++) + COLORREF colour; + for (int i = 0; LoadMsgDlgFont(i, NULL, &colour); i++) AppendToBuffer(&buffer, &bufferEnd, &bufferAlloced, "\\red%u\\green%u\\blue%u;", GetRValue(colour), GetGValue(colour), GetBValue(colour)); if (GetSysColorBrush(COLOR_HOTLIGHT) == NULL) @@ -204,12 +199,9 @@ static char *CreateRTFHeader(SrmmWindowData *dat) //mir_free() the return value static char *CreateRTFTail(SrmmWindowData *dat) { - char *buffer; - int bufferAlloced, bufferEnd; - - bufferEnd = 0; - bufferAlloced = 1024; - buffer = (char *)mir_alloc(bufferAlloced); + int bufferEnd = 0; + int bufferAlloced = 1024; + char *buffer = (char *)mir_alloc(bufferAlloced); buffer[0] = '\0'; AppendToBuffer(&buffer, &bufferEnd, &bufferAlloced, "}"); return buffer; @@ -232,17 +224,9 @@ int DbEventIsForMsgWindow(DBEVENTINFO *dbei) return et && (et->flags & DETF_MSGWINDOW); } -int DbEventIsShown(DBEVENTINFO * dbei, SrmmWindowData *dat) +int DbEventIsShown(DBEVENTINFO *dbei) { - switch (dbei->eventType) { - case EVENTTYPE_MESSAGE: - return 1; - case EVENTTYPE_JABBER_CHATSTATES: - case EVENTTYPE_JABBER_PRESENCE: - case EVENTTYPE_FILE: - return (dbei->flags & DBEF_READ) == 0; - } - return DbEventIsForMsgWindow(dbei); + return (dbei->eventType==EVENTTYPE_MESSAGE) || DbEventIsForMsgWindow(dbei); } //mir_free() the return value @@ -259,7 +243,7 @@ static char *CreateRTFFromDbEvent(SrmmWindowData *dat, MCONTACT hContact, HANDLE dbei.pBlob = (PBYTE)mir_alloc(dbei.cbBlob); db_event_get(hDbEvent, &dbei); - if (!DbEventIsShown(&dbei, dat)) { + if (!DbEventIsShown(&dbei)) { mir_free(dbei.pBlob); return NULL; } @@ -294,23 +278,8 @@ static char *CreateRTFFromDbEvent(SrmmWindowData *dat, MCONTACT hContact, HANDLE } if (g_dat.flags & SMF_SHOWICONS) { - int i; - - switch (dbei.eventType) { - case EVENTTYPE_MESSAGE: - if (dbei.flags & DBEF_SENT) - i = LOGICON_MSG_OUT; - else - i = LOGICON_MSG_IN; - break; - - case EVENTTYPE_JABBER_CHATSTATES: - case EVENTTYPE_JABBER_PRESENCE: - case EVENTTYPE_FILE: - default: - i = LOGICON_MSG_NOTICE; - break; - } + int i = (dbei.eventType ? ((dbei.flags & DBEF_SENT) ? LOGICON_MSG_OUT : LOGICON_MSG_IN): LOGICON_MSG_NOTICE); + AppendToBuffer(&buffer, &bufferEnd, &bufferAlloced, "\\f0\\fs14"); while (bufferAlloced - bufferEnd < logIconBmpSize[i]) bufferAlloced += 1024; @@ -594,7 +563,6 @@ void LoadMsgLogIcons(void) void FreeMsgLogIcons(void) { - int i; - for (i = 0; i < SIZEOF(pLogIconBmpBits); i++) + for (int i = 0; i < SIZEOF(pLogIconBmpBits); i++) mir_free(pLogIconBmpBits[i]); } diff --git a/src/core/stdmsg/src/msgs.h b/src/core/stdmsg/src/msgs.h index 9c1887fcd0..b23c7180cd 100644 --- a/src/core/stdmsg/src/msgs.h +++ b/src/core/stdmsg/src/msgs.h @@ -123,7 +123,7 @@ struct CREOleCallback : public IRichEditOleCallback INT_PTR CALLBACK DlgProcMessage(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); INT_PTR CALLBACK ErrorDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); int DbEventIsForMsgWindow(DBEVENTINFO *dbei); -int DbEventIsShown(DBEVENTINFO * dbei, SrmmWindowData *dat); +int DbEventIsShown(DBEVENTINFO * dbei); void StreamInEvents(HWND hwndDlg, HANDLE hDbEventFirst, int count, int fAppend); HANDLE SendMessageDirect(const TCHAR *szMsg, MCONTACT hContact, char *szProto); -- cgit v1.2.3