diff options
author | George Hazan <george.hazan@gmail.com> | 2014-12-13 17:19:34 +0000 |
---|---|---|
committer | George Hazan <george.hazan@gmail.com> | 2014-12-13 17:19:34 +0000 |
commit | 5ab4a9381e75d2d6ea04ed5d55ef7d6dd343fa8c (patch) | |
tree | f402a623ddea83df3b0c2be3bcd7553d800fb0f4 /plugins/Clist_modern/src | |
parent | b21fd1d8a8e9bb3244f89c4030f0651aa82c3a81 (diff) |
- warnings fixed;
- custom loops removed;
git-svn-id: http://svn.miranda-ng.org/main/trunk@11370 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/Clist_modern/src')
-rw-r--r-- | plugins/Clist_modern/src/CLUIFrames/cluiframes.cpp | 11 | ||||
-rw-r--r-- | plugins/Clist_modern/src/modern_clistevents.cpp | 2 | ||||
-rw-r--r-- | plugins/Clist_modern/src/modern_skinengine.cpp | 2039 |
3 files changed, 947 insertions, 1105 deletions
diff --git a/plugins/Clist_modern/src/CLUIFrames/cluiframes.cpp b/plugins/Clist_modern/src/CLUIFrames/cluiframes.cpp index aec0275997..d18ec91f6b 100644 --- a/plugins/Clist_modern/src/CLUIFrames/cluiframes.cpp +++ b/plugins/Clist_modern/src/CLUIFrames/cluiframes.cpp @@ -2866,26 +2866,19 @@ int DrawTitleBar(HDC hdcMem2,RECT *rect,int Frameid) textrc.left += 2;
textrc.top += 2;
}
-
}
else
{
textrc.left += GetSystemMetrics(SM_CXSMICON)+2;
textrc.top += 2;
}
- ske_TextOut(hdcMem,textrc.left,textrc.top,g_pfwFrames[pos].TitleBar.tbname,mir_tstrlen(g_pfwFrames[pos].TitleBar.tbname));
-
+ ske_TextOut(hdcMem, textrc.left, textrc.top, g_pfwFrames[pos].TitleBar.tbname, (int)mir_tstrlen(g_pfwFrames[pos].TitleBar.tbname));
}
+
if (!AlignCOLLIconToLeft)
- {
mod_DrawIconEx_helper(hdcMem,g_pfwFrames[pos].TitleBar.wndSize.right-GetSystemMetrics(SM_CXSMICON)-2,rc.top+((g_nTitleBarHeight>>1)-(GetSystemMetrics(SM_CXSMICON)>>1)),g_pfwFrames[pos].collapsed?LoadSkinnedIcon(SKINICON_OTHER_GROUPOPEN):LoadSkinnedIcon(SKINICON_OTHER_GROUPSHUT),GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON), 0, NULL,DI_NORMAL);
- }
else
- {
mod_DrawIconEx_helper(hdcMem,rc.left,rc.top+((g_nTitleBarHeight>>1)-(GetSystemMetrics(SM_CXSMICON)>>1)),g_pfwFrames[pos].collapsed?LoadSkinnedIcon(SKINICON_OTHER_GROUPOPEN):LoadSkinnedIcon(SKINICON_OTHER_GROUPSHUT),GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON), 0, NULL,DI_NORMAL);
- }
-
-
}
{
BLENDFUNCTION bf = {AC_SRC_OVER, 0, 255, AC_SRC_ALPHA };
diff --git a/plugins/Clist_modern/src/modern_clistevents.cpp b/plugins/Clist_modern/src/modern_clistevents.cpp index 112aa2c3a6..f59d9a51f8 100644 --- a/plugins/Clist_modern/src/modern_clistevents.cpp +++ b/plugins/Clist_modern/src/modern_clistevents.cpp @@ -355,7 +355,7 @@ static int EventArea_DrawWorker(HWND hWnd, HDC hDC) else {
HICON hIcon = (HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_BLANK), IMAGE_ICON, 16, 16, 0);
TCHAR *ptszEvents = TranslateT("No events");
- ske_DrawText(hDC, ptszEvents, mir_tstrlen(ptszEvents), &rc, DT_VCENTER | DT_SINGLELINE);
+ ske_DrawText(hDC, ptszEvents, (int)mir_tstrlen(ptszEvents), &rc, DT_VCENTER | DT_SINGLELINE);
ske_DrawIconEx(hDC, 4, (rc.bottom + rc.top - 16) / 2, hIcon, 16, 16, 0, 0, DI_NORMAL | DI_COMPAT);
DestroyIcon(hIcon);
}
diff --git a/plugins/Clist_modern/src/modern_skinengine.cpp b/plugins/Clist_modern/src/modern_skinengine.cpp index fcf7b55e8c..4bbe3902c3 100644 --- a/plugins/Clist_modern/src/modern_skinengine.cpp +++ b/plugins/Clist_modern/src/modern_skinengine.cpp @@ -95,26 +95,22 @@ static INT_PTR ske_Service_DrawTextWithEffect(WPARAM wParam, LPARAM lParam); static MODERNEFFECT meCurrentEffect = {-1,{0}, 0, 0}; - ////////////////////////////////////////////////////////////////////////// // Ini file parser -////////////////////////////////////////////////////////////////////////// + IniParser::IniParser(TCHAR * tcsFileName, BYTE flags) : _Flags(flags) { _DoInit(); if (!tcsFileName) return; - if (tcsFileName[0] == _T('%')) - { + if (tcsFileName[0] == _T('%')) { //TODO: Add parser of resource filename here _LoadResourceIni(g_hInst, MAKEINTRESOURCEA(IDR_MSF_DEFAULT_SKIN), "MSF"); return; } _hFile = _tfopen(tcsFileName, _T("r")); - - if (_hFile != NULL) - { + if (_hFile != NULL) { _eType = IT_FILE; _isValid = true; } @@ -144,8 +140,7 @@ IniParser::~IniParser() HRESULT IniParser::Parse(ParserCallback_t pLineCallBackProc, LPARAM SecCheck) { - if (_isValid && pLineCallBackProc) - { + if (_isValid && pLineCallBackProc) { _pLineCallBackProc = pLineCallBackProc; _SecCheck = SecCheck; switch (_eType) { @@ -158,14 +153,14 @@ HRESULT IniParser::Parse(ParserCallback_t pLineCallBackProc, LPARAM SecCheck) return E_FAIL; } -HRESULT IniParser::WriteStrToDb( const char * szSection, const char * szName, const char * szValue, IniParser * This ) +HRESULT IniParser::WriteStrToDb(const char * szSection, const char * szName, const char * szValue, IniParser * This) { - if ( This->_SecCheck) { + if (This->_SecCheck) { //TODO check security here - if ( wildcmp( szSection,"Skin_Description_Section")) + if (wildcmp(szSection, "Skin_Description_Section")) return S_OK; } - if (( This->_Flags == IniParser::FLAG_ONLY_OBJECTS ) && !wildcmp( szSection, DEFAULTSKINSECTION)) + if ((This->_Flags == IniParser::FLAG_ONLY_OBJECTS) && !wildcmp(szSection, DEFAULTSKINSECTION)) return S_OK; // skip not objects switch (szValue[0]) { @@ -188,23 +183,23 @@ HRESULT IniParser::WriteStrToDb( const char * szSection, const char * szName, co return S_OK; } -int IniParser::GetSkinFolder( IN const TCHAR * szFileName, OUT TCHAR * pszFolderName ) +int IniParser::GetSkinFolder(IN const TCHAR * szFileName, OUT TCHAR * pszFolderName) { TCHAR *szBuff = mir_tstrdup(szFileName); TCHAR *pszPos = szBuff + _tcslen(szBuff); - while ( pszPos > szBuff && *pszPos != _T('.')) { pszPos--; } + while (pszPos > szBuff && *pszPos != _T('.')) { pszPos--; } *pszPos = _T('\0'); - _tcscpy( pszFolderName, szBuff ); + _tcscpy(pszFolderName, szBuff); TCHAR custom_folder[MAX_PATH]; TCHAR cus[MAX_PATH]; TCHAR *b3; - _tcscpy( custom_folder, pszFolderName ); - b3 = custom_folder + _tcslen( custom_folder ); - while ( b3 > custom_folder && *b3 != _T('\\')) { b3--; } + _tcscpy(custom_folder, pszFolderName); + b3 = custom_folder + _tcslen(custom_folder); + while (b3 > custom_folder && *b3 != _T('\\')) { b3--; } *b3 = _T('\0'); - GetPrivateProfileString(_T("Skin_Description_Section"),_T("SkinFolder"),_T(""),cus,SIZEOF(custom_folder),szFileName); + GetPrivateProfileString(_T("Skin_Description_Section"), _T("SkinFolder"), _T(""), cus, SIZEOF(custom_folder), szFileName); if (cus[0] != 0) mir_sntprintf(pszFolderName, MAX_PATH, _T("%s\\%s"), custom_folder, cus); @@ -226,7 +221,7 @@ void IniParser::_DoInit() _SecCheck = 0; } -void IniParser::_LoadResourceIni( HINSTANCE hInst, const char * resourceName, const char * resourceType ) +void IniParser::_LoadResourceIni(HINSTANCE hInst, const char * resourceName, const char * resourceType) { if (_eType != IT_UNKNOWN) return; @@ -290,7 +285,7 @@ HRESULT IniParser::_DoParseResource() return S_OK; } -const char * IniParser::_RemoveTailings( const char * szLine, size_t& len ) +const char * IniParser::_RemoveTailings(const char * szLine, size_t& len) { const char * pStart = szLine; while (*pStart == ' ' || *pStart == '\t') @@ -303,14 +298,14 @@ const char * IniParser::_RemoveTailings( const char * szLine, size_t& len ) return pStart; } -BOOL IniParser::_DoParseLine( char * szLine ) +BOOL IniParser::_DoParseLine(char *szLine) { _nLine++; - DWORD len = strlen( szLine ); - - if (len == 0) return TRUE; + size_t len = strlen(szLine); + if (len == 0) + return TRUE; - switch( szLine[0] ) { + switch (szLine[0]) { case ';': return TRUE; // start of comment is found @@ -335,16 +330,14 @@ BOOL IniParser::_DoParseLine( char * szLine ) return TRUE; default: - if (!_szSection ) + if (!_szSection) return TRUE; //param found out of section char *keyName = szLine; char *keyValue = szLine; - DWORD eqPlace = 0; - DWORD len2 = strlen(keyName); - - while ( eqPlace < len2 && keyName[ eqPlace ] != '=' ) + size_t eqPlace = 0, len2 = strlen(keyName); + while (eqPlace < len2 && keyName[eqPlace] != '=') eqPlace++; //find '=' if (eqPlace == 0 || eqPlace == len2) @@ -355,27 +348,14 @@ BOOL IniParser::_DoParseLine( char * szLine ) keyValue = keyName + eqPlace + 1; //remove tail spaces in Name - { - DWORD len3 = strlen(keyName); - int j = len3-1; - while (j>0 && (keyName[j] == ' ' || keyName[j] == '\t')) j--; - if (j >= 0) keyName[j+1] = '\0'; - } - //remove start spaces in Value - { - DWORD len3 = strlen(keyValue); - DWORD j = 0; - while (j < len3 && (keyValue[j] == ' ' || keyValue[j] == '\t')) j++; - if (j < len3) keyValue += j; - } - //remove tail spaces in Value - { - DWORD len3 = strlen(keyValue); - int j = len3-1; - while (j>0 && (keyValue[j] == ' ' || keyValue[j] == '\t' || keyValue[j] == '\n')) j--; - if (j >= 0) keyValue[j+1] = '\0'; + rtrim(keyName); + while (*keyValue) { + if (!isspace(*keyValue)) + break; + keyValue++; } - _pLineCallBackProc( _szSection, keyName, keyValue, this ); + rtrim(keyValue); + _pLineCallBackProc(_szSection, keyName, keyValue, this); } return TRUE; } @@ -396,16 +376,16 @@ HRESULT SkinEngineLoadModule() InitGdiPlus(); AniAva_InitModule(); //create services - CreateServiceFunction(MS_SKIN_DRAWGLYPH,ske_Service_DrawGlyph); - CreateServiceFunction(MS_SKINENG_UPTATEFRAMEIMAGE,ske_Service_UpdateFrameImage); - CreateServiceFunction(MS_SKINENG_INVALIDATEFRAMEIMAGE,ske_Service_InvalidateFrameImage); - CreateServiceFunction(MS_SKINENG_ALPHATEXTOUT,ske_Service_AlphaTextOut); - CreateServiceFunction(MS_SKINENG_DRAWICONEXFIX,ske_Service_DrawIconEx); + CreateServiceFunction(MS_SKIN_DRAWGLYPH, ske_Service_DrawGlyph); + CreateServiceFunction(MS_SKINENG_UPTATEFRAMEIMAGE, ske_Service_UpdateFrameImage); + CreateServiceFunction(MS_SKINENG_INVALIDATEFRAMEIMAGE, ske_Service_InvalidateFrameImage); + CreateServiceFunction(MS_SKINENG_ALPHATEXTOUT, ske_Service_AlphaTextOut); + CreateServiceFunction(MS_SKINENG_DRAWICONEXFIX, ske_Service_DrawIconEx); - CreateServiceFunction(MS_DRAW_TEXT_WITH_EFFECT,ske_Service_DrawTextWithEffect); + CreateServiceFunction(MS_DRAW_TEXT_WITH_EFFECT, ske_Service_DrawTextWithEffect); //create event handle - hSkinLoadedEvent = HookEvent(ME_SKIN_SERVICESCREATED,CLUI_OnSkinLoad); + hSkinLoadedEvent = HookEvent(ME_SKIN_SERVICESCREATED, CLUI_OnSkinLoad); NotifyEventHooks(g_CluiData.hEventSkinServicesCreated, 0, 0); return S_OK; } @@ -420,18 +400,18 @@ int SkinEngineUnloadModule() mir_free_and_nil(g_SkinObjectList.pMaskList); mir_free_and_nil(MainModernMaskList); - for (int i=0; i < arEffectStack.getCount(); i++) + for (int i = 0; i < arEffectStack.getCount(); i++) mir_free(arEffectStack[i]); arEffectStack.destroy(); if (g_pCachedWindow) { - SelectObject(g_pCachedWindow->hBackDC,g_pCachedWindow->hBackOld); - SelectObject(g_pCachedWindow->hImageDC,g_pCachedWindow->hImageOld); + SelectObject(g_pCachedWindow->hBackDC, g_pCachedWindow->hBackOld); + SelectObject(g_pCachedWindow->hImageDC, g_pCachedWindow->hImageOld); DeleteObject(g_pCachedWindow->hBackDIB); DeleteObject(g_pCachedWindow->hImageDIB); DeleteDC(g_pCachedWindow->hBackDC); DeleteDC(g_pCachedWindow->hImageDC); - ReleaseDC(NULL,g_pCachedWindow->hScreenDC); + ReleaseDC(NULL, g_pCachedWindow->hScreenDC); mir_free_and_nil(g_pCachedWindow); } DeleteCriticalSection(&cs_SkinChanging); @@ -443,24 +423,21 @@ int SkinEngineUnloadModule() return 1; } -BOOL ske_AlphaBlend(HDC hdcDest,int nXOriginDest,int nYOriginDest,int nWidthDest,int nHeightDest,HDC hdcSrc,int nXOriginSrc,int nYOriginSrc,int nWidthSrc,int nHeightSrc,BLENDFUNCTION blendFunction) +BOOL ske_AlphaBlend(HDC hdcDest, int nXOriginDest, int nYOriginDest, int nWidthDest, int nHeightDest, HDC hdcSrc, int nXOriginSrc, int nYOriginSrc, int nWidthSrc, int nHeightSrc, BLENDFUNCTION blendFunction) { - if (g_CluiData.fDisableSkinEngine && !(blendFunction.BlendFlags&128)) - { + if (g_CluiData.fDisableSkinEngine && !(blendFunction.BlendFlags & 128)) { if (nWidthDest != nWidthSrc || nHeightDest != nHeightSrc) - return StretchBlt(hdcDest,nXOriginDest,nYOriginDest,nWidthDest,nHeightDest,hdcSrc,nXOriginSrc,nYOriginSrc,nWidthSrc,nHeightSrc, SRCCOPY); - else - return BitBlt(hdcDest,nXOriginDest,nYOriginDest,nWidthDest,nHeightDest,hdcSrc,nXOriginSrc,nYOriginSrc, SRCCOPY); + return StretchBlt(hdcDest, nXOriginDest, nYOriginDest, nWidthDest, nHeightDest, hdcSrc, nXOriginSrc, nYOriginSrc, nWidthSrc, nHeightSrc, SRCCOPY); + return BitBlt(hdcDest, nXOriginDest, nYOriginDest, nWidthDest, nHeightDest, hdcSrc, nXOriginSrc, nYOriginSrc, SRCCOPY); } - if (blendFunction.BlendFlags&128) //Use gdi+ engine - { - return GDIPlus_AlphaBlend( hdcDest,nXOriginDest,nYOriginDest,nWidthDest,nHeightDest, - hdcSrc,nXOriginSrc,nYOriginSrc,nWidthSrc,nHeightSrc, + if (blendFunction.BlendFlags & 128) // Use gdi+ engine + return GDIPlus_AlphaBlend(hdcDest, nXOriginDest, nYOriginDest, nWidthDest, nHeightDest, + hdcSrc, nXOriginSrc, nYOriginSrc, nWidthSrc, nHeightSrc, &blendFunction); - } + blendFunction.BlendFlags &= ~128; - return AlphaBlend(hdcDest,nXOriginDest,nYOriginDest,nWidthDest,nHeightDest,hdcSrc,nXOriginSrc,nYOriginSrc,nWidthSrc,nHeightSrc,blendFunction); + return AlphaBlend(hdcDest, nXOriginDest, nYOriginDest, nWidthDest, nHeightDest, hdcSrc, nXOriginSrc, nYOriginSrc, nWidthSrc, nHeightSrc, blendFunction); } static int ske_LockSkin() @@ -496,7 +473,7 @@ static int SortBufferList(const DCBUFFER *buf1, const DCBUFFER *buf2) } LIST<DCBUFFER> BufferList(2, SortBufferList); -CRITICAL_SECTION BufferListCS = {0}; +CRITICAL_SECTION BufferListCS = { 0 }; enum { @@ -519,24 +496,23 @@ HDC ske_RequestBufferDC(HDC hdcOwner, int dcID, int width, int height, BOOL fCle *pBuf = buf; pBuf->width = width; pBuf->height = height; - pBuf->hBitmap = ske_CreateDIB32Point(width,height,&(pBuf->pImage)); + pBuf->hBitmap = ske_CreateDIB32Point(width, height, &(pBuf->pImage)); pBuf->hDC = CreateCompatibleDC(hdcOwner); - pBuf->oldBitmap = (HBITMAP)SelectObject(pBuf->hDC,pBuf->hBitmap); + pBuf->oldBitmap = (HBITMAP)SelectObject(pBuf->hDC, pBuf->hBitmap); pBuf->dwDestroyAfterTime = 0; BufferList.insert(pBuf); } - else - { - if (pBuf->width != width || pBuf->height != height) - { + else { + if (pBuf->width != width || pBuf->height != height) { //resize - SelectObject(pBuf->hDC,pBuf->oldBitmap); + SelectObject(pBuf->hDC, pBuf->oldBitmap); DeleteObject(pBuf->hBitmap); pBuf->width = width; pBuf->height = height; - pBuf->hBitmap = ske_CreateDIB32Point(width,height,&(pBuf->pImage)); - pBuf->oldBitmap = (HBITMAP)SelectObject(pBuf->hDC,pBuf->hBitmap); - } else if (fClear) + pBuf->hBitmap = ske_CreateDIB32Point(width, height, &(pBuf->pImage)); + pBuf->oldBitmap = (HBITMAP)SelectObject(pBuf->hDC, pBuf->hBitmap); + } + else if (fClear) memset(pBuf->pImage, 0, width*height*sizeof(DWORD)); } pBuf->dwDestroyAfterTime = 0; @@ -549,16 +525,16 @@ int ske_ReleaseBufferDC(HDC hDC, int keepTime) //Try to find DC in buffer list - set flag to be release after time; mir_cslock lck(BufferListCS); - for (int i=0; i < BufferList.getCount(); i++) { + for (int i = 0; i < BufferList.getCount(); i++) { DCBUFFER *pBuf = BufferList[i]; if (pBuf) { if (hDC != NULL && pBuf->hDC == hDC) { - pBuf->dwDestroyAfterTime = dwCurrentTime+keepTime; + pBuf->dwDestroyAfterTime = dwCurrentTime + keepTime; break; } if ((pBuf->dwDestroyAfterTime && pBuf->dwDestroyAfterTime < dwCurrentTime) || keepTime == -1) { - SelectObject(pBuf->hDC,pBuf->oldBitmap); + SelectObject(pBuf->hDC, pBuf->oldBitmap); DeleteObject(pBuf->hBitmap); DeleteDC(pBuf->hDC); mir_free(pBuf); @@ -570,7 +546,7 @@ int ske_ReleaseBufferDC(HDC hDC, int keepTime) return 0; } -BOOL ske_SetRgnOpaque(HDC memdc,HRGN hrgn, BOOL force) +BOOL ske_SetRgnOpaque(HDC memdc, HRGN hrgn, BOOL force) { RGNDATA * rdata; DWORD rgnsz; @@ -578,64 +554,59 @@ BOOL ske_SetRgnOpaque(HDC memdc,HRGN hrgn, BOOL force) RECT *rect; if (g_CluiData.fDisableSkinEngine && !force) return TRUE; rgnsz = GetRegionData(hrgn, 0, NULL); - rdata = (RGNDATA *) mir_alloc(rgnsz); - GetRegionData(hrgn,rgnsz,rdata); + rdata = (RGNDATA *)mir_alloc(rgnsz); + GetRegionData(hrgn, rgnsz, rdata); rect = (RECT *)rdata->Buffer; - for (d = 0; d < rdata->rdh.nCount; d++) - { - ske_SetRectOpaque(memdc,&rect[d], force); + for (d = 0; d < rdata->rdh.nCount; d++) { + ske_SetRectOpaque(memdc, &rect[d], force); } mir_free(rdata); return TRUE; } -BOOL ske_SetRectOpaque(HDC memdc,RECT *fr, BOOL force) +BOOL ske_SetRectOpaque(HDC memdc, RECT *fr, BOOL force) { int f = 0; BYTE * bits; BITMAP bmp; HBITMAP hbmp; - if ( g_CluiData.fDisableSkinEngine && !force ) + if (g_CluiData.fDisableSkinEngine && !force) return TRUE; - hbmp = (HBITMAP)GetCurrentObject( memdc,OBJ_BITMAP ); - GetObject( hbmp, sizeof(bmp), &bmp ); + hbmp = (HBITMAP)GetCurrentObject(memdc, OBJ_BITMAP); + GetObject(hbmp, sizeof(bmp), &bmp); - if ( bmp.bmPlanes != 1 ) + if (bmp.bmPlanes != 1) return FALSE; - if (!bmp.bmBits) - { + if (!bmp.bmBits) { f = 1; bits = (BYTE*)malloc(bmp.bmWidthBytes*bmp.bmHeight); - GetBitmapBits(hbmp,bmp.bmWidthBytes*bmp.bmHeight,bits); + GetBitmapBits(hbmp, bmp.bmWidthBytes*bmp.bmHeight, bits); } else bits = (BYTE*)bmp.bmBits; - int sx = ( fr->left > 0 ) ? fr->left : 0; - int sy = ( fr->top > 0 ) ? fr->top : 0; - int ex = ( fr->right < bmp.bmWidth ) ? fr->right : bmp.bmWidth; - int ey = ( fr->bottom < bmp.bmHeight) ? fr->bottom : bmp.bmHeight; + int sx = (fr->left > 0) ? fr->left : 0; + int sy = (fr->top > 0) ? fr->top : 0; + int ex = (fr->right < bmp.bmWidth) ? fr->right : bmp.bmWidth; + int ey = (fr->bottom < bmp.bmHeight) ? fr->bottom : bmp.bmHeight; - int width = ex-sx; + int width = ex - sx; - BYTE* pLine = ((BYTE*)bits) + (bmp.bmHeight-sy-1)*bmp.bmWidthBytes + (sx << 2) + 3; - for ( int y = 0; y < (ey - sy); y++ ) - { + BYTE* pLine = ((BYTE*)bits) + (bmp.bmHeight - sy - 1)*bmp.bmWidthBytes + (sx << 2) + 3; + for (int y = 0; y < (ey - sy); y++) { BYTE * pColumn = pLine; - for ( int x = 0; x < width; x++ ) - { + for (int x = 0; x < width; x++) { *pColumn = 255; pColumn += 4; } pLine -= bmp.bmWidthBytes; } - if (f) - { - SetBitmapBits(hbmp,bmp.bmWidthBytes*bmp.bmHeight,bits); + if (f) { + SetBitmapBits(hbmp, bmp.bmWidthBytes*bmp.bmHeight, bits); free(bits); } // DeleteObject(hbmp); @@ -647,168 +618,149 @@ static BOOL ske_SkinFillRectByGlyph(HDC hDest, HDC hSource, RECT *rFill, RECT *r int destw = 0, desth = 0; int xstart = 0, xmax = 0; int ystart = 0, ymax = 0; - BLENDFUNCTION bfa = {AC_SRC_OVER, 0, 255, AC_SRC_ALPHA }; - BLENDFUNCTION bf = {AC_SRC_OVER, 0, 255, AC_SRC_ALPHA }; + BLENDFUNCTION bfa = { AC_SRC_OVER, 0, 255, AC_SRC_ALPHA }; + BLENDFUNCTION bf = { AC_SRC_OVER, 0, 255, AC_SRC_ALPHA }; //initializations - if (mode == FM_STRETCH) - { + if (mode == FM_STRETCH) { HDC mem2dc; HBITMAP mem2bmp, oldbmp; RECT wr; - IntersectRect(&wr,rClip,rFill); - if ((wr.bottom-wr.top)*(wr.right-wr.left) == 0) return 0; - if (drawMode != 2) - { + IntersectRect(&wr, rClip, rFill); + if ((wr.bottom - wr.top)*(wr.right - wr.left) == 0) return 0; + if (drawMode != 2) { mem2dc = CreateCompatibleDC(hDest); - mem2bmp = ske_CreateDIB32(wr.right-wr.left,wr.bottom-wr.top); - oldbmp = (HBITMAP)SelectObject(mem2dc,mem2bmp); + mem2bmp = ske_CreateDIB32(wr.right - wr.left, wr.bottom - wr.top); + oldbmp = (HBITMAP)SelectObject(mem2dc, mem2bmp); } - if (drawMode == 0 || drawMode == 2) - { - if (drawMode == 0) - { - ske_AlphaBlend(mem2dc,rFill->left-wr.left,rFill->top-wr.top,rFill->right-rFill->left,rFill->bottom-rFill->top, - hSource,rGlyph->left,rGlyph->top,rGlyph->right-rGlyph->left,rGlyph->bottom-rGlyph->top,bf); - ske_AlphaBlend(hDest,wr.left,wr.top,wr.right-wr.left, wr.bottom -wr.top,mem2dc, 0, 0, wr.right-wr.left, wr.bottom -wr.top,bf); + if (drawMode == 0 || drawMode == 2) { + if (drawMode == 0) { + ske_AlphaBlend(mem2dc, rFill->left - wr.left, rFill->top - wr.top, rFill->right - rFill->left, rFill->bottom - rFill->top, + hSource, rGlyph->left, rGlyph->top, rGlyph->right - rGlyph->left, rGlyph->bottom - rGlyph->top, bf); + ske_AlphaBlend(hDest, wr.left, wr.top, wr.right - wr.left, wr.bottom - wr.top, mem2dc, 0, 0, wr.right - wr.left, wr.bottom - wr.top, bf); } - else - { - ske_AlphaBlend(hDest,rFill->left,rFill->top,rFill->right-rFill->left,rFill->bottom-rFill->top, - hSource,rGlyph->left,rGlyph->top,rGlyph->right-rGlyph->left,rGlyph->bottom-rGlyph->top,bf); + else { + ske_AlphaBlend(hDest, rFill->left, rFill->top, rFill->right - rFill->left, rFill->bottom - rFill->top, + hSource, rGlyph->left, rGlyph->top, rGlyph->right - rGlyph->left, rGlyph->bottom - rGlyph->top, bf); } } - else - { + else { // BLENDFUNCTION bf = {AC_SRC_OVER, 0, 255, 0 }; - ske_AlphaBlend(mem2dc,rFill->left-wr.left,rFill->top-wr.top,rFill->right-rFill->left,rFill->bottom-rFill->top, - hSource,rGlyph->left,rGlyph->top,rGlyph->right-rGlyph->left,rGlyph->bottom-rGlyph->top,bf); - ske_AlphaBlend(hDest,wr.left,wr.top,wr.right-wr.left, wr.bottom -wr.top,mem2dc, 0, 0, wr.right-wr.left, wr.bottom -wr.top,bf); + ske_AlphaBlend(mem2dc, rFill->left - wr.left, rFill->top - wr.top, rFill->right - rFill->left, rFill->bottom - rFill->top, + hSource, rGlyph->left, rGlyph->top, rGlyph->right - rGlyph->left, rGlyph->bottom - rGlyph->top, bf); + ske_AlphaBlend(hDest, wr.left, wr.top, wr.right - wr.left, wr.bottom - wr.top, mem2dc, 0, 0, wr.right - wr.left, wr.bottom - wr.top, bf); } - if (drawMode != 2) - { - SelectObject(mem2dc,oldbmp); + if (drawMode != 2) { + SelectObject(mem2dc, oldbmp); DeleteObject(mem2bmp); DeleteDC(mem2dc); } return 1; } - else if (mode == FM_TILE_VERT && (rGlyph->bottom-rGlyph->top>0) && (rGlyph->right-rGlyph->left>0)) - { + else if (mode == FM_TILE_VERT && (rGlyph->bottom - rGlyph->top > 0) && (rGlyph->right - rGlyph->left > 0)) { HDC mem2dc; - HBITMAP mem2bmp,oldbmp; + HBITMAP mem2bmp, oldbmp; RECT wr; - IntersectRect(&wr,rClip,rFill); - if ((wr.bottom-wr.top)*(wr.right-wr.left) == 0) return 0; + IntersectRect(&wr, rClip, rFill); + if ((wr.bottom - wr.top)*(wr.right - wr.left) == 0) return 0; mem2dc = CreateCompatibleDC(hDest); //SetStretchBltMode(mem2dc, HALFTONE); - mem2bmp = ske_CreateDIB32(wr.right-wr.left, rGlyph->bottom-rGlyph->top); - oldbmp = (HBITMAP)SelectObject(mem2dc,mem2bmp); + mem2bmp = ske_CreateDIB32(wr.right - wr.left, rGlyph->bottom - rGlyph->top); + oldbmp = (HBITMAP)SelectObject(mem2dc, mem2bmp); if (!oldbmp) return 0; /// draw here { int y = 0, sy = 0, maxy = 0; - int w = rFill->right-rFill->left; - int h = rGlyph->bottom-rGlyph->top; - if (h>0 && (wr.bottom-wr.top)*(wr.right-wr.left) != 0) - { - w = wr.right-wr.left; + int w = rFill->right - rFill->left; + int h = rGlyph->bottom - rGlyph->top; + if (h > 0 && (wr.bottom - wr.top)*(wr.right - wr.left) != 0) { + w = wr.right - wr.left; { // BLENDFUNCTION bf = {AC_SRC_OVER, 0, 255, 0 }; - ske_AlphaBlend(mem2dc,-(wr.left-rFill->left), 0, rFill->right-rFill->left,h,hSource,rGlyph->left,rGlyph->top,rGlyph->right-rGlyph->left,h,bf); + ske_AlphaBlend(mem2dc, -(wr.left - rFill->left), 0, rFill->right - rFill->left, h, hSource, rGlyph->left, rGlyph->top, rGlyph->right - rGlyph->left, h, bf); //StretchBlt(mem2dc,-(wr.left-rFill->left), 0, rFill->right-rFill->left,h,hSource,rGlyph->left,rGlyph->top,rGlyph->right-rGlyph->left,h,SRCCOPY); } - if (drawMode == 0 || drawMode == 2) - { - if (drawMode == 0 ) - { + if (drawMode == 0 || drawMode == 2) { + if (drawMode == 0) { int dy; - dy = (wr.top-rFill->top)%h; - if (dy >= 0) - { + dy = (wr.top - rFill->top) % h; + if (dy >= 0) { int ht; y = wr.top; - ht = (y+h-dy <= wr.bottom)?(h-dy):(wr.bottom-wr.top); - BitBlt(hDest,wr.left,y,w,ht,mem2dc, 0, dy,SRCCOPY); + ht = (y + h - dy <= wr.bottom) ? (h - dy) : (wr.bottom - wr.top); + BitBlt(hDest, wr.left, y, w, ht, mem2dc, 0, dy, SRCCOPY); } - y = wr.top+h-dy; - while (y < wr.bottom-h){ - BitBlt(hDest,wr.left,y,w,h,mem2dc, 0, 0, SRCCOPY); + y = wr.top + h - dy; + while (y < wr.bottom - h) { + BitBlt(hDest, wr.left, y, w, h, mem2dc, 0, 0, SRCCOPY); y += h; } if (y <= wr.bottom) - BitBlt(hDest,wr.left,y,w,wr.bottom-y, mem2dc, 0, 0, SRCCOPY); + BitBlt(hDest, wr.left, y, w, wr.bottom - y, mem2dc, 0, 0, SRCCOPY); } - else - { + else { y = wr.top; - while (y < wr.bottom-h) - { + while (y < wr.bottom - h) { // BLENDFUNCTION bf = {AC_SRC_OVER, 0, 255, 0 }; - ske_AlphaBlend(hDest,wr.left,y,w,h, mem2dc, 0, 0, w,h,bf); + ske_AlphaBlend(hDest, wr.left, y, w, h, mem2dc, 0, 0, w, h, bf); y += h; } - if (y <= wr.bottom) - { + if (y <= wr.bottom) { // BLENDFUNCTION bf = {AC_SRC_OVER, 0, 255, 0 }; - ske_AlphaBlend(hDest,wr.left,y,w,wr.bottom-y, mem2dc, 0, 0, w,wr.bottom-y,bf); + ske_AlphaBlend(hDest, wr.left, y, w, wr.bottom - y, mem2dc, 0, 0, w, wr.bottom - y, bf); } } } - else - { + else { int dy; - BLENDFUNCTION bf = {AC_SRC_OVER, 0, 255, AC_SRC_ALPHA }; + BLENDFUNCTION bf = { AC_SRC_OVER, 0, 255, AC_SRC_ALPHA }; - dy = (wr.top-rFill->top)%h; + dy = (wr.top - rFill->top) % h; - if (dy >= 0) - { + if (dy >= 0) { int ht; y = wr.top; - ht = (y+h-dy <= wr.bottom)?(h-dy):(wr.bottom-wr.top); - ske_AlphaBlend(hDest,wr.left,y,w,ht,mem2dc, 0, dy,w,ht,bf); + ht = (y + h - dy <= wr.bottom) ? (h - dy) : (wr.bottom - wr.top); + ske_AlphaBlend(hDest, wr.left, y, w, ht, mem2dc, 0, dy, w, ht, bf); } - y = wr.top+h-dy; - while (y < wr.bottom-h) - { - ske_AlphaBlend(hDest,wr.left,y,w,h,mem2dc, 0, 0, w,h,bf); + y = wr.top + h - dy; + while (y < wr.bottom - h) { + ske_AlphaBlend(hDest, wr.left, y, w, h, mem2dc, 0, 0, w, h, bf); y += h; } if (y <= wr.bottom) - ske_AlphaBlend(hDest,wr.left,y,w,wr.bottom-y, mem2dc, 0, 0, w,wr.bottom-y,bf); + ske_AlphaBlend(hDest, wr.left, y, w, wr.bottom - y, mem2dc, 0, 0, w, wr.bottom - y, bf); } } } - SelectObject(mem2dc,oldbmp); + SelectObject(mem2dc, oldbmp); DeleteObject(mem2bmp); DeleteDC(mem2dc); } - else if (mode == FM_TILE_HORZ && (rGlyph->right-rGlyph->left>0) && (rGlyph->bottom-rGlyph->top>0) && (rFill->bottom-rFill->top)>0 && (rFill->right-rFill->left)>0) - { + else if (mode == FM_TILE_HORZ && (rGlyph->right - rGlyph->left > 0) && (rGlyph->bottom - rGlyph->top > 0) && (rFill->bottom - rFill->top) > 0 && (rFill->right - rFill->left) > 0) { HDC mem2dc; RECT wr; - HBITMAP mem2bmp,oldbmp; - int w = rGlyph->right-rGlyph->left; - int h = rFill->bottom-rFill->top; - IntersectRect(&wr,rClip,rFill); - if ((wr.bottom-wr.top)*(wr.right-wr.left) == 0) return 0; - h = wr.bottom-wr.top; + HBITMAP mem2bmp, oldbmp; + int w = rGlyph->right - rGlyph->left; + int h = rFill->bottom - rFill->top; + IntersectRect(&wr, rClip, rFill); + if ((wr.bottom - wr.top)*(wr.right - wr.left) == 0) return 0; + h = wr.bottom - wr.top; mem2dc = CreateCompatibleDC(hDest); - mem2bmp = ske_CreateDIB32(w,h); - oldbmp = (HBITMAP)SelectObject(mem2dc,mem2bmp); + mem2bmp = ske_CreateDIB32(w, h); + oldbmp = (HBITMAP)SelectObject(mem2dc, mem2bmp); if (!oldbmp) return 0; @@ -820,87 +772,80 @@ static BOOL ske_SkinFillRectByGlyph(HDC hDest, HDC hSource, RECT *rFill, RECT *r //StretchBlt(mem2dc, 0, 0, w,h,hSource,rGlyph->left+(wr.left-rFill->left),rGlyph->top,w,h,SRCCOPY); // BLENDFUNCTION bf = {AC_SRC_OVER, 0, 255, 0 }; - ske_AlphaBlend(mem2dc, 0, -(wr.top-rFill->top),w,rFill->bottom-rFill->top,hSource,rGlyph->left,rGlyph->top,w,rGlyph->bottom-rGlyph->top,bf); - if (drawMode == 0 || drawMode == 2) - { - if (drawMode == 0) - { + ske_AlphaBlend(mem2dc, 0, -(wr.top - rFill->top), w, rFill->bottom - rFill->top, hSource, rGlyph->left, rGlyph->top, w, rGlyph->bottom - rGlyph->top, bf); + if (drawMode == 0 || drawMode == 2) { + if (drawMode == 0) { int dx; - dx = (wr.left-rFill->left)%w; - if (dx >= 0) - { + dx = (wr.left - rFill->left) % w; + if (dx >= 0) { int wt; x = wr.left; - wt = (x+w-dx <= wr.right)?(w-dx):(wr.right-wr.left); - BitBlt(hDest,x,wr.top,wt,h,mem2dc,dx, 0, SRCCOPY); + wt = (x + w - dx <= wr.right) ? (w - dx) : (wr.right - wr.left); + BitBlt(hDest, x, wr.top, wt, h, mem2dc, dx, 0, SRCCOPY); } - x = wr.left+w-dx; - while (x < wr.right-w){ - BitBlt(hDest,x,wr.top,w,h,mem2dc, 0, 0, SRCCOPY); + x = wr.left + w - dx; + while (x < wr.right - w) { + BitBlt(hDest, x, wr.top, w, h, mem2dc, 0, 0, SRCCOPY); x += w; } if (x <= wr.right) - BitBlt(hDest,x,wr.top,wr.right-x,h, mem2dc, 0, 0, SRCCOPY); + BitBlt(hDest, x, wr.top, wr.right - x, h, mem2dc, 0, 0, SRCCOPY); } - else - { + else { int dx; - dx = (wr.left-rFill->left)%w; - x = wr.left-dx; - while (x < wr.right-w){ - ske_AlphaBlend(hDest,x,wr.top,w,h,mem2dc, 0, 0, w,h,bf); + dx = (wr.left - rFill->left) % w; + x = wr.left - dx; + while (x < wr.right - w) { + ske_AlphaBlend(hDest, x, wr.top, w, h, mem2dc, 0, 0, w, h, bf); x += w; } if (x <= wr.right) - ske_AlphaBlend(hDest,x,wr.top,wr.right-x,h, mem2dc, 0, 0, wr.right-x,h,bf); + ske_AlphaBlend(hDest, x, wr.top, wr.right - x, h, mem2dc, 0, 0, wr.right - x, h, bf); } } - else - { - BLENDFUNCTION bf = {AC_SRC_OVER, 0, 255, AC_SRC_ALPHA }; + else { + BLENDFUNCTION bf = { AC_SRC_OVER, 0, 255, AC_SRC_ALPHA }; int dx; - dx = (wr.left-rFill->left)%w; - if (dx >= 0) - { + dx = (wr.left - rFill->left) % w; + if (dx >= 0) { int wt; x = wr.left; - wt = (x+w-dx <= wr.right)?(w-dx):(wr.right-wr.left); - ske_AlphaBlend(hDest,x,wr.top,wt,h,mem2dc,dx, 0, wt,h,bf); + wt = (x + w - dx <= wr.right) ? (w - dx) : (wr.right - wr.left); + ske_AlphaBlend(hDest, x, wr.top, wt, h, mem2dc, dx, 0, wt, h, bf); } - x = wr.left+w-dx; - while (x < wr.right-w){ - ske_AlphaBlend(hDest,x,wr.top,w,h,mem2dc, 0, 0, w,h,bf); + x = wr.left + w - dx; + while (x < wr.right - w) { + ske_AlphaBlend(hDest, x, wr.top, w, h, mem2dc, 0, 0, w, h, bf); x += w; } if (x <= wr.right) - ske_AlphaBlend(hDest,x,wr.top,wr.right-x,h, mem2dc, 0, 0, wr.right-x,h,bf); + ske_AlphaBlend(hDest, x, wr.top, wr.right - x, h, mem2dc, 0, 0, wr.right - x, h, bf); } } } - SelectObject(mem2dc,oldbmp); + SelectObject(mem2dc, oldbmp); DeleteObject(mem2bmp); DeleteDC(mem2dc); } - else if (mode == FM_TILE_BOTH && (rGlyph->right-rGlyph->left>0) && (rGlyph->bottom-rGlyph->top>0)) - { + else if (mode == FM_TILE_BOTH && (rGlyph->right - rGlyph->left > 0) && (rGlyph->bottom - rGlyph->top > 0)) { HDC mem2dc; - int w = rGlyph->right-rGlyph->left; + int w = rGlyph->right - rGlyph->left; int x = 0, sy = 0, maxy = 0; - int h = rFill->bottom-rFill->top; - HBITMAP mem2bmp,oldbmp; + int h = rFill->bottom - rFill->top; + HBITMAP mem2bmp, oldbmp; RECT wr; - IntersectRect(&wr,rClip,rFill); - if ((wr.bottom-wr.top)*(wr.right-wr.left) == 0) return 0; + IntersectRect(&wr, rClip, rFill); + if ((wr.bottom - wr.top)*(wr.right - wr.left) == 0) return 0; mem2dc = CreateCompatibleDC(hDest); - mem2bmp = ske_CreateDIB32(w,wr.bottom-wr.top); - h = wr.bottom-wr.top; - oldbmp = (HBITMAP)SelectObject(mem2dc,mem2bmp); + mem2bmp = ske_CreateDIB32(w, wr.bottom - wr.top); + h = wr.bottom - wr.top; + oldbmp = (HBITMAP)SelectObject(mem2dc, mem2bmp); #ifdef _DEBUG if (!oldbmp) - (NULL,"Tile bitmap not selected","ERROR", MB_OK); + (NULL, "Tile bitmap not selected", "ERROR", MB_OK); #endif /// draw here { @@ -909,79 +854,72 @@ static BOOL ske_SkinFillRectByGlyph(HDC hDest, HDC hSource, RECT *rFill, RECT *r { int y; int dy; - dy = (wr.top-rFill->top)%(rGlyph->bottom-rGlyph->top); + dy = (wr.top - rFill->top) % (rGlyph->bottom - rGlyph->top); y = -dy; - while (y < wr.bottom-wr.top) - { + while (y < wr.bottom - wr.top) { - ske_AlphaBlend(mem2dc, 0, y,w,rGlyph->bottom-rGlyph->top, hSource,rGlyph->left,rGlyph->top,w,rGlyph->bottom-rGlyph->top,bf); - y += rGlyph->bottom-rGlyph->top; + ske_AlphaBlend(mem2dc, 0, y, w, rGlyph->bottom - rGlyph->top, hSource, rGlyph->left, rGlyph->top, w, rGlyph->bottom - rGlyph->top, bf); + y += rGlyph->bottom - rGlyph->top; } //-- //end temp bitmap - if (drawMode == 0 || drawMode == 2) - { - if (drawMode == 0) - { + if (drawMode == 0 || drawMode == 2) { + if (drawMode == 0) { int dx; - dx = (wr.left-rFill->left)%w; - if (dx >= 0) - { + dx = (wr.left - rFill->left) % w; + if (dx >= 0) { int wt; x = wr.left; - wt = (x+w-dx <= wr.right)?(w-dx):(wr.right-wr.left); - BitBlt(hDest,x,wr.top,wt,h,mem2dc,dx, 0, SRCCOPY); + wt = (x + w - dx <= wr.right) ? (w - dx) : (wr.right - wr.left); + BitBlt(hDest, x, wr.top, wt, h, mem2dc, dx, 0, SRCCOPY); } - x = wr.left+w-dx; - while (x < wr.right-w){ - BitBlt(hDest,x,wr.top,w,h,mem2dc, 0, 0, SRCCOPY); + x = wr.left + w - dx; + while (x < wr.right - w) { + BitBlt(hDest, x, wr.top, w, h, mem2dc, 0, 0, SRCCOPY); x += w; } if (x <= wr.right) - BitBlt(hDest,x,wr.top,wr.right-x,h, mem2dc, 0, 0, SRCCOPY); + BitBlt(hDest, x, wr.top, wr.right - x, h, mem2dc, 0, 0, SRCCOPY); } - else - { + else { int dx; - dx = (wr.left-rFill->left)%w; - x = wr.left-dx; - while (x < wr.right-w){ - ske_AlphaBlend(hDest,x,wr.top,w,h,mem2dc, 0, 0, w,h,bf); + dx = (wr.left - rFill->left) % w; + x = wr.left - dx; + while (x < wr.right - w) { + ske_AlphaBlend(hDest, x, wr.top, w, h, mem2dc, 0, 0, w, h, bf); x += w; } if (x <= wr.right) - ske_AlphaBlend(hDest,x,wr.top,wr.right-x,h, mem2dc, 0, 0, wr.right-x,h,bf); + ske_AlphaBlend(hDest, x, wr.top, wr.right - x, h, mem2dc, 0, 0, wr.right - x, h, bf); } } - else - { - BLENDFUNCTION bf = {AC_SRC_OVER, 0, 255, AC_SRC_ALPHA }; + else { + BLENDFUNCTION bf = { AC_SRC_OVER, 0, 255, AC_SRC_ALPHA }; int dx; - dx = (wr.left-rFill->left)%w; - if (dx >= 0) - { + dx = (wr.left - rFill->left) % w; + if (dx >= 0) { int wt; x = wr.left; - wt = (x+w-dx <= wr.right)?(w-dx):(wr.right-wr.left); - ske_AlphaBlend(hDest,x,wr.top,wt,h,mem2dc,dx, 0, wt,h,bf); + wt = (x + w - dx <= wr.right) ? (w - dx) : (wr.right - wr.left); + ske_AlphaBlend(hDest, x, wr.top, wt, h, mem2dc, dx, 0, wt, h, bf); } - x = wr.left+w-dx; - while (x < wr.right-w){ - ske_AlphaBlend(hDest,x,wr.top,w,h,mem2dc, 0, 0, w,h,bf); + x = wr.left + w - dx; + while (x < wr.right - w) { + ske_AlphaBlend(hDest, x, wr.top, w, h, mem2dc, 0, 0, w, h, bf); x += w; } if (x <= wr.right) - ske_AlphaBlend(hDest,x,wr.top,wr.right-x,h, mem2dc, 0, 0, wr.right-x,h,bf); + ske_AlphaBlend(hDest, x, wr.top, wr.right - x, h, mem2dc, 0, 0, wr.right - x, h, bf); } } } - SelectObject(mem2dc,oldbmp); + SelectObject(mem2dc, oldbmp); DeleteObject(mem2bmp); DeleteDC(mem2dc); } @@ -991,7 +929,7 @@ static BOOL ske_SkinFillRectByGlyph(HDC hDest, HDC hSource, RECT *rFill, RECT *r HBITMAP ske_CreateDIB32(int cx, int cy) { - return ske_CreateDIB32Point(cx,cy,NULL); + return ske_CreateDIB32Point(cx, cy, NULL); } HBITMAP ske_CreateDIB32Point(int cx, int cy, void ** bits) @@ -1013,15 +951,14 @@ HBITMAP ske_CreateDIB32Point(int cx, int cy, void ** bits) DIB_RGB_COLORS, (void **)&ptPixels, NULL, 0); - if ((DirectBitmap == NULL || ptPixels == NULL) && cx != 0 && cy != 0) - { + if ((DirectBitmap == NULL || ptPixels == NULL) && cx != 0 && cy != 0) { #ifdef _DEBUG - MessageBoxA(NULL,"Object not allocated. Check GDI object count","ERROR",MB_OK|MB_ICONERROR); + MessageBoxA(NULL, "Object not allocated. Check GDI object count", "ERROR", MB_OK | MB_ICONERROR); DebugBreak(); #endif ; } - else memset(ptPixels, 0, cx*cy*4); + else memset(ptPixels, 0, cx*cy * 4); if (bits != NULL) *bits = ptPixels; return DirectBitmap; } @@ -1031,7 +968,7 @@ HRGN ske_CreateOpaqueRgn(BYTE Level, bool Opaque) if (!g_pCachedWindow) return NULL; - RGBQUAD *buf = (RGBQUAD *) g_pCachedWindow->hImageDIBByte; + RGBQUAD *buf = (RGBQUAD *)g_pCachedWindow->hImageDIBByte; if (buf == NULL) return NULL; @@ -1078,7 +1015,7 @@ HRGN ske_CreateOpaqueRgn(BYTE Level, bool Opaque) pRgnData->rdh.nCount++; } } - + HRGN hRgn = ExtCreateRegion(NULL, sizeof(RGNDATAHEADER) + pRgnData->rdh.nCount*sizeof(RECT), (LPRGNDATA)pRgnData); free(pRgnData); return hRgn; @@ -1092,40 +1029,36 @@ static int ske_DrawSkinObject(SKINDRAWREQUEST * preq, GLYPHOBJECT * pobj) HBITMAP membmp = 0, oldbmp = 0, oldglyph = 0; BYTE Is32Bit = 0; RECT PRect; - POINT mode2offset = {0}; + POINT mode2offset = { 0 }; int depth = 0; int mode = 0; //0-FastDraw, 1-DirectAlphaDraw, 2-BufferedAlphaDraw if (!(preq && pobj)) return -1; - if ((!pobj->hGlyph || pobj->hGlyph == (HBITMAP)-1) && ((pobj->Style&7) == ST_IMAGE || (pobj->Style&7) == ST_FRAGMENT || (pobj->Style&7) == ST_SOLARIZE)) return 0; + if ((!pobj->hGlyph || pobj->hGlyph == (HBITMAP)-1) && ((pobj->Style & 7) == ST_IMAGE || (pobj->Style & 7) == ST_FRAGMENT || (pobj->Style & 7) == ST_SOLARIZE)) return 0; // Determine painting mode - depth = GetDeviceCaps(preq->hDC,BITSPIXEL); - depth = depth < 16?16:depth; + depth = GetDeviceCaps(preq->hDC, BITSPIXEL); + depth = depth < 16 ? 16 : depth; Is32Bit = pobj->bmBitsPixel == 32; - if ((!Is32Bit && pobj->dwAlpha == 255) && pobj->Style != ST_BRUSH) mode = 0; + if ((!Is32Bit && pobj->dwAlpha == 255) && pobj->Style != ST_BRUSH) mode = 0; else if (pobj->dwAlpha == 255 && pobj->Style != ST_BRUSH) mode = 1; else mode = 2; // End painting mode //force mode - if (preq->rcClipRect.bottom-preq->rcClipRect.top*preq->rcClipRect.right-preq->rcClipRect.left == 0) + if (preq->rcClipRect.bottom - preq->rcClipRect.top*preq->rcClipRect.right - preq->rcClipRect.left == 0) preq->rcClipRect = preq->rcDestRect; - IntersectRect(&PRect,&preq->rcDestRect,&preq->rcClipRect); - if (IsRectEmpty(&PRect)) - { + IntersectRect(&PRect, &preq->rcDestRect, &preq->rcClipRect); + if (IsRectEmpty(&PRect)) { return 0; } - if (mode == 2) - { + if (mode == 2) { memdc = CreateCompatibleDC(preq->hDC); - membmp = ske_CreateDIB32(PRect.right-PRect.left,PRect.bottom-PRect.top); - oldbmp = (HBITMAP)SelectObject(memdc,membmp); - if (oldbmp == NULL) - { - if (mode == 2) - { - SelectObject(memdc,oldbmp); + membmp = ske_CreateDIB32(PRect.right - PRect.left, PRect.bottom - PRect.top); + oldbmp = (HBITMAP)SelectObject(memdc, membmp); + if (oldbmp == NULL) { + if (mode == 2) { + SelectObject(memdc, oldbmp); DeleteDC(memdc); DeleteObject(membmp); } @@ -1135,44 +1068,38 @@ static int ske_DrawSkinObject(SKINDRAWREQUEST * preq, GLYPHOBJECT * pobj) if (mode != 2) memdc = preq->hDC; { - if (pobj->hGlyph && pobj->hGlyph != (HBITMAP)-1) - { + if (pobj->hGlyph && pobj->hGlyph != (HBITMAP)-1) { glyphdc = CreateCompatibleDC(preq->hDC); if (!oldglyph) - oldglyph = (HBITMAP)SelectObject(glyphdc,pobj->hGlyph); + oldglyph = (HBITMAP)SelectObject(glyphdc, pobj->hGlyph); else - SelectObject(glyphdc,pobj->hGlyph); + SelectObject(glyphdc, pobj->hGlyph); } // Drawing { RECT rFill, rGlyph, rClip; - if ((pobj->Style&7) == ST_BRUSH) - { + if ((pobj->Style & 7) == ST_BRUSH) { HBRUSH br = CreateSolidBrush(pobj->dwColor); RECT fr; - if (mode == 2) - { - SetRect(&fr, 0, 0, PRect.right-PRect.left,PRect.bottom-PRect.top); - FillRect(memdc,&fr,br); - ske_SetRectOpaque(memdc,&fr); + if (mode == 2) { + SetRect(&fr, 0, 0, PRect.right - PRect.left, PRect.bottom - PRect.top); + FillRect(memdc, &fr, br); + ske_SetRectOpaque(memdc, &fr); // FillRectAlpha(memdc,&fr,pobj->dwColor|0xFF000000); } - else - { + else { fr = PRect; // SetRect(&fr, 0, 0, PRect.right-PRect.left,PRect.bottom-PRect.top); - FillRect(preq->hDC,&fr,br); + FillRect(preq->hDC, &fr, br); } DeleteObject(br); k = -1; } - else - { - if (mode == 2) - { + else { + if (mode == 2) { mode2offset.x = PRect.left; mode2offset.y = PRect.top; - OffsetRect(&PRect,-mode2offset.x,-mode2offset.y); + OffsetRect(&PRect, -mode2offset.x, -mode2offset.y); } rClip = (preq->rcClipRect); @@ -1181,201 +1108,190 @@ static int ske_DrawSkinObject(SKINDRAWREQUEST * preq, GLYPHOBJECT * pobj) int top = 0; int rgh = pobj->bmWidth; int btm = pobj->bmHeight; - if ((pobj->Style&7) == ST_FRAGMENT) - { + if ((pobj->Style & 7) == ST_FRAGMENT) { lft = pobj->clipArea.x; top = pobj->clipArea.y; - rgh = min(rgh,lft+pobj->szclipArea.cx); - btm = min(btm,top+pobj->szclipArea.cy); + rgh = min(rgh, lft + pobj->szclipArea.cx); + btm = min(btm, top + pobj->szclipArea.cy); } // Draw center... - if (1) - { - rFill.top = preq->rcDestRect.top+pobj->dwTop; - rFill.bottom = preq->rcDestRect.bottom-pobj->dwBottom; - rFill.left = preq->rcDestRect.left+pobj->dwLeft; - rFill.right = preq->rcDestRect.right-pobj->dwRight; + if (1) { + rFill.top = preq->rcDestRect.top + pobj->dwTop; + rFill.bottom = preq->rcDestRect.bottom - pobj->dwBottom; + rFill.left = preq->rcDestRect.left + pobj->dwLeft; + rFill.right = preq->rcDestRect.right - pobj->dwRight; if (mode == 2) - OffsetRect(&rFill,-mode2offset.x,-mode2offset.y); + OffsetRect(&rFill, -mode2offset.x, -mode2offset.y); - rGlyph.top = top+pobj->dwTop; - rGlyph.left = lft+pobj->dwLeft; - rGlyph.right = rgh-pobj->dwRight; - rGlyph.bottom = btm-pobj->dwBottom; + rGlyph.top = top + pobj->dwTop; + rGlyph.left = lft + pobj->dwLeft; + rGlyph.right = rgh - pobj->dwRight; + rGlyph.bottom = btm - pobj->dwBottom; - k += ske_SkinFillRectByGlyph(memdc,glyphdc,&rFill,&rGlyph,&PRect,pobj->FitMode,mode,depth); + k += ske_SkinFillRectByGlyph(memdc, glyphdc, &rFill, &rGlyph, &PRect, pobj->FitMode, mode, depth); } // Draw top side... - if (1) - { + if (1) { rFill.top = preq->rcDestRect.top; - rFill.bottom = preq->rcDestRect.top+pobj->dwTop; - rFill.left = preq->rcDestRect.left+pobj->dwLeft; - rFill.right = preq->rcDestRect.right-pobj->dwRight; + rFill.bottom = preq->rcDestRect.top + pobj->dwTop; + rFill.left = preq->rcDestRect.left + pobj->dwLeft; + rFill.right = preq->rcDestRect.right - pobj->dwRight; if (mode == 2) - OffsetRect(&rFill,-mode2offset.x,-mode2offset.y); + OffsetRect(&rFill, -mode2offset.x, -mode2offset.y); - rGlyph.top = top+0; - rGlyph.left = lft+pobj->dwLeft; - rGlyph.right = rgh-pobj->dwRight; - rGlyph.bottom = top+pobj->dwTop; + rGlyph.top = top + 0; + rGlyph.left = lft + pobj->dwLeft; + rGlyph.right = rgh - pobj->dwRight; + rGlyph.bottom = top + pobj->dwTop; - k += ske_SkinFillRectByGlyph(memdc,glyphdc,&rFill,&rGlyph,&PRect,pobj->FitMode&FM_TILE_HORZ,mode,depth); + k += ske_SkinFillRectByGlyph(memdc, glyphdc, &rFill, &rGlyph, &PRect, pobj->FitMode&FM_TILE_HORZ, mode, depth); } // Draw bottom side... - if (1) - { - rFill.top = preq->rcDestRect.bottom-pobj->dwBottom; + if (1) { + rFill.top = preq->rcDestRect.bottom - pobj->dwBottom; rFill.bottom = preq->rcDestRect.bottom; - rFill.left = preq->rcDestRect.left+pobj->dwLeft; - rFill.right = preq->rcDestRect.right-pobj->dwRight; + rFill.left = preq->rcDestRect.left + pobj->dwLeft; + rFill.right = preq->rcDestRect.right - pobj->dwRight; if (mode == 2) - OffsetRect(&rFill,-mode2offset.x,-mode2offset.y); + OffsetRect(&rFill, -mode2offset.x, -mode2offset.y); - rGlyph.top = btm-pobj->dwBottom; - rGlyph.left = lft+pobj->dwLeft; - rGlyph.right = rgh-pobj->dwRight; + rGlyph.top = btm - pobj->dwBottom; + rGlyph.left = lft + pobj->dwLeft; + rGlyph.right = rgh - pobj->dwRight; rGlyph.bottom = btm; - k += ske_SkinFillRectByGlyph(memdc,glyphdc,&rFill,&rGlyph,&PRect,pobj->FitMode&FM_TILE_HORZ,mode,depth); + k += ske_SkinFillRectByGlyph(memdc, glyphdc, &rFill, &rGlyph, &PRect, pobj->FitMode&FM_TILE_HORZ, mode, depth); } // Draw left side... - if (1) - { - rFill.top = preq->rcDestRect.top+pobj->dwTop; - rFill.bottom = preq->rcDestRect.bottom-pobj->dwBottom; + if (1) { + rFill.top = preq->rcDestRect.top + pobj->dwTop; + rFill.bottom = preq->rcDestRect.bottom - pobj->dwBottom; rFill.left = preq->rcDestRect.left; - rFill.right = preq->rcDestRect.left+pobj->dwLeft; + rFill.right = preq->rcDestRect.left + pobj->dwLeft; if (mode == 2) - OffsetRect(&rFill,-mode2offset.x,-mode2offset.y); + OffsetRect(&rFill, -mode2offset.x, -mode2offset.y); - rGlyph.top = top+pobj->dwTop; + rGlyph.top = top + pobj->dwTop; rGlyph.left = lft; - rGlyph.right = lft+pobj->dwLeft; - rGlyph.bottom = btm-pobj->dwBottom; + rGlyph.right = lft + pobj->dwLeft; + rGlyph.bottom = btm - pobj->dwBottom; - k += ske_SkinFillRectByGlyph(memdc,glyphdc,&rFill,&rGlyph,&PRect,pobj->FitMode&FM_TILE_VERT,mode,depth); + k += ske_SkinFillRectByGlyph(memdc, glyphdc, &rFill, &rGlyph, &PRect, pobj->FitMode&FM_TILE_VERT, mode, depth); } // Draw right side... - if (1) - { - rFill.top = preq->rcDestRect.top+pobj->dwTop; - rFill.bottom = preq->rcDestRect.bottom-pobj->dwBottom; - rFill.left = preq->rcDestRect.right-pobj->dwRight; + if (1) { + rFill.top = preq->rcDestRect.top + pobj->dwTop; + rFill.bottom = preq->rcDestRect.bottom - pobj->dwBottom; + rFill.left = preq->rcDestRect.right - pobj->dwRight; rFill.right = preq->rcDestRect.right; if (mode == 2) - OffsetRect(&rFill,-mode2offset.x,-mode2offset.y); + OffsetRect(&rFill, -mode2offset.x, -mode2offset.y); - rGlyph.top = top+pobj->dwTop; - rGlyph.left = rgh-pobj->dwRight; + rGlyph.top = top + pobj->dwTop; + rGlyph.left = rgh - pobj->dwRight; rGlyph.right = rgh; - rGlyph.bottom = btm-pobj->dwBottom; + rGlyph.bottom = btm - pobj->dwBottom; - k += ske_SkinFillRectByGlyph(memdc,glyphdc,&rFill,&rGlyph,&PRect,pobj->FitMode&FM_TILE_VERT,mode,depth); + k += ske_SkinFillRectByGlyph(memdc, glyphdc, &rFill, &rGlyph, &PRect, pobj->FitMode&FM_TILE_VERT, mode, depth); } // Draw Top-Left corner... - if (1) - { + if (1) { rFill.top = preq->rcDestRect.top; - rFill.bottom = preq->rcDestRect.top+pobj->dwTop; + rFill.bottom = preq->rcDestRect.top + pobj->dwTop; rFill.left = preq->rcDestRect.left; - rFill.right = preq->rcDestRect.left+pobj->dwLeft; + rFill.right = preq->rcDestRect.left + pobj->dwLeft; if (mode == 2) - OffsetRect(&rFill,-mode2offset.x,-mode2offset.y); + OffsetRect(&rFill, -mode2offset.x, -mode2offset.y); rGlyph.top = top; rGlyph.left = lft; - rGlyph.right = lft+pobj->dwLeft; - rGlyph.bottom = top+pobj->dwTop; + rGlyph.right = lft + pobj->dwLeft; + rGlyph.bottom = top + pobj->dwTop; - k += ske_SkinFillRectByGlyph(memdc,glyphdc,&rFill,&rGlyph,&PRect, 0, mode,depth); + k += ske_SkinFillRectByGlyph(memdc, glyphdc, &rFill, &rGlyph, &PRect, 0, mode, depth); } // Draw Top-Right corner... - if (1) - { + if (1) { rFill.top = preq->rcDestRect.top; - rFill.bottom = preq->rcDestRect.top+pobj->dwTop; - rFill.left = preq->rcDestRect.right-pobj->dwRight; + rFill.bottom = preq->rcDestRect.top + pobj->dwTop; + rFill.left = preq->rcDestRect.right - pobj->dwRight; rFill.right = preq->rcDestRect.right; if (mode == 2) - OffsetRect(&rFill,-mode2offset.x,-mode2offset.y); + OffsetRect(&rFill, -mode2offset.x, -mode2offset.y); rGlyph.top = top; - rGlyph.left = rgh-pobj->dwRight; + rGlyph.left = rgh - pobj->dwRight; rGlyph.right = rgh; - rGlyph.bottom = top+pobj->dwTop; + rGlyph.bottom = top + pobj->dwTop; - k += ske_SkinFillRectByGlyph(memdc,glyphdc,&rFill,&rGlyph,&PRect, 0, mode,depth); + k += ske_SkinFillRectByGlyph(memdc, glyphdc, &rFill, &rGlyph, &PRect, 0, mode, depth); } // Draw Bottom-Left corner... - if (1) - { - rFill.top = preq->rcDestRect.bottom-pobj->dwBottom; + if (1) { + rFill.top = preq->rcDestRect.bottom - pobj->dwBottom; rFill.bottom = preq->rcDestRect.bottom; rFill.left = preq->rcDestRect.left; - rFill.right = preq->rcDestRect.left+pobj->dwLeft; + rFill.right = preq->rcDestRect.left + pobj->dwLeft; if (mode == 2) - OffsetRect(&rFill,-mode2offset.x,-mode2offset.y); + OffsetRect(&rFill, -mode2offset.x, -mode2offset.y); rGlyph.left = lft; - rGlyph.right = lft+pobj->dwLeft; - rGlyph.top = btm-pobj->dwBottom; + rGlyph.right = lft + pobj->dwLeft; + rGlyph.top = btm - pobj->dwBottom; rGlyph.bottom = btm; - k += ske_SkinFillRectByGlyph(memdc,glyphdc,&rFill,&rGlyph,&PRect, 0, mode,depth); + k += ske_SkinFillRectByGlyph(memdc, glyphdc, &rFill, &rGlyph, &PRect, 0, mode, depth); } // Draw Bottom-Right corner... - if (1) - { - rFill.top = preq->rcDestRect.bottom-pobj->dwBottom; + if (1) { + rFill.top = preq->rcDestRect.bottom - pobj->dwBottom; rFill.bottom = preq->rcDestRect.bottom; - rFill.left = preq->rcDestRect.right-pobj->dwRight; + rFill.left = preq->rcDestRect.right - pobj->dwRight; rFill.right = preq->rcDestRect.right; if (mode == 2) - OffsetRect(&rFill,-mode2offset.x,-mode2offset.y); + OffsetRect(&rFill, -mode2offset.x, -mode2offset.y); - rGlyph.left = rgh-pobj->dwRight; + rGlyph.left = rgh - pobj->dwRight; rGlyph.right = rgh; - rGlyph.top = btm-pobj->dwBottom; + rGlyph.top = btm - pobj->dwBottom; rGlyph.bottom = btm; - k += ske_SkinFillRectByGlyph(memdc,glyphdc,&rFill,&rGlyph,&PRect, 0, mode,depth); + k += ske_SkinFillRectByGlyph(memdc, glyphdc, &rFill, &rGlyph, &PRect, 0, mode, depth); } } } - if ((k>0 || k == -1) && mode == 2) - { + if ((k > 0 || k == -1) && mode == 2) { { - BLENDFUNCTION bf = {AC_SRC_OVER, 0, /*(bm.bmBitsPixel == 32)?255:*/pobj->dwAlpha, (pobj->bmBitsPixel == 32 && pobj->Style != ST_BRUSH)?AC_SRC_ALPHA:0}; + BLENDFUNCTION bf = { AC_SRC_OVER, 0, /*(bm.bmBitsPixel == 32)?255:*/pobj->dwAlpha, (pobj->bmBitsPixel == 32 && pobj->Style != ST_BRUSH) ? AC_SRC_ALPHA : 0 }; if (mode == 2) - OffsetRect(&PRect,mode2offset.x,mode2offset.y); - ske_AlphaBlend( preq->hDC,PRect.left,PRect.top,PRect.right-PRect.left,PRect.bottom-PRect.top, - memdc, 0, 0, PRect.right-PRect.left,PRect.bottom-PRect.top,bf); + OffsetRect(&PRect, mode2offset.x, mode2offset.y); + ske_AlphaBlend(preq->hDC, PRect.left, PRect.top, PRect.right - PRect.left, PRect.bottom - PRect.top, + memdc, 0, 0, PRect.right - PRect.left, PRect.bottom - PRect.top, bf); } } } @@ -1385,35 +1301,28 @@ static int ske_DrawSkinObject(SKINDRAWREQUEST * preq, GLYPHOBJECT * pobj) //free GDI resources { - if (oldglyph) SelectObject(glyphdc,oldglyph); + if (oldglyph) SelectObject(glyphdc, oldglyph); if (glyphdc) DeleteDC(glyphdc); } - if (mode == 2) - { - SelectObject(memdc,oldbmp); + if (mode == 2) { + SelectObject(memdc, oldbmp); DeleteDC(memdc); DeleteObject(membmp); } } - if (pobj->plTextList && pobj->plTextList->realCount>0) - { + if (pobj->plTextList && pobj->plTextList->realCount > 0) { int i; HFONT hOldFont; - for (i=0; i < pobj->plTextList->realCount; i++) - { + for (i = 0; i < pobj->plTextList->realCount; i++) { GLYPHTEXT * gt = (GLYPHTEXT *)pobj->plTextList->items[i]; - if (!gt->hFont) - { - if (gl_plSkinFonts && gl_plSkinFonts->realCount>0) - { + if (!gt->hFont) { + if (gl_plSkinFonts && gl_plSkinFonts->realCount > 0) { int j = 0; - for (j = 0; j < gl_plSkinFonts->realCount; j++) - { + for (j = 0; j < gl_plSkinFonts->realCount; j++) { SKINFONT * sf; sf = (SKINFONT*)gl_plSkinFonts->items[j]; - if (sf->szFontID && !mir_strcmp(sf->szFontID,gt->szFontID)) - { + if (sf->szFontID && !mir_strcmp(sf->szFontID, gt->szFontID)) { gt->hFont = sf->hFont; break; } @@ -1421,31 +1330,30 @@ static int ske_DrawSkinObject(SKINDRAWREQUEST * preq, GLYPHOBJECT * pobj) } if (!gt->hFont) gt->hFont = (HFONT)-1; } - if (gt->hFont != (HFONT)-1) - { - RECT rc = {0}; - hOldFont = (HFONT)SelectObject(preq->hDC,gt->hFont); + if (gt->hFont != (HFONT)-1) { + RECT rc = { 0 }; + hOldFont = (HFONT)SelectObject(preq->hDC, gt->hFont); - if (gt->RelativeFlags&2) rc.left = preq->rcDestRect.right+gt->iLeft; - else if (gt->RelativeFlags&1) rc.left = ((preq->rcDestRect.right-preq->rcDestRect.left)>>1)+gt->iLeft; - else rc.left = preq->rcDestRect.left+gt->iLeft; + if (gt->RelativeFlags & 2) rc.left = preq->rcDestRect.right + gt->iLeft; + else if (gt->RelativeFlags & 1) rc.left = ((preq->rcDestRect.right - preq->rcDestRect.left) >> 1) + gt->iLeft; + else rc.left = preq->rcDestRect.left + gt->iLeft; - if (gt->RelativeFlags&8) rc.top = preq->rcDestRect.bottom+gt->iTop; - else if (gt->RelativeFlags&4) rc.top = ((preq->rcDestRect.bottom-preq->rcDestRect.top)>>1)+gt->iTop; - else rc.top = preq->rcDestRect.top+gt->iTop; + if (gt->RelativeFlags & 8) rc.top = preq->rcDestRect.bottom + gt->iTop; + else if (gt->RelativeFlags & 4) rc.top = ((preq->rcDestRect.bottom - preq->rcDestRect.top) >> 1) + gt->iTop; + else rc.top = preq->rcDestRect.top + gt->iTop; - if (gt->RelativeFlags&32) rc.right = preq->rcDestRect.right+gt->iRight; - else if (gt->RelativeFlags&16) rc.right = ((preq->rcDestRect.right-preq->rcDestRect.left)>>1)+gt->iRight; - else rc.right = preq->rcDestRect.left+gt->iRight; + if (gt->RelativeFlags & 32) rc.right = preq->rcDestRect.right + gt->iRight; + else if (gt->RelativeFlags & 16) rc.right = ((preq->rcDestRect.right - preq->rcDestRect.left) >> 1) + gt->iRight; + else rc.right = preq->rcDestRect.left + gt->iRight; - if (gt->RelativeFlags&128) rc.bottom = preq->rcDestRect.bottom+gt->iBottom; - else if (gt->RelativeFlags&64) rc.bottom = ((preq->rcDestRect.bottom-preq->rcDestRect.top)>>1)+gt->iBottom; - else rc.bottom = preq->rcDestRect.top+gt->iBottom; + if (gt->RelativeFlags & 128) rc.bottom = preq->rcDestRect.bottom + gt->iBottom; + else if (gt->RelativeFlags & 64) rc.bottom = ((preq->rcDestRect.bottom - preq->rcDestRect.top) >> 1) + gt->iBottom; + else rc.bottom = preq->rcDestRect.top + gt->iBottom; - ske_AlphaTextOut(preq->hDC, gt->stText, -1, &rc,gt->dwFlags, gt->dwColor); - SelectObject(preq->hDC,hOldFont); + ske_AlphaTextOut(preq->hDC, gt->stText, -1, &rc, gt->dwFlags, gt->dwColor); + SelectObject(preq->hDC, hOldFont); } } } @@ -1455,21 +1363,20 @@ static int ske_DrawSkinObject(SKINDRAWREQUEST * preq, GLYPHOBJECT * pobj) -int ske_AddDescriptorToSkinObjectList (LPSKINOBJECTDESCRIPTOR lpDescr, SKINOBJECTSLIST* Skin) +int ske_AddDescriptorToSkinObjectList(LPSKINOBJECTDESCRIPTOR lpDescr, SKINOBJECTSLIST* Skin) { SKINOBJECTSLIST *sk; if (Skin) sk = Skin; else sk = &g_SkinObjectList; if (!sk) return 0; - if (mir_bool_strcmpi(lpDescr->szObjectID,"_HEADER_")) return 0; + if (mir_bool_strcmpi(lpDescr->szObjectID, "_HEADER_")) return 0; {//check if new object allready presents. - DWORD i=0; - for (i=0; i < sk->dwObjLPAlocated; i++) - if (!mir_strcmp(sk->pObjects[i].szObjectID,lpDescr->szObjectID)) return 0; + DWORD i = 0; + for (i = 0; i < sk->dwObjLPAlocated; i++) + if (!mir_strcmp(sk->pObjects[i].szObjectID, lpDescr->szObjectID)) return 0; } - if (sk->dwObjLPAlocated+1>sk->dwObjLPReserved) - { // Realocated list to add space for new object + if (sk->dwObjLPAlocated + 1 > sk->dwObjLPReserved) { // Realocated list to add space for new object - sk->pObjects = (SKINOBJECTDESCRIPTOR*)mir_realloc(sk->pObjects,sizeof(SKINOBJECTDESCRIPTOR)*(sk->dwObjLPReserved+1)/*alloc step*/); + sk->pObjects = (SKINOBJECTDESCRIPTOR*)mir_realloc(sk->pObjects, sizeof(SKINOBJECTDESCRIPTOR)*(sk->dwObjLPReserved + 1)/*alloc step*/); sk->dwObjLPReserved++; } { //filling new objects field @@ -1477,27 +1384,24 @@ int ske_AddDescriptorToSkinObjectList (LPSKINOBJECTDESCRIPTOR lpDescr, SKINOBJEC sk->pObjects[sk->dwObjLPAlocated].Data = NULL; sk->pObjects[sk->dwObjLPAlocated].szObjectID = mir_strdup(lpDescr->szObjectID); // sk->Objects[sk->dwObjLPAlocated].szObjectName = mir_strdup(lpDescr->szObjectName); - if (lpDescr->Data != NULL) - { //Copy defaults values - switch (lpDescr->bType) - { + if (lpDescr->Data != NULL) { //Copy defaults values + switch (lpDescr->bType) { case OT_GLYPHOBJECT: - { - GLYPHOBJECT * obdat; - GLYPHOBJECT * gl = (GLYPHOBJECT*)lpDescr->Data; - sk->pObjects[sk->dwObjLPAlocated].Data = mir_alloc(sizeof(GLYPHOBJECT)); - obdat = (GLYPHOBJECT*)sk->pObjects[sk->dwObjLPAlocated].Data; - memcpy(obdat,gl,sizeof(GLYPHOBJECT)); - if (gl->szFileName != NULL) - { - obdat->szFileName = mir_strdup(gl->szFileName); - mir_free_and_nil(gl->szFileName); - } - else obdat->szFileName = NULL; - - obdat->hGlyph = NULL; - break; + { + GLYPHOBJECT * obdat; + GLYPHOBJECT * gl = (GLYPHOBJECT*)lpDescr->Data; + sk->pObjects[sk->dwObjLPAlocated].Data = mir_alloc(sizeof(GLYPHOBJECT)); + obdat = (GLYPHOBJECT*)sk->pObjects[sk->dwObjLPAlocated].Data; + memcpy(obdat, gl, sizeof(GLYPHOBJECT)); + if (gl->szFileName != NULL) { + obdat->szFileName = mir_strdup(gl->szFileName); + mir_free_and_nil(gl->szFileName); } + else obdat->szFileName = NULL; + + obdat->hGlyph = NULL; + break; + } } } @@ -1510,29 +1414,27 @@ static LPSKINOBJECTDESCRIPTOR ske_FindObject(const char * szName, BYTE objType, { // DWORD i; SKINOBJECTSLIST* sk; - sk = (Skin == NULL)?(&g_SkinObjectList):Skin; - return skin_FindObjectByRequest((char *)szName,sk->pMaskList); + sk = (Skin == NULL) ? (&g_SkinObjectList) : Skin; + return skin_FindObjectByRequest((char *)szName, sk->pMaskList); } static LPSKINOBJECTDESCRIPTOR ske_FindObjectByMask(MODERNMASK *pModernMask, BYTE objType, SKINOBJECTSLIST* Skin) { // DWORD i; SKINOBJECTSLIST* sk; - sk = (Skin == NULL)?(&g_SkinObjectList):Skin; + sk = (Skin == NULL) ? (&g_SkinObjectList) : Skin; if (!sk->pMaskList) return NULL; - return skin_FindObjectByMask(pModernMask,sk->pMaskList); + return skin_FindObjectByMask(pModernMask, sk->pMaskList); } LPSKINOBJECTDESCRIPTOR ske_FindObjectByName(const char * szName, BYTE objType, SKINOBJECTSLIST* Skin) { DWORD i; SKINOBJECTSLIST* sk; - sk = (Skin == NULL)?(&g_SkinObjectList):Skin; - for (i=0; i < sk->dwObjLPAlocated; i++) - { - if (sk->pObjects[i].bType == objType || objType == OT_ANY) - { - if (!mir_strcmp(sk->pObjects[i].szObjectID,szName)) + sk = (Skin == NULL) ? (&g_SkinObjectList) : Skin; + for (i = 0; i < sk->dwObjLPAlocated; i++) { + if (sk->pObjects[i].bType == objType || objType == OT_ANY) { + if (!mir_strcmp(sk->pObjects[i].szObjectID, szName)) return &(sk->pObjects[i]); } } @@ -1552,13 +1454,12 @@ INT_PTR ske_Service_DrawGlyph(WPARAM wParam, LPARAM lParam) LPGLYPHOBJECT gl; if (!wParam) return -1; ske_LockSkin(); - __try - { + __try { preq = (LPSKINDRAWREQUEST)wParam; if (lParam) - pgl = ske_FindObjectByMask((MODERNMASK*)lParam, OT_GLYPHOBJECT,NULL); + pgl = ske_FindObjectByMask((MODERNMASK*)lParam, OT_GLYPHOBJECT, NULL); else - pgl = ske_FindObject(preq->szObjectID, OT_GLYPHOBJECT,NULL); + pgl = ske_FindObject(preq->szObjectID, OT_GLYPHOBJECT, NULL); if (pgl == NULL) return -1; if (pgl->Data == NULL) return -1; @@ -1569,78 +1470,71 @@ INT_PTR ske_Service_DrawGlyph(WPARAM wParam, LPARAM lParam) if (gl->hGlyph == NULL && gl->hGlyph != (HBITMAP)-1 && (iStyle == ST_IMAGE || iStyle == ST_FRAGMENT || iStyle == ST_SOLARIZE)) if (gl->szFileName) { - gl->hGlyph = ske_LoadGlyphImage( _A2T(gl->szFileName)); + gl->hGlyph = ske_LoadGlyphImage(_A2T(gl->szFileName)); if (gl->hGlyph) { - BITMAP bmp = {0}; - GetObject(gl->hGlyph,sizeof(BITMAP),&bmp); + BITMAP bmp = { 0 }; + GetObject(gl->hGlyph, sizeof(BITMAP), &bmp); gl->bmBitsPixel = (BYTE)bmp.bmBitsPixel; gl->bmHeight = bmp.bmHeight; gl->bmWidth = bmp.bmWidth; } else gl->hGlyph = (HBITMAP)-1; //invalid } - return ske_DrawSkinObject(preq,gl); + return ske_DrawSkinObject(preq, gl); } - __finally - { + __finally { ske_UnlockSkin(); } return -1; } -void ske_PreMultiplyChanells(HBITMAP hbmp,BYTE Mult) +void ske_PreMultiplyChanells(HBITMAP hbmp, BYTE Mult) { BITMAP bmp; BOOL flag = FALSE; BYTE * pBitmapBits; DWORD Len; - int bh,bw,y,x; + int bh, bw, y, x; GetObject(hbmp, sizeof(BITMAP), (LPSTR)&bmp); bh = bmp.bmHeight; bw = bmp.bmWidth; - Len = bh*bw*4; + Len = bh*bw * 4; flag = (bmp.bmBits == NULL); - if (flag) - { + if (flag) { pBitmapBits = (LPBYTE)malloc(Len); - GetBitmapBits(hbmp,Len,pBitmapBits); + GetBitmapBits(hbmp, Len, pBitmapBits); } else pBitmapBits = (BYTE*)bmp.bmBits; - for (y = 0; y < bh; ++y) - { + for (y = 0; y < bh; ++y) { BYTE *pPixel = pBitmapBits + bw * 4 * y; - for (x = 0; x < bw ; ++x) - { - if (Mult) - { - pPixel[0] = pPixel[0]*pPixel[3]/255; - pPixel[1] = pPixel[1]*pPixel[3]/255; - pPixel[2] = pPixel[2]*pPixel[3]/255; + for (x = 0; x < bw; ++x) { + if (Mult) { + pPixel[0] = pPixel[0] * pPixel[3] / 255; + pPixel[1] = pPixel[1] * pPixel[3] / 255; + pPixel[2] = pPixel[2] * pPixel[3] / 255; } - else - { + else { pPixel[3] = 255; } pPixel += 4; } } - if (flag) - { - Len = SetBitmapBits(hbmp,Len,pBitmapBits); - free (pBitmapBits); + if (flag) { + Len = SetBitmapBits(hbmp, Len, pBitmapBits); + free(pBitmapBits); } return; } int ske_GetFullFilename(TCHAR *buf, const TCHAR *file, TCHAR *skinfolder, BOOL madeAbsolute) { - TCHAR *SkinPlace = db_get_tsa(NULL,SKIN,"SkinFolder"); + TCHAR *SkinPlace = db_get_tsa(NULL, SKIN, "SkinFolder"); if (SkinPlace == NULL) - SkinPlace = mir_tstrdup( _T("\\Skin\\default")); + SkinPlace = mir_tstrdup(_T("\\Skin\\default")); TCHAR b2[MAX_PATH]; if (file[0] != '\\' && file[1] != ':') @@ -1650,7 +1544,7 @@ int ske_GetFullFilename(TCHAR *buf, const TCHAR *file, TCHAR *skinfolder, BOOL m if (madeAbsolute) { if (b2[0] == '\\' && b2[1] != '\\') - PathToAbsoluteT(b2+1, buf); + PathToAbsoluteT(b2 + 1, buf); else PathToAbsoluteT(b2, buf); } @@ -1668,66 +1562,57 @@ Major part of routines is from http://tfcduke.developpez.com/tutoriel/format/tga static BOOL ske_ReadTGAImageData(void * From, DWORD fromSize, BYTE * destBuf, DWORD bufSize, BOOL RLE) { BYTE * pos = destBuf; - BYTE * from = fromSize?(BYTE*)From:NULL; - FILE * fp = !fromSize?(FILE*)From:NULL; + BYTE * from = fromSize ? (BYTE*)From : NULL; + FILE * fp = !fromSize ? (FILE*)From : NULL; DWORD destCount = 0; DWORD fromCount = 0; - if (!RLE) - { + if (!RLE) { while (((from && fromCount < fromSize) || (fp && fromCount < bufSize)) - && (destCount < bufSize)) - { - BYTE r = from?from[fromCount++]:(BYTE)fgetc(fp); - BYTE g = from?from[fromCount++]:(BYTE)fgetc(fp); - BYTE b = from?from[fromCount++]:(BYTE)fgetc(fp); - BYTE a = from?from[fromCount++]:(BYTE)fgetc(fp); + && (destCount < bufSize)) { + BYTE r = from ? from[fromCount++] : (BYTE)fgetc(fp); + BYTE g = from ? from[fromCount++] : (BYTE)fgetc(fp); + BYTE b = from ? from[fromCount++] : (BYTE)fgetc(fp); + BYTE a = from ? from[fromCount++] : (BYTE)fgetc(fp); pos[destCount++] = r; pos[destCount++] = g; pos[destCount++] = b; pos[destCount++] = a; - if (destCount>bufSize) break; + if (destCount > bufSize) break; if (from) if (fromCount < fromSize) break; } } - else - { + else { BYTE rgba[4]; BYTE packet_header; BYTE *ptr = pos; BYTE size; int i; - while (ptr < pos + bufSize) - { + while (ptr < pos + bufSize) { /* read first byte */ - packet_header = from?from[fromCount]:(BYTE)fgetc(fp); + packet_header = from ? from[fromCount] : (BYTE)fgetc(fp); if (from) from++; size = 1 + (packet_header & 0x7f); - if (packet_header & 0x80) - { + if (packet_header & 0x80) { /* run-length packet */ - if (from) - { - *((DWORD*)rgba) = *((DWORD*)(from+fromCount)); + if (from) { + *((DWORD*)rgba) = *((DWORD*)(from + fromCount)); fromCount += 4; } - else fread (rgba, sizeof (BYTE), 4, fp); - for (i=0; i < size; ++i, ptr += 4) - { + else fread(rgba, sizeof(BYTE), 4, fp); + for (i = 0; i < size; ++i, ptr += 4) { ptr[2] = rgba[2]; ptr[1] = rgba[1]; ptr[0] = rgba[0]; ptr[3] = rgba[3]; } } - else - { /* not run-length packet */ - for (i=0; i < size; ++i, ptr += 4) - { - ptr[0] = from? from[fromCount++]:(BYTE)fgetc (fp); - ptr[1] = from? from[fromCount++]:(BYTE)fgetc (fp); - ptr[2] = from? from[fromCount++]:(BYTE)fgetc (fp); - ptr[3] = from? from[fromCount++]:(BYTE)fgetc (fp); + else { /* not run-length packet */ + for (i = 0; i < size; ++i, ptr += 4) { + ptr[0] = from ? from[fromCount++] : (BYTE)fgetc(fp); + ptr[1] = from ? from[fromCount++] : (BYTE)fgetc(fp); + ptr[2] = from ? from[fromCount++] : (BYTE)fgetc(fp); + ptr[3] = from ? from[fromCount++] : (BYTE)fgetc(fp); } } } @@ -1744,25 +1629,25 @@ static HBITMAP ske_LoadGlyphImage_TGA(const TCHAR *szFilename) if (!szFilename) return NULL; if (!wildcmpit(szFilename, _T("*\\*%.tga"))) { //Loading TGA image from file - FILE *fp = _tfopen (szFilename, _T("rb")); + FILE *fp = _tfopen(szFilename, _T("rb")); if (!fp) { TRACEVAR("error: couldn't open \"%s\"!\n", szFilename); return NULL; } /* read header */ - fread (&header, sizeof (tga_header_t), 1, fp); + fread(&header, sizeof(tga_header_t), 1, fp); if ((header.pixel_depth != 32) || ((header.image_type != 10) && (header.image_type != 2))) { fclose(fp); return NULL; } /*memory allocation */ - colormap = (BYTE*)malloc(header.width*header.height*4); + colormap = (BYTE*)malloc(header.width*header.height * 4); cx = header.width; cy = header.height; - fseek (fp, header.id_lenght, SEEK_CUR); - fseek (fp, header.cm_length, SEEK_CUR); - err = !ske_ReadTGAImageData((void*)fp, 0, colormap, header.width*header.height*4,header.image_type == 10); + fseek(fp, header.id_lenght, SEEK_CUR); + fseek(fp, header.cm_length, SEEK_CUR); + err = !ske_ReadTGAImageData((void*)fp, 0, colormap, header.width*header.height * 4, header.image_type == 10); fclose(fp); } else { @@ -1770,21 +1655,19 @@ static HBITMAP ske_LoadGlyphImage_TGA(const TCHAR *szFilename) DWORD size = 0; BYTE * mem; HGLOBAL hRes; - HRSRC hRSrc = FindResourceA(g_hInst,MAKEINTRESOURCEA(IDR_TGA_DEFAULT_SKIN),"TGA"); + HRSRC hRSrc = FindResourceA(g_hInst, MAKEINTRESOURCEA(IDR_TGA_DEFAULT_SKIN), "TGA"); if (!hRSrc) return NULL; - hRes = LoadResource(g_hInst,hRSrc); + hRes = LoadResource(g_hInst, hRSrc); if (!hRes) return NULL; - size = SizeofResource(g_hInst,hRSrc); - mem = (BYTE*) LockResource(hRes); - if (size>sizeof(header)) - { + size = SizeofResource(g_hInst, hRSrc); + mem = (BYTE*)LockResource(hRes); + if (size > sizeof(header)) { tga_header_t * header = (tga_header_t *)mem; - if (header->pixel_depth == 32 && (header->image_type == 2 || header->image_type == 10)) - { - colormap = (BYTE*)malloc(header->width*header->height*4); + if (header->pixel_depth == 32 && (header->image_type == 2 || header->image_type == 10)) { + colormap = (BYTE*)malloc(header->width*header->height * 4); cx = header->width; cy = header->height; - ske_ReadTGAImageData((void*)(mem+sizeof(tga_header_t)+header->id_lenght+header->cm_length), size-(sizeof(tga_header_t)+header->id_lenght+header->cm_length), colormap, cx*cy*4,header->image_type == 10); + ske_ReadTGAImageData((void*)(mem + sizeof(tga_header_t) + header->id_lenght + header->cm_length), size - (sizeof(tga_header_t) + header->id_lenght + header->cm_length), colormap, cx*cy * 4, header->image_type == 10); } } FreeResource(hRes); @@ -1792,9 +1675,9 @@ static HBITMAP ske_LoadGlyphImage_TGA(const TCHAR *szFilename) if (colormap) { //create dib section BYTE * pt; - HBITMAP hbmp = ske_CreateDIB32Point(cx,cy,(void**)&pt); + HBITMAP hbmp = ske_CreateDIB32Point(cx, cy, (void**)&pt); if (hbmp) - memcpy(pt,colormap,cx*cy*4); + memcpy(pt, colormap, cx*cy * 4); free(colormap); return hbmp; } @@ -1811,14 +1694,14 @@ static HBITMAP ske_LoadGlyphImage_Png2Dib(const TCHAR *tszFilename) BITMAPINFOHEADER* pDib; BYTE* pDibBits; - if (!ServiceExists( MS_PNG2DIB )) { - MessageBox( NULL, TranslateT("You need an image services plugin to process PNG images."), TranslateT("Error"), MB_OK ); + if (!ServiceExists(MS_PNG2DIB)) { + MessageBox(NULL, TranslateT("You need an image services plugin to process PNG images."), TranslateT("Error"), MB_OK); return (HBITMAP)NULL; } if ((hFile = CreateFile(tszFilename, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL)) != INVALID_HANDLE_VALUE) - if ((hMap = CreateFileMapping(hFile, NULL, PAGE_READONLY, 0, 0, NULL )) != NULL) - if ((ppMap = ( BYTE* )MapViewOfFile(hMap, FILE_MAP_READ, 0, 0, 0 )) != NULL) + if ((hMap = CreateFileMapping(hFile, NULL, PAGE_READONLY, 0, 0, NULL)) != NULL) + if ((ppMap = (BYTE*)MapViewOfFile(hMap, FILE_MAP_READ, 0, 0, 0)) != NULL) cbFileSize = GetFileSize(hFile, NULL); if (cbFileSize != 0) { @@ -1826,35 +1709,35 @@ static HBITMAP ske_LoadGlyphImage_Png2Dib(const TCHAR *tszFilename) param.pSource = ppMap; param.cbSourceSize = cbFileSize; param.pResult = &pDib; - if ( CallService(MS_PNG2DIB, 0, (LPARAM)¶m )) - pDibBits = ( BYTE* )( pDib+1 ); + if (CallService(MS_PNG2DIB, 0, (LPARAM)¶m)) + pDibBits = (BYTE*)(pDib + 1); else cbFileSize = 0; } - if ( ppMap != NULL ) UnmapViewOfFile( ppMap ); - if ( hMap != NULL ) CloseHandle( hMap ); - if ( hFile != NULL ) CloseHandle( hFile ); + if (ppMap != NULL) UnmapViewOfFile(ppMap); + if (hMap != NULL) CloseHandle(hMap); + if (hFile != NULL) CloseHandle(hFile); - if ( cbFileSize == 0 ) + if (cbFileSize == 0) return (HBITMAP)NULL; HBITMAP hBitmap; - BITMAPINFO* bi = ( BITMAPINFO* )pDib; + BITMAPINFO* bi = (BITMAPINFO*)pDib; BYTE *pt = (BYTE*)bi; pt += bi->bmiHeader.biSize; if (bi->bmiHeader.biBitCount != 32) { - HDC sDC = GetDC( NULL ); - hBitmap = CreateDIBitmap( sDC, pDib, CBM_INIT, pDibBits, bi, DIB_PAL_COLORS ); - SelectObject( sDC, hBitmap ); - DeleteDC( sDC ); + HDC sDC = GetDC(NULL); + hBitmap = CreateDIBitmap(sDC, pDib, CBM_INIT, pDibBits, bi, DIB_PAL_COLORS); + SelectObject(sDC, hBitmap); + DeleteDC(sDC); } else { BYTE *ptPixels = pt; - hBitmap = CreateDIBSection(NULL,bi, DIB_RGB_COLORS, (void **)&ptPixels, NULL, 0); - memcpy(ptPixels,pt,bi->bmiHeader.biSizeImage); + hBitmap = CreateDIBSection(NULL, bi, DIB_RGB_COLORS, (void **)&ptPixels, NULL, 0); + memcpy(ptPixels, pt, bi->bmiHeader.biSizeImage); } - GlobalFree( pDib ); + GlobalFree(pDib); return hBitmap; } @@ -1868,17 +1751,17 @@ static HBITMAP ske_LoadGlyphImageByDecoders(const TCHAR *tszFileName) BITMAP bmpInfo; { - int l = mir_tstrlen(tszFileName); - mir_tstrncpy(ext, tszFileName+(l-4),5); + size_t l = mir_tstrlen(tszFileName); + mir_tstrncpy(ext, tszFileName + (l - 4), 5); } - if (!_tcschr(tszFileName,'%') && !PathFileExists(tszFileName)) + if (!_tcschr(tszFileName, '%') && !PathFileExists(tszFileName)) return NULL; if (mir_bool_tstrcmpi(ext, _T(".tga"))) { hBitmap = ske_LoadGlyphImage_TGA(tszFileName); f = 1; } - else if ( ServiceExists("Image/Png2Dib") && mir_bool_tstrcmpi(ext, _T(".png"))) { + else if (ServiceExists("Image/Png2Dib") && mir_bool_tstrcmpi(ext, _T(".png"))) { hBitmap = ske_LoadGlyphImage_Png2Dib(tszFileName); GetObject(hBitmap, sizeof(BITMAP), &bmpInfo); f = (bmpInfo.bmBits != NULL); @@ -1890,23 +1773,23 @@ static HBITMAP ske_LoadGlyphImageByDecoders(const TCHAR *tszFileName) if (hBitmap) { GetObject(hBitmap, sizeof(BITMAP), &bmpInfo); if (bmpInfo.bmBitsPixel == 32) - ske_PreMultiplyChanells(hBitmap,f); + ske_PreMultiplyChanells(hBitmap, f); else { - HDC dc24,dc32; - HBITMAP hBitmap32,obmp24,obmp32; + HDC dc24, dc32; + HBITMAP hBitmap32, obmp24, obmp32; dc32 = CreateCompatibleDC(NULL); dc24 = CreateCompatibleDC(NULL); - hBitmap32 = ske_CreateDIB32(bmpInfo.bmWidth,bmpInfo.bmHeight); - obmp24 = (HBITMAP)SelectObject(dc24,hBitmap); - obmp32 = (HBITMAP)SelectObject(dc32,hBitmap32); - BitBlt(dc32, 0, 0, bmpInfo.bmWidth,bmpInfo.bmHeight,dc24, 0, 0, SRCCOPY); - SelectObject(dc24,obmp24); - SelectObject(dc32,obmp32); + hBitmap32 = ske_CreateDIB32(bmpInfo.bmWidth, bmpInfo.bmHeight); + obmp24 = (HBITMAP)SelectObject(dc24, hBitmap); + obmp32 = (HBITMAP)SelectObject(dc32, hBitmap32); + BitBlt(dc32, 0, 0, bmpInfo.bmWidth, bmpInfo.bmHeight, dc24, 0, 0, SRCCOPY); + SelectObject(dc24, obmp24); + SelectObject(dc32, obmp32); DeleteDC(dc24); DeleteDC(dc32); DeleteObject(hBitmap); hBitmap = hBitmap32; - ske_PreMultiplyChanells(hBitmap,0); + ske_PreMultiplyChanells(hBitmap, 0); } } return hBitmap; @@ -1925,11 +1808,11 @@ HBITMAP ske_LoadGlyphImage(const TCHAR *tszFileName) // try to find image in loaded DWORD i; HBITMAP hbmp; - TCHAR szFile [MAX_PATH] = {0}; + TCHAR szFile[MAX_PATH] = { 0 }; ske_GetFullFilename(szFile, tszFileName, g_SkinObjectList.szSkinPlace, TRUE); ske_LockSkin(); if (pLoadedImages) { - for (i=0; i < dwLoadedImagesCount; i++) { + for (i = 0; i < dwLoadedImagesCount; i++) { if (mir_bool_tstrcmpi(pLoadedImages[i].szFileName, szFile)) { pLoadedImages[i].dwLoadedTimes++; ske_UnlockSkin(); @@ -1939,18 +1822,15 @@ HBITMAP ske_LoadGlyphImage(const TCHAR *tszFileName) } // load new image hbmp = ske_skinLoadGlyphImage(szFile); - if (hbmp == NULL) - { + if (hbmp == NULL) { ske_UnlockSkin(); return NULL; } // add to loaded list - if (dwLoadedImagesCount+1>dwLoadedImagesAlocated) - { - pLoadedImages = (GLYPHIMAGE*)mir_realloc(pLoadedImages,sizeof(GLYPHIMAGE)*(dwLoadedImagesCount+1)); + if (dwLoadedImagesCount + 1>dwLoadedImagesAlocated) { + pLoadedImages = (GLYPHIMAGE*)mir_realloc(pLoadedImages, sizeof(GLYPHIMAGE)*(dwLoadedImagesCount + 1)); if (pLoadedImages) dwLoadedImagesAlocated++; - else - { + else { ske_UnlockSkin(); return NULL; } @@ -1966,15 +1846,15 @@ HBITMAP ske_LoadGlyphImage(const TCHAR *tszFileName) int ske_UnloadGlyphImage(HBITMAP hbmp) { DWORD i; - for (i = 0; i < dwLoadedImagesCount && pLoadedImages; i ++) { + for (i = 0; i < dwLoadedImagesCount && pLoadedImages; i++) { if (hbmp != pLoadedImages[i].hGlyph) continue; - pLoadedImages[i].dwLoadedTimes --; + pLoadedImages[i].dwLoadedTimes--; if (pLoadedImages[i].dwLoadedTimes == 0) { LPGLYPHIMAGE gl = &(pLoadedImages[i]); mir_free_and_nil(gl->szFileName); - memmove(&(pLoadedImages[i]), &(pLoadedImages[i+1]), sizeof(GLYPHIMAGE)*(dwLoadedImagesCount-i-1)); - dwLoadedImagesCount --; + memmove(&(pLoadedImages[i]), &(pLoadedImages[i + 1]), sizeof(GLYPHIMAGE)*(dwLoadedImagesCount - i - 1)); + dwLoadedImagesCount--; DeleteObject(hbmp); if (dwLoadedImagesCount == 0) { dwLoadedImagesAlocated = 0; @@ -1995,7 +1875,7 @@ int ske_UnloadSkin(SKINOBJECTSLIST * Skin) //clear font list if (gl_plSkinFonts && gl_plSkinFonts->realCount > 0) { - for (int i=0; i < gl_plSkinFonts->realCount; i++) { + for (int i = 0; i < gl_plSkinFonts->realCount; i++) { SKINFONT * sf = (SKINFONT *)gl_plSkinFonts->items[i]; if (sf) { mir_free(sf->szFontID); @@ -2011,41 +1891,37 @@ int ske_UnloadSkin(SKINOBJECTSLIST * Skin) if (Skin->pTextList) List_Destroy(Skin->pTextList); mir_free_and_nil(Skin->pTextList); ModernSkinButtonDeleteAll(); - if (Skin->dwObjLPAlocated == 0) { ske_UnlockSkin(); return 0;} - for (i=0; i < Skin->dwObjLPAlocated; i++) - { - switch(Skin->pObjects[i].bType) - { + if (Skin->dwObjLPAlocated == 0) { ske_UnlockSkin(); return 0; } + for (i = 0; i < Skin->dwObjLPAlocated; i++) { + switch (Skin->pObjects[i].bType) { case OT_GLYPHOBJECT: - { - GLYPHOBJECT * dt; - dt = (GLYPHOBJECT*)Skin->pObjects[i].Data; - if (dt->hGlyph && dt->hGlyph != (HBITMAP)-1) - ske_UnloadGlyphImage(dt->hGlyph); - dt->hGlyph = NULL; - mir_free_and_nil(dt->szFileName); - {// delete texts - int i; - if (dt->plTextList && dt->plTextList->realCount>0) - { - for (i=0; i < dt->plTextList->realCount; i++) - { - GLYPHTEXT * gt = (GLYPHTEXT *)dt->plTextList->items[i]; - if (gt) { - mir_free(gt->stText); - mir_free(gt->stValueText); - mir_free(gt->szFontID); - mir_free(gt->szGlyphTextID); - mir_free(gt); - } + { + GLYPHOBJECT * dt; + dt = (GLYPHOBJECT*)Skin->pObjects[i].Data; + if (dt->hGlyph && dt->hGlyph != (HBITMAP)-1) + ske_UnloadGlyphImage(dt->hGlyph); + dt->hGlyph = NULL; + mir_free_and_nil(dt->szFileName); + {// delete texts + int i; + if (dt->plTextList && dt->plTextList->realCount > 0) { + for (i = 0; i < dt->plTextList->realCount; i++) { + GLYPHTEXT * gt = (GLYPHTEXT *)dt->plTextList->items[i]; + if (gt) { + mir_free(gt->stText); + mir_free(gt->stValueText); + mir_free(gt->szFontID); + mir_free(gt->szGlyphTextID); + mir_free(gt); } - List_Destroy(dt->plTextList); - mir_free(dt->plTextList); } + List_Destroy(dt->plTextList); + mir_free(dt->plTextList); } - mir_free(dt); } - break; + mir_free(dt); + } + break; } mir_free_and_nil(Skin->pObjects[i].szObjectID); @@ -2062,20 +1938,19 @@ static void RegisterMaskByParce(const char * szSetting, char * szValue, SKINOBJE { size_t i, val_len = mir_strlen(szValue); - for (i = 0; i < val_len; i ++) + for (i = 0; i < val_len; i++) if (szValue[i] == ':') break; - if (i < val_len) - { + if (i < val_len) { char * Obj, *Mask; int res; DWORD ID = atoi(szSetting + 1); - Mask = szValue+i+1; - Obj = (char*)mir_alloc(i+1); - strncpy(Obj,szValue,i); + Mask = szValue + i + 1; + Obj = (char*)mir_alloc(i + 1); + strncpy(Obj, szValue, i); Obj[i] = '\0'; - res = AddStrModernMaskToList(ID,Mask,Obj,pSkin->pMaskList,pSkin); + res = AddStrModernMaskToList(ID, Mask, Obj, pSkin->pMaskList, pSkin); mir_free(Obj); } } @@ -2086,21 +1961,21 @@ static int ske_ProcessLoadindString(const char * szSetting, char *szValue) if (szSetting[0] == '$') RegisterObjectByParce((char *)szSetting, szValue); else if (szSetting[0] == '#') - RegisterButtonByParce((char *)szSetting,szValue); + RegisterButtonByParce((char *)szSetting, szValue); else if (szSetting[0] == '@') - RegisterMaskByParce((char *)szSetting, szValue, pCurrentSkin); /// + RegisterMaskByParce((char *)szSetting, szValue, pCurrentSkin); /// else if (szSetting[0] == 't') - ske_AddParseTextGlyphObject((char*)szSetting,szValue,pCurrentSkin); + ske_AddParseTextGlyphObject((char*)szSetting, szValue, pCurrentSkin); else if (szSetting[0] == 'f') - ske_AddParseSkinFont((char*)szSetting,szValue,pCurrentSkin); + ske_AddParseSkinFont((char*)szSetting, szValue, pCurrentSkin); else return 0; return 1; } -static int ske_enumdb_SkinObjectsProc (const char *szSetting,LPARAM lParam) +static int ske_enumdb_SkinObjectsProc(const char *szSetting, LPARAM lParam) { char *value; - value = db_get_sa(NULL,SKIN,szSetting); - ske_ProcessLoadindString(szSetting,value); + value = db_get_sa(NULL, SKIN, szSetting); + ske_ProcessLoadindString(szSetting, value); mir_free_and_nil(value); return 0; @@ -2108,49 +1983,43 @@ static int ske_enumdb_SkinObjectsProc (const char *szSetting,LPARAM lParam) static int ske_SortTextGlyphObjectFunc(void * first, void * second) { - return mir_strcmp(((GLYPHTEXT*)(((int*)first)[0]))->szGlyphTextID,((GLYPHTEXT*)(((int*)second)[0]))->szGlyphTextID); + return mir_strcmp(((GLYPHTEXT*)(((int*)first)[0]))->szGlyphTextID, ((GLYPHTEXT*)(((int*)second)[0]))->szGlyphTextID); } static void ske_LinkSkinObjects(SKINOBJECTSLIST * pObjectList) { DWORD i; // LINK Mask with objects - for (i=0; i < pObjectList->pMaskList->dwMaskCnt; i++) - { + for (i = 0; i < pObjectList->pMaskList->dwMaskCnt; i++) { MODERNMASK *mm = &(pObjectList->pMaskList->pl_Masks[i]); - void * pObject = (void*) ske_FindObjectByName(mm->szObjectName, OT_ANY, (SKINOBJECTSLIST*) pObjectList); + void * pObject = (void*)ske_FindObjectByName(mm->szObjectName, OT_ANY, (SKINOBJECTSLIST*)pObjectList); mir_free_and_nil(mm->szObjectName); mm->bObjectFound = TRUE; mm->pObject = pObject; } - if (pObjectList->pTextList) - { + if (pObjectList->pTextList) { int i; // LINK Text with objects - for (i=0; i < pObjectList->pTextList->realCount; i++) - { + for (i = 0; i < pObjectList->pTextList->realCount; i++) { GLYPHTEXT * glText; GLYPHOBJECT *globj = NULL; SKINOBJECTDESCRIPTOR * lpobj; glText = (GLYPHTEXT *)pObjectList->pTextList->items[i]; - lpobj = ske_FindObjectByName(glText->szObjectName,OT_GLYPHOBJECT, pObjectList); + lpobj = ske_FindObjectByName(glText->szObjectName, OT_GLYPHOBJECT, pObjectList); mir_free_and_nil(glText->szObjectName); if (lpobj) globj = (GLYPHOBJECT*)lpobj->Data; - if (globj) - { - if (!globj->plTextList) - { + if (globj) { + if (!globj->plTextList) { globj->plTextList = List_Create(0, 1); globj->plTextList->sortFunc = ske_SortTextGlyphObjectFunc; } - List_Insert(globj->plTextList,(void*)glText,globj->plTextList->realCount); - qsort(globj->plTextList->items,globj->plTextList->realCount,sizeof(void*),(int(*)(const void*, const void*))globj->plTextList->sortFunc); + List_Insert(globj->plTextList, (void*)glText, globj->plTextList->realCount); + qsort(globj->plTextList->items, globj->plTextList->realCount, sizeof(void*), (int(*)(const void*, const void*))globj->plTextList->sortFunc); pObjectList->pTextList->items[i] = NULL; } - else - { + else { GLYPHTEXT *gt = glText; if (gt) { mir_free(gt->stText); @@ -2170,19 +2039,20 @@ static int ske_GetSkinFromDB(char * szSection, SKINOBJECTSLIST * Skin) { if (Skin == NULL) return 0; ske_UnloadSkin(Skin); - g_CluiData.fDisableSkinEngine = db_get_b(NULL,"ModernData","DisableEngine", SETTING_DISABLESKIN_DEFAULT); + g_CluiData.fDisableSkinEngine = db_get_b(NULL, "ModernData", "DisableEngine", SETTING_DISABLESKIN_DEFAULT); //window borders if (g_CluiData.fDisableSkinEngine) { g_CluiData.LeftClientMargin = 0; g_CluiData.RightClientMargin = 0; g_CluiData.TopClientMargin = 0; g_CluiData.BottomClientMargin = 0; - } else { + } + else { //window borders - g_CluiData.LeftClientMargin = (int)db_get_b(NULL,"CLUI","LeftClientMargin",SETTING_LEFTCLIENTMARIGN_DEFAULT); - g_CluiData.RightClientMargin = (int)db_get_b(NULL,"CLUI","RightClientMargin",SETTING_RIGHTCLIENTMARIGN_DEFAULT); - g_CluiData.TopClientMargin = (int)db_get_b(NULL,"CLUI","TopClientMargin",SETTING_TOPCLIENTMARIGN_DEFAULT); - g_CluiData.BottomClientMargin = (int)db_get_b(NULL,"CLUI","BottomClientMargin",SETTING_BOTTOMCLIENTMARIGN_DEFAULT); + g_CluiData.LeftClientMargin = (int)db_get_b(NULL, "CLUI", "LeftClientMargin", SETTING_LEFTCLIENTMARIGN_DEFAULT); + g_CluiData.RightClientMargin = (int)db_get_b(NULL, "CLUI", "RightClientMargin", SETTING_RIGHTCLIENTMARIGN_DEFAULT); + g_CluiData.TopClientMargin = (int)db_get_b(NULL, "CLUI", "TopClientMargin", SETTING_TOPCLIENTMARIGN_DEFAULT); + g_CluiData.BottomClientMargin = (int)db_get_b(NULL, "CLUI", "BottomClientMargin", SETTING_BOTTOMCLIENTMARIGN_DEFAULT); } if (g_CluiData.fDisableSkinEngine) return 0; @@ -2190,14 +2060,13 @@ static int ske_GetSkinFromDB(char * szSection, SKINOBJECTSLIST * Skin) Skin->pMaskList = (LISTMODERNMASK*)mir_alloc(sizeof(LISTMODERNMASK)); memset(Skin->pMaskList, 0, sizeof(LISTMODERNMASK)); Skin->szSkinPlace = db_get_tsa(NULL, SKIN, "SkinFolder"); - if (!Skin->szSkinPlace || (_tcschr(Skin->szSkinPlace, '%') && !db_get_b(NULL,SKIN,"Modified",0))) - { + if (!Skin->szSkinPlace || (_tcschr(Skin->szSkinPlace, '%') && !db_get_b(NULL, SKIN, "Modified", 0))) { BOOL bOnlyObjects = FALSE; if (Skin->szSkinPlace && _tcschr(Skin->szSkinPlace, '%')) bOnlyObjects = TRUE; mir_free(Skin->szSkinPlace); - Skin->szSkinPlace = mir_tstrdup( _T("%Default%")); - ske_LoadSkinFromResource( bOnlyObjects ); + Skin->szSkinPlace = mir_tstrdup(_T("%Default%")); + ske_LoadSkinFromResource(bOnlyObjects); } //Load objects { @@ -2218,8 +2087,8 @@ static int ske_GetSkinFromDB(char * szSection, SKINOBJECTSLIST * Skin) //surrogate to be called from outside void ske_LoadSkinFromDB(void) { - ske_GetSkinFromDB(SKIN,&g_SkinObjectList); - g_CluiData.dwKeyColor = db_get_dw(NULL,"ModernSettings","KeyColor",(DWORD)SETTING_KEYCOLOR_DEFAULT); + ske_GetSkinFromDB(SKIN, &g_SkinObjectList); + g_CluiData.dwKeyColor = db_get_dw(NULL, "ModernSettings", "KeyColor", (DWORD)SETTING_KEYCOLOR_DEFAULT); } // @@ -2239,8 +2108,8 @@ static int ske_LoadSkinFromResource(BOOL bOnlyObjects) //Load data from ini file int ske_LoadSkinFromIniFile(TCHAR *szFileName, BOOL bOnlyObjects) { - if (_tcschr(szFileName,_T('%'))) - return ske_LoadSkinFromResource( bOnlyObjects ); + if (_tcschr(szFileName, _T('%'))) + return ske_LoadSkinFromResource(bOnlyObjects); IniParser parser(szFileName, bOnlyObjects ? IniParser::FLAG_ONLY_OBJECTS : IniParser::FLAG_WITH_SETTINGS); if (!parser.CheckOK()) @@ -2252,21 +2121,21 @@ int ske_LoadSkinFromIniFile(TCHAR *szFileName, BOOL bOnlyObjects) IniParser::GetSkinFolder(szFileName, skinFolder); PathToRelativeT(szFileName, skinFile); - db_set_ts(NULL,SKIN,"SkinFolder", skinFolder); - db_set_ts(NULL,SKIN,"SkinFile", skinFile); + db_set_ts(NULL, SKIN, "SkinFolder", skinFolder); + db_set_ts(NULL, SKIN, "SkinFile", skinFile); parser.Parse(IniParser::WriteStrToDb, 1); return 0; } -static int ske_enumdb_SkinSectionDeletionProc (const char *szSetting,LPARAM lParam) +static int ske_enumdb_SkinSectionDeletionProc(const char *szSetting, LPARAM lParam) { if (szSetting == NULL) return 0; nArrayLen++; pszSettingName = (char **)realloc(pszSettingName, nArrayLen*sizeof(char *)); - pszSettingName[nArrayLen-1] = _strdup(szSetting); + pszSettingName[nArrayLen - 1] = _strdup(szSetting); return 0; } @@ -2285,8 +2154,8 @@ static int ske_DeleteAllSettingInSection(char * SectionName) if (nArrayLen == 0) return 0; - for (int i=0; i < nArrayLen; i++) { - db_unset(0, SectionName,pszSettingName[i]); + for (int i = 0; i < nArrayLen; i++) { + db_unset(0, SectionName, pszSettingName[i]); free(pszSettingName[i]); } free(pszSettingName); @@ -2312,10 +2181,10 @@ static INT_PTR ske_Service_AlphaTextOut(WPARAM wParam, LPARAM lParam) if (!wParam) return 0; AlphaTextOutParams ap = *(AlphaTextOutParams*)wParam; - return ske_AlphaTextOut(ap.hDC,ap.lpString,ap.nCount,ap.lpRect,ap.format,ap.ARGBcolor); + return ske_AlphaTextOut(ap.hDC, ap.lpString, ap.nCount, ap.lpRect, ap.format, ap.ARGBcolor); } -static __inline void ske_SetMatrix( sbyte * matrix, +static __inline void ske_SetMatrix(sbyte * matrix, sbyte a, sbyte b, sbyte c, sbyte d, sbyte e, sbyte f, sbyte g, sbyte h, sbyte i) @@ -2391,10 +2260,10 @@ static bool ske_DrawTextEffect(BYTE* destPt, BYTE* maskPt, DWORD width, DWORD he sbyte *outbuf; sbyte *bufline, *buflineTop, *buflineMid; int sign = 0; - BYTE *maskline,*destline; - BYTE al,rl,gl,bl,ad,rd,gd,bd; + BYTE *maskline, *destline; + BYTE al, rl, gl, bl, ad, rd, gd, bd; int k = 0; - DWORD x,y; + DWORD x, y; sbyte *matrix; BYTE mcTopStart; BYTE mcBottomEnd; @@ -2411,79 +2280,71 @@ static bool ske_DrawTextEffect(BYTE* destPt, BYTE* maskPt, DWORD width, DWORD he buf = (sbyte*)malloc(width*height*sizeof(BYTE)); { matrix = effect->EffectMatrix.matrix; - mcTopStart = 2-effect->EffectMatrix.topEffect; - mcBottomEnd = 3+effect->EffectMatrix.bottomEffect; - mcLeftStart = 2-effect->EffectMatrix.leftEffect; - mcRightEnd = 3+effect->EffectMatrix.rightEffect; + mcTopStart = 2 - effect->EffectMatrix.topEffect; + mcBottomEnd = 3 + effect->EffectMatrix.bottomEffect; + mcLeftStart = 2 - effect->EffectMatrix.leftEffect; + mcRightEnd = 3 + effect->EffectMatrix.rightEffect; effectCount = effect->EffectMatrix.cycleCount; } - al = 255-((BYTE)(effect->EffectColor1>>24)); + al = 255 - ((BYTE)(effect->EffectColor1 >> 24)); rl = GetRValue(effect->EffectColor1); gl = GetGValue(effect->EffectColor1); bl = GetBValue(effect->EffectColor1); - ad = 255-((BYTE)(effect->EffectColor2>>24)); + ad = 255 - ((BYTE)(effect->EffectColor2 >> 24)); rd = GetRValue(effect->EffectColor2); gd = GetGValue(effect->EffectColor2); bd = GetBValue(effect->EffectColor2); //Fill buffer by mid values of image - for (y = 0; y < height; y++) - { - bufline = buf+y*width; - maskline = maskPt+((y*width) << 2); - for (x = 0; x < width; x++) - { - BYTE a = (sbyte)(DWORD)((maskline[0]+maskline[2]+maskline[1]+maskline[1])>>4); + for (y = 0; y < height; y++) { + bufline = buf + y*width; + maskline = maskPt + ((y*width) << 2); + for (x = 0; x < width; x++) { + BYTE a = (sbyte)(DWORD)((maskline[0] + maskline[2] + maskline[1] + maskline[1]) >> 4); *bufline = a; - if (a != 0) - { - minX = min((int)x,minX); - minY = min((int)y,minY); - maxX = max((int)x,maxX); - maxY = max((int)y,maxY); + if (a != 0) { + minX = min((int)x, minX); + minY = min((int)y, minY); + maxX = max((int)x, maxX); + maxY = max((int)y, maxY); } bufline++; maskline += 4; } } //Here perform effect on buffer and place results to outbuf - for (k = 0; k < (effectCount&0x7F); k++) - { - minX = max( 0, minX + mcLeftStart - 2 ); - minY = max( 0, minY + mcTopStart - 2 ); - maxX = min((int)width, maxX + mcRightEnd - 1 ); - maxY = min((int)height, maxY + mcBottomEnd - 1 ); + for (k = 0; k < (effectCount & 0x7F); k++) { + minX = max(0, minX + mcLeftStart - 2); + minY = max(0, minY + mcTopStart - 2); + maxX = min((int)width, maxX + mcRightEnd - 1); + maxY = min((int)height, maxY + mcBottomEnd - 1); outbuf = (sbyte*)malloc(width*height*sizeof(sbyte)); memset(outbuf, 0, width*height*sizeof(sbyte)); - for (y = (DWORD)minY; y < (DWORD)maxY; y++) - { + for (y = (DWORD)minY; y < (DWORD)maxY; y++) { int val; - bufline = outbuf+y*width+minX; - buflineMid = buf+y*width+minX; - for (x = (DWORD)minX; x < (DWORD)maxX; x++) - { - int matrixHor,matrixVer; + bufline = outbuf + y*width + minX; + buflineMid = buf + y*width + minX; + for (x = (DWORD)minX; x < (DWORD)maxX; x++) { + int matrixHor, matrixVer; val = 0; - for (matrixVer = mcTopStart; matrixVer < mcBottomEnd; matrixVer++) - { - int buflineStep = width*(matrixVer-2); - int as = y+matrixVer-2; + for (matrixVer = mcTopStart; matrixVer < mcBottomEnd; matrixVer++) { + int buflineStep = width*(matrixVer - 2); + int as = y + matrixVer - 2; sbyte * buflineTopS = NULL; - if (as >= 0 && (DWORD)as < height) buflineTopS = buflineMid+buflineStep; + if (as >= 0 && (DWORD)as < height) buflineTopS = buflineMid + buflineStep; - for (matrixHor = mcLeftStart; matrixHor < mcRightEnd;matrixHor++) - { + for (matrixHor = mcLeftStart; matrixHor < mcRightEnd; matrixHor++) { buflineTop = buflineTopS; - int a = x+matrixHor-2; - if (buflineTop && a >= 0 && (DWORD)a < width) buflineTop += matrixHor-2; + int a = x + matrixHor - 2; + if (buflineTop && a >= 0 && (DWORD)a < width) buflineTop += matrixHor - 2; else buflineTop = NULL; if (buflineTop) - val += ((*buflineTop)*matrix[matrixVer*5+matrixHor]); + val += ((*buflineTop)*matrix[matrixVer * 5 + matrixHor]); } } - val = (val+1)>>5; - *bufline = (sbyte)((val>127)?127:(val < -125)?-125:val); + val = (val + 1) >> 5; + *bufline = (sbyte)((val>127) ? 127 : (val < -125) ? -125 : val); bufline++; buflineMid++; } @@ -2492,31 +2353,30 @@ static bool ske_DrawTextEffect(BYTE* destPt, BYTE* maskPt, DWORD width, DWORD he buf = outbuf; } { - BYTE r1,b1,g1,a1; + BYTE r1, b1, g1, a1; b1 = bl; r1 = rl; g1 = gl; a1 = al; sign = 1; //perform out to dest - for (y = 0; y < height; y++) - { - bufline = buf+y*width; - destline = destPt+((y*width) << 2); - for (x = 0; x < width; x++) - { + for (y = 0; y < height; y++) { + bufline = buf + y*width; + destline = destPt + ((y*width) << 2); + for (x = 0; x < width; x++) { sbyte val = *bufline; - BYTE absVal = ((val < 0)?-val:val); + BYTE absVal = ((val < 0) ? -val : val); - if (val != 0) - { - if (val>0 && sign < 0) - { b1 = bl; r1 = rl; g1 = gl; a1 = al; sign = 1;} - else if (val < 0 && sign>0) - { b1 = bd; r1 = rd; g1 = gd; a1 = ad; sign = -1;} + if (val != 0) { + if (val>0 && sign < 0) { + b1 = bl; r1 = rl; g1 = gl; a1 = al; sign = 1; + } + else if (val < 0 && sign>0) { + b1 = bd; r1 = rd; g1 = gd; a1 = ad; sign = -1; + } - absVal = absVal*a1/255; + absVal = absVal*a1 / 255; - destline[0] = ((destline[0]*(128-absVal))+absVal*b1)>>7; - destline[1] = ((destline[1]*(128-absVal))+absVal*g1)>>7; - destline[2] = ((destline[2]*(128-absVal))+absVal*r1)>>7; - destline[3] += ((255-destline[3])*(a1*absVal))/32640; + destline[0] = ((destline[0] * (128 - absVal)) + absVal*b1) >> 7; + destline[1] = ((destline[1] * (128 - absVal)) + absVal*g1) >> 7; + destline[2] = ((destline[2] * (128 - absVal)) + absVal*r1) >> 7; + destline[3] += ((255 - destline[3])*(a1*absVal)) / 32640; } bufline++; destline += 4; @@ -2527,7 +2387,7 @@ static bool ske_DrawTextEffect(BYTE* destPt, BYTE* maskPt, DWORD width, DWORD he return false; } -static int ske_AlphaTextOut (HDC hDC, LPCTSTR lpString, int nCount, RECT *lpRect, UINT format, DWORD ARGBcolor) +static int ske_AlphaTextOut(HDC hDC, LPCTSTR lpString, int nCount, RECT *lpRect, UINT format, DWORD ARGBcolor) { if (!(lpString && lpRect)) return 0; @@ -2538,16 +2398,15 @@ static int ske_AlphaTextOut (HDC hDC, LPCTSTR lpString, int nCount, RECT *lpRect static WORD blueMulTbl[256]; // blue coefficient multiplication table static WORD greenMulTbl[256]; // green coefficient multiplication table static WORD redMulTbl[256]; // red coefficient multiplication table - if ( _tables_empty ) - { + if (_tables_empty) { // fill tables - double gammaCfPw = 1000 / (double)DBGetContactSettingRangedWord(NULL,"ModernData","AlphaTextOutGamma", 700, 1, 5000 ); - BYTE blueCf = db_get_b(NULL,"ModernData","AlphaTextOutBlueCorrection", 28 ); - BYTE redCf = db_get_b(NULL,"ModernData","AlphaTextOutRed Correction", 77 ); - BYTE greenCf = db_get_b(NULL,"ModernData","AlphaTextOutGreen Correction", 151 ); + double gammaCfPw = 1000 / (double)DBGetContactSettingRangedWord(NULL, "ModernData", "AlphaTextOutGamma", 700, 1, 5000); + BYTE blueCf = db_get_b(NULL, "ModernData", "AlphaTextOutBlueCorrection", 28); + BYTE redCf = db_get_b(NULL, "ModernData", "AlphaTextOutRed Correction", 77); + BYTE greenCf = db_get_b(NULL, "ModernData", "AlphaTextOutGreen Correction", 151); - for ( int i=0; i < 256; i++ ) { - gammaTbl[i] = (BYTE)( 255 * pow((double)i / 255, gammaCfPw )); + for (int i = 0; i < 256; i++) { + gammaTbl[i] = (BYTE)(255 * pow((double)i / 255, gammaCfPw)); blueMulTbl[i] = i * blueCf; redMulTbl[i] = i * redCf; greenMulTbl[i] = i * greenCf; @@ -2556,7 +2415,7 @@ static int ske_AlphaTextOut (HDC hDC, LPCTSTR lpString, int nCount, RECT *lpRect // Calc len of input string if (nCount == -1) - nCount = mir_tstrlen(lpString); + nCount = (int)mir_tstrlen(lpString); // retrieve destination bitmap bits HBITMAP hDestBitmap = (HBITMAP)GetCurrentObject(hDC, OBJ_BITMAP); @@ -2567,8 +2426,8 @@ static int ske_AlphaTextOut (HDC hDC, LPCTSTR lpString, int nCount, RECT *lpRect BYTE *pDestBits = NULL; if (bmpDest.bmBits == NULL) { destHasNotDIB = TRUE; - pDestBits = (BYTE*) malloc ( bmpDest.bmHeight * bmpDest.bmWidthBytes ); - GetBitmapBits( hDestBitmap, bmpDest.bmHeight*bmpDest.bmWidthBytes, pDestBits ); + pDestBits = (BYTE*)malloc(bmpDest.bmHeight * bmpDest.bmWidthBytes); + GetBitmapBits(hDestBitmap, bmpDest.bmHeight*bmpDest.bmWidthBytes, pDestBits); } else pDestBits = (BYTE*)bmpDest.bmBits; @@ -2589,7 +2448,7 @@ static int ske_AlphaTextOut (HDC hDC, LPCTSTR lpString, int nCount, RECT *lpRect return 0; SIZE textSize; - GetTextExtentPoint32( hOffscreenDC, lpString, nCount, &textSize ); + GetTextExtentPoint32(hOffscreenDC, lpString, nCount, &textSize); LPCTSTR lpWorkString = lpString; BOOL bNeedFreeWorkString = FALSE; @@ -2598,7 +2457,7 @@ static int ske_AlphaTextOut (HDC hDC, LPCTSTR lpString, int nCount, RECT *lpRect if ((format & DT_END_ELLIPSIS) && textSize.cx > workRectWidth) { // Calc geometric width of ellipsis SIZE szEllipsis; - GetTextExtentPoint32A(hOffscreenDC,"...",3,&szEllipsis); + GetTextExtentPoint32A(hOffscreenDC, "...", 3, &szEllipsis); szEllipsis.cx++; // CORRECTION: some width correction // Calc count of visible chars @@ -2610,10 +2469,10 @@ static int ske_AlphaTextOut (HDC hDC, LPCTSTR lpString, int nCount, RECT *lpRect // replace end of string by elipsis bNeedFreeWorkString = TRUE; - lpWorkString = (TCHAR*) malloc(( visibleCharCount + 4) * sizeof(TCHAR)); + lpWorkString = (TCHAR*)malloc((visibleCharCount + 4) * sizeof(TCHAR)); - memcpy((void*) lpWorkString, lpString, visibleCharCount * sizeof(TCHAR)); - memcpy((void*) ( lpWorkString + visibleCharCount ), _T("..."), 4 * sizeof(TCHAR)); // 3 + 1 + memcpy((void*)lpWorkString, lpString, visibleCharCount * sizeof(TCHAR)); + memcpy((void*)(lpWorkString + visibleCharCount), _T("..."), 4 * sizeof(TCHAR)); // 3 + 1 nCount = visibleCharCount + 3; } @@ -2625,10 +2484,10 @@ static int ske_AlphaTextOut (HDC hDC, LPCTSTR lpString, int nCount, RECT *lpRect int drx = 0; // x-axis offset of draw point if (workRectWidth > textSize.cx) { - if ( format & ( DT_RIGHT | DT_RTLREADING )) + if (format & (DT_RIGHT | DT_RTLREADING)) drx = workRectWidth - textSize.cx; - else if ( format & DT_CENTER ) - drx = ( workRectWidth - textSize.cx ) >> 1; + else if (format & DT_CENTER) + drx = (workRectWidth - textSize.cx) >> 1; } else textSize.cx = workRectWidth; @@ -2652,12 +2511,12 @@ static int ske_AlphaTextOut (HDC hDC, LPCTSTR lpString, int nCount, RECT *lpRect BYTE *bits = NULL; HBITMAP hbmp = ske_CreateDIB32Point(textSize.cx, textSize.cy, (void**)&bits); if (bits != NULL) { - HBITMAP holdbmp = (HBITMAP)SelectObject( hOffscreenDC, hbmp ); + HBITMAP holdbmp = (HBITMAP)SelectObject(hOffscreenDC, hbmp); //Create buffer bitmap image for temp text BYTE *bufbits = NULL; HBITMAP bufbmp = ske_CreateDIB32Point(textSize.cx, textSize.cy, (void**)&bufbits); - if ( bufbits != NULL ) { + if (bufbits != NULL) { HDC bufDC = CreateCompatibleDC(hDC); HBITMAP bufoldbmp = (HBITMAP)SelectObject(bufDC, bufbmp); HFONT hOldBufFont = (HFONT)SelectObject(bufDC, hFont); @@ -2688,40 +2547,40 @@ static int ske_AlphaTextOut (HDC hDC, LPCTSTR lpString, int nCount, RECT *lpRect BYTE *pix; BYTE *bufpix; - BYTE al = 255 - ((BYTE)( ARGBcolor >> 24 )); - BYTE r = GetRValue( ARGBcolor ); - BYTE g = GetGValue( ARGBcolor ); - BYTE b = GetBValue( ARGBcolor ); + BYTE al = 255 - ((BYTE)(ARGBcolor >> 24)); + BYTE r = GetRValue(ARGBcolor); + BYTE g = GetGValue(ARGBcolor); + BYTE b = GetBValue(ARGBcolor); for (DWORD y = 2; y < heigh - 2; y++) { int lineBytes = y * (width << 2); pDestScanLine = bits + lineBytes; - pBufScanLine = bufbits + lineBytes; + pBufScanLine = bufbits + lineBytes; for (DWORD x = 2; x < width - 2; x++) { - pix = pDestScanLine + ( x << 2 ); - bufpix = pBufScanLine + ( x << 2 ); + pix = pDestScanLine + (x << 2); + bufpix = pBufScanLine + (x << 2); // Monochromatic - BYTE bx = gammaTbl[ bufpix[0] ]; - BYTE gx = gammaTbl[ bufpix[1] ]; - BYTE rx = gammaTbl[ bufpix[2] ]; - - if ( al != 255 ) { - bx *= al/255; - gx *= al/255; - rx *= al/255; + BYTE bx = gammaTbl[bufpix[0]]; + BYTE gx = gammaTbl[bufpix[1]]; + BYTE rx = gammaTbl[bufpix[2]]; + + if (al != 255) { + bx *= al / 255; + gx *= al / 255; + rx *= al / 255; } - BYTE ax = (BYTE)(( (DWORD)rx*77 + (DWORD)gx * 151 + (DWORD)bx *28 + 128 ) / 256 ); + BYTE ax = (BYTE)(((DWORD)rx * 77 + (DWORD)gx * 151 + (DWORD)bx * 28 + 128) / 256); if (ax) { //Normalize components to gray - BYTE axx = 255 - (( r + g + b ) >> 2 ) ; // Coefficient of grayance, more white font - more gray edges + BYTE axx = 255 - ((r + g + b) >> 2); // Coefficient of grayance, more white font - more gray edges WORD atx = ax * (255 - axx); - bx = ( atx + bx * axx )/255; - gx = ( atx + gx * axx )/255; - rx = ( atx + rx * axx )/255; + bx = (atx + bx * axx) / 255; + gx = (atx + gx * axx) / 255; + rx = (atx + rx * axx) / 255; short brx = (short)((b - pix[0])*bx / 255); short grx = (short)((g - pix[1])*gx / 255); @@ -2730,7 +2589,7 @@ static int ske_AlphaTextOut (HDC hDC, LPCTSTR lpString, int nCount, RECT *lpRect pix[0] += brx; pix[1] += grx; pix[2] += rrx; - pix[3] = (BYTE)(ax+(BYTE)(255-ax)*pix[3]/255); + pix[3] = (BYTE)(ax + (BYTE)(255 - ax)*pix[3] / 255); } } } @@ -2762,7 +2621,7 @@ static int ske_AlphaTextOut (HDC hDC, LPCTSTR lpString, int nCount, RECT *lpRect return 0; } -static int ske_DrawTextWithEffectWorker( HDC hdc, LPCTSTR lpString, int nCount, RECT *lpRect, UINT format, MODERNFONTEFFECT * effect ) +static int ske_DrawTextWithEffectWorker(HDC hdc, LPCTSTR lpString, int nCount, RECT *lpRect, UINT format, MODERNFONTEFFECT * effect) { if (format & DT_CALCRECT) return DrawText(hdc, lpString, nCount, lpRect, format); @@ -2812,11 +2671,11 @@ BOOL ske_DrawText(HDC hdc, LPCTSTR lpString, int nCount, RECT *lpRect, UINT form HICON ske_ImageList_GetIcon(HIMAGELIST himl, int i, UINT fStyle) { - IMAGEINFO imi = {0}; - BITMAP bm = {0}; + IMAGEINFO imi = { 0 }; + BITMAP bm = { 0 }; if (i != -1) { - ImageList_GetImageInfo(himl,i,&imi); - GetObject(imi.hbmImage,sizeof(bm),&bm); + ImageList_GetImageInfo(himl, i, &imi); + GetObject(imi.hbmImage, sizeof(bm), &bm); if (bm.bmBitsPixel == 32) //stupid bug of Microsoft // Icons bitmaps are not premultiplied // So Imagelist_AddIcon - premultiply alpha @@ -2829,7 +2688,7 @@ HICON ske_ImageList_GetIcon(HIMAGELIST himl, int i, UINT fStyle) BYTE *bits = (BYTE*)bm.bmBits; if (!bits) { bits = (BYTE*)malloc(bm.bmWidthBytes*bm.bmHeight); - GetBitmapBits(imi.hbmImage,bm.bmWidthBytes*bm.bmHeight,bits); + GetBitmapBits(imi.hbmImage, bm.bmWidthBytes*bm.bmHeight, bits); } int wb = ((imi.rcImage.right - imi.rcImage.left)*bm.bmBitsPixel >> 3); @@ -2848,8 +2707,7 @@ HICON ske_ImageList_GetIcon(HIMAGELIST himl, int i, UINT fStyle) BYTE r = (BYTE)((val & 0xFF0000) >> 16); BYTE g = (BYTE)((val & 0xFF00) >> 8); BYTE b = (BYTE)(val & 0xFF); - if (a < r || a < g || a < b) - { + if (a < r || a < g || a < b) { a = max(max(r, g), b); val = a << 24 | r << 16 | g << 8 | b; *c = val; @@ -2866,18 +2724,18 @@ HICON ske_ImageList_GetIcon(HIMAGELIST himl, int i, UINT fStyle) } } } - return ImageList_GetIcon(himl,i,ILD_NORMAL); + return ImageList_GetIcon(himl, i, ILD_NORMAL); } //////////////////////////////////////////////////////////////////////////// // This creates new dib image from Imagelist icon ready to alphablend it -HBITMAP ske_ExtractDIBFromImagelistIcon( HIMAGELIST himl,int index, int * outWidth, int * outHeight) +HBITMAP ske_ExtractDIBFromImagelistIcon(HIMAGELIST himl, int index, int * outWidth, int * outHeight) { return NULL; } -BOOL ske_ImageList_DrawEx( HIMAGELIST himl,int i,HDC hdcDst,int x,int y,int dx,int dy,COLORREF rgbBk,COLORREF rgbFg,UINT fStyle) +BOOL ske_ImageList_DrawEx(HIMAGELIST himl, int i, HDC hdcDst, int x, int y, int dx, int dy, COLORREF rgbBk, COLORREF rgbFg, UINT fStyle) { //the routine to directly draw icon from image list without creating icon from there - should be some faster if (i < 0) @@ -2906,23 +2764,23 @@ static INT_PTR ske_Service_DrawIconEx(WPARAM wParam, LPARAM lParam) if (!p) return 0; - return ske_DrawIconEx(p->hdc,p->xLeft,p->yTop,p->hIcon,p->cxWidth,p->cyWidth,p->istepIfAniCur,p->hbrFlickerFreeDraw,p->diFlags); + return ske_DrawIconEx(p->hdc, p->xLeft, p->yTop, p->hIcon, p->cxWidth, p->cyWidth, p->istepIfAniCur, p->hbrFlickerFreeDraw, p->diFlags); } -BOOL ske_DrawIconEx(HDC hdcDst,int xLeft,int yTop,HICON hIcon,int cxWidth,int cyWidth, UINT istepIfAniCur, HBRUSH hbrFlickerFreeDraw, UINT diFlags) +BOOL ske_DrawIconEx(HDC hdcDst, int xLeft, int yTop, HICON hIcon, int cxWidth, int cyWidth, UINT istepIfAniCur, HBRUSH hbrFlickerFreeDraw, UINT diFlags) { ICONINFO ici; - BYTE alpha = (BYTE)((diFlags&0xFF000000)>>24); + BYTE alpha = (BYTE)((diFlags & 0xFF000000) >> 24); HDC imDC; - HBITMAP oldBmp, imBmp,tBmp; - BITMAP imbt,immaskbt; + HBITMAP oldBmp, imBmp, tBmp; + BITMAP imbt, immaskbt; BYTE * imbits; BYTE * imimagbits; BYTE * immaskbits; - DWORD cx,cy,icy; + DWORD cx, cy, icy; BYTE *t1, *t2, *t3; BOOL NoDIBImage = FALSE; @@ -2931,21 +2789,21 @@ BOOL ske_DrawIconEx(HDC hdcDst,int xLeft,int yTop,HICON hIcon,int cxWidth,int cy BYTE no32bit = FALSE; BYTE noMirrorMask = FALSE; BYTE hasalpha = FALSE; - alpha = alpha?alpha:255; + alpha = alpha ? alpha : 255; - if ( g_CluiData.fDisableSkinEngine && !(diFlags&0x80)) - return DrawIconEx(hdcDst,xLeft,yTop,hIcon,cxWidth,cyWidth,istepIfAniCur,hbrFlickerFreeDraw,diFlags&0xFFFF7F); + if (g_CluiData.fDisableSkinEngine && !(diFlags & 0x80)) + return DrawIconEx(hdcDst, xLeft, yTop, hIcon, cxWidth, cyWidth, istepIfAniCur, hbrFlickerFreeDraw, diFlags & 0xFFFF7F); if (!GetIconInfo(hIcon, &ici)) return 0; - GetObject(ici.hbmColor,sizeof(BITMAP),&imbt); + GetObject(ici.hbmColor, sizeof(BITMAP), &imbt); if (imbt.bmWidth*imbt.bmHeight == 0) { DeleteObject(ici.hbmColor); DeleteObject(ici.hbmMask); return 0; } - GetObject(ici.hbmMask,sizeof(BITMAP),&immaskbt); + GetObject(ici.hbmMask, sizeof(BITMAP), &immaskbt); cy = imbt.bmHeight; if (imbt.bmBitsPixel != 32) { @@ -3001,13 +2859,13 @@ BOOL ske_DrawIconEx(HDC hdcDst,int xLeft,int yTop,HICON hIcon,int cxWidth,int cy for (y = top; (y < bottom) && !hasalpha; y++) { t1 = imimagbits + (cy - y - 1)*mwb2; for (x = 0; (x < right) && !hasalpha; x++) - hasalpha |= (*(t1+(x << 2)+3) != 0); + hasalpha |= (*(t1 + (x << 2) + 3) != 0); } for (y = 0; y < (int)icy; y++) { - t1 = imimagbits+(h-y-1-top)*mwb2; - t2 = imbits+(!no32bit?y:(icy-y-1))*mwb2; - t3 = immaskbits+(noMirrorMask?y:(h-y-1-top))*mwb; + t1 = imimagbits + (h - y - 1 - top)*mwb2; + t2 = imbits + (!no32bit ? y : (icy - y - 1))*mwb2; + t3 = immaskbits + (noMirrorMask ? y : (h - y - 1 - top))*mwb; for (x = 0; x < right; x++) { BYTE mask = 0; BYTE a = 0; @@ -3023,16 +2881,16 @@ BOOL ske_DrawIconEx(HDC hdcDst,int xLeft,int yTop,HICON hIcon,int cxWidth,int cy continue; } - if (((BYTE*)src)[3]>0 ) + if (((BYTE*)src)[3]>0) a = ((BYTE*)src)[3]; else - a = 0; + a = 0; } else if (hasalpha || hasmask) - a = (((BYTE*)src)[3]>0?((BYTE*)src)[3]:255); + a = (((BYTE*)src)[3] > 0 ? ((BYTE*)src)[3] : 255); else if (!hasalpha && !hasmask) a = 255; - else { *dest = 0; continue; } + else { *dest = 0; continue; } } if (a > 0) { ((BYTE*)dest)[3] = a; @@ -3075,10 +2933,10 @@ int ske_PrepareImageButDontUpdateIt(RECT *r) int ske_RedrawCompleteWindow() { if (g_CluiData.fLayered) { - ske_DrawNonFramedObjects(TRUE,0); + ske_DrawNonFramedObjects(TRUE, 0); CallService(MS_SKINENG_INVALIDATEFRAMEIMAGE, 0, 0); } - else RedrawWindow(pcli->hwndContactList,NULL,NULL,RDW_ALLCHILDREN|RDW_ERASE|RDW_INVALIDATE|RDW_FRAME); + else RedrawWindow(pcli->hwndContactList, NULL, NULL, RDW_ALLCHILDREN | RDW_ERASE | RDW_INVALIDATE | RDW_FRAME); return 0; } @@ -3090,7 +2948,7 @@ int ske_RedrawCompleteWindow() static INT_PTR ske_Service_UpdateFrameImage(WPARAM wParam, LPARAM lParam) // Immideately recall paint routines for frame and refresh image { - if ( MirandaLoading()) + if (MirandaLoading()) return 0; RECT wnd; @@ -3098,17 +2956,17 @@ static INT_PTR ske_Service_UpdateFrameImage(WPARAM wParam, LPARAM lParam) BOOL NoCancelPost = 0; BOOL IsAnyQueued = 0; if (!g_CluiData.mutexOnEdgeSizing) - GetWindowRect(pcli->hwndContactList,&wnd); + GetWindowRect(pcli->hwndContactList, &wnd); else wnd = g_rcEdgeSizingRect; if (!g_CluiData.fLayered) { - RedrawWindow((HWND)wParam,NULL,NULL,RDW_UPDATENOW|RDW_ERASE|RDW_INVALIDATE|RDW_FRAME); + RedrawWindow((HWND)wParam, NULL, NULL, RDW_UPDATENOW | RDW_ERASE | RDW_INVALIDATE | RDW_FRAME); return 0; } if (g_pCachedWindow == NULL) ske_ValidateFrameImageProc(&wnd); - else if (g_pCachedWindow->Width != wnd.right-wnd.left || g_pCachedWindow->Height != wnd.bottom-wnd.top) ske_ValidateFrameImageProc(&wnd); + else if (g_pCachedWindow->Width != wnd.right - wnd.left || g_pCachedWindow->Height != wnd.bottom - wnd.top) ske_ValidateFrameImageProc(&wnd); else if (wParam == 0) ske_ValidateFrameImageProc(&wnd); else { // all Ok Update Single Frame // TO BE LOCKED OR PROXIED @@ -3185,137 +3043,130 @@ static INT_PTR ske_Service_InvalidateFrameImage(WPARAM wParam, LPARAM lParam) else Sync(QueueAllFramesUpdating, 1); if (!flag_bUpdateQueued || g_flag_bPostWasCanceled) - if (PostMessage(pcli->hwndContactList, UM_UPDATE, 0, 0)) { - flag_bUpdateQueued = 1; - g_flag_bPostWasCanceled = 0; - } + if (PostMessage(pcli->hwndContactList, UM_UPDATE, 0, 0)) { + flag_bUpdateQueued = 1; + g_flag_bPostWasCanceled = 0; + } return 1; } static int ske_ValidateSingleFrameImage(FRAMEWND * Frame, BOOL SkipBkgBlitting) // Calling frame paint proc { - if (!g_pCachedWindow) { TRACE("ske_ValidateSingleFrameImage calling without cached\n"); return 0;} - if (Frame->hWnd == (HWND)-1 && !Frame->PaintCallbackProc) { TRACE("ske_ValidateSingleFrameImage calling without FrameProc\n"); return 0;} + if (!g_pCachedWindow) { TRACE("ske_ValidateSingleFrameImage calling without cached\n"); return 0; } + if (Frame->hWnd == (HWND)-1 && !Frame->PaintCallbackProc) { TRACE("ske_ValidateSingleFrameImage calling without FrameProc\n"); return 0; } // if ok update image HDC hdc; - HBITMAP o,n; - RECT rcPaint,wnd; - RECT ru = {0}; - int w,h,x,y; - int w1,h1,x1,y1; + HBITMAP o, n; + RECT rcPaint, wnd; + RECT ru = { 0 }; + int w, h, x, y; + int w1, h1, x1, y1; - CLUI_SizingGetWindowRect(pcli->hwndContactList,&wnd); + CLUI_SizingGetWindowRect(pcli->hwndContactList, &wnd); rcPaint = Frame->wndSize; { - int dx,dy,bx,by; - if (g_CluiData.mutexOnEdgeSizing) - { - dx = rcPaint.left-wnd.left; - dy = rcPaint.top-wnd.top; - bx = rcPaint.right-wnd.right; - by = rcPaint.bottom-wnd.bottom; + int dx, dy, bx, by; + if (g_CluiData.mutexOnEdgeSizing) { + dx = rcPaint.left - wnd.left; + dy = rcPaint.top - wnd.top; + bx = rcPaint.right - wnd.right; + by = rcPaint.bottom - wnd.bottom; wnd = g_rcEdgeSizingRect; - rcPaint.left = wnd.left+dx; - rcPaint.top = wnd.top+dy; - rcPaint.right = wnd.right+bx; - rcPaint.bottom = wnd.bottom+by; + rcPaint.left = wnd.left + dx; + rcPaint.top = wnd.top + dy; + rcPaint.right = wnd.right + bx; + rcPaint.bottom = wnd.bottom + by; } } //OffsetRect(&rcPaint,-wnd.left,-wnd.top); - w = rcPaint.right-rcPaint.left; - h = rcPaint.bottom-rcPaint.top; - if (w <= 0 || h <= 0) - { + w = rcPaint.right - rcPaint.left; + h = rcPaint.bottom - rcPaint.top; + if (w <= 0 || h <= 0) { TRACE("Frame size smaller than 0\n"); return 0; } x = rcPaint.left; y = rcPaint.top; hdc = CreateCompatibleDC(g_pCachedWindow->hImageDC); - n = ske_CreateDIB32(w,h); - o = (HBITMAP)SelectObject(hdc,n); + n = ske_CreateDIB32(w, h); + o = (HBITMAP)SelectObject(hdc, n); { - if (Frame->UpdateRgn && !SkipBkgBlitting) - { - GetRgnBox(Frame->UpdateRgn,&ru); + if (Frame->UpdateRgn && !SkipBkgBlitting) { + GetRgnBox(Frame->UpdateRgn, &ru); { RECT rc; - GetClientRect(Frame->hWnd,&rc); + GetClientRect(Frame->hWnd, &rc); if (ru.top < 0) ru.top = 0; if (ru.left < 0) ru.left = 0; - if (ru.right>rc.right) ru.right = rc.right; - if (ru.bottom>rc.bottom) ru.bottom = rc.bottom; + if (ru.right > rc.right) ru.right = rc.right; + if (ru.bottom > rc.bottom) ru.bottom = rc.bottom; } - if (!IsRectEmpty(&ru)) - { + if (!IsRectEmpty(&ru)) { x1 = ru.left; y1 = ru.top; - w1 = ru.right-ru.left; - h1 = ru.bottom-ru.top; + w1 = ru.right - ru.left; + h1 = ru.bottom - ru.top; + } + else { + x1 = 0; y1 = 0; w1 = w; h1 = h; } - else - {x1 = 0; y1 = 0; w1 = w; h1 = h;} // copy image at hdc if (SkipBkgBlitting) //image already at foreground { - BitBlt(hdc,x1,y1,w1,h1,g_pCachedWindow->hImageDC,x+x1,y+y1,SRCCOPY); + BitBlt(hdc, x1, y1, w1, h1, g_pCachedWindow->hImageDC, x + x1, y + y1, SRCCOPY); } - else - { - BitBlt(hdc,x1,y1,w1,h1,g_pCachedWindow->hBackDC,x+x1,y+y1,SRCCOPY); + else { + BitBlt(hdc, x1, y1, w1, h1, g_pCachedWindow->hBackDC, x + x1, y + y1, SRCCOPY); } - Frame->PaintCallbackProc(Frame->hWnd,hdc,&ru,Frame->UpdateRgn, Frame->dwFlags,Frame->PaintData); + Frame->PaintCallbackProc(Frame->hWnd, hdc, &ru, Frame->UpdateRgn, Frame->dwFlags, Frame->PaintData); } - else - { - HRGN rgnUpdate; + else { + HRGN rgnUpdate; RECT r; - GetClientRect(Frame->hWnd,&r); - rgnUpdate = CreateRectRgn(r.left,r.top,r.right,r.bottom); + GetClientRect(Frame->hWnd, &r); + rgnUpdate = CreateRectRgn(r.left, r.top, r.right, r.bottom); ru = r; - if (!IsRectEmpty(&ru)) - { + if (!IsRectEmpty(&ru)) { x1 = ru.left; y1 = ru.top; - w1 = ru.right-ru.left; - h1 = ru.bottom-ru.top; + w1 = ru.right - ru.left; + h1 = ru.bottom - ru.top; + } + else { + x1 = 0; y1 = 0; w1 = w; h1 = h; } - else - {x1 = 0; y1 = 0; w1 = w; h1 = h;} // copy image at hdc if (SkipBkgBlitting) //image already at foreground { - BitBlt(hdc,x1,y1,w1,h1,g_pCachedWindow->hImageDC,x+x1,y+y1,SRCCOPY); + BitBlt(hdc, x1, y1, w1, h1, g_pCachedWindow->hImageDC, x + x1, y + y1, SRCCOPY); } - else - { - BitBlt(hdc,x1,y1,w1,h1,g_pCachedWindow->hBackDC,x+x1,y+y1,SRCCOPY); + else { + BitBlt(hdc, x1, y1, w1, h1, g_pCachedWindow->hBackDC, x + x1, y + y1, SRCCOPY); } - Frame->PaintCallbackProc(Frame->hWnd,hdc,&r,rgnUpdate, Frame->dwFlags,Frame->PaintData); + Frame->PaintCallbackProc(Frame->hWnd, hdc, &r, rgnUpdate, Frame->dwFlags, Frame->PaintData); ru = r; - DeleteObject(rgnUpdate); + DeleteObject(rgnUpdate); } DeleteObject(Frame->UpdateRgn); Frame->UpdateRgn = 0; } - if (!IsRectEmpty(&ru)) - { + if (!IsRectEmpty(&ru)) { x1 = ru.left; y1 = ru.top; - w1 = ru.right-ru.left; - h1 = ru.bottom-ru.top; + w1 = ru.right - ru.left; + h1 = ru.bottom - ru.top; } else { x1 = 0; y1 = 0; w1 = w; h1 = h; } - BitBlt(g_pCachedWindow->hImageDC,x+x1,y+y1,w1,h1,hdc,x1,y1,SRCCOPY); + BitBlt(g_pCachedWindow->hImageDC, x + x1, y + y1, w1, h1, hdc, x1, y1, SRCCOPY); if (GetWindowLongPtr(Frame->hWnd, GWL_STYLE) & WS_VSCROLL) { //Draw vertical scroll bar // - SCROLLBARINFO si = {0}; + SCROLLBARINFO si = { 0 }; si.cbSize = sizeof(SCROLLBARINFO); GetScrollBarInfo(Frame->hWnd, OBJID_VSCROLL, &si); @@ -3324,12 +3175,12 @@ static int ske_ValidateSingleFrameImage(FRAMEWND * Frame, BOOL SkipBkgBlitting) RECT rDnBtn = rLine; RECT rThumb = rLine; - rUpBtn.bottom = rUpBtn.top+si.dxyLineButton; - rDnBtn.top = rDnBtn.bottom-si.dxyLineButton; - rThumb.top = rLine.top+si.xyThumbTop; - rThumb.bottom = rLine.top+si.xyThumbBottom; + rUpBtn.bottom = rUpBtn.top + si.dxyLineButton; + rDnBtn.top = rDnBtn.bottom - si.dxyLineButton; + rThumb.top = rLine.top + si.xyThumbTop; + rThumb.bottom = rLine.top + si.xyThumbBottom; - int dx = Frame->wndSize.right-rLine.right; + int dx = Frame->wndSize.right - rLine.right; int dy = -rLine.top + Frame->wndSize.top; OffsetRect(&rLine, dx, dy); @@ -3340,13 +3191,13 @@ static int ske_ValidateSingleFrameImage(FRAMEWND * Frame, BOOL SkipBkgBlitting) char req[255]; mir_snprintf(req, SIZEOF(req), "Main,ID=ScrollBar,Frame=%s,Part=Back", Frame->szName); - SkinDrawGlyph(g_pCachedWindow->hImageDC,&rLine,&rLine,req); + SkinDrawGlyph(g_pCachedWindow->hImageDC, &rLine, &rLine, req); mir_snprintf(req, SIZEOF(req), "Main,ID=ScrollBar,Frame=%s,Part=Thumb", Frame->szName); - SkinDrawGlyph(g_pCachedWindow->hImageDC,&rThumb,&rThumb,req); + SkinDrawGlyph(g_pCachedWindow->hImageDC, &rThumb, &rThumb, req); mir_snprintf(req, SIZEOF(req), "Main,ID=ScrollBar, Frame=%s,Part=UpLineButton", Frame->szName); - SkinDrawGlyph(g_pCachedWindow->hImageDC,&rUpBtn,&rUpBtn,req); + SkinDrawGlyph(g_pCachedWindow->hImageDC, &rUpBtn, &rUpBtn, req); mir_snprintf(req, SIZEOF(req), "Main,ID=ScrollBar,Frame=%s,Part=DownLineButton", Frame->szName); - SkinDrawGlyph(g_pCachedWindow->hImageDC,&rDnBtn,&rDnBtn,req); + SkinDrawGlyph(g_pCachedWindow->hImageDC, &rDnBtn, &rDnBtn, req); } SelectObject(hdc, o); @@ -3355,34 +3206,34 @@ static int ske_ValidateSingleFrameImage(FRAMEWND * Frame, BOOL SkipBkgBlitting) return 1; } -int ske_BltBackImage (HWND destHWND, HDC destDC, RECT *BltClientRect) +int ske_BltBackImage(HWND destHWND, HDC destDC, RECT *BltClientRect) { - POINT ptMainWnd = {0}; - POINT ptChildWnd = {0}; - RECT from = {0}; - RECT w = {0}; + POINT ptMainWnd = { 0 }; + POINT ptChildWnd = { 0 }; + RECT from = { 0 }; + RECT w = { 0 }; if (g_CluiData.fDisableSkinEngine) { - FillRect(destDC,BltClientRect,GetSysColorBrush(COLOR_3DFACE)); + FillRect(destDC, BltClientRect, GetSysColorBrush(COLOR_3DFACE)); return 0; } - ske_ReCreateBackImage(FALSE,NULL); + ske_ReCreateBackImage(FALSE, NULL); if (BltClientRect) w = *BltClientRect; - else GetClientRect(destHWND,&w); + else GetClientRect(destHWND, &w); ptChildWnd.x = w.left; ptChildWnd.y = w.top; - ClientToScreen(destHWND,&ptChildWnd); - ClientToScreen(pcli->hwndContactList,&ptMainWnd); + ClientToScreen(destHWND, &ptChildWnd); + ClientToScreen(pcli->hwndContactList, &ptMainWnd); //TODO if main not relative to client area - return BitBlt(destDC,w.left,w.top,(w.right-w.left),(w.bottom-w.top),g_pCachedWindow->hBackDC,(ptChildWnd.x-ptMainWnd.x),(ptChildWnd.y-ptMainWnd.y),SRCCOPY); + return BitBlt(destDC, w.left, w.top, (w.right - w.left), (w.bottom - w.top), g_pCachedWindow->hBackDC, (ptChildWnd.x - ptMainWnd.x), (ptChildWnd.y - ptMainWnd.y), SRCCOPY); } -int ske_ReCreateBackImage(BOOL Erase,RECT *w) +int ske_ReCreateBackImage(BOOL Erase, RECT *w) { HBITMAP hb2; - RECT wnd = {0}; + RECT wnd = { 0 }; BOOL IsNewCache = 0; if (g_CluiData.fDisableSkinEngine) return 0; - GetClientRect(pcli->hwndContactList,&wnd); + GetClientRect(pcli->hwndContactList, &wnd); if (w) wnd = *w; //-- Check cached. if (g_pCachedWindow == NULL) { @@ -3391,30 +3242,30 @@ int ske_ReCreateBackImage(BOOL Erase,RECT *w) g_pCachedWindow->hScreenDC = GetDC(NULL); g_pCachedWindow->hBackDC = CreateCompatibleDC(g_pCachedWindow->hScreenDC); g_pCachedWindow->hImageDC = CreateCompatibleDC(g_pCachedWindow->hScreenDC); - g_pCachedWindow->Width = wnd.right-wnd.left; - g_pCachedWindow->Height = wnd.bottom-wnd.top; + g_pCachedWindow->Width = wnd.right - wnd.left; + g_pCachedWindow->Height = wnd.bottom - wnd.top; if (g_pCachedWindow->Width != 0 && g_pCachedWindow->Height != 0) { - g_pCachedWindow->hImageDIB = ske_CreateDIB32Point(g_pCachedWindow->Width,g_pCachedWindow->Height,(void**)&(g_pCachedWindow->hImageDIBByte)); - g_pCachedWindow->hBackDIB = ske_CreateDIB32Point(g_pCachedWindow->Width,g_pCachedWindow->Height,(void**)&(g_pCachedWindow->hBackDIBByte)); - g_pCachedWindow->hImageOld = (HBITMAP)SelectObject(g_pCachedWindow->hImageDC,g_pCachedWindow->hImageDIB); - g_pCachedWindow->hBackOld = (HBITMAP)SelectObject(g_pCachedWindow->hBackDC,g_pCachedWindow->hBackDIB); + g_pCachedWindow->hImageDIB = ske_CreateDIB32Point(g_pCachedWindow->Width, g_pCachedWindow->Height, (void**)&(g_pCachedWindow->hImageDIBByte)); + g_pCachedWindow->hBackDIB = ske_CreateDIB32Point(g_pCachedWindow->Width, g_pCachedWindow->Height, (void**)&(g_pCachedWindow->hBackDIBByte)); + g_pCachedWindow->hImageOld = (HBITMAP)SelectObject(g_pCachedWindow->hImageDC, g_pCachedWindow->hImageDIB); + g_pCachedWindow->hBackOld = (HBITMAP)SelectObject(g_pCachedWindow->hBackDC, g_pCachedWindow->hBackDIB); } IsNewCache = 1; } - if (g_pCachedWindow->Width != wnd.right-wnd.left || g_pCachedWindow->Height != wnd.bottom-wnd.top) { - HBITMAP hb1 = NULL,hb2 = NULL; - g_pCachedWindow->Width = wnd.right-wnd.left; - g_pCachedWindow->Height = wnd.bottom-wnd.top; + if (g_pCachedWindow->Width != wnd.right - wnd.left || g_pCachedWindow->Height != wnd.bottom - wnd.top) { + HBITMAP hb1 = NULL, hb2 = NULL; + g_pCachedWindow->Width = wnd.right - wnd.left; + g_pCachedWindow->Height = wnd.bottom - wnd.top; if (g_pCachedWindow->Width != 0 && g_pCachedWindow->Height != 0) { - hb1 = ske_CreateDIB32Point(g_pCachedWindow->Width,g_pCachedWindow->Height,(void**)&(g_pCachedWindow->hImageDIBByte)); - hb2 = ske_CreateDIB32Point(g_pCachedWindow->Width,g_pCachedWindow->Height,(void**)&(g_pCachedWindow->hBackDIBByte)); - SelectObject(g_pCachedWindow->hImageDC,hb1); - SelectObject(g_pCachedWindow->hBackDC,hb2); + hb1 = ske_CreateDIB32Point(g_pCachedWindow->Width, g_pCachedWindow->Height, (void**)&(g_pCachedWindow->hImageDIBByte)); + hb2 = ske_CreateDIB32Point(g_pCachedWindow->Width, g_pCachedWindow->Height, (void**)&(g_pCachedWindow->hBackDIBByte)); + SelectObject(g_pCachedWindow->hImageDC, hb1); + SelectObject(g_pCachedWindow->hBackDC, hb2); } else { - SelectObject(g_pCachedWindow->hImageDC,g_pCachedWindow->hImageOld); - SelectObject(g_pCachedWindow->hBackDC,g_pCachedWindow->hBackOld); + SelectObject(g_pCachedWindow->hImageDC, g_pCachedWindow->hImageOld); + SelectObject(g_pCachedWindow->hBackDC, g_pCachedWindow->hBackOld); } if (g_pCachedWindow->hImageDIB) DeleteObject(g_pCachedWindow->hImageDIB); if (g_pCachedWindow->hBackDIB) DeleteObject(g_pCachedWindow->hBackDIB); @@ -3423,19 +3274,19 @@ int ske_ReCreateBackImage(BOOL Erase,RECT *w) IsNewCache = 1; } - if ((Erase || IsNewCache ) && (g_pCachedWindow->Width != 0 && g_pCachedWindow->Height != 0)) { - hb2 = ske_CreateDIB32(g_pCachedWindow->Width,g_pCachedWindow->Height); - SelectObject(g_pCachedWindow->hBackDC,hb2); + if ((Erase || IsNewCache) && (g_pCachedWindow->Width != 0 && g_pCachedWindow->Height != 0)) { + hb2 = ske_CreateDIB32(g_pCachedWindow->Width, g_pCachedWindow->Height); + SelectObject(g_pCachedWindow->hBackDC, hb2); DeleteObject(g_pCachedWindow->hBackDIB); g_pCachedWindow->hBackDIB = hb2; - FillRect(g_pCachedWindow->hBackDC,&wnd,GetSysColorBrush(COLOR_BTNFACE)); - SkinDrawGlyph(g_pCachedWindow->hBackDC,&wnd,&wnd,"Main,ID=Background,Opt=Non-Layered"); - ske_SetRectOpaque(g_pCachedWindow->hBackDC,&wnd); + FillRect(g_pCachedWindow->hBackDC, &wnd, GetSysColorBrush(COLOR_BTNFACE)); + SkinDrawGlyph(g_pCachedWindow->hBackDC, &wnd, &wnd, "Main,ID=Background,Opt=Non-Layered"); + ske_SetRectOpaque(g_pCachedWindow->hBackDC, &wnd); } return 1; } -int ske_DrawNonFramedObjects(BOOL Erase,RECT *r) +int ske_DrawNonFramedObjects(BOOL Erase, RECT *r) { RECT w, wnd; if (r) w = *r; @@ -3472,12 +3323,12 @@ int ske_DrawNonFramedObjects(BOOL Erase,RECT *r) int ske_ValidateFrameImageProc(RECT *r) // Calling queued frame paint procs and refresh image { - RECT wnd = {0}; + RECT wnd = { 0 }; BOOL IsNewCache = 0; BOOL IsForceAllPainting = 0; if (r) wnd = *r; - else GetWindowRect(pcli->hwndContactList,&wnd); - if (wnd.right-wnd.left == 0 || wnd.bottom-wnd.top == 0) + else GetWindowRect(pcli->hwndContactList, &wnd); + if (wnd.right - wnd.left == 0 || wnd.bottom - wnd.top == 0) return 0; g_mutex_bLockUpdating = 1; @@ -3489,22 +3340,22 @@ int ske_ValidateFrameImageProc(RECT *r) // Callin g_pCachedWindow->hScreenDC = GetDC(NULL); g_pCachedWindow->hBackDC = CreateCompatibleDC(g_pCachedWindow->hScreenDC); g_pCachedWindow->hImageDC = CreateCompatibleDC(g_pCachedWindow->hScreenDC); - g_pCachedWindow->Width = wnd.right-wnd.left; - g_pCachedWindow->Height = wnd.bottom-wnd.top; - g_pCachedWindow->hImageDIB = ske_CreateDIB32Point(g_pCachedWindow->Width,g_pCachedWindow->Height,(void**)&(g_pCachedWindow->hImageDIBByte)); - g_pCachedWindow->hBackDIB = ske_CreateDIB32Point(g_pCachedWindow->Width,g_pCachedWindow->Height,(void**)&(g_pCachedWindow->hBackDIBByte)); - g_pCachedWindow->hImageOld = (HBITMAP)SelectObject(g_pCachedWindow->hImageDC,g_pCachedWindow->hImageDIB); - g_pCachedWindow->hBackOld = (HBITMAP)SelectObject(g_pCachedWindow->hBackDC,g_pCachedWindow->hBackDIB); + g_pCachedWindow->Width = wnd.right - wnd.left; + g_pCachedWindow->Height = wnd.bottom - wnd.top; + g_pCachedWindow->hImageDIB = ske_CreateDIB32Point(g_pCachedWindow->Width, g_pCachedWindow->Height, (void**)&(g_pCachedWindow->hImageDIBByte)); + g_pCachedWindow->hBackDIB = ske_CreateDIB32Point(g_pCachedWindow->Width, g_pCachedWindow->Height, (void**)&(g_pCachedWindow->hBackDIBByte)); + g_pCachedWindow->hImageOld = (HBITMAP)SelectObject(g_pCachedWindow->hImageDC, g_pCachedWindow->hImageDIB); + g_pCachedWindow->hBackOld = (HBITMAP)SelectObject(g_pCachedWindow->hBackDC, g_pCachedWindow->hBackDIB); IsNewCache = 1; } - if (g_pCachedWindow->Width != wnd.right-wnd.left || g_pCachedWindow->Height != wnd.bottom-wnd.top) { - HBITMAP hb1,hb2; - g_pCachedWindow->Width = wnd.right-wnd.left; - g_pCachedWindow->Height = wnd.bottom-wnd.top; - hb1 = ske_CreateDIB32Point(g_pCachedWindow->Width,g_pCachedWindow->Height,(void**)&(g_pCachedWindow->hImageDIBByte)); - hb2 = ske_CreateDIB32Point(g_pCachedWindow->Width,g_pCachedWindow->Height,(void**)&(g_pCachedWindow->hBackDIBByte)); - SelectObject(g_pCachedWindow->hImageDC,hb1); - SelectObject(g_pCachedWindow->hBackDC,hb2); + if (g_pCachedWindow->Width != wnd.right - wnd.left || g_pCachedWindow->Height != wnd.bottom - wnd.top) { + HBITMAP hb1, hb2; + g_pCachedWindow->Width = wnd.right - wnd.left; + g_pCachedWindow->Height = wnd.bottom - wnd.top; + hb1 = ske_CreateDIB32Point(g_pCachedWindow->Width, g_pCachedWindow->Height, (void**)&(g_pCachedWindow->hImageDIBByte)); + hb2 = ske_CreateDIB32Point(g_pCachedWindow->Width, g_pCachedWindow->Height, (void**)&(g_pCachedWindow->hBackDIBByte)); + SelectObject(g_pCachedWindow->hImageDC, hb1); + SelectObject(g_pCachedWindow->hBackDC, hb2); DeleteObject(g_pCachedWindow->hImageDIB); DeleteObject(g_pCachedWindow->hBackDIB); g_pCachedWindow->hImageDIB = hb1; @@ -3520,11 +3371,11 @@ int ske_ValidateFrameImageProc(RECT *r) // Callin flag_bJustDrawNonFramedObjects = 0; } if (IsForceAllPainting) { - BitBlt(g_pCachedWindow->hImageDC, 0, 0, g_pCachedWindow->Width,g_pCachedWindow->Height,g_pCachedWindow->hBackDC, 0, 0, SRCCOPY); - Sync( QueueAllFramesUpdating, (BYTE)1 ); + BitBlt(g_pCachedWindow->hImageDC, 0, 0, g_pCachedWindow->Width, g_pCachedWindow->Height, g_pCachedWindow->hBackDC, 0, 0, SRCCOPY); + Sync(QueueAllFramesUpdating, (BYTE)1); } //-- Validating frames - for (int i=0; i < g_nFramesCount; i++) + for (int i = 0; i < g_nFramesCount; i++) if (g_pfwFrames[i].PaintCallbackProc && g_pfwFrames[i].visible && !g_pfwFrames[i].floating) if (g_pfwFrames[i].bQueued || IsForceAllPainting) ske_ValidateSingleFrameImage(&g_pfwFrames[i], IsForceAllPainting); @@ -3549,10 +3400,10 @@ int ske_UpdateWindowImage() if (g_CluiData.fLayered) { RECT r; - GetWindowRect(pcli->hwndContactList,&r); + GetWindowRect(pcli->hwndContactList, &r); return ske_UpdateWindowImageRect(&r); } - else ske_ReCreateBackImage(FALSE,0); + else ske_ReCreateBackImage(FALSE, 0); ske_ApplyTranslucency(); return 0; } @@ -3565,7 +3416,7 @@ int ske_UpdateWindowImageRect(RECT *r) // Up if (!g_CluiData.fLayered) return ske_ReCreateBackImage(FALSE, 0); if (g_pCachedWindow == NULL) return ske_ValidateFrameImageProc(&wnd); - if (g_pCachedWindow->Width != wnd.right-wnd.left || g_pCachedWindow->Height != wnd.bottom-wnd.top) return ske_ValidateFrameImageProc(&wnd); + if (g_pCachedWindow->Width != wnd.right - wnd.left || g_pCachedWindow->Height != wnd.bottom - wnd.top) return ske_ValidateFrameImageProc(&wnd); if (g_flag_bFullRepaint) { g_flag_bFullRepaint = 0; return ske_ValidateFrameImageProc(&wnd); @@ -3578,7 +3429,7 @@ void ske_ApplyTranslucency() { int IsTransparancy; HWND hwnd = pcli->hwndContactList; - BOOL layered = (GetWindowLongPtr(hwnd, GWL_EXSTYLE) & WS_EX_LAYERED)?TRUE:FALSE; + BOOL layered = (GetWindowLongPtr(hwnd, GWL_EXSTYLE) & WS_EX_LAYERED) ? TRUE : FALSE; IsTransparancy = g_CluiData.fSmoothAnimation || g_bTransparentFlag; if (!g_bTransparentFlag && !g_CluiData.fSmoothAnimation && g_CluiData.bCurrentAlpha != 0) @@ -3601,7 +3452,7 @@ int ske_JustUpdateWindowImage() ske_ApplyTranslucency(); return 0; } - GetWindowRect(pcli->hwndContactList,&r); + GetWindowRect(pcli->hwndContactList, &r); return ske_JustUpdateWindowImageRect(&r); } @@ -3631,15 +3482,15 @@ int ske_JustUpdateWindowImageRect(RECT *rty) g_CluiData.fAeroGlass = false; CLUI_UpdateAeroGlass(); } - else InvalidateRect(pcli->hwndContactList,NULL,TRUE); + else InvalidateRect(pcli->hwndContactList, NULL, TRUE); return 0; } int ske_DrawImageAt(HDC hdc, RECT *rc) { - BLENDFUNCTION bf = {AC_SRC_OVER, 0, 255, AC_SRC_ALPHA }; - BitBlt(g_pCachedWindow->hImageDC,rc->left,rc->top,rc->right-rc->left,rc->bottom-rc->top,g_pCachedWindow->hBackDC,rc->left,rc->top,SRCCOPY); - ske_AlphaBlend(g_pCachedWindow->hImageDC,rc->left,rc->top,rc->right-rc->left,rc->bottom-rc->top,hdc, 0, 0, rc->right-rc->left,rc->bottom-rc->top,bf); + BLENDFUNCTION bf = { AC_SRC_OVER, 0, 255, AC_SRC_ALPHA }; + BitBlt(g_pCachedWindow->hImageDC, rc->left, rc->top, rc->right - rc->left, rc->bottom - rc->top, g_pCachedWindow->hBackDC, rc->left, rc->top, SRCCOPY); + ske_AlphaBlend(g_pCachedWindow->hImageDC, rc->left, rc->top, rc->right - rc->left, rc->bottom - rc->top, hdc, 0, 0, rc->right - rc->left, rc->bottom - rc->top, bf); if (!g_mutex_bLockUpdating) ske_UpdateWindowImage(); return 0; @@ -3656,11 +3507,11 @@ HBITMAP ske_GetCurrentWindowImage() static DWORD ske_HexToARGB(char * Hex) { - char buf[10] = {0}; - char buf2[11] = {0}; + char buf[10] = { 0 }; + char buf2[11] = { 0 }; mir_snprintf(buf, SIZEOF(buf), "%s\n", Hex); if (buf[1] == 'x' || buf[1] == 'X') - mir_snprintf(buf2, SIZEOF(buf2), "0x%s\n", buf+2); + mir_snprintf(buf2, SIZEOF(buf2), "0x%s\n", buf + 2); else mir_snprintf(buf2, SIZEOF(buf2), "0x%s\n", buf); buf2[10] = '\0'; @@ -3668,20 +3519,20 @@ static DWORD ske_HexToARGB(char * Hex) char *st; DWORD AARRGGBB = strtoul(buf2, &st, 16); BYTE alpha = (BYTE)((AARRGGBB & 0xFF000000) >> 24); - alpha = 255-((alpha == 0)?255:alpha); - AARRGGBB = (alpha << 24)+((AARRGGBB&0x00FF0000)>>16)+((AARRGGBB&0x000000FF) << 16)+(AARRGGBB&0x0000FF00); + alpha = 255 - ((alpha == 0) ? 255 : alpha); + AARRGGBB = (alpha << 24) + ((AARRGGBB & 0x00FF0000) >> 16) + ((AARRGGBB & 0x000000FF) << 16) + (AARRGGBB & 0x0000FF00); return AARRGGBB; } static TCHAR *ske_ReAppend(TCHAR *lfirst, TCHAR * lsecond, int len) { - int l1 = lfirst?mir_tstrlen(lfirst):0; - int l2 = (len?len:(mir_tstrlen(lsecond)+1)); - TCHAR *buf = (TCHAR *)mir_alloc((l1+l2+1)*sizeof(TCHAR)); - if (lfirst) memmove(buf,lfirst,l1*sizeof(TCHAR)); - memmove(buf+l1,lsecond,l2*sizeof(TCHAR)); + size_t l1 = lfirst ? mir_tstrlen(lfirst) : 0; + size_t l2 = (len ? len : (mir_tstrlen(lsecond) + 1)); + TCHAR *buf = (TCHAR *)mir_alloc((l1 + l2 + 1)*sizeof(TCHAR)); + if (lfirst) memmove(buf, lfirst, l1*sizeof(TCHAR)); + memmove(buf + l1, lsecond, l2*sizeof(TCHAR)); mir_free(lfirst); - if (len) buf[l1+l2] = _T('\0'); + if (len) buf[l1 + l2] = _T('\0'); return buf; } @@ -3692,9 +3543,8 @@ TCHAR* ske_ReplaceVar(TCHAR *var) char buf[MAX_PATH] = {0}; CallService(MS_DB_GETPROFILENAME,(WPARAM)MAX_PATH,(LPARAM)buf); - int i = strlen(buf); - while (buf[i] != '.' && i>0) i--; - buf[i] = '\0'; + char *p = strrchr(buf, '.'); + if (p) *p = 0; mir_free(var); return mir_a2u(buf); @@ -3706,18 +3556,17 @@ TCHAR* ske_ReplaceVar(TCHAR *var) TCHAR *ske_ParseText(TCHAR *stzText) { - int len = mir_tstrlen(stzText); + size_t len = mir_tstrlen(stzText); TCHAR *result = NULL; - int stpos = 0; - int curpos = 0; + size_t stpos = 0, curpos = 0; while (curpos < len) { //1 find first % while (curpos < len && stzText[curpos] != (TCHAR)'%') curpos++; if (curpos < len) { //% found - if (curpos-stpos>0) - result = ske_ReAppend(result,stzText+stpos,curpos-stpos); + if (curpos - stpos > 0) + result = ske_ReAppend(result, stzText + stpos, int(curpos - stpos)); stpos = curpos+1; curpos++; //3 find second % @@ -3740,7 +3589,7 @@ TCHAR *ske_ParseText(TCHAR *stzText) } else { if (curpos - stpos > 0) - result = ske_ReAppend(result, stzText + stpos, curpos - stpos); + result = ske_ReAppend(result, stzText + stpos, int(curpos - stpos)); break; } } @@ -3754,40 +3603,40 @@ TCHAR *ske_ParseText(TCHAR *stzText) static void ske_AddParseTextGlyphObject(char * szGlyphTextID,char * szDefineString,SKINOBJECTSLIST *Skin) { - char buf[255] = {0}; - GetParamN(szDefineString,buf,sizeof(buf), 0, ',',TRUE); + char buf[255] = { 0 }; + GetParamN(szDefineString, buf, sizeof(buf), 0, ',', TRUE); if (buf[0] == 0) return; GLYPHTEXT *glText = (GLYPHTEXT*)mir_calloc(sizeof(GLYPHTEXT)); glText->szGlyphTextID = mir_strdup(szGlyphTextID); glText->szObjectName = mir_strdup(buf); - glText->iLeft = atoi(GetParamN(szDefineString,buf,sizeof(buf),1,',',TRUE)); - glText->iTop = atoi(GetParamN(szDefineString,buf,sizeof(buf),2,',',TRUE)); - glText->iRight = atoi(GetParamN(szDefineString,buf,sizeof(buf),3,',',TRUE)); - glText->iBottom = atoi(GetParamN(szDefineString,buf,sizeof(buf),4,',',TRUE)); + glText->iLeft = atoi(GetParamN(szDefineString, buf, sizeof(buf), 1, ',', TRUE)); + glText->iTop = atoi(GetParamN(szDefineString, buf, sizeof(buf), 2, ',', TRUE)); + glText->iRight = atoi(GetParamN(szDefineString, buf, sizeof(buf), 3, ',', TRUE)); + glText->iBottom = atoi(GetParamN(szDefineString, buf, sizeof(buf), 4, ',', TRUE)); { memset(buf, 0, 6); - GetParamN(szDefineString,buf,sizeof(buf),5,',',TRUE); + GetParamN(szDefineString, buf, sizeof(buf), 5, ',', TRUE); buf[0] &= 95; buf[1] &= 95; buf[2] &= 95; buf[3] &= 95; buf[4] &= 95; buf[5] &= 95; //to uppercase: &01011111 (0-95) glText->RelativeFlags = - (buf[0] == 'C'?1:((buf[0] == 'R')?2:0)) //[BC][RC][BC][RC] --- Left relative - |(buf[1] == 'C'?4:((buf[1] == 'B')?8:0)) // | | |--------- Top relative - |(buf[2] == 'C'?16:((buf[2] == 'R')?32:0)) // | |--------------Right relative - |(buf[3] == 'C'?64:((buf[3] == 'B')?128:0)); // |------------------Bottom relative - glText->dwFlags = (buf[4] == 'C'?DT_CENTER:((buf[4] == 'R')?DT_RIGHT:DT_LEFT)) - |(buf[5] == 'C'?DT_VCENTER:((buf[5] == 'B')?DT_BOTTOM:DT_TOP)); - } - glText->szFontID = mir_strdup(GetParamN(szDefineString,buf,sizeof(buf),6,',',TRUE)); - - glText->dwColor = ske_HexToARGB(GetParamN(szDefineString,buf,sizeof(buf),7,',',TRUE)); - glText->dwShadow = ske_HexToARGB(GetParamN(szDefineString,buf,sizeof(buf),8,',',TRUE)); - glText->stValueText = mir_a2u(GetParamN(szDefineString,buf,sizeof(buf),9,',',TRUE)); + (buf[0] == 'C' ? 1 : ((buf[0] == 'R') ? 2 : 0)) //[BC][RC][BC][RC] --- Left relative + | (buf[1] == 'C' ? 4 : ((buf[1] == 'B') ? 8 : 0)) // | | |--------- Top relative + | (buf[2] == 'C' ? 16 : ((buf[2] == 'R') ? 32 : 0)) // | |--------------Right relative + | (buf[3] == 'C' ? 64 : ((buf[3] == 'B') ? 128 : 0)); // |------------------Bottom relative + glText->dwFlags = (buf[4] == 'C' ? DT_CENTER : ((buf[4] == 'R') ? DT_RIGHT : DT_LEFT)) + | (buf[5] == 'C' ? DT_VCENTER : ((buf[5] == 'B') ? DT_BOTTOM : DT_TOP)); + } + glText->szFontID = mir_strdup(GetParamN(szDefineString, buf, sizeof(buf), 6, ',', TRUE)); + + glText->dwColor = ske_HexToARGB(GetParamN(szDefineString, buf, sizeof(buf), 7, ',', TRUE)); + glText->dwShadow = ske_HexToARGB(GetParamN(szDefineString, buf, sizeof(buf), 8, ',', TRUE)); + glText->stValueText = mir_a2u(GetParamN(szDefineString, buf, sizeof(buf), 9, ',', TRUE)); glText->stText = ske_ParseText(glText->stValueText); if (!Skin->pTextList) Skin->pTextList = List_Create(0, 1); - List_InsertPtr(Skin->pTextList,glText); + List_InsertPtr(Skin->pTextList, glText); } @@ -3796,7 +3645,7 @@ static void ske_AddParseTextGlyphObject(char * szGlyphTextID,char * szDefineStri * szGlyphTextID and Define string is: * f[szFontID] = s[FontTypefaceName],[size],[BIU] */ -static void ske_AddParseSkinFont(char * szFontID,char * szDefineString,SKINOBJECTSLIST *Skin) +static void ske_AddParseSkinFont(char * szFontID, char * szDefineString, SKINOBJECTSLIST *Skin) { SKINFONT *sf = (SKINFONT*)mir_calloc(sizeof(SKINFONT)); if (!sf) @@ -3805,26 +3654,26 @@ static void ske_AddParseSkinFont(char * szFontID,char * szDefineString,SKINOBJEC char buf[255]; int fntSize = 0; BOOL fntBold = FALSE, fntItalic = FALSE, fntUnderline = FALSE; - LOGFONTA logfont = {0}; + LOGFONTA logfont = { 0 }; logfont.lfCharSet = DEFAULT_CHARSET; logfont.lfOutPrecision = OUT_DEFAULT_PRECIS; logfont.lfClipPrecision = CLIP_DEFAULT_PRECIS; logfont.lfQuality = DEFAULT_QUALITY; - logfont.lfPitchAndFamily = DEFAULT_PITCH|FF_DONTCARE; + logfont.lfPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE; - strncpy(logfont.lfFaceName,GetParamN(szDefineString,buf,sizeof(buf), 0, ',',TRUE),32); - logfont.lfHeight = atoi(GetParamN(szDefineString,buf,sizeof(buf),1,',',TRUE)); + 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) { HDC hdc = CreateCompatibleDC(NULL); logfont.lfHeight = (long)-MulDiv(logfont.lfHeight, GetDeviceCaps(hdc, LOGPIXELSY), 72); DeleteDC(hdc); } logfont.lfHeight = -logfont.lfHeight; - GetParamN(szDefineString,buf,sizeof(buf),2,',',TRUE); + GetParamN(szDefineString, buf, sizeof(buf), 2, ',', TRUE); buf[0] &= 95; buf[1] &= 95; buf[2] &= 95; - logfont.lfWeight = (buf[0] == 'B')?FW_BOLD:FW_NORMAL; - logfont.lfItalic = (buf[1] == 'I')?1:0; - logfont.lfUnderline = (buf[2] == 'U')?1:0; + logfont.lfWeight = (buf[0] == 'B') ? FW_BOLD : FW_NORMAL; + logfont.lfItalic = (buf[1] == 'I') ? 1 : 0; + logfont.lfUnderline = (buf[2] == 'U') ? 1 : 0; sf->hFont = CreateFontIndirectA(&logfont); if (sf->hFont) { @@ -3832,7 +3681,7 @@ static void ske_AddParseSkinFont(char * szFontID,char * szDefineString,SKINOBJEC 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, (void*)sf, gl_plSkinFonts->realCount); } } @@ -3844,13 +3693,13 @@ static BOOL ske_CheckHasAlfaChannel(BYTE * from, int widthByte, int height) { DWORD *pt = (DWORD*)from; for (int j = 0; j < height; j++) { - BYTE *add = (BYTE*)pt+widthByte; + BYTE *add = (BYTE*)pt + widthByte; while (pt < (DWORD*)add) { if ((*pt & 0xFF000000) != 0) return TRUE; pt++; } - pt = (DWORD*)(from+widthByte*j); + pt = (DWORD*)(from + widthByte*j); } return FALSE; } @@ -3861,7 +3710,7 @@ static BOOL ske_CheckHasAlfaChannel(BYTE * from, int widthByte, int height) */ static BOOL ske_CheckIconHasMask(BYTE * from) { - for (int i=0; i < 16*16/8; i++) + for (int i = 0; i < 16 * 16 / 8; i++) if (from[i] != 0) return TRUE; @@ -3873,7 +3722,7 @@ static BOOL ske_CheckIconHasMask(BYTE * from) */ static BOOL ske_GetMaskBit(BYTE *line, int x) { - return ((*(line+(x>>3)))&(0x01 << (7-(x&0x07)))) != 0; + return ((*(line + (x >> 3)))&(0x01 << (7 - (x & 0x07)))) != 0; } /* @@ -3881,14 +3730,14 @@ static BOOL ske_GetMaskBit(BYTE *line, int x) * X2 - overlaying points. */ -static DWORD ske_Blend(DWORD X1,DWORD X2, BYTE alpha) +static DWORD ske_Blend(DWORD X1, DWORD X2, BYTE alpha) { - BYTE a1 = (BYTE)(X1>>24); - BYTE a2 = (BYTE)(((X2>>24)*alpha)>>8); - BYTE r1 = (BYTE)(X1>>16); - BYTE r2 = (BYTE)(X2>>16); - BYTE g1 = (BYTE)(X1>>8); - BYTE g2 = (BYTE)(X2>>8); + BYTE a1 = (BYTE)(X1 >> 24); + BYTE a2 = (BYTE)(((X2 >> 24)*alpha) >> 8); + BYTE r1 = (BYTE)(X1 >> 16); + BYTE r2 = (BYTE)(X2 >> 16); + BYTE g1 = (BYTE)(X1 >> 8); + BYTE g2 = (BYTE)(X2 >> 8); BYTE b1 = (BYTE)(X1); BYTE b2 = (BYTE)(X2); @@ -3899,20 +3748,20 @@ static DWORD ske_Blend(DWORD X1,DWORD X2, BYTE alpha) /* it is possible to use >>8 instead of /255 but it is require additional * checking of alphavalues */ - WORD ar = a1+(((WORD)a_1*a2)/255); + WORD ar = a1 + (((WORD)a_1*a2) / 255); // if a2 more than 0 than result should be more // or equal (if a1 == 0) to a2, else in combination // with mask we can get here black points - ar = (a2>ar)?a2:ar; + ar = (a2 > ar) ? a2 : ar; if (ar == 0) return 0; - WORD arm = ar*255; - WORD rr = (((WORD)r1*am+(WORD)r2*a2*255))/arm; - WORD gr = (((WORD)g1*am+(WORD)g2*a2*255))/arm; - WORD br = (((WORD)b1*am+(WORD)b2*a2*255))/arm; - return (ar << 24)|(rr << 16)|(gr << 8)|br; + WORD arm = ar * 255; + WORD rr = (((WORD)r1*am + (WORD)r2*a2 * 255)) / arm; + WORD gr = (((WORD)g1*am + (WORD)g2*a2 * 255)) / arm; + WORD br = (((WORD)b1*am + (WORD)b2*a2 * 255)) / arm; + return (ar << 24) | (rr << 16) | (gr << 8) | br; } /* @@ -3967,8 +3816,8 @@ HICON ske_CreateJoinedIcon(HICON hBottom, HICON hTop, BYTE alpha) if (bmp_top.bmBits) tb = TopBuffer = (BYTE*)bmp_top.bmBits; else { TopBuffer = (BYTE*)malloc(bmp_top.bmHeight*bmp_top.bmWidthBytes); - GetBitmapBits(iciTop.hbmColor,bmp_top.bmHeight*bmp_top.bmWidthBytes,TopBuffer); - tb = TopBuffer+vstep_t*(bmp_top.bmHeight-1); + GetBitmapBits(iciTop.hbmColor, bmp_top.bmHeight*bmp_top.bmWidthBytes, TopBuffer); + tb = TopBuffer + vstep_t*(bmp_top.bmHeight - 1); vstep_t = -vstep_t; } @@ -3978,8 +3827,8 @@ HICON ske_CreateJoinedIcon(HICON hBottom, HICON hTop, BYTE alpha) } else { BottomMaskBuffer = (BYTE*)malloc(bmp_bottom_mask.bmHeight*bmp_bottom_mask.bmWidthBytes); - GetBitmapBits(iciBottom.hbmMask,bmp_bottom_mask.bmHeight*bmp_bottom_mask.bmWidthBytes,BottomMaskBuffer); - bmb = BottomMaskBuffer+vstep_bm*(bmp_bottom_mask.bmHeight-1); + GetBitmapBits(iciBottom.hbmMask, bmp_bottom_mask.bmHeight*bmp_bottom_mask.bmWidthBytes, BottomMaskBuffer); + bmb = BottomMaskBuffer + vstep_bm*(bmp_bottom_mask.bmHeight - 1); vstep_bm = -vstep_bm; } @@ -3990,8 +3839,8 @@ HICON ske_CreateJoinedIcon(HICON hBottom, HICON hTop, BYTE alpha) } else { TopMaskBuffer = (BYTE*)malloc(bmp_top_mask.bmHeight*bmp_top_mask.bmWidthBytes); - GetBitmapBits(iciTop.hbmMask,bmp_top_mask.bmHeight*bmp_top_mask.bmWidthBytes,TopMaskBuffer); - tmb = TopMaskBuffer+vstep_tm*(bmp_top_mask.bmHeight-1); + GetBitmapBits(iciTop.hbmMask, bmp_top_mask.bmHeight*bmp_top_mask.bmWidthBytes, TopMaskBuffer); + tmb = TopMaskBuffer + vstep_tm*(bmp_top_mask.bmHeight - 1); vstep_tm = -vstep_tm; } @@ -4028,8 +3877,8 @@ HICON ske_CreateJoinedIcon(HICON hBottom, HICON hTop, BYTE alpha) if (!bmp_top_mask.bmBits) free(TopMaskBuffer); } else { - ske_DrawIconEx(tempDC, 0, 0, hBottom,16,16, 0, NULL,DI_NORMAL); - ske_DrawIconEx(tempDC, 0, 0, hTop,16,16, 0, NULL,DI_NORMAL|(alpha << 24)); + ske_DrawIconEx(tempDC, 0, 0, hBottom, 16, 16, 0, NULL, DI_NORMAL); + ske_DrawIconEx(tempDC, 0, 0, hTop, 16, 16, 0, NULL, DI_NORMAL | (alpha << 24)); } DeleteObject(iciBottom.hbmColor); @@ -4037,22 +3886,22 @@ HICON ske_CreateJoinedIcon(HICON hBottom, HICON hTop, BYTE alpha) DeleteObject(iciBottom.hbmMask); DeleteObject(iciTop.hbmMask); - SelectObject(tempDC,oImage); + SelectObject(tempDC, oImage); DeleteDC(tempDC); - BYTE p[32] = {0}; - nMask = CreateBitmap(16,16,1,1,(void*)&p); + BYTE p[32] = { 0 }; + nMask = CreateBitmap(16, 16, 1, 1, (void*)&p); { HDC tempDC2 = CreateCompatibleDC(NULL); HDC tempDC3 = CreateCompatibleDC(NULL); - HBITMAP hbm = CreateCompatibleBitmap(tempDC3,16,16); - HBITMAP obmp = (HBITMAP)SelectObject(tempDC2,nMask); - HBITMAP obmp2 = (HBITMAP)SelectObject(tempDC3,hbm); - DrawIconEx(tempDC2, 0, 0, hBottom,16,16, 0, NULL,DI_MASK); - DrawIconEx(tempDC3, 0, 0, hTop,16,16, 0, NULL,DI_MASK); - BitBlt(tempDC2, 0, 0, 16,16,tempDC3, 0, 0, SRCAND); - SelectObject(tempDC2,obmp); - SelectObject(tempDC3,obmp2); + HBITMAP hbm = CreateCompatibleBitmap(tempDC3, 16, 16); + HBITMAP obmp = (HBITMAP)SelectObject(tempDC2, nMask); + HBITMAP obmp2 = (HBITMAP)SelectObject(tempDC3, hbm); + DrawIconEx(tempDC2, 0, 0, hBottom, 16, 16, 0, NULL, DI_MASK); + DrawIconEx(tempDC3, 0, 0, hTop, 16, 16, 0, NULL, DI_MASK); + BitBlt(tempDC2, 0, 0, 16, 16, tempDC3, 0, 0, SRCAND); + SelectObject(tempDC2, obmp); + SelectObject(tempDC3, obmp2); DeleteObject(hbm); DeleteDC(tempDC2); DeleteDC(tempDC3); @@ -4066,23 +3915,23 @@ HICON ske_CreateJoinedIcon(HICON hBottom, HICON hTop, BYTE alpha) return res; } -#define NEWJOINEDSTR( destination, first, separator, last) \ +#define NEWJOINEDSTR(destination, first, separator, last) \ destination = (char*)alloca(strlen(first)+strlen(separator)+strlen(last)+1); \ - if (destination) { \ - *destination = '\0'; \ - strcat(destination,first); \ - strcat(destination,separator); \ - strcat(destination,last); \ + if (destination) { \ + *destination = '\0'; \ + strcat(destination,first); \ + strcat(destination,separator); \ + strcat(destination,last); \ } #define SKINSETSECTION "SkinnedSettings" -BOOL SkinDBGetContactSetting(MCONTACT hContact, const char* szSection, const char*szKey, DBVARIANT * retdbv, BOOL * bSkinned ) +BOOL SkinDBGetContactSetting(MCONTACT hContact, const char* szSection, const char*szKey, DBVARIANT * retdbv, BOOL * bSkinned) { if (!hContact) { //only for not contact settings char *szSkinKey; NEWJOINEDSTR(szSkinKey, szSection, "@", szKey); - if (!db_get(hContact, SKINSETSECTION, szSkinKey, retdbv)) { + if (!db_get(hContact, SKINSETSECTION, szSkinKey, retdbv)) { if (bSkinned) *bSkinned = TRUE; return FALSE; } @@ -4116,7 +3965,7 @@ WORD SkinDBGetContactSettingWord(MCONTACT hContact, const char* szSection, const BOOL bSkinned = FALSE; DBVARIANT dbv = { 0 }; if (!SkinDBGetContactSetting(hContact, szSection, szKey, &dbv, &bSkinned)) { - if (dbv.type == DBVT_WORD) { + if (dbv.type == DBVT_WORD) { WORD retVal = dbv.wVal; db_free(&dbv); return retVal; @@ -4133,7 +3982,7 @@ DWORD SkinDBGetContactSettingDword(MCONTACT hContact, const char* szSection, con DBVARIANT dbv = { 0 }; BOOL bSkinned = FALSE; if (!SkinDBGetContactSetting(hContact, szSection, szKey, &dbv, &bSkinned)) { - if (dbv.type == DBVT_DWORD) { + if (dbv.type == DBVT_DWORD) { DWORD retVal = dbv.dVal; db_free(&dbv); return retVal; |