From 2bf7e3ba50b1bf547c726523cf842e9263d5db18 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Sun, 28 Jul 2013 18:37:34 +0000 Subject: first version of WebView that compiles in Unicode (but certaily doesn't work) git-svn-id: http://svn.miranda-ng.org/main/trunk@5516 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/WebView/src/Version.h | 8 +- plugins/WebView/src/main.cpp | 73 +- plugins/WebView/src/resource.h | 3 +- plugins/WebView/src/stdafx.cpp | 35 +- plugins/WebView/src/stdafx.h | 1 + plugins/WebView/src/webview.cpp | 1356 ++++---------- plugins/WebView/src/webview.h | 540 ++---- plugins/WebView/src/webview_alerts.cpp | 1393 +++++--------- plugins/WebView/src/webview_cleanup.cpp | 1339 +++++++------ plugins/WebView/src/webview_common.h | 174 -- plugins/WebView/src/webview_datawnd.cpp | 1655 +++++++--------- plugins/WebView/src/webview_getdata.cpp | 1479 ++++++--------- plugins/WebView/src/webview_opts.cpp | 3005 +++++++++++++----------------- plugins/WebView/src/webview_private.h | 23 - plugins/WebView/src/webview_services.cpp | 1089 ++++------- 15 files changed, 4779 insertions(+), 7394 deletions(-) delete mode 100644 plugins/WebView/src/webview_common.h delete mode 100644 plugins/WebView/src/webview_private.h (limited to 'plugins/WebView/src') diff --git a/plugins/WebView/src/Version.h b/plugins/WebView/src/Version.h index 65c0ab9893..45f77112a3 100644 --- a/plugins/WebView/src/Version.h +++ b/plugins/WebView/src/Version.h @@ -6,9 +6,9 @@ #define __FILEVERSION_STRING __MAJOR_VERSION,__MINOR_VERSION,__RELEASE_NUM,__BUILD_NUM #define __PLUGIN_NAME "Webview Protocol" -#define __FILENAME "Webview.dll" +#define __FILENAME "Webview.dll" #define __DESCRIPTION "Adds web pages as contacts to your contact list and can display text and/or issue change alerts from those pages in a window." -#define __AUTHOR "Vincent Joyce" +#define __AUTHOR "Vincent Joyce" #define __AUTHOREMAIL "ungoliante666@hotmail.com" -#define __AUTHORWEB "http://miranda-ng.org/p/WebView/" -#define __COPYRIGHT "© 2011 Vincent Joyce" +#define __AUTHORWEB "http://miranda-ng.org/p/WebView/" +#define __COPYRIGHT "© 2011 Vincent Joyce" diff --git a/plugins/WebView/src/main.cpp b/plugins/WebView/src/main.cpp index 4fd58a9e79..5048e2bf2d 100644 --- a/plugins/WebView/src/main.cpp +++ b/plugins/WebView/src/main.cpp @@ -21,14 +21,14 @@ */ #include "stdafx.h" -#include "webview_common.h" +#include "webview.h" -static HANDLE hAddSite = NULL; -static HANDLE hAutoUpdate = NULL; -static HANDLE hNetlibUser = NULL; -static HANDLE hWindowList = NULL; -HMODULE hRichEd = NULL; -int hLangpack = 0; +HANDLE hNetlibUser; +HANDLE hWindowList; +HANDLE hHookDisplayDataAlert, hHookAlertPopup, hHookAlertWPopup, hHookErrorPopup, hHookAlertOSD; +int hLangpack = 0; + +static HMODULE hRichEd = NULL; PLUGININFOEX pluginInfoEx = { sizeof(PLUGININFOEX), @@ -44,18 +44,7 @@ PLUGININFOEX pluginInfoEx = { {0xcd5427fb, 0x5320, 0x4f65, { 0xb4, 0xbf, 0x86, 0xb7, 0xcf, 0x7b, 0x50, 0x87}} }; -/********************************/ - -int WebsiteContactCommand(WPARAM wParam, LPARAM lParam) -{ - WebsiteMenuCommand((WPARAM) wParam, (LPARAM) lParam); - return 0; -} - -/*******************************/ - -/*******************************/ - +/*****************************************************************************/ void InitServices() { char SvcFunc[100]; @@ -93,7 +82,7 @@ void InitServices() CreateServiceFunction(SvcFunc, GetInfo); } -/*******************************/ +/*****************************************************************************/ void ChangeContactStatus(int con_stat) { WORD status_code = 0; @@ -110,23 +99,22 @@ void ChangeContactStatus(int con_stat) db_set_w(hContact, MODULENAME, "Status", status_code); } -/***********************/ +/*****************************************************************************/ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { hInst = hinstDLL; return TRUE; } -/*******************/ +/*****************************************************************************/ +extern "C" __declspec(dllexport) const MUUID MirandaInterfaces[] = { MIID_PROTOCOL, MIID_LAST }; + extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion) { return &pluginInfoEx; } -/******************/ -extern "C" __declspec(dllexport) const MUUID MirandaInterfaces[] = { MIID_PROTOCOL, MIID_LAST }; - -/************************/ +/*****************************************************************************/ extern "C" int __declspec(dllexport) Unload(void) { ChangeContactStatus(0); @@ -139,39 +127,30 @@ extern "C" int __declspec(dllexport) Unload(void) if (hRichEd) FreeLibrary(hRichEd); - if (hNetlibUser) + if (hNetlibUser) { Netlib_CloseHandle(hNetlibUser); + hNetlibUser = NULL; + } + if (hHookDisplayDataAlert) - UnhookEvent(hHookDisplayDataAlert); + DestroyHookableEvent(hHookDisplayDataAlert); if (hHookAlertPopup) - UnhookEvent(hHookAlertPopup); + DestroyHookableEvent(hHookAlertPopup); if (hHookAlertWPopup) - UnhookEvent(hHookAlertWPopup); + DestroyHookableEvent(hHookAlertWPopup); - hNetlibUser = NULL; if (h_font != NULL) DeleteObject(h_font); if (hMenu) DestroyMenu(hMenu); - if (hAddSite) - UnhookEvent(hAddSite); - if (hWindowList ) - UnhookEvent(hWindowList); - - DestroyServiceFunction(0); - return 0; } -/***************************************/ +/*****************************************************************************/ extern "C" int __declspec(dllexport) Load() { mir_getLP(&pluginInfoEx); - char countername[100]; - DBVARIANT dbv; - HGENMENU hRoot; - strncpy_s(optionsname, MODULENAME, sizeof(optionsname)); optionsname[0] = toupper(optionsname[0]); @@ -181,13 +160,12 @@ extern "C" int __declspec(dllexport) Load() hRichEd = LoadLibraryA("Riched20.dll"); /*TIMERS*/ - if ((db_get_dw(NULL, MODULENAME, REFRESH_KEY, 0) != 0)) { - timerId = SetTimer(NULL, 0, ((db_get_dw(NULL, MODULENAME, REFRESH_KEY, 0)) * MINUTE), (TIMERPROC) timerfunc); + if ((db_get_dw(NULL, MODULENAME, REFRESH_KEY, TIME) != 0)) { + timerId = SetTimer(NULL, 0, ((db_get_dw(NULL, MODULENAME, REFRESH_KEY, TIME)) * MINUTE), (TIMERPROC) timerfunc); db_set_dw(NULL, MODULENAME, COUNTDOWN_KEY, 0); Countdown = SetTimer(NULL, 0, MINUTE, (TIMERPROC) Countdownfunc); } - CheckDbKeys(); InitialiseGlobals(); // register netlib handle @@ -278,10 +256,11 @@ extern "C" int __declspec(dllexport) Load() CreateServiceFunction("Countdown", CountdownMenuCommand); + char countername[100]; + mir_snprintf(countername, SIZEOF(countername), "%d Minutes to Update", db_get_dw(NULL, MODULENAME, COUNTDOWN_KEY, 0)); mi.position = 600090099;; mi.hIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_UPDATEALL)); mi.pszContactOwner = NULL; - sprintf(countername, "%d Minutes to Update", db_get_dw(NULL, MODULENAME, COUNTDOWN_KEY, 0)); mi.pszName = countername; mi.pszService = "Countdown"; diff --git a/plugins/WebView/src/resource.h b/plugins/WebView/src/resource.h index 108b7303b8..75379a22e5 100644 --- a/plugins/WebView/src/resource.h +++ b/plugins/WebView/src/resource.h @@ -1,5 +1,7 @@ #define UNI 1 +#define IDC_STATIC -1 + #define IDI_SITE 101 #define IDI_STICK 102 #define IDI_UNSTICK 103 @@ -23,7 +25,6 @@ #define IDC_UPDATE_ONALERT 304 #define IDD_OPT 443 -#define IDC_STATIC 444 #define IDC_DISABLEMENU 446 #define IDC_OPEN_WEBPAGE 447 #define IDC_TIME 450 diff --git a/plugins/WebView/src/stdafx.cpp b/plugins/WebView/src/stdafx.cpp index 1ddfafbbbd..a04913aacd 100644 --- a/plugins/WebView/src/stdafx.cpp +++ b/plugins/WebView/src/stdafx.cpp @@ -1,18 +1,23 @@ /* -Copyright (C) 2012-13 Miranda NG Project (http://miranda-ng.org) - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation version 2 -of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ + * A plugin for Miranda IM which displays web page text in a window Copyright + * (C) 2005 Vincent Joyce. + * + * Miranda IM: the free icq client for MS Windows Copyright (C) 2000-2 + * Richard Hughes, Roland Rabien & Tristan Van de Vreede + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., 59 + * Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ #include "stdafx.h" \ No newline at end of file diff --git a/plugins/WebView/src/stdafx.h b/plugins/WebView/src/stdafx.h index 3a9966067a..fc6c4130e4 100644 --- a/plugins/WebView/src/stdafx.h +++ b/plugins/WebView/src/stdafx.h @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include diff --git a/plugins/WebView/src/webview.cpp b/plugins/WebView/src/webview.cpp index 6e693b5726..54107f0600 100644 --- a/plugins/WebView/src/webview.cpp +++ b/plugins/WebView/src/webview.cpp @@ -1,1083 +1,527 @@ /* - * A plugin for Miranda IM which displays web page text in a window Copyright - * (C) 2005 Vincent Joyce. - * - * Miranda IM: the free icq client for MS Windows Copyright (C) 2000-2 - * Richard Hughes, Roland Rabien & Tristan Van de Vreede - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ +* A plugin for Miranda IM which displays web page text in a window Copyright +* (C) 2005 Vincent Joyce. +* +* Miranda IM: the free icq client for MS Windows Copyright (C) 2000-2 +* Richard Hughes, Roland Rabien & Tristan Van de Vreede +* +* This program is free software; you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by the Free +* Software Foundation; either version 2 of the License, or (at your option) +* any later version. +* +* This program is distributed in the hope that it will be useful, but +* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +* for more details. +* +* You should have received a copy of the GNU General Public License along +* with this program; if not, write to the Free Software Foundation, Inc., 59 +* Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ #include "stdafx.h" #include "webview.h" -static HANDLE hAddSite = NULL; -static HANDLE hAutoUpdate = NULL; -char*WndClass = "WEBWnd"; +char* WndClass = "WEBWnd"; WNDCLASSEX wincl; MSG messages; DWORD winheight; int StartUpDelay = 0; -/*************************/ +DWORD Xposition, Yposition; +DWORD BackgoundClr, TextClr; +DWORD WindowHeight, WindowWidth; + +UINT_PTR timerId; +UINT_PTR Countdown; +LOGFONT lf; +HFONT h_font; +HWND ContactHwnd; +HINSTANCE hInst; +HMENU hMenu; +int bpStatus; +HANDLE hMenuItem1; +HANDLE hMenuItemCountdown; +char optionsname[80]; + +/*****************************************************************************/ void ChangeMenuItem1() { - /* - * Enable or Disable auto updates - */ - ZeroMemory(&mi, sizeof(mi)); - mi.cbSize = sizeof(mi); - mi.flags = CMIM_NAME | CMIM_ICON; - mi.hIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_SITE)); - - if (!(db_get_b(NULL, MODULENAME, DISABLE_AUTOUPDATE_KEY, 0))) - mi.pszName = Translate("Auto Update Enabled"); - - if ((db_get_b(NULL, MODULENAME, DISABLE_AUTOUPDATE_KEY, 0))) - mi.pszName = Translate("Auto Update Disabled"); - - CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM) hMenuItem1, (LPARAM) & mi); -} + /* + * Enable or Disable auto updates + */ + + CLISTMENUITEM mi = { sizeof(mi) }; + mi.flags = CMIM_NAME | CMIM_ICON; + mi.hIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_SITE)); -/**********************/ + if ( !db_get_b(NULL, MODULENAME, DISABLE_AUTOUPDATE_KEY, 0)) + mi.pszName = Translate("Auto Update Enabled"); + else + mi.pszName = Translate("Auto Update Disabled"); + CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)hMenuItem1, (LPARAM)&mi); +} -/*************************/ +/*****************************************************************************/ void ChangeMenuItemCountdown() { - /* - * countdown - */ - - ZeroMemory(&mi, sizeof(mi)); - mi.cbSize = sizeof(mi); - mi.flags = CMIM_NAME | CMIM_ICON; - mi.hIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_UPDATEALL)); - - char countername[100]; - sprintf(countername, "%d Minutes to Update", db_get_dw(NULL, MODULENAME, COUNTDOWN_KEY, 0)); - mi.pszName = countername; - - CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM) hMenuItemCountdown, (LPARAM) & mi); -} + /* + * countdown + */ -/**********************/ + CLISTMENUITEM mi = { sizeof(mi) }; + mi.flags = CMIM_NAME | CMIM_ICON; + mi.hIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_UPDATEALL)); + char countername[100]; + sprintf(countername, "%d Minutes to Update", db_get_dw(NULL, MODULENAME, COUNTDOWN_KEY, 0)); + mi.pszName = countername; + CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)hMenuItemCountdown, (LPARAM)&mi); +} -/*********************/ +/*****************************************************************************/ static int CALLBACK EnumFontsProc(ENUMLOGFONTEX * lpelfe, NEWTEXTMETRICEX * lpntme, int FontType, LPARAM lParam) { - if (!IsWindow((HWND) lParam)) - return FALSE; - if (SendMessage((HWND) lParam, CB_FINDSTRINGEXACT, -1, (LPARAM) lpelfe->elfLogFont.lfFaceName) == CB_ERR) - SendMessage((HWND) lParam, CB_ADDSTRING, 0, (LPARAM) lpelfe->elfLogFont.lfFaceName); - return TRUE; + if (!IsWindow((HWND) lParam)) + return FALSE; + if (SendMessage((HWND) lParam, CB_FINDSTRINGEXACT, -1, (LPARAM) lpelfe->elfLogFont.lfFaceName) == CB_ERR) + SendMessage((HWND) lParam, CB_ADDSTRING, 0, (LPARAM) lpelfe->elfLogFont.lfFaceName); + return TRUE; } -/*******************/ -/**********************/ -void FillFontListThread(HWND hwndDlg) +void FillFontListThread(void *param) { - LOGFONT lf = {0}; - HDC hdc = GetDC(hwndDlg); - - lf.lfCharSet = DEFAULT_CHARSET; - lf.lfFaceName[0] = 0; - lf.lfPitchAndFamily = 0; - EnumFontFamiliesEx(hdc, &lf, (FONTENUMPROC) EnumFontsProc, (LPARAM) GetDlgItem(hwndDlg, IDC_TYPEFACE), 0); - ReleaseDC(hwndDlg, hdc); - return; + HDC hdc = GetDC((HWND)param); + + LOGFONT lf = {0}; + lf.lfCharSet = DEFAULT_CHARSET; + lf.lfFaceName[0] = 0; + lf.lfPitchAndFamily = 0; + EnumFontFamiliesEx(hdc, &lf, (FONTENUMPROC) EnumFontsProc, (LPARAM) GetDlgItem((HWND)param, IDC_TYPEFACE), 0); + ReleaseDC((HWND)param, hdc); } -/*********************/ - -/*******************************/ +/*****************************************************************************/ void TxtclrLoop() { - HANDLE hContact = (HANDLE) CallService(MS_DB_CONTACT_FINDFIRST, 0, 0); - char*szProto; - - while (hContact != NULL) - { - szProto = (char *) CallService(MS_PROTO_GETCONTACTBASEPROTO, (WPARAM) hContact, 0); - // - if (szProto != NULL && !lstrcmp(MODULENAME, szProto)) - { - - HWND hwndDlg = (WindowList_Find(hWindowList, hContact)); - - SetDlgItemText(hwndDlg, IDC_DATA, ""); - InvalidateRect(hwndDlg, NULL, 1); - } - // - hContact = (HANDLE) CallService(MS_DB_CONTACT_FINDNEXT, (WPARAM) hContact, 0); - } - + for (HANDLE hContact = db_find_first(MODULENAME); hContact != NULL; hContact = db_find_next(hContact, MODULENAME)) { + HWND hwndDlg = WindowList_Find(hWindowList, hContact); + SetDlgItemTextA(hwndDlg, IDC_DATA, ""); + InvalidateRect(hwndDlg, NULL, 1); + } } -/***************************/ -/*******************************/ +/*****************************************************************************/ void BGclrLoop() { - HANDLE hContact = (HANDLE) CallService(MS_DB_CONTACT_FINDFIRST, 0, 0); - char*szProto; - - while (hContact != NULL) - { - szProto = (char *) CallService(MS_PROTO_GETCONTACTBASEPROTO, (WPARAM) hContact, 0); - // - if (szProto != NULL && !lstrcmp(MODULENAME, szProto)) - { - - HWND hwndDlg = (WindowList_Find(hWindowList, hContact)); - - SetDlgItemText(hwndDlg, IDC_DATA, ""); - SendMessage(GetDlgItem(hwndDlg, IDC_DATA), EM_SETBKGNDCOLOR, 0, BackgoundClr); - InvalidateRect(hwndDlg, NULL, 1); - } - // - hContact = (HANDLE) CallService(MS_DB_CONTACT_FINDNEXT, (WPARAM) hContact, 0); - } - + for (HANDLE hContact = db_find_first(MODULENAME); hContact != NULL; hContact = db_find_next(hContact, MODULENAME)) { + HWND hwndDlg = (WindowList_Find(hWindowList, hContact)); + SetDlgItemTextA(hwndDlg, IDC_DATA, ""); + SendMessage(GetDlgItem(hwndDlg, IDC_DATA), EM_SETBKGNDCOLOR, 0, BackgoundClr); + InvalidateRect(hwndDlg, NULL, 1); + } } -/***************************/ +/*****************************************************************************/ void StartUpdate(void *dummy) { - HANDLE hContact = (HANDLE) CallService(MS_DB_CONTACT_FINDFIRST, 0, 0); - char*szProto; - - StartUpDelay = 1; - - Sleep(((db_get_dw(NULL, MODULENAME, START_DELAY_KEY, 0)) * SECOND)); - - while (hContact != NULL) - { - szProto = (char *) CallService(MS_PROTO_GETCONTACTBASEPROTO, (WPARAM) hContact, 0); - // - if (szProto != NULL && !lstrcmp(MODULENAME, szProto)) - GetData(hContact); - // - hContact = (HANDLE) CallService(MS_DB_CONTACT_FINDNEXT, (WPARAM) hContact, 0); - } - StartUpDelay = 0; + StartUpDelay = 1; + Sleep(((db_get_dw(NULL, MODULENAME, START_DELAY_KEY, 0)) * SECOND)); + + for (HANDLE hContact = db_find_first(MODULENAME); hContact != NULL; hContact = db_find_next(hContact, MODULENAME)) + GetData(hContact); + + StartUpDelay = 0; } -/*******************************/ +/*****************************************************************************/ void ContactLoop(void *dummy) { - HANDLE hContact = (HANDLE) CallService(MS_DB_CONTACT_FINDFIRST, 0, 0); - char*szProto; - char galert[300]; - - if (StartUpDelay == 0) - { - - while (hContact != NULL) - { - szProto = (char *) CallService(MS_PROTO_GETCONTACTBASEPROTO, (WPARAM) hContact, 0); - // - if (szProto != NULL && !lstrcmp(MODULENAME, szProto)) - - GetData(hContact); - //forkthread(GetData, 0, hContact); - Sleep(10); // avoid 100% CPU - // - - hContact = (HANDLE) CallService(MS_DB_CONTACT_FINDNEXT, (WPARAM) hContact, 0); - } - } - sprintf(galert, "%s", (Translate("All Webview sites have been updated."))); - WAlertPopup((WPARAM) NULL, galert); + if (StartUpDelay == 0) { + for (HANDLE hContact = db_find_first(MODULENAME); hContact != NULL; hContact = db_find_next(hContact, MODULENAME)) { + GetData(hContact); + Sleep(10); // avoid 100% CPU + } + } + + WAlertPopup(NULL, TranslateT("All Webview sites have been updated.")); } -/***************************/ - - -/****************************/ - /**********************/ -int MarkAllReadMenuCommand(WPARAM wParam, LPARAM lParam) +/*****************************************************************************/ +INT_PTR MarkAllReadMenuCommand(WPARAM wParam, LPARAM lParam) { - ChangeContactStatus(1); - return 0; + ChangeContactStatus(1); + return 0; } -/*************************/ - -/****************************/ - - - -/**********************/ +/*****************************************************************************/ void InitialiseGlobals(void) { + Xposition = db_get_dw(NULL, MODULENAME, Xpos_WIN_KEY, 0); + Yposition = db_get_dw(NULL, MODULENAME, Ypos_WIN_KEY, 0); - Xposition = db_get_dw(NULL, MODULENAME, Xpos_WIN_KEY, 0); + if (Yposition == -32000) + Yposition = 100; - Yposition = db_get_dw(NULL, MODULENAME, Ypos_WIN_KEY, 0); + if (Xposition == -32000) + Xposition = 100; - if (Yposition == -32000) - Yposition = 100; - - if (Xposition == -32000) - Xposition = 100; - - BackgoundClr = db_get_dw(NULL, MODULENAME, BG_COLOR_KEY, 0); - - TextClr = db_get_dw(NULL, MODULENAME, TXT_COLOR_KEY, 0); - - WindowHeight = db_get_dw(NULL, MODULENAME, WIN_HEIGHT_KEY, 0); - - WindowWidth = db_get_dw(NULL, MODULENAME, WIN_WIDTH_KEY, 0); + BackgoundClr = db_get_dw(NULL, MODULENAME, BG_COLOR_KEY, Def_color_bg); + TextClr = db_get_dw(NULL, MODULENAME, TXT_COLOR_KEY, Def_color_txt); + WindowHeight = db_get_dw(NULL, MODULENAME, WIN_HEIGHT_KEY, Def_win_height); + WindowWidth = db_get_dw(NULL, MODULENAME, WIN_WIDTH_KEY, Def_win_width); } -/********************************/ -/***************************/ +/*****************************************************************************/ int Doubleclick(WPARAM wParam, LPARAM lParam) { - DBVARIANT dbv; - char*szProto = NULL; - char url[300]; - - url[0] = '\0'; - - szProto = (char *) CallService(MS_PROTO_GETCONTACTBASEPROTO, wParam, 0); - -// write default values first time contact is double clicked - if (DBGetContactSetting((HANDLE) wParam, MODULENAME, DBLE_WIN_KEY, &dbv)) - { - if (!(lstrcmp(MODULENAME, szProto))) - db_set_b((HANDLE) wParam, MODULENAME, DBLE_WIN_KEY, 1); - } - - //szProto = (char *) CallService(MS_PROTO_GETCONTACTBASEPROTO, wParam, 0); - - if (szProto != NULL) - { - if (!(lstrcmp(MODULENAME, szProto))) - { - // - if (!(db_get_b((HANDLE) wParam, MODULENAME, DBLE_WIN_KEY, 0))) - { - DBGetContactSetting((HANDLE) wParam, MODULENAME, "URL", &dbv); - wsprintf(url, "%s", dbv.pszVal); - CallService(MS_UTILS_OPENURL, 1, (WPARAM) url); - DBFreeVariant(&dbv); - db_set_w((HANDLE) wParam, MODULENAME, "Status", ID_STATUS_ONLINE); - } - // - - if ((db_get_b((HANDLE) wParam, MODULENAME, DBLE_WIN_KEY, 0))) - { - HWND hwndDlg; - - if ((hwndDlg = (WindowList_Find(hWindowList, (HANDLE) wParam)))) - { - SetForegroundWindow(hwndDlg); - SetFocus(hwndDlg); - } else - { - hwndDlg = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_DISPLAY_DATA), NULL, DlgProcDisplayData, (LPARAM) (HANDLE) wParam); - - if (db_get_b((HANDLE) wParam, MODULENAME, ON_TOP_KEY, 0)) - { - SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BM_SETIMAGE, IMAGE_ICON, (LPARAM) ((HICON) LoadImage(hInst, MAKEINTRESOURCE(IDI_STICK), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0))); - - if ((db_get_b(NULL, MODULENAME, SAVE_INDIVID_POS_KEY, 0))) - { - SetWindowPos( - hwndDlg, - HWND_TOPMOST, - db_get_dw((HANDLE) wParam, MODULENAME, "WVx", 100), // Xposition, - db_get_dw((HANDLE) wParam, MODULENAME, "WVy", 100), // Yposition, - db_get_dw((HANDLE) wParam, MODULENAME, "WVwidth", 412), // WindowWidth, - db_get_dw((HANDLE) wParam, MODULENAME, "WVheight", 350), // WindowHeight, - 0); - } else - { - SetWindowPos( - hwndDlg, - HWND_TOPMOST, - Xposition, - Yposition, - WindowWidth, - WindowHeight, - 0); - } - - } - if (!(db_get_b((HANDLE) wParam, MODULENAME, ON_TOP_KEY, 0))) - {// - SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BM_SETIMAGE, IMAGE_ICON, (LPARAM) ((HICON) LoadImage(hInst, MAKEINTRESOURCE(IDI_UNSTICK), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0))); - - if ((db_get_b(NULL, MODULENAME, SAVE_INDIVID_POS_KEY, 0))) - { - SetWindowPos( - hwndDlg, - HWND_NOTOPMOST, - db_get_dw((HANDLE) wParam, MODULENAME, "WVx", 100), // Xposition, - db_get_dw((HANDLE) wParam, MODULENAME, "WVy", 100), // Yposition, - db_get_dw((HANDLE) wParam, MODULENAME, "WVwidth", 412), // WindowWidth, - db_get_dw((HANDLE) wParam, MODULENAME, "WVheight", 350), // WindowHeight, - 0); - } else - { - SetWindowPos( - hwndDlg, - HWND_NOTOPMOST, - Xposition, - Yposition, - WindowWidth, - WindowHeight, - 0); - } - - } - } - // - ShowWindow(hwndDlg, SW_SHOW); - SetActiveWindow(hwndDlg); - // - - if ((db_get_b(NULL, MODULENAME, UPDATE_ON_OPEN_KEY, 0))) - { - if ((db_get_b((HANDLE) wParam, MODULENAME, ENABLE_ALERTS_KEY, 0))) - forkthread(ReadFromFile, 0, (HANDLE) wParam); - else - forkthread(GetData, 0, (HANDLE) wParam); - db_set_w((HANDLE) wParam, MODULENAME, "Status", ID_STATUS_ONLINE); - } - } - // - return 1; - } - } - return 0; + HANDLE hContact = (HANDLE)wParam; + char *szProto = GetContactProto(hContact); + if ( lstrcmpA(MODULENAME, szProto)) + return 0; + + if ( db_get_b(hContact, MODULENAME, DBLE_WIN_KEY, 1)) { + ptrT url( db_get_tsa(hContact, MODULENAME, "URL")); + CallService(MS_UTILS_OPENURL, OUF_TCHAR, (WPARAM)url); + + db_set_w(hContact, MODULENAME, "Status", ID_STATUS_ONLINE); + } + + if ( db_get_b(hContact, MODULENAME, DBLE_WIN_KEY, 1)) { + HWND hwndDlg; + if (hwndDlg = WindowList_Find(hWindowList, hContact)) { + SetForegroundWindow(hwndDlg); + SetFocus(hwndDlg); + } + else { + hwndDlg = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_DISPLAY_DATA), NULL, DlgProcDisplayData, (LPARAM) hContact); + HWND hTopmost = db_get_b(hContact, MODULENAME, ON_TOP_KEY, 0) ? HWND_TOPMOST : HWND_NOTOPMOST; + SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BM_SETIMAGE, IMAGE_ICON, (LPARAM) ((HICON) LoadImage(hInst, MAKEINTRESOURCE(IDI_STICK), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0))); + + if ( db_get_b(NULL, MODULENAME, SAVE_INDIVID_POS_KEY, 0)) + SetWindowPos(hwndDlg, hTopmost, + db_get_dw(hContact, MODULENAME, "WVx", 100), // Xposition, + db_get_dw(hContact, MODULENAME, "WVy", 100), // Yposition, + db_get_dw(hContact, MODULENAME, "WVwidth", 412), // WindowWidth, + db_get_dw(hContact, MODULENAME, "WVheight", 350), 0); // WindowHeight, + else + SetWindowPos(hwndDlg, HWND_TOPMOST, Xposition, Yposition, WindowWidth, WindowHeight, 0); + } + + ShowWindow(hwndDlg, SW_SHOW); + SetActiveWindow(hwndDlg); + + if ( db_get_b(NULL, MODULENAME, UPDATE_ON_OPEN_KEY, 0)) { + if ( db_get_b(hContact, MODULENAME, ENABLE_ALERTS_KEY, 0)) + mir_forkthread(ReadFromFile, hContact); + else + mir_forkthread(GetData, hContact); + db_set_w(hContact, MODULENAME, "Status", ID_STATUS_ONLINE); + } + } + + return 1; } -/**************************/ -/***************************/ -//int SendToRichEdit(HWND hWindow, char *truncated, COLORREF rgbText, COLORREF rgbBack) -int SendToRichEdit(HWND hWindow, TCHAR *truncated, COLORREF rgbText, COLORREF rgbBack) +/*****************************************************************************/ +int SendToRichEdit(HWND hWindow, char *truncated, COLORREF rgbText, COLORREF rgbBack) { - - CHARFORMAT2 cfFM; - DBVARIANT dbv; - DWORD bold = 0; - DWORD italic = 0; - DWORD underline = 0; - - // - - // ////// - int len; - - //MessageBox(NULL, "Test", "0", MB_OK); - - - len = GetWindowTextLength(GetDlgItem(hWindow, IDC_DATA)); - - // - SetDlgItemText(hWindow, IDC_DATA, ""); - - //MessageBox(NULL, "Test", "1", MB_OK); - - // - ZeroMemory(&cfFM, sizeof(cfFM)); - // - - cfFM.cbSize = sizeof(CHARFORMAT2); - cfFM.dwMask = CFM_COLOR | CFM_CHARSET | CFM_FACE | ENM_LINK | ENM_MOUSEEVENTS | CFM_BOLD | CFM_ITALIC | CFM_UNDERLINE | CFM_SIZE; - - if ((db_get_b(NULL, MODULENAME, FONT_BOLD_KEY, 0))) - bold = CFE_BOLD; - - if ((db_get_b(NULL, MODULENAME, FONT_ITALIC_KEY, 0))) - italic = CFE_ITALIC; - - if ((db_get_b(NULL, MODULENAME, FONT_UNDERLINE_KEY, 0))) - underline = CFE_UNDERLINE; - - cfFM.dwEffects = bold | italic | underline; - - // ///////// - - //MessageBox(NULL, "Test", "2", MB_OK); - - /**/ - if (!DBGetContactSetting(NULL, MODULENAME, FONT_FACE_KEY, &dbv)) - { -/* -#ifdef UNICODE_VERISON - MultiByteToWideChar(CP_ACP, 0, (TCHAR *) cfFM.szFaceName, -1, (wchar_t *) dbv.pszVal, 200); -#endif -*/ -//#ifndef UNICODE_VERISON - lstrcpy(cfFM.szFaceName, dbv.pszVal); -//#endif - DBFreeVariant(&dbv); - } - /**/ - - //MessageBox(NULL, "Test", "3", MB_OK); -// - - HDC hDC; - hDC = GetDC(hWindow); - cfFM.yHeight = (BYTE) MulDiv(abs(lf.lfHeight), 120, GetDeviceCaps(GetDC(hWindow), LOGPIXELSY)) * (db_get_b(NULL, MODULENAME, FONT_SIZE_KEY, 0)); - ReleaseDC(hWindow, hDC); -// - cfFM.bCharSet = db_get_b(NULL, MODULENAME, FONT_SCRIPT_KEY, 1); - - cfFM.bPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE; - - cfFM.crTextColor = rgbText; - - cfFM.crBackColor = rgbBack; - - SendMessage(GetDlgItem(hWindow, IDC_DATA), EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) & cfFM); - - //MessageBox(NULL, "Test", "4", MB_OK); - -// ////////////////////////// - - SendDlgItemMessage(hWindow, IDC_DATA, EM_SETSEL, 0, -1); - - // MessageBox(NULL, "Test", "5", MB_OK); -//// -#ifdef UNICODE_VERISON - - wchar_t tmp4[strlen(truncated)]; - - - int c = lstrlenA(truncated); - -MultiByteToWideChar(CP_UTF8, 0, (CHAR *)truncated, -1, tmp4, strlen(truncated)); - - - -//SetDlgItemTextW(hwndDlg, IDC_DATA, (wchar_t *)&tmp2); -//MessageBoxW(NULL, tmp2, L"OOOO", MB_OK); -SendDlgItemMessageW(hWindow, IDC_DATA, EM_REPLACESEL, FALSE, (LPARAM) tmp4); - #endif - -#ifndef UNICODE_VERISON - SendDlgItemMessage(hWindow, IDC_DATA, EM_REPLACESEL, FALSE, (LPARAM) truncated); - #endif -//// - // MessageBox(NULL, "Test", "6", MB_OK); - - SendMessage(GetDlgItem(hWindow, IDC_DATA), EM_SETCHARFORMAT, SCF_ALL, (LPARAM) & cfFM); - // MessageBox(NULL, "Test", "7", MB_OK); - - return 1; + DBVARIANT dbv; + DWORD bold = 0; + DWORD italic = 0; + DWORD underline = 0; + + int len = GetWindowTextLength(GetDlgItem(hWindow, IDC_DATA)); + SetDlgItemTextA(hWindow, IDC_DATA, ""); + + CHARFORMAT2 cfFM; + ZeroMemory(&cfFM, sizeof(cfFM)); + cfFM.cbSize = sizeof(CHARFORMAT2); + cfFM.dwMask = CFM_COLOR | CFM_CHARSET | CFM_FACE | ENM_LINK | ENM_MOUSEEVENTS | CFM_BOLD | CFM_ITALIC | CFM_UNDERLINE | CFM_SIZE; + + if ( db_get_b(NULL, MODULENAME, FONT_BOLD_KEY, 0)) + bold = CFE_BOLD; + + if ( db_get_b(NULL, MODULENAME, FONT_ITALIC_KEY, 0)) + italic = CFE_ITALIC; + + if ( db_get_b(NULL, MODULENAME, FONT_UNDERLINE_KEY, 0)) + underline = CFE_UNDERLINE; + + cfFM.dwEffects = bold | italic | underline; + + if (!db_get_ts(NULL, MODULENAME, FONT_FACE_KEY, &dbv)) { + lstrcpy(cfFM.szFaceName, dbv.ptszVal); + db_free(&dbv); + } + else lstrcpy(cfFM.szFaceName, Def_font_face); + + HDC hDC; + hDC = GetDC(hWindow); + cfFM.yHeight = (BYTE)MulDiv(abs(lf.lfHeight), 120, GetDeviceCaps(GetDC(hWindow), LOGPIXELSY)) * (db_get_b(NULL, MODULENAME, FONT_SIZE_KEY, 14)); + ReleaseDC(hWindow, hDC); + + cfFM.bCharSet = db_get_b(NULL, MODULENAME, FONT_SCRIPT_KEY, 0); + cfFM.bPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE; + cfFM.crTextColor = rgbText; + cfFM.crBackColor = rgbBack; + SendMessage(GetDlgItem(hWindow, IDC_DATA), EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) & cfFM); + + SendDlgItemMessage(hWindow, IDC_DATA, EM_SETSEL, 0, -1); + SendDlgItemMessageA(hWindow, IDC_DATA, EM_REPLACESEL, FALSE, (LPARAM)truncated); + SendDlgItemMessage(hWindow, IDC_DATA, EM_SETCHARFORMAT, SCF_ALL, (LPARAM)&cfFM); + return 1; } -/*************************/ - -/*******************************/ +/*****************************************************************************/ void timerfunc(void) { - db_set_b(NULL, MODULENAME, HAS_CRASHED_KEY, 0); - - if (!(db_get_b(NULL, MODULENAME, OFFLINE_STATUS, 0))) - { - if (!(db_get_b(NULL, MODULENAME, DISABLE_AUTOUPDATE_KEY, 0))) - forkthread(ContactLoop, 0, NULL); - } - - db_set_dw(NULL, MODULENAME, COUNTDOWN_KEY, 0); -} -/*******************************/ + db_set_b(NULL, MODULENAME, HAS_CRASHED_KEY, 0); + if (!(db_get_b(NULL, MODULENAME, OFFLINE_STATUS, 1))) + if (!(db_get_b(NULL, MODULENAME, DISABLE_AUTOUPDATE_KEY, 0))) + mir_forkthread(ContactLoop, NULL); -/*******************************/ + db_set_dw(NULL, MODULENAME, COUNTDOWN_KEY, 0); +} + +/*****************************************************************************/ void Countdownfunc(void) { -DWORD timetemp=100; -//char tempcnterchar[100]; -DBVARIANT dbv; - -timetemp=(db_get_dw(NULL, MODULENAME, COUNTDOWN_KEY, (DWORD)&dbv)); - DBFreeVariant(&dbv); - -// sprintf(tempcnterchar, "%d", timetemp); -//MessageBox(NULL, tempcnterchar, "1", MB_OK); - - if((timetemp < 0) || (timetemp ==0)) - { - timetemp=(db_get_dw(NULL, MODULENAME, REFRESH_KEY, (DWORD)&dbv)); - db_set_dw(NULL, MODULENAME, COUNTDOWN_KEY, timetemp); - DBFreeVariant(&dbv); - } - -//sprintf(tempcnterchar, "%d", timetemp); -//MessageBox(NULL, tempcnterchar, "2", MB_OK); - -timetemp = timetemp - 1; - - - -db_set_dw(NULL, MODULENAME, COUNTDOWN_KEY, timetemp); - -//sprintf(tempcnterchar, "%d", timetemp); -//MessageBox(NULL, tempcnterchar, "3", MB_OK); + DWORD timetemp = db_get_dw(NULL, MODULENAME, COUNTDOWN_KEY, 100); + if(timetemp < 0 || timetemp == 0) { + timetemp = db_get_dw(NULL, MODULENAME, REFRESH_KEY, TIME); + db_set_dw(NULL, MODULENAME, COUNTDOWN_KEY, timetemp); + } - ChangeMenuItemCountdown(); + timetemp = timetemp - 1; + db_set_dw(NULL, MODULENAME, COUNTDOWN_KEY, timetemp); + ChangeMenuItemCountdown(); } -/*******************************/ -/****************/ -static int OptInitialise(WPARAM wParam, LPARAM lParam) +/*****************************************************************************/ + +static int OptInitialise(WPARAM wParam, LPARAM lParam) { - OPTIONSDIALOGPAGE odp = {0}; - - ZeroMemory(&odp, sizeof(odp)); - odp.cbSize = sizeof(odp); - odp.position = 0; - odp.hInstance = hInst; - odp.pszTemplate = MAKEINTRESOURCE(IDD_OPT); - odp.pszGroup = Translate("Network"); - odp.pszTitle = optionsname; - odp.pfnDlgProc = DlgProcOpt; - odp.flags = ODPF_BOLDGROUPS; - odp.expertOnlyControls = expertOnlyControls; - odp.nExpertOnlyControls = sizeof(expertOnlyControls) / sizeof(expertOnlyControls[0]); - CallService(MS_OPT_ADDPAGE, wParam, (LPARAM) & odp); - - // if popup service exists - if ((ServiceExists(MS_POPUP_ADDPOPUP))) - { - ZeroMemory(&odp, sizeof(odp)); - odp.cbSize = sizeof(odp); - odp.position = 100000000; - odp.hInstance = hInst; - odp.pszTemplate = MAKEINTRESOURCE(IDD_POPUP); - odp.pszTitle = optionsname; - odp.pszGroup = Translate("PopUps"); - odp.groupPosition = 910000000; - odp.flags = ODPF_BOLDGROUPS; - odp.pfnDlgProc = DlgPopUpOpts; - CallService(MS_OPT_ADDPAGE, wParam, (LPARAM) & odp); - } - return 0; + OPTIONSDIALOGPAGE odp = { sizeof(odp) }; + odp.hInstance = hInst; + odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT); + odp.pszGroup = Translate("Network"); + odp.pszTitle = optionsname; + odp.pfnDlgProc = DlgProcOpt; + odp.flags = ODPF_BOLDGROUPS; + Options_AddPage(wParam, &odp); + + // if popup service exists + if ((ServiceExists(MS_POPUP_ADDPOPUP))) { + ZeroMemory(&odp, sizeof(odp)); + odp.cbSize = sizeof(odp); + odp.position = 100000000; + odp.hInstance = hInst; + odp.pszTemplate = MAKEINTRESOURCEA(IDD_POPUP); + odp.pszTitle = optionsname; + odp.pszGroup = Translate("PopUps"); + odp.groupPosition = 910000000; + odp.flags = ODPF_BOLDGROUPS; + odp.pfnDlgProc = DlgPopUpOpts; + Options_AddPage(wParam, &odp); + } + return 0; } -/***************/ - -/**********/ +/*****************************************************************************/ void FontSettings(void) { - char fontfacename[20]; - - ZeroMemory(&fontfacename, sizeof(fontfacename)); - - lf.lfHeight = 16; - lf.lfWidth = 0; - lf.lfEscapement = 0; - lf.lfOrientation = 0; - lf.lfWeight = FW_NORMAL; - lf.lfItalic = FALSE; - lf.lfUnderline = FALSE; - lf.lfStrikeOut = 0; - lf.lfCharSet = ANSI_CHARSET; - lf.lfOutPrecision = OUT_DEFAULT_PRECIS; - lf.lfClipPrecision = CLIP_DEFAULT_PRECIS; - lf.lfQuality = DEFAULT_QUALITY; - lf.lfPitchAndFamily = FIXED_PITCH | FF_MODERN; - lstrcpy(lf.lfFaceName, "Courier"); - + lf.lfHeight = 16; + lf.lfWidth = 0; + lf.lfEscapement = 0; + lf.lfOrientation = 0; + lf.lfWeight = FW_NORMAL; + lf.lfItalic = FALSE; + lf.lfUnderline = FALSE; + lf.lfStrikeOut = 0; + lf.lfCharSet = ANSI_CHARSET; + lf.lfOutPrecision = OUT_DEFAULT_PRECIS; + lf.lfClipPrecision = CLIP_DEFAULT_PRECIS; + lf.lfQuality = DEFAULT_QUALITY; + lf.lfPitchAndFamily = FIXED_PITCH | FF_MODERN; + lstrcpy(lf.lfFaceName, Def_font_face); } -/************/ +/*****************************************************************************/ int ModulesLoaded(WPARAM wParam, LPARAM lParam) { - HookEvent(ME_OPT_INITIALISE, OptInitialise); - - hHookDisplayDataAlert = CreateHookableEvent(ME_DISPLAYDATA_ALERT); - HookEvent(ME_DISPLAYDATA_ALERT, DataWndAlertCommand); - - hHookAlertPopup = CreateHookableEvent(ME_POPUP_ALERT); - HookEvent(ME_POPUP_ALERT, PopupAlert); - - hHookAlertWPopup = CreateHookableEvent(ME_WPOPUP_ALERT); - HookEvent(ME_WPOPUP_ALERT, WPopupAlert); + HookEvent(ME_OPT_INITIALISE, OptInitialise); - hHookErrorPopup = CreateHookableEvent(ME_POPUP_ERROR); - HookEvent(ME_POPUP_ERROR, ErrorMsgs); + hHookDisplayDataAlert = CreateHookableEvent(ME_DISPLAYDATA_ALERT); + HookEvent(ME_DISPLAYDATA_ALERT, DataWndAlertCommand); - hHookAlertOSD = CreateHookableEvent(ME_OSD_ALERT); - HookEvent(ME_OSD_ALERT, OSDAlert); + hHookAlertPopup = CreateHookableEvent(ME_POPUP_ALERT); + HookEvent(ME_POPUP_ALERT, PopupAlert); - FontSettings(); + hHookErrorPopup = CreateHookableEvent(ME_POPUP_ERROR); + HookEvent(ME_POPUP_ERROR, ErrorMsgs); - h_font = CreateFontIndirect(&lf); + hHookAlertOSD = CreateHookableEvent(ME_OSD_ALERT); + HookEvent(ME_OSD_ALERT, OSDAlert); -// get data on startup - if ((db_get_b(NULL, MODULENAME, UPDATE_ONSTART_KEY, 0))) - forkthread(StartUpdate, 0, NULL); + FontSettings(); + h_font = CreateFontIndirect(&lf); -/****END ALWAYS****/ + // get data on startup + if ( db_get_b(NULL, MODULENAME, UPDATE_ONSTART_KEY, 0)) + mir_forkthread(StartUpdate, NULL); - return 0; + return 0; } -/*********/ -/***********************/ -int DataWndMenuCommand(WPARAM wParam, LPARAM lParam) +/*****************************************************************************/ +INT_PTR DataWndMenuCommand(WPARAM wParam, LPARAM lParam) { - HWND hwndDlg; - - if ((hwndDlg = (WindowList_Find(hWindowList, (HANDLE) wParam)))) - { - DestroyWindow(hwndDlg); - return 0; - } else - { - - hwndDlg = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_DISPLAY_DATA), NULL, DlgProcDisplayData, (LPARAM) (HANDLE) wParam); - - if (db_get_b((HANDLE) wParam, MODULENAME, ON_TOP_KEY, 0)) - { - SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BM_SETIMAGE, IMAGE_ICON, (LPARAM) ((HICON) LoadImage(hInst, MAKEINTRESOURCE(IDI_STICK), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0))); - if ((db_get_b(NULL, MODULENAME, SAVE_INDIVID_POS_KEY, 0))) - { - SetWindowPos( - hwndDlg, - HWND_TOPMOST, - db_get_dw((HANDLE) wParam, MODULENAME, "WVx", 100), // Xposition, - db_get_dw((HANDLE) wParam, MODULENAME, "WVy", 100), // Yposition, - db_get_dw((HANDLE) wParam, MODULENAME, "WVwidth", 100), // WindowWidth, - db_get_dw((HANDLE) wParam, MODULENAME, "WVheight", 100), // WindowHeight, - 0); - } else - { - SetWindowPos( - hwndDlg, - HWND_TOPMOST, - Xposition, - Yposition, - WindowWidth, - WindowHeight, - 0); - - } - } - if (!(db_get_b((HANDLE) wParam, MODULENAME, ON_TOP_KEY, 0))) - {// - SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BM_SETIMAGE, IMAGE_ICON, (LPARAM) ((HICON) LoadImage(hInst, MAKEINTRESOURCE(IDI_UNSTICK), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0))); - - if ((db_get_b(NULL, MODULENAME, SAVE_INDIVID_POS_KEY, 0))) - { - SetWindowPos( - hwndDlg, - HWND_NOTOPMOST, - db_get_dw((HANDLE) wParam, MODULENAME, "WVx", 100), // Xposition, - db_get_dw((HANDLE) wParam, MODULENAME, "WVy", 100), // Yposition, - db_get_dw((HANDLE) wParam, MODULENAME, "WVwidth", 100), // WindowWidth, - db_get_dw((HANDLE) wParam, MODULENAME, "WVheight", 100), // WindowHeight, - 0); - } else - { - SetWindowPos( - hwndDlg, - HWND_NOTOPMOST, - Xposition, - Yposition, - WindowWidth, - WindowHeight, - 0); - } - - } - } - - // - ShowWindow(hwndDlg, SW_SHOW); - SetActiveWindow(hwndDlg); - // - if ((db_get_b(NULL, MODULENAME, UPDATE_ON_OPEN_KEY, 0))) - { - if ((db_get_b((HANDLE) wParam, MODULENAME, ENABLE_ALERTS_KEY, 0))) - forkthread(ReadFromFile, 0, (HANDLE) wParam); - else - forkthread(GetData, 0, (HANDLE) wParam); - db_set_w((HANDLE) wParam, MODULENAME, "Status", ID_STATUS_ONLINE); - } - - return 0; + HANDLE hContact = (HANDLE)wParam; + HWND hwndDlg = WindowList_Find(hWindowList, hContact); + if (hwndDlg != NULL) { + DestroyWindow(hwndDlg); + return 0; + } + + HWND hTopmost = db_get_b(hContact, MODULENAME, ON_TOP_KEY, 0) ? HWND_TOPMOST : HWND_NOTOPMOST; + hwndDlg = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_DISPLAY_DATA), NULL, DlgProcDisplayData, (LPARAM) hContact); + SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BM_SETIMAGE, IMAGE_ICON, (LPARAM) ((HICON) LoadImage(hInst, MAKEINTRESOURCE(IDI_STICK), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0))); + if ( db_get_b(NULL, MODULENAME, SAVE_INDIVID_POS_KEY, 0)) + SetWindowPos(hwndDlg, hTopmost, + db_get_dw(hContact, MODULENAME, "WVx", 100), // Xposition, + db_get_dw(hContact, MODULENAME, "WVy", 100), // Yposition, + db_get_dw(hContact, MODULENAME, "WVwidth", 100), // WindowWidth, + db_get_dw(hContact, MODULENAME, "WVheight", 100), 0); // WindowHeight, + else + SetWindowPos(hwndDlg, HWND_TOPMOST, Xposition, Yposition, WindowWidth, WindowHeight, 0); + + ShowWindow(hwndDlg, SW_SHOW); + SetActiveWindow(hwndDlg); + + if ( db_get_b(NULL, MODULENAME, UPDATE_ON_OPEN_KEY, 0)) { + if ( db_get_b(hContact, MODULENAME, ENABLE_ALERTS_KEY, 0)) + mir_forkthread(ReadFromFile, hContact); + else + mir_forkthread(GetData, hContact); + db_set_w(hContact, MODULENAME, "Status", ID_STATUS_ONLINE); + } + + return 0; } -/***********************/ - -/**********************/ +/*****************************************************************************/ INT_PTR UpdateAllMenuCommand(WPARAM wParam, LPARAM lParam) { - forkthread(ContactLoop, 0, NULL); - return 0; + mir_forkthread(ContactLoop, NULL); + return 0; } -/*************************/ -/************************/ +/*****************************************************************************/ INT_PTR AutoUpdateMCmd(WPARAM wParam, LPARAM lParam) { - if (db_get_b(NULL, MODULENAME, DISABLE_AUTOUPDATE_KEY, 0)) - db_set_b(NULL, MODULENAME, DISABLE_AUTOUPDATE_KEY, 0); - else if (!(db_get_b(NULL, MODULENAME, DISABLE_AUTOUPDATE_KEY, 0))) - db_set_b(NULL, MODULENAME, DISABLE_AUTOUPDATE_KEY, 1); + if (db_get_b(NULL, MODULENAME, DISABLE_AUTOUPDATE_KEY, 0)) + db_set_b(NULL, MODULENAME, DISABLE_AUTOUPDATE_KEY, 0); + else if (!(db_get_b(NULL, MODULENAME, DISABLE_AUTOUPDATE_KEY, 0))) + db_set_b(NULL, MODULENAME, DISABLE_AUTOUPDATE_KEY, 1); - ChangeMenuItem1(); - return 0; + ChangeMenuItem1(); + return 0; } -/**********************/ -/***************************/ -int AddContactMenuCommand(WPARAM wParam, LPARAM lParam) +/*****************************************************************************/ +INT_PTR AddContactMenuCommand(WPARAM wParam, LPARAM lParam) { - db_set_s(NULL, "FindAdd", "LastSearched", MODULENAME); - CallService(MS_FINDADD_FINDADD, 0, 0); - return 0; + db_set_s(NULL, "FindAdd", "LastSearched", MODULENAME); + CallService(MS_FINDADD_FINDADD, 0, 0); + return 0; } -/***************************/ -/***********************/ +/*****************************************************************************/ int OnTopMenuCommand(WPARAM wParam, LPARAM lParam, HANDLE singlecontact) { - int ontop = 0; - int done = 0; - - if (((db_get_b(singlecontact, MODULENAME, ON_TOP_KEY, 0))) && done == 0) - { - db_set_b(singlecontact, MODULENAME, ON_TOP_KEY, 0); - ontop = 0; - done = 1; - } - if ((!(db_get_b(singlecontact, MODULENAME, ON_TOP_KEY, 0))) && done == 0) - { - db_set_b(singlecontact, MODULENAME, ON_TOP_KEY, 1); - ontop = 1; - done = 1; - } - return 0; + int ontop = 0; + int done = 0; + + if (((db_get_b(singlecontact, MODULENAME, ON_TOP_KEY, 0))) && done == 0) + { + db_set_b(singlecontact, MODULENAME, ON_TOP_KEY, 0); + ontop = 0; + done = 1; + } + if ((!(db_get_b(singlecontact, MODULENAME, ON_TOP_KEY, 0))) && done == 0) + { + db_set_b(singlecontact, MODULENAME, ON_TOP_KEY, 1); + ontop = 1; + done = 1; + } + return 0; } -/*********************/ - -/********************/ -int WebsiteMenuCommand(WPARAM wParam, LPARAM lParam) -{ - DBVARIANT dbv; - char url[300]; - - url[0] = '\0'; -// - DBGetContactSetting((HANDLE) wParam, MODULENAME, "URL", &dbv); - wsprintf(url, "%s", dbv.pszVal); - CallService(MS_UTILS_OPENURL, 1, (WPARAM) url); - DBFreeVariant(&dbv); - db_set_w((HANDLE) wParam, MODULENAME, "Status", ID_STATUS_ONLINE); -// / - - return 0; -} -/*******************/ - - -/****************/ -int UpdateMenuCommand(WPARAM wParam, LPARAM lParam, HANDLE singlecontact) +/*****************************************************************************/ +INT_PTR WebsiteMenuCommand(WPARAM wParam, LPARAM lParam) { + HANDLE hContact = (HANDLE)wParam; + ptrT url( db_get_tsa(hContact, MODULENAME, "URL")); + if (url) + CallService(MS_UTILS_OPENURL, OUF_TCHAR, (WPARAM)url); - forkthread(GetData, 0, singlecontact); - - return 0; + db_set_w(hContact, MODULENAME, "Status", ID_STATUS_ONLINE); + return 0; } -/***************/ - - -/*******************/ -int ContactMenuItemUpdateData (WPARAM wParam, LPARAM lParam) +/*****************************************************************************/ +int UpdateMenuCommand(WPARAM wParam, LPARAM lParam, HANDLE singlecontact) { -UpdateMenuCommand(wParam, lParam, (HANDLE) wParam); -return 0; + mir_forkthread(GetData, singlecontact); + return 0; } -/*******************/ - - -/********************/ -int CntOptionsMenuCommand(WPARAM wParam, LPARAM lParam) +/*****************************************************************************/ +int ContactMenuItemUpdateData(WPARAM wParam, LPARAM lParam) { - -HWND hwndDlg; - - if ((hwndDlg = (WindowList_Find(hWindowList, (HANDLE) wParam)))) - { - DestroyWindow(hwndDlg); - return 0; - } else - { - hwndDlg = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_CONTACT_OPT ), NULL, DlgProcContactOpt, (LPARAM) (HANDLE) wParam); - ShowWindow(hwndDlg, SW_SHOW); - SetActiveWindow(hwndDlg); - } - return 0; + UpdateMenuCommand(wParam, lParam, (HANDLE)wParam); + return 0; } -/*******************/ -/********************/ -int CntAlertMenuCommand(WPARAM wParam, LPARAM lParam) +/*****************************************************************************/ +INT_PTR CntOptionsMenuCommand(WPARAM wParam, LPARAM lParam) { - -HWND hwndDlg; - - if ((hwndDlg = (WindowList_Find(hWindowList, (HANDLE) wParam)))) - { - DestroyWindow(hwndDlg); - return 0; - } else - { - hwndDlg = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_ALRT_OPT), NULL, DlgProcAlertOpt, (LPARAM) (HANDLE) wParam); - ShowWindow(hwndDlg, SW_SHOW); - SetActiveWindow(hwndDlg); - } - return 0; + HWND hwndDlg = WindowList_Find(hWindowList, (HANDLE)wParam); + if (hwndDlg) { + DestroyWindow(hwndDlg); + return 0; + } + + hwndDlg = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_CONTACT_OPT ), NULL, DlgProcContactOpt, (LPARAM) (HANDLE) wParam); + ShowWindow(hwndDlg, SW_SHOW); + SetActiveWindow(hwndDlg); + return 0; } -/*******************/ -int CountdownMenuCommand(WPARAM wParam, LPARAM lParam) +/*****************************************************************************/ +INT_PTR CntAlertMenuCommand(WPARAM wParam, LPARAM lParam) { - - return 0; + HWND hwndDlg = WindowList_Find(hWindowList, (HANDLE) wParam); + if (hwndDlg) { + DestroyWindow(hwndDlg); + return 0; + } + + hwndDlg = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_ALRT_OPT), NULL, DlgProcAlertOpt, (LPARAM) (HANDLE) wParam); + ShowWindow(hwndDlg, SW_SHOW); + SetActiveWindow(hwndDlg); + return 0; } -/**************/ - -void CheckDbKeys(void) +/*****************************************************************************/ +INT_PTR CountdownMenuCommand(WPARAM wParam, LPARAM lParam) { - DBVARIANT dbv; - - if (DBGetContactSetting(NULL, MODULENAME, HAS_CRASHED_KEY, &dbv)) - { - db_set_b(NULL, MODULENAME, HAS_CRASHED_KEY, 0); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, UPDATE_ONSTART_KEY, &dbv)) - { - db_set_b(NULL, MODULENAME, UPDATE_ONSTART_KEY, 0); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, MENU_OFF, &dbv)) - { - db_set_b(NULL, MODULENAME, MENU_OFF, 0); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, Ypos_WIN_KEY, &dbv)) - { - db_set_dw(NULL, MODULENAME, Ypos_WIN_KEY, 0); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, Xpos_WIN_KEY, &dbv)) - { - db_set_dw(NULL, MODULENAME, Xpos_WIN_KEY, 0); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, REFRESH_KEY, &dbv)) - { - db_set_dw(NULL, MODULENAME, REFRESH_KEY, TIME); - DBFreeVariant(&dbv); - } - - if (DBGetContactSetting(NULL, MODULENAME, BG_COLOR_KEY, &dbv)) - { - db_set_dw(NULL, MODULENAME, BG_COLOR_KEY, Def_color_bg); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, TXT_COLOR_KEY, &dbv)) - { - db_set_dw(NULL, MODULENAME, TXT_COLOR_KEY, Def_color_txt); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, WIN_HEIGHT_KEY, &dbv)) - { - db_set_dw(NULL, MODULENAME, WIN_HEIGHT_KEY, 152); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, SUPPRESS_ERR_KEY, &dbv)) - { - db_set_b(NULL, MODULENAME, SUPPRESS_ERR_KEY, 0); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, WIN_WIDTH_KEY, &dbv)) - { - db_set_dw(NULL, MODULENAME, WIN_WIDTH_KEY, 250); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, OFFLINE_STATUS, &dbv)) - { - db_set_b(NULL, MODULENAME, OFFLINE_STATUS, 1); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, UPDATE_ON_OPEN_KEY, &dbv)) - { - db_set_b(NULL, MODULENAME, UPDATE_ON_OPEN_KEY, 0); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, FONT_FACE_KEY, &dbv)) - { - db_set_s(NULL, MODULENAME, FONT_FACE_KEY, "Courier"); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, FONT_BOLD_KEY, &dbv)) - { - db_set_b(NULL, MODULENAME, FONT_BOLD_KEY, 0); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, FONT_ITALIC_KEY, &dbv)) - { - db_set_b(NULL, MODULENAME, FONT_ITALIC_KEY, 0); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, FONT_UNDERLINE_KEY, &dbv)) - { - db_set_b(NULL, MODULENAME, FONT_UNDERLINE_KEY, 0); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, FONT_SIZE_KEY, &dbv)) - { - db_set_b(NULL, MODULENAME, FONT_SIZE_KEY, 14); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, ERROR_POPUP_KEY, &dbv)) - { - db_set_b(NULL, MODULENAME, ERROR_POPUP_KEY, 0); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, POP_DELAY_KEY, &dbv)) - { - db_set_dw(NULL, MODULENAME, POP_DELAY_KEY, 0); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, POP_BG_CLR_KEY, &dbv)) - { - db_set_dw(NULL, MODULENAME, POP_BG_CLR_KEY, Def_color_bg); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, POP_TXT_CLR_KEY, &dbv)) - { - db_set_dw(NULL, MODULENAME, POP_TXT_CLR_KEY, Def_color_txt); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, POP_USEWINCLRS_KEY, &dbv)) - { - db_set_b(NULL, MODULENAME, POP_USEWINCLRS_KEY, 0); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, MENU_IS_DISABLED_KEY, &dbv)) - { - db_set_b(NULL, MODULENAME, MENU_IS_DISABLED_KEY, 0); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, UPDATE_ONALERT_KEY, &dbv)) - { - db_set_b(NULL, MODULENAME, UPDATE_ONALERT_KEY, 0); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, DISABLE_AUTOUPDATE_KEY, &dbv)) - { - db_set_b(NULL, MODULENAME, DISABLE_AUTOUPDATE_KEY, 0); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, POP_USESAMECLRS_KEY, &dbv)) - { - db_set_b(NULL, MODULENAME, POP_USESAMECLRS_KEY, 1); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, POP_USECUSTCLRS_KEY, &dbv)) - { - db_set_b(NULL, MODULENAME, POP_USECUSTCLRS_KEY, 0); - DBFreeVariant(&dbv); - } - // - if (DBGetContactSetting(NULL, MODULENAME, LCLK_WINDOW_KEY, &dbv)) - { - db_set_b(NULL, MODULENAME, LCLK_WINDOW_KEY, 0); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, LCLK_WEB_PGE_KEY, &dbv)) - { - db_set_b(NULL, MODULENAME, LCLK_WEB_PGE_KEY, 0); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, LCLK_DISMISS_KEY, &dbv)) - { - db_set_b(NULL, MODULENAME, LCLK_DISMISS_KEY, 1); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, RCLK_WINDOW_KEY, &dbv)) - { - db_set_b(NULL, MODULENAME, RCLK_WINDOW_KEY, 0); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, RCLK_WEB_PGE_KEY, &dbv)) - { - db_set_b(NULL, MODULENAME, RCLK_WEB_PGE_KEY, 1); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, RCLK_DISMISS_KEY, &dbv)) - { - db_set_b(NULL, MODULENAME, RCLK_DISMISS_KEY, 0); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, START_DELAY_KEY, &dbv)) - { - db_set_dw(NULL, MODULENAME, START_DELAY_KEY, 0); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, SAVE_INDIVID_POS_KEY, &dbv)) - { - db_set_b(NULL, MODULENAME, SAVE_INDIVID_POS_KEY, 0); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, NO_PROTECT_KEY, &dbv)) - { - db_set_b(NULL, MODULENAME, NO_PROTECT_KEY, 0); - DBFreeVariant(&dbv); - } - if (DBGetContactSetting(NULL, MODULENAME, FONT_SCRIPT_KEY, &dbv)) - { - db_set_b(NULL, MODULENAME, FONT_SCRIPT_KEY, 0); - DBFreeVariant(&dbv); - } - - if (DBGetContactSetting(NULL, MODULENAME, DATA_POPUP_KEY, &dbv)) - { - db_set_b(NULL, MODULENAME, DATA_POPUP_KEY, 0); - DBFreeVariant(&dbv); - } - -// if (DBGetContactSetting(NULL, MODULENAME, INBUILTPOP_KEY, &dbv)) -// { -// db_set_b(NULL, MODULENAME, INBUILTPOP_KEY, 0); -// DBFreeVariant(&dbv); -// } - - + return 0; } - -/***************/ diff --git a/plugins/WebView/src/webview.h b/plugins/WebView/src/webview.h index d78adc247c..0e5dd41f3d 100644 --- a/plugins/WebView/src/webview.h +++ b/plugins/WebView/src/webview.h @@ -1,25 +1,69 @@ /* - * A plugin for Miranda IM which displays web page text in a window Copyright + * A plugin for Miranda IM which displays web page text in a window Copyright * (C) 2005 Vincent Joyce. - * + * * Miranda IM: the free icq client for MS Windows Copyright (C) 2000-2 * Richard Hughes, Roland Rabien & Tristan Van de Vreede - * + * * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free + * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. - * + * * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. - * + * * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * with this program; if not, write to the Free Software Foundation, Inc., 59 + * Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#define CFM_BACKCOLOR 0x04000000 + +#define MODULENAME "WebView" + +#define MENU_OFF "DisableMenu" +#define REFRESH_KEY "Refresh interval" +#define ON_TOP_KEY "Always on top" +#define OFFLINE_STATUS "OfflineOnBoot" +#define URL_KEY "URL" +#define START_STRING_KEY "Start_string" +#define END_STRING_KEY "End_String" +#define DBLE_WIN_KEY "Doub_click_win" +#define HIDE_STATUS_ICON_KEY "Hide_Status_Icon" +#define HAS_CRASHED_KEY "Has_Crashed" +#define U_ALLSITE_KEY "UseAllTheWebsite" +#define MENU_IS_DISABLED_KEY "MainMenuReallyDisabled" +#define UPDATE_ONALERT_KEY "WND_UPDATE_OALERY_ONLY" +#define DISABLE_AUTOUPDATE_KEY "Disable_Auto_Update" +#define RWSPACE_KEY "level_of_wspace_removal" +#define PRESERVE_NAME_KEY "PreserveName" +#define CLEAR_DISPLAY_KEY "Remove_tags_whitespace" +#define ALRT_S_STRING_KEY "ALRT_S_STRING" +#define ALRT_E_STRING_KEY "ALRT_E_STRING" +#define ALRT_INDEX_KEY "AlertIndex" +#define EVNT_INDEX_KEY "EventIndex" +#define START_DELAY_KEY "StartUpDelay" +#define ALWAYS_LOG_KEY "AlwaysLogToFile" +#define SAVE_INDIVID_POS_KEY "SaveIndividWinPos" +#define NO_PROTECT_KEY "NoDownloadProtection" +#define SAVE_AS_RAW_KEY "SaveAsRaw" +#define FONT_SCRIPT_KEY "FontScript" +#define STOP_KEY "StopProcessing" +#define DATA_POPUP_KEY "DisplayDataPopup" +#define COUNTDOWN_KEY "Countdown" + +#define MINUTE 60000 +#define SECOND 1000 + +#define MS_UPDATE_ALL "Webview/UpdateAll" +#define MS_ADD_SITE "Webview/AddSite" +#define MS_AUTO_UPDATE "Webview/AutoUpdate" + +#define CACHE_FILE_KEY "Filename" + #define Xpos_WIN_KEY "win_Xpos" #define Ypos_WIN_KEY "win_Ypos" #define BG_COLOR_KEY "BgColor" @@ -60,364 +104,138 @@ #define TIME 60 #define Def_color_bg 0x00ffffff #define Def_color_txt 0x00000000 +#define Def_font_face _T("Courier") +#define Def_font_size 14 #define HK_SHOWHIDE 3001 #define MAXSIZE1 250000 #define MAXSIZE2 500000 #define MAXSIZE3 1000000 -static UINT expertOnlyControls[] = -{IDC_ADV_GRP, - IDC_NO_PROTECT, -IDC_NOT_RECOMND_TXT}; +#define Def_win_height 152 +#define Def_win_width 250 //lets get rid of some warnings -void ErrorMsgs(char *contactname, char *displaytext); void CodetoSymbol(char *truncated); -static void GetData(void *hContact); -BOOL CALLBACK DlgProcDisplayData(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); -void FillFontListThread(HWND hwndDlg); -static BOOL CALLBACK DlgProcAlertOpt(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); -int DataWndAlertCommand(void *AContact); - - - // /////////////////////// -// characters and symbols// -// /////////////////////// - -#define AMOUNT3 164 - -char*CharacterCodes[AMOUNT3] = -{ - - """, - "&", - "<", - ">", - " ", - "¡", - "¢", - "£", - "¤", - "¥", - "¦", - "§", - "¨", - "©", - "ª", - "«", - "¬", - "­", - "®", - "¯", - "°", - "±", - "²", - "³", - "´", - "µ", - "¶", - "·", - "¸", - "¹", - "º", - "»", - "¼", - "½", - "¾", - "¿", - "À", - "Á", - "Â", - "Ã", - "Ä", - "Å", - "Æ", - "Ç", - "È", - "É", - "Ê", - "Ë", - "Ì", - "Í", - "Î", - "Ï", - "Ð", - "Ñ", - "Ò", - "Ó", - "Ô", - "Õ", - "Ö", - "×", - "Ø", - "Ù", - "Ú", - "Û", - "Ü", - "Ý", - "Þ", - "ß", - "à", - "á", - "â", - "ã", - "ä", - "å", - "æ", - "ç", - "è", - "é", - "ê", - "ë", - "ì", - "í", - "î", - "ï", - "ð", - "ñ", - "ò", - "ó", - "ô", - "õ", - "ö", - "÷", - "ø", - "ù", - "ú", - "û", - "ü", - "ý", - "þ", - "&yumil;", - "Œ", // greater that 255, extra latin characters - "œ", - "Š", - "š", - "Ÿ", - "ƒ", - "ˆ", - "˜", - "Œ", - "œ", - "Š", - "š", - "Ÿ", - "ƒ", - "ˆ", - "˜", - "–", // Misc other characters - "—", - "‘", - "’", - "‚", - "“", - "”", - "„", - "†", - "‡", - "•", - "…", - "‰", - "‹", - "›", - "€", - "ℑ", - "ℜ", - "™", - "–", - "—", - "‘", - "’", - "‚", - "“", - "”", - "„", - "†", - "‡", - "•", - "…", - "‰", - "‹", - "›", - "€", - "ℑ", - "ℜ", - "™", - " ", - " ", - " ", - " ", - " ", - " ", - "õ", // symbols without numeric code - "¿", - "¦", -"¯"}; - -char Characters[AMOUNT3] = -{ - '\"', - '&', - '<', - '>', - ' ', - '¡', - '¢', - '£', - '¤', - '¥', - '¦', - '§', - '¨', - '©', - 'ª', - '«', - '¬', - '­', - '®', - '¯', - '°', - '±', - '²', - '³', - '´', - 'µ', - '¶', - '·', - '¸', - '¹', - 'º', - '»', - '¼', - '½', - '¾', - '¿', - 'À', - 'Á', - 'Â', - 'Ã', - 'Ä', - 'Å', - 'Æ', - 'Ç', - 'È', - 'É', - 'Ê', - 'Ë', - 'Ì', - 'Í', - 'Î', - 'Ï', - 'Ð', - 'Ñ', - 'Ò', - 'Ó', - 'Ô', - 'Õ', - 'Ö', - '×', - 'Ø', - 'Ù', - 'Ú', - 'Û', - 'Ü', - 'Ý', - 'Þ', - 'ß', - 'à', - 'á', - 'â', - 'ã', - 'ä', - 'å', - 'æ', - 'ç', - 'è', - 'é', - 'ê', - 'ë', - 'ì', - 'í', - 'î', - 'ï', - 'ð', - 'ñ', - 'ò', - 'ó', - 'ô', - 'õ', - 'ö', - '÷', - 'ø', - 'ù', - 'ú', - 'û', - 'ü', - 'ý', - 'þ', - 'ÿ', - 'Œ', // greater than 255 extra latin characters - 'œ', - 'Š', - 'š', - 'Ÿ', - 'ƒ', - 'ˆ', - '˜', - 'Œ', - 'œ', - 'Š', - 'š', - 'Ÿ', - 'ƒ', - 'ˆ', - '˜', - '–', - '—', // misc other characters - '‘', - '’', - '‚', - '“', - '”', - '„', - '†', - '‡', - '•', - '…', - '‰', - '‹', - '›', - '€', - 'I', - 'R', - '™', - '–', - '—', - '‘', - '’', - '‚', - '“', - '”', - '„', - '†', - '‡', - '•', - '…', - '‰', - '‹', - '›', - '€', - 'I', - 'R', - '™', - ' ', - ' ', - ' ', - ' ', - ' ', - ' ', - 'õ', - '¿', - '¦', -'¯'}; +void GetData(HANDLE hContact); +void FillFontListThread(void *); + +INT_PTR CALLBACK DlgProcDisplayData(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); +INT_PTR CALLBACK DlgProcAlertOpt(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); +INT_PTR CALLBACK DlgProcOpt(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); + +int DataWndAlertCommand(WPARAM wParam, LPARAM lParam); +int PopupAlert(WPARAM wParam, LPARAM lParam); +int WPopupAlert(WPARAM wParam, LPARAM lParam); +int ErrorMsgs(WPARAM wParam, LPARAM lParam); +int OSDAlert(WPARAM wParam, LPARAM lParam); + +void ReadFromFile(void *hContact); + +/* + * some globals for window settings + */ + +extern DWORD Xposition, Yposition, BackgoundClr, TextClr, WindowHeight, WindowWidth; +extern UINT_PTR timerId, Countdown; +extern LOGFONT lf; +extern HFONT h_font; +extern HWND ContactHwnd; +extern HINSTANCE hInst; +extern HMENU hMenu; +extern int bpStatus; +extern HANDLE hNetlibUser, hWindowList; +extern HANDLE hMenuItem1, hMenuItemCountdown; +extern char optionsname[80]; + +//lets get rid of some warnings +void timerfunc(void); +void Countdownfunc(void); +void SavewinSettings(void); +void ValidatePosition(HWND hwndDlg); +int ModulesLoaded(WPARAM wParam, LPARAM lParam); +void ChangeMenuItem3(); +int ContactMenuItemUpdateData (WPARAM wParam, LPARAM lParam); + +int Doubleclick(WPARAM wParam, LPARAM lParam); +int DBSettingChanged(WPARAM wParam, LPARAM lParam); + +int SendToRichEdit(HWND hWindow, char *truncated, COLORREF rgbText, COLORREF rgbBack); + +//Services +INT_PTR GetCaps(WPARAM wParam, LPARAM lParam); +INT_PTR GetName(WPARAM wParam, LPARAM lParam); +INT_PTR BPLoadIcon(WPARAM wParam, LPARAM lParam); // BPLoadIcon + +INT_PTR SetStatus(WPARAM wParam, LPARAM lParam); +INT_PTR GetStatus(WPARAM wParam, LPARAM lParam); + +INT_PTR BasicSearch(WPARAM wParam, LPARAM lParam); +INT_PTR AddToList(WPARAM wParam, LPARAM lParam); +INT_PTR GetInfo(WPARAM wParam, LPARAM lParam); + +INT_PTR OpenCacheDir(WPARAM wParam, LPARAM lParam); + +INT_PTR UpdateAllMenuCommand(WPARAM wParam, LPARAM lParam); +INT_PTR CountdownMenuCommand(WPARAM wParam, LPARAM lParam); +INT_PTR MarkAllReadMenuCommand(WPARAM wParam, LPARAM lParam); +INT_PTR WebsiteMenuCommand(WPARAM wParam, LPARAM lParam); +INT_PTR AddContactMenuCommand(WPARAM wParam, LPARAM lParam); +INT_PTR ContactOptionsMenuCommand(WPARAM wParam, LPARAM lParam); +INT_PTR CntOptionsMenuCommand(WPARAM wParam, LPARAM lParam); +INT_PTR CntAlertMenuCommand(WPARAM wParam, LPARAM lParam); +INT_PTR DataWndMenuCommand(WPARAM wParam, LPARAM lParam); +INT_PTR ShowHideContactCommand(WPARAM wParam, LPARAM lParam); +INT_PTR PingWebsiteMenuCommand(WPARAM wParam, LPARAM lParam); +INT_PTR StpPrcssMenuCommand(WPARAM wParam, LPARAM lParam); + +int UpdateMenuCommand(WPARAM wParam, LPARAM lParam, HANDLE singlecontact); +int OnTopMenuCommand(WPARAM wParam, LPARAM lParam, HANDLE singlecontact); + +// +void ChangeContactStatus(int con_stat); +void InitialiseGlobals(void); +void FontSettings(void); + +/// + +void Removewhitespace(char *truncated); +void RemoveInvis(char *truncated, int AmountWspcRem); +void RemoveTabs(char *truncated); +void FastTagFilter(char *truncated); +void EraseBlock(char *truncated); +void EraseSymbols(char *truncated); +int ProcessAlerts(HANDLE hContact, char *truncated, char *tstr, char *contactname, int notpresent); + +INT_PTR CALLBACK DlgPopUpOpts(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam); +INT_PTR CALLBACK DlgProcFind(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); +int DataDialogResize(HWND hwndDlg, LPARAM lParam, UTILRESIZECONTROL * urc); + +void Filter(char *truncated); +void TxtclrLoop(); +void BGclrLoop(); +void ContactLoop(void *dummy); +void NumSymbols(char *truncated); + +INT_PTR AutoUpdateMCmd(WPARAM wParam, LPARAM lParam); +INT_PTR CALLBACK DlgProcContactOpt(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); +void AckFunc(void *dummy); +int SiteDeleted(WPARAM wParam, LPARAM lParam); + +int WErrorPopup(HANDLE hContact, TCHAR *textdisplay); +int WAlertPopup(HANDLE hContact, TCHAR *displaytext); + +////////////////////// +// wrappers + +extern HANDLE hHookDisplayDataAlert; +#define ME_DISPLAYDATA_ALERT "Miranda/ALERT/DISPLAYDATA" + +extern HANDLE hHookAlertPopup; +#define ME_POPUP_ALERT "Miranda/ALERT/POPUP" + +extern HANDLE hHookErrorPopup; +#define ME_POPUP_ERROR "Miranda/ERROR/POPUP" + +extern HANDLE hHookAlertOSD; +#define ME_OSD_ALERT "Miranda/ALERT/OSD" diff --git a/plugins/WebView/src/webview_alerts.cpp b/plugins/WebView/src/webview_alerts.cpp index 285d3d34ea..fb2e287127 100644 --- a/plugins/WebView/src/webview_alerts.cpp +++ b/plugins/WebView/src/webview_alerts.cpp @@ -1,376 +1,239 @@ /* - * A plugin for Miranda IM which displays web page text in a window Copyright - * (C) 2005 Vincent Joyce. - * - * Miranda IM: the free icq client for MS Windows Copyright (C) 2000-2 - * Richard Hughes, Roland Rabien & Tristan Van de Vreede - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ +* A plugin for Miranda IM which displays web page text in a window Copyright +* (C) 2005 Vincent Joyce. +* +* Miranda IM: the free icq client for MS Windows Copyright (C) 2000-2 +* Richard Hughes, Roland Rabien & Tristan Van de Vreede +* +* This program is free software; you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by the Free +* Software Foundation; either version 2 of the License, or (at your option) +* any later version. +* +* This program is distributed in the hope that it will be useful, but +* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +* for more details. +* +* You should have received a copy of the GNU General Public License along +* with this program; if not, write to the Free Software Foundation, Inc., 59 +* Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ #include "stdafx.h" +#include "webview.h" -static HANDLE hWindowList = NULL; - -/**********************************/ -int CALLBACK PopupDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +/*****************************************************************************/ +int CALLBACK PopupDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { - HANDLE hContact; - char popupurl[300]; - DBVARIANT dbv; - - hContact = PUGetContact(hWnd); - - ZeroMemory(&popupurl, sizeof(popupurl)); - DBGetContactSetting(hContact, MODULENAME, URL_KEY, &dbv); - _snprintf(popupurl, sizeof(popupurl), "%s", dbv.pszVal); - DBFreeVariant(&dbv); - - switch (message) - { + switch (message) { case WM_COMMAND: case WM_CONTEXTMENU: - { - if (message == WM_COMMAND) // left click - { - if(hContact != NULL) - { - // open data window - - if ((db_get_b(NULL, MODULENAME, LCLK_WINDOW_KEY, 0))) - { - NotifyEventHooks(hHookDisplayDataAlert, (int) hContact, 0); - forkthread(GetData, 0, hContact); - PUDeletePopUp(hWnd); - } - // open url - if ((db_get_b(NULL, MODULENAME, LCLK_WEB_PGE_KEY, 0))) - { - CallService(MS_UTILS_OPENURL, (WPARAM) 1, (LPARAM) popupurl); - PUDeletePopUp(hWnd); - db_set_w((HANDLE) wParam, MODULENAME, "Status", ID_STATUS_ONLINE); - } - // dismiss - if ((db_get_b(NULL, MODULENAME, LCLK_DISMISS_KEY, 0))) - { - PUDeletePopUp(hWnd); - } - - - } - - else if(hContact == NULL) - PUDeletePopUp(hWnd); - + HANDLE hContact = PUGetContact(hWnd); + ptrT url( db_get_tsa(hContact, MODULENAME, URL_KEY)); + + if (message == WM_COMMAND) { // left click + if(hContact != NULL) { + // open data window + if ( db_get_b(NULL, MODULENAME, LCLK_WINDOW_KEY, 0)) { + NotifyEventHooks(hHookDisplayDataAlert, (int) hContact, 0); + mir_forkthread(GetData, hContact); + PUDeletePopup(hWnd); + } + // open url + if ( db_get_b(NULL, MODULENAME, LCLK_WEB_PGE_KEY, 0)) { + CallService(MS_UTILS_OPENURL, OUF_TCHAR, (LPARAM)url); + PUDeletePopup(hWnd); + db_set_w((HANDLE)wParam, MODULENAME, "Status", ID_STATUS_ONLINE); + } + // dismiss + if ( db_get_b(NULL, MODULENAME, LCLK_DISMISS_KEY, 1)) + PUDeletePopup(hWnd); + } + else if (hContact == NULL) + PUDeletePopup(hWnd); } - - - - else if (message == WM_CONTEXTMENU) // right click - - { - if(hContact != NULL) - { - - // open datA window - - if ((db_get_b(NULL, MODULENAME, RCLK_WINDOW_KEY, 0))) - { - NotifyEventHooks(hHookDisplayDataAlert, (int) hContact, 0); - forkthread(GetData, 0, hContact); - PUDeletePopUp(hWnd); - } - // open url - if ((db_get_b(NULL, MODULENAME, RCLK_WEB_PGE_KEY, 0))) - { - CallService(MS_UTILS_OPENURL, (WPARAM) 1, (LPARAM) popupurl); - PUDeletePopUp(hWnd); - db_set_w((HANDLE) wParam, MODULENAME, "Status", ID_STATUS_ONLINE); - } - // dismiss - if ((db_get_b(NULL, MODULENAME, RCLK_DISMISS_KEY, 0))) - { - PUDeletePopUp(hWnd); + else if (message == WM_CONTEXTMENU) { // right click + if (hContact != NULL) { + // open datA window + if ( db_get_b(NULL, MODULENAME, RCLK_WINDOW_KEY, 0)) { + NotifyEventHooks(hHookDisplayDataAlert, (int) hContact, 0); + mir_forkthread(GetData, hContact); + PUDeletePopup(hWnd); + } + // open url + if ( db_get_b(NULL, MODULENAME, RCLK_WEB_PGE_KEY, 1)) { + CallService(MS_UTILS_OPENURL, OUF_TCHAR, (LPARAM)url); + PUDeletePopup(hWnd); + db_set_w((HANDLE)wParam, MODULENAME, "Status", ID_STATUS_ONLINE); + } + // dismiss + if ( db_get_b(NULL, MODULENAME, RCLK_DISMISS_KEY, 0)) + PUDeletePopup(hWnd); } + else if(hContact == NULL) + PUDeletePopup(hWnd); } - else if(hContact == NULL) - PUDeletePopUp(hWnd); - } - - - - } - break; + break; } return DefWindowProc(hWnd, message, wParam, lParam); } -/*********************************/ -/*******************/ -int WDisplayDataAlert(void *AContact) +/*****************************************************************************/ +int WDisplayDataAlert(void *hContact) { - NotifyEventHooks(hHookDisplayDataAlert, (int) AContact, 0); + NotifyEventHooks(hHookDisplayDataAlert, (int) hContact, 0); return 0; } -/**************/ -/*******************/ -int WAlertPopup(WPARAM hContact, char *displaytext) +/*****************************************************************************/ +int WAlertPopup(HANDLE hContact, TCHAR *displaytext) { - NotifyEventHooks(hHookAlertPopup, (WPARAM) hContact, (LPARAM) displaytext); + NotifyEventHooks(hHookAlertPopup, (WPARAM)hContact, (LPARAM)displaytext); return 0; } -/**************/ -/*******************/ -//int WAlertPopup(WPARAM hContact, char *displaytext) -int WAlertWPopup(WPARAM hContact, WCHAR *displaytext) +/*****************************************************************************/ +int WErrorPopup(HANDLE hContact, TCHAR *textdisplay) { - NotifyEventHooks(hHookAlertWPopup, (WPARAM) hContact, (LPARAM) displaytext); + NotifyEventHooks(hHookErrorPopup, (WPARAM)hContact, (LPARAM) textdisplay); return 0; } -/**************/ - -/*******************/ -int WErrorPopup(char *namecontact, char *textdisplay) +/*****************************************************************************/ +int WAlertOSD(HANDLE hContact, TCHAR *displaytext) { - NotifyEventHooks(hHookErrorPopup, (WPARAM) namecontact, (LPARAM) textdisplay); + NotifyEventHooks(hHookAlertOSD, (WPARAM)hContact, (LPARAM) displaytext); return 0; } -/**************/ -/*******************/ -int WAlertOSD(WPARAM hContact, char *displaytext) + +/*****************************************************************************/ +int WPopupAlert(WPARAM wParam, LPARAM lParam) { - NotifyEventHooks(hHookAlertOSD, (WPARAM) hContact, (LPARAM) displaytext); - return 0; -} -/**************/ + POPUPDATAW ppd = { 0 }; -/********************/ + if( ((HANDLE)wParam) != NULL) { + DBVARIANT dbv; + db_get_ts((HANDLE)wParam, MODULENAME, PRESERVE_NAME_KEY, &dbv); + lstrcpyn(ppd.lptzContactName, dbv.ptszVal, SIZEOF(ppd.lptzContactName)); + db_free(&dbv); + } + else lstrcpy(ppd.lptzContactName, _A2T(MODULENAME)); -int WPopupAlert(WPARAM wParam, WCHAR *displaytext) -{ - POPUPDATAW ppd; - DWORD delay = 0; - DWORD colorBack, colorText; - char contactname[255]; - DBVARIANT dbv; - char delaystr[4]; - - // setup the popup - ZeroMemory(&ppd, sizeof(POPUPDATAW)); - ZeroMemory(&contactname, sizeof(contactname)); + ppd.lchContact = (HANDLE)wParam; + ppd.lchIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_SITE)); -if( ((HANDLE)wParam) != NULL) -{ - DBGetContactSetting((HANDLE) wParam, MODULENAME, PRESERVE_NAME_KEY, &dbv); - _snprintf(contactname, sizeof(contactname), "%s", dbv.pszVal); - DBFreeVariant(&dbv); -} -else -_snprintf(contactname, sizeof(contactname), "%s", MODULENAME); - - - ppd.lchContact = (HANDLE) wParam; - // - MultiByteToWideChar(CP_UTF8, 0, contactname, -1, ppd.lptzContactName, strlen(contactname)); - // - ppd.lchIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_SITE)); - // - if ((wcslen(displaytext) == MAX_SECONDLINE) || (wcslen(displaytext) > MAX_SECONDLINE)) - _snwprintf(ppd.lptzText,MAX_SECONDLINE -1, displaytext); - else if (wcslen(displaytext) < MAX_SECONDLINE) - swprintf(ppd.lptzText, displaytext); - - // - if ((db_get_b(NULL, MODULENAME, POP_USECUSTCLRS_KEY, 0))) - { - colorBack = db_get_dw(NULL, MODULENAME, POP_BG_CLR_KEY, 0); - colorText = db_get_dw(NULL, MODULENAME, POP_TXT_CLR_KEY, 0); + TCHAR *displaytext = (TCHAR*)lParam; + if ((wcslen(displaytext) == MAX_SECONDLINE) || (wcslen(displaytext) > MAX_SECONDLINE)) + mir_snwprintf(ppd.lptzText, SIZEOF(ppd.lptzText), displaytext); + else if (wcslen(displaytext) < MAX_SECONDLINE) + mir_snwprintf(ppd.lptzText, SIZEOF(ppd.lptzText), displaytext); + + if ( db_get_b(NULL, MODULENAME, POP_USECUSTCLRS_KEY, 0)) { + ppd.colorBack = db_get_dw(NULL, MODULENAME, POP_BG_CLR_KEY, Def_color_bg); + ppd.colorBack = db_get_dw(NULL, MODULENAME, POP_TXT_CLR_KEY, Def_color_txt); } - if ((db_get_b(NULL, MODULENAME, POP_USEWINCLRS_KEY, 0))) - { - colorBack = GetSysColor(COLOR_BTNFACE); - colorText = GetSysColor(COLOR_WINDOWTEXT); + if ( db_get_b(NULL, MODULENAME, POP_USEWINCLRS_KEY, 0)) { + ppd.colorBack = GetSysColor(COLOR_BTNFACE); + ppd.colorBack = GetSysColor(COLOR_WINDOWTEXT); } - if ((db_get_b(NULL, MODULENAME, POP_USESAMECLRS_KEY, 0))) - { - colorBack = BackgoundClr; - colorText = TextClr; + if ( db_get_b(NULL, MODULENAME, POP_USESAMECLRS_KEY, 1)) { + ppd.colorBack = BackgoundClr; + ppd.colorBack = TextClr; } - ppd.colorBack = colorBack; - ppd.colorText = colorText; - // - ppd.PluginWindowProc = NULL; - // - //ppd.iSeconds = (atol("5")); - delay = db_get_dw(NULL, MODULENAME, POP_DELAY_KEY, 0); - ppd.iSeconds = delay; - // - - if (ServiceExists(MS_POPUP_ADDPOPUPW)) - CallService(MS_POPUP_ADDPOPUPW, (WPARAM) &ppd, 0); - - - - - - ////////////////////////////////////////////////////////////////////// - -// if ((db_get_b(NULL, MODULENAME, INBUILTPOP_KEY, 0))) -// PUShowMessage(displaytext, SM_NOTIFY); -// else -// { -// } + + ppd.PluginWindowProc = NULL; + ppd.iSeconds = db_get_dw(NULL, MODULENAME, POP_DELAY_KEY, 0); + + if (ServiceExists(MS_POPUP_ADDPOPUPW)) + CallService(MS_POPUP_ADDPOPUPW, (WPARAM)&ppd, 0); return 0; - } -/********************/ -/********************/ -int PopupAlert(WPARAM wParam, char *displaytext) +/*****************************************************************************/ +int PopupAlert(WPARAM wParam, LPARAM lParam) { - POPUPDATAEX ppd; - DWORD delay = 0; - DWORD colorBack, colorText; - char contactname[255]; - DBVARIANT dbv; - char delaystr[4]; - - // setup the popup - ZeroMemory(&ppd, sizeof(POPUPDATA)); - ZeroMemory(&contactname, sizeof(contactname)); + POPUPDATA ppd = { 0 }; + if (((HANDLE)wParam) != NULL) { + DBVARIANT dbv; + db_get_s((HANDLE)wParam, MODULENAME, PRESERVE_NAME_KEY, &dbv); + lstrcpynA(ppd.lptzContactName, dbv.pszVal, SIZEOF(ppd.lptzContactName)); + db_free(&dbv); + } + else lstrcpyA(ppd.lptzContactName, MODULENAME); -if( ((HANDLE)wParam) != NULL) -{ - DBGetContactSetting((HANDLE) wParam, MODULENAME, PRESERVE_NAME_KEY, &dbv); - _snprintf(contactname, sizeof(contactname), "%s", dbv.pszVal); - DBFreeVariant(&dbv); -} -else -_snprintf(contactname, sizeof(contactname), "%s", MODULENAME); - - - - ppd.lchContact = (HANDLE) wParam; - strcpy(ppd.lpzContactName, contactname); - ppd.lchIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_SITE)); - // - //sprintf(ppd.lpzText, Translate("This is a preview popup.")); - if ((strlen(displaytext) == MAX_SECONDLINE) || (strlen(displaytext) > MAX_SECONDLINE)) - _snprintf(ppd.lpzText,MAX_SECONDLINE -1, "%s", displaytext); - else if (strlen(displaytext) < MAX_SECONDLINE) - sprintf(ppd.lpzText, Translate(displaytext)); - // - if ((db_get_b(NULL, MODULENAME, POP_USECUSTCLRS_KEY, 0))) - { - colorBack = db_get_dw(NULL, MODULENAME, POP_BG_CLR_KEY, 0); - colorText = db_get_dw(NULL, MODULENAME, POP_TXT_CLR_KEY, 0); + ppd.lchContact = (HANDLE)wParam; + ppd.lchIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_SITE)); + + char *displaytext = (char*)lParam; + if ((strlen(displaytext) == MAX_SECONDLINE) || (strlen(displaytext) > MAX_SECONDLINE)) + mir_snprintf(ppd.lpzText, SIZEOF(ppd.lpzText), "%s", displaytext); + else if (strlen(displaytext) < MAX_SECONDLINE) + mir_snprintf(ppd.lpzText, SIZEOF(ppd.lpzText), Translate(displaytext)); + + if ( db_get_b(NULL, MODULENAME, POP_USECUSTCLRS_KEY, 0)) { + ppd.colorBack = db_get_dw(NULL, MODULENAME, POP_BG_CLR_KEY, Def_color_bg); + ppd.colorText = db_get_dw(NULL, MODULENAME, POP_TXT_CLR_KEY, Def_color_txt); } - if ((db_get_b(NULL, MODULENAME, POP_USEWINCLRS_KEY, 0))) - { - colorBack = GetSysColor(COLOR_BTNFACE); - colorText = GetSysColor(COLOR_WINDOWTEXT); + if ( db_get_b(NULL, MODULENAME, POP_USEWINCLRS_KEY, 0)) { + ppd.colorBack = GetSysColor(COLOR_BTNFACE); + ppd.colorText = GetSysColor(COLOR_WINDOWTEXT); } - if ((db_get_b(NULL, MODULENAME, POP_USESAMECLRS_KEY, 0))) - { - colorBack = BackgoundClr; - colorText = TextClr; + if ( db_get_b(NULL, MODULENAME, POP_USESAMECLRS_KEY, 1)) { + ppd.colorBack = BackgoundClr; + ppd.colorText = TextClr; } - ppd.colorBack = colorBack; - ppd.colorText = colorText; - // - ppd.PluginWindowProc = NULL; - // - //ppd.iSeconds = (atol("5")); - delay = db_get_dw(NULL, MODULENAME, POP_DELAY_KEY, 0); - ppd.iSeconds = delay; - // - - if (ServiceExists(MS_POPUP_ADDPOPUPEX)) - CallService(MS_POPUP_ADDPOPUPEX, (WPARAM) &ppd, 0); - - - - - ////////////////////////////////////////////////////////////////////// - -// if ((db_get_b(NULL, MODULENAME, INBUILTPOP_KEY, 0))) -// PUShowMessage(displaytext, SM_NOTIFY); -// else -// { -// } - - return 0; - -} -/********************/ - -/********************/ -int OSDAlert(WPARAM wParam, char *displaytext) -{ - char contactname[255]; - DBVARIANT dbv; - char newdisplaytext[2000]; + ppd.PluginWindowProc = NULL; + ppd.iSeconds = db_get_dw(NULL, MODULENAME, POP_DELAY_KEY, 0); - ZeroMemory(&contactname, sizeof(contactname)); - ZeroMemory(&newdisplaytext, sizeof(newdisplaytext)); + if (ServiceExists(MS_POPUP_ADDPOPUP)) + CallService(MS_POPUP_ADDPOPUP, (WPARAM)&ppd, 0); + return 0; +} -if(((HANDLE)wParam) != NULL) +/*****************************************************************************/ +int OSDAlert(WPARAM wParam, LPARAM lParam) { - DBGetContactSetting((HANDLE) wParam, MODULENAME, PRESERVE_NAME_KEY, &dbv); - _snprintf(contactname, sizeof(contactname), "%s", dbv.pszVal); - DBFreeVariant(&dbv); -} -else -_snprintf(contactname, sizeof(contactname), "%s", MODULENAME); + char contactname[255], newdisplaytext[2000]; + if (((HANDLE)wParam) != NULL) { + DBVARIANT dbv; + db_get_s((HANDLE)wParam, MODULENAME, PRESERVE_NAME_KEY, &dbv); + lstrcpynA(contactname, dbv.pszVal, SIZEOF(contactname)); + db_free(&dbv); + } + else lstrcpyA(contactname, MODULENAME); - _snprintf(newdisplaytext, sizeof(newdisplaytext), "%s: %s", contactname, Translate(displaytext)); + char *displaytext = (char*)lParam; + mir_snprintf(newdisplaytext, sizeof(newdisplaytext), "%s: %s", contactname, Translate(displaytext)); if (ServiceExists("OSD/Announce")) CallService("OSD/Announce", (WPARAM) newdisplaytext, 0); return 0; } -/********************/ -/*****************/ -void ErrorMsgs(char *contactname, char *displaytext) +/*****************************************************************************/ +int ErrorMsgs(WPARAM wParam, LPARAM lParam) { char newdisplaytext[2000]; + char *contactname = (char*)wParam, *displaytext = (char*)lParam; - if (!(db_get_b(NULL, MODULENAME, SUPPRESS_ERR_KEY, 0))) - { - if ((ServiceExists(MS_POPUP_ADDPOPUP) != 0) && ((db_get_b(NULL, MODULENAME, ERROR_POPUP_KEY, 0)))) - { + if ( !db_get_b(NULL, MODULENAME, SUPPRESS_ERR_KEY, 0)) { + if ((ServiceExists(MS_POPUP_ADDPOPUP) != 0) && ((db_get_b(NULL, MODULENAME, ERROR_POPUP_KEY, 0)))) { _snprintf(newdisplaytext, sizeof(newdisplaytext), "%s\n%s", contactname, displaytext); PUShowMessage(newdisplaytext, SM_WARNING); - } else if ((ServiceExists("OSD/Announce") != 0) && ((db_get_b(NULL, MODULENAME, ERROR_POPUP_KEY, 0)))) - { + } + else if ( ServiceExists("OSD/Announce") && db_get_b(NULL, MODULENAME, ERROR_POPUP_KEY, 0)) { _snprintf(newdisplaytext, sizeof(newdisplaytext), "%s: %s", contactname, Translate(displaytext)); CallService("OSD/Announce", (WPARAM) newdisplaytext, 0); - } else if (ServiceExists(MS_CLIST_SYSTRAY_NOTIFY)) - { + } + else if (ServiceExists(MS_CLIST_SYSTRAY_NOTIFY)) { MIRANDASYSTRAYNOTIFY webview_tip = {0}; - webview_tip.cbSize = sizeof(MIRANDASYSTRAYNOTIFY); webview_tip.szProto = NULL; webview_tip.szInfoTitle = contactname; @@ -378,115 +241,73 @@ void ErrorMsgs(char *contactname, char *displaytext) webview_tip.dwInfoFlags = NIIF_ERROR; webview_tip.uTimeout = 15000; CallService(MS_CLIST_SYSTRAY_NOTIFY, 0, (LPARAM) &webview_tip); - } // //////////// - + } } + return 0; } -/********************/ -/***************************/ -void SaveToFile(char *AContact, char *truncated) +/*****************************************************************************/ +void SaveToFile(HANDLE hContact, char *truncated) { - FILE *pfile; - char*mode; - DBVARIANT dbv; - char url[300]; - char contactname[100]; - - ZeroMemory(&contactname, sizeof(contactname)); - DBGetContactSetting(AContact, "CList", "MyHandle", &dbv); - _snprintf(contactname, sizeof(contactname), "%s", dbv.pszVal); - DBFreeVariant(&dbv); - - if (!(db_get_b(AContact, MODULENAME, APPEND_KEY, 0))) + char *mode; + if (!db_get_b(hContact, MODULENAME, APPEND_KEY, 0)) mode = "w"; else mode = "a"; - url[0] = '\0'; - - DBGetContactSetting(AContact, MODULENAME, URL_KEY, &dbv); + char url[300]; url[0] = '\0'; + DBVARIANT dbv; + db_get_s(hContact, MODULENAME, URL_KEY, &dbv); _snprintf(url, sizeof(url), "%s", dbv.pszVal); + db_free(&dbv); - DBFreeVariant(&dbv); - - DBGetContactSetting(AContact, MODULENAME, FILE_KEY, &dbv); - if ((pfile = fopen(dbv.pszVal, mode)) == NULL) - { - WErrorPopup(contactname, Translate("Cannot write to file")); - } else - { -// - - char tstr[128]; - char timestring[128]; - char timeprefix[32]; - char temptime1[32]; - char temptime2[32]; - char temptime[128]; - time_t ftime; - struct tm *nTime; - - ZeroMemory(&tstr, sizeof(tstr)); - ZeroMemory(&temptime, sizeof(temptime)); - ZeroMemory(&timeprefix, sizeof(timeprefix)); - ZeroMemory(&temptime1, sizeof(temptime1)); - ZeroMemory(&temptime2, sizeof(temptime2)); - ZeroMemory(×tring, sizeof(timestring)); + db_get_s(hContact, MODULENAME, FILE_KEY, &dbv); + FILE *pfile = fopen(dbv.pszVal, mode); + if (pfile == NULL) + WErrorPopup(hContact, TranslateT("Cannot write to file")); + else { + char timestring[128], timeprefix[32]; + char temptime1[32], temptime2[32]; setlocale(LC_ALL, ""); - ftime = time(NULL); - nTime = localtime(&ftime); + time_t ftime = time(NULL); + struct tm *nTime = localtime(&ftime); - _snprintf(timeprefix, sizeof(timeprefix), " %s ", (Translate("Last updated on"))); + mir_snprintf(timeprefix, sizeof(timeprefix), " %s ", Translate("Last updated on")); strftime(temptime1, 32, " %a, %b %d, %Y ", nTime); strftime(temptime2, 32, " %I:%M %p.", nTime); - _snprintf(timestring, sizeof(timestring), "(%s)%s\n%s,%s\n", MODULENAME, url, temptime1, temptime2); + mir_snprintf(timestring, sizeof(timestring), "(%s)%s\n%s,%s\n", MODULENAME, url, temptime1, temptime2); fputs(timestring, pfile); -// - fwrite(truncated, strlen(truncated), 1, pfile); - fputs("\n\n", pfile); - fclose(pfile); } - DBFreeVariant(&dbv); + db_free(&dbv); } -/***************************/ - -/**************************/ -int ProcessAlerts(HANDLE AContact, char *truncated, char *tstr, char *contactname, int notpresent) +/*****************************************************************************/ +int ProcessAlerts(HANDLE hContact, char *truncated, char *tstr, char *contactname, int notpresent) { - char alertstring[255]; - char displaystring[300]; + TCHAR displaystring[300]; FILE *pcachefile; - char cachepath[MAX_PATH]; - char cachedirectorypath[MAX_PATH]; - char newcachepath[MAX_PATH + 50]; - char*cacheend; DBVARIANT tdbv; int wasAlert = 0; - // int statalertpos = 0, disalertpos = 0, statalertposend = 0; char*alertpos; char Alerttempstring[300], Alerttempstring2[300]; static char cachecompare[MAXSIZE1]; static char raw[MAXSIZE1]; - // char tempraw[MAXSIZE1]; - char statustext[200]; int alertIndex = 0; int eventIndex = 0; -//MessageBox(NULL, contactname, "pro-contname2", MB_OK); + //MessageBox(NULL, contactname, "pro-contname2", MB_OK); ZeroMemory(&tempraw, sizeof(tempraw)); ZeroMemory(&raw, sizeof(raw)); @@ -494,61 +315,33 @@ int ProcessAlerts(HANDLE AContact, char *truncated, char *tstr, char *contactnam strncpy(tempraw, truncated, sizeof(tempraw)); ZeroMemory(&alertstring, sizeof(alertstring)); - ZeroMemory(&cachepath, sizeof(cachepath)); - ZeroMemory(&cachedirectorypath, sizeof(cachedirectorypath)); - ZeroMemory(&newcachepath, sizeof(newcachepath)); ZeroMemory(&Alerttempstring, sizeof(Alerttempstring)); ZeroMemory(&Alerttempstring2, sizeof(Alerttempstring2)); ZeroMemory(&cachecompare, sizeof(cachecompare)); - // - // alerts - if ((db_get_b(AContact, MODULENAME, ENABLE_ALERTS_KEY, 0))) // ALERTS - // - // ARE - // ENABLED - - { - - if (!DBGetContactSetting(AContact, MODULENAME, ALRT_INDEX_KEY, &tdbv)) // TYPES - // - // OF - // ALERTS - - { - alertIndex = db_get_b(AContact, MODULENAME, ALRT_INDEX_KEY, 0); - DBFreeVariant(&tdbv); - - if (!DBGetContactSetting(AContact, MODULENAME, EVNT_INDEX_KEY, &tdbv)) - { - - eventIndex = db_get_b(AContact, MODULENAME, EVNT_INDEX_KEY, 0); - DBFreeVariant(&tdbv); + if ( db_get_b(hContact, MODULENAME, ENABLE_ALERTS_KEY, 0)) { // ALERTS + if (!db_get_s(hContact, MODULENAME, ALRT_INDEX_KEY, &tdbv)) { // TYPES + alertIndex = db_get_b(hContact, MODULENAME, ALRT_INDEX_KEY, 0); + db_free(&tdbv); + + if (!db_get_s(hContact, MODULENAME, EVNT_INDEX_KEY, &tdbv)) { + eventIndex = db_get_b(hContact, MODULENAME, EVNT_INDEX_KEY, 0); + db_free(&tdbv); } - if ((notpresent)) - { - if (alertIndex == 0) // Popup - - { + if ((notpresent)) { + if (alertIndex == 0) { // Popup Sleep(1000); - sprintf(displaystring, "%s", (Translate("Start/end strings not found or strings not set."))); - WAlertPopup((WPARAM) AContact, displaystring); + WAlertPopup(hContact, TranslateT("Start/end strings not found or strings not set.")); // contactlist name// - if ((db_get_b(AContact, MODULENAME, APND_DATE_NAME_KEY, 0))) - db_set_s(AContact, "CList", "MyHandle", tstr); - } // - - else if (alertIndex == 1) // log to file - - { - if (!DBGetContactSetting(AContact, MODULENAME, FILE_KEY, &tdbv)) - { + if ( db_get_b(hContact, MODULENAME, APND_DATE_NAME_KEY, 0)) + db_set_s(hContact, "CList", "MyHandle", tstr); + } + else if (alertIndex == 1) { // log to file + if ( !db_get_s(hContact, MODULENAME, FILE_KEY, &tdbv)) { int AmountWspcRem = 0; - if (!(db_get_b(AContact, MODULENAME, SAVE_AS_RAW_KEY, 0))) - { - // + if ( !db_get_b(hContact, MODULENAME, SAVE_AS_RAW_KEY, 0)) { CodetoSymbol(tempraw); Sleep(100); // avoid 100% CPU @@ -564,89 +357,63 @@ int ProcessAlerts(HANDLE AContact, char *truncated, char *tstr, char *contactnam EraseSymbols(tempraw); Sleep(100); // avoid 100% CPU - AmountWspcRem = db_get_b(AContact, MODULENAME, RWSPACE_KEY, 0); + AmountWspcRem = db_get_b(hContact, MODULENAME, RWSPACE_KEY, 0); RemoveInvis(tempraw, AmountWspcRem); Sleep(100); // avoid 100% CPU Removewhitespace(tempraw); } - // - SaveToFile(AContact, tempraw); - DBFreeVariant(&tdbv); - // contactlist name// - if ((db_get_b(AContact, MODULENAME, APND_DATE_NAME_KEY, 0))) - db_set_s(AContact, "CList", "MyHandle", tstr); - } - } // - - else if (alertIndex == 3) // osd - { - WAlertOSD((WPARAM) AContact, Translate("Alert start/end strings not found or strings not set.")); - // contactlist name// - if ((db_get_b(AContact, MODULENAME, APND_DATE_NAME_KEY, 0))) - db_set_s(AContact, "CList", "MyHandle", tstr); - } else if (eventIndex == 2) // window + SaveToFile(hContact, tempraw); + db_free(&tdbv); - { - WDisplayDataAlert(AContact); - // contactlist name// - if ((db_get_b(AContact, MODULENAME, APND_DATE_NAME_KEY, 0))) - db_set_s(AContact, "CList", "MyHandle", tstr); + if ( db_get_b(hContact, MODULENAME, APND_DATE_NAME_KEY, 0)) + db_set_s(hContact, "CList", "MyHandle", tstr); + } + } + else if (alertIndex == 3) { + WAlertOSD(hContact, TranslateT("Alert start/end strings not found or strings not set.")); + if ( db_get_b(hContact, MODULENAME, APND_DATE_NAME_KEY, 0)) + db_set_s(hContact, "CList", "MyHandle", tstr); + } + else if (eventIndex == 2) { + WDisplayDataAlert(hContact); - HWND hwndDlg = (WindowList_Find(hWindowList, AContact)); + if ( db_get_b(hContact, MODULENAME, APND_DATE_NAME_KEY, 0)) + db_set_s(hContact, "CList", "MyHandle", tstr); - ZeroMemory(&statustext, sizeof(statustext)); - _snprintf(statustext, sizeof(statustext), " %s", Translate("Start/end strings not found or strings not set.")); - SetDlgItemText(hwndDlg, IDC_STATUSBAR, statustext); - } // + HWND hwndDlg = (WindowList_Find(hWindowList, hContact)); - else - MessageBox(NULL, Translate("Start/end strings not found or strings not set."), MODULENAME, MB_OK); + SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Start/end strings not found or strings not set.")); + } + else MessageBox(NULL, TranslateT("Start/end strings not found or strings not set."), _T(MODULENAME), MB_OK); } - if (eventIndex == 0) // string present - - { - if (!DBGetContactSetting(AContact, MODULENAME, ALERT_STRING_KEY, &tdbv)) - { + if (eventIndex == 0) { // string present + if ( !db_get_s(hContact, MODULENAME, ALERT_STRING_KEY, &tdbv)) { strncpy(alertstring, tdbv.pszVal, sizeof(alertstring)); - DBFreeVariant(&tdbv); - - if ((strstr(tempraw, alertstring)) != 0) - { // // ENDALERT EVENT:CHECK FOR STRING + db_free(&tdbv); + if ((strstr(tempraw, alertstring)) != 0) { // // ENDALERT EVENT:CHECK FOR STRING // there was an alert wasAlert = 1; // play sound? SkinPlaySound("webviewalert"); // - if ((!notpresent)) - { - - if (alertIndex == 0) // popup - - { - sprintf(displaystring, "%s \"%s\" %s.", (Translate("The string")), alertstring, (Translate("has been found on the web page"))); - WAlertPopup((WPARAM) AContact, displaystring); + if ((!notpresent)) { + if (alertIndex == 0) { // popup + mir_sntprintf(displaystring, SIZEOF(displaystring), _T("%s \"%S\" %s."), Translate("The string"), alertstring, Translate("has been found on the web page")); + WAlertPopup(hContact, displaystring); // contactlist name// - if ((db_get_b(AContact, MODULENAME, APND_DATE_NAME_KEY, 0))) - db_set_s(AContact, "CList", "MyHandle", tstr); + if ( db_get_b(hContact, MODULENAME, APND_DATE_NAME_KEY, 0)) + db_set_s(hContact, "CList", "MyHandle", tstr); } // - - else if (alertIndex == 1) // LOG - - { - if (!DBGetContactSetting(AContact, MODULENAME, FILE_KEY, &tdbv)) - { - + else if (alertIndex == 1) { + if (!db_get_s(hContact, MODULENAME, FILE_KEY, &tdbv)) { int AmountWspcRem = 0; - - if (!(db_get_b(AContact, MODULENAME, SAVE_AS_RAW_KEY, 0))) - { - // + if ( !db_get_b(hContact, MODULENAME, SAVE_AS_RAW_KEY, 0)) { CodetoSymbol(tempraw); Sleep(100); // avoid 100% CPU @@ -662,130 +429,96 @@ int ProcessAlerts(HANDLE AContact, char *truncated, char *tstr, char *contactnam EraseSymbols(tempraw); Sleep(100); // avoid 100% CPU - AmountWspcRem = db_get_b(AContact, MODULENAME, RWSPACE_KEY, 0); + AmountWspcRem = db_get_b(hContact, MODULENAME, RWSPACE_KEY, 0); RemoveInvis(tempraw, AmountWspcRem); Sleep(100); // avoid 100% CPU Removewhitespace(tempraw); - // } - SaveToFile(AContact, tempraw); - DBFreeVariant(&tdbv); - // contactlist name// - if ((db_get_b(AContact, MODULENAME, APND_DATE_NAME_KEY, 0))) - db_set_s(AContact, "CList", "MyHandle", tstr); - } - } // - - else if (alertIndex == 3) // osd + SaveToFile(hContact, tempraw); + db_free(&tdbv); - { - sprintf(displaystring, "%s \"%s\" %s.", (Translate("The string")), alertstring, (Translate("has been found on the web page"))); - WAlertOSD((WPARAM) AContact, displaystring); + if ( db_get_b(hContact, MODULENAME, APND_DATE_NAME_KEY, 0)) + db_set_s(hContact, "CList", "MyHandle", tstr); + } + } + else if (alertIndex == 3) { + mir_sntprintf(displaystring, SIZEOF(displaystring), _T("%s \"%s\" %s."), TranslateT("The string"), alertstring, TranslateT("has been found on the web page")); + WAlertOSD(hContact, displaystring); // contactlist name// - if ((db_get_b(AContact, MODULENAME, APND_DATE_NAME_KEY, 0))) - db_set_s(AContact, "CList", "MyHandle", tstr); - } else if (alertIndex == 2) // window - - { - WDisplayDataAlert(AContact); + if ( db_get_b(hContact, MODULENAME, APND_DATE_NAME_KEY, 0)) + db_set_s(hContact, "CList", "MyHandle", tstr); + } + else if (alertIndex == 2) { + WDisplayDataAlert(hContact); // contactlist name// - if ((db_get_b(AContact, MODULENAME, APND_DATE_NAME_KEY, 0))) - db_set_s(AContact, "CList", "MyHandle", tstr); - - HWND hwndDlg = (WindowList_Find(hWindowList, AContact)); + if ( db_get_b(hContact, MODULENAME, APND_DATE_NAME_KEY, 0)) + db_set_s(hContact, "CList", "MyHandle", tstr); - ZeroMemory(&statustext, sizeof(statustext)); - _snprintf(statustext, sizeof(statustext), " %s", Translate("Download successful; about to process data...")); - SetDlgItemText(hwndDlg, IDC_STATUSBAR, statustext); - } // - - else - MessageBox(NULL, Translate("Unknown Alert Type."), MODULENAME, MB_OK); + HWND hwndDlg = WindowList_Find(hWindowList, hContact); + SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Download successful; about to process data...")); + } + else MessageBox(NULL, TranslateT("Unknown Alert Type."), _T(MODULENAME), MB_OK); } - // - } // // END ALERT EVENT:CHECK FOR STRING - - } // alert string - - } else if (eventIndex == 1) // webpage changed - - { - + } + } + } + else if (eventIndex == 1) { // webpage changed // TEST GET NAME FOR CACHE + TCHAR cachepath[MAX_PATH], cachedirectorypath[MAX_PATH], newcachepath[MAX_PATH + 50]; GetModuleFileName(hInst, cachepath, sizeof(cachepath)); - cacheend = strrchr(cachepath, '\\'); + TCHAR *cacheend = _tcsrchr(cachepath, '\\'); cacheend++; *cacheend = '\0'; - _snprintf(cachedirectorypath, sizeof(cachedirectorypath), "%s%s%s", cachepath, MODULENAME, "cache\\"); + mir_sntprintf(cachedirectorypath, SIZEOF(cachedirectorypath), _T("%s%S%S"), cachepath, MODULENAME, "cache\\"); CreateDirectory(cachedirectorypath, NULL); - _snprintf(newcachepath, sizeof(newcachepath), "%s%s%s%s%s", cachepath, MODULENAME, "cache\\", contactname, ".txt"); + mir_sntprintf(newcachepath, SIZEOF(newcachepath), _T("%s%S%S%S%S"), cachepath, MODULENAME, "cache\\", contactname, ".txt"); // file exists? - if ((_access(newcachepath, 0)) != -1) - { - if ((pcachefile = fopen(newcachepath, "r")) == NULL) - { - WErrorPopup(contactname, Translate("Cannot read from file")); - } else - { + if ( _taccess(newcachepath, 0) != -1) { + if ((pcachefile = _tfopen(newcachepath, _T("r"))) == NULL) + WErrorPopup(contactname, TranslateT("Cannot read from file")); + else { ZeroMemory(&cachecompare, sizeof(cachecompare)); fread(cachecompare, sizeof(cachecompare), 1, pcachefile); fclose(pcachefile); } } // write to cache - if ((pcachefile = fopen(newcachepath, "w")) == NULL) - { - WErrorPopup(contactname, Translate("Cannot write to file 1")); - MessageBox(NULL, newcachepath, "1", MB_OK); - } else - { - + if ((pcachefile = _tfopen(newcachepath, _T("w"))) == NULL) + WErrorPopup(contactname, TranslateT("Cannot write to file 1")); + else { fwrite(tempraw, strlen(tempraw), 1, pcachefile); //smaller cache fclose(pcachefile); - db_set_s(AContact, MODULENAME, CACHE_FILE_KEY, newcachepath); + db_set_ts(hContact, MODULENAME, CACHE_FILE_KEY, newcachepath); } // end write to cache - if (strncmp(tempraw, cachecompare, (strlen(tempraw))) != 0) //lets try this instead - { - + if (strncmp(tempraw, cachecompare, strlen(tempraw)) != 0) { //lets try this instead // play sound? SkinPlaySound("webviewalert"); // there was an alert wasAlert = 1; - if ((!notpresent)) - { - - if (alertIndex == 0) // popup - - { - WAlertPopup((WPARAM) AContact, Translate("The Web Page Has Changed.")); + if (!notpresent) { + if (alertIndex == 0) { // popup + WAlertPopup(hContact, TranslateT("The Web Page Has Changed.")); // contactlist name// - if ((db_get_b(AContact, MODULENAME, APND_DATE_NAME_KEY, 0))) - db_set_s(AContact, "CList", "MyHandle", tstr); - } // - - else if (alertIndex == 3) // osd - - { - WAlertOSD((WPARAM) AContact, Translate("The Web Page Has Changed.")); + if ( db_get_b(hContact, MODULENAME, APND_DATE_NAME_KEY, 0)) + db_set_s(hContact, "CList", "MyHandle", tstr); + } + else if (alertIndex == 3) { // osd + WAlertOSD(hContact, TranslateT("The Web Page Has Changed.")); // contactlist name// - if ((db_get_b(AContact, MODULENAME, APND_DATE_NAME_KEY, 0))) - db_set_s(AContact, "CList", "MyHandle", tstr); - } else if (alertIndex == 1) // log - - { - if (!DBGetContactSetting(AContact, MODULENAME, FILE_KEY, &tdbv)) - { + if ( db_get_b(hContact, MODULENAME, APND_DATE_NAME_KEY, 0)) + db_set_s(hContact, "CList", "MyHandle", tstr); + } + else if (alertIndex == 1) { // log + if (!db_get_s(hContact, MODULENAME, FILE_KEY, &tdbv)) { int AmountWspcRem = 0; - if (!(db_get_b(AContact, MODULENAME, SAVE_AS_RAW_KEY, 0))) - { - // + if ( !db_get_b(hContact, MODULENAME, SAVE_AS_RAW_KEY, 0)) { CodetoSymbol(tempraw); Sleep(100); // avoid 100% CPU @@ -801,131 +534,96 @@ int ProcessAlerts(HANDLE AContact, char *truncated, char *tstr, char *contactnam EraseSymbols(tempraw); Sleep(100); // avoid 100% CPU - AmountWspcRem = db_get_b(AContact, MODULENAME, RWSPACE_KEY, 0); + AmountWspcRem = db_get_b(hContact, MODULENAME, RWSPACE_KEY, 0); RemoveInvis(tempraw, AmountWspcRem); Sleep(100); // avoid 100% CPU Removewhitespace(tempraw); } - // - SaveToFile(AContact, tempraw); - DBFreeVariant(&tdbv); + + SaveToFile(hContact, tempraw); + db_free(&tdbv); // contactlist name// - if ((db_get_b(AContact, MODULENAME, APND_DATE_NAME_KEY, 0))) - db_set_s(AContact, "CList", "MyHandle", tstr); + if ( db_get_b(hContact, MODULENAME, APND_DATE_NAME_KEY, 0)) + db_set_s(hContact, "CList", "MyHandle", tstr); } - } // - - else if (alertIndex == 2) // window - - { - WDisplayDataAlert(AContact); + } + else if (alertIndex == 2) { // window + WDisplayDataAlert(hContact); // contactlist name// - if ((db_get_b(AContact, MODULENAME, APND_DATE_NAME_KEY, 0))) - db_set_s(AContact, "CList", "MyHandle", tstr); - } // - - else - MessageBox(NULL, Translate("Unknown Alert Type."), MODULENAME, MB_OK); + if ( db_get_b(hContact, MODULENAME, APND_DATE_NAME_KEY, 0)) + db_set_s(hContact, "CList", "MyHandle", tstr); + } + else MessageBox(NULL, TranslateT("Unknown Alert Type."), _T(MODULENAME), MB_OK); } } } -// - if (eventIndex == 2) // part of webpage changed + if (eventIndex == 2) { // part of webpage changed + db_get_s(hContact, MODULENAME, ALRT_S_STRING_KEY, &tdbv); + mir_snprintf(Alerttempstring, sizeof(Alerttempstring), "%s", tdbv.pszVal); + db_free(&tdbv); - { - - // ////////// - // - DBGetContactSetting(AContact, MODULENAME, ALRT_S_STRING_KEY, &tdbv); - _snprintf(Alerttempstring, sizeof(Alerttempstring), "%s", tdbv.pszVal); - DBFreeVariant(&tdbv); - // - DBGetContactSetting(AContact, MODULENAME, ALRT_E_STRING_KEY, &tdbv); - _snprintf(Alerttempstring2, sizeof(Alerttempstring2), "%s", tdbv.pszVal); - DBFreeVariant(&tdbv); - // + db_get_s(hContact, MODULENAME, ALRT_E_STRING_KEY, &tdbv); + mir_snprintf(Alerttempstring2, sizeof(Alerttempstring2), "%s", tdbv.pszVal); + db_free(&tdbv); // putting data into string - if (((strstr(tempraw, Alerttempstring)) != 0) && ((strstr(tempraw, Alerttempstring2)) != 0)) - { + if (((strstr(tempraw, Alerttempstring)) != 0) && ((strstr(tempraw, Alerttempstring2)) != 0)) { -//start string + //start string alertpos = strstr(tempraw, Alerttempstring); statalertpos = alertpos - tempraw; -// + ZeroMemory(&alertpos, sizeof(alertpos)); -//end string + //end string alertpos = strstr(tempraw, Alerttempstring2); - statalertposend = alertpos - tempraw + strlen(Alerttempstring2); -// - if (statalertpos > statalertposend) - { + statalertposend = alertpos - tempraw + (int)strlen(Alerttempstring2); + + if (statalertpos > statalertposend) { memset(&tempraw, ' ', statalertpos); ZeroMemory(&alertpos, sizeof(alertpos)); alertpos = strstr(tempraw, Alerttempstring2); - statalertposend = alertpos - tempraw + strlen(Alerttempstring2); + statalertposend = alertpos - tempraw + (int)strlen(Alerttempstring2); } - if (statalertpos < statalertposend) - { + + if (statalertpos < statalertposend) { ZeroMemory(&raw, sizeof(raw)); -//start string + //start string alertpos = strstr(tempraw, Alerttempstring); statalertpos = alertpos - tempraw; -// -//end string + //end string alertpos = strstr(tempraw, Alerttempstring2); - statalertposend = alertpos - tempraw + strlen(Alerttempstring2); -// + statalertposend = alertpos - tempraw + (int)strlen(Alerttempstring2); - if (statalertpos > statalertposend) - { + if (statalertpos > statalertposend) { memset(&tempraw, ' ', statalertpos); ZeroMemory(&alertpos, sizeof(alertpos)); alertpos = strstr(tempraw, Alerttempstring2); - statalertposend = alertpos - tempraw + strlen(Alerttempstring2); + statalertposend = alertpos - tempraw + (int)strlen(Alerttempstring2); } disalertpos = 0; -//write selected data to string + //write selected data to string strncpy(raw, &tempraw[statalertpos], (statalertposend - statalertpos)); raw[(statalertposend - statalertpos)] = '\0'; - } } // end putting data into string - - else // start and/or end string not present - - { - - if (alertIndex == 0) // popup - - { + else { // start and/or end string not present + if (alertIndex == 0) { // popup Sleep(1000); - sprintf(displaystring, "%s", (Translate("Alert start/end strings not found or strings not set."))); - WAlertPopup((WPARAM) AContact, displaystring); + WAlertPopup(hContact, TranslateT("Alert start/end strings not found or strings not set.")); // contactlist name// - if ((db_get_b(AContact, MODULENAME, APND_DATE_NAME_KEY, 0))) - db_set_s(AContact, "CList", "MyHandle", tstr); - } // - - else if (alertIndex == 1) // LOG - - { - if (!(notpresent)) // dont log to file twice if both types - // of start/end strings not present - - { - if (!DBGetContactSetting(AContact, MODULENAME, FILE_KEY, &tdbv)) - { + if ( db_get_b(hContact, MODULENAME, APND_DATE_NAME_KEY, 0)) + db_set_s(hContact, "CList", "MyHandle", tstr); + } + else if (alertIndex == 1) { // LOG + if (!notpresent) { // dont log to file twice if both types of start/end strings not present + if ( !db_get_s(hContact, MODULENAME, FILE_KEY, &tdbv)) { int AmountWspcRem = 0; - - if (!(db_get_b(AContact, MODULENAME, SAVE_AS_RAW_KEY, 0))) - { - // + if ( !db_get_b(hContact, MODULENAME, SAVE_AS_RAW_KEY, 0)) { CodetoSymbol(tempraw); Sleep(100); // avoid 100% CPU @@ -941,124 +639,95 @@ int ProcessAlerts(HANDLE AContact, char *truncated, char *tstr, char *contactnam EraseSymbols(tempraw); Sleep(100); // avoid 100% CPU - AmountWspcRem = db_get_b(AContact, MODULENAME, RWSPACE_KEY, 0); + AmountWspcRem = db_get_b(hContact, MODULENAME, RWSPACE_KEY, 0); RemoveInvis(tempraw, AmountWspcRem); Sleep(100); // avoid 100% CPU Removewhitespace(tempraw); } - // - SaveToFile(AContact, tempraw); - DBFreeVariant(&tdbv); - // contactlist name// - if ((db_get_b(AContact, MODULENAME, APND_DATE_NAME_KEY, 0))) - db_set_s(AContact, "CList", "MyHandle", tstr); + + SaveToFile(hContact, tempraw); + db_free(&tdbv); + // contactlist name + if ( db_get_b(hContact, MODULENAME, APND_DATE_NAME_KEY, 0)) + db_set_s(hContact, "CList", "MyHandle", tstr); } } - } // - - else if (alertIndex == 3) // osd - - { - WAlertOSD((WPARAM) AContact, Translate("Alert start/end strings not found or strings not set.")); + } + else if (alertIndex == 3) { // osd + WAlertOSD(hContact, TranslateT("Alert start/end strings not found or strings not set.")); // contactlist name// - if ((db_get_b(AContact, MODULENAME, APND_DATE_NAME_KEY, 0))) - db_set_s(AContact, "CList", "MyHandle", tstr); - } else if (alertIndex == 2) // window - - { - WDisplayDataAlert(AContact); + if ( db_get_b(hContact, MODULENAME, APND_DATE_NAME_KEY, 0)) + db_set_s(hContact, "CList", "MyHandle", tstr); + } + else if (alertIndex == 2) { // window + WDisplayDataAlert(hContact); // contactlist name// - if ((db_get_b(AContact, MODULENAME, APND_DATE_NAME_KEY, 0))) - db_set_s(AContact, "CList", "MyHandle", tstr); - - HWND hwndDlg = (WindowList_Find(hWindowList, AContact)); + if ( db_get_b(hContact, MODULENAME, APND_DATE_NAME_KEY, 0)) + db_set_s(hContact, "CList", "MyHandle", tstr); - ZeroMemory(&statustext, sizeof(statustext)); - _snprintf(statustext, sizeof(statustext), " %s", Translate("Alert start/end strings not found or strings not set.")); - SetDlgItemText(hwndDlg, IDC_STATUSBAR, statustext); - } // + HWND hwndDlg = (WindowList_Find(hWindowList, hContact)); + SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Alert start/end strings not found or strings not set.")); + } + else MessageBox(NULL, TranslateT("Alert start/end strings not found or strings not set."), _T(MODULENAME), MB_OK); - else - MessageBox(NULL, Translate("Alert start/end strings not found or strings not set."), MODULENAME, MB_OK); - db_set_w(AContact, MODULENAME, "Status", ID_STATUS_AWAY); + db_set_w(hContact, MODULENAME, "Status", ID_STATUS_AWAY); } -/////////////// - - if (((strstr(tempraw, Alerttempstring)) != 0) && ((strstr(tempraw, Alerttempstring2)) != 0)) - { - + /////////////// + if (((strstr(tempraw, Alerttempstring)) != 0) && ((strstr(tempraw, Alerttempstring2)) != 0)) { // TEST GET NAME FOR CACHE - GetModuleFileName(hInst, cachepath, sizeof(cachepath)); - cacheend = strrchr(cachepath, '\\'); + TCHAR cachepath[MAX_PATH], cachedirectorypath[MAX_PATH], newcachepath[MAX_PATH + 50]; + GetModuleFileName(hInst, cachepath, SIZEOF(cachepath)); + TCHAR *cacheend = _tcsrchr(cachepath, '\\'); cacheend++; *cacheend = '\0'; - _snprintf(cachedirectorypath, sizeof(cachedirectorypath), "%s%s%s", cachepath, MODULENAME, "cache\\"); + mir_sntprintf(cachedirectorypath, SIZEOF(cachedirectorypath), _T("%s%S%S"), cachepath, MODULENAME, "cache\\"); CreateDirectory(cachedirectorypath, NULL); - _snprintf(newcachepath, sizeof(newcachepath), "%s%s%s%s%s", cachepath, MODULENAME, "cache\\", contactname, ".txt"); + mir_sntprintf(newcachepath, SIZEOF(newcachepath), _T("%s%S%S%S%S"), cachepath, MODULENAME, "cache\\", contactname, ".txt"); // file exists? - if ((_access(newcachepath, 0)) != -1) - { - if ((pcachefile = fopen(newcachepath, "r")) == NULL) - { - WErrorPopup(contactname, Translate("Cannot read from file")); - } else - { + if ( _taccess(newcachepath, 0) != -1) { + if ((pcachefile = _tfopen(newcachepath, _T("r"))) == NULL) + WErrorPopup(contactname, TranslateT("Cannot read from file")); + else { ZeroMemory(&cachecompare, sizeof(cachecompare)); fread(cachecompare, sizeof(cachecompare), 1, pcachefile); fclose(pcachefile); } } // write to cache - if ((pcachefile = fopen(newcachepath, "w")) == NULL) - { - WErrorPopup(contactname, Translate("Cannot write to file 2")); - } else - { - fwrite(raw, strlen(raw), 1, pcachefile); //smaller cache - db_set_s(AContact, MODULENAME, CACHE_FILE_KEY, newcachepath); + if ((pcachefile = _tfopen(newcachepath, _T("w"))) == NULL) + WErrorPopup(contactname, TranslateT("Cannot write to file 2")); + else { + fwrite(raw, strlen(raw), 1, pcachefile); //smaller cache + db_set_ts(hContact, MODULENAME, CACHE_FILE_KEY, newcachepath); fclose(pcachefile); } // end write to cache - if (strncmp(raw, cachecompare, (strlen(raw))) != 0) //lets try this instead - { - + if (strncmp(raw, cachecompare, (strlen(raw))) != 0) { //lets try this instead // play sound? SkinPlaySound("webviewalert"); // there was an alert wasAlert = 1; - if ((!notpresent)) - { - - if (alertIndex == 0) // popup - - { - WAlertPopup((WPARAM) AContact, Translate("Specific Part Of The Web Page Has Changed.")); + if (!notpresent) { + if (alertIndex == 0) { // popup + WAlertPopup(hContact, TranslateT("Specific Part Of The Web Page Has Changed.")); // contactlist name// - if ((db_get_b(AContact, MODULENAME, APND_DATE_NAME_KEY, 0))) - db_set_s(AContact, "CList", "MyHandle", tstr); - } // - - else if (alertIndex == 3) // osd - - { - WAlertOSD((WPARAM) AContact, Translate("Specific Part Of The Web Page Has Changed.")); + if ( db_get_b(hContact, MODULENAME, APND_DATE_NAME_KEY, 0)) + db_set_s(hContact, "CList", "MyHandle", tstr); + } + else if (alertIndex == 3) { // osd + WAlertOSD(hContact, TranslateT("Specific Part Of The Web Page Has Changed.")); // contactlist name// - if ((db_get_b(AContact, MODULENAME, APND_DATE_NAME_KEY, 0))) - db_set_s(AContact, "CList", "MyHandle", tstr); - } else if (alertIndex == 1) // log to file - - { - if (!DBGetContactSetting(AContact, MODULENAME, FILE_KEY, &tdbv)) - { + if ( db_get_b(hContact, MODULENAME, APND_DATE_NAME_KEY, 0)) + db_set_s(hContact, "CList", "MyHandle", tstr); + } + else if (alertIndex == 1) { // log to file + if (!db_get_s(hContact, MODULENAME, FILE_KEY, &tdbv)) { int AmountWspcRem = 0; - - if (!(db_get_b(AContact, MODULENAME, SAVE_AS_RAW_KEY, 0))) - { - // + if ( !db_get_b(hContact, MODULENAME, SAVE_AS_RAW_KEY, 0)) { CodetoSymbol(tempraw); Sleep(100); // avoid 100% CPU @@ -1074,233 +743,149 @@ int ProcessAlerts(HANDLE AContact, char *truncated, char *tstr, char *contactnam EraseSymbols(tempraw); Sleep(100); // avoid 100% CPU - AmountWspcRem = db_get_b(AContact, MODULENAME, RWSPACE_KEY, 0); + AmountWspcRem = db_get_b(hContact, MODULENAME, RWSPACE_KEY, 0); RemoveInvis(tempraw, AmountWspcRem); Sleep(100); // avoid 100% CPU Removewhitespace(tempraw); } - // - SaveToFile(AContact, tempraw); - DBFreeVariant(&tdbv); - // contactlist name// - if ((db_get_b(AContact, MODULENAME, APND_DATE_NAME_KEY, 0))) - db_set_s(AContact, "CList", "MyHandle", tstr); - } - } // - else if (alertIndex == 2) // window - - { - WDisplayDataAlert(AContact); + SaveToFile(hContact, tempraw); + db_free(&tdbv); + // contactlist name + if ( db_get_b(hContact, MODULENAME, APND_DATE_NAME_KEY, 0)) + db_set_s(hContact, "CList", "MyHandle", tstr); + } + } + else if (alertIndex == 2) { // window + WDisplayDataAlert(hContact); // contactlist name// - if ((db_get_b(AContact, MODULENAME, APND_DATE_NAME_KEY, 0))) - db_set_s(AContact, "CList", "MyHandle", tstr); - } // - - else - MessageBox(NULL, Translate("Unknown Alert Type."), MODULENAME, MB_OK); + if ( db_get_b(hContact, MODULENAME, APND_DATE_NAME_KEY, 0)) + db_set_s(hContact, "CList", "MyHandle", tstr); + } + else MessageBox(NULL, TranslateT("Unknown Alert Type."), _T(MODULENAME), MB_OK); } } } } -// } // alert type - } // end alerts -//if always log to file option is enabled do this - if (wasAlert) - { - if (alertIndex != 1) // dont do for log to file alert - - { - if ((db_get_b(AContact, MODULENAME, ALWAYS_LOG_KEY, 0))) - { - if (!DBGetContactSetting(AContact, MODULENAME, FILE_KEY, &tdbv)) - { - int AmountWspcRem = 0; + //if always log to file option is enabled do this + if (wasAlert && alertIndex != 1) { // dont do for log to file alert + if ( db_get_b(hContact, MODULENAME, ALWAYS_LOG_KEY, 0)) { + if (!db_get_s(hContact, MODULENAME, FILE_KEY, &tdbv)) { + int AmountWspcRem = 0; - if (!(db_get_b(AContact, MODULENAME, SAVE_AS_RAW_KEY, 0))) - { - // - CodetoSymbol(tempraw); - Sleep(100); // avoid 100% CPU + if ( !db_get_b(hContact, MODULENAME, SAVE_AS_RAW_KEY, 0)) { + CodetoSymbol(tempraw); + Sleep(100); // avoid 100% CPU - EraseBlock(tempraw); - Sleep(100); // avoid 100% CPU + EraseBlock(tempraw); + Sleep(100); // avoid 100% CPU - FastTagFilter(tempraw); - Sleep(100); // avoid 100% CPU + FastTagFilter(tempraw); + Sleep(100); // avoid 100% CPU - NumSymbols(tempraw); - Sleep(100); // avoid 100% CPU + NumSymbols(tempraw); + Sleep(100); // avoid 100% CPU - EraseSymbols(tempraw); - Sleep(100); // avoid 100% CPU + EraseSymbols(tempraw); + Sleep(100); // avoid 100% CPU - AmountWspcRem = db_get_b(AContact, MODULENAME, RWSPACE_KEY, 0); - RemoveInvis(tempraw, AmountWspcRem); - Sleep(100); // avoid 100% CPU + AmountWspcRem = db_get_b(hContact, MODULENAME, RWSPACE_KEY, 0); + RemoveInvis(tempraw, AmountWspcRem); + Sleep(100); // avoid 100% CPU - Removewhitespace(tempraw); - } - // - SaveToFile(AContact, tempraw); - DBFreeVariant(&tdbv); + Removewhitespace(tempraw); } + + SaveToFile(hContact, tempraw); + db_free(&tdbv); } } } strncpy(truncated, tempraw, strlen(truncated)); - return wasAlert; } -/**************************/ -/***********************/ -int DataWndAlertCommand(void *AContact) +/*****************************************************************************/ +int DataWndAlertCommand(WPARAM wParam, LPARAM lParam) { - HWND hwndDlg; - - if ((hwndDlg = (WindowList_Find(hWindowList, (HANDLE) AContact)))) - { + HANDLE hContact = (HANDLE)wParam; + if ( WindowList_Find(hWindowList, hContact)) return 0; - } - hwndDlg = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_DISPLAY_DATA), NULL, DlgProcDisplayData, (LPARAM) (HANDLE) AContact); - - if (db_get_b(AContact, MODULENAME, ON_TOP_KEY, 0)) - { - SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BM_SETIMAGE, IMAGE_ICON, (LPARAM) ((HICON) LoadImage(hInst, MAKEINTRESOURCE(IDI_STICK), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0))); - if ((db_get_b(NULL, MODULENAME, SAVE_INDIVID_POS_KEY, 0))) - { - SetWindowPos( - hwndDlg, - HWND_TOPMOST, - db_get_dw(AContact, MODULENAME, "WVx", 100), // Xposition, - db_get_dw(AContact, MODULENAME, "WVy", 100), // Yposition, - db_get_dw(AContact, MODULENAME, "WVwidth", 100), // WindowWidth, - db_get_dw(AContact, MODULENAME, "WVheight", 100), // WindowHeight, - 0); - } else - { - SetWindowPos( - hwndDlg, - HWND_TOPMOST, - Xposition, - Yposition, - WindowWidth, - WindowHeight, - 0); - } - } - if (!(db_get_b(AContact, MODULENAME, ON_TOP_KEY, 0))) - {// - SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BM_SETIMAGE, IMAGE_ICON, (LPARAM) ((HICON) LoadImage(hInst, MAKEINTRESOURCE(IDI_UNSTICK), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0))); - - if ((db_get_b(NULL, MODULENAME, SAVE_INDIVID_POS_KEY, 0))) - { - SetWindowPos( - hwndDlg, - HWND_NOTOPMOST, - db_get_dw(AContact, MODULENAME, "WVx", 100), // Xposition, - db_get_dw(AContact, MODULENAME, "WVy", 100), // Yposition, - db_get_dw(AContact, MODULENAME, "WVwidth", 100), // WindowWidth, - db_get_dw(AContact, MODULENAME, "WVheight", 100), // WindowHeight, - 0); - } else - { - SetWindowPos( - hwndDlg, - HWND_NOTOPMOST, - Xposition, - Yposition, - WindowWidth, - WindowHeight, - 0); - } - } + HWND hwndDlg = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_DISPLAY_DATA), NULL, DlgProcDisplayData, (LPARAM)hContact); + HWND hTopmost = db_get_b(hContact, MODULENAME, ON_TOP_KEY, 0) ? HWND_TOPMOST : HWND_NOTOPMOST; + SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BM_SETIMAGE, IMAGE_ICON, (LPARAM) ((HICON) LoadImage(hInst, MAKEINTRESOURCE(IDI_STICK), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0))); + if ( db_get_b(NULL, MODULENAME, SAVE_INDIVID_POS_KEY, 0)) + SetWindowPos(hwndDlg, hTopmost, + db_get_dw(hContact, MODULENAME, "WVx", 100), // Xposition, + db_get_dw(hContact, MODULENAME, "WVy", 100), // Yposition, + db_get_dw(hContact, MODULENAME, "WVwidth", 100), // WindowWidth, + db_get_dw(hContact, MODULENAME, "WVheight", 100), 0); // WindowHeight, + else + SetWindowPos(hwndDlg, HWND_TOPMOST, Xposition, Yposition, WindowWidth, WindowHeight, 0); + ShowWindow(hwndDlg, SW_SHOW); SetActiveWindow(hwndDlg); - return 0; } -/***********************/ -/***************************/ -static void ReadFromFile(void *AContact) +/*****************************************************************************/ +void ReadFromFile(HANDLE hContact) { - FILE *pfile; DBVARIANT dbv; - char contactname[100]; char truncated[MAXSIZE1]; - int AmountWspcRem = 0; - int fileexists = 0; - - - HWND hwndDlg = (WindowList_Find(hWindowList, AContact)); - - ZeroMemory(&contactname, sizeof(contactname)); - DBGetContactSetting(AContact, "CList", "MyHandle", &dbv); - _snprintf(contactname, sizeof(contactname), "%s", dbv.pszVal); - DBFreeVariant(&dbv); - - - -//// - DBGetContactSetting(AContact, MODULENAME, CACHE_FILE_KEY, &dbv); -//// - if ((pfile = fopen(dbv.pszVal, "r")) == NULL) - { - //WErrorPopup(contactname, Translate("Cannot read from cache file")); - SendToRichEdit(hwndDlg, - Translate("Cannot read from cache file"), - TextClr, - BackgoundClr); - fileexists =0; + int AmountWspcRem = 0; + int fileexists = 0; + + HWND hwndDlg = WindowList_Find(hWindowList, hContact); + + char contactname[100]; + db_get_s(hContact, "CList", "MyHandle", &dbv); + mir_snprintf(contactname, sizeof(contactname), "%s", dbv.pszVal); + db_free(&dbv); + + db_get_s(hContact, MODULENAME, CACHE_FILE_KEY, &dbv); + FILE *pfile; + if ((pfile = fopen(dbv.pszVal, "r")) == NULL) { + SendToRichEdit(hwndDlg, Translate("Cannot read from cache file"), TextClr, BackgoundClr); + fileexists = 0; } - else - { - fread(truncated, sizeof(truncated), 1, pfile); - fclose(pfile); - fileexists =1; + else { + fread(truncated, sizeof(truncated), 1, pfile); + fclose(pfile); + fileexists =1; } - DBFreeVariant(&dbv); - - if(fileexists) {/// - - CodetoSymbol(truncated); - Sleep(100); // avoid 100% CPU + db_free(&dbv); - EraseBlock(truncated); - Sleep(100); // avoid 100% CPU + if(fileexists) { + CodetoSymbol(truncated); + Sleep(100); // avoid 100% CPU - FastTagFilter(truncated); - Sleep(100); // avoid 100% CPU + EraseBlock(truncated); + Sleep(100); // avoid 100% CPU - NumSymbols(truncated); - Sleep(100); // avoid 100% CPU + FastTagFilter(truncated); + Sleep(100); // avoid 100% CPU - EraseSymbols(truncated); - Sleep(100); // avoid 100% CPU + NumSymbols(truncated); + Sleep(100); // avoid 100% CPU - AmountWspcRem = db_get_b(AContact, MODULENAME, RWSPACE_KEY, 0); - RemoveInvis(truncated, AmountWspcRem); - Sleep(100); // avoid 100% CPU + EraseSymbols(truncated); + Sleep(100); // avoid 100% CPU - Removewhitespace(truncated); + AmountWspcRem = db_get_b(hContact, MODULENAME, RWSPACE_KEY, 0); + RemoveInvis(truncated, AmountWspcRem); + Sleep(100); // avoid 100% CPU - SendToRichEdit(hwndDlg, - truncated, - TextClr, - BackgoundClr); - - SetDlgItemText(hwndDlg, IDC_STATUSBAR, Translate("Loaded From Cache")); - - } /// -} + Removewhitespace(truncated); -/***************************/ + SendToRichEdit(hwndDlg, truncated, TextClr, BackgoundClr); + SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Loaded From Cache")); + } +} diff --git a/plugins/WebView/src/webview_cleanup.cpp b/plugins/WebView/src/webview_cleanup.cpp index 03fef944e5..b1fbc3912e 100644 --- a/plugins/WebView/src/webview_cleanup.cpp +++ b/plugins/WebView/src/webview_cleanup.cpp @@ -1,633 +1,798 @@ /* - * A plugin for Miranda IM which displays web page text in a window Copyright - * (C) 2005 Vincent Joyce. - * - * Miranda IM: the free icq client for MS Windows Copyright (C) 2000-2 - * Richard Hughes, Roland Rabien & Tristan Van de Vreede - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ +* A plugin for Miranda IM which displays web page text in a window Copyright +* (C) 2005 Vincent Joyce. +* +* Miranda IM: the free icq client for MS Windows Copyright (C) 2000-2 +* Richard Hughes, Roland Rabien & Tristan Van de Vreede +* +* This program is free software; you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by the Free +* Software Foundation; either version 2 of the License, or (at your option) +* any later version. +* +* This program is distributed in the hope that it will be useful, but +* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +* for more details. +* +* You should have received a copy of the GNU General Public License along +* with this program; if not, write to the Free Software Foundation, Inc., 59 +* Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ #include "stdafx.h" +#include "webview.h" -/************************/ -void CodetoSymbol(char *truncated) -{ - int counter = 0; - int position = 0, recpos = 0, n; - static char *stringfrompos; - - for (n = 0; n < AMOUNT3; n++) - { - - while (1) // loop forever - - { - Sleep(1); // avoid 100% CPU - - if (((strstr(truncated, CharacterCodes[n])) != 0)) -// does character code exist? - { - - if (strstr(truncated, CharacterCodes[n]) != 0) - { - stringfrompos = strstr(truncated, CharacterCodes[n]); - } - position = stringfrompos - truncated; - counter = 0; - while (counter != (strlen(CharacterCodes[n]))) - { - truncated[position + counter] = ' '; - counter++; - } - - truncated[(position + counter) - 1] = Characters[n]; - -// - strncpy(&truncated[position], &truncated[position + strlen(CharacterCodes[n])] - 1, strlen(&truncated[position]) - 1); -// - - } // end does character code exist? - - if (recpos == position) - break; // break out of loop if doesn't find new character code +// /////////////////////// +// characters and symbols// +// /////////////////////// - recpos = position; - } // end loop forever - - } // for +#define AMOUNT3 164 +char*CharacterCodes[AMOUNT3] = +{ + """, + "&", + "<", + ">", + " ", + "¡", + "¢", + "£", + "¤", + "¥", + "¦", + "§", + "¨", + "©", + "ª", + "«", + "¬", + "­", + "®", + "¯", + "°", + "±", + "²", + "³", + "´", + "µ", + "¶", + "·", + "¸", + "¹", + "º", + "»", + "¼", + "½", + "¾", + "¿", + "À", + "Á", + "Â", + "Ã", + "Ä", + "Å", + "Æ", + "Ç", + "È", + "É", + "Ê", + "Ë", + "Ì", + "Í", + "Î", + "Ï", + "Ð", + "Ñ", + "Ò", + "Ó", + "Ô", + "Õ", + "Ö", + "×", + "Ø", + "Ù", + "Ú", + "Û", + "Ü", + "Ý", + "Þ", + "ß", + "à", + "á", + "â", + "ã", + "ä", + "å", + "æ", + "ç", + "è", + "é", + "ê", + "ë", + "ì", + "í", + "î", + "ï", + "ð", + "ñ", + "ò", + "ó", + "ô", + "õ", + "ö", + "÷", + "ø", + "ù", + "ú", + "û", + "ü", + "ý", + "þ", + "&yumil;", + "Œ", // greater that 255, extra latin characters + "œ", + "Š", + "š", + "Ÿ", + "ƒ", + "ˆ", + "˜", + "Œ", + "œ", + "Š", + "š", + "Ÿ", + "ƒ", + "ˆ", + "˜", + "–", // Misc other characters + "—", + "‘", + "’", + "‚", + "“", + "”", + "„", + "†", + "‡", + "•", + "…", + "‰", + "‹", + "›", + "€", + "ℑ", + "ℜ", + "™", + "–", + "—", + "‘", + "’", + "‚", + "“", + "”", + "„", + "†", + "‡", + "•", + "…", + "‰", + "‹", + "›", + "€", + "ℑ", + "ℜ", + "™", + " ", + " ", + " ", + " ", + " ", + " ", + "õ", // symbols without numeric code + "¿", + "¦", + "¯"}; + +char Characters[AMOUNT3] = +{ + '\"', + '&', + '<', + '>', + ' ', + '¡', + '¢', + '£', + '¤', + '¥', + '¦', + '§', + '¨', + '©', + 'ª', + '«', + '¬', + '­', + '®', + '¯', + '°', + '±', + '²', + '³', + '´', + 'µ', + '¶', + '·', + '¸', + '¹', + 'º', + '»', + '¼', + '½', + '¾', + '¿', + 'À', + 'Á', + 'Â', + 'Ã', + 'Ä', + 'Å', + 'Æ', + 'Ç', + 'È', + 'É', + 'Ê', + 'Ë', + 'Ì', + 'Í', + 'Î', + 'Ï', + 'Ð', + 'Ñ', + 'Ò', + 'Ó', + 'Ô', + 'Õ', + 'Ö', + '×', + 'Ø', + 'Ù', + 'Ú', + 'Û', + 'Ü', + 'Ý', + 'Þ', + 'ß', + 'à', + 'á', + 'â', + 'ã', + 'ä', + 'å', + 'æ', + 'ç', + 'è', + 'é', + 'ê', + 'ë', + 'ì', + 'í', + 'î', + 'ï', + 'ð', + 'ñ', + 'ò', + 'ó', + 'ô', + 'õ', + 'ö', + '÷', + 'ø', + 'ù', + 'ú', + 'û', + 'ü', + 'ý', + 'þ', + 'ÿ', + 'Œ', // greater than 255 extra latin characters + 'œ', + 'Š', + 'š', + 'Ÿ', + 'ƒ', + 'ˆ', + '˜', + 'Œ', + 'œ', + 'Š', + 'š', + 'Ÿ', + 'ƒ', + 'ˆ', + '˜', + '–', + '—', // misc other characters + '‘', + '’', + '‚', + '“', + '”', + '„', + '†', + '‡', + '•', + '…', + '‰', + '‹', + '›', + '€', + 'I', + 'R', + '™', + '–', + '—', + '‘', + '’', + '‚', + '“', + '”', + '„', + '†', + '‡', + '•', + '…', + '‰', + '‹', + '›', + '€', + 'I', + 'R', + '™', + ' ', + ' ', + ' ', + ' ', + ' ', + ' ', + 'õ', + '¿', + '¦', + '¯'}; + +/*****************************************************************************/ +void CodetoSymbol(char *truncated) +{ + int counter = 0; + int position = 0, recpos = 0; + static char *stringfrompos; + + for (int n = 0; n < AMOUNT3; n++) { + while (1) { // loop forever + Sleep(1); // avoid 100% CPU + + if ( strstr(truncated, CharacterCodes[n]) != 0) { // does character code exist? + if (strstr(truncated, CharacterCodes[n]) != 0) + stringfrompos = strstr(truncated, CharacterCodes[n]); + + position = stringfrompos - truncated; + counter = 0; + while (counter != strlen(CharacterCodes[n])) { + truncated[position + counter] = ' '; + counter++; + } + + truncated[(position + counter) - 1] = Characters[n]; + strncpy(&truncated[position], &truncated[position + strlen(CharacterCodes[n])] - 1, strlen(&truncated[position]) - 1); + } // end does character code exist? + + if (recpos == position) + break; // break out of loop if doesn't find new character code + + recpos = position; + } // end loop forever + } // for } -/**********************/ - -/************************/ +/*****************************************************************************/ void EraseBlock(char *truncated) { - int counter = 0; - int positionStart = 0, positionEnd = 0; - char*stringfrompos; - char*tempraw; - int BlockLength = 0; - -// ////// - - tempraw = malloc(MAXSIZE1); - - if (truncated) - strncpy(tempraw, truncated, MAXSIZE1); - -// /////////////////////////// - -// 1// - - while (1) - { - Sleep(1); // avoid 100% CPU - // /get start and end of block - - if (strstr(tempraw, "") != 0) // does tag exist? - - { - stringfrompos = strstr(tempraw, "-->"); - positionEnd = stringfrompos - tempraw; - } - BlockLength = (positionEnd - positionStart) + 3; - - if ((strstr(tempraw, "") == 0)) - break; - -///////////////////////////////////////// - - // ///////// - if (strstr(tempraw, "") != 0) // does tag exist? + { + stringfrompos = strstr(tempraw, "-->"); + positionEnd = stringfrompos - tempraw; + } + BlockLength = (positionEnd - positionStart) + 3; + + if ((strstr(tempraw, "") == 0)) + break; + + ///////////////////////////////////////// + + if (strstr(tempraw, "