diff options
Diffstat (limited to 'src/modules/clist')
-rw-r--r-- | src/modules/clist/clistmenus.cpp | 8 | ||||
-rw-r--r-- | src/modules/clist/clisttray.cpp | 21 |
2 files changed, 13 insertions, 16 deletions
diff --git a/src/modules/clist/clistmenus.cpp b/src/modules/clist/clistmenus.cpp index 4b54616adf..ce37c3ad59 100644 --- a/src/modules/clist/clistmenus.cpp +++ b/src/modules/clist/clistmenus.cpp @@ -451,7 +451,13 @@ INT_PTR StatusMenuCheckService(WPARAM wParam, LPARAM) StatusMenuExecParam *smep = (StatusMenuExecParam*)pcpp->MenuItemOwnerData;
if (smep && !smep->status && smep->custom) {
if (wildcmp(smep->svc, "*XStatus*")) {
- int XStatus = CallProtoServiceInt(NULL,smep->proto, "/GetXStatus", 0, 0);
+ int XStatus;
+ CUSTOM_STATUS cs = { sizeof(cs) };
+ cs.flags = CSSF_MASK_STATUS;
+ cs.status = &XStatus;
+ if ( CallProtoServiceInt(NULL, smep->proto, PS_GETCUSTOMSTATUSEX, 0, (LPARAM)&cs) != 0)
+ XStatus = 0;
+
char buf[255];
mir_snprintf(buf, sizeof(buf), "*XStatus%d", XStatus);
diff --git a/src/modules/clist/clisttray.cpp b/src/modules/clist/clisttray.cpp index 351ca78a7b..12d177eb2c 100644 --- a/src/modules/clist/clisttray.cpp +++ b/src/modules/clist/clisttray.cpp @@ -54,21 +54,12 @@ static TCHAR* sttGetXStatus(const char* szProto) TCHAR* result = NULL;
if (CallProtoServiceInt(NULL,szProto, PS_GETSTATUS, 0, 0) > ID_STATUS_OFFLINE) {
- char str[MAXMODULELABELLENGTH];
- mir_snprintf(str, sizeof(str), "%s/GetXStatus", szProto);
- if (ServiceExists(str)) {
- char* dbTitle = "XStatusName";
- char* dbTitle2 = NULL;
- int xstatus = CallProtoServiceInt(NULL,szProto, "/GetXStatus", (WPARAM)&dbTitle, (LPARAM)&dbTitle2);
- if (dbTitle && xstatus) {
- DBVARIANT dbv = {0};
- if ( !DBGetContactSettingTString(NULL, szProto, dbTitle, &dbv)) {
- if (dbv.ptszVal[0] != 0)
- result = mir_tstrdup(dbv.ptszVal);
- db_free(&dbv);
- }
- }
- }
+ TCHAR tszStatus[512];
+ CUSTOM_STATUS cs = { sizeof(cs) };
+ cs.flags = CSSF_MASK_MESSAGE | CSSF_TCHAR;
+ cs.ptszMessage = tszStatus;
+ if ( CallProtoServiceInt(NULL, szProto, PS_GETCUSTOMSTATUSEX, 0, (LPARAM)&cs) == 0)
+ result = mir_tstrdup(tszStatus);
}
return result;
|