diff options
-rw-r--r-- | plugins/Clist_modern/src/CLUIFrames/cluiframes.cpp | 147 | ||||
-rw-r--r-- | plugins/Clist_modern/src/modern_cachefuncs.cpp | 6 | ||||
-rw-r--r-- | plugins/Clist_modern/src/modern_clcpaint.cpp | 51 | ||||
-rw-r--r-- | plugins/Clist_modern/src/modern_rowtemplateopt.cpp | 2 | ||||
-rw-r--r-- | plugins/Clist_modern/src/modern_skinengine.cpp | 87 |
5 files changed, 127 insertions, 166 deletions
diff --git a/plugins/Clist_modern/src/CLUIFrames/cluiframes.cpp b/plugins/Clist_modern/src/CLUIFrames/cluiframes.cpp index e43d540057..afa6862cd6 100644 --- a/plugins/Clist_modern/src/CLUIFrames/cluiframes.cpp +++ b/plugins/Clist_modern/src/CLUIFrames/cluiframes.cpp @@ -737,16 +737,14 @@ static int CLUIFramesStoreFrameSettings(int Frameid) static int CLUIFramesStoreAllFrames()
{
- int i;
if (_fCluiFramesModuleNotStarted) return -1;
- for (i = 0; i < g_nFramesCount; i++)
+ for (int i = 0; i < g_nFramesCount; i++)
CLUIFramesStoreFrameSettings(i);
return 0;
}
static int CLUIFramesGetalClientFrame(void)
{
- int i;
if (_fCluiFramesModuleNotStarted) return -1;
if (_nClientFrameId != eUnknownId) {
@@ -759,7 +757,7 @@ static int CLUIFramesGetalClientFrame(void) }
}
- for (i = 0; i < g_nFramesCount; i++)
+ for (int i = 0; i < g_nFramesCount; i++)
if (g_pfwFrames[i].align == alClient) {
_nClientFrameId = i;
return i;
@@ -1301,11 +1299,9 @@ static int _us_DoSetFrameOptions(WPARAM wParam, LPARAM lParam) //wparam = lparam = 0
static int _us_DoShowAllFrames(WPARAM, LPARAM)
{
- int i;
-
if (_fCluiFramesModuleNotStarted) return -1;
- for (i = 0; i < g_nFramesCount; i++)
+ for (int i = 0; i < g_nFramesCount; i++)
g_pfwFrames[i].visible = TRUE;
CLUIFramesOnClistResize((WPARAM)pcli->hwndContactList, 0);
return 0;
@@ -1314,11 +1310,9 @@ static int _us_DoShowAllFrames(WPARAM, LPARAM) //wparam = lparam = 0
static int _us_DoShowTitles(WPARAM, LPARAM)
{
- int i;
-
if (_fCluiFramesModuleNotStarted) return -1;
- for (i = 0; i < g_nFramesCount; i++)
+ for (int i = 0; i < g_nFramesCount; i++)
g_pfwFrames[i].TitleBar.ShowTitleBar = TRUE;
CLUIFramesOnClistResize((WPARAM)pcli->hwndContactList, 0);
return 0;
@@ -1388,20 +1382,21 @@ static int _us_DoMoveFrame(WPARAM wParam, LPARAM lParam) int pos = id2pos(wParam);
if (pos >= 0 && (int)pos < g_nFramesCount) {
- SortData *sd;
curpos = g_pfwFrames[pos].order;
curalign = g_pfwFrames[pos].align;
v = 0;
- sd = (SortData*)malloc(sizeof(SortData)*g_nFramesCount);
+ SortData *sd = (SortData*)malloc(sizeof(SortData)*g_nFramesCount);
memset(sd, 0, sizeof(SortData)*g_nFramesCount);
for (i = 0; i < g_nFramesCount; i++) {
if (g_pfwFrames[i].floating || (!g_pfwFrames[i].visible) || (g_pfwFrames[i].align != curalign)) { continue; };
sd[v].order = g_pfwFrames[i].order;
- sd[v].realpos = i;
- v++;
- };
- if (v == 0) { return 0; };
+ sd[v++].realpos = i;
+ }
+ if (v == 0) {
+ free(sd);
+ return 0;
+ }
qsort(sd, v, sizeof(SortData), sortfunc);
for (i = 0; i < v; i++)
g_pfwFrames[sd[i].realpos].order = i + 1; //to be sure that order is incremental
@@ -2000,7 +1995,6 @@ static int CLUIFrameMoveResize(const FRAMEWND *Frame) static BOOL CLUIFramesFitInSize(void)
{
- int i;
int sumheight = 0;
int tbh = 0; // title bar height
int clientfrm;
@@ -2008,7 +2002,7 @@ static BOOL CLUIFramesFitInSize(void) if (clientfrm != -1)
tbh = g_nTitleBarHeight*btoint(g_pfwFrames[clientfrm].TitleBar.ShowTitleBar);
- for (i = 0; i < g_nFramesCount; i++) {
+ for (int i = 0; i < g_nFramesCount; i++) {
if ((g_pfwFrames[i].align != alClient) && (!g_pfwFrames[i].floating) && (g_pfwFrames[i].visible) && (!g_pfwFrames[i].needhide)) {
sumheight += (g_pfwFrames[i].height) + (g_nTitleBarHeight*btoint(g_pfwFrames[i].TitleBar.ShowTitleBar)) + 2/*+btoint(Frames[i].UseBorder)*2*/;
if (sumheight>_nContactListHeight - tbh - 2) {
@@ -2023,12 +2017,11 @@ static BOOL CLUIFramesFitInSize(void) }
int CLUIFrames_GetTotalHeight()
{
- int i;
- int sumheight = 0;
- RECT border;
if (pcli->hwndContactList == NULL) return 0;
- for (i = 0; i < g_nFramesCount; i++) {
+ int sumheight = 0;
+ RECT border;
+ for (int i = 0; i < g_nFramesCount; i++) {
if ((g_pfwFrames[i].visible) && (!g_pfwFrames[i].needhide) && (!g_pfwFrames[i].floating) && (pcli->hwndContactTree) && (g_pfwFrames[i].hWnd != pcli->hwndContactTree))
sumheight += (g_pfwFrames[i].height) + (g_nTitleBarHeight*btoint(g_pfwFrames[i].TitleBar.ShowTitleBar));
};
@@ -2050,26 +2043,25 @@ int CLUIFrames_GetTotalHeight() int CLUIFramesGetMinHeight()
{
- int i, tbh, clientfrm, sumheight = 0;
+ int tbh = 0, sumheight = 0;
RECT border;
int allbord = 0;
if (pcli->hwndContactList == NULL) return 0;
// search for alClient frame and get the titlebar's height
- tbh = 0;
- clientfrm = CLUIFramesGetalClientFrame();
+ int clientfrm = CLUIFramesGetalClientFrame();
if (clientfrm != -1)
tbh = g_nTitleBarHeight*btoint(g_pfwFrames[clientfrm].TitleBar.ShowTitleBar);
- for (i = 0; i < g_nFramesCount; i++) {
+ for (int i = 0; i < g_nFramesCount; i++) {
if ((g_pfwFrames[i].align != alClient) && (g_pfwFrames[i].visible) && (!g_pfwFrames[i].needhide) && (!g_pfwFrames[i].floating)) {
RECT wsize;
GetWindowRect(g_pfwFrames[i].hWnd, &wsize);
sumheight += (wsize.bottom - wsize.top) + (g_nTitleBarHeight*btoint(g_pfwFrames[i].TitleBar.ShowTitleBar));
}
- };
+ }
GetBorderSize(pcli->hwndContactList, &border);
@@ -2129,7 +2121,7 @@ static int CLUIFramesResizeFrames(const RECT newsize) for (i = 0; i < g_nFramesCount; i++) {
sdarray[i].order = g_pfwFrames[i].order;
sdarray[i].realpos = i;
- };
+ }
qsort(sdarray, g_nFramesCount, sizeof(SortData), sortfunc);
}
@@ -2272,25 +2264,33 @@ int CLUIFrames_ApplyNewSizes(int mode) static int _us_DoUpdateFrame(WPARAM wParam, LPARAM lParam)
{
- if (_fCluiFramesModuleNotStarted) return -1;
- if (wParam == -1) { CLUIFramesOnClistResize((WPARAM)pcli->hwndContactList, 0); return 0; }
- if (lParam&FU_FMPOS) CLUIFramesOnClistResize((WPARAM)pcli->hwndContactList, 1);
+ if (_fCluiFramesModuleNotStarted)
+ return -1;
+ if (wParam == -1) {
+ CLUIFramesOnClistResize((WPARAM)pcli->hwndContactList, 0);
+ return 0;
+ }
+ if (lParam&FU_FMPOS)
+ CLUIFramesOnClistResize((WPARAM)pcli->hwndContactList, 1);
int pos = id2pos(wParam);
- if (pos < 0 || pos >= g_nFramesCount) { return -1; }
- if (lParam&FU_TBREDRAW) CLUIFramesForceUpdateTB(&g_pfwFrames[pos]);
- if (lParam&FU_FMREDRAW) CLUIFramesForceUpdateFrame(&g_pfwFrames[pos]);
+ if (pos < 0 || pos >= g_nFramesCount)
+ return -1;
+ if (lParam&FU_TBREDRAW)
+ CLUIFramesForceUpdateTB(&g_pfwFrames[pos]);
+ if (lParam&FU_FMREDRAW)
+ CLUIFramesForceUpdateFrame(&g_pfwFrames[pos]);
return 0;
}
int CLUIFrames_OnClistResize_mod(WPARAM, LPARAM mode)
{
- RECT nRect;
int tick;
GapBetweenFrames = db_get_dw(NULL, "CLUIFrames", "GapBetweenFrames", SETTING_GAPFRAMES_DEFAULT);
g_CluiData.nGapBetweenTitlebar = db_get_dw(NULL, "CLUIFrames", "GapBetweenTitleBar", SETTING_GAPTITLEBAR_DEFAULT);
if (_fCluiFramesModuleNotStarted) return -1;
+ RECT nRect;
GetClientRect(pcli->hwndContactList, &nRect);
nRect.left += g_CluiData.LeftClientMargin;
@@ -2391,12 +2391,12 @@ int SizeFramesByWindowRect(RECT *r, HDWP * PosBatch, int mode) int CheckFramesPos(RECT *wr)
{
//CALLED only FROM MainWindow procedure at CLUI.c
- int i;
- if (_fCluiFramesModuleNotStarted) return -1;
+ if (_fCluiFramesModuleNotStarted)
+ return -1;
g_CluiData.nGapBetweenTitlebar = (int)db_get_dw(NULL, "CLUIFrames", "GapBetweenTitleBar", SETTING_GAPTITLEBAR_DEFAULT);
GapBetweenFrames = db_get_dw(NULL, "CLUIFrames", "GapBetweenFrames", SETTING_GAPFRAMES_DEFAULT);
- for (i = 0; i < g_nFramesCount; i++) {
+ for (int i = 0; i < g_nFramesCount; i++) {
int dx;
int dy;
dx = 0;//rcNewWindowRect.left-rcOldWindowRect.left;
@@ -2554,20 +2554,15 @@ int OnFrameTitleBarBackgroundChange(WPARAM, LPARAM) void DrawBackGround(HWND hwnd, HDC mhdc, HBITMAP hBmpBackground, COLORREF bkColour, DWORD backgroundBmpUse)
{
- HDC hdcMem, hdc;
+ HDC hdc;
RECT clRect, *rcPaint;
int yScroll = 0;
- int y;
PAINTSTRUCT paintst = { 0 };
- HBITMAP hBmpOsb, hOldBmp;
- HFONT oFont;
-
- HFONT hFont;
//InvalidateRect(hwnd, 0, FALSE);
- hFont = (HFONT)SendMessage(hwnd, WM_GETFONT, 0, 0);
+ HFONT hFont = (HFONT)SendMessage(hwnd, WM_GETFONT, 0, 0);
if (mhdc) {
hdc = mhdc;
@@ -2581,31 +2576,27 @@ void DrawBackGround(HWND hwnd, HDC mhdc, HBITMAP hBmpBackground, COLORREF bkColo GetClientRect(hwnd, &clRect);
if (rcPaint == NULL) rcPaint = &clRect;
if (rcPaint->right - rcPaint->left == 0 || rcPaint->top - rcPaint->bottom == 0) rcPaint = &clRect;
- y = -yScroll;
- hdcMem = CreateCompatibleDC(hdc);
- hBmpOsb = CreateBitmap(clRect.right, clRect.bottom, 1, GetDeviceCaps(hdc, BITSPIXEL), NULL);
- hOldBmp = (HBITMAP)SelectObject(hdcMem, hBmpOsb);
- oFont = (HFONT)SelectObject(hdcMem, hFont);
+ int y = -yScroll;
+ HDC hdcMem = CreateCompatibleDC(hdc);
+ HBITMAP hBmpOsb = CreateBitmap(clRect.right, clRect.bottom, 1, GetDeviceCaps(hdc, BITSPIXEL), NULL);
+ HBITMAP hOldBmp = (HBITMAP)SelectObject(hdcMem, hBmpOsb);
+ HFONT oFont = (HFONT)SelectObject(hdcMem, hFont);
SetBkMode(hdcMem, TRANSPARENT);
SetStretchBltMode(hdcMem, HALFTONE);
- { HBRUSH hBrush;
-
- hBrush = CreateSolidBrush(bkColour);
+ HBRUSH hBrush = CreateSolidBrush(bkColour);
FillRect(hdcMem, rcPaint, hBrush);
DeleteObject(hBrush);
if (hBmpBackground) {
BITMAP bmp;
- HDC hdcBmp;
int x, y;
- int maxx, maxy;
int destw, desth;
GetObject(hBmpBackground, sizeof(bmp), &bmp);
- hdcBmp = CreateCompatibleDC(hdcMem);
+ HDC hdcBmp = CreateCompatibleDC(hdcMem);
SelectObject(hdcBmp, hBmpBackground);
y = backgroundBmpUse&CLBF_SCROLL ? -yScroll : 0;
- maxx = backgroundBmpUse&CLBF_TILEH ? clRect.right : 1;
- maxy = backgroundBmpUse&CLBF_TILEV ? maxy = rcPaint->bottom : y + 1;
+ int maxx = backgroundBmpUse&CLBF_TILEH ? clRect.right : 1;
+ int maxy = backgroundBmpUse&CLBF_TILEV ? maxy = rcPaint->bottom : y + 1;
switch (backgroundBmpUse&CLBM_TYPE) {
case CLB_STRETCH:
if (backgroundBmpUse&CLBF_PROPORTIONAL) {
@@ -2656,7 +2647,6 @@ void DrawBackGround(HWND hwnd, HDC mhdc, HBITMAP hBmpBackground, COLORREF bkColo }
DeleteDC(hdcBmp);
}
- }
{
@@ -2677,23 +2667,20 @@ void DrawBackGround(HWND hwnd, HDC mhdc, HBITMAP hBmpBackground, COLORREF bkColo int DrawTitleBar(HDC hdcMem2, RECT *rect, int Frameid)
{
- int pos;
BOOL bThemed = FALSE;
HDC hdcMem;
- HFONT hoTTBFont;
RECT rc = *rect;
- HBRUSH hBack, hoBrush;
HBITMAP b1 = NULL, b2 = NULL;
hdcMem = CreateCompatibleDC(hdcMem2);
SetBkMode(hdcMem, TRANSPARENT);
- hoTTBFont = (HFONT)SelectObject(hdcMem, _hTitleBarFont);
+ HFONT hoTTBFont = (HFONT)SelectObject(hdcMem, _hTitleBarFont);
ske_ResetTextEffect(hdcMem);
ske_ResetTextEffect(hdcMem2);
- hBack = GetSysColorBrush(COLOR_3DFACE);
- hoBrush = (HBRUSH)SelectObject(hdcMem, hBack);
+ HBRUSH hBack = GetSysColorBrush(COLOR_3DFACE);
+ HBRUSH hoBrush = (HBRUSH)SelectObject(hdcMem, hBack);
- pos = id2pos(Frameid);
+ int pos = id2pos(Frameid);
if (pos >= 0 && pos < g_nFramesCount) {
GetClientRect(g_pfwFrames[pos].TitleBar.hwnd, &rc);
@@ -2858,26 +2845,10 @@ static LRESULT CALLBACK CLUIFrameTitleBarProc(HWND hwnd, UINT msg, WPARAM wParam // Frames[Frameid].TitleBar.hmenu = hmenu;
AppendMenu(hmenu, MF_STRING | MF_DISABLED | MF_GRAYED, 15, g_pfwFrames[framepos].name);
AppendMenu(hmenu, MF_SEPARATOR, 16, _T(""));
-
- if (g_pfwFrames[framepos].Locked) {
- AppendMenu(hmenu, MF_STRING | MF_CHECKED, frame_menu_lock, TranslateT("Lock frame"));
- }
- else { AppendMenu(hmenu, MF_STRING, frame_menu_lock, TranslateT("Lock frame")); };
-
- if (g_pfwFrames[framepos].visible) {
- AppendMenu(hmenu, MF_STRING | MF_CHECKED, frame_menu_visible, TranslateT("Visible"));
- }
- else { AppendMenu(hmenu, MF_STRING, frame_menu_visible, TranslateT("Visible")); };
-
- if (g_pfwFrames[framepos].TitleBar.ShowTitleBar) {
- AppendMenu(hmenu, MF_STRING | MF_CHECKED, frame_menu_showtitlebar, TranslateT("Show title bar"));
- }
- else { AppendMenu(hmenu, MF_STRING, frame_menu_showtitlebar, TranslateT("Show title bar")); };
-
- if (g_pfwFrames[framepos].floating) {
- AppendMenu(hmenu, MF_STRING | MF_CHECKED, frame_menu_floating, TranslateT("Floating"));
- }
- else { AppendMenu(hmenu, MF_STRING, frame_menu_floating, TranslateT("Floating")); };
+ AppendMenu(hmenu, g_pfwFrames[framepos].Locked ? (MF_STRING | MF_CHECKED) : MF_STRING, frame_menu_lock, TranslateT("Lock frame"));
+ AppendMenu(hmenu, g_pfwFrames[framepos].visible ? (MF_STRING | MF_CHECKED) : MF_STRING, frame_menu_visible, TranslateT("Visible"));
+ AppendMenu(hmenu, g_pfwFrames[framepos].TitleBar.ShowTitleBar ? (MF_STRING | MF_CHECKED) : MF_STRING, frame_menu_showtitlebar, TranslateT("Show title bar"));
+ AppendMenu(hmenu, g_pfwFrames[framepos].floating ? (MF_STRING | MF_CHECKED) : MF_STRING, frame_menu_floating, TranslateT("Floating"));
}
TrackPopupMenu(hmenu, TPM_LEFTALIGN, pt.x, pt.y, 0, hwnd, 0);
@@ -2910,8 +2881,8 @@ static LRESULT CALLBACK CLUIFrameTitleBarProc(HWND hwnd, UINT msg, WPARAM wParam POINT pt;
GetCursorPos(&pt);
g_pfwFrames[framepos].TitleBar.oldpos = pt;
- };
- };
+ }
+ }
//ScreenToClient(Frames[framepos].ContainerWnd,&Frames[framepos].TitleBar.oldpos);
diff --git a/plugins/Clist_modern/src/modern_cachefuncs.cpp b/plugins/Clist_modern/src/modern_cachefuncs.cpp index 4b808d886a..fd8b30654c 100644 --- a/plugins/Clist_modern/src/modern_cachefuncs.cpp +++ b/plugins/Clist_modern/src/modern_cachefuncs.cpp @@ -185,9 +185,6 @@ void CSmileyString::DestroySmileyList() void CSmileyString::ReplaceSmileys(struct SHORTDATA *dat, ClcCacheEntry *pdnce, TCHAR * szText, BOOL replace_smileys) { - SMADD_BATCHPARSE2 sp = { 0 }; - SMADD_BATCHPARSERES *spr; - int last_pos = 0; iMaxSmileyHeight = 0; @@ -199,6 +196,7 @@ void CSmileyString::ReplaceSmileys(struct SHORTDATA *dat, ClcCacheEntry *pdnce, int text_size = (int)_tcslen(szText); // Call service for the first time to see if needs to be used... + SMADD_BATCHPARSE2 sp = { 0 }; sp.cbSize = sizeof(sp); if (dat->text_use_protocol_smileys) { @@ -215,7 +213,7 @@ void CSmileyString::ReplaceSmileys(struct SHORTDATA *dat, ClcCacheEntry *pdnce, sp.str = szText; sp.flag = SAFL_TCHAR; - spr = (SMADD_BATCHPARSERES*)CallService(MS_SMILEYADD_BATCHPARSE, 0, (LPARAM)&sp); + SMADD_BATCHPARSERES *spr = (SMADD_BATCHPARSERES*)CallService(MS_SMILEYADD_BATCHPARSE, 0, (LPARAM)&sp); // Did not find a simley if (spr == NULL || (INT_PTR)spr == CALLSERVICE_NOTFOUND) diff --git a/plugins/Clist_modern/src/modern_clcpaint.cpp b/plugins/Clist_modern/src/modern_clcpaint.cpp index 5b968952ed..f70227591f 100644 --- a/plugins/Clist_modern/src/modern_clcpaint.cpp +++ b/plugins/Clist_modern/src/modern_clcpaint.cpp @@ -556,11 +556,10 @@ void CLCPaint::_AddParamShort(MODERNMASK *mpModernMask, DWORD dwParamIndex, DWO AddParam(mpModernMask, HASH[dwParamIndex], HASHTEXT[dwValueIndex], HASH[dwValueIndex]);
}
-MODERNMASK* CLCPaint::_GetCLCContactRowBackModernMask(ClcGroup *group, ClcContact *Drawing, int indent, int index, BOOL selected, BOOL hottrack, ClcData *dat)
+MODERNMASK *CLCPaint::_GetCLCContactRowBackModernMask(ClcGroup *group, ClcContact *Drawing, int indent, int index, BOOL selected, BOOL hottrack, ClcData *dat)
{
- MODERNMASK *mpModernMask = NULL;
char buf[BUF2SIZE] = { 0 };
- mpModernMask = (MODERNMASK*)mir_calloc(sizeof(MODERNMASK));
+ MODERNMASK *mpModernMask = (MODERNMASK*)mir_calloc(sizeof(MODERNMASK));
_AddParamShort(mpModernMask, hi_Module, hi_CL);
_AddParamShort(mpModernMask, hi_ID, hi_Row);
@@ -669,13 +668,11 @@ MODERNMASK* CLCPaint::_GetCLCContactRowBackModernMask(ClcGroup *group, ClcContac void CLCPaint::_RTLRect(RECT *rect, int width)
{
- int left, right;
if (!rect) return;
- left = (width)-rect->right;
- right = (width)-rect->left;
+ int left = (width)-rect->right;
+ int right = (width)-rect->left;
rect->left = left;//-offset;
rect->right = right;//-offset;
- return;
}
void CLCPaint::_PaintRowItemsEx(HWND hwnd, HDC hdcMem, ClcData *dat, ClcContact *Drawing, RECT row_rc, RECT free_row_rc, int selected, int hottrack)
@@ -1701,14 +1698,9 @@ void CLCPaint::_DrawLines(HWND hWnd, ClcData *dat, int paintMode, RECT* rcPaint, // Draw line, if needed
if (y > rcPaint->top - dat->row_heights[line_num]) {
- int selected;
- int hottrack;
- int left_pos;
- int right_pos;
int free_row_height;
RECT row_rc;
RECT free_row_rc;
- MODERNMASK *mpRequest = NULL;
RECT rc;
// Get item to draw
@@ -1733,10 +1725,10 @@ void CLCPaint::_DrawLines(HWND hWnd, ClcData *dat, int paintMode, RECT* rcPaint, RowHeight_CalcRowHeight(dat, hWnd, Drawing, line_num);
// Init settings
- selected = ((line_num == dat->selection) && (dat->hwndRenameEdit != NULL || dat->showSelAlways || dat->exStyle&CLS_EX_SHOWSELALWAYS || is_foreground) && Drawing->type != CLCIT_DIVIDER);
- hottrack = dat->exStyle&CLS_EX_TRACKSELECT && Drawing->type != CLCIT_DIVIDER && dat->iHotTrack == line_num;
- left_pos = clRect.left + dat->leftMargin + indent * dat->groupIndent + subident;
- right_pos = dat->rightMargin; // Border
+ int selected = ((line_num == dat->selection) && (dat->hwndRenameEdit != NULL || dat->showSelAlways || dat->exStyle&CLS_EX_SHOWSELALWAYS || is_foreground) && Drawing->type != CLCIT_DIVIDER);
+ int hottrack = dat->exStyle&CLS_EX_TRACKSELECT && Drawing->type != CLCIT_DIVIDER && dat->iHotTrack == line_num;
+ int left_pos = clRect.left + dat->leftMargin + indent * dat->groupIndent + subident;
+ int right_pos = dat->rightMargin; // Border
SetRect(&row_rc, clRect.left, y, clRect.right, y + dat->row_heights[line_num]);
free_row_rc = row_rc;
@@ -1770,6 +1762,7 @@ void CLCPaint::_DrawLines(HWND hWnd, ClcData *dat, int paintMode, RECT* rcPaint, else
SkinDrawGlyph(pc.hdcMem, &row_rc, rcPaint, "CL,ID=GreyAlternate");
}
+ MODERNMASK *mpRequest = NULL;
if (!(paintMode & (DM_CLASSIC | DM_CONTROL))) {
// Row background
if (!(paintMode & DM_CONTROL)) { //Build mpRequest string
@@ -1866,20 +1859,22 @@ void CLCPaint::_DrawLines(HWND hWnd, ClcData *dat, int paintMode, RECT* rcPaint, Drawing->pos_check = rc;
}
_PaintRowItems(hWnd, pc.hdcMem, dat, Drawing, row_rc, free_row_rc, left_pos, right_pos, selected, hottrack, rcPaint);
- if (mpRequest && !dat->force_in_dialog) {
- free(mpRequest->pl_Params[1].szValue);
- mpRequest->pl_Params[1].szValue = strdupn("Ovl", 3);
- mpRequest->pl_Params[1].dwValueHash = mod_CalcHash("Ovl");
- {
- RECT mrc = row_rc;
- if (Drawing->type == CLCIT_GROUP &&
- Drawing->group->parent->groupId == 0 &&
- Drawing->group->parent->cl.items[0] != Drawing) {
- mrc.top += dat->row_before_group_space;
+ if (mpRequest) {
+ if (!dat->force_in_dialog) {
+ free(mpRequest->pl_Params[1].szValue);
+ mpRequest->pl_Params[1].szValue = strdupn("Ovl", 3);
+ mpRequest->pl_Params[1].dwValueHash = mod_CalcHash("Ovl");
+ {
+ RECT mrc = row_rc;
+ if (Drawing->type == CLCIT_GROUP &&
+ Drawing->group->parent->groupId == 0 &&
+ Drawing->group->parent->cl.items[0] != Drawing) {
+ mrc.top += dat->row_before_group_space;
+ }
+ SkinDrawGlyphMask(pc.hdcMem, &mrc, rcPaint, mpRequest);
}
- SkinDrawGlyphMask(pc.hdcMem, &mrc, rcPaint, mpRequest);
+ SkinSelector_DeleteMask(mpRequest);
}
- SkinSelector_DeleteMask(mpRequest);
mir_free(mpRequest);
}
}
diff --git a/plugins/Clist_modern/src/modern_rowtemplateopt.cpp b/plugins/Clist_modern/src/modern_rowtemplateopt.cpp index bfb0fd386f..dbdb9b9ecc 100644 --- a/plugins/Clist_modern/src/modern_rowtemplateopt.cpp +++ b/plugins/Clist_modern/src/modern_rowtemplateopt.cpp @@ -326,7 +326,7 @@ void RefreshTree(HWND hwndDlg, HTREEITEM hti) else
mir_sntprintf(buf, SIZEOF(buf), TranslateT("%s, contain %s"), TranslateTS(types[cell->type]), cell->cont != TC_COL ? TranslateT("columns") : TranslateT("lines"));
}
- if (cell->layer) _tcsncat(buf, TranslateT(" layered"), SIZEOF(buf));
+ if (cell->layer) _tcsncat_s(buf, TranslateT(" layered"),_TRUNCATE);
tvi.mask = TVIF_HANDLE | TVIF_TEXT;
tvi.pszText = buf;
TreeView_SetItem(htree, &tvi);
diff --git a/plugins/Clist_modern/src/modern_skinengine.cpp b/plugins/Clist_modern/src/modern_skinengine.cpp index 3860214cc3..c0b522e461 100644 --- a/plugins/Clist_modern/src/modern_skinengine.cpp +++ b/plugins/Clist_modern/src/modern_skinengine.cpp @@ -2416,14 +2416,14 @@ static int ske_AlphaTextOut(HDC hDC, LPCTSTR lpString, int nCount, RECT *lpRect, BITMAP bmpDest; GetObject(hDestBitmap, sizeof(BITMAP), &bmpDest); - BOOL destHasNotDIB = FALSE; - BYTE *pDestBits = NULL; - if (bmpDest.bmBits == NULL) { - destHasNotDIB = TRUE; + bool destHasNotDIB = (bmpDest.bmBits == NULL); + BYTE *pDestBits; + if (destHasNotDIB) { pDestBits = (BYTE*)malloc(bmpDest.bmHeight * bmpDest.bmWidthBytes); GetBitmapBits(hDestBitmap, bmpDest.bmHeight*bmpDest.bmWidthBytes, pDestBits); } - else pDestBits = (BYTE*)bmpDest.bmBits; + else + pDestBits = (BYTE*)bmpDest.bmBits; // Creating offscreen buffer HDC hOffscreenDC = CreateCompatibleDC(hDC); @@ -2436,8 +2436,11 @@ static int ske_AlphaTextOut(HDC hDC, LPCTSTR lpString, int nCount, RECT *lpRect, RECT workRect = *lpRect; int workRectWidth = workRect.right - workRect.left; int workRectHeight = workRect.bottom - workRect.top; - if (workRectWidth <= 0 || workRectHeight <= 0) + if (workRectWidth <= 0 || workRectHeight <= 0) { + if(destHasNotDIB) + mir_free(pDestBits); return 0; + } SIZE textSize; GetTextExtentPoint32(hOffscreenDC, lpString, nCount, &textSize); @@ -2534,10 +2537,7 @@ static int ske_AlphaTextOut(HDC hDC, LPCTSTR lpString, int nCount, RECT *lpRect, DWORD width = textSize.cx; DWORD heigh = textSize.cy; - BYTE *pDestScanLine; - BYTE *pBufScanLine; - BYTE *pix; - BYTE *bufpix; + BYTE *pDestScanLine, *pBufScanLine, *pix, *bufpix; BYTE al = 255 - ((BYTE)(ARGBcolor >> 24)); BYTE r = GetRValue(ARGBcolor); @@ -2728,9 +2728,12 @@ BOOL ske_ImageList_DrawEx(HIMAGELIST himl, int i, HDC hdcDst, int x, int y, int return ImageList_DrawEx(himl, i, hdcDst, x, y, dx, dy, rgbBk, rgbFg, fStyle); BYTE alpha; - if (fStyle&ILD_BLEND25) alpha = 64; - else if (fStyle&ILD_BLEND50) alpha = 128; - else alpha = 255; + if (fStyle&ILD_BLEND25) + alpha = 64; + else if (fStyle&ILD_BLEND50) + alpha = 128; + else + alpha = 255; HICON hIcon = ske_ImageList_GetIcon(himl, i); if (hIcon == NULL) @@ -2756,22 +2759,14 @@ BOOL ske_DrawIconEx(HDC hdcDst, int xLeft, int yTop, HICON hIcon, int cxWidth, i ICONINFO ici; BYTE alpha = (BYTE)((diFlags & 0xFF000000) >> 24); - - HDC imDC; - HBITMAP oldBmp, imBmp, tBmp = NULL; + HBITMAP tBmp = NULL; BITMAP imbt, immaskbt; - BYTE * imbits; - BYTE * imimagbits; - BYTE * immaskbits; + BYTE *imbits, *imimagbits, *immaskbits; DWORD cx, cy, icy; BYTE *t1, *t2, *t3; - BOOL NoDIBImage = FALSE; //lockimagelist - BYTE hasmask = FALSE; - BYTE no32bit = FALSE; - BYTE noMirrorMask = FALSE; - BYTE hasalpha = FALSE; + BYTE hasmask = FALSE, no32bit = FALSE, noMirrorMask = FALSE, hasalpha = FALSE; alpha = alpha ? alpha : 255; if (g_CluiData.fDisableSkinEngine && !(diFlags & 0x80)) @@ -2790,27 +2785,27 @@ BOOL ske_DrawIconEx(HDC hdcDst, int xLeft, int yTop, HICON hIcon, int cxWidth, i cy = imbt.bmHeight; if (imbt.bmBitsPixel != 32) { - HBITMAP otBmp = NULL; no32bit = TRUE; HDC tempDC1 = CreateCompatibleDC(hdcDst); tBmp = ske_CreateDIB32(imbt.bmWidth, imbt.bmHeight); if (tBmp) { GetObject(tBmp, sizeof(BITMAP), &imbt); - otBmp = (HBITMAP)SelectObject(tempDC1, tBmp); + HBITMAP otBmp = (HBITMAP)SelectObject(tempDC1, tBmp); DrawIconEx(tempDC1, 0, 0, hIcon, imbt.bmWidth, imbt.bmHeight, istepIfAniCur, hbrFlickerFreeDraw, DI_IMAGE); noMirrorMask = TRUE; + SelectObject(tempDC1, otBmp); } - SelectObject(tempDC1, otBmp); DeleteDC(tempDC1); } - - if (imbt.bmBits == NULL) { - NoDIBImage = TRUE; + + bool NoDIBImage = (imbt.bmBits == NULL); + if (NoDIBImage) { imimagbits = (BYTE*)malloc(cy*imbt.bmWidthBytes); GetBitmapBits(ici.hbmColor, cy*imbt.bmWidthBytes, (void*)imimagbits); } - else imimagbits = (BYTE*)imbt.bmBits; + else + imimagbits = (BYTE*)imbt.bmBits; if (immaskbt.bmBits == NULL) { immaskbits = (BYTE*)malloc(cy*immaskbt.bmWidthBytes); @@ -2820,19 +2815,17 @@ BOOL ske_DrawIconEx(HDC hdcDst, int xLeft, int yTop, HICON hIcon, int cxWidth, i icy = imbt.bmHeight; cx = imbt.bmWidth; - imDC = CreateCompatibleDC(hdcDst); - imBmp = ske_CreateDIB32Point(cx, icy, (void**)&imbits); - oldBmp = (HBITMAP)SelectObject(imDC, imBmp); + HDC imDC = CreateCompatibleDC(hdcDst); + HBITMAP imBmp = ske_CreateDIB32Point(cx, icy, (void**)&imbits); + HBITMAP oldBmp = (HBITMAP)SelectObject(imDC, imBmp); if (imbits != NULL && imimagbits != NULL && immaskbits != NULL) { - int x; int y; - int bottom, right, top, h; - int mwb, mwb2; - mwb = immaskbt.bmWidthBytes; - mwb2 = imbt.bmWidthBytes; - bottom = icy; - right = cx; - top = 0; - h = icy; + int x, y; + int mwb = immaskbt.bmWidthBytes; + int mwb2 = imbt.bmWidthBytes; + int bottom = icy; + int right = cx; + int top = 0; + int h = icy; for (y = top; (y < bottom) && !hasmask; y++) { t1 = immaskbits + y*mwb; for (x = 0; (x < mwb) && !hasmask; x++) @@ -3633,7 +3626,6 @@ static void ske_AddParseSkinFont(char * szFontID, char * szDefineString) if (!sf) return; - char buf[255]; LOGFONTA logfont = { 0 }; logfont.lfCharSet = DEFAULT_CHARSET; logfont.lfOutPrecision = OUT_DEFAULT_PRECIS; @@ -3641,6 +3633,7 @@ static void ske_AddParseSkinFont(char * szFontID, char * szDefineString) logfont.lfQuality = DEFAULT_QUALITY; logfont.lfPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE; + char buf[255]; strncpy(logfont.lfFaceName, GetParamN(szDefineString, buf, sizeof(buf), 0, ',', TRUE), 32); logfont.lfHeight = atoi(GetParamN(szDefineString, buf, sizeof(buf), 1, ',', TRUE)); if (logfont.lfHeight < 0) { @@ -3661,8 +3654,12 @@ static void ske_AddParseSkinFont(char * szFontID, char * szDefineString) if (!gl_plSkinFonts) gl_plSkinFonts = List_Create(0, 1); if (gl_plSkinFonts) - List_Insert(gl_plSkinFonts, (void*)sf, gl_plSkinFonts->realCount); + List_Insert(gl_plSkinFonts, sf, gl_plSkinFonts->realCount); + else + mir_free(sf); } + else + mir_free(sf); } /* |