From a5f52c9e4d4eb819ede04e55899e5699269e8397 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Wed, 22 Jan 2014 20:30:18 +0000 Subject: - more correct version of settings initialization - code cleaning git-svn-id: http://svn.miranda-ng.org/main/trunk@7830 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/Weather/src/weather.cpp | 17 +- plugins/Weather/src/weather_data.cpp | 105 ++++---- plugins/Weather/src/weather_opt.cpp | 416 ++++++++++++++----------------- plugins/Weather/src/weather_update.cpp | 17 +- plugins/Weather/src/weather_userinfo.cpp | 71 ++---- 5 files changed, 283 insertions(+), 343 deletions(-) (limited to 'plugins/Weather/src') diff --git a/plugins/Weather/src/weather.cpp b/plugins/Weather/src/weather.cpp index f93dded751..58b6f60f74 100644 --- a/plugins/Weather/src/weather.cpp +++ b/plugins/Weather/src/weather.cpp @@ -133,12 +133,7 @@ int WeatherInit(WPARAM wParam,LPARAM lParam) // weather user detail HookEvent(ME_USERINFO_INITIALISE, UserInfoInit); - HookEvent(ME_TTB_MODULELOADED, OnToolbarLoaded); - - hDataWindowList = WindowList_Create(); - hWindowList = WindowList_Create(); - return 0; } @@ -213,13 +208,16 @@ extern "C" int __declspec(dllexport) Load(void) HookEvent(ME_SYSTEM_PRESHUTDOWN, WeatherShutdown); HookEvent(ME_CLIST_PREBUILDCONTACTMENU, BuildContactMenu); + hDataWindowList = WindowList_Create(); + hWindowList = WindowList_Create(); + hUpdateMutex = CreateMutex(NULL, FALSE, NULL); // register weather protocol PROTOCOLDESCRIPTOR pd = { PROTOCOLDESCRIPTOR_V3_SIZE }; pd.szName = WEATHERPROTONAME; pd.type = (opt.NoProtoCondition) ? PROTOTYPE_VIRTUAL : PROTOTYPE_PROTOCOL; - CallService(MS_PROTO_REGISTERMODULE,0, (LPARAM)&pd); + CallService(MS_PROTO_REGISTERMODULE, 0, (LPARAM)&pd); // initialize weather protocol services InitServices(); @@ -230,10 +228,9 @@ extern "C" int __declspec(dllexport) Load(void) // window needed for popup commands TCHAR SvcFunc[100]; - mir_sntprintf( SvcFunc, SIZEOF(SvcFunc), _T("%s__PopupWindow"), _T(WEATHERPROTONAME)); - hPopupWindow = CreateWindowEx(WS_EX_TOOLWINDOW,_T("static"),SvcFunc,0,CW_USEDEFAULT,CW_USEDEFAULT, - CW_USEDEFAULT,CW_USEDEFAULT,HWND_DESKTOP,NULL, hInst,NULL); + mir_sntprintf(SvcFunc, SIZEOF(SvcFunc), _T("%s__PopupWindow"), _T(WEATHERPROTONAME)); + hPopupWindow = CreateWindowEx(WS_EX_TOOLWINDOW, _T("static"), SvcFunc, 0, CW_USEDEFAULT, CW_USEDEFAULT, + CW_USEDEFAULT, CW_USEDEFAULT, HWND_DESKTOP, NULL, hInst, NULL); SetWindowLongPtr(hPopupWindow, GWLP_WNDPROC, (LONG_PTR)PopupWndProc); - return 0; } diff --git a/plugins/Weather/src/weather_data.cpp b/plugins/Weather/src/weather_data.cpp index 78ff5e60b4..4f5aaaa0ad 100644 --- a/plugins/Weather/src/weather_data.cpp +++ b/plugins/Weather/src/weather_data.cpp @@ -30,10 +30,10 @@ saving individual weather data for a weather contact. // hContact = the current contact handle // return value = the string for station ID -void GetStationID(HANDLE hContact, TCHAR* id, size_t idlen) +void GetStationID(HANDLE hContact, TCHAR* id, size_t idlen) { // accessing the database - if ( DBGetStaticString(hContact, WEATHERPROTONAME, "ID", id, idlen)) + if (DBGetStaticString(hContact, WEATHERPROTONAME, "ID", id, idlen)) id[0] = 0; } @@ -49,35 +49,35 @@ WEATHERINFO LoadWeatherInfo(HANDLE hContact) winfo.hContact = hContact; GetStationID(hContact, winfo.id, SIZEOF(winfo.id)); - if ( DBGetStaticString(hContact, WEATHERPROTONAME, "Nick", winfo.city, SIZEOF(winfo.city))) + if (DBGetStaticString(hContact, WEATHERPROTONAME, "Nick", winfo.city, SIZEOF(winfo.city))) _tcscpy(winfo.city, NODATA); - if ( DBGetStaticString(hContact, WEATHERCONDITION, "Update", winfo.update, SIZEOF(winfo.update))) + if (DBGetStaticString(hContact, WEATHERCONDITION, "Update", winfo.update, SIZEOF(winfo.update))) _tcscpy(winfo.update, NODATA); - if ( DBGetStaticString(hContact, WEATHERCONDITION, "Condition", winfo.cond, SIZEOF(winfo.cond))) + if (DBGetStaticString(hContact, WEATHERCONDITION, "Condition", winfo.cond, SIZEOF(winfo.cond))) _tcscpy(winfo.cond, NODATA); - if ( DBGetStaticString(hContact, WEATHERCONDITION, "Temperature", winfo.temp, SIZEOF(winfo.temp))) + if (DBGetStaticString(hContact, WEATHERCONDITION, "Temperature", winfo.temp, SIZEOF(winfo.temp))) _tcscpy(winfo.temp, NODATA); - if ( DBGetStaticString(hContact, WEATHERCONDITION, "High", winfo.high, SIZEOF(winfo.high))) + if (DBGetStaticString(hContact, WEATHERCONDITION, "High", winfo.high, SIZEOF(winfo.high))) _tcscpy(winfo.high, NODATA); - if ( DBGetStaticString(hContact, WEATHERCONDITION, "Low", winfo.low, SIZEOF(winfo.low))) + if (DBGetStaticString(hContact, WEATHERCONDITION, "Low", winfo.low, SIZEOF(winfo.low))) _tcscpy(winfo.low, NODATA); - if ( DBGetStaticString(hContact, WEATHERCONDITION, "Sunset", winfo.sunset, SIZEOF(winfo.sunset))) + if (DBGetStaticString(hContact, WEATHERCONDITION, "Sunset", winfo.sunset, SIZEOF(winfo.sunset))) _tcscpy(winfo.sunset, NODATA); - if ( DBGetStaticString(hContact, WEATHERCONDITION, "Sunrise", winfo.sunrise, SIZEOF(winfo.sunrise))) + if (DBGetStaticString(hContact, WEATHERCONDITION, "Sunrise", winfo.sunrise, SIZEOF(winfo.sunrise))) _tcscpy(winfo.sunrise, NODATA); - if ( DBGetStaticString(hContact, WEATHERCONDITION, "Wind Speed", winfo.wind, SIZEOF(winfo.wind))) + if (DBGetStaticString(hContact, WEATHERCONDITION, "Wind Speed", winfo.wind, SIZEOF(winfo.wind))) _tcscpy(winfo.wind, NODATA); - if ( DBGetStaticString(hContact, WEATHERCONDITION, "Wind Direction", winfo.winddir, SIZEOF(winfo.winddir))) + if (DBGetStaticString(hContact, WEATHERCONDITION, "Wind Direction", winfo.winddir, SIZEOF(winfo.winddir))) _tcscpy(winfo.winddir, NODATA); - if ( DBGetStaticString(hContact, WEATHERCONDITION, "Dewpoint", winfo.dewpoint, SIZEOF(winfo.dewpoint))) + if (DBGetStaticString(hContact, WEATHERCONDITION, "Dewpoint", winfo.dewpoint, SIZEOF(winfo.dewpoint))) _tcscpy(winfo.dewpoint, NODATA); - if ( DBGetStaticString(hContact, WEATHERCONDITION, "Pressure", winfo.pressure, SIZEOF(winfo.pressure))) + if (DBGetStaticString(hContact, WEATHERCONDITION, "Pressure", winfo.pressure, SIZEOF(winfo.pressure))) _tcscpy(winfo.pressure, NODATA); - if ( DBGetStaticString(hContact, WEATHERCONDITION, "Visibility", winfo.vis, SIZEOF(winfo.vis))) + if (DBGetStaticString(hContact, WEATHERCONDITION, "Visibility", winfo.vis, SIZEOF(winfo.vis))) _tcscpy(winfo.vis, NODATA); - if ( DBGetStaticString(hContact, WEATHERCONDITION, "Humidity", winfo.humid, SIZEOF(winfo.humid))) + if (DBGetStaticString(hContact, WEATHERCONDITION, "Humidity", winfo.humid, SIZEOF(winfo.humid))) _tcscpy(winfo.humid, NODATA); - if ( DBGetStaticString(hContact, WEATHERCONDITION, "Feel", winfo.feel, SIZEOF(winfo.feel))) + if (DBGetStaticString(hContact, WEATHERCONDITION, "Feel", winfo.feel, SIZEOF(winfo.feel))) _tcscpy(winfo.feel, NODATA); winfo.status = (WORD)db_get_w(hContact, WEATHERPROTONAME, "StatusIcon", ID_STATUS_OFFLINE); @@ -284,6 +284,7 @@ void GetDataValue(WIDATAITEM *UpdateData, TCHAR *Data, TCHAR** szData) szInfo = start; } } + // the end string must be found too if (UpdateData->End[0] != 0) end = _tcsstr(szInfo, UpdateData->End); @@ -297,14 +298,13 @@ void GetDataValue(WIDATAITEM *UpdateData, TCHAR *Data, TCHAR** szData) end += _tcslen(UpdateData->End); last = '\n'; } + // ignore if not both of the string found - this prevent crashes - if (start != NULL && end != NULL) - { + if (start != NULL && end != NULL) { // begin reading the data from start location to end location // remove all HTML tag in between, as well as leading space, ending space, // multiple spaces, tabs, and return key - while (startloc < endloc) - { + while (startloc < endloc) { if (szInfo[startloc] == '<') tag = TRUE; else if (szInfo[startloc] == '&' && (szInfo[startloc+1] == ';' || szInfo[startloc+2] == ';' || szInfo[startloc+3] == ';' || @@ -368,41 +368,38 @@ void GetDataValue(WIDATAITEM *UpdateData, TCHAR *Data, TCHAR** szData) // copy a string into a new memory location // Data = the field the data is copied to // Value = the original string, the string where data is copied from -void wSetData(char **Data, const char *Value) +void wSetData(char **Data, const char *Value) { - if (Value[0] != 0) - { - char *newData = (char*)mir_alloc(strlen(Value)+3); + if (Value[0] != 0) { + char *newData = (char*)mir_alloc(strlen(Value) + 3); strcpy(newData, Value); *Data = newData; } - else - *Data = ""; + else *Data = ""; } void wSetData(WCHAR **Data, const char *Value) { if (Value[0] != 0) - *Data = mir_a2u( Value ); + *Data = mir_a2u(Value); else *Data = L""; } void wSetData(WCHAR **Data, const WCHAR *Value) { - if (Value[0] != 0) { - WCHAR *newData = (WCHAR*)mir_alloc( sizeof(WCHAR)*(wcslen(Value)+3)); - wcscpy(newData, Value); - *Data = newData; - } - else *Data = L""; + if (Value[0] != 0) + *Data = mir_wstrdup(Value); + else + *Data = L""; } // A safer free function that free memory for a string // Data = the string occuping the data to be freed void wfree(char **Data) { - if (*Data && strlen(*Data) > 0) mir_free(*Data); + if (*Data && strlen(*Data) > 0) + mir_free(*Data); *Data = NULL; } @@ -417,17 +414,17 @@ void wfree(WCHAR **Data) // get single setting that is found // szSetting = the setting name // lparam = the counter -int GetWeatherDataFromDB(const char *szSetting, LPARAM lparam) +int GetWeatherDataFromDB(const char *szSetting, LPARAM lparam) { LIST *pList = (LIST*)lparam; - pList->insert( mir_strdup(szSetting)); + pList->insert(mir_strdup(szSetting)); return 0; } // remove or display the weather information for a contact // hContact - the contact in which the info is going to be removed -void DBDataManage(HANDLE hContact, WORD Mode, WPARAM wParam, LPARAM lParam) +void DBDataManage(HANDLE hContact, WORD Mode, WPARAM wParam, LPARAM lParam) { LIST arSettings(10); @@ -439,35 +436,33 @@ void DBDataManage(HANDLE hContact, WORD Mode, WPARAM wParam, LPARAM lParam) CallService(MS_DB_CONTACT_ENUMSETTINGS, (WPARAM)hContact, (LPARAM)&dbces); // begin deleting settings - for (int i=arSettings.getCount()-1; i >= 0; i--) { + for (int i = arSettings.getCount() - 1; i >= 0; i--) { char *szSetting = arSettings[i]; - + DBVARIANT dbv; - if ( !db_get_ts(hContact, WEATHERCONDITION, szSetting, &dbv)) { + if (!db_get_ts(hContact, WEATHERCONDITION, szSetting, &dbv)) { switch (Mode) { case WDBM_REMOVE: db_unset(hContact, WEATHERCONDITION, szSetting); break; - case WDBM_DETAILDISPLAY: + case WDBM_DETAILDISPLAY: // skip the "WeatherInfo" variable - if ( !strcmp(szSetting, "WeatherInfo") || !strcmp(szSetting, "Ignore") || szSetting[0] == '#') + if (!strcmp(szSetting, "WeatherInfo") || !strcmp(szSetting, "Ignore") || szSetting[0] == '#') continue; - else { - HWND hList = GetDlgItem((HWND)wParam, IDC_DATALIST); - LV_ITEM lvi = { 0 }; - lvi.mask = LVIF_TEXT | LVIF_PARAM; - lvi.lParam = i; - lvi.pszText = TranslateTS( _A2T(szSetting )); - lvi.iItem = ListView_InsertItem(hList, &lvi); - lvi.pszText = dbv.ptszVal; - ListView_SetItemText(hList, lvi.iItem, 1, dbv.ptszVal ); - break; - } + + HWND hList = GetDlgItem((HWND)wParam, IDC_DATALIST); + LV_ITEM lvi = { 0 }; + lvi.mask = LVIF_TEXT | LVIF_PARAM; + lvi.lParam = i; + lvi.pszText = TranslateTS(_A2T(szSetting)); + lvi.iItem = ListView_InsertItem(hList, &lvi); + lvi.pszText = dbv.ptszVal; + ListView_SetItemText(hList, lvi.iItem, 1, dbv.ptszVal); + break; } db_free(&dbv); } mir_free(szSetting); } - arSettings.destroy(); } diff --git a/plugins/Weather/src/weather_opt.cpp b/plugins/Weather/src/weather_opt.cpp index 558b35175f..1a2158747e 100644 --- a/plugins/Weather/src/weather_opt.cpp +++ b/plugins/Weather/src/weather_opt.cpp @@ -31,57 +31,47 @@ int RedrawFrame(WPARAM wParam, LPARAM lParam); // set a string to default // in = string to determine which field to set default "CBNEHXPp" -void SetTextDefault(const char* in) +void SetTextDefault(const char* in) { TCHAR str[MAX_TEXT_SIZE]; - if (strchr(in, 'C') != NULL) - { + if (strchr(in, 'C') != NULL) { _tcscpy(str, C_DEFAULT); wSetData(&opt.cText, str); } - if (strchr(in, 'b') != NULL) - { + if (strchr(in, 'b') != NULL) { _tcscpy(str, b_DEFAULT); wSetData(&opt.bTitle, str); } - if (strchr(in, 'B') != NULL) - { + if (strchr(in, 'B') != NULL) { _tcscpy(str, B_DEFAULT); wSetData(&opt.bText, str); } - if (strchr(in, 'N') != NULL) - { + if (strchr(in, 'N') != NULL) { _tcscpy(str, N_DEFAULT); wSetData(&opt.nText, str); } - if (strchr(in, 'E') != NULL) - { + if (strchr(in, 'E') != NULL) { _tcscpy(str, E_DEFAULT); wSetData(&opt.eText, str); } - if (strchr(in, 'H') != NULL) - { + if (strchr(in, 'H') != NULL) { _tcscpy(str, H_DEFAULT); wSetData(&opt.hText, str); } - if (strchr(in, 'X') != NULL) - { + if (strchr(in, 'X') != NULL) { _tcscpy(str, X_DEFAULT); wSetData(&opt.xText, str); } - if (strchr(in, 'P') != NULL) - { + if (strchr(in, 'P') != NULL) { _tcscpy(str, P_DEFAULT); wSetData(&opt.pTitle, str); } - if (strchr(in, 'p') != NULL) - { + if (strchr(in, 'p') != NULL) { _tcscpy(str, p_DEFAULT); wSetData(&opt.pText, str); } - if (strchr(in, 'S') != NULL) - { + if (strchr(in, 'S') != NULL) { _tcscpy(str, s_DEFAULT); wSetData(&opt.sText, str); } @@ -102,7 +92,7 @@ void DestroyOptions(void) } // load options from database + set default if the setting does not exist -void LoadOptions(void) +void LoadOptions(void) { ZeroMemory(&opt, sizeof(opt)); @@ -115,7 +105,7 @@ void LoadOptions(void) opt.RemoveOldData = db_get_b(NULL, WEATHERPROTONAME, "RemoveOld", false); opt.MakeItalic = db_get_b(NULL, WEATHERPROTONAME, "MakeItalic", true); opt.AvatarSize = db_get_b(NULL, WEATHERPROTONAME, "AvatarSize", 128); - + // units opt.tUnit = db_get_w(NULL, WEATHERPROTONAME, "tUnit", 1); opt.wUnit = db_get_w(NULL, WEATHERPROTONAME, "wUnit", 2); @@ -124,63 +114,52 @@ void LoadOptions(void) opt.dUnit = db_get_w(NULL, WEATHERPROTONAME, "dUnit", 1); opt.eUnit = db_get_w(NULL, WEATHERPROTONAME, "eUnit", 2); - DBVARIANT dbv; - if (db_get_ts(NULL, WEATHERPROTONAME, "DegreeSign",&dbv)) - _tcscpy(opt.DegreeSign, _T("")); - else { - _tcscpy(opt.DegreeSign, dbv.ptszVal); - db_free(&dbv); - } + ptrT szValue(db_get_tsa(NULL, WEATHERPROTONAME, "DegreeSign")); + _tcsncpy_s(opt.DegreeSign, SIZEOF(opt.DegreeSign), (szValue == NULL) ? _T("") : szValue, _TRUNCATE); + opt.DoNotAppendUnit = db_get_b(NULL, WEATHERPROTONAME, "DoNotAppendUnit", 0); opt.NoFrac = db_get_b(NULL, WEATHERPROTONAME, "NoFractions", 0); + // texts - if ( !db_get_ts(NULL, WEATHERPROTONAME, "DisplayText", &dbv)) { - wSetData(&opt.cText, TranslateTS(dbv.ptszVal)); - db_free(&dbv); - } - else SetTextDefault("C"); - - if ( !db_get_ts(NULL, WEATHERPROTONAME, "BriefTextTitle", &dbv)) { - wSetData(&opt.bTitle, TranslateTS(dbv.ptszVal)); - db_free(&dbv); - } - else SetTextDefault("b"); - - if ( !db_get_ts(NULL, WEATHERPROTONAME, "BriefText", &dbv)) { - wSetData(&opt.bText, TranslateTS(dbv.ptszVal)); - db_free(&dbv); - } - else SetTextDefault("B"); - - if ( !db_get_ts(NULL, WEATHERPROTONAME, "NoteText", &dbv)) { - wSetData(&opt.nText, TranslateTS(dbv.ptszVal)); - db_free(&dbv); - } - else SetTextDefault("N"); - - if ( !db_get_ts(NULL, WEATHERPROTONAME, "ExtText", &dbv)) { - wSetData(&opt.eText, TranslateTS(dbv.ptszVal)); - db_free(&dbv); - } - else SetTextDefault("E"); - - if ( !db_get_ts(NULL, WEATHERPROTONAME, "HistoryText", &dbv)) { - wSetData(&opt.hText, TranslateTS(dbv.ptszVal)); - db_free(&dbv); - } - else SetTextDefault("H"); - - if ( !db_get_ts(NULL, WEATHERPROTONAME, "ExtraText", &dbv)) { - wSetData(&opt.xText, TranslateTS(dbv.ptszVal)); - db_free(&dbv); - } - else SetTextDefault("X"); - - if ( !db_get_ts(NULL, WEATHERPROTONAME, "StatusText", &dbv)) { - wSetData(&opt.sText, TranslateTS(dbv.ptszVal)); - db_free(&dbv); - } - else SetTextDefault("S"); + if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "DisplayText")) + wSetData(&opt.cText, TranslateTS(szValue)); + else + SetTextDefault("C"); + + if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "BriefTextTitle")) + wSetData(&opt.bTitle, TranslateTS(szValue)); + else + SetTextDefault("b"); + + if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "BriefText")) + wSetData(&opt.bText, TranslateTS(szValue)); + else + SetTextDefault("B"); + + if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "NoteText")) + wSetData(&opt.nText, TranslateTS(szValue)); + else + SetTextDefault("N"); + + if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "ExtText")) + wSetData(&opt.eText, TranslateTS(szValue)); + else + SetTextDefault("E"); + + if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "HistoryText")) + wSetData(&opt.hText, TranslateTS(szValue)); + else + SetTextDefault("H"); + + if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "ExtraText")) + wSetData(&opt.xText, TranslateTS(szValue)); + else + SetTextDefault("X"); + + if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "StatusText")) + wSetData(&opt.sText, TranslateTS(szValue)); + else + SetTextDefault("S"); // advanced opt.DisCondIcon = db_get_b(NULL, WEATHERPROTONAME, "DisableConditionIcon", false); @@ -200,28 +179,25 @@ void LoadOptions(void) // popup delay opt.pDelay = db_get_dw(NULL, WEATHERPROTONAME, "PopupDelay", 0); // popup texts - if ( !db_get_ts(NULL, WEATHERPROTONAME, "PopupTitle",&dbv)) { - wSetData(&opt.pTitle, dbv.ptszVal); - db_free(&dbv); - } - else SetTextDefault("P"); + if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "PopupTitle")) + wSetData(&opt.pTitle, szValue); + else + SetTextDefault("P"); - if ( !db_get_ts(NULL, WEATHERPROTONAME, "PopupText",&dbv)) { - wSetData(&opt.pText, dbv.ptszVal); - db_free(&dbv); - } - else SetTextDefault("p"); + if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "PopupText")) + wSetData(&opt.pText, szValue); + else + SetTextDefault("p"); // misc - if ( !db_get_ts(NULL, WEATHERPROTONAME, "Default",&dbv)) { - _tcscpy(opt.Default, dbv.ptszVal); - db_free(&dbv); - } - else opt.Default[0] = 0; + if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "Default")) + _tcsncpy_s(opt.Default, SIZEOF(opt.Default), szValue, _TRUNCATE); + else + opt.Default[0] = 0; } // save the options to database -void SaveOptions(void) +void SaveOptions(void) { // main options db_set_b(NULL, WEATHERPROTONAME, "StartupUpdate", (BYTE)opt.StartupUpdate); @@ -278,35 +254,35 @@ void SaveOptions(void) //============ OPTION INITIALIZATION ============ // register the weather option pages -int OptInit(WPARAM wParam,LPARAM lParam) +int OptInit(WPARAM wParam, LPARAM lParam) { OPTIONSDIALOGPAGE odp = { sizeof(odp) }; odp.hInstance = hInst; // plugin options - odp.position = 95600; + odp.position = 95600; odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPTIONS); - odp.pfnDlgProc = OptionsProc; - odp.ptszGroup = LPGENT("Network"); - odp.ptszTitle = _T(WEATHERPROTOTEXT); - odp.ptszTab = LPGENT("General"); - odp.flags = ODPF_BOLDGROUPS|ODPF_TCHAR; + odp.pfnDlgProc = OptionsProc; + odp.ptszGroup = LPGENT("Network"); + odp.ptszTitle = _T(WEATHERPROTOTEXT); + odp.ptszTab = LPGENT("General"); + odp.flags = ODPF_BOLDGROUPS | ODPF_TCHAR; Options_AddPage(wParam, &odp); // text options odp.pszTemplate = MAKEINTRESOURCEA(IDD_TEXTOPT); - odp.pfnDlgProc = DlgProcText; - odp.ptszTab = LPGENT("Display"); + odp.pfnDlgProc = DlgProcText; + odp.ptszTab = LPGENT("Display"); Options_AddPage(wParam, &odp); // if popup service exists, load the weather popup options - if (( ServiceExists(MS_POPUP_ADDPOPUPT))) { - odp.position = 100000000; - odp.pszTemplate = MAKEINTRESOURCEA(IDD_POPUP); - odp.ptszGroup = LPGENT("Popups"); + if ((ServiceExists(MS_POPUP_ADDPOPUPT))) { + odp.position = 100000000; + odp.pszTemplate = MAKEINTRESOURCEA(IDD_POPUP); + odp.ptszGroup = LPGENT("Popups"); odp.groupPosition = 910000000; - odp.ptszTab = NULL; - odp.pfnDlgProc = DlgPopupOpts; + odp.ptszTab = NULL; + odp.pfnDlgProc = DlgPopupOpts; Options_AddPage(wParam, &odp); } @@ -316,11 +292,11 @@ int OptInit(WPARAM wParam,LPARAM lParam) //============ MAIN OPTIONS ============ // weather options -INT_PTR CALLBACK OptionsProc(HWND hdlg, UINT msg, WPARAM wparam, LPARAM lparam) +INT_PTR CALLBACK OptionsProc(HWND hdlg, UINT msg, WPARAM wparam, LPARAM lparam) { TCHAR str[512]; - switch(msg) { + switch (msg) { case WM_INITDIALOG: opt_startup = TRUE; TranslateDialogDefault(hdlg); @@ -333,61 +309,61 @@ INT_PTR CALLBACK OptionsProc(HWND hdlg, UINT msg, WPARAM wparam, LPARAM lparam) SendDlgItemMessage(hdlg, IDC_AVATARSPIN, UDM_SETPOS, 0, opt.AvatarSize); SendDlgItemMessage(hdlg, IDC_AVATARSIZE, EM_LIMITTEXT, 3, 0); - CheckDlgButton(hdlg, IDC_STARTUPUPD, opt.StartupUpdate); - CheckDlgButton(hdlg, IDC_UPDATE, opt.AutoUpdate); - CheckDlgButton(hdlg, IDC_PROTOCOND, !opt.NoProtoCondition); - CheckDlgButton(hdlg, IDC_UPDCONDCHG, opt.UpdateOnlyConditionChanged); - CheckDlgButton(hdlg, IDC_REMOVEOLD, opt.RemoveOldData); - CheckDlgButton(hdlg, IDC_MAKEI, opt.MakeItalic); - CheckDlgButton(hdlg, IDC_DISCONDICON, opt.DisCondIcon); + CheckDlgButton(hdlg, IDC_STARTUPUPD, opt.StartupUpdate); + CheckDlgButton(hdlg, IDC_UPDATE, opt.AutoUpdate); + CheckDlgButton(hdlg, IDC_PROTOCOND, !opt.NoProtoCondition); + CheckDlgButton(hdlg, IDC_UPDCONDCHG, opt.UpdateOnlyConditionChanged); + CheckDlgButton(hdlg, IDC_REMOVEOLD, opt.RemoveOldData); + CheckDlgButton(hdlg, IDC_MAKEI, opt.MakeItalic); + CheckDlgButton(hdlg, IDC_DISCONDICON, opt.DisCondIcon); CheckDlgButton(hdlg, IDC_DONOTAPPUNITS, opt.DoNotAppendUnit); - CheckDlgButton(hdlg, IDC_NOFRAC, opt.NoFrac); + CheckDlgButton(hdlg, IDC_NOFRAC, opt.NoFrac); // load units switch (opt.tUnit) { // temperature - case 1: CheckRadioButton(hdlg, IDC_T1, IDC_T2, IDC_T1); break; - case 2: CheckRadioButton(hdlg, IDC_T1, IDC_T2, IDC_T2); break; + case 1: CheckRadioButton(hdlg, IDC_T1, IDC_T2, IDC_T1); break; + case 2: CheckRadioButton(hdlg, IDC_T1, IDC_T2, IDC_T2); break; } switch (opt.wUnit) { // wind - case 1: CheckRadioButton(hdlg, IDC_W1, IDC_W4, IDC_W1); break; - case 2: CheckRadioButton(hdlg, IDC_W1, IDC_W4, IDC_W2); break; - case 3: CheckRadioButton(hdlg, IDC_W1, IDC_W4, IDC_W3); break; - case 4: CheckRadioButton(hdlg, IDC_W1, IDC_W4, IDC_W4); break; + case 1: CheckRadioButton(hdlg, IDC_W1, IDC_W4, IDC_W1); break; + case 2: CheckRadioButton(hdlg, IDC_W1, IDC_W4, IDC_W2); break; + case 3: CheckRadioButton(hdlg, IDC_W1, IDC_W4, IDC_W3); break; + case 4: CheckRadioButton(hdlg, IDC_W1, IDC_W4, IDC_W4); break; } switch (opt.vUnit) { // visibility - case 1: CheckRadioButton(hdlg, IDC_V1, IDC_V2, IDC_V1); break; - case 2: CheckRadioButton(hdlg, IDC_V1, IDC_V2, IDC_V2); break; + case 1: CheckRadioButton(hdlg, IDC_V1, IDC_V2, IDC_V1); break; + case 2: CheckRadioButton(hdlg, IDC_V1, IDC_V2, IDC_V2); break; } switch (opt.pUnit) { // pressure - case 1: CheckRadioButton(hdlg, IDC_P1, IDC_P4, IDC_P1); break; - case 2: CheckRadioButton(hdlg, IDC_P1, IDC_P4, IDC_P2); break; - case 3: CheckRadioButton(hdlg, IDC_P1, IDC_P4, IDC_P3); break; - case 4: CheckRadioButton(hdlg, IDC_P1, IDC_P4, IDC_P4); break; + case 1: CheckRadioButton(hdlg, IDC_P1, IDC_P4, IDC_P1); break; + case 2: CheckRadioButton(hdlg, IDC_P1, IDC_P4, IDC_P2); break; + case 3: CheckRadioButton(hdlg, IDC_P1, IDC_P4, IDC_P3); break; + case 4: CheckRadioButton(hdlg, IDC_P1, IDC_P4, IDC_P4); break; } switch (opt.dUnit) { // pressure - case 1: CheckRadioButton(hdlg, IDC_D1, IDC_D3, IDC_D1); break; - case 2: CheckRadioButton(hdlg, IDC_D1, IDC_D3, IDC_D2); break; - case 3: CheckRadioButton(hdlg, IDC_D1, IDC_D3, IDC_D3); break; + case 1: CheckRadioButton(hdlg, IDC_D1, IDC_D3, IDC_D1); break; + case 2: CheckRadioButton(hdlg, IDC_D1, IDC_D3, IDC_D2); break; + case 3: CheckRadioButton(hdlg, IDC_D1, IDC_D3, IDC_D3); break; } switch (opt.eUnit) { // elev - case 1: CheckRadioButton(hdlg, IDC_E1, IDC_E2, IDC_E1); break; - case 2: CheckRadioButton(hdlg, IDC_E1, IDC_E2, IDC_E2); break; + case 1: CheckRadioButton(hdlg, IDC_E1, IDC_E2, IDC_E1); break; + case 2: CheckRadioButton(hdlg, IDC_E1, IDC_E2, IDC_E2); break; } opt_startup = FALSE; return 0; case WM_COMMAND: - if (HIWORD(wparam)==BN_CLICKED && GetFocus()==(HWND)lparam) - if ( !opt_startup) SendMessage(GetParent(hdlg),PSM_CHANGED,0,0); - if ( !((LOWORD(wparam) == IDC_UPDATE || LOWORD(wparam) == IDC_DEGREE) && + if (HIWORD(wparam) == BN_CLICKED && GetFocus() == (HWND)lparam) + if (!opt_startup) SendMessage(GetParent(hdlg), PSM_CHANGED, 0, 0); + if (!((LOWORD(wparam) == IDC_UPDATE || LOWORD(wparam) == IDC_DEGREE) && (HIWORD(wparam) != EN_CHANGE || (HWND)lparam != GetFocus()))) - if ( !opt_startup) SendMessage(GetParent(hdlg),PSM_CHANGED,0,0); + if (!opt_startup) SendMessage(GetParent(hdlg), PSM_CHANGED, 0, 0); return 0; case WM_NOTIFY: - switch(((LPNMHDR)lparam)->code) { + switch (((LPNMHDR)lparam)->code) { case PSN_APPLY: // change the status for weather protocol if (IsDlgButtonChecked(hdlg, IDC_PROTOCOND) && opt.DefStn != NULL) { @@ -401,7 +377,7 @@ INT_PTR CALLBACK OptionsProc(HWND hdlg, UINT msg, WPARAM wparam, LPARAM lparam) opt.UpdateTime = (WORD)_ttoi(str); if (opt.UpdateTime < 1) opt.UpdateTime = 1; KillTimer(NULL, timerId); - timerId = SetTimer(NULL, 0, opt.UpdateTime*60000, (TIMERPROC)timerProc); + timerId = SetTimer(NULL, 0, opt.UpdateTime * 60000, (TIMERPROC)timerProc); // other general options GetDlgItemText(hdlg, IDC_DEGREE, opt.DegreeSign, sizeof(opt.DegreeSign)); @@ -478,39 +454,38 @@ void FreeTextVar(void) // text option dialog -static const char *varname[8] = {"C", "b", "B", "N", "X", "E", "H", "S"}; -static const int cname[8] = {IDC_CTEXT, IDC_BTITLE, IDC_BTEXT, IDC_NTEXT, IDC_XTEXT, IDC_ETEXT, IDC_HTEXT, IDC_BTITLE2 }; -static TCHAR* const *var[8] = {&opt.cText, &opt.bTitle, &opt.bText, &opt.nText, &opt.xText, &opt.eText, &opt.hText, &opt.sText }; +static const char *varname[8] = { "C", "b", "B", "N", "X", "E", "H", "S" }; +static const int cname[8] = { IDC_CTEXT, IDC_BTITLE, IDC_BTEXT, IDC_NTEXT, IDC_XTEXT, IDC_ETEXT, IDC_HTEXT, IDC_BTITLE2 }; +static TCHAR* const *var[8] = { &opt.cText, &opt.bTitle, &opt.bText, &opt.nText, &opt.xText, &opt.eText, &opt.hText, &opt.sText }; -INT_PTR CALLBACK DlgProcText(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam) +INT_PTR CALLBACK DlgProcText(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam) { RECT rc, pos; HWND button; HMENU hMenu, hMenu1; TCHAR str[4096]; - switch (msg) - { + switch (msg) { case WM_INITDIALOG: opt_startup = TRUE; // set windows position, make it top-most - GetWindowRect(hdlg, &rc); - SetWindowPos(hdlg, HWND_TOPMOST, rc.left, rc.top, 0, 0, SWP_NOSIZE); + GetWindowRect(hdlg, &rc); + SetWindowPos(hdlg, HWND_TOPMOST, rc.left, rc.top, 0, 0, SWP_NOSIZE); TranslateDialogDefault(hdlg); // generate the display text for variable list _tcscpy(str, TranslateT("%c\tcurrent condition\n%d\tcurrent date\n%e\tdewpoint\n%f\tfeel-like temp\n%h\ttoday's high\n%i\twind direction\n%l\ttoday's low\n%m\thumidity\n%n\tstation name\n%p\tpressure\n%r\tsunrise time\n%s\tstation ID\n%t\ttemperature\n%u\tupdate time\n%v\tvisibility\n%w\twind speed\n%y\tsun set")); SetDlgItemText(hdlg, IDC_VARLIST, str); // make the more variable and other buttons flat - SendMessage(GetDlgItem(hdlg,IDC_MORE), BUTTONSETASFLATBTN, TRUE, 0); - SendMessage(GetDlgItem(hdlg,IDC_TM1), BUTTONSETASFLATBTN, TRUE, 0); - SendMessage(GetDlgItem(hdlg,IDC_TM2), BUTTONSETASFLATBTN, TRUE, 0); - SendMessage(GetDlgItem(hdlg,IDC_TM3), BUTTONSETASFLATBTN, TRUE, 0); - SendMessage(GetDlgItem(hdlg,IDC_TM4), BUTTONSETASFLATBTN, TRUE, 0); - SendMessage(GetDlgItem(hdlg,IDC_TM5), BUTTONSETASFLATBTN, TRUE, 0); - SendMessage(GetDlgItem(hdlg,IDC_TM6), BUTTONSETASFLATBTN, TRUE, 0); - SendMessage(GetDlgItem(hdlg,IDC_TM7), BUTTONSETASFLATBTN, TRUE, 0); - SendMessage(GetDlgItem(hdlg,IDC_TM8), BUTTONSETASFLATBTN, TRUE, 0); - SendMessage(GetDlgItem(hdlg,IDC_RESET), BUTTONSETASFLATBTN, TRUE, 0); + SendMessage(GetDlgItem(hdlg, IDC_MORE), BUTTONSETASFLATBTN, TRUE, 0); + SendMessage(GetDlgItem(hdlg, IDC_TM1), BUTTONSETASFLATBTN, TRUE, 0); + SendMessage(GetDlgItem(hdlg, IDC_TM2), BUTTONSETASFLATBTN, TRUE, 0); + SendMessage(GetDlgItem(hdlg, IDC_TM3), BUTTONSETASFLATBTN, TRUE, 0); + SendMessage(GetDlgItem(hdlg, IDC_TM4), BUTTONSETASFLATBTN, TRUE, 0); + SendMessage(GetDlgItem(hdlg, IDC_TM5), BUTTONSETASFLATBTN, TRUE, 0); + SendMessage(GetDlgItem(hdlg, IDC_TM6), BUTTONSETASFLATBTN, TRUE, 0); + SendMessage(GetDlgItem(hdlg, IDC_TM7), BUTTONSETASFLATBTN, TRUE, 0); + SendMessage(GetDlgItem(hdlg, IDC_TM8), BUTTONSETASFLATBTN, TRUE, 0); + SendMessage(GetDlgItem(hdlg, IDC_RESET), BUTTONSETASFLATBTN, TRUE, 0); // load the settings LoadTextSettings(hdlg); opt_startup = FALSE; @@ -518,7 +493,7 @@ INT_PTR CALLBACK DlgProcText(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam) case WM_COMMAND: if (opt_startup) return TRUE; - switch(LOWORD(wParam)) { + switch (LOWORD(wParam)) { case IDC_CTEXT: case IDC_BTITLE: case IDC_BTEXT: @@ -528,7 +503,7 @@ INT_PTR CALLBACK DlgProcText(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam) case IDC_HTEXT: case IDC_BTITLE2: if (HIWORD(wParam) == EN_CHANGE) - SendMessage(GetParent(hdlg),PSM_CHANGED,0,0); + SendMessage(GetParent(hdlg), PSM_CHANGED, 0, 0); break; case IDC_MORE: @@ -542,52 +517,46 @@ INT_PTR CALLBACK DlgProcText(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam) case IDC_TM4: case IDC_TM5: case IDC_TM6: - case IDC_TM7: - case IDC_TM8: - { - WEATHERINFO winfo; - - // display the menu - button = GetDlgItem(hdlg, LOWORD(wParam)); - GetWindowRect(button, &pos); - hMenu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_TMMENU)); - hMenu1 = GetSubMenu(hMenu, 0); - TranslateMenu(hMenu1); - switch(TrackPopupMenu(hMenu1, TPM_LEFTBUTTON|TPM_RETURNCMD, pos.left, pos.bottom, 0, hdlg, NULL)) { - case ID_MPREVIEW: - // show the preview in a message box, using the weather data from the default station - winfo = LoadWeatherInfo(opt.DefStn); - GetDisplay(&winfo, *var[LOWORD(wParam)-IDC_TM1], str); - MessageBox(NULL, str, TranslateT("Weather Protocol Text Preview"), MB_OK|MB_TOPMOST); - break; - - case ID_MRESET: - { - unsigned varo = LOWORD(wParam) - IDC_TM1; - // remove the old setting from db and free memory - TCHAR* vartmp = *var[varo]; - wfree(&vartmp); - SetTextDefault(varname[varo]); - SetDlgItemText(hdlg, cname[varo], *var[varo]); - } - break; - } - DestroyMenu(hMenu); + case IDC_TM7: + case IDC_TM8: + WEATHERINFO winfo; + // display the menu + button = GetDlgItem(hdlg, LOWORD(wParam)); + GetWindowRect(button, &pos); + hMenu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_TMMENU)); + hMenu1 = GetSubMenu(hMenu, 0); + TranslateMenu(hMenu1); + switch (TrackPopupMenu(hMenu1, TPM_LEFTBUTTON | TPM_RETURNCMD, pos.left, pos.bottom, 0, hdlg, NULL)) { + case ID_MPREVIEW: + // show the preview in a message box, using the weather data from the default station + winfo = LoadWeatherInfo(opt.DefStn); + GetDisplay(&winfo, *var[LOWORD(wParam) - IDC_TM1], str); + MessageBox(NULL, str, TranslateT("Weather Protocol Text Preview"), MB_OK | MB_TOPMOST); + break; + + case ID_MRESET: + unsigned varo = LOWORD(wParam) - IDC_TM1; + // remove the old setting from db and free memory + TCHAR* vartmp = *var[varo]; + wfree(&vartmp); + SetTextDefault(varname[varo]); + SetDlgItemText(hdlg, cname[varo], *var[varo]); break; } + DestroyMenu(hMenu); + break; case IDC_RESET: // left click action selection menu button = GetDlgItem(hdlg, IDC_RESET); - GetWindowRect(button, &pos); - hMenu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_TMENU)); + GetWindowRect(button, &pos); + hMenu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_TMENU)); hMenu1 = GetSubMenu(hMenu, 0); TranslateMenu(hMenu1); - switch(TrackPopupMenu(hMenu1, TPM_LEFTBUTTON|TPM_RETURNCMD, pos.left, pos.bottom, 0, hdlg, NULL)) - { + switch (TrackPopupMenu(hMenu1, TPM_LEFTBUTTON | TPM_RETURNCMD, pos.left, pos.bottom, 0, hdlg, NULL)) { case ID_T1: // reset to the strings in memory, discard all changes - LoadTextSettings(hdlg); + LoadTextSettings(hdlg); break; case ID_T2: @@ -602,35 +571,32 @@ INT_PTR CALLBACK DlgProcText(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam) } return TRUE; case WM_NOTIFY: - switch(((LPNMHDR)lParam)->code) - { + switch (((LPNMHDR)lParam)->code) { case PSN_APPLY: - { - // save the option - TCHAR textstr[MAX_TEXT_SIZE]; - // free memory for old settings - FreeTextVar(); - // save new settings to memory - GetDlgItemText(hdlg, IDC_CTEXT, textstr, MAX_TEXT_SIZE); - wSetData(&opt.cText, textstr); - GetDlgItemText(hdlg, IDC_BTEXT, textstr, MAX_TEXT_SIZE); - wSetData(&opt.bText, textstr); - GetDlgItemText(hdlg, IDC_BTITLE, textstr, MAX_TEXT_SIZE); - wSetData(&opt.bTitle, textstr); - GetDlgItemText(hdlg, IDC_ETEXT, textstr, MAX_TEXT_SIZE); - wSetData(&opt.eText, textstr); - GetDlgItemText(hdlg, IDC_NTEXT, textstr, MAX_TEXT_SIZE); - wSetData(&opt.nText, textstr); - GetDlgItemText(hdlg, IDC_HTEXT, textstr, MAX_TEXT_SIZE); - wSetData(&opt.hText, textstr); - GetDlgItemText(hdlg, IDC_XTEXT, textstr, MAX_TEXT_SIZE); - wSetData(&opt.xText, textstr); - GetDlgItemText(hdlg, IDC_BTITLE2, textstr, MAX_TEXT_SIZE); - wSetData(&opt.sText, textstr); - SaveOptions(); - UpdateAllInfo(0, 0); - break; - } + // save the option + TCHAR textstr[MAX_TEXT_SIZE]; + // free memory for old settings + FreeTextVar(); + // save new settings to memory + GetDlgItemText(hdlg, IDC_CTEXT, textstr, MAX_TEXT_SIZE); + wSetData(&opt.cText, textstr); + GetDlgItemText(hdlg, IDC_BTEXT, textstr, MAX_TEXT_SIZE); + wSetData(&opt.bText, textstr); + GetDlgItemText(hdlg, IDC_BTITLE, textstr, MAX_TEXT_SIZE); + wSetData(&opt.bTitle, textstr); + GetDlgItemText(hdlg, IDC_ETEXT, textstr, MAX_TEXT_SIZE); + wSetData(&opt.eText, textstr); + GetDlgItemText(hdlg, IDC_NTEXT, textstr, MAX_TEXT_SIZE); + wSetData(&opt.nText, textstr); + GetDlgItemText(hdlg, IDC_HTEXT, textstr, MAX_TEXT_SIZE); + wSetData(&opt.hText, textstr); + GetDlgItemText(hdlg, IDC_XTEXT, textstr, MAX_TEXT_SIZE); + wSetData(&opt.xText, textstr); + GetDlgItemText(hdlg, IDC_BTITLE2, textstr, MAX_TEXT_SIZE); + wSetData(&opt.sText, textstr); + SaveOptions(); + UpdateAllInfo(0, 0); + break; } break; } diff --git a/plugins/Weather/src/weather_update.cpp b/plugins/Weather/src/weather_update.cpp index c013902ea4..ace0423881 100644 --- a/plugins/Weather/src/weather_update.cpp +++ b/plugins/Weather/src/weather_update.cpp @@ -58,7 +58,7 @@ int UpdateWeather(HANDLE hContact) // error occurs if the return value is not equals to 0 if (opt.ShowWarnings) { // show warnings by popup - mir_sntprintf(str, SIZEOF(str) - 105, + mir_sntprintf(str, SIZEOF(str) - 105, TranslateT("Unable to retrieve weather information for %s"), dbv.ptszVal); _tcscat(str, _T("\n")); _tcscat(str, GetError(code)); @@ -80,19 +80,19 @@ int UpdateWeather(HANDLE hContact) // compare the old condition and determine if the weather had changed if (opt.UpdateOnlyConditionChanged) { // consider condition change - if ( !db_get_ts(hContact, WEATHERPROTONAME, "LastCondition", &dbv)) { + if (!db_get_ts(hContact, WEATHERPROTONAME, "LastCondition", &dbv)) { if (_tcsicmp(winfo.cond, dbv.ptszVal)) Ch = TRUE; // the weather condition is changed db_free(&dbv); } else Ch = TRUE; - if ( !db_get_ts(hContact, WEATHERPROTONAME, "LastTemperature", &dbv)) { + if (!db_get_ts(hContact, WEATHERPROTONAME, "LastTemperature", &dbv)) { if (_tcsicmp(winfo.temp, dbv.ptszVal)) Ch = TRUE; // the temperature is changed db_free(&dbv); } else Ch = TRUE; } else { // consider update time change - if ( !db_get_ts(hContact, WEATHERPROTONAME, "LastUpdate", &dbv)) { + if (!db_get_ts(hContact, WEATHERPROTONAME, "LastUpdate", &dbv)) { if (_tcsicmp(winfo.update, dbv.ptszVal)) Ch = TRUE; // the update time is changed db_free(&dbv); } @@ -101,7 +101,7 @@ int UpdateWeather(HANDLE hContact) // have weather alert issued? dbres = db_get_ts(hContact, WEATHERCONDITION, "Alert", &dbv); - if ( !dbres && dbv.ptszVal[0] != 0) { + if (!dbres && dbv.ptszVal[0] != 0) { if (opt.AlertPopup && !db_get_b(hContact, WEATHERPROTONAME, "DPopUp", 0) && Ch) { // display alert popup mir_sntprintf(str, SIZEOF(str), _T("Alert for %s%c%s"), winfo.city, 255, dbv.ptszVal); @@ -113,8 +113,8 @@ int UpdateWeather(HANDLE hContact) SkinPlaySound("weatheralert"); } // alert dropped, set the display back to normal - else db_unset(hContact, WEATHERPROTONAME, "ApparentMode"); - if ( !dbres) db_free(&dbv); + else db_unset(hContact, WEATHERPROTONAME, "ApparentMode"); + if (!dbres) db_free(&dbv); // backup current condition for checking if the weather is changed or not db_set_ts(hContact, WEATHERPROTONAME, "LastLog", winfo.update); @@ -209,7 +209,8 @@ int UpdateWeather(HANDLE hContact) // update brief info if its opened HWND hMoreDataDlg = WindowList_Find(hDataWindowList, hContact); - if (hMoreDataDlg != NULL) PostMessage(hMoreDataDlg, WM_UPDATEDATA, 0, 0); + if (hMoreDataDlg != NULL) + PostMessage(hMoreDataDlg, WM_UPDATEDATA, 0, 0); return 0; } diff --git a/plugins/Weather/src/weather_userinfo.cpp b/plugins/Weather/src/weather_userinfo.cpp index 7d06772caa..955b46639b 100644 --- a/plugins/Weather/src/weather_userinfo.cpp +++ b/plugins/Weather/src/weather_userinfo.cpp @@ -115,20 +115,15 @@ INT_PTR CALLBACK DlgProcUIPage(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa case WM_COMMAND: switch(LOWORD(wParam)) { case IDC_MOREDETAIL: - { - HWND hMoreDataDlg = WindowList_Find(hDataWindowList, hContact); - if (hMoreDataDlg == NULL) - hMoreDataDlg = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_BRIEF), NULL, - DlgProcMoreData, (LPARAM)hContact); - else - { - SetForegroundWindow(hMoreDataDlg); - SetFocus(hMoreDataDlg); - } - ShowWindow(GetDlgItem(hMoreDataDlg, IDC_MTEXT), 0); - ShowWindow(GetDlgItem(hMoreDataDlg, IDC_DATALIST), 1); - break; + HWND hMoreDataDlg = WindowList_Find(hDataWindowList, hContact); + if (hMoreDataDlg == NULL) + hMoreDataDlg = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_BRIEF), NULL, DlgProcMoreData, (LPARAM)hContact); + else { + SetForegroundWindow(hMoreDataDlg); + SetFocus(hMoreDataDlg); } + ShowWindow(GetDlgItem(hMoreDataDlg, IDC_MTEXT), 0); + ShowWindow(GetDlgItem(hMoreDataDlg, IDC_DATALIST), 1); } break; } @@ -139,8 +134,7 @@ INT_PTR CALLBACK DlgProcUIPage(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa static int BriefDlgResizer(HWND hwnd, LPARAM lParam, UTILRESIZECONTROL *urc) { - switch(urc->wId) - { + switch (urc->wId) { case IDC_HEADERBAR: return RD_ANCHORX_LEFT | RD_ANCHORY_TOP | RD_ANCHORX_WIDTH; @@ -156,11 +150,9 @@ static int BriefDlgResizer(HWND hwnd, LPARAM lParam, UTILRESIZECONTROL *urc) case IDCANCEL: return RD_ANCHORX_RIGHT | RD_ANCHORY_BOTTOM; } - return RD_ANCHORX_LEFT|RD_ANCHORY_TOP; + return RD_ANCHORX_LEFT | RD_ANCHORY_TOP; } - - // dialog process for more data in the user info window // lParam = contact handle INT_PTR CALLBACK DlgProcMoreData(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) @@ -168,8 +160,7 @@ INT_PTR CALLBACK DlgProcMoreData(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM l static const unsigned tabstops = 48; HANDLE hContact = (HANDLE)GetWindowLongPtr(hwndDlg, GWLP_USERDATA); - switch (msg) - { + switch (msg) { case WM_INITDIALOG: // save the contact handle for later use hContact = (HANDLE)lParam; @@ -222,7 +213,6 @@ INT_PTR CALLBACK DlgProcMoreData(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM l // set icons { WORD statusIcon = db_get_w(hContact, WEATHERPROTONAME, "StatusIcon", 0); - ReleaseIconEx((HICON)SendMessage(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)LoadSkinnedProtoIconBig(WEATHERPROTONAME, statusIcon))); ReleaseIconEx((HICON)SendMessage(hwndDlg, WM_SETICON, ICON_SMALL, (LPARAM)LoadSkinnedProtoIcon(WEATHERPROTONAME, statusIcon))); } @@ -236,12 +226,10 @@ INT_PTR CALLBACK DlgProcMoreData(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM l GetWindowRect(hList, &rc); ListView_SetColumnWidth(hList, 1, ListView_GetColumnWidth(hList, 1) + (int)LOWORD(lParam) - (rc.right - rc.left)); - } - { - UTILRESIZEDIALOG urd = {0}; - urd.cbSize = sizeof(urd); - urd.hwndDlg = hwndDlg; - urd.hInstance = hInst; + + UTILRESIZEDIALOG urd = { sizeof(urd) }; + urd.hwndDlg = hwndDlg; + urd.hInstance = hInst; urd.lpTemplate = MAKEINTRESOURCEA(IDD_BRIEF); urd.pfnResizer = BriefDlgResizer; CallService(MS_UTILS_RESIZEDIALOG, 0, (LPARAM)&urd); @@ -260,8 +248,7 @@ INT_PTR CALLBACK DlgProcMoreData(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM l break; case WM_COMMAND: - switch(LOWORD(wParam)) - { + switch(LOWORD(wParam)) { case IDCANCEL: // close the info window DestroyWindow(hwndDlg); @@ -269,13 +256,14 @@ INT_PTR CALLBACK DlgProcMoreData(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM l case IDC_MUPDATE: { - LV_ITEM lvi = {0}; HWND hList = GetDlgItem(hwndDlg, IDC_DATALIST); // update current data // set the text to "updating" SetDlgItemText(hwndDlg, IDC_MTEXT, TranslateT("Retrieving new data, please wait...")); ListView_DeleteAllItems(hList); + + LV_ITEM lvi = { 0 }; lvi.mask = LVIF_TEXT | LVIF_PARAM; lvi.lParam = 1; lvi.pszText = _T(""); @@ -305,13 +293,11 @@ INT_PTR CALLBACK DlgProcMoreData(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM l case WM_NOTIFY: { LPNMHDR pNmhdr = (LPNMHDR)lParam; - if (pNmhdr->idFrom == IDC_MTEXT && pNmhdr->code == EN_LINK) - { + if (pNmhdr->idFrom == IDC_MTEXT && pNmhdr->code == EN_LINK) { ENLINK *enlink = (ENLINK *) lParam; - TEXTRANGE tr; - switch (enlink->msg) - { + switch (enlink->msg) { case WM_LBUTTONUP: + TEXTRANGE tr; tr.chrg = enlink->chrg; tr.lpstrText = ( LPTSTR )mir_alloc( sizeof(TCHAR)*(tr.chrg.cpMax - tr.chrg.cpMin + 8)); SendMessage(pNmhdr->hwndFrom, EM_GETTEXTRANGE, 0, (LPARAM)&tr); @@ -320,8 +306,8 @@ INT_PTR CALLBACK DlgProcMoreData(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM l break; } } - break; } + break; case WM_CLOSE: DestroyWindow(hwndDlg); @@ -368,19 +354,14 @@ void LoadBriefInfoText(HWND hwndDlg, HANDLE hContact) int BriefInfo(WPARAM wParam, LPARAM lParam) { // make sure that the contact is actually a weather one - if (IsMyContact((HANDLE)wParam)) - { + if (IsMyContact((HANDLE)wParam)) { HWND hMoreDataDlg = WindowList_Find(hDataWindowList,(HANDLE)wParam); - if (hMoreDataDlg != NULL) - { + if (hMoreDataDlg != NULL) { SetForegroundWindow(hMoreDataDlg); SetFocus(hMoreDataDlg); } - else - { - hMoreDataDlg = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_BRIEF), NULL, DlgProcMoreData, - (LPARAM)wParam); - } + else hMoreDataDlg = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_BRIEF), NULL, DlgProcMoreData, (LPARAM)wParam); + ShowWindow(GetDlgItem(hMoreDataDlg, IDC_DATALIST), 0); ShowWindow(GetDlgItem(hMoreDataDlg, IDC_MTEXT), 1); SetDlgItemText(hMoreDataDlg, IDC_MTOGGLE, TranslateT("More Info")); -- cgit v1.2.3