summaryrefslogtreecommitdiff
path: root/plugins/WebView/src/webview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/WebView/src/webview.cpp')
-rw-r--r--plugins/WebView/src/webview.cpp481
1 files changed, 0 insertions, 481 deletions
diff --git a/plugins/WebView/src/webview.cpp b/plugins/WebView/src/webview.cpp
deleted file mode 100644
index 2a9f371377..0000000000
--- a/plugins/WebView/src/webview.cpp
+++ /dev/null
@@ -1,481 +0,0 @@
-/*
-* 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"
-
-char* WndClass = "WEBWnd";
-WNDCLASSEX wincl;
-MSG messages;
-DWORD winheight;
-int StartUpDelay = 0;
-
-int Xposition, Yposition;
-int WindowHeight, WindowWidth;
-COLORREF BackgoundClr, TextClr;
-
-UINT_PTR timerId;
-UINT_PTR Countdown;
-LOGFONT g_lf;
-HFONT h_font;
-HMENU hMenu;
-int bpStatus;
-HGENMENU hMenuItem1;
-HGENMENU hMenuItemCountdown;
-
-/*****************************************************************************/
-void ChangeMenuItem1()
-{
- // Enable or Disable auto updates
- LPCTSTR ptszName;
- if (!g_plugin.getByte(DISABLE_AUTOUPDATE_KEY, 0))
- ptszName = LPGENW("Auto update enabled");
- else
- ptszName = LPGENW("Auto update disabled");
-
- Menu_ModifyItem(hMenuItem1, ptszName, LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_SITE)));
-}
-
-/*****************************************************************************/
-void ChangeMenuItemCountdown()
-{
- // countdown
- HICON hIcon = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_UPDATEALL));
-
- wchar_t countername[100];
- mir_snwprintf(countername, TranslateT("%d minutes to update"), g_plugin.getDword(COUNTDOWN_KEY, 0));
-
- Menu_ModifyItem(hMenuItemCountdown, countername, hIcon, CMIF_KEEPUNTRANSLATED);
-}
-
-/*****************************************************************************/
-static int CALLBACK EnumFontsProc(ENUMLOGFONTEX *lpelfe, NEWTEXTMETRICEX*, int, 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;
-}
-
-void FillFontListThread(void *param)
-{
- HDC hdc = GetDC((HWND)param);
-
- LOGFONT lf = { 0 };
- g_lf.lfCharSet = DEFAULT_CHARSET;
- g_lf.lfFaceName[0] = 0;
- g_lf.lfPitchAndFamily = 0;
- EnumFontFamiliesEx(hdc, &lf, (FONTENUMPROC)EnumFontsProc, (LPARAM)GetDlgItem((HWND)param, IDC_TYPEFACE), 0);
- ReleaseDC((HWND)param, hdc);
-}
-
-/*****************************************************************************/
-void TxtclrLoop()
-{
- for (auto &hContact : Contacts(MODULENAME)) {
- HWND hwndDlg = WindowList_Find(hWindowList, hContact);
- SetDlgItemText(hwndDlg, IDC_DATA, L"");
- InvalidateRect(hwndDlg, nullptr, 1);
- }
-}
-
-/*****************************************************************************/
-void BGclrLoop()
-{
- for (auto &hContact : Contacts(MODULENAME)) {
- HWND hwndDlg = (WindowList_Find(hWindowList, hContact));
- SetDlgItemText(hwndDlg, IDC_DATA, L"");
- SendDlgItemMessage(hwndDlg, IDC_DATA, EM_SETBKGNDCOLOR, 0, BackgoundClr);
- InvalidateRect(hwndDlg, nullptr, 1);
- }
-}
-
-/*****************************************************************************/
-void StartUpdate(void*)
-{
- StartUpDelay = 1;
- Sleep(((g_plugin.getDword(START_DELAY_KEY, 0)) * SECOND));
-
- for (auto &hContact : Contacts(MODULENAME))
- GetData((void*)hContact);
-
- StartUpDelay = 0;
-}
-
-/*****************************************************************************/
-void ContactLoop(void*)
-{
- if (StartUpDelay == 0) {
- for (auto &hContact : Contacts(MODULENAME)) {
- GetData((void*)hContact);
- Sleep(10); // avoid 100% CPU
- }
- }
-
- WAlertPopup(NULL, TranslateT("All Webview sites have been updated."));
-}
-
-/*****************************************************************************/
-INT_PTR MarkAllReadMenuCommand(WPARAM, LPARAM)
-{
- ChangeContactStatus(1);
- return 0;
-}
-
-/*****************************************************************************/
-void InitialiseGlobals(void)
-{
- Xposition = g_plugin.getDword(Xpos_WIN_KEY, 0);
- Yposition = g_plugin.getDword(Ypos_WIN_KEY, 0);
-
- if (Yposition == -32000)
- Yposition = 100;
-
- if (Xposition == -32000)
- Xposition = 100;
-
- BackgoundClr = g_plugin.getDword(BG_COLOR_KEY, Def_color_bg);
- TextClr = g_plugin.getDword(TXT_COLOR_KEY, Def_color_txt);
-
- WindowHeight = g_plugin.getDword(WIN_HEIGHT_KEY, Def_win_height);
- WindowWidth = g_plugin.getDword(WIN_WIDTH_KEY, Def_win_width);
-}
-
-/*****************************************************************************/
-int Doubleclick(WPARAM wParam, LPARAM)
-{
- MCONTACT hContact = wParam;
- char *szProto = GetContactProto(hContact);
- if (mir_strcmp(MODULENAME, szProto))
- return 0;
-
- int action = g_plugin.getByte(hContact, DBLE_WIN_KEY, 1);
- if (action == 0) {
- ptrW url(g_plugin.getWStringA(hContact, "URL"));
- Utils_OpenUrlW(url);
-
- g_plugin.setWord(hContact, "Status", ID_STATUS_ONLINE);
- }
- else if (action == 1) {
- HWND hwndDlg = WindowList_Find(hWindowList, hContact);
- if (hwndDlg) {
- SetForegroundWindow(hwndDlg);
- SetFocus(hwndDlg);
- }
- else {
- hwndDlg = CreateDialogParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_DISPLAY_DATA), nullptr, DlgProcDisplayData, (LPARAM)hContact);
- HWND hTopmost = g_plugin.getByte(hContact, ON_TOP_KEY, 0) ? HWND_TOPMOST : HWND_NOTOPMOST;
- SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BM_SETIMAGE, IMAGE_ICON, (LPARAM)((HICON)LoadImage(g_plugin.getInst(), MAKEINTRESOURCE(IDI_STICK), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0)));
-
- if (g_plugin.getByte(SAVE_INDIVID_POS_KEY, 0))
- SetWindowPos(hwndDlg, hTopmost,
- g_plugin.getDword(hContact, "WVx", 100), // Xposition,
- g_plugin.getDword(hContact, "WVy", 100), // Yposition,
- g_plugin.getDword(hContact, "WVwidth", 412), // WindowWidth,
- g_plugin.getDword(hContact, "WVheight", 350), 0); // WindowHeight,
- else
- SetWindowPos(hwndDlg, HWND_TOPMOST, Xposition, Yposition, WindowWidth, WindowHeight, 0);
- }
-
- ShowWindow(hwndDlg, SW_SHOW);
- SetActiveWindow(hwndDlg);
-
- if (g_plugin.getByte(UPDATE_ON_OPEN_KEY, 0)) {
- if (g_plugin.getByte(hContact, ENABLE_ALERTS_KEY, 0))
- mir_forkthread(ReadFromFile, (void*)hContact);
- else
- mir_forkthread(GetData, (void*)hContact);
- g_plugin.setWord(hContact, "Status", ID_STATUS_ONLINE);
- }
- }
-
- return 1;
-}
-
-/*****************************************************************************/
-int SendToRichEdit(HWND hWindow, char *truncated, COLORREF rgbText, COLORREF rgbBack)
-{
- DBVARIANT dbv;
- DWORD bold = 0;
- DWORD italic = 0;
- DWORD underline = 0;
-
- SetDlgItemText(hWindow, IDC_DATA, L"");
-
- CHARFORMAT2 cfFM;
- memset(&cfFM, 0, 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 (g_plugin.getByte(FONT_BOLD_KEY, 0))
- bold = CFE_BOLD;
-
- if (g_plugin.getByte(FONT_ITALIC_KEY, 0))
- italic = CFE_ITALIC;
-
- if (g_plugin.getByte(FONT_UNDERLINE_KEY, 0))
- underline = CFE_UNDERLINE;
-
- cfFM.dwEffects = bold | italic | underline;
-
- if (!g_plugin.getWString(FONT_FACE_KEY, &dbv)) {
- mir_wstrcpy(cfFM.szFaceName, dbv.pwszVal);
- db_free(&dbv);
- }
- else mir_wstrcpy(cfFM.szFaceName, Def_font_face);
-
- HDC hDC = GetDC(hWindow);
- cfFM.yHeight = (BYTE)MulDiv(abs(g_lf.lfHeight), 120, GetDeviceCaps(GetDC(hWindow), LOGPIXELSY)) * (g_plugin.getByte(FONT_SIZE_KEY, 14));
- ReleaseDC(hWindow, hDC);
-
- cfFM.bCharSet = g_plugin.getByte(FONT_SCRIPT_KEY, 0);
- cfFM.bPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE;
- cfFM.crTextColor = rgbText;
- cfFM.crBackColor = rgbBack;
- SendDlgItemMessage(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 CALLBACK timerfunc(HWND, UINT, UINT_PTR, DWORD)
-{
- g_plugin.setByte(HAS_CRASHED_KEY, 0);
-
- if (!(g_plugin.getByte(OFFLINE_STATUS, 1)))
- if (!(g_plugin.getByte(DISABLE_AUTOUPDATE_KEY, 0)))
- mir_forkthread(ContactLoop);
-
- g_plugin.setDword(COUNTDOWN_KEY, 0);
-}
-
-/*****************************************************************************/
-void CALLBACK Countdownfunc(HWND, UINT, UINT_PTR, DWORD)
-{
- DWORD timetemp = g_plugin.getDword(COUNTDOWN_KEY, 100);
- if (timetemp <= 0) {
- timetemp = g_plugin.getDword(REFRESH_KEY, TIME);
- g_plugin.setDword(COUNTDOWN_KEY, timetemp);
- }
-
- g_plugin.setDword(COUNTDOWN_KEY, timetemp - 1);
-
- ChangeMenuItemCountdown();
-}
-
-/*****************************************************************************/
-
-int OptInitialise(WPARAM wParam, LPARAM)
-{
- OPTIONSDIALOGPAGE odp = {};
- odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT);
- odp.szGroup.a = LPGEN("Network");
- odp.szTitle.a = MODULENAME;
- odp.pfnDlgProc = DlgProcOpt;
- odp.flags = ODPF_BOLDGROUPS;
- g_plugin.addOptions(wParam, &odp);
-
- // if popup service exists
- if ((ServiceExists(MS_POPUP_ADDPOPUPW))) {
- odp.pszTemplate = MAKEINTRESOURCEA(IDD_POPUP);
- odp.szGroup.a = LPGEN("Popups");
- odp.pfnDlgProc = DlgPopUpOpts;
- g_plugin.addOptions(wParam, &odp);
- }
- return 0;
-}
-
-/*****************************************************************************/
-void FontSettings(void)
-{
- g_lf.lfHeight = 16;
- g_lf.lfWidth = 0;
- g_lf.lfEscapement = 0;
- g_lf.lfOrientation = 0;
- g_lf.lfWeight = FW_NORMAL;
- g_lf.lfItalic = FALSE;
- g_lf.lfUnderline = FALSE;
- g_lf.lfStrikeOut = 0;
- g_lf.lfCharSet = ANSI_CHARSET;
- g_lf.lfOutPrecision = OUT_DEFAULT_PRECIS;
- g_lf.lfClipPrecision = CLIP_DEFAULT_PRECIS;
- g_lf.lfQuality = DEFAULT_QUALITY;
- g_lf.lfPitchAndFamily = FIXED_PITCH | FF_MODERN;
- mir_wstrcpy(g_lf.lfFaceName, Def_font_face);
-}
-
-/*****************************************************************************/
-int ModulesLoaded(WPARAM, LPARAM)
-{
- hHookDisplayDataAlert = CreateHookableEvent(ME_DISPLAYDATA_ALERT);
- HookEvent(ME_DISPLAYDATA_ALERT, DataWndAlertCommand);
-
- hHookAlertPopup = CreateHookableEvent(ME_POPUP_ALERT);
- HookEvent(ME_POPUP_ALERT, PopupAlert);
-
- hHookErrorPopup = CreateHookableEvent(ME_POPUP_ERROR);
- HookEvent(ME_POPUP_ERROR, ErrorMsgs);
-
- hHookAlertOSD = CreateHookableEvent(ME_OSD_ALERT);
- HookEvent(ME_OSD_ALERT, OSDAlert);
-
- FontSettings();
- h_font = CreateFontIndirect(&g_lf);
-
- // get data on startup
- if (g_plugin.getByte(UPDATE_ONSTART_KEY, 0))
- mir_forkthread(StartUpdate);
-
- return 0;
-}
-
-/*****************************************************************************/
-INT_PTR DataWndMenuCommand(WPARAM wParam, LPARAM)
-{
- MCONTACT hContact = wParam;
- HWND hwndDlg = WindowList_Find(hWindowList, hContact);
- if (hwndDlg != nullptr) {
- DestroyWindow(hwndDlg);
- return 0;
- }
-
- HWND hTopmost = g_plugin.getByte(hContact, ON_TOP_KEY, 0) ? HWND_TOPMOST : HWND_NOTOPMOST;
- hwndDlg = CreateDialogParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_DISPLAY_DATA), nullptr, DlgProcDisplayData, (LPARAM)hContact);
- SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BM_SETIMAGE, IMAGE_ICON, (LPARAM)LoadImage(g_plugin.getInst(), MAKEINTRESOURCE(IDI_STICK), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0));
- if (g_plugin.getByte(SAVE_INDIVID_POS_KEY, 0))
- SetWindowPos(hwndDlg, hTopmost,
- g_plugin.getDword(hContact, "WVx", 100), // Xposition,
- g_plugin.getDword(hContact, "WVy", 100), // Yposition,
- g_plugin.getDword(hContact, "WVwidth", 100), // WindowWidth,
- g_plugin.getDword(hContact, "WVheight", 100), 0); // WindowHeight,
- else
- SetWindowPos(hwndDlg, HWND_TOPMOST, Xposition, Yposition, WindowWidth, WindowHeight, 0);
-
- ShowWindow(hwndDlg, SW_SHOW);
- SetActiveWindow(hwndDlg);
-
- if (g_plugin.getByte(UPDATE_ON_OPEN_KEY, 0)) {
- if (g_plugin.getByte(hContact, ENABLE_ALERTS_KEY, 0))
- mir_forkthread(ReadFromFile, (void*)hContact);
- else
- mir_forkthread(GetData, (void*)hContact);
- g_plugin.setWord(hContact, "Status", ID_STATUS_ONLINE);
- }
-
- return 0;
-}
-
-/*****************************************************************************/
-INT_PTR UpdateAllMenuCommand(WPARAM, LPARAM)
-{
- mir_forkthread(ContactLoop);
- return 0;
-}
-
-/*****************************************************************************/
-INT_PTR AutoUpdateMCmd(WPARAM, LPARAM)
-{
- if (g_plugin.getByte(DISABLE_AUTOUPDATE_KEY, 0))
- g_plugin.setByte(DISABLE_AUTOUPDATE_KEY, 0);
- else
- g_plugin.setByte(DISABLE_AUTOUPDATE_KEY, 1);
-
- ChangeMenuItem1();
- return 0;
-}
-
-/*****************************************************************************/
-INT_PTR AddContactMenuCommand(WPARAM, LPARAM)
-{
- db_set_s(0, "FindAdd", "LastSearched", MODULENAME);
- CallService(MS_FINDADD_FINDADD, 0, 0);
- return 0;
-}
-
-/*****************************************************************************/
-int OnTopMenuCommand(WPARAM, LPARAM, MCONTACT singlecontact)
-{
- int ontop = 0;
- int done = 0;
-
- if (((g_plugin.getByte(singlecontact, ON_TOP_KEY))) && done == 0) {
- g_plugin.setByte(singlecontact, ON_TOP_KEY, 0);
- ontop = 0;
- done = 1;
- }
- if ((!(g_plugin.getByte(singlecontact, ON_TOP_KEY, 0))) && done == 0) {
- g_plugin.setByte(singlecontact, ON_TOP_KEY, 1);
- ontop = 1;
- done = 1;
- }
- return 0;
-}
-
-/*****************************************************************************/
-INT_PTR WebsiteMenuCommand(WPARAM wParam, LPARAM)
-{
- MCONTACT hContact = wParam;
- ptrW url(g_plugin.getWStringA(hContact, "URL"));
- if (url)
- Utils_OpenUrlW(url);
-
- g_plugin.setWord(hContact, "Status", ID_STATUS_ONLINE);
- return 0;
-}
-
-/*****************************************************************************/
-int UpdateMenuCommand(WPARAM, LPARAM, MCONTACT singlecontact)
-{
- mir_forkthread(GetData, (void*)singlecontact);
- return 0;
-}
-
-/*****************************************************************************/
-int ContactMenuItemUpdateData(WPARAM wParam, LPARAM lParam)
-{
- UpdateMenuCommand(wParam, lParam, wParam);
- return 0;
-}
-
-/*****************************************************************************/
-INT_PTR CntOptionsMenuCommand(WPARAM wParam, LPARAM)
-{
- DialogBoxParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_CONTACT_OPT), nullptr, DlgProcContactOpt, wParam);
- return 0;
-}
-
-/*****************************************************************************/
-INT_PTR CntAlertMenuCommand(WPARAM wParam, LPARAM)
-{
- DialogBoxParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_ALRT_OPT), nullptr, DlgProcAlertOpt, wParam);
- return 0;
-}
-
-/*****************************************************************************/
-INT_PTR CountdownMenuCommand(WPARAM, LPARAM)
-{
- return 0;
-}