From 8501b9e4faa15257535e71b766f06f16b7971e39 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Thu, 25 Jun 2015 14:04:38 +0000 Subject: - warning fix - code cleaning git-svn-id: http://svn.miranda-ng.org/main/trunk@14381 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/TrafficCounter/src/TrafficCounter.cpp | 843 ++++++++++++-------------- 1 file changed, 385 insertions(+), 458 deletions(-) (limited to 'plugins/TrafficCounter/src/TrafficCounter.cpp') diff --git a/plugins/TrafficCounter/src/TrafficCounter.cpp b/plugins/TrafficCounter/src/TrafficCounter.cpp index e464d888c2..03c63386d2 100644 --- a/plugins/TrafficCounter/src/TrafficCounter.cpp +++ b/plugins/TrafficCounter/src/TrafficCounter.cpp @@ -33,6 +33,13 @@ HINSTANCE hInst; int hLangpack = 0; // Поддержка плагинозависимого перевода. BOOL bPopupExists = FALSE, bVariablesExists = FALSE, bTooltipExists = FALSE; +static TCHAR tszFormat[] = +_T("{I4}\x0D\x0A\x0A\ +{R65}?tc_GetTraffic(%extratext%,now,sent,d)\x0D\x0A\x0A\ +{R115}?tc_GetTraffic(%extratext%,now,received,d)\x0D\x0A\x0A\ +{R165}?tc_GetTraffic(%extratext%,total,both,d)\x0D\x0A\x0A\ +{L180}?if3(?tc_GetTime(%extratext%,now,hh:mm:ss),)\x0D\x0A\x0A\ +{L230}?if3(?tc_GetTime(%extratext%,total,d hh:mm),)"); TCHAR* TRAFFIC_COUNTER_WINDOW_CLASS = _T("TrafficCounterWnd"); @@ -123,15 +130,15 @@ extern "C" int __declspec(dllexport) Load(void) { // Получаем дескриптор языкового пакета. mir_getLP(&pluginInfoEx); - - HookEvent(ME_OPT_INITIALISE,TrafficCounterOptInitialise); - HookEvent(ME_SYSTEM_MODULESLOADED,TrafficCounterModulesLoaded); - HookEvent(ME_PROTO_ACK,ProtocolAckHook); + + HookEvent(ME_OPT_INITIALISE, TrafficCounterOptInitialise); + HookEvent(ME_SYSTEM_MODULESLOADED, TrafficCounterModulesLoaded); + HookEvent(ME_PROTO_ACK, ProtocolAckHook); HookEvent(ME_PROTO_ACCLISTCHANGED, OnAccountsListChange); HookEvent(ME_SYSTEM_PRESHUTDOWN, TrafficCounterShutdown); HookEvent(ME_SYSTEM_MODULELOAD, ModuleLoad); HookEvent(ME_SYSTEM_MODULEUNLOAD, ModuleLoad); - + return 0; } @@ -156,14 +163,12 @@ int TrafficCounterShutdown(WPARAM wParam, LPARAM lParam) SaveSettings(0); // Удаляем пункт главного меню. - if (hTrafficMainMenuItem) - { + if (hTrafficMainMenuItem) { Menu_RemoveItem(hTrafficMainMenuItem); hTrafficMainMenuItem = NULL; } // Удаляем контекстное меню. - if (TrafficPopupMenu) - { + if (TrafficPopupMenu) { DestroyMenu(TrafficPopupMenu); TrafficPopupMenu = NULL; } @@ -171,8 +176,7 @@ int TrafficCounterShutdown(WPARAM wParam, LPARAM lParam) CallService(MS_SKINENG_REGISTERPAINTSUB, (WPARAM)TrafficHwnd, (LPARAM)NULL); // Удаляем фрейм. - if( (ServiceExists(MS_CLIST_FRAMES_REMOVEFRAME)) && Traffic_FrameID ) - { + if ((ServiceExists(MS_CLIST_FRAMES_REMOVEFRAME)) && Traffic_FrameID) { CallService(MS_CLIST_FRAMES_REMOVEFRAME, (WPARAM)Traffic_FrameID, 0); Traffic_FrameID = NULL; } @@ -198,40 +202,31 @@ int TrafficCounterModulesLoaded(WPARAM wParam, LPARAM lParam) unOptions.Flags = db_get_dw(NULL, TRAFFIC_SETTINGS_GROUP, SETTINGS_WHAT_DRAW, 0x0882); Stat_SelAcc = db_get_w(NULL, TRAFFIC_SETTINGS_GROUP, SETTINGS_STAT_ACC_OPT, 0x01); - //settings for notification - Traffic_PopupBkColor = db_get_dw(NULL,TRAFFIC_SETTINGS_GROUP,SETTINGS_POPUP_BKCOLOR,RGB(200,255,200)); - Traffic_PopupFontColor = db_get_dw(NULL,TRAFFIC_SETTINGS_GROUP,SETTINGS_POPUP_FONTCOLOR,RGB(0,0,0)); - // - Traffic_Notify_time_value = db_get_b(NULL,TRAFFIC_SETTINGS_GROUP,SETTINGS_POPUP_NOTIFY_TIME_VALUE,10); - // - Traffic_Notify_size_value = db_get_w(NULL,TRAFFIC_SETTINGS_GROUP,SETTINGS_POPUP_NOTIFY_SIZE_VALUE,100); - // - //popup timeout - Traffic_PopupTimeoutDefault = db_get_b(NULL,TRAFFIC_SETTINGS_GROUP,SETTINGS_POPUP_TIMEOUT_DEFAULT,1); - Traffic_PopupTimeoutValue = db_get_b(NULL,TRAFFIC_SETTINGS_GROUP,SETTINGS_POPUP_TIMEOUT_VALUE,5); - + // settings for notification + Traffic_PopupBkColor = db_get_dw(NULL, TRAFFIC_SETTINGS_GROUP, SETTINGS_POPUP_BKCOLOR, RGB(200, 255, 200)); + Traffic_PopupFontColor = db_get_dw(NULL, TRAFFIC_SETTINGS_GROUP, SETTINGS_POPUP_FONTCOLOR, RGB(0, 0, 0)); + Traffic_Notify_time_value = db_get_b(NULL, TRAFFIC_SETTINGS_GROUP, SETTINGS_POPUP_NOTIFY_TIME_VALUE, 10); + Traffic_Notify_size_value = db_get_w(NULL, TRAFFIC_SETTINGS_GROUP, SETTINGS_POPUP_NOTIFY_SIZE_VALUE, 100); + + // popup timeout + Traffic_PopupTimeoutDefault = db_get_b(NULL, TRAFFIC_SETTINGS_GROUP, SETTINGS_POPUP_TIMEOUT_DEFAULT, 1); + Traffic_PopupTimeoutValue = db_get_b(NULL, TRAFFIC_SETTINGS_GROUP, SETTINGS_POPUP_TIMEOUT_VALUE, 5); + // Формат счётчика для каждого активного протокола - if (db_get_ts(NULL, TRAFFIC_SETTINGS_GROUP, SETTINGS_COUNTER_FORMAT, &dbv) == 0) - { - if(mir_tstrlen(dbv.ptszVal) > 0) + if (db_get_ts(NULL, TRAFFIC_SETTINGS_GROUP, SETTINGS_COUNTER_FORMAT, &dbv) == 0) { + if (mir_tstrlen(dbv.ptszVal) > 0) mir_tstrncpy(Traffic_CounterFormat, dbv.ptszVal, _countof(Traffic_CounterFormat)); // db_free(&dbv); } else //defaults here { - mir_tstrcpy(Traffic_CounterFormat, _T("{I4}\x0D\x0A\x0A\ -{R65}?tc_GetTraffic(%extratext%,now,sent,d)\x0D\x0A\x0A\ -{R115}?tc_GetTraffic(%extratext%,now,received,d)\x0D\x0A\x0A\ -{R165}?tc_GetTraffic(%extratext%,total,both,d)\x0D\x0A\x0A\ -{L180}?if3(?tc_GetTime(%extratext%,now,hh:mm:ss),)\x0D\x0A\x0A\ -{L230}?if3(?tc_GetTime(%extratext%,total,d hh:mm),)")); + mir_tstrcpy(Traffic_CounterFormat, tszFormat); } // Формат всплывающих подсказок - if (db_get_ts(NULL, TRAFFIC_SETTINGS_GROUP, SETTINGS_TOOLTIP_FORMAT, &dbv) == 0) - { - if(mir_tstrlen(dbv.ptszVal) > 0) + if (db_get_ts(NULL, TRAFFIC_SETTINGS_GROUP, SETTINGS_TOOLTIP_FORMAT, &dbv) == 0) { + if (mir_tstrlen(dbv.ptszVal) > 0) mir_tstrncpy(Traffic_TooltipFormat, dbv.ptszVal, _countof(Traffic_TooltipFormat)); // db_free(&dbv); @@ -278,25 +273,24 @@ int TrafficCounterModulesLoaded(WPARAM wParam, LPARAM lParam) CreateServiceFunction("TrafficCounter/ShowHide", MenuCommand_TrafficShowHide); // Регистрируем горячую клавишу для показа/скрытия фрейма { - HOTKEYDESC hkd = {0}; + HOTKEYDESC hkd = { 0 }; hkd.cbSize = sizeof(hkd); - hkd.DefHotKey = HOTKEYCODE(HOTKEYF_CONTROL|HOTKEYF_SHIFT,'T'); + hkd.DefHotKey = HOTKEYCODE(HOTKEYF_CONTROL | HOTKEYF_SHIFT, 'T'); hkd.pszSection = "Traffic Counter"; hkd.pszDescription = LPGEN("Show/Hide frame"); hkd.pszName = "TC_Show_Hide"; hkd.pszService = "TrafficCounter/ShowHide"; Hotkey_Register(&hkd); } - + // Добавляем пункт в главное меню. if (unOptions.ShowMainMenuItem) Traffic_AddMainMenuItem(); // Создаём контекстное меню. - if (TrafficPopupMenu = CreatePopupMenu()) - { - AppendMenu(TrafficPopupMenu,MF_STRING,POPUPMENU_HIDE,TranslateT("Hide traffic window")); - AppendMenu(TrafficPopupMenu,MF_STRING,POPUPMENU_CLEAR_NOW,TranslateT("Clear the current (Now:) value")); + if (TrafficPopupMenu = CreatePopupMenu()) { + AppendMenu(TrafficPopupMenu, MF_STRING, POPUPMENU_HIDE, TranslateT("Hide traffic window")); + AppendMenu(TrafficPopupMenu, MF_STRING, POPUPMENU_CLEAR_NOW, TranslateT("Clear the current (Now:) value")); } // Регистрируем обработчики событий Netlib @@ -319,23 +313,22 @@ void SaveSettings(BYTE OnlyCnt) if (OnlyCnt) return; // Для каждого протокола сохраняем флаги - for (i = 0; i < NumberOfAccounts; i++) - { + for (i = 0; i < NumberOfAccounts; i++) { if (!ProtoList[i].name) continue; db_set_b(NULL, ProtoList[i].name, SETTINGS_PROTO_FLAGS, ProtoList[i].Flags); } //settings for notification - db_set_dw(NULL,TRAFFIC_SETTINGS_GROUP,SETTINGS_POPUP_BKCOLOR,Traffic_PopupBkColor); - db_set_dw(NULL,TRAFFIC_SETTINGS_GROUP,SETTINGS_POPUP_FONTCOLOR,Traffic_PopupFontColor); + db_set_dw(NULL, TRAFFIC_SETTINGS_GROUP, SETTINGS_POPUP_BKCOLOR, Traffic_PopupBkColor); + db_set_dw(NULL, TRAFFIC_SETTINGS_GROUP, SETTINGS_POPUP_FONTCOLOR, Traffic_PopupFontColor); // - db_set_b(NULL,TRAFFIC_SETTINGS_GROUP,SETTINGS_POPUP_NOTIFY_TIME_VALUE,Traffic_Notify_time_value); + db_set_b(NULL, TRAFFIC_SETTINGS_GROUP, SETTINGS_POPUP_NOTIFY_TIME_VALUE, Traffic_Notify_time_value); // - db_set_w(NULL,TRAFFIC_SETTINGS_GROUP,SETTINGS_POPUP_NOTIFY_SIZE_VALUE,Traffic_Notify_size_value); + db_set_w(NULL, TRAFFIC_SETTINGS_GROUP, SETTINGS_POPUP_NOTIFY_SIZE_VALUE, Traffic_Notify_size_value); // //popup timeout - db_set_b(NULL,TRAFFIC_SETTINGS_GROUP,SETTINGS_POPUP_TIMEOUT_DEFAULT,Traffic_PopupTimeoutDefault); - db_set_b(NULL,TRAFFIC_SETTINGS_GROUP,SETTINGS_POPUP_TIMEOUT_VALUE,Traffic_PopupTimeoutValue); + db_set_b(NULL, TRAFFIC_SETTINGS_GROUP, SETTINGS_POPUP_TIMEOUT_DEFAULT, Traffic_PopupTimeoutDefault); + db_set_b(NULL, TRAFFIC_SETTINGS_GROUP, SETTINGS_POPUP_TIMEOUT_VALUE, Traffic_PopupTimeoutValue); // // Формат счётчиков db_set_ts(NULL, TRAFFIC_SETTINGS_GROUP, SETTINGS_COUNTER_FORMAT, Traffic_CounterFormat); @@ -349,63 +342,63 @@ void SaveSettings(BYTE OnlyCnt) } /*--------------------------------------------------------------------------------------------*/ -int TrafficRecv(WPARAM wParam,LPARAM lParam) -{ +int TrafficRecv(WPARAM wParam, LPARAM lParam) +{ NETLIBNOTIFY *nln = (NETLIBNOTIFY*)wParam; NETLIBUSER *nlu = (NETLIBUSER*)lParam; int i; - + if (nln->result > 0) for (i = 0; i < NumberOfAccounts; i++) - if (!mir_strcmp(ProtoList[i].name, nlu->szSettingsModule)) - InterlockedExchangeAdd(&ProtoList[i].AllStatistics[ProtoList[i].NumberOfRecords-1].Incoming, nln->result); + if (!mir_strcmp(ProtoList[i].name, nlu->szSettingsModule)) + InterlockedExchangeAdd(&ProtoList[i].AllStatistics[ProtoList[i].NumberOfRecords - 1].Incoming, nln->result); return 0; } -int TrafficSend(WPARAM wParam,LPARAM lParam) -{ +int TrafficSend(WPARAM wParam, LPARAM lParam) +{ NETLIBNOTIFY *nln = (NETLIBNOTIFY*)wParam; NETLIBUSER *nlu = (NETLIBUSER*)lParam; int i; - + if (nln->result > 0) for (i = 0; i < NumberOfAccounts; i++) if (!mir_strcmp(ProtoList[i].name, nlu->szSettingsModule)) - InterlockedExchangeAdd(&ProtoList[i].AllStatistics[ProtoList[i].NumberOfRecords-1].Outgoing, nln->result); + InterlockedExchangeAdd(&ProtoList[i].AllStatistics[ProtoList[i].NumberOfRecords - 1].Outgoing, nln->result); return 0; } int TrafficCounter_PaintCallbackProc(HWND hWnd, HDC hDC, RECT * rcPaint, HRGN rgn, DWORD dFlags, void * CallBackData) { - return TrafficCounter_Draw(hWnd,hDC); + return TrafficCounter_Draw(hWnd, hDC); } int TrafficCounter_Draw(HWND hwnd, HDC hDC) { - if (hwnd==(HWND)-1) return 0; - if (GetParent(hwnd) == (HWND)CallService(MS_CLUI_GETHWND, 0, 0)) - return PaintTrafficCounterWindow(hwnd, hDC); - else - InvalidateRect(hwnd,NULL,FALSE); - return 0; + if (hwnd == (HWND)-1) return 0; + if (GetParent(hwnd) == (HWND)CallService(MS_CLUI_GETHWND, 0, 0)) + return PaintTrafficCounterWindow(hwnd, hDC); + else + InvalidateRect(hwnd, NULL, FALSE); + return 0; } static void TC_AlphaText(HDC hDC, LPCTSTR lpString, RECT* lpRect, UINT format, BYTE ClistModernPresent) { - int nCount = (int)mir_tstrlen( lpString ); + int nCount = (int)mir_tstrlen(lpString); if (ClistModernPresent) AlphaText(hDC, lpString, nCount, lpRect, format, Traffic_FontColor); - else - DrawText( hDC, lpString, nCount, lpRect, format ); + else + DrawText(hDC, lpString, nCount, lpRect, format); } -static void TC_DrawIconEx( HDC hdc,int xLeft,int yTop,HICON hIcon, HBRUSH hbrFlickerFreeDraw, BYTE ClistModernPresent) +static void TC_DrawIconEx(HDC hdc, int xLeft, int yTop, HICON hIcon, HBRUSH hbrFlickerFreeDraw, BYTE ClistModernPresent) { if (ClistModernPresent) - mod_DrawIconEx_helper( hdc, xLeft, yTop, hIcon, 16, 16, 0, hbrFlickerFreeDraw, DI_NORMAL ); - else - DrawIconEx( hdc, xLeft, yTop, hIcon, 16, 16, 0, hbrFlickerFreeDraw, DI_NORMAL ); + mod_DrawIconEx_helper(hdc, xLeft, yTop, hIcon, 16, 16, 0, hbrFlickerFreeDraw, DI_NORMAL); + else + DrawIconEx(hdc, xLeft, yTop, hIcon, 16, 16, 0, hbrFlickerFreeDraw, DI_NORMAL); } int PaintTrafficCounterWindow(HWND hwnd, HDC hDC) @@ -416,15 +409,15 @@ int PaintTrafficCounterWindow(HWND hwnd, HDC hDC) HBRUSH b, t; HDC hdc; HBITMAP hbmp, oldbmp; - BITMAPINFO RGB32BitsBITMAPINFO = {0}; - BLENDFUNCTION aga = {AC_SRC_OVER, 0, 0xFF, AC_SRC_ALPHA}; + BITMAPINFO RGB32BitsBITMAPINFO = { 0 }; + BLENDFUNCTION aga = { AC_SRC_OVER, 0, 0xFF, AC_SRC_ALPHA }; DWORD SummarySession, SummaryTotal; BYTE ClistModernPresent = (GetModuleHandleA("clist_modern.dll") || GetModuleHandleA("clist_modern_dora.dll")) - && !db_get_b(NULL, "ModernData", "DisableEngine", 0) - && db_get_b(NULL, "ModernData", "EnableLayering", 1); + && !db_get_b(NULL, "ModernData", "DisableEngine", 0) + && db_get_b(NULL, "ModernData", "EnableLayering", 1); - GetClientRect (hwnd, &rect); + GetClientRect(hwnd, &rect); height = rect.bottom - rect.top; width = rect.right - rect.left; @@ -437,8 +430,8 @@ int PaintTrafficCounterWindow(HWND hwnd, HDC hDC) RGB32BitsBITMAPINFO.bmiHeader.biPlanes = 1; RGB32BitsBITMAPINFO.bmiHeader.biBitCount = 32; RGB32BitsBITMAPINFO.bmiHeader.biCompression = BI_RGB; - hbmp = CreateDIBSection(NULL, - &RGB32BitsBITMAPINFO, + hbmp = CreateDIBSection(NULL, + &RGB32BitsBITMAPINFO, DIB_RGB_COLORS, NULL, NULL, 0); @@ -446,24 +439,21 @@ int PaintTrafficCounterWindow(HWND hwnd, HDC hDC) b = CreateSolidBrush(Traffic_BkColor); t = CreateSolidBrush(KeyColor); - - if ( ClistModernPresent - && unOptions.DrawFrmAsSkin) - { + + if (ClistModernPresent + && unOptions.DrawFrmAsSkin) { SKINDRAWREQUEST rq; rq.hDC = hdc; rq.rcDestRect = rect; - rq.rcClipRect = rect; + rq.rcClipRect = rect; strncpy(rq.szObjectID, "Main,ID=EventArea", sizeof(rq.szObjectID)); - if (CallService(MS_SKIN_DRAWGLYPH, (WPARAM)&rq, 0)) - { + if (CallService(MS_SKIN_DRAWGLYPH, (WPARAM)&rq, 0)) { strncpy(rq.szObjectID, "Main,ID=StatusBar", sizeof(rq.szObjectID)); CallService(MS_SKIN_DRAWGLYPH, (WPARAM)&rq, 0); } } - else - { + else { SetTextColor(hdc, Traffic_FontColor); SetBkColor(hdc, Traffic_BkColor); FillRect(hdc, &rect, b); @@ -478,45 +468,38 @@ int PaintTrafficCounterWindow(HWND hwnd, HDC hDC) rect.bottom -= 2; rect.right -= 3; -//------------------- -// Если нет плагина Variables, рисуем упрощённо. -//------------------- - if (!bVariablesExists) - { + //------------------- + // Если нет плагина Variables, рисуем упрощённо. + //------------------- + if (!bVariablesExists) { SummarySession = SummaryTotal = 0; // Для каждого аккаунта - for (i = 0; i < NumberOfAccounts; i++) - { + for (i = 0; i < NumberOfAccounts; i++) { // Только если разрешено его отображение. - if (ProtoList[i].Visible && ProtoList[i].Enabled) - { + if (ProtoList[i].Visible && ProtoList[i].Enabled) { dx = 0; // Изображаем иконку аккаунта. - if (unOptions.DrawProtoIcon) - { + if (unOptions.DrawProtoIcon) { TC_DrawIconEx(hdc, rect.left, rect.top, - Skin_LoadProtoIcon(ProtoList[i].name, CallProtoService(ProtoList[i].name,PS_GETSTATUS,0,0)), b, ClistModernPresent); + Skin_LoadProtoIcon(ProtoList[i].name, CallProtoService(ProtoList[i].name, PS_GETSTATUS, 0, 0)), b, ClistModernPresent); dx = 19; } // Изображаем имя аккаунта - if (unOptions.DrawProtoName) - { + if (unOptions.DrawProtoName) { rect.left += dx; TC_AlphaText(hdc, ProtoList[i].tszAccountName, &rect, DT_SINGLELINE | DT_LEFT | DT_TOP, ClistModernPresent); rect.left -= dx; } // Следующие позиции строятся от правого края. // Общее время. - if (unOptions.DrawTotalTimeCounter) - { + if (unOptions.DrawTotalTimeCounter) { TCHAR bu[32]; - + GetDurationFormatM(ProtoList[i].Total.Timer, _T("h:mm:ss"), bu, 32); TC_AlphaText(hdc, bu, &rect, DT_SINGLELINE | DT_RIGHT | DT_TOP, ClistModernPresent); } // Текущее время. - if (unOptions.DrawCurrentTimeCounter) - { + if (unOptions.DrawCurrentTimeCounter) { TCHAR bu[32]; GetDurationFormatM(ProtoList[i].Session.Timer, _T("h:mm:ss"), bu, 32); @@ -525,8 +508,7 @@ int PaintTrafficCounterWindow(HWND hwnd, HDC hDC) rect.right += 50; } // Изображаем общий трафик. - if (unOptions.DrawTotalTraffic) - { + if (unOptions.DrawTotalTraffic) { TCHAR bu[32]; GetFormattedTraffic(ProtoList[i].TotalSentTraffic + ProtoList[i].TotalRecvTraffic, 3, bu, 32); @@ -538,8 +520,7 @@ int PaintTrafficCounterWindow(HWND hwnd, HDC hDC) SummaryTotal += ProtoList[i].TotalRecvTraffic + ProtoList[i].TotalSentTraffic; } // Изображаем текущий трафик. - if (unOptions.DrawCurrentTraffic) - { + if (unOptions.DrawCurrentTraffic) { TCHAR bu[32]; GetFormattedTraffic(ProtoList[i].CurrentRecvTraffic + ProtoList[i].CurrentSentTraffic, 3, bu, 32); @@ -555,20 +536,17 @@ int PaintTrafficCounterWindow(HWND hwnd, HDC hDC) } } // Рисуем суммарный трафик выбранных аккаунтов. - if (unOptions.ShowSummary) - { + if (unOptions.ShowSummary) { // Изображаем иконку. dx = 0; - if (unOptions.DrawProtoIcon) - { + if (unOptions.DrawProtoIcon) { TC_DrawIconEx(hdc, rect.left, rect.top, Skin_LoadIcon(SKINICON_OTHER_MIRANDA), b, ClistModernPresent); dx = 19; } // Выводим текст // Изображаем имя - if (unOptions.DrawProtoName) - { + if (unOptions.DrawProtoName) { TCHAR *bu = mir_a2t("Summary"); rect.left += dx; @@ -577,16 +555,14 @@ int PaintTrafficCounterWindow(HWND hwnd, HDC hDC) mir_free(bu); } // Общее время. - if (unOptions.DrawTotalTimeCounter) - { + if (unOptions.DrawTotalTimeCounter) { TCHAR bu[32]; - + GetDurationFormatM(OverallInfo.Total.Timer, _T("h:mm:ss"), bu, 32); TC_AlphaText(hdc, bu, &rect, DT_SINGLELINE | DT_RIGHT | DT_TOP, ClistModernPresent); } // Текущее время. - if (unOptions.DrawCurrentTimeCounter) - { + if (unOptions.DrawCurrentTimeCounter) { TCHAR bu[32]; GetDurationFormatM(OverallInfo.Session.Timer, _T("h:mm:ss"), bu, 32); @@ -595,8 +571,7 @@ int PaintTrafficCounterWindow(HWND hwnd, HDC hDC) rect.right += 50; } // Изображаем общий трафик. - if (unOptions.DrawTotalTraffic) - { + if (unOptions.DrawTotalTraffic) { TCHAR bu[32]; GetFormattedTraffic(SummaryTotal, 3, bu, 32); @@ -605,8 +580,7 @@ int PaintTrafficCounterWindow(HWND hwnd, HDC hDC) rect.right += 100; } // Изображаем текущий трафик. - if (unOptions.DrawCurrentTraffic) - { + if (unOptions.DrawCurrentTraffic) { TCHAR bu[32]; GetFormattedTraffic(SummarySession, 3, bu, 32); @@ -617,20 +591,17 @@ int PaintTrafficCounterWindow(HWND hwnd, HDC hDC) } rect.top += Traffic_LineHeight + Traffic_AdditionSpace; // Рисуем всеобщий трафик. - if (unOptions.ShowOverall) - { + if (unOptions.ShowOverall) { // Изображаем иконку. dx = 0; - if (unOptions.DrawProtoIcon) - { + if (unOptions.DrawProtoIcon) { TC_DrawIconEx(hdc, rect.left, rect.top, Skin_LoadIcon(SKINICON_OTHER_MIRANDA), b, ClistModernPresent); dx = 19; } // Выводим текст // Изображаем имя - if (unOptions.DrawProtoName) - { + if (unOptions.DrawProtoName) { TCHAR *bu = mir_a2t("Overall"); rect.left += dx; @@ -640,8 +611,7 @@ int PaintTrafficCounterWindow(HWND hwnd, HDC hDC) } // Следующие позиции строятся от правого края. // Изображаем общий трафик. - if (unOptions.DrawTotalTraffic) - { + if (unOptions.DrawTotalTraffic) { TCHAR bu[32]; GetFormattedTraffic(OverallInfo.TotalSentTraffic + OverallInfo.TotalRecvTraffic, 3, bu, 32); @@ -650,8 +620,7 @@ int PaintTrafficCounterWindow(HWND hwnd, HDC hDC) rect.right += 100; } // Изображаем текущий трафик. - if (unOptions.DrawCurrentTraffic) - { + if (unOptions.DrawCurrentTraffic) { TCHAR bu[32]; GetFormattedTraffic(OverallInfo.CurrentRecvTraffic + OverallInfo.CurrentSentTraffic, 3, bu, 32); @@ -662,9 +631,9 @@ int PaintTrafficCounterWindow(HWND hwnd, HDC hDC) } } else -//------------- -// Если есть Variables - рисуем по-новому -//------------- + //------------- + // Если есть Variables - рисуем по-новому + //------------- { RowItemInfo *ItemsList; WORD ItemsNumber, RowsNumber; @@ -674,10 +643,8 @@ int PaintTrafficCounterWindow(HWND hwnd, HDC hDC) HICON *ahIcon = (HICON*)mir_alloc(sizeof(HICON)); RowsNumber = 0; // Цикл по аккаунтам. - for (i = 0; i < NumberOfAccounts; i++) - { - if (ProtoList[i].Visible && ProtoList[i].Enabled) - { + for (i = 0; i < NumberOfAccounts; i++) { + if (ProtoList[i].Visible && ProtoList[i].Enabled) { ExtraText = (TCHAR**)mir_realloc(ExtraText, sizeof(TCHAR*) * (RowsNumber + 1)); ahIcon = (HICON*)mir_realloc(ahIcon, sizeof(HICON) * (RowsNumber + 1)); @@ -686,16 +653,14 @@ int PaintTrafficCounterWindow(HWND hwnd, HDC hDC) } } // Ещё 2 особых элемента. - if (unOptions.ShowSummary) - { + if (unOptions.ShowSummary) { ExtraText = (TCHAR**)mir_realloc(ExtraText, sizeof(TCHAR*) * (RowsNumber + 1)); ahIcon = (HICON*)mir_realloc(ahIcon, sizeof(HICON) * (RowsNumber + 1)); ExtraText[RowsNumber] = mir_a2t("summary"); ahIcon[RowsNumber++] = Skin_LoadIcon(SKINICON_OTHER_MIRANDA); } - if (unOptions.ShowOverall) - { + if (unOptions.ShowOverall) { ExtraText = (TCHAR**)mir_realloc(ExtraText, sizeof(TCHAR*) * (RowsNumber + 1)); ahIcon = (HICON*)mir_realloc(ahIcon, sizeof(HICON) * (RowsNumber + 1)); @@ -704,45 +669,39 @@ int PaintTrafficCounterWindow(HWND hwnd, HDC hDC) } // Рисуем свой счётчик для каждого из выбранных протоколов - for (i = 0; i < RowsNumber; i++) - { + for (i = 0; i < RowsNumber; i++) { TCHAR *buf = variables_parse(Traffic_CounterFormat, ExtraText[i], NULL); - if (ItemsNumber = GetRowItems(buf, &ItemsList)) - { + if (ItemsNumber = GetRowItems(buf, &ItemsList)) { // Рисуем текст. - for (dx = 0; dx < ItemsNumber; dx++) - { + for (dx = 0; dx < ItemsNumber; dx++) { // Делаем копию прямоугольника для рисования. memcpy(&rect2, &rect, sizeof(RECT)); rect2.bottom = rect2.top + Traffic_LineHeight; // Что за тег? - switch (ItemsList[dx].Alignment) - { - case 'I': - TC_DrawIconEx(hdc, ItemsList[dx].Interval, rect2.top, ahIcon[i], b, ClistModernPresent); - break; - case 'i': - TC_DrawIconEx(hdc, width - 16 - ItemsList[dx].Interval, rect2.top, ahIcon[i], b, ClistModernPresent); - break; - case 'L': - rect2.left = ItemsList[dx].Interval; - TC_AlphaText(hdc, ItemsList[dx].String, &rect2, DT_SINGLELINE | DT_LEFT | DT_VCENTER, ClistModernPresent); - break; - case 'R': - rect2.right = width - ItemsList[dx].Interval; - TC_AlphaText(hdc, ItemsList[dx].String, &rect2, DT_SINGLELINE | DT_RIGHT | DT_VCENTER, ClistModernPresent); - break; - default: - continue; + switch (ItemsList[dx].Alignment) { + case 'I': + TC_DrawIconEx(hdc, ItemsList[dx].Interval, rect2.top, ahIcon[i], b, ClistModernPresent); + break; + case 'i': + TC_DrawIconEx(hdc, width - 16 - ItemsList[dx].Interval, rect2.top, ahIcon[i], b, ClistModernPresent); + break; + case 'L': + rect2.left = ItemsList[dx].Interval; + TC_AlphaText(hdc, ItemsList[dx].String, &rect2, DT_SINGLELINE | DT_LEFT | DT_VCENTER, ClistModernPresent); + break; + case 'R': + rect2.right = width - ItemsList[dx].Interval; + TC_AlphaText(hdc, ItemsList[dx].String, &rect2, DT_SINGLELINE | DT_RIGHT | DT_VCENTER, ClistModernPresent); + break; + default: + continue; } - } // Нужно освободить память. - for (; ItemsNumber--; ) - { + for (; ItemsNumber--;) mir_free(ItemsList[ItemsNumber].String); - } + mir_free(ItemsList); } mir_free(buf); @@ -750,7 +709,7 @@ int PaintTrafficCounterWindow(HWND hwnd, HDC hDC) } // Удаляем список строк. - for (; RowsNumber--; ) + for (; RowsNumber--;) mir_free(ExtraText[RowsNumber]); mir_free(ExtraText); } @@ -760,13 +719,9 @@ int PaintTrafficCounterWindow(HWND hwnd, HDC hDC) SelectObject(hdc, old_font); if (ClistModernPresent) - { AlphaBlend(hDC, 0, 0, width, height, hdc, 0, 0, width, height, aga); - } else - { BitBlt(hDC, 0, 0, width, height, hdc, 0, 0, SRCCOPY); - } SelectObject(hdc, oldbmp); DeleteObject(hbmp); @@ -805,288 +760,270 @@ void ProtocolIsOffLine(int num) ProtoList[num].State = 0; } -static POINT ptMouse = {0}; +static POINT ptMouse = { 0 }; LRESULT CALLBACK TrafficCounterWndProc_MW(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { POINT p; int i; // - switch (msg) - { - case (WM_USER+697): - if (lParam == 666) - DestroyWindow(hwnd); - break; + switch (msg) { + case (WM_USER + 697) : + if (lParam == 666) + DestroyWindow(hwnd); + break; - case WM_PAINT: - { - if ( !db_get_b(NULL, "ModernData", "DisableEngine", 0) - && db_get_b(NULL, "ModernData", "EnableLayering", 1) - && ServiceExists(MS_SKINENG_INVALIDATEFRAMEIMAGE)) - CallService(MS_SKINENG_INVALIDATEFRAMEIMAGE, (WPARAM)TrafficHwnd, 0); - else - { - HDC hdc = GetDC(hwnd); - PaintTrafficCounterWindow(hwnd, hdc); - ReleaseDC(hwnd, hdc); - } + case WM_PAINT: + { + if (!db_get_b(NULL, "ModernData", "DisableEngine", 0) + && db_get_b(NULL, "ModernData", "EnableLayering", 1) + && ServiceExists(MS_SKINENG_INVALIDATEFRAMEIMAGE)) + CallService(MS_SKINENG_INVALIDATEFRAMEIMAGE, (WPARAM)TrafficHwnd, 0); + else { + HDC hdc = GetDC(hwnd); + PaintTrafficCounterWindow(hwnd, hdc); + ReleaseDC(hwnd, hdc); } + } + break; + + case WM_ERASEBKGND: + return 1; + + case WM_LBUTTONDOWN: + if (db_get_b(NULL, "CLUI", "ClientAreaDrag", SETTING_CLIENTDRAG_DEFAULT)) { + ClientToScreen(GetParent(hwnd), &p); + return SendMessage(GetParent(hwnd), WM_SYSCOMMAND, SC_MOVE | HTCAPTION, MAKELPARAM(p.x, p.y)); + } + break; + + case WM_RBUTTONDOWN: + p.x = GET_X_LPARAM(lParam); + p.y = GET_Y_LPARAM(lParam); + ClientToScreen(hwnd, &p); + TrackPopupMenu(TrafficPopupMenu, TPM_LEFTALIGN | TPM_LEFTBUTTON | TPM_VERTICAL, p.x, p.y, 0, hwnd, NULL); + break; + + case WM_COMMAND: + switch (wParam) { + case POPUPMENU_HIDE: + MenuCommand_TrafficShowHide(0, 0); break; - case WM_ERASEBKGND: - return 1; + case POPUPMENU_CLEAR_NOW: + for (i = 0; i < NumberOfAccounts; i++) { + ProtoList[i].StartIncoming = + ProtoList[i].AllStatistics[ProtoList[i].NumberOfRecords - 1].Incoming; + ProtoList[i].StartOutgoing = + ProtoList[i].AllStatistics[ProtoList[i].NumberOfRecords - 1].Outgoing; + ProtoList[i].Session.TimeAtStart = GetTickCount(); + } + OverallInfo.CurrentRecvTraffic = OverallInfo.CurrentSentTraffic = 0; + } + break; - case WM_LBUTTONDOWN : - if (db_get_b(NULL,"CLUI","ClientAreaDrag",SETTING_CLIENTDRAG_DEFAULT)) - { - ClientToScreen(GetParent(hwnd),&p); - return SendMessage(GetParent(hwnd), WM_SYSCOMMAND, SC_MOVE|HTCAPTION,MAKELPARAM(p.x,p.y)); + case WM_SETCURSOR: + { + POINT pt; + + GetCursorPos(&pt); + if ((abs(pt.x - ptMouse.x) < 20) + && (abs(pt.y - ptMouse.y) < 20)) + return 1; + + if (TooltipShowing) { + KillTimer(TrafficHwnd, TIMER_TOOLTIP); + CallService("mToolTip/HideTip", 0, 0); + TooltipShowing = FALSE; } + KillTimer(TrafficHwnd, TIMER_TOOLTIP); + SetTimer(TrafficHwnd, TIMER_TOOLTIP, CallService(MS_CLC_GETINFOTIPHOVERTIME, 0, 0), 0); break; + } - case WM_RBUTTONDOWN : - p.x = GET_X_LPARAM(lParam); - p.y = GET_Y_LPARAM(lParam); - ClientToScreen(hwnd,&p); - TrackPopupMenu(TrafficPopupMenu,TPM_LEFTALIGN|TPM_LEFTBUTTON|TPM_VERTICAL,p.x,p.y,0,hwnd,NULL); + case WM_TIMER: + switch (wParam) { + case TIMER_NOTIFY_TICK: + NotifyOnRecv(); + NotifyOnSend(); break; - case WM_COMMAND : - switch (wParam) + case TIMER_REDRAW: // Перерисовка раз в полсекунды. { - case POPUPMENU_HIDE: - MenuCommand_TrafficShowHide(0, 0); - break; - - case POPUPMENU_CLEAR_NOW: - for (i = 0; i < NumberOfAccounts; i++) - { - ProtoList[i].StartIncoming = - ProtoList[i].AllStatistics[ProtoList[i].NumberOfRecords - 1].Incoming; - ProtoList[i].StartOutgoing = - ProtoList[i].AllStatistics[ProtoList[i].NumberOfRecords - 1].Outgoing; - ProtoList[i].Session.TimeAtStart = GetTickCount(); + DWORD CurrentTimeMs; + SYSTEMTIME stNow; + + SaveSettings(1); + // Перед подсчётом суммарного трафика обнуляем счётчики. + OverallInfo.CurrentRecvTraffic = + OverallInfo.CurrentSentTraffic = + OverallInfo.TotalRecvTraffic = + OverallInfo.TotalSentTraffic = 0; + + CurrentTimeMs = GetTickCount(); + + for (i = 0; i < NumberOfAccounts; i++) { + if (ProtoList[i].State) { + ProtoList[i].AllStatistics[ProtoList[i].NumberOfRecords - 1].Time = + (CurrentTimeMs - ProtoList[i].Total.TimeAtStart) / 1000; + ProtoList[i].Session.Timer = + (CurrentTimeMs - ProtoList[i].Session.TimeAtStart) / 1000; } - OverallInfo.CurrentRecvTraffic = OverallInfo.CurrentSentTraffic = 0; - } - break; - case WM_SETCURSOR: - { - POINT pt; + Stat_CheckStatistics(i); - GetCursorPos(&pt); - if ( (abs(pt.x - ptMouse.x) < 20) - && (abs(pt.y - ptMouse.y) < 20) ) - return 1; + { // Здесь на основании статистики вычисляются значения всех трафиков и времени. + DWORD Sum1, Sum2; + unsigned long int j; - if (TooltipShowing) - { - KillTimer(TrafficHwnd, TIMER_TOOLTIP); - CallService("mToolTip/HideTip", 0, 0); - TooltipShowing = FALSE; + // Значения для текущей сессии. + for (Sum1 = Sum2 = 0, j = ProtoList[i].StartIndex; j < ProtoList[i].NumberOfRecords; j++) { + Sum1 += ProtoList[i].AllStatistics[j].Incoming; + Sum2 += ProtoList[i].AllStatistics[j].Outgoing; + } + ProtoList[i].CurrentRecvTraffic = Sum1 - ProtoList[i].StartIncoming; + ProtoList[i].CurrentSentTraffic = Sum2 - ProtoList[i].StartOutgoing; + OverallInfo.CurrentRecvTraffic += ProtoList[i].CurrentRecvTraffic; + OverallInfo.CurrentSentTraffic += ProtoList[i].CurrentSentTraffic; + // Значения для выбранного периода. + ProtoList[i].TotalRecvTraffic = + Stat_GetItemValue(1 << i, + unOptions.PeriodForShow + 1, + Stat_GetRecordsNumber(i, unOptions.PeriodForShow + 1) - 1, 1); + ProtoList[i].TotalSentTraffic = + Stat_GetItemValue(1 << i, + unOptions.PeriodForShow + 1, + Stat_GetRecordsNumber(i, unOptions.PeriodForShow + 1) - 1, 2); + ProtoList[i].Total.Timer = + Stat_GetItemValue(1 << i, + unOptions.PeriodForShow + 1, + Stat_GetRecordsNumber(i, unOptions.PeriodForShow + 1) - 1, 4); + OverallInfo.TotalRecvTraffic += ProtoList[i].TotalRecvTraffic; + OverallInfo.TotalSentTraffic += ProtoList[i].TotalSentTraffic; + } + } + // Не пора ли уведомить? + if (unOptions.NotifyBySize && Traffic_Notify_size_value) { + if (!((OverallInfo.CurrentRecvTraffic >> 10) % Traffic_Notify_size_value) + && notify_recv_size != OverallInfo.CurrentRecvTraffic >> 10) + NotifyOnRecv(); + + if (!((OverallInfo.CurrentSentTraffic >> 10) % Traffic_Notify_size_value) + && notify_send_size != OverallInfo.CurrentSentTraffic >> 10) + NotifyOnSend(); } - KillTimer(TrafficHwnd, TIMER_TOOLTIP); - SetTimer(TrafficHwnd, TIMER_TOOLTIP, CallService(MS_CLC_GETINFOTIPHOVERTIME, 0, 0), 0); - break; - } - - case WM_TIMER : - switch(wParam) - { - case TIMER_NOTIFY_TICK: - NotifyOnRecv(); - NotifyOnSend(); - break; - case TIMER_REDRAW: // Перерисовка раз в полсекунды. - { - DWORD CurrentTimeMs; - SYSTEMTIME stNow; - - SaveSettings(1); - // Перед подсчётом суммарного трафика обнуляем счётчики. - OverallInfo.CurrentRecvTraffic = - OverallInfo.CurrentSentTraffic = - OverallInfo.TotalRecvTraffic = - OverallInfo.TotalSentTraffic = 0; - - CurrentTimeMs = GetTickCount(); - - for (i = 0; i < NumberOfAccounts; i++) - { - if (ProtoList[i].State) - { - ProtoList[i].AllStatistics[ProtoList[i].NumberOfRecords-1].Time = - (CurrentTimeMs - ProtoList[i].Total.TimeAtStart) / 1000; - ProtoList[i].Session.Timer = - (CurrentTimeMs - ProtoList[i].Session.TimeAtStart) / 1000; - } - - Stat_CheckStatistics(i); - - { // Здесь на основании статистики вычисляются значения всех трафиков и времени. - DWORD Sum1, Sum2; - unsigned long int j; - - // Значения для текущей сессии. - for (Sum1 = Sum2 = 0, j = ProtoList[i].StartIndex; j < ProtoList[i].NumberOfRecords; j++) - { - Sum1 += ProtoList[i].AllStatistics[j].Incoming; - Sum2 += ProtoList[i].AllStatistics[j].Outgoing; - } - ProtoList[i].CurrentRecvTraffic = Sum1 - ProtoList[i].StartIncoming; - ProtoList[i].CurrentSentTraffic = Sum2 - ProtoList[i].StartOutgoing; - OverallInfo.CurrentRecvTraffic += ProtoList[i].CurrentRecvTraffic; - OverallInfo.CurrentSentTraffic += ProtoList[i].CurrentSentTraffic; - // Значения для выбранного периода. - ProtoList[i].TotalRecvTraffic = - Stat_GetItemValue(1 << i, - unOptions.PeriodForShow + 1, - Stat_GetRecordsNumber(i, unOptions.PeriodForShow + 1) - 1, - 1); - ProtoList[i].TotalSentTraffic = - Stat_GetItemValue(1 << i, - unOptions.PeriodForShow + 1, - Stat_GetRecordsNumber(i, unOptions.PeriodForShow + 1) - 1, - 2); - ProtoList[i].Total.Timer = - Stat_GetItemValue(1 << i, - unOptions.PeriodForShow + 1, - Stat_GetRecordsNumber(i, unOptions.PeriodForShow + 1) - 1, - 4); - OverallInfo.TotalRecvTraffic += ProtoList[i].TotalRecvTraffic; - OverallInfo.TotalSentTraffic += ProtoList[i].TotalSentTraffic; - } - } - // Не пора ли уведомить? - if (unOptions.NotifyBySize && Traffic_Notify_size_value) - { - if (!((OverallInfo.CurrentRecvTraffic >> 10) % Traffic_Notify_size_value) - && notify_recv_size != OverallInfo.CurrentRecvTraffic >> 10 ) - NotifyOnRecv(); - - if (!((OverallInfo.CurrentSentTraffic >> 10) % Traffic_Notify_size_value) - && notify_send_size != OverallInfo.CurrentSentTraffic >> 10) - NotifyOnSend(); - } + // Счётчики суммарного времени. + GetLocalTime(&stNow); + + // Не пора ли сбросить общий счётчик? + if ((unOptions.PeriodForShow == 0 + && stNow.wHour == 0 + && stNow.wMinute == 0 + && stNow.wSecond == 0) + || (unOptions.PeriodForShow == 1 + && DayOfWeek(stNow.wDay, stNow.wMonth, stNow.wYear) == 1 + && stNow.wHour == 0 + && stNow.wMinute == 0 + && stNow.wSecond == 0) + || (unOptions.PeriodForShow == 2 + && stNow.wDay == 1 + && stNow.wHour == 0 + && stNow.wMinute == 0 + && stNow.wSecond == 0) + || (unOptions.PeriodForShow == 3 + && stNow.wMonth == 1 + && stNow.wDay == 1 + && stNow.wHour == 0 + && stNow.wMinute == 0 + && stNow.wSecond == 0)) + OverallInfo.Total.TimeAtStart = CurrentTimeMs; + + if (online_count > 0) { + OverallInfo.Session.Timer = + (CurrentTimeMs - OverallInfo.Session.TimeAtStart) / 1000; + OverallInfo.Total.Timer = + (CurrentTimeMs - OverallInfo.Total.TimeAtStart) / 1000; + } - // Счётчики суммарного времени. - GetLocalTime(&stNow); - - // Не пора ли сбросить общий счётчик? - if ( (unOptions.PeriodForShow == 0 - && stNow.wHour == 0 - && stNow.wMinute == 0 - && stNow.wSecond == 0) - || (unOptions.PeriodForShow == 1 - && DayOfWeek(stNow.wDay, stNow.wMonth, stNow.wYear) == 1 - && stNow.wHour == 0 - && stNow.wMinute == 0 - && stNow.wSecond == 0) - || (unOptions.PeriodForShow == 2 - && stNow.wDay == 1 - && stNow.wHour == 0 - && stNow.wMinute == 0 - && stNow.wSecond == 0) - || (unOptions.PeriodForShow == 3 - && stNow.wMonth == 1 - && stNow.wDay == 1 - && stNow.wHour == 0 - && stNow.wMinute == 0 - && stNow.wSecond == 0) ) - OverallInfo.Total.TimeAtStart = CurrentTimeMs; - - if (online_count > 0) - { - OverallInfo.Session.Timer = - (CurrentTimeMs - OverallInfo.Session.TimeAtStart) / 1000; - OverallInfo.Total.Timer = - (CurrentTimeMs - OverallInfo.Total.TimeAtStart) / 1000; - } + CallService(MS_CLIST_FRAMES_UPDATEFRAME, (WPARAM)Traffic_FrameID, FU_FMREDRAW); + } + break; - CallService(MS_CLIST_FRAMES_UPDATEFRAME, (WPARAM)Traffic_FrameID, FU_FMREDRAW); - } - break; + case TIMER_TOOLTIP: + { + TCHAR *TooltipText; + CLCINFOTIP ti = { 0 }; + RECT rt; - case TIMER_TOOLTIP: - { - TCHAR *TooltipText; - CLCINFOTIP ti = {0}; - RECT rt; - - GetCursorPos(&TooltipPosition); - if (!TooltipShowing && unOptions.ShowTooltip ) - { - KillTimer(TrafficHwnd, TIMER_TOOLTIP); - ScreenToClient(TrafficHwnd, &TooltipPosition); - GetClientRect(TrafficHwnd, &rt); - if (PtInRect(&rt, TooltipPosition)) - { - GetCursorPos(&ptMouse); - ti.rcItem.left = TooltipPosition.x - 10; - ti.rcItem.right = TooltipPosition.x + 10; - ti.rcItem.top = TooltipPosition.y - 10; - ti.rcItem.bottom = TooltipPosition.y + 10; - ti.cbSize = sizeof( ti ); - TooltipText = variables_parsedup(Traffic_TooltipFormat, NULL, NULL); - - CallService(MS_TIPPER_SHOWTIPW, (WPARAM)TooltipText, (LPARAM)&ti); - - TooltipShowing = TRUE; - mir_free(TooltipText); - } - } + GetCursorPos(&TooltipPosition); + if (!TooltipShowing && unOptions.ShowTooltip) { + KillTimer(TrafficHwnd, TIMER_TOOLTIP); + ScreenToClient(TrafficHwnd, &TooltipPosition); + GetClientRect(TrafficHwnd, &rt); + if (PtInRect(&rt, TooltipPosition)) { + GetCursorPos(&ptMouse); + ti.rcItem.left = TooltipPosition.x - 10; + ti.rcItem.right = TooltipPosition.x + 10; + ti.rcItem.top = TooltipPosition.y - 10; + ti.rcItem.bottom = TooltipPosition.y + 10; + ti.cbSize = sizeof(ti); + TooltipText = variables_parsedup(Traffic_TooltipFormat, NULL, NULL); + + CallService(MS_TIPPER_SHOWTIPW, (WPARAM)TooltipText, (LPARAM)&ti); + + TooltipShowing = TRUE; + mir_free(TooltipText); } - break; + } } break; + } + break; - default: - return DefWindowProc(hwnd,msg,wParam,lParam); + default: + return DefWindowProc(hwnd, msg, wParam, lParam); } // - return DefWindowProc(hwnd,msg,wParam,lParam); + return DefWindowProc(hwnd, msg, wParam, lParam); } void CreateTrafficWindow(HWND hCluiWnd) { - WNDCLASSEX wcx = {0}; + WNDCLASSEX wcx = { 0 }; CLISTFrame f; - wcx.cbSize = sizeof( WNDCLASSEX ); - wcx.style = 0; - wcx.lpfnWndProc = TrafficCounterWndProc_MW; - wcx.cbClsExtra = 0; - wcx.cbWndExtra = 0; - wcx.hInstance = hInst; - wcx.hIcon = NULL; - wcx.hCursor = LoadCursor(hInst,IDC_ARROW); - wcx.hbrBackground = 0; - wcx.lpszMenuName = NULL; - wcx.lpszClassName = TRAFFIC_COUNTER_WINDOW_CLASS; - wcx.hIconSm = NULL; - RegisterClassEx( &wcx ); + wcx.cbSize = sizeof(WNDCLASSEX); + wcx.style = 0; + wcx.lpfnWndProc = TrafficCounterWndProc_MW; + wcx.cbClsExtra = 0; + wcx.cbWndExtra = 0; + wcx.hInstance = hInst; + wcx.hIcon = NULL; + wcx.hCursor = LoadCursor(hInst, IDC_ARROW); + wcx.hbrBackground = 0; + wcx.lpszMenuName = NULL; + wcx.lpszClassName = TRAFFIC_COUNTER_WINDOW_CLASS; + wcx.hIconSm = NULL; + RegisterClassEx(&wcx); TrafficHwnd = CreateWindowEx(WS_EX_TOOLWINDOW, TRAFFIC_COUNTER_WINDOW_CLASS, - TRAFFIC_COUNTER_WINDOW_CLASS, - WS_CHILDWINDOW | WS_CLIPCHILDREN, - 0, 0, 0, 0, hCluiWnd, NULL, hInst, NULL); + TRAFFIC_COUNTER_WINDOW_CLASS, + WS_CHILDWINDOW | WS_CLIPCHILDREN, + 0, 0, 0, 0, hCluiWnd, NULL, hInst, NULL); - if ( ServiceExists(MS_CLIST_FRAMES_ADDFRAME) ) - { + if (ServiceExists(MS_CLIST_FRAMES_ADDFRAME)) { // Готовимся создавать фрейм memset(&f, 0, sizeof(CLISTFrame)); f.align = alBottom; f.cbSize = sizeof(CLISTFrame); f.height = TrafficWindowHeight(); - f.Flags= unOptions.FrameIsVisible | F_LOCKED | F_NOBORDER | F_NO_SUBCONTAINER; + f.Flags = unOptions.FrameIsVisible | F_LOCKED | F_NOBORDER | F_NO_SUBCONTAINER; f.hWnd = TrafficHwnd; f.TBname = ("Traffic counter"); f.name = ("Traffic counter"); // Создаём фрейм - Traffic_FrameID = (HANDLE)CallService(MS_CLIST_FRAMES_ADDFRAME,(WPARAM)&f,0); - CallService(MS_SKINENG_REGISTERPAINTSUB,(WPARAM)f.hWnd,(LPARAM)TrafficCounter_PaintCallbackProc); + Traffic_FrameID = (HANDLE)CallService(MS_CLIST_FRAMES_ADDFRAME, (WPARAM)&f, 0); + CallService(MS_SKINENG_REGISTERPAINTSUB, (WPARAM)f.hWnd, (LPARAM)TrafficCounter_PaintCallbackProc); } // Создаём таймеры. @@ -1094,7 +1031,7 @@ void CreateTrafficWindow(HWND hCluiWnd) UpdateNotifyTimer(); } -INT_PTR MenuCommand_TrafficShowHide(WPARAM wParam,LPARAM lParam) +INT_PTR MenuCommand_TrafficShowHide(WPARAM wParam, LPARAM lParam) { unOptions.FrameIsVisible = !unOptions.FrameIsVisible; if (Traffic_FrameID == NULL) @@ -1113,7 +1050,7 @@ void Traffic_AddMainMenuItem(void) mi.flags = 0; mi.hIcon = NULL; mi.pszName = LPGEN("Toggle traffic counter"); - mi.pszService="TrafficCounter/ShowHide"; + mi.pszService = "TrafficCounter/ShowHide"; hTrafficMainMenuItem = Menu_AddMainMenuItem(&mi); } @@ -1155,7 +1092,7 @@ void NotifyOnRecv(void) memset(&ppd, 0, sizeof(ppd)); ppd.lchContact = NULL; ppd.lchIcon = Skin_LoadIcon(SKINICON_EVENT_MESSAGE); - _tcsncpy(ppd.lptzContactName, TranslateT("Traffic counter notification"),MAX_CONTACTNAME); + _tcsncpy(ppd.lptzContactName, TranslateT("Traffic counter notification"), MAX_CONTACTNAME); // mir_sntprintf(ppd.lptzText, _countof(ppd.lptzText), TranslateT("%d kilobytes received"), notify_recv_size = OverallInfo.CurrentRecvTraffic >> 10); @@ -1164,7 +1101,7 @@ void NotifyOnRecv(void) ppd.colorText = Traffic_PopupFontColor; ppd.PluginWindowProc = NULL; ppd.iSeconds = (Traffic_PopupTimeoutDefault ? 0 : Traffic_PopupTimeoutValue); - PUAddPopupT(&ppd); + PUAddPopupT(&ppd); } void CreateProtocolList(void) @@ -1172,20 +1109,19 @@ void CreateProtocolList(void) int i; PROTOACCOUNT **acc; // - Proto_EnumAccounts(&NumberOfAccounts,&acc); + Proto_EnumAccounts(&NumberOfAccounts, &acc); // ProtoList = (PROTOLIST*)mir_alloc(sizeof(PROTOLIST)*(NumberOfAccounts)); // - for (i = 0; i < NumberOfAccounts; i++) - { + for (i = 0; i < NumberOfAccounts; i++) { ProtoList[i].name = (char*)mir_alloc(mir_strlen(acc[i]->szModuleName) + 1); mir_strcpy(ProtoList[i].name, acc[i]->szModuleName); ProtoList[i].tszAccountName = (TCHAR*)mir_alloc(sizeof(TCHAR) * (1 + mir_tstrlen(acc[i]->tszAccountName))); mir_tstrcpy(ProtoList[i].tszAccountName, acc[i]->tszAccountName); // ProtoList[i].Flags = db_get_b(NULL, ProtoList[i].name, SETTINGS_PROTO_FLAGS, 3); - ProtoList[i].CurrentRecvTraffic = - ProtoList[i].CurrentSentTraffic = + ProtoList[i].CurrentRecvTraffic = + ProtoList[i].CurrentSentTraffic = ProtoList[i].Session.Timer = 0; // ProtoList[i].Enabled = acc[i]->bIsEnabled; @@ -1197,7 +1133,7 @@ void CreateProtocolList(void) ProtoList[i].StartOutgoing = ProtoList[i].AllStatistics[ProtoList[i].StartIndex].Outgoing; } // цикл по аккаунтам // Начальные значения для суммарной информации. - OverallInfo.Session.Timer = OverallInfo.Total.Timer = 0; + OverallInfo.Session.Timer = OverallInfo.Total.Timer = 0; } void DestroyProtocolList(void) @@ -1213,32 +1149,25 @@ void DestroyProtocolList(void) mir_free(ProtoList); } -int ProtocolAckHook(WPARAM wParam,LPARAM lParam) +int ProtocolAckHook(WPARAM wParam, LPARAM lParam) { - ACKDATA* pAck=(ACKDATA*)lParam; + ACKDATA* pAck = (ACKDATA*)lParam; WORD i; - if (ACKTYPE_STATUS == pAck->type) - { - if(ID_STATUS_OFFLINE == pAck->lParam) - { - for (i = 0; i < NumberOfAccounts; i++) - { + if (ACKTYPE_STATUS == pAck->type) { + if (ID_STATUS_OFFLINE == pAck->lParam) { + for (i = 0; i < NumberOfAccounts; i++) { if (!ProtoList[i].name) continue; - if (!mir_strcmp(ProtoList[i].name, pAck->szModule)) - { + if (!mir_strcmp(ProtoList[i].name, pAck->szModule)) { ProtocolIsOffLine(i); break; } } } - else - { - if ((pAck->lParam >= ID_STATUS_ONLINE) && (pAck->lParam <= ID_STATUS_OUTTOLUNCH)) - { + else { + if ((pAck->lParam >= ID_STATUS_ONLINE) && (pAck->lParam <= ID_STATUS_OUTTOLUNCH)) { for (i = 0; i < NumberOfAccounts; i++) - if (!mir_strcmp(ProtoList[i].name, pAck->szModule)) - { + if (!mir_strcmp(ProtoList[i].name, pAck->szModule)) { ProtocolIsOnLine(i); break; } @@ -1271,8 +1200,7 @@ int UpdateFonts(WPARAM wParam, LPARAM lParam) void UpdateTrafficWindowSize(void) { - if (Traffic_FrameID != NULL) - { + if (Traffic_FrameID != NULL) { CallService(MS_CLIST_FRAMES_SETFRAMEOPTIONS, MAKEWPARAM(FO_HEIGHT, Traffic_FrameID), TrafficWindowHeight()); } } @@ -1280,14 +1208,14 @@ void UpdateTrafficWindowSize(void) unsigned short int TrafficWindowHeight(void) { BYTE HeightLineTime = (unOptions.DrawProtoIcon) ? 16 : TrafficFontHeight, - i, ActProto; + i, ActProto; WORD MaxWndHeight; for (i = 0, ActProto = unOptions.ShowOverall + unOptions.ShowSummary; i < NumberOfAccounts; i++) ActProto += ProtoList[i].Visible && ProtoList[i].Enabled; // Высота строки минимум 16 пикселей (для иконки). - Traffic_LineHeight = TrafficFontHeight > 16 ? TrafficFontHeight: 16; + Traffic_LineHeight = TrafficFontHeight > 16 ? TrafficFontHeight : 16; // Высота фрейма равна количеству строк. MaxWndHeight = ActProto * Traffic_LineHeight @@ -1302,20 +1230,19 @@ int OnAccountsListChange(WPARAM wParam, LPARAM lParam) { BYTE i; PROTOACCOUNT *acc = (PROTOACCOUNT*)lParam; - - switch (wParam) - { - case PRAC_ADDED: - case PRAC_REMOVED: - DestroyProtocolList(); - CreateProtocolList(); - break; - case PRAC_CHANGED: - case PRAC_CHECKED: - for (i = 0; i < NumberOfAccounts; i++) - if (!mir_strcmp(acc->szModuleName, ProtoList[i].name)) - ProtoList[i].Enabled = acc->bIsEnabled; - break; + + switch (wParam) { + case PRAC_ADDED: + case PRAC_REMOVED: + DestroyProtocolList(); + CreateProtocolList(); + break; + case PRAC_CHANGED: + case PRAC_CHECKED: + for (i = 0; i < NumberOfAccounts; i++) + if (!mir_strcmp(acc->szModuleName, ProtoList[i].name)) + ProtoList[i].Enabled = acc->bIsEnabled; + break; } UpdateTrafficWindowSize(); return 0; -- cgit v1.2.3