summaryrefslogtreecommitdiff
path: root/plugins/Clist_modern/src
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2014-12-10 12:26:44 +0000
committerGeorge Hazan <george.hazan@gmail.com>2014-12-10 12:26:44 +0000
commitded1e17bfc33ace7466f60efb04393bde7978c90 (patch)
tree7dd77ce385771015b73f5dcfd2fafa58b45f4a8f /plugins/Clist_modern/src
parentfc6b4ca1c0f503778fa0aef203fc0597d7d1368d (diff)
warning fix
git-svn-id: http://svn.miranda-ng.org/main/trunk@11316 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/Clist_modern/src')
-rw-r--r--plugins/Clist_modern/src/modern_skinselector.cpp581
1 files changed, 317 insertions, 264 deletions
diff --git a/plugins/Clist_modern/src/modern_skinselector.cpp b/plugins/Clist_modern/src/modern_skinselector.cpp
index 024872fe0d..6a95c9acb5 100644
--- a/plugins/Clist_modern/src/modern_skinselector.cpp
+++ b/plugins/Clist_modern/src/modern_skinselector.cpp
@@ -33,11 +33,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "hdr/modern_commonprototypes.h"
/// IMPLEMENTATIONS
-char* ModernMaskToString(MODERNMASK *mm, char *buf, UINT bufsize)
+char * ModernMaskToString(MODERNMASK *mm, char * buf, UINT bufsize)
{
- int i = 0;
- for (i = 0; i < (int)mm->dwParamCnt; i++) {
- if (mm->pl_Params[i].bMaskParamFlag) {
+ int i=0;
+ for (i=0; i < (int)mm->dwParamCnt; i++)
+ {
+ if (mm->pl_Params[i].bMaskParamFlag)
+ {
if (i>0)
mir_snprintf(buf, bufsize, "%s%%", buf);
if (mm->pl_Params[i].bMaskParamFlag &MPF_DIFF)
@@ -49,11 +51,12 @@ char* ModernMaskToString(MODERNMASK *mm, char *buf, UINT bufsize)
}
return buf;
}
-
int SkinSelector_DeleteMask(MODERNMASK *mm)
{
+ int i;
if (!mm->pl_Params) return 0;
- for (int i = 0; i < (int)mm->dwParamCnt; i++) {
+ for (i=0; i < (int)mm->dwParamCnt; i++)
+ {
free(mm->pl_Params[i].szName);
free(mm->pl_Params[i].szValue);
}
@@ -61,20 +64,22 @@ int SkinSelector_DeleteMask(MODERNMASK *mm)
return 1;
}
-BOOL MatchMask(char *name, char *mask)
+BOOL MatchMask(char * name, char * mask)
{
if (!mask || !name) return mask == name;
- if (*mask != '|') return wildcmpi(name, mask);
+ if (*mask != '|') return wildcmpi(name,mask);
{
- int s = 1, e = 1;
- char *temp;
- while (mask[e] != '\0') {
+ int s = 1,e = 1;
+ char * temp;
+ while (mask[e] != '\0')
+ {
s = e;
- while (mask[e] != '\0' && mask[e] != '|') e++;
- temp = (char*)malloc(e - s + 1);
- memcpy(temp, mask + s, e - s);
- temp[e - s] = '\0';
- if (wildcmpi(name, temp)) {
+ while(mask[e] != '\0' && mask[e] != '|') e++;
+ temp = (char*)malloc(e-s+1);
+ memcpy(temp,mask+s,e-s);
+ temp[e-s] = '\0';
+ if (wildcmpi(name,temp))
+ {
free(temp);
return TRUE;
}
@@ -86,7 +91,6 @@ BOOL MatchMask(char *name, char *mask)
}
return FALSE;
}
-
#if __GNUC__
#define NOINLINEASM
#endif
@@ -115,33 +119,33 @@ lph_top: //only 4 of 9 instructions in here don't use AL, so optimal pipe use i
xor eax,edx
}
#else
- DWORD hash = 0;
- int i;
- int shift = 0;
- for (i = 0; szStr[i]; i++) {
- hash ^= szStr[i] << shift;
- if (shift > 24) hash ^= (szStr[i] >> (32 - shift)) & 0x7F;
- shift = (shift + 5) & 0x1F;
- }
- return hash;
+ DWORD hash = 0;
+ int i;
+ int shift = 0;
+ for (i=0;szStr[i]; i++) {
+ hash ^= szStr[i] << shift;
+ if (shift>24) hash ^= (szStr[i]>>(32-shift))&0x7F;
+ shift = (shift+5)&0x1F;
+ }
+ return hash;
#endif
}
-int AddModernMaskToList(MODERNMASK *mm, LISTMODERNMASK *mmTemplateList)
+int AddModernMaskToList(MODERNMASK *mm, LISTMODERNMASK * mmTemplateList)
{
if (!mmTemplateList || !mm) return -1;
- mmTemplateList->pl_Masks = (MODERNMASK *)mir_realloc(mmTemplateList->pl_Masks, sizeof(MODERNMASK)*(mmTemplateList->dwMaskCnt + 1));
- memmove(&(mmTemplateList->pl_Masks[mmTemplateList->dwMaskCnt]), mm, sizeof(MODERNMASK));
+ mmTemplateList->pl_Masks = (MODERNMASK *)mir_realloc(mmTemplateList->pl_Masks,sizeof(MODERNMASK)*(mmTemplateList->dwMaskCnt+1));
+ memmove(&(mmTemplateList->pl_Masks[mmTemplateList->dwMaskCnt]),mm,sizeof(MODERNMASK));
mmTemplateList->dwMaskCnt++;
- return mmTemplateList->dwMaskCnt - 1;
+ return mmTemplateList->dwMaskCnt-1;
}
-int ClearMaskList(LISTMODERNMASK *mmTemplateList)
+int ClearMaskList(LISTMODERNMASK * mmTemplateList)
{
int i;
if (!mmTemplateList) return -1;
if (!mmTemplateList->pl_Masks) return -1;
- for (i = 0; i < (int)mmTemplateList->dwMaskCnt; i++)
+ for (i=0; i < (int)mmTemplateList->dwMaskCnt; i++)
SkinSelector_DeleteMask(&(mmTemplateList->pl_Masks[i]));
mir_free_and_nil(mmTemplateList->pl_Masks);
mmTemplateList->dwMaskCnt = 0;
@@ -152,20 +156,23 @@ int DeleteMaskByItID(DWORD mID, LISTMODERNMASK *mmTemplateList)
{
if (!mmTemplateList) return -1;
if (mID >= mmTemplateList->dwMaskCnt) return -1;
- if (mmTemplateList->dwMaskCnt == 1) {
+ if (mmTemplateList->dwMaskCnt == 1)
+ {
SkinSelector_DeleteMask(&(mmTemplateList->pl_Masks[0]));
mir_free_and_nil(mmTemplateList->pl_Masks);
mmTemplateList->pl_Masks = NULL;
mmTemplateList->dwMaskCnt--;
}
- else {
+ else
+ {
MODERNMASK *newAlocation;
DWORD i;
SkinSelector_DeleteMask(&(mmTemplateList->pl_Masks[mID]));
- newAlocation = (MODERNMASK *)mir_alloc(sizeof(MODERNMASK)*mmTemplateList->dwMaskCnt - 1);
- memmove(newAlocation, mmTemplateList->pl_Masks, sizeof(MODERNMASK)*(mID + 1));
- for (i = mID; i < mmTemplateList->dwMaskCnt - 1; i++) {
- newAlocation[i] = mmTemplateList->pl_Masks[i + 1];
+ newAlocation = (MODERNMASK *)mir_alloc(sizeof(MODERNMASK)*mmTemplateList->dwMaskCnt-1);
+ memmove(newAlocation,mmTemplateList->pl_Masks,sizeof(MODERNMASK)*(mID+1));
+ for (i = mID; i < mmTemplateList->dwMaskCnt-1; i++)
+ {
+ newAlocation[i] = mmTemplateList->pl_Masks[i+1];
newAlocation[i].dwMaskId = i;
}
mir_free_and_nil(mmTemplateList->pl_Masks);
@@ -175,6 +182,7 @@ int DeleteMaskByItID(DWORD mID, LISTMODERNMASK *mmTemplateList)
return mmTemplateList->dwMaskCnt;
}
+
int ExchangeMasksByID(DWORD mID1, DWORD mID2, LISTMODERNMASK * mmTemplateList)
{
if (!mmTemplateList) return 0;
@@ -195,15 +203,16 @@ int SortMaskList(LISTMODERNMASK * mmList)
DWORD pos = 1;
if (mmList->dwMaskCnt < 2) return 0;
do {
- if (mmList->pl_Masks[pos].dwMaskId < mmList->pl_Masks[pos - 1].dwMaskId) {
- ExchangeMasksByID(pos, pos - 1, mmList);
+ if (mmList->pl_Masks[pos].dwMaskId < mmList->pl_Masks[pos-1].dwMaskId)
+ {
+ ExchangeMasksByID(pos, pos-1, mmList);
pos--;
if (pos < 1)
pos = 1;
}
else
pos++;
- } while (pos < mmList->dwMaskCnt);
+ } while(pos < mmList->dwMaskCnt);
return 1;
}
@@ -214,15 +223,14 @@ enum
EXCEPTION_NOT_EQUAL = 1,
EXCEPTION_WILD = 2,
};
-
-static BOOL _GetParamValue(char * szText, unsigned int& start, unsigned int length, char* &param, unsigned int& paramlen, char* &value, unsigned int& valuelen, int& except)
+static BOOL _GetParamValue( char * szText, unsigned int& start, unsigned int length, char* &param, unsigned int& paramlen, char* &value, unsigned int& valuelen, int& except )
{
char * curChar = szText + start;
char * lastChar = szText + length;
enum { STATE_PARAM, STATE_VALUE };
int state = STATE_PARAM;
- if (start >= length) return FALSE;
+ if ( start >= length ) return FALSE;
paramlen = 0;
valuelen = 0;
@@ -232,17 +240,20 @@ static BOOL _GetParamValue(char * szText, unsigned int& start, unsigned int leng
except = EXCEPTION_EQUAL;
param = curChar;
+
BOOL exitLoop = false;
- while (!exitLoop) {
- switch (*curChar) {
+ while (!exitLoop )
+ {
+ switch ( *curChar )
+ {
case '^':
- if (state == STATE_VALUE) break;
+ if ( state == STATE_VALUE ) break;
except |= EXCEPTION_NOT_EQUAL;
exitLoop = TRUE;
//fall trough
case '=':
- if (state == STATE_VALUE) break;
+ if ( state == STATE_VALUE ) break;
//search value end
paramlen = curChar - param;
exitLoop = TRUE;
@@ -250,8 +261,9 @@ static BOOL _GetParamValue(char * szText, unsigned int& start, unsigned int leng
case ',':
default:
- if (*curChar != ',' && curChar < lastChar) break;
- if (state == STATE_PARAM) {
+ if ( *curChar != ',' && curChar < lastChar ) break;
+ if ( state == STATE_PARAM )
+ {
// no parameter name only value
value = param;
param = NULL;
@@ -261,56 +273,67 @@ static BOOL _GetParamValue(char * szText, unsigned int& start, unsigned int leng
exitLoop = TRUE;
break;
case '*': case '?':
- if (state == STATE_PARAM) break;
+ if (state == STATE_PARAM ) break;
except |= EXCEPTION_WILD;
break;
}
- if (exitLoop) {
- if (state == STATE_PARAM) {
+ if ( exitLoop)
+ {
+ if (state == STATE_PARAM )
+ {
paramlen = curChar - param;
state = STATE_VALUE;
curChar++; //skip Sign
value = curChar;
exitLoop = FALSE;
}
- else if (state == STATE_VALUE) {
+ else if ( state == STATE_VALUE )
+ {
valuelen = curChar - value;
}
}
- else curChar++;
+ else
+ {
+ curChar++;
+ }
}
+
start = curChar - szText + 1;
// skip spaces
- if (value && valuelen) {
- while (*value == ' ' || *value == '\t') {
+ if ( value && valuelen )
+ {
+ while ( *value == ' ' || *value == '\t' )
+ {
value++;
valuelen--;
}
- while (*(value + valuelen - 1) == ' ' || *(value + valuelen - 1) == '\t')
+ while ( *( value + valuelen - 1) == ' ' || *( value + valuelen -1 ) == '\t' )
valuelen--;
}
- if (param && paramlen) {
- while (*param == ' ' || *param == '\t') {
+ if ( param && paramlen )
+ {
+ while (*param == ' ' || *param == '\t' )
+ {
param++;
paramlen--;
}
- while (*(param + paramlen - 1) == ' ' || *(param + paramlen - 1) == '\t')
+ while (*(param+paramlen-1) == ' ' || *(param+paramlen-1) == '\t' )
paramlen--;
}
- return (value || param);
+ return ( value || param );
}
-int ParseToModernMask(MODERNMASK *mm, char * szText)
+int ParseToModernMask(MODERNMASK *mm, char *szText)
{
if (!mm || !szText) return -1;
- size_t textLen = mir_strlen(szText);
+ unsigned int textLen = (unsigned)mir_strlen(szText);
BYTE curParam = 0;
- MASKPARAM param = { 0 };
+ MASKPARAM param = {0};
unsigned int startPos = 0;
char * pszParam;
@@ -319,47 +342,52 @@ int ParseToModernMask(MODERNMASK *mm, char * szText)
unsigned int valuelen;
int except;
- while (_GetParamValue(szText, startPos, textLen, pszParam, paramlen, pszValue, valuelen, except)) {
- if (except & EXCEPTION_NOT_EQUAL)
+ while ( _GetParamValue( szText, startPos, textLen, pszParam, paramlen, pszValue, valuelen, except))
+ {
+ if ( except & EXCEPTION_NOT_EQUAL )
param.bMaskParamFlag = MPF_NOT_EQUAL;
else
param.bMaskParamFlag = MPF_EQUAL;
//Get param name
- if (pszParam && paramlen) {
- param.szName = strdupn(pszParam, paramlen);
- param.dwId = mod_CalcHash(param.szName);
+ if ( pszParam && paramlen )
+ {
+ param.szName = strdupn( pszParam, paramlen);
+ param.dwId = mod_CalcHash( param.szName );
}
else //ParamName = 'Module'
{
param.szName = _strdup("Module");
- param.dwId = mod_CalcHash(param.szName);
+ param.dwId = mod_CalcHash( param.szName );
}
- param.szValue = strdupn(pszValue, valuelen);
+ param.szValue = strdupn( pszValue, valuelen );
- if (!(except & EXCEPTION_WILD)) {
- param.dwValueHash = mod_CalcHash(param.szValue);
+ if (!(except & EXCEPTION_WILD))
+ {
+ param.dwValueHash = mod_CalcHash( param.szValue );
param.bMaskParamFlag |= MPF_HASHED;
}
- if (curParam >= mm->dwParamCnt) {
- mm->pl_Params = (MASKPARAM*)realloc(mm->pl_Params, (mm->dwParamCnt + 1)*sizeof(MASKPARAM));
+ if (curParam >= mm->dwParamCnt)
+ {
+ mm->pl_Params = (MASKPARAM*)realloc(mm->pl_Params,(mm->dwParamCnt+1)*sizeof(MASKPARAM));
mm->dwParamCnt++;
}
- memmove(&(mm->pl_Params[curParam]), &param, sizeof(MASKPARAM));
+ memmove(&(mm->pl_Params[curParam]),&param,sizeof(MASKPARAM));
curParam++;
memset(&param, 0, sizeof(MASKPARAM));
}
return 0;
-}
+};
BOOL CompareModernMask(MODERNMASK *mmValue, MODERNMASK *mmTemplate)
{
//TODO
BOOL res = TRUE;
BYTE pVal = 0, pTemp = 0;
- while (pTemp < mmTemplate->dwParamCnt && pVal < mmValue->dwParamCnt) {
+ while (pTemp < mmTemplate->dwParamCnt && pVal < mmValue->dwParamCnt)
+ {
// find pTemp parameter in mValue
DWORD vh, ph;
BOOL finded = 0;
@@ -367,83 +395,87 @@ BOOL CompareModernMask(MODERNMASK *mmValue, MODERNMASK *mmTemplate)
ph = p.dwId;
vh = p.dwValueHash;
pVal = 0;
- if (p.bMaskParamFlag& MPF_HASHED) { //compare by hash
- while (pVal < mmValue->dwParamCnt && mmValue->pl_Params[pVal].bMaskParamFlag != 0) {
- if (mmValue->pl_Params[pVal].dwId == ph) {
- if (mmValue->pl_Params[pVal].dwValueHash == vh) { finded = 1; break; }
- else { finded = 0; break; }
+ if ( p.bMaskParamFlag& MPF_HASHED ) //compare by hash
+ while (pVal < mmValue->dwParamCnt && mmValue->pl_Params[pVal].bMaskParamFlag != 0)
+ {
+ if (mmValue->pl_Params[pVal].dwId == ph)
+ {
+ if (mmValue->pl_Params[pVal].dwValueHash == vh){finded = 1; break;}
+ else {finded = 0; break;}
}
pVal++;
}
- }
- else {
- while (mmValue->pl_Params[pVal].bMaskParamFlag != 0) {
- if (mmValue->pl_Params[pVal].dwId == ph) {
- if (wildcmp(mmValue->pl_Params[pVal].szValue, p.szValue)) { finded = 1; break; }
- else { finded = 0; break; }
+ else
+ while (mmValue->pl_Params[pVal].bMaskParamFlag != 0)
+ {
+ if (mmValue->pl_Params[pVal].dwId == ph)
+ {
+ if (wildcmp(mmValue->pl_Params[pVal].szValue,p.szValue)){finded = 1; break;}
+ else {finded = 0; break;}
}
pVal++;
}
- if (!((finded && !(p.bMaskParamFlag&MPF_DIFF)) || (!finded && (p.bMaskParamFlag&MPF_DIFF)))) {
- res = FALSE;
- break;
- }
- pTemp++;
- }
+ if (!((finded && !(p.bMaskParamFlag&MPF_DIFF)) || (!finded && (p.bMaskParamFlag&MPF_DIFF))))
+ {res = FALSE; break;}
+ pTemp++;
}
return res;
-}
+};
-BOOL CompareStrWithModernMask(char * szValue, MODERNMASK *mmTemplate)
+BOOL CompareStrWithModernMask(char * szValue,MODERNMASK *mmTemplate)
{
- MODERNMASK mmValue = { 0 };
+ MODERNMASK mmValue = {0};
int res;
- if (!ParseToModernMask(&mmValue, szValue)) {
- res = CompareModernMask(&mmValue, mmTemplate);
+ if (!ParseToModernMask(&mmValue, szValue))
+ {
+ res = CompareModernMask(&mmValue,mmTemplate);
SkinSelector_DeleteMask(&mmValue);
return res;
}
else return 0;
-}
+};
//AddingMask
-int AddStrModernMaskToList(DWORD maskID, char *szStr, char *objectName, LISTMODERNMASK *mmTemplateList, void *pObjectList)
+int AddStrModernMaskToList(DWORD maskID, char * szStr, char * objectName, LISTMODERNMASK * mmTemplateList, void * pObjectList)
{
if (!szStr || !mmTemplateList) return -1;
- MODERNMASK mm = { 0 };
- if (ParseToModernMask(&mm, szStr))
- return -1;
+ MODERNMASK mm = {0};
+ if (ParseToModernMask(&mm,szStr)) return -1;
mm.bObjectFound = FALSE;
mm.szObjectName = mir_strdup(objectName);
//mm.pObject = (void*) ske_FindObjectByName(objectName, OT_ANY, (SKINOBJECTSLIST*) pObjectList);
mm.dwMaskId = maskID;
- return AddModernMaskToList(&mm, mmTemplateList);
+ return AddModernMaskToList(&mm,mmTemplateList);
}
//Searching
-MODERNMASK* FindMaskByStr(char *szValue, LISTMODERNMASK *mmTemplateList)
+MODERNMASK * FindMaskByStr(char * szValue,LISTMODERNMASK * mmTemplateList)
{
//TODO
return NULL;
}
-SKINOBJECTDESCRIPTOR* skin_FindObjectByMask(MODERNMASK *mm, LISTMODERNMASK * mmTemplateList)
+SKINOBJECTDESCRIPTOR * skin_FindObjectByMask (MODERNMASK *mm,LISTMODERNMASK * mmTemplateList)
{
- DWORD i = 0;
- while (i < mmTemplateList->dwMaskCnt) {
- if (CompareModernMask(mm, &(mmTemplateList->pl_Masks[i])))
- return (SKINOBJECTDESCRIPTOR*)mmTemplateList->pl_Masks[i].pObject;
-
+ SKINOBJECTDESCRIPTOR * res = NULL;
+ DWORD i=0;
+ while (i < mmTemplateList->dwMaskCnt)
+ {
+ if (CompareModernMask(mm,&(mmTemplateList->pl_Masks[i])))
+ {
+ res = (SKINOBJECTDESCRIPTOR*) mmTemplateList->pl_Masks[i].pObject;
+ return res;
+ }
i++;
}
- return NULL;
+ return res;
}
-SKINOBJECTDESCRIPTOR* skin_FindObjectByRequest(char * szValue, LISTMODERNMASK * mmTemplateList)
+SKINOBJECTDESCRIPTOR * skin_FindObjectByRequest(char * szValue,LISTMODERNMASK * mmTemplateList)
{
- MODERNMASK mm = { 0 };
+ MODERNMASK mm = {0};
SKINOBJECTDESCRIPTOR * res = NULL;
if (!mmTemplateList)
if (g_SkinObjectList.pMaskList)
@@ -452,75 +484,83 @@ SKINOBJECTDESCRIPTOR* skin_FindObjectByRequest(char * szValue, LISTMODERNMASK *
return NULL;
if (!mmTemplateList) return NULL;
- ParseToModernMask(&mm, szValue);
- res = skin_FindObjectByMask(&mm, mmTemplateList);
+ ParseToModernMask(&mm,szValue);
+ res = skin_FindObjectByMask(&mm,mmTemplateList);
SkinSelector_DeleteMask(&mm);
return res;
}
-TCHAR* GetParamNT(char *string, TCHAR *buf, int buflen, BYTE paramN, char Delim, BOOL SkipSpaces)
+TCHAR * GetParamNT(char * string, TCHAR * buf, int buflen, BYTE paramN, char Delim, BOOL SkipSpaces)
{
- char *ansibuf = (char*)mir_alloc(buflen / sizeof(TCHAR));
- GetParamN(string, ansibuf, buflen / sizeof(TCHAR), paramN, Delim, SkipSpaces);
- MultiByteToWideChar(CP_UTF8, 0, ansibuf, -1, buf, buflen);
+ char *ansibuf = (char*)mir_alloc(buflen/sizeof(TCHAR));
+ GetParamN(string, ansibuf, buflen/sizeof(TCHAR), paramN, Delim, SkipSpaces);
+ MultiByteToWideChar(CP_UTF8, 0, ansibuf,-1,buf,buflen);
mir_free(ansibuf);
return buf;
}
WCHAR* GetParamN(WCHAR *string, WCHAR *buf, int buflen, BYTE paramN, WCHAR Delim, BOOL SkipSpaces)
{
- int i = 0;
+ int i=0;
DWORD start = 0;
DWORD end = 0;
DWORD CurentCount = 0;
DWORD len;
- while (i < mir_tstrlen(string)) {
- if (string[i] == Delim) {
+ while (i < mir_tstrlen(string))
+ {
+ if (string[i] == Delim)
+ {
if (CurentCount == paramN) break;
- start = i + 1;
+ start = i+1;
CurentCount++;
}
i++;
}
- if (CurentCount == paramN) {
- if (SkipSpaces) { //remove spaces
+ if (CurentCount == paramN)
+ {
+ if (SkipSpaces)
+ { //remove spaces
while (string[start] == ' ' && (int)start < mir_tstrlen(string))
start++;
- while (i>1 && string[i - 1] == ' ' && i > (int)start)
+ while (i>1 && string[i-1] == ' ' && i>(int)start)
i--;
}
- len = ((int)(i - start) < buflen) ? i - start : buflen;
- _tcsncpy(buf, string + start, len);
+ len = ((int)(i-start) < buflen)?i-start:buflen;
+ _tcsncpy(buf, string+start, len);
buf[len] = '\0';
}
else buf[0] = '\0';
return buf;
}
-char* GetParamN(char *string, char *buf, int buflen, BYTE paramN, char Delim, BOOL SkipSpaces)
+char * GetParamN(char * string, char * buf, int buflen, BYTE paramN, char Delim, BOOL SkipSpaces)
{
- int i = 0;
+ int i=0;
DWORD start = 0;
DWORD end = 0;
DWORD CurentCount = 0;
DWORD len;
- while (i < mir_strlen(string)) {
- if (string[i] == Delim) {
+ while (i < mir_strlen(string))
+ {
+ if (string[i] == Delim)
+ {
if (CurentCount == paramN) break;
- start = i + 1;
+ start = i+1;
CurentCount++;
}
i++;
}
- if (CurentCount == paramN) {
- if (SkipSpaces) { //remove spaces
+ if (CurentCount == paramN)
+ {
+ if (SkipSpaces)
+ { //remove spaces
while (string[start] == ' ' && (int)start < mir_strlen(string))
start++;
- while (i>1 && string[i - 1] == ' ' && i > (int)start)
+ while (i>1 && string[i-1] == ' ' && i>(int)start)
i--;
}
- len = ((int)(i - start) < buflen) ? i - start : buflen;
- strncpy(buf, string + start, len);
+ len = ((int)(i-start) < buflen)?i-start:buflen;
+ strncpy(buf,string+start,len);
buf[len] = '\0';
}
else buf[0] = '\0';
@@ -530,51 +570,52 @@ char* GetParamN(char *string, char *buf, int buflen, BYTE paramN, char Delim, BO
//Parse DB string and add buttons
int RegisterButtonByParce(char * ObjectName, char * Params)
{
- char buf[255];
+ char buf [255];
int res;
- GetParamN(Params, buf, SIZEOF(buf), 0, ',', 0);
-
- //Push type
- char buf2[20] = { 0 };
- char pServiceName[255] = { 0 };
- char pStatusServiceName[255] = { 0 };
- int Left, Top, Right, Bottom;
- int MinWidth, MinHeight;
- char TL[9] = { 0 };
- TCHAR Hint[250] = { 0 };
- char Section[250] = { 0 };
- char Type[250] = { 0 };
-
- DWORD alingnto;
- int a = ((int)mir_bool_strcmpi(buf, "Switch")) * 2;
-
- GetParamN(Params, pServiceName, SIZEOF(pServiceName), 1, ',', 0);
- // if (a) GetParamN(Params,pStatusServiceName, sizeof(pStatusServiceName),a+1,',',0);
- Left = atoi(GetParamN(Params, buf2, SIZEOF(buf2), a + 2, ',', 0));
- Top = atoi(GetParamN(Params, buf2, SIZEOF(buf2), a + 3, ',', 0));
- Right = atoi(GetParamN(Params, buf2, SIZEOF(buf2), a + 4, ',', 0));
- Bottom = atoi(GetParamN(Params, buf2, SIZEOF(buf2), a + 5, ',', 0));
- GetParamN(Params, TL, SIZEOF(TL), a + 6, ',', 0);
-
- MinWidth = atoi(GetParamN(Params, buf2, SIZEOF(buf2), a + 7, ',', 0));
- MinHeight = atoi(GetParamN(Params, buf2, SIZEOF(buf2), a + 8, ',', 0));
- GetParamNT(Params, Hint, SIZEOF(Hint), a + 9, ',', 0);
- if (a) {
- GetParamN(Params, Section, SIZEOF(Section), 2, ',', 0);
- GetParamN(Params, Type, SIZEOF(Type), 3, ',', 0);
+ GetParamN(Params,buf, SIZEOF(buf), 0, ',',0);
+ // if (boolstrcmpi("Push",buf)
+ { //Push type
+ char buf2[20] = {0};
+ char pServiceName[255] = {0};
+ char pStatusServiceName[255] = {0};
+ int Left, Top,Right,Bottom;
+ int MinWidth, MinHeight;
+ char TL[9] = {0};
+ TCHAR Hint[250] = {0};
+ char Section[250] = {0};
+ char Type[250] = {0};
+
+ DWORD alingnto;
+ int a = ((int)mir_bool_strcmpi(buf,"Switch"))*2;
+
+ GetParamN(Params,pServiceName, SIZEOF(pServiceName),1,',',0);
+ // if (a) GetParamN(Params,pStatusServiceName, sizeof(pStatusServiceName),a+1,',',0);
+ Left = atoi(GetParamN(Params,buf2, SIZEOF(buf2),a+2,',',0));
+ Top = atoi(GetParamN(Params,buf2, SIZEOF(buf2),a+3,',',0));
+ Right = atoi(GetParamN(Params,buf2, SIZEOF(buf2),a+4,',',0));
+ Bottom = atoi(GetParamN(Params,buf2, SIZEOF(buf2),a+5,',',0));
+ GetParamN(Params,TL, SIZEOF(TL),a+6,',',0);
+
+ MinWidth = atoi(GetParamN(Params,buf2, SIZEOF(buf2),a+7,',',0));
+ MinHeight = atoi(GetParamN(Params,buf2, SIZEOF(buf2),a+8,',',0));
+ GetParamNT(Params,Hint, SIZEOF(Hint),a+9,',',0);
+ if (a)
+ {
+ GetParamN(Params,Section, SIZEOF(Section),2,',',0);
+ GetParamN(Params,Type, SIZEOF(Type),3,',',0);
+ }
+ alingnto = ((TL[0] == 'R') ? SBF_ALIGN_TL_RIGHT : 0 )
+ +((TL[0] == 'C') ? SBF_ALIGN_TL_HCENTER : 0 )
+ +((TL[1] == 'B') ? SBF_ALIGN_TL_BOTTOM : 0 )
+ +((TL[1] == 'C') ? SBF_ALIGN_TL_VCENTER : 0 )
+ +((TL[2] == 'R') ? SBF_ALIGN_BR_RIGHT : 0 )
+ +((TL[2] == 'C') ? SBF_ALIGN_BR_HCENTER : 0 )
+ +((TL[3] == 'B') ? SBF_ALIGN_BR_BOTTOM : 0 )
+ +((TL[3] == 'C') ? SBF_ALIGN_BR_VCENTER : 0 )
+ +((TL[4] == 'I') ? SBF_CALL_ON_PRESS : 0 );
+ if (a) res = ModernSkinButton_AddButton(pcli->hwndContactList,ObjectName+1,pServiceName,pStatusServiceName,"\0",Left,Top,Right,Bottom,alingnto,TranslateTS(Hint),Section,Type,MinWidth,MinHeight);
+ else res = ModernSkinButton_AddButton(pcli->hwndContactList,ObjectName+1,pServiceName,pStatusServiceName,"\0",Left,Top,Right,Bottom,alingnto,TranslateTS(Hint),NULL,NULL,MinWidth,MinHeight);
}
- alingnto = ((TL[0] == 'R') ? SBF_ALIGN_TL_RIGHT : 0)
- + ((TL[0] == 'C') ? SBF_ALIGN_TL_HCENTER : 0)
- + ((TL[1] == 'B') ? SBF_ALIGN_TL_BOTTOM : 0)
- + ((TL[1] == 'C') ? SBF_ALIGN_TL_VCENTER : 0)
- + ((TL[2] == 'R') ? SBF_ALIGN_BR_RIGHT : 0)
- + ((TL[2] == 'C') ? SBF_ALIGN_BR_HCENTER : 0)
- + ((TL[3] == 'B') ? SBF_ALIGN_BR_BOTTOM : 0)
- + ((TL[3] == 'C') ? SBF_ALIGN_BR_VCENTER : 0)
- + ((TL[4] == 'I') ? SBF_CALL_ON_PRESS : 0);
- if (a) res = ModernSkinButton_AddButton(pcli->hwndContactList, ObjectName + 1, pServiceName, pStatusServiceName, "\0", Left, Top, Right, Bottom, alingnto, TranslateTS(Hint), Section, Type, MinWidth, MinHeight);
- else res = ModernSkinButton_AddButton(pcli->hwndContactList, ObjectName + 1, pServiceName, pStatusServiceName, "\0", Left, Top, Right, Bottom, alingnto, TranslateTS(Hint), NULL, NULL, MinWidth, MinHeight);
-
return res;
}
@@ -586,79 +627,90 @@ int RegisterButtonByParce(char * ObjectName, char * Params)
int RegisterObjectByParce(char * ObjectName, char * Params)
{
if (!ObjectName || !Params) return 0;
-
- int res = 0;
- SKINOBJECTDESCRIPTOR obj = { 0 };
- char buf[250];
- obj.szObjectID = mir_strdup(ObjectName);
- GetParamN(Params, buf, SIZEOF(buf), 0, ',', 0);
- if (mir_bool_strcmpi(buf, "Glyph"))
- obj.bType = OT_GLYPHOBJECT;
- else if (mir_bool_strcmpi(buf, "Font"))
- obj.bType = OT_FONTOBJECT;
-
- if (obj.bType != OT_GLYPHOBJECT)
- return 0;
-
- GLYPHOBJECT gl = { 0 };
- GetParamN(Params, buf, SIZEOF(buf), 1, ',', 0);
- if (mir_bool_strcmpi(buf, "Solid")) {
- //Solid
- int r, g, b;
- gl.Style = ST_BRUSH;
- r = atoi(GetParamN(Params, buf, SIZEOF(buf), 2, ',', 0));
- g = atoi(GetParamN(Params, buf, SIZEOF(buf), 3, ',', 0));
- b = atoi(GetParamN(Params, buf, SIZEOF(buf), 4, ',', 0));
- gl.dwAlpha = atoi(GetParamN(Params, buf, SIZEOF(buf), 5, ',', 0));
- gl.dwColor = RGB(r, g, b);
- }
- else if (mir_bool_strcmpi(buf, "Image")) {
- //Image
- gl.Style = ST_IMAGE;
- gl.szFileName = mir_strdup(GetParamN(Params, buf, SIZEOF(buf), 2, ',', 0));
- gl.dwLeft = atoi(GetParamN(Params, buf, SIZEOF(buf), 4, ',', 0));
- gl.dwTop = atoi(GetParamN(Params, buf, SIZEOF(buf), 5, ',', 0));
- gl.dwRight = atoi(GetParamN(Params, buf, SIZEOF(buf), 6, ',', 0));
- gl.dwBottom = atoi(GetParamN(Params, buf, SIZEOF(buf), 7, ',', 0));
- gl.dwAlpha = atoi(GetParamN(Params, buf, SIZEOF(buf), 8, ',', 0));
- GetParamN(Params, buf, SIZEOF(buf), 3, ',', 0);
- if (mir_bool_strcmpi(buf, "TileBoth")) gl.FitMode = FM_TILE_BOTH;
- else if (mir_bool_strcmpi(buf, "TileVert")) gl.FitMode = FM_TILE_VERT;
- else if (mir_bool_strcmpi(buf, "TileHorz")) gl.FitMode = FM_TILE_HORZ;
- else gl.FitMode = 0;
- }
- else if (mir_bool_strcmpi(buf, "Fragment")) {
- //Image
- gl.Style = ST_FRAGMENT;
- gl.szFileName = mir_strdup(GetParamN(Params, buf, SIZEOF(buf), 2, ',', 0));
-
- gl.clipArea.x = atoi(GetParamN(Params, buf, SIZEOF(buf), 3, ',', 0));
- gl.clipArea.y = atoi(GetParamN(Params, buf, SIZEOF(buf), 4, ',', 0));
- gl.szclipArea.cx = atoi(GetParamN(Params, buf, SIZEOF(buf), 5, ',', 0));
- gl.szclipArea.cy = atoi(GetParamN(Params, buf, SIZEOF(buf), 6, ',', 0));
-
- gl.dwLeft = atoi(GetParamN(Params, buf, SIZEOF(buf), 8, ',', 0));
- gl.dwTop = atoi(GetParamN(Params, buf, SIZEOF(buf), 9, ',', 0));
- gl.dwRight = atoi(GetParamN(Params, buf, SIZEOF(buf), 10, ',', 0));
- gl.dwBottom = atoi(GetParamN(Params, buf, SIZEOF(buf), 11, ',', 0));
- gl.dwAlpha = atoi(GetParamN(Params, buf, SIZEOF(buf), 12, ',', 0));
- GetParamN(Params, buf, SIZEOF(buf), 7, ',', 0);
- if (mir_bool_strcmpi(buf, "TileBoth")) gl.FitMode = FM_TILE_BOTH;
- else if (mir_bool_strcmpi(buf, "TileVert")) gl.FitMode = FM_TILE_VERT;
- else if (mir_bool_strcmpi(buf, "TileHorz")) gl.FitMode = FM_TILE_HORZ;
- else gl.FitMode = 0;
- }
- else {
- //None
- gl.Style = ST_SKIP;
+ {
+ int res = 0;
+ SKINOBJECTDESCRIPTOR obj = {0};
+ char buf[250];
+ obj.szObjectID = mir_strdup(ObjectName);
+ GetParamN(Params,buf, SIZEOF(buf), 0, ',',0);
+ if (mir_bool_strcmpi(buf,"Glyph"))
+ obj.bType = OT_GLYPHOBJECT;
+ else if (mir_bool_strcmpi(buf,"Font"))
+ obj.bType = OT_FONTOBJECT;
+
+ switch (obj.bType)
+ {
+ case OT_GLYPHOBJECT:
+ {
+ GLYPHOBJECT gl = {0};
+ GetParamN(Params,buf, SIZEOF(buf),1,',',0);
+ if (mir_bool_strcmpi(buf,"Solid"))
+ {
+ //Solid
+ int r,g,b;
+ gl.Style = ST_BRUSH;
+ r = atoi(GetParamN(Params,buf, SIZEOF(buf),2,',',0));
+ g = atoi(GetParamN(Params,buf, SIZEOF(buf),3,',',0));
+ b = atoi(GetParamN(Params,buf, SIZEOF(buf),4,',',0));
+ gl.dwAlpha = atoi(GetParamN(Params,buf, SIZEOF(buf),5,',',0));
+ gl.dwColor = RGB(r,g,b);
+ }
+ else if (mir_bool_strcmpi(buf,"Image"))
+ {
+ //Image
+ gl.Style = ST_IMAGE;
+ gl.szFileName = mir_strdup(GetParamN(Params,buf, SIZEOF(buf),2,',',0));
+ gl.dwLeft = atoi(GetParamN(Params,buf, SIZEOF(buf),4,',',0));
+ gl.dwTop = atoi(GetParamN(Params,buf, SIZEOF(buf),5,',',0));
+ gl.dwRight = atoi(GetParamN(Params,buf, SIZEOF(buf),6,',',0));
+ gl.dwBottom = atoi(GetParamN(Params,buf, SIZEOF(buf),7,',',0));
+ gl.dwAlpha = atoi(GetParamN(Params,buf, SIZEOF(buf),8,',',0));
+ GetParamN(Params,buf, SIZEOF(buf),3,',',0);
+ if (mir_bool_strcmpi(buf,"TileBoth")) gl.FitMode = FM_TILE_BOTH;
+ else if (mir_bool_strcmpi(buf,"TileVert")) gl.FitMode = FM_TILE_VERT;
+ else if (mir_bool_strcmpi(buf,"TileHorz")) gl.FitMode = FM_TILE_HORZ;
+ else gl.FitMode = 0;
+ }
+ else if (mir_bool_strcmpi(buf,"Fragment"))
+ {
+ //Image
+ gl.Style = ST_FRAGMENT;
+ gl.szFileName = mir_strdup(GetParamN(Params,buf, SIZEOF(buf),2,',',0));
+
+ gl.clipArea.x = atoi(GetParamN(Params,buf, SIZEOF(buf),3,',',0));
+ gl.clipArea.y = atoi(GetParamN(Params,buf, SIZEOF(buf),4,',',0));
+ gl.szclipArea.cx = atoi(GetParamN(Params,buf, SIZEOF(buf),5,',',0));
+ gl.szclipArea.cy = atoi(GetParamN(Params,buf, SIZEOF(buf),6,',',0));
+
+ gl.dwLeft = atoi(GetParamN(Params,buf, SIZEOF(buf),8,',',0));
+ gl.dwTop = atoi(GetParamN(Params,buf, SIZEOF(buf),9,',',0));
+ gl.dwRight = atoi(GetParamN(Params,buf, SIZEOF(buf),10, ',',0));
+ gl.dwBottom = atoi(GetParamN(Params,buf, SIZEOF(buf),11,',',0));
+ gl.dwAlpha = atoi(GetParamN(Params,buf, SIZEOF(buf),12,',',0));
+ GetParamN(Params,buf, SIZEOF(buf),7,',',0);
+ if (mir_bool_strcmpi(buf,"TileBoth")) gl.FitMode = FM_TILE_BOTH;
+ else if (mir_bool_strcmpi(buf,"TileVert")) gl.FitMode = FM_TILE_VERT;
+ else if (mir_bool_strcmpi(buf,"TileHorz")) gl.FitMode = FM_TILE_HORZ;
+ else gl.FitMode = 0;
+ }
+ else
+ {
+ //None
+ gl.Style = ST_SKIP;
+ }
+ obj.Data = &gl;
+ res = ske_AddDescriptorToSkinObjectList(&obj,NULL);
+ mir_free_and_nil(obj.szObjectID);
+ mir_free_and_nil(gl.szFileName);
+ return res;
+ }
+ break;
+ }
}
- obj.Data = &gl;
- res = ske_AddDescriptorToSkinObjectList(&obj, NULL);
- mir_free_and_nil(obj.szObjectID);
- mir_free_and_nil(gl.szFileName);
- return res;
+ return 0;
}
+
int SkinDrawGlyphMask(HDC hdc, RECT *rcSize, RECT *rcClip, MODERNMASK *ModernMask)
{
if (!ModernMask) return 0;
@@ -667,28 +719,29 @@ int SkinDrawGlyphMask(HDC hdc, RECT *rcSize, RECT *rcClip, MODERNMASK *ModernMas
rq.hDC = hdc;
rq.rcDestRect = *rcSize;
rq.rcClipRect = *rcClip;
- strncpy(rq.szObjectID, "Masked draw", SIZEOF("Masked draw"));
- return ske_Service_DrawGlyph((WPARAM)&rq, (LPARAM)ModernMask);
+ strncpy(rq.szObjectID,"Masked draw",SIZEOF("Masked draw"));
+ return ske_Service_DrawGlyph((WPARAM)&rq,(LPARAM)ModernMask);
}
+
int __inline SkinDrawWindowBack(HWND hwndIn, HDC hdc, RECT *rcClip, char * objectID)
{
SKINDRAWREQUEST rq;
- POINT pt = { 0 };
- RECT rc, r1;
+ POINT pt = {0};
+ RECT rc,r1;
HWND hwnd = (HWND)CallService(MS_CLUI_GETHWND, 0, 0);
if (!objectID) return 0;
- GetWindowRect(hwndIn, &r1);
+ GetWindowRect(hwndIn,&r1);
pt.x = r1.left;
pt.y = r1.top;
//ClientToScreen(hwndIn,&pt);
- GetWindowRect(hwnd, &rc);
- OffsetRect(&rc, -pt.x, -pt.y);
+ GetWindowRect(hwnd,&rc);
+ OffsetRect(&rc,-pt.x ,-pt.y);
rq.hDC = hdc;
rq.rcDestRect = rc;
rq.rcClipRect = *rcClip;
- strncpy(rq.szObjectID, objectID, SIZEOF(rq.szObjectID));
+ strncpy(rq.szObjectID,objectID,SIZEOF(rq.szObjectID));
///ske_Service_DrawGlyph((WPARAM)&rq,0); //$$$
- return CallService(MS_SKIN_DRAWGLYPH, (WPARAM)&rq, 0);
+ return CallService(MS_SKIN_DRAWGLYPH,(WPARAM)&rq,0);
}