diff options
author | George Hazan <ghazan@miranda.im> | 2019-03-02 12:32:44 +0300 |
---|---|---|
committer | George Hazan <ghazan@miranda.im> | 2019-03-02 12:32:55 +0300 |
commit | 931a7dc1ac0dbc7e6c1083583ced915e572f5b47 (patch) | |
tree | 9fe9a6448d44030e26aa7107ce16044ed413e0d0 /plugins/WebView/src | |
parent | dd7d9954042254e66e3bbbec7195c6be8b1a0663 (diff) |
all protocols (even virtual ones) moved to the Protocols folder
Diffstat (limited to 'plugins/WebView/src')
-rw-r--r-- | plugins/WebView/src/main.cpp | 285 | ||||
-rw-r--r-- | plugins/WebView/src/resource.h | 139 | ||||
-rw-r--r-- | plugins/WebView/src/stdafx.cxx | 18 | ||||
-rw-r--r-- | plugins/WebView/src/stdafx.h | 36 | ||||
-rw-r--r-- | plugins/WebView/src/version.h | 13 | ||||
-rw-r--r-- | plugins/WebView/src/webview.cpp | 481 | ||||
-rw-r--r-- | plugins/WebView/src/webview.h | 254 | ||||
-rw-r--r-- | plugins/WebView/src/webview_alerts.cpp | 839 | ||||
-rw-r--r-- | plugins/WebView/src/webview_cleanup.cpp | 797 | ||||
-rw-r--r-- | plugins/WebView/src/webview_datawnd.cpp | 514 | ||||
-rw-r--r-- | plugins/WebView/src/webview_getdata.cpp | 511 | ||||
-rw-r--r-- | plugins/WebView/src/webview_opts.cpp | 1265 | ||||
-rw-r--r-- | plugins/WebView/src/webview_services.cpp | 458 |
13 files changed, 0 insertions, 5610 deletions
diff --git a/plugins/WebView/src/main.cpp b/plugins/WebView/src/main.cpp deleted file mode 100644 index c94cb0b578..0000000000 --- a/plugins/WebView/src/main.cpp +++ /dev/null @@ -1,285 +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"
-
-MWindowList hWindowList;
-HNETLIBUSER hNetlibUser;
-HANDLE hHookDisplayDataAlert, hHookAlertPopup, hHookAlertWPopup, hHookErrorPopup, hHookAlertOSD;
-
-CMPlugin g_plugin;
-
-static HMODULE hRichEd = nullptr;
-
-/////////////////////////////////////////////////////////////////////////////////////////
-
-PLUGININFOEX pluginInfoEx = {
- sizeof(PLUGININFOEX),
- __PLUGIN_NAME,
- PLUGIN_MAKE_VERSION(__MAJOR_VERSION, __MINOR_VERSION, __RELEASE_NUM, __BUILD_NUM),
- __DESCRIPTION,
- __AUTHOR,
- __COPYRIGHT,
- __AUTHORWEB,
- UNICODE_AWARE,
- // {CD5427FB-5320-4f65-B4BF-86B7CF7B5087}
- {0xcd5427fb, 0x5320, 0x4f65, {0xb4, 0xbf, 0x86, 0xb7, 0xcf, 0x7b, 0x50, 0x87}}
-};
-
-CMPlugin::CMPlugin() :
- PLUGIN<CMPlugin>(MODULENAME, pluginInfoEx)
-{
- RegisterProtocol(PROTOTYPE_PROTOCOL);
- SetUniqueId("PreserveName");
-}
-
-/////////////////////////////////////////////////////////////////////////////////////////
-
-void InitServices()
-{
- CreateProtoServiceFunction(MODULENAME, PS_GETCAPS, GetCaps);
- CreateProtoServiceFunction(MODULENAME, PS_GETNAME, GetName);
- CreateProtoServiceFunction(MODULENAME, PS_LOADICON, BPLoadIcon);
- CreateProtoServiceFunction(MODULENAME, PS_SETSTATUS, SetStatus);
- CreateProtoServiceFunction(MODULENAME, PS_GETSTATUS, GetStatus);
- CreateProtoServiceFunction(MODULENAME, PS_BASICSEARCH, BasicSearch);
- CreateProtoServiceFunction(MODULENAME, PS_ADDTOLIST, AddToList);
- CreateProtoServiceFunction(MODULENAME, PSS_GETINFO, GetInfo);
-}
-
-/////////////////////////////////////////////////////////////////////////////////////////
-
-void ChangeContactStatus(int con_stat)
-{
- WORD status_code = 0;
- if (con_stat == 0)
- status_code = ID_STATUS_OFFLINE;
- if (con_stat == 1)
- status_code = ID_STATUS_ONLINE;
- if (con_stat == 2)
- status_code = ID_STATUS_AWAY;
- if (con_stat == 3)
- status_code = ID_STATUS_NA;
-
- for (auto &hContact : Contacts(MODULENAME))
- g_plugin.setWord(hContact, "Status", status_code);
-}
-
-/////////////////////////////////////////////////////////////////////////////////////////
-
-extern "C" __declspec(dllexport) const MUUID MirandaInterfaces[] = { MIID_PROTOCOL, MIID_LAST };
-
-/////////////////////////////////////////////////////////////////////////////////////////
-
-int CMPlugin::Load()
-{
- HookEvent(ME_CLIST_DOUBLECLICKED, Doubleclick);
-
- hMenu = LoadMenu(g_plugin.getInst(), MAKEINTRESOURCE(IDR_CONTEXT));
- hRichEd = LoadLibrary(L"Msftedit.dll");
-
- /*TIMERS*/
- if ((g_plugin.getDword(REFRESH_KEY, TIME) != 0)) {
- timerId = SetTimer(nullptr, 0, ((g_plugin.getDword(REFRESH_KEY, TIME)) * MINUTE), timerfunc);
- g_plugin.setDword(COUNTDOWN_KEY, 0);
- Countdown = SetTimer(nullptr, 0, MINUTE, Countdownfunc);
- }
-
- InitialiseGlobals();
-
- // register netlib handle
- char tempNdesc[50];
- mir_snprintf(tempNdesc, "%s connection settings", MODULENAME);
-
- NETLIBUSER nlu = {};
- nlu.flags = NUF_OUTGOING | NUF_HTTPCONNS;
- nlu.szSettingsModule = MODULENAME;
- nlu.szDescriptiveName.a = tempNdesc;
- hNetlibUser = Netlib_RegisterUser(&nlu);
-
- //protocol services
- InitServices();
-
- //add sound event to options
- g_plugin.addSound("webviewalert", _A2W(MODULENAME), LPGENW("Alert event"));
-
- //value is 1 if menu is disabled
- g_plugin.setByte(MENU_IS_DISABLED_KEY, 1);
-
- CMenuItem mi(&g_plugin);
- mi.flags = CMIF_UNICODE;
- if ( g_plugin.getByte(MENU_OFF, 0)) {
- //value is 0 if menu is enabled
- g_plugin.setByte(MENU_IS_DISABLED_KEY, 0);
-
- mi.root = g_plugin.addRootMenu(MO_MAIN, _A2W(MODULENAME), 20200001);
- Menu_ConfigureItem(mi.root, MCI_OPT_UID, "403BE07B-7954-4F3E-B318-4301571776B8");
-
- /*DISABLE WEBVIEW*/
- SET_UID(mi, 0xdedeb697, 0xfc10, 0x4622, 0x8b, 0x97, 0x74, 0x39, 0x32, 0x68, 0xa7, 0x7b);
- CreateServiceFunction("DisableWebview", AutoUpdateMCmd);
- mi.hIcolibItem = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_SITE));
- if (g_plugin.getByte(DISABLE_AUTOUPDATE_KEY, 0))
- mi.name.w = LPGENW("Auto update disabled");
- else
- mi.name.w = LPGENW("Auto update enabled");
- mi.pszService = "DisableWebview";
- hMenuItem1 = Menu_AddMainMenuItem(&mi);
-
- // Update all webview contacts
- SET_UID(mi, 0xf324ede, 0xfdf, 0x498a, 0x8f, 0x49, 0x6d, 0x2a, 0x9f, 0xda, 0x58, 0x6);
- CreateServiceFunction("UpdateAll", UpdateAllMenuCommand);
- mi.position = 500090002;
- mi.hIcolibItem = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_UPDATEALL));
- mi.name.w = LPGENW("Update all Webview sites");
- mi.pszService = "UpdateAll";
- Menu_AddMainMenuItem(&mi);
-
- // Mark All Webview Sites As Read
- SET_UID(mi, 0x1fa5fa21, 0x2ee1, 0x4372, 0xae, 0x3e, 0x3b, 0x96, 0xac, 0xd, 0xe8, 0x49);
- CreateServiceFunction("MarkAllSitesRead", MarkAllReadMenuCommand);
- mi.position = 500090099;
- mi.hIcolibItem = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_MARKALLREAD));
- mi.name.w = LPGENW("Mark all Webview sites as read");
- mi.pszService = "MarkAllSitesRead";
- Menu_AddMainMenuItem(&mi);
-
- // open cache directory
- SET_UID(mi, 0xfed046a8, 0xaae5, 0x4cbe, 0xa8, 0xc, 0x3c, 0x50, 0x3e, 0x3e, 0x9b, 0x15);
- CreateServiceFunction("OpenCacheFolder", OpenCacheDir);
- mi.position = 500090099;
- mi.hIcolibItem = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_FOLDER));
- mi.name.w = LPGENW("Open cache folder");
- mi.pszService = "OpenCacheFolder";
- Menu_AddMainMenuItem(&mi);
-
- // Countdown test
- SET_UID(mi, 0xbb1a94a9, 0xca63, 0x4966, 0x98, 0x48, 0x8b, 0x3f, 0x9d, 0xac, 0x6a, 0x10);
- CreateServiceFunction("Countdown", CountdownMenuCommand);
- mi.flags |= CMIF_KEEPUNTRANSLATED;
- wchar_t countername[100];
- mir_snwprintf(countername, TranslateT("%d minutes to update"), g_plugin.getDword(COUNTDOWN_KEY, 0));
- mi.position = 600090099;
- mi.hIcolibItem = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_UPDATEALL));
- mi.name.w = countername;
- mi.pszService = "Countdown";
- hMenuItemCountdown = Menu_AddMainMenuItem(&mi);
- }
-
- // contact menu
- mi.flags = CMIF_UNICODE;
-
- SET_UID(mi, 0xadc6a9a4, 0xdf7, 0x4f63, 0x89, 0x11, 0x8e, 0x42, 0x1d, 0xd6, 0x29, 0x31);
- CreateServiceFunction("Open web page", WebsiteMenuCommand);
- mi.position = 100;
- mi.hIcolibItem = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_URL));
- mi.pszService = "Open web page";
- mi.name.w = LPGENW("Open web page");
- Menu_AddContactMenuItem(&mi, MODULENAME);
-
- SET_UID(mi, 0x9d803e61, 0xc929, 0x4c6e, 0x9e, 0x7, 0x93, 0x0, 0xab, 0x14, 0x13, 0x50);
- CreateServiceFunction("OpenClose Window", DataWndMenuCommand);
- mi.pszService = "OpenClose Window";
- mi.hIcolibItem = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_SHOW_HIDE));
- mi.name.w = LPGENW("Open/Close window");
- Menu_AddContactMenuItem(&mi, MODULENAME);
-
- SET_UID(mi, 0x3840cc71, 0xcc85, 0x448d, 0xb5, 0xc8, 0x1a, 0x7d, 0xfe, 0xf0, 0x8, 0x85);
- mi.position = 2222220;
- mi.pszService = "UpdateData";
- mi.hIcolibItem = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_UPDATE));
- mi.name.w = LPGENW("Update data");
- Menu_AddContactMenuItem(&mi, MODULENAME);
-
- SET_UID(mi, 0xd1ab586c, 0x2c71, 0x429c, 0xb1, 0x79, 0x7b, 0x3a, 0x1d, 0x4a, 0xc1, 0x7d);
- CreateServiceFunction("ContactOptions", CntOptionsMenuCommand);
- mi.pszService = "ContactOptions";
- mi.hIcolibItem = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_OPTIONS));
- mi.name.w = LPGENW("Contact options");
- Menu_AddContactMenuItem(&mi, MODULENAME);
-
- SET_UID(mi, 0xe4cda597, 0x9def, 0x4f54, 0x8a, 0xc6, 0x69, 0x3b, 0x5a, 0x7d, 0x77, 0xb6);
- CreateServiceFunction("ContactAlertOpts", CntAlertMenuCommand);
- mi.pszService = "ContactAlertOpts";
- mi.hIcolibItem = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_ALERT));
- mi.name.w = LPGENW("Contact alert options");
- Menu_AddContactMenuItem(&mi, MODULENAME);
-
- SET_UID(mi, 0x63fdeed8, 0xf880, 0x423f, 0x95, 0xae, 0x20, 0x8c, 0x86, 0x3c, 0x5, 0xd8);
- CreateServiceFunction("PingWebsite", PingWebsiteMenuCommand);
- mi.pszService = "PingWebsite";
- mi.hIcolibItem = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_PING));
- mi.name.w = LPGENW("Ping web site");
- Menu_AddContactMenuItem(&mi, MODULENAME);
-
- SET_UID(mi, 0x28fd36de, 0x6ce1, 0x43d0, 0xa1, 0x6e, 0x98, 0x71, 0x53, 0xe8, 0xc9, 0xf4);
- CreateServiceFunction("StopDataProcessing", StpPrcssMenuCommand);
- mi.pszService = "StopDataProcessing";
- mi.hIcolibItem = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_STOP));
- mi.name.w = LPGENW("Stop data processing");
- Menu_AddContactMenuItem(&mi, MODULENAME);
-
- hWindowList = WindowList_Create();
-
- HookEvent(ME_SYSTEM_MODULESLOADED, ModulesLoaded);
- HookEvent(ME_DB_CONTACT_SETTINGCHANGED, DBSettingChanged);
- HookEvent(ME_DB_CONTACT_DELETED, SiteDeleted);
- HookEvent(ME_OPT_INITIALISE, OptInitialise);
-
- g_plugin.setByte(HAS_CRASHED_KEY, 1);
- return 0;
-}
-
-/////////////////////////////////////////////////////////////////////////////////////////
-
-int CMPlugin::Unload()
-{
- ChangeContactStatus(0);
-
- KillTimer(nullptr, timerId);
- KillTimer(nullptr, Countdown);
-
- g_plugin.setByte(HAS_CRASHED_KEY, 0);
- SavewinSettings();
- if (hRichEd)
- FreeLibrary(hRichEd);
-
- if (hNetlibUser) {
- Netlib_CloseHandle(hNetlibUser);
- hNetlibUser = nullptr;
- }
-
- if (hHookDisplayDataAlert)
- DestroyHookableEvent(hHookDisplayDataAlert);
- if (hHookAlertPopup)
- DestroyHookableEvent(hHookAlertPopup);
- if (hHookAlertWPopup)
- DestroyHookableEvent(hHookAlertWPopup);
-
- if (h_font != nullptr)
- DeleteObject(h_font);
- if (hMenu)
- DestroyMenu(hMenu);
- WindowList_Destroy(hWindowList);
- return 0;
-}
diff --git a/plugins/WebView/src/resource.h b/plugins/WebView/src/resource.h deleted file mode 100644 index 75379a22e5..0000000000 --- a/plugins/WebView/src/resource.h +++ /dev/null @@ -1,139 +0,0 @@ -#define UNI 1
-
-#define IDC_STATIC -1
-
-#define IDI_SITE 101
-#define IDI_STICK 102
-#define IDI_UNSTICK 103
-#define IDI_URL 104
-#define IDI_OPTIONS 105
-#define IDI_UPDATE 106
-#define IDI_SHOW_HIDE 107
-#define IDI_FIND 108
-#define IDI_ALERT 110
-#define IDI_FOLDER 111
-#define IDI_UPDATEALL 112
-#define IDI_MARKALLREAD 113
-#define IDI_PING 114
-#define IDI_STOP 115
-
-
-#define IDC_UPDATE_ONSTART 300
-#define IDC_DBLE_WEB 301
-#define IDC_DBLE_WIN 302
-#define IDC_UPDATE_ON_OPEN 303
-#define IDC_UPDATE_ONALERT 304
-
-#define IDD_OPT 443
-#define IDC_DISABLEMENU 446
-#define IDC_OPEN_WEBPAGE 447
-#define IDC_TIME 450
-
-#define IDC_BGCOLOR 451
-#define IDC_TXTCOLOR 452
-#define IDC_RESTART 453
-#define IDC_CLEAN 457
-#define IDC_SUPPRESS 458
-#define IDC_SPIN1 461
-#define IDC_HIDE_STATUS_ICON 464
-#define IDC_RWSPACE 465
-#define IDC_RWSPC_TEXT 466
-#define IDC_TYPEFACE 467
-#define IDC_FONT_BOLD 468
-#define IDC_FONT_ITALIC 469
-#define IDC_FONT_UNDERLINE 470
-#define IDC_FONTSIZE 471
-#define IDC_U_SE_STRINGS 475
-#define IDC_U_ALLSITE 476
-#define IDC_ERROR_POPUP 477
-#define IDC_START_DELAY 480
-#define IDC_SPIN2 481
-#define IDC_STARTDELAYTXT 482
-#define IDC_STDELAYSECTXT 483
-#define IDC_SAVE_INDIVID_POS 484
-#define IDC_ADV_GRP 485
-#define IDC_NO_PROTECT 486
-#define IDC_NOT_RECOMND_TXT 487
-#define IDC_SCRIPT 488
-#define IDC_DATAPOPUP 489
-
-#define IDR_CONTEXT 500
-#define IDM_CUT 501
-#define IDM_PASTE 502
-#define IDM_DELETE 503
-#define IDM_CLEAR_ALL 504
-#define IDM_COPY 505
-#define IDM_COPYALL 506
-#define IDM_SELECTALL 507
-
-#define IDC_SITE_NAME 551
-#define IDC_ERR_CHK 552
-#define IDC_APPEND 554
-#define IDC_FILENAME 555
-#define IDC_BROWSE 556
-#define IDC_SAVE_AS_RAW 557
-//#define IDC_AGENT 557//temp
-
-#define IDD_DISPLAY_DATA 600
-#define IDC_OPEN_URL 601
-#define IDC_DATA 602
-#define IDC_UPDATE_BUTTON 603
-#define IDC_STICK_BUTTON 604
-#define IDC_FIND_BUTTON 605
-#define IDC_STATUSBAR 606
-#define IDC_OPTIONS_BUTTON 607
-#define IDC_ALERT_BUTTON 608
-//#define IDC_HIDDEN_URL 609
-#define IDC_STOP 609
-
-#define IDC_ERRORMSG 620
-
-#define IDD_CONTACT_OPT 700
-#define IDC_END 701
-#define IDC_START 702
-#define IDC_URL 703
-#define IDC_OPT_CANCEL 704
-#define IDC_OPT_APPLY 705
-#define IDC_CPY_STRINGS 706
-
-
-#define IDD_FIND 750
-#define IDC_FINDWHAT 751
-#define IDC_OK 752
-#define IDC_CANCEL 753
-#define IDC_SEARCH_COMPLETE 754
-
-#define IDD_ALRT_OPT 801
-#define IDC_ENABLE_ALERTS 802
-#define IDC_OK2 803
-#define IDC_ALERT_STRING 804
-#define IDC_ALERT_TYPE 807
-#define IDC_EVENT_TYPE 808
-#define IDC_ALERT_CANCEL 809
-#define IDC_ALERT_APPLY 810
-#define IDC_START2 811
-#define IDC_END2 812
-#define IDC_ADD_DATE_NAME 813
-#define IDC_DELAY 814
-#define IDC_PREFIX 815
-#define IDC_SUFFIX 816
-#define IDC_24_HOUR 817
-#define IDC_ALWAYS_LOG 818
-
-#define IDD_POPUP 850
-#define IDC_POP_BGCOLOUR 851
-#define IDC_POP_TEXTCOLOUR 852
-#define IDC_PD1 853
-#define IDC_PD2 854
-//#define IDC_PD3 855
-#define IDC_PREVIEW 856
-#define IDC_POP_USEWINCOLORS 857
-#define IDC_POP_USESAMECOLORS 858
-#define IDC_POP_USECUSTCOLORS 859
-#define IDC_LCLK_WINDOW 860
-#define IDC_LCLK_WEB_PGE 861
-#define IDC_LCLK_DISMISS 862
-#define IDC_RCLK_WINDOW 863
-#define IDC_RCLK_WEB_PGE 864
-#define IDC_RCLK_DISMISS 865
-//#define IDC_PUALERT 866
diff --git a/plugins/WebView/src/stdafx.cxx b/plugins/WebView/src/stdafx.cxx deleted file mode 100644 index d33e44d684..0000000000 --- a/plugins/WebView/src/stdafx.cxx +++ /dev/null @@ -1,18 +0,0 @@ -/*
-Copyright (C) 2012-19 Miranda NG team (https://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 <http://www.gnu.org/licenses/>.
-*/
-
-#include "stdafx.h"
\ No newline at end of file diff --git a/plugins/WebView/src/stdafx.h b/plugins/WebView/src/stdafx.h deleted file mode 100644 index 3ce8c77b06..0000000000 --- a/plugins/WebView/src/stdafx.h +++ /dev/null @@ -1,36 +0,0 @@ -#pragma once
-
-#include <windows.h>
-#include <shlwapi.h>
-#include <Richedit.h>
-#include <Commctrl.h>
-
-#include <ctype.h>
-#include <io.h>
-#include <locale.h>
-#include <process.h>
-#include <stdio.h>
-#include <string.h>
-#include <time.h>
-#include <wchar.h>
-
-#include <newpluginapi.h>
-#include <m_system.h>
-#include <m_clist.h>
-#include <m_clist.h>
-#include <m_database.h>
-#include <m_protocols.h>
-#include <m_protosvc.h>
-#include <m_button.h>
-#include <m_utils.h>
-#include <m_skin.h>
-#include <m_genmenu.h>
-#include <m_icolib.h>
-#include <m_options.h>
-#include <m_popup.h>
-#include <m_netlib.h>
-#include <m_langpack.h>
-#include <m_findadd.h>
-
-#include "resource.h"
-#include "version.h"
diff --git a/plugins/WebView/src/version.h b/plugins/WebView/src/version.h deleted file mode 100644 index c2030de835..0000000000 --- a/plugins/WebView/src/version.h +++ /dev/null @@ -1,13 +0,0 @@ -#define __MAJOR_VERSION 0 -#define __MINOR_VERSION 1 -#define __RELEASE_NUM 3 -#define __BUILD_NUM 2 - -#include <stdver.h> - -#define __PLUGIN_NAME "Webview" -#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 __AUTHORWEB "https://miranda-ng.org/p/WebView/" -#define __COPYRIGHT "© 2011 Vincent Joyce" 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;
-}
diff --git a/plugins/WebView/src/webview.h b/plugins/WebView/src/webview.h deleted file mode 100644 index 561557e7e2..0000000000 --- a/plugins/WebView/src/webview.h +++ /dev/null @@ -1,254 +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.
- */
-
-#pragma once
-
-#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"
-#define TXT_COLOR_KEY "TxtColor"
-#define WIN_HEIGHT_KEY "Height"
-#define SUPPRESS_ERR_KEY "Suppress error messages"
-#define WIN_WIDTH_KEY "Width"
-#define FILE_KEY "Filename"
-#define APPEND_KEY "Append"
-#define UPDATE_ONSTART_KEY "update_onboot"
-#define UPDATE_ON_OPEN_KEY "update_on_Window_open"
-#define FONT_FACE_KEY "FontFace"
-#define FONT_BOLD_KEY "FontBold"
-#define FONT_ITALIC_KEY "FontItalic"
-#define FONT_UNDERLINE_KEY "FontUnderline"
-#define FONT_SIZE_KEY "FontSize"
-#define ERROR_POPUP_KEY "UsePopupPlugin"
-#define ENABLE_ALERTS_KEY "EnableAlerts"
-#define ALERT_STRING_KEY "ALERTSTRING"
-#define ALERT_TYPE_KEY "Alert_Type"
-#define APND_DATE_NAME_KEY "AppendDateContact"
-#define POP_DELAY_KEY "PopUpDelay"
-#define POP_BG_CLR_KEY "PopBGClr"
-#define POP_TXT_CLR_KEY "PopTxtClr"
-#define POP_USEWINCLRS_KEY "PopUseWinClrs"
-#define CONTACT_PREFIX_KEY "PrefixDateContact"
-#define USE_24_HOUR_KEY "Use24hourformat"
-#define POP_USESAMECLRS_KEY "PopUseSameClrs"
-#define POP_USECUSTCLRS_KEY "PopUseCustomClrs"
-#define LCLK_WINDOW_KEY "LeftClkWindow"
-#define LCLK_WEB_PGE_KEY "LeftClkWebPage"
-#define LCLK_DISMISS_KEY "LeftClkDismiss"
-#define RCLK_WINDOW_KEY "RightClkWindow"
-#define RCLK_WEB_PGE_KEY "RightClkWebPage"
-#define RCLK_DISMISS_KEY "RightClkDismiss"
-
-#define TIME 60
-#define Def_color_bg 0x00ffffff
-#define Def_color_txt 0x00000000
-#define Def_font_face L"Courier"
-#define Def_font_size 14
-#define HK_SHOWHIDE 3001
-
-#define MAXSIZE1 250000
-#define MAXSIZE2 500000
-#define MAXSIZE3 1000000
-
-#define Def_win_height 152
-#define Def_win_width 250
-
-/////////////////////////////////////////////////////////////////////////////////////////
-// lets get rid of some warnings
-
-void CodetoSymbol(char *truncated);
-void GetData(void *param);
-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 ErrorMsgs(WPARAM wParam, LPARAM lParam);
-int OSDAlert(WPARAM wParam, LPARAM lParam);
-
-void ReadFromFile(void *hContact);
-
-/////////////////////////////////////////////////////////////////////////////////////////
-// some globals for window settings
-
-extern int Xposition, Yposition, WindowHeight, WindowWidth;
-extern COLORREF BackgoundClr, TextClr;
-extern UINT_PTR timerId, Countdown;
-extern LOGFONT g_lf;
-extern HFONT h_font;
-extern HMENU hMenu;
-extern int bpStatus;
-extern HNETLIBUSER hNetlibUser;
-extern MWindowList hWindowList;
-extern HGENMENU hMenuItem1, hMenuItemCountdown;
-extern char optionsname[80];
-
-/////////////////////////////////////////////////////////////////////////////////////////
-// lets get rid of some warnings
-
-void CALLBACK timerfunc(HWND, UINT, UINT_PTR, DWORD);
-void CALLBACK Countdownfunc(HWND, UINT, UINT_PTR, DWORD);
-void SavewinSettings(void);
-void ValidatePosition(HWND hwndDlg);
-int ModulesLoaded(WPARAM wParam, LPARAM lParam);
-wchar_t* FixButtonText(wchar_t *url, size_t len);
-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 CntOptionsMenuCommand(WPARAM wParam, LPARAM lParam);
-INT_PTR CntAlertMenuCommand(WPARAM wParam, LPARAM lParam);
-INT_PTR DataWndMenuCommand(WPARAM wParam, LPARAM lParam);
-INT_PTR PingWebsiteMenuCommand(WPARAM wParam, LPARAM lParam);
-INT_PTR StpPrcssMenuCommand(WPARAM wParam, LPARAM lParam);
-
-int UpdateMenuCommand(WPARAM wParam, LPARAM lParam, MCONTACT singlecontact);
-int OnTopMenuCommand(WPARAM wParam, LPARAM lParam, MCONTACT 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(MCONTACT 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);
-int OptInitialise(WPARAM, LPARAM);
-
-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);
-int SiteDeleted(WPARAM wParam, LPARAM lParam);
-
-int WErrorPopup(MCONTACT hContact, wchar_t *textdisplay);
-int WAlertPopup(MCONTACT hContact, wchar_t *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"
-
-/////////////////////////////////////////////////////////////////////////////////////////
-
-struct CMPlugin : public PLUGIN<CMPlugin>
-{
- CMPlugin();
-
- int Load() override;
- int Unload() override;
-};
diff --git a/plugins/WebView/src/webview_alerts.cpp b/plugins/WebView/src/webview_alerts.cpp deleted file mode 100644 index 0c8e36cceb..0000000000 --- a/plugins/WebView/src/webview_alerts.cpp +++ /dev/null @@ -1,839 +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"
-
-/*****************************************************************************/
-int CALLBACK PopupDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
-{
- switch (message) {
- case WM_COMMAND:
- case WM_CONTEXTMENU:
- MCONTACT hContact = PUGetContact(hWnd);
- ptrW url(g_plugin.getWStringA(hContact, URL_KEY));
-
- if (message == WM_COMMAND) { // left click
- if (hContact != NULL) {
- // open data window
- if (g_plugin.getByte(LCLK_WINDOW_KEY, 0)) {
- NotifyEventHooks(hHookDisplayDataAlert, (int)hContact, 0);
- mir_forkthread(GetData, (void*)hContact);
- PUDeletePopup(hWnd);
- }
- // open url
- if (g_plugin.getByte(LCLK_WEB_PGE_KEY, 0)) {
- Utils_OpenUrlW(url);
- PUDeletePopup(hWnd);
- g_plugin.setWord(wParam, "Status", ID_STATUS_ONLINE);
- }
- // dismiss
- if (g_plugin.getByte(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 (g_plugin.getByte(RCLK_WINDOW_KEY, 0)) {
- NotifyEventHooks(hHookDisplayDataAlert, (int)hContact, 0);
- mir_forkthread(GetData, (void*)hContact);
- PUDeletePopup(hWnd);
- }
- // open url
- if (g_plugin.getByte(RCLK_WEB_PGE_KEY, 1)) {
- Utils_OpenUrlW(url);
- PUDeletePopup(hWnd);
- g_plugin.setWord(wParam, "Status", ID_STATUS_ONLINE);
- }
- // dismiss
- if (g_plugin.getByte(RCLK_DISMISS_KEY, 0))
- PUDeletePopup(hWnd);
- }
- else if (hContact == NULL)
- PUDeletePopup(hWnd);
- }
- break;
- }
-
- return DefWindowProc(hWnd, message, wParam, lParam);
-}
-
-/*****************************************************************************/
-int WDisplayDataAlert(MCONTACT hContact)
-{
- NotifyEventHooks(hHookDisplayDataAlert, hContact, 0);
- return 0;
-}
-
-/*****************************************************************************/
-int WAlertPopup(MCONTACT hContact, wchar_t *displaytext)
-{
- NotifyEventHooks(hHookAlertPopup, hContact, (LPARAM)displaytext);
- return 0;
-}
-
-/*****************************************************************************/
-int WErrorPopup(MCONTACT hContact, wchar_t *textdisplay)
-{
- NotifyEventHooks(hHookErrorPopup, hContact, (LPARAM)textdisplay);
- return 0;
-}
-
-/*****************************************************************************/
-int WAlertOSD(MCONTACT hContact, wchar_t *displaytext)
-{
- NotifyEventHooks(hHookAlertOSD, hContact, (LPARAM)displaytext);
- return 0;
-}
-
-/*****************************************************************************/
-int PopupAlert(WPARAM hContact, LPARAM lParam)
-{
- POPUPDATAW ppd = { 0 };
-
- if (hContact != 0)
- mir_wstrncpy(ppd.lpwzContactName, ptrW(g_plugin.getWStringA(hContact, PRESERVE_NAME_KEY)), _countof(ppd.lpwzContactName));
- else
- mir_wstrcpy(ppd.lpwzContactName, _A2W(MODULENAME));
-
- ppd.lchContact = hContact;
- ppd.lchIcon = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_SITE));
-
- wchar_t *displaytext = (wchar_t*)lParam;
- if ((mir_wstrlen(displaytext) == MAX_SECONDLINE) || (mir_wstrlen(displaytext) > MAX_SECONDLINE))
- mir_snwprintf(ppd.lpwzText, displaytext);
- else if (mir_wstrlen(displaytext) < MAX_SECONDLINE)
- mir_snwprintf(ppd.lpwzText, displaytext);
-
- if (g_plugin.getByte(POP_USECUSTCLRS_KEY, 0)) {
- ppd.colorBack = g_plugin.getDword(POP_BG_CLR_KEY, Def_color_bg);
- ppd.colorText = g_plugin.getDword(POP_TXT_CLR_KEY, Def_color_txt);
- }
- else if (g_plugin.getByte(POP_USEWINCLRS_KEY, 0)) {
- ppd.colorBack = GetSysColor(COLOR_BTNFACE);
- ppd.colorText = GetSysColor(COLOR_WINDOWTEXT);
- }
- else if (g_plugin.getByte(POP_USESAMECLRS_KEY, 1)) {
- ppd.colorBack = BackgoundClr;
- ppd.colorText = TextClr;
- }
-
- ppd.PluginWindowProc = nullptr;
- ppd.iSeconds = g_plugin.getDword(POP_DELAY_KEY, 0);
-
- if (ServiceExists(MS_POPUP_ADDPOPUPW))
- CallService(MS_POPUP_ADDPOPUPW, (WPARAM)&ppd, 0);
-
- return 0;
-}
-
-/*****************************************************************************/
-int OSDAlert(WPARAM hContact, LPARAM lParam)
-{
- char contactname[255], newdisplaytext[2000];
- contactname[0] = 0;
-
- if (hContact != NULL) {
- DBVARIANT dbv;
- if (!g_plugin.getString(hContact, PRESERVE_NAME_KEY, &dbv)) {
- strncpy_s(contactname, _countof(contactname), dbv.pszVal, _TRUNCATE);
- db_free(&dbv);
- }
- }
- if (contactname[0] == 0)
- strncpy_s(contactname, _countof(contactname), MODULENAME, _TRUNCATE);
-
- char *displaytext = (char*)lParam;
- mir_snprintf(newdisplaytext, "%s: %s", contactname, Translate(displaytext));
-
- if (ServiceExists("OSD/Announce"))
- CallService("OSD/Announce", (WPARAM)newdisplaytext, 0);
-
- return 0;
-}
-
-/*****************************************************************************/
-int ErrorMsgs(WPARAM wParam, LPARAM lParam)
-{
- MCONTACT hContact = wParam;
- wchar_t newdisplaytext[2000], *displaytext = (wchar_t*)lParam;
-
- if (g_plugin.getByte(SUPPRESS_ERR_KEY, 0))
- return 0;
-
- wchar_t *ptszContactName = Clist_GetContactDisplayName(hContact);
- if (ServiceExists(MS_POPUP_ADDPOPUPW) && g_plugin.getByte(ERROR_POPUP_KEY, 0)) {
- mir_snwprintf(newdisplaytext, L"%s\n%s", ptszContactName, displaytext);
- PUShowMessageW(newdisplaytext, SM_WARNING);
- }
- else if (ServiceExists("OSD/Announce") && g_plugin.getByte(ERROR_POPUP_KEY, 0)) {
- mir_snwprintf(newdisplaytext, L"%s: %s", ptszContactName, TranslateW(displaytext));
- CallService("OSD/Announce", (WPARAM)newdisplaytext, 0);
- }
-
- Clist_TrayNotifyW(nullptr, ptszContactName, TranslateW(displaytext), NIIF_ERROR, 15000);
- return 0;
-}
-
-/*****************************************************************************/
-void SaveToFile(MCONTACT hContact, char *truncated)
-{
- char *mode;
- if (!g_plugin.getByte(hContact, APPEND_KEY, 0))
- mode = "w";
- else
- mode = "a";
-
- char url[300]; url[0] = '\0';
- DBVARIANT dbv;
- if (!g_plugin.getString(hContact, URL_KEY, &dbv)) {
- strncpy_s(url, _countof(url), dbv.pszVal, _TRUNCATE);
- db_free(&dbv);
- }
-
- if (g_plugin.getString(hContact, FILE_KEY, &dbv))
- return;
-
- FILE *pfile = fopen(dbv.pszVal, mode);
- if (pfile == nullptr)
- WErrorPopup(hContact, TranslateT("Cannot write to file"));
- else {
- char timestring[128], timeprefix[32];
- char temptime1[32], temptime2[32];
-
- time_t ftime = time(0);
- struct tm *nTime = localtime(&ftime);
-
- mir_snprintf(timeprefix, " %s ", Translate("Last updated on"));
- strftime(temptime1, 32, " %a, %b %d, %Y ", nTime);
- strftime(temptime2, 32, " %I:%M %p.", nTime);
- mir_snprintf(timestring, "(%s)%s\n%s,%s\n", MODULENAME, url, temptime1, temptime2);
-
- fputs(timestring, pfile);
- fwrite(truncated, mir_strlen(truncated), 1, pfile);
- fputs("\n\n", pfile);
- fclose(pfile);
- }
-
- db_free(&dbv);
-}
-
-/*****************************************************************************/
-int ProcessAlerts(MCONTACT hContact, char *truncated, char *tstr, char *contactname, int notpresent)
-{
- char alertstring[255];
- wchar_t displaystring[300];
- FILE *pcachefile;
- 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];
-
- int alertIndex = 0, eventIndex = 0;
-
- char tempraw[MAXSIZE1];
- memset(&tempraw, 0, sizeof(tempraw));
- memset(&raw, 0, sizeof(raw));
-
- strncpy(tempraw, truncated, _countof(tempraw));
-
- memset(&alertstring, 0, sizeof(alertstring));
- memset(&Alerttempstring, 0, sizeof(Alerttempstring));
- memset(&Alerttempstring2, 0, sizeof(Alerttempstring2));
- memset(&cachecompare, 0, sizeof(cachecompare));
-
- // alerts
- if (g_plugin.getByte(hContact, ENABLE_ALERTS_KEY, 0)) { // ALERTS
- alertIndex = g_plugin.getByte(hContact, ALRT_INDEX_KEY, 0);
- eventIndex = g_plugin.getByte(hContact, EVNT_INDEX_KEY, 0);
- if (notpresent) {
- if (alertIndex == 0) { // Popup
- Sleep(1000);
- WAlertPopup(hContact, TranslateT("Start/end strings not found or strings not set."));
- // contactlist name//
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- }
- else if (alertIndex == 1) { // log to file
- if (!g_plugin.getString(hContact, FILE_KEY, &tdbv)) {
- int AmountWspcRem = 0;
-
- if (!g_plugin.getByte(hContact, SAVE_AS_RAW_KEY, 0)) {
- CodetoSymbol(tempraw);
- Sleep(100); // avoid 100% CPU
-
- EraseBlock(tempraw);
- Sleep(100); // avoid 100% CPU
-
- FastTagFilter(tempraw);
- Sleep(100); // avoid 100% CPU
-
- NumSymbols(tempraw);
- Sleep(100); // avoid 100% CPU
-
- EraseSymbols(tempraw);
- Sleep(100); // avoid 100% CPU
-
- AmountWspcRem = g_plugin.getByte(hContact, RWSPACE_KEY, 0);
- RemoveInvis(tempraw, AmountWspcRem);
- Sleep(100); // avoid 100% CPU
-
- Removewhitespace(tempraw);
- }
-
- SaveToFile(hContact, tempraw);
- db_free(&tdbv);
-
- if (g_plugin.getByte(hContact, 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 (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- }
- else if (eventIndex == 2) {
- WDisplayDataAlert(hContact);
-
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
-
- HWND hwndDlg = (WindowList_Find(hWindowList, hContact));
-
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Start/end strings not found or strings not set."));
- }
- else MessageBox(nullptr, TranslateT("Start/end strings not found or strings not set."), _A2W(MODULENAME), MB_OK);
- }
-
- if (eventIndex == 0) { // string present
- if (!g_plugin.getString(hContact, ALERT_STRING_KEY, &tdbv)) {
- strncpy_s(alertstring, _countof(alertstring), tdbv.pszVal, _TRUNCATE);
- db_free(&tdbv);
-
- if ((strstr(tempraw, alertstring)) != nullptr) { // // ENDALERT EVENT:CHECK FOR STRING
- // there was an alert
- wasAlert = 1;
-
- // play sound?
- Skin_PlaySound("webviewalert");
- //
- if ((!notpresent)) {
- if (alertIndex == 0) { // popup
- mir_snwprintf(displaystring, L"%s \"%S\" %s.", Translate("The string"), alertstring, Translate("has been found on the web page"));
- WAlertPopup(hContact, displaystring);
-
- // contactlist name//
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- } //
- else if (alertIndex == 1) {
- if (!g_plugin.getString(hContact, FILE_KEY, &tdbv)) {
- int AmountWspcRem = 0;
- if (!g_plugin.getByte(hContact, SAVE_AS_RAW_KEY, 0)) {
- CodetoSymbol(tempraw);
- Sleep(100); // avoid 100% CPU
-
- EraseBlock(tempraw);
- Sleep(100); // avoid 100% CPU
-
- FastTagFilter(tempraw);
- Sleep(100); // avoid 100% CPU
-
- NumSymbols(tempraw);
- Sleep(100); // avoid 100% CPU
-
- EraseSymbols(tempraw);
- Sleep(100); // avoid 100% CPU
-
- AmountWspcRem = g_plugin.getByte(hContact, RWSPACE_KEY, 0);
- RemoveInvis(tempraw, AmountWspcRem);
- Sleep(100); // avoid 100% CPU
-
- Removewhitespace(tempraw);
- }
- SaveToFile(hContact, tempraw);
- db_free(&tdbv);
-
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- }
- }
- else if (alertIndex == 3) {
- mir_snwprintf(displaystring, L"%s \"%s\" %s.", TranslateT("The string"), alertstring, TranslateT("has been found on the web page"));
- WAlertOSD(hContact, displaystring);
-
- // contactlist name//
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- }
- else if (alertIndex == 2) {
- WDisplayDataAlert(hContact);
- // contactlist name//
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
-
- HWND hwndDlg = WindowList_Find(hWindowList, hContact);
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Download successful; about to process data..."));
- }
- else MessageBox(nullptr, TranslateT("Unknown alert type."), _A2W(MODULENAME), MB_OK);
- }
- }
- }
- }
- else if (eventIndex == 1) { // webpage changed
- // TEST GET NAME FOR CACHE
- wchar_t cachepath[MAX_PATH], cachedirectorypath[MAX_PATH], newcachepath[MAX_PATH + 50];
- GetModuleFileName(g_plugin.getInst(), cachepath, _countof(cachepath));
- wchar_t *cacheend = wcsrchr(cachepath, '\\');
- cacheend++;
- *cacheend = '\0';
-
- mir_snwprintf(cachedirectorypath, L"%s%S%S", cachepath, MODULENAME, "cache\\");
- CreateDirectory(cachedirectorypath, nullptr);
- mir_snwprintf(newcachepath, L"%s%S%S%S%S", cachepath, MODULENAME, "cache\\", contactname, ".txt");
- // file exists?
- if (_waccess(newcachepath, 0) != -1) {
- if ((pcachefile = _wfopen(newcachepath, L"r")) == nullptr)
- WErrorPopup((UINT_PTR)contactname, TranslateT("Cannot read from file"));
- else {
- memset(&cachecompare, 0, sizeof(cachecompare));
- fread(cachecompare, sizeof(cachecompare), 1, pcachefile);
- fclose(pcachefile);
- }
- }
- // write to cache
- if ((pcachefile = _wfopen(newcachepath, L"w")) == nullptr)
- WErrorPopup((UINT_PTR)contactname, TranslateT("Cannot write to file 1"));
- else {
- fwrite(tempraw, mir_strlen(tempraw), 1, pcachefile); //smaller cache
- fclose(pcachefile);
- g_plugin.setWString(hContact, CACHE_FILE_KEY, newcachepath);
- }
- // end write to cache
-
- if (strncmp(tempraw, cachecompare, mir_strlen(tempraw)) != 0) { //lets try this instead
- // play sound?
- Skin_PlaySound("webviewalert");
- // there was an alert
- wasAlert = 1;
-
- if (!notpresent) {
- if (alertIndex == 0) { // popup
- WAlertPopup(hContact, TranslateT("The web page has changed."));
- // contactlist name//
- if (g_plugin.getByte(hContact, 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 (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- }
- else if (alertIndex == 1) { // log
- if (!g_plugin.getString(hContact, FILE_KEY, &tdbv)) {
- int AmountWspcRem = 0;
-
- if (!g_plugin.getByte(hContact, SAVE_AS_RAW_KEY, 0)) {
- CodetoSymbol(tempraw);
- Sleep(100); // avoid 100% CPU
-
- EraseBlock(tempraw);
- Sleep(100); // avoid 100% CPU
-
- FastTagFilter(tempraw);
- Sleep(100); // avoid 100% CPU
-
- NumSymbols(tempraw);
- Sleep(100); // avoid 100% CPU
-
- EraseSymbols(tempraw);
- Sleep(100); // avoid 100% CPU
-
- AmountWspcRem = g_plugin.getByte(hContact, RWSPACE_KEY, 0);
- RemoveInvis(tempraw, AmountWspcRem);
- Sleep(100); // avoid 100% CPU
-
- Removewhitespace(tempraw);
- }
-
- SaveToFile(hContact, tempraw);
- db_free(&tdbv);
- // contactlist name//
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- }
- }
- else if (alertIndex == 2) { // window
- WDisplayDataAlert(hContact);
- // contactlist name//
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- }
- else MessageBox(nullptr, TranslateT("Unknown alert type."), _A2W(MODULENAME), MB_OK);
- }
- }
- }
-
- if (eventIndex == 2) { // part of webpage changed
- Alerttempstring[0] = Alerttempstring2[0] = 0;
- if (!g_plugin.getString(hContact, ALRT_S_STRING_KEY, &tdbv)) {
- strncpy_s(Alerttempstring, _countof(Alerttempstring), tdbv.pszVal, _TRUNCATE);
- db_free(&tdbv);
- }
- if (!g_plugin.getString(hContact, ALRT_E_STRING_KEY, &tdbv)) {
- strncpy_s(Alerttempstring2, _countof(Alerttempstring2), tdbv.pszVal, _TRUNCATE);
- db_free(&tdbv);
- }
-
- // putting data into string
- if (((strstr(tempraw, Alerttempstring)) != nullptr) && ((strstr(tempraw, Alerttempstring2)) != nullptr)) {
- //start string
- alertpos = strstr(tempraw, Alerttempstring);
- statalertpos = alertpos - tempraw;
-
- memset(&alertpos, 0, sizeof(alertpos));
- //end string
- alertpos = strstr(tempraw, Alerttempstring2);
- statalertposend = alertpos - tempraw + (int)mir_strlen(Alerttempstring2);
-
- if (statalertpos > statalertposend) {
- memset(&tempraw, ' ', statalertpos);
- memset(&alertpos, 0, sizeof(alertpos));
- alertpos = strstr(tempraw, Alerttempstring2);
- statalertposend = alertpos - tempraw + (int)mir_strlen(Alerttempstring2);
- }
-
- if (statalertpos < statalertposend) {
- memset(&raw, 0, sizeof(raw));
-
- //start string
- alertpos = strstr(tempraw, Alerttempstring);
- statalertpos = alertpos - tempraw;
-
- //end string
- alertpos = strstr(tempraw, Alerttempstring2);
- statalertposend = alertpos - tempraw + (int)mir_strlen(Alerttempstring2);
-
- if (statalertpos > statalertposend) {
- memset(&tempraw, ' ', statalertpos);
- memset(&alertpos, 0, sizeof(alertpos));
- alertpos = strstr(tempraw, Alerttempstring2);
- statalertposend = alertpos - tempraw + (int)mir_strlen(Alerttempstring2);
- }
- disalertpos = 0;
-
- //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
- Sleep(1000);
- WAlertPopup(hContact, TranslateT("Alert start/end strings not found or strings not set."));
- // contactlist name//
- if (g_plugin.getByte(hContact, 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 (!g_plugin.getString(hContact, FILE_KEY, &tdbv)) {
- int AmountWspcRem = 0;
- if (!g_plugin.getByte(hContact, SAVE_AS_RAW_KEY, 0)) {
- CodetoSymbol(tempraw);
- Sleep(100); // avoid 100% CPU
-
- EraseBlock(tempraw);
- Sleep(100); // avoid 100% CPU
-
- FastTagFilter(tempraw);
- Sleep(100); // avoid 100% CPU
-
- NumSymbols(tempraw);
- Sleep(100); // avoid 100% CPU
-
- EraseSymbols(tempraw);
- Sleep(100); // avoid 100% CPU
-
- AmountWspcRem = g_plugin.getByte(hContact, RWSPACE_KEY, 0);
- RemoveInvis(tempraw, AmountWspcRem);
- Sleep(100); // avoid 100% CPU
-
- Removewhitespace(tempraw);
- }
-
- SaveToFile(hContact, tempraw);
- db_free(&tdbv);
- // contactlist name
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- }
- }
- }
- else if (alertIndex == 3) { // osd
- WAlertOSD(hContact, TranslateT("Alert start/end strings not found or strings not set."));
- // contactlist name//
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- }
- else if (alertIndex == 2) { // window
- WDisplayDataAlert(hContact);
- // contactlist name//
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
-
- HWND hwndDlg = (WindowList_Find(hWindowList, hContact));
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Alert start/end strings not found or strings not set."));
- }
- else MessageBox(nullptr, TranslateT("Alert start/end strings not found or strings not set."), _A2W(MODULENAME), MB_OK);
-
- g_plugin.setWord(hContact, "Status", ID_STATUS_AWAY);
- }
-
- ///////////////
- if (((strstr(tempraw, Alerttempstring)) != nullptr) && ((strstr(tempraw, Alerttempstring2)) != nullptr)) {
- // TEST GET NAME FOR CACHE
- wchar_t cachepath[MAX_PATH], cachedirectorypath[MAX_PATH], newcachepath[MAX_PATH + 50];
- GetModuleFileName(g_plugin.getInst(), cachepath, _countof(cachepath));
- wchar_t *cacheend = wcsrchr(cachepath, '\\');
- cacheend++;
- *cacheend = '\0';
-
- mir_snwprintf(cachedirectorypath, L"%s%S%S", cachepath, MODULENAME, "cache\\");
- CreateDirectory(cachedirectorypath, nullptr);
- mir_snwprintf(newcachepath, L"%s%S%S%S%S", cachepath, MODULENAME, "cache\\", contactname, ".txt");
- // file exists?
- if (_waccess(newcachepath, 0) != -1) {
- if ((pcachefile = _wfopen(newcachepath, L"r")) == nullptr)
- WErrorPopup((UINT_PTR)contactname, TranslateT("Cannot read from file"));
- else {
- memset(&cachecompare, 0, sizeof(cachecompare));
- fread(cachecompare, sizeof(cachecompare), 1, pcachefile);
- fclose(pcachefile);
- }
- }
- // write to cache
- if ((pcachefile = _wfopen(newcachepath, L"w")) == nullptr)
- WErrorPopup((UINT_PTR)contactname, TranslateT("Cannot write to file 2"));
- else {
- fwrite(raw, mir_strlen(raw), 1, pcachefile); //smaller cache
- g_plugin.setWString(hContact, CACHE_FILE_KEY, newcachepath);
- fclose(pcachefile);
- }
- // end write to cache
- if (strncmp(raw, cachecompare, (mir_strlen(raw))) != 0) { //lets try this instead
- // play sound?
- Skin_PlaySound("webviewalert");
- // there was an alert
- wasAlert = 1;
-
- if (!notpresent) {
- if (alertIndex == 0) { // popup
- WAlertPopup(hContact, TranslateT("Specific part of the web page has changed."));
- // contactlist name//
- if (g_plugin.getByte(hContact, 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 (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- }
- else if (alertIndex == 1) { // log to file
- if (!g_plugin.getString(hContact, FILE_KEY, &tdbv)) {
- int AmountWspcRem = 0;
- if (!g_plugin.getByte(hContact, SAVE_AS_RAW_KEY, 0)) {
- CodetoSymbol(tempraw);
- Sleep(100); // avoid 100% CPU
-
- EraseBlock(tempraw);
- Sleep(100); // avoid 100% CPU
-
- FastTagFilter(tempraw);
- Sleep(100); // avoid 100% CPU
-
- NumSymbols(tempraw);
- Sleep(100); // avoid 100% CPU
-
- EraseSymbols(tempraw);
- Sleep(100); // avoid 100% CPU
-
- AmountWspcRem = g_plugin.getByte(hContact, RWSPACE_KEY, 0);
- RemoveInvis(tempraw, AmountWspcRem);
- Sleep(100); // avoid 100% CPU
-
- Removewhitespace(tempraw);
- }
-
- SaveToFile(hContact, tempraw);
- db_free(&tdbv);
- // contactlist name
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- }
- }
- else if (alertIndex == 2) { // window
- WDisplayDataAlert(hContact);
- // contactlist name//
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- }
- else MessageBox(nullptr, TranslateT("Unknown alert type."), _A2W(MODULENAME), MB_OK);
- }
- }
- }
- } // alert type
- }
- // end alerts
-
- //if always log to file option is enabled do this
- if (wasAlert && alertIndex != 1) { // dont do for log to file alert
- if (g_plugin.getByte(hContact, ALWAYS_LOG_KEY, 0)) {
- if (!g_plugin.getString(hContact, FILE_KEY, &tdbv)) {
- int AmountWspcRem = 0;
-
- if (!g_plugin.getByte(hContact, SAVE_AS_RAW_KEY, 0)) {
- CodetoSymbol(tempraw);
- Sleep(100); // avoid 100% CPU
-
- EraseBlock(tempraw);
- Sleep(100); // avoid 100% CPU
-
- FastTagFilter(tempraw);
- Sleep(100); // avoid 100% CPU
-
- NumSymbols(tempraw);
- Sleep(100); // avoid 100% CPU
-
- EraseSymbols(tempraw);
- Sleep(100); // avoid 100% CPU
-
- AmountWspcRem = g_plugin.getByte(hContact, RWSPACE_KEY, 0);
- RemoveInvis(tempraw, AmountWspcRem);
- Sleep(100); // avoid 100% CPU
-
- Removewhitespace(tempraw);
- }
-
- SaveToFile(hContact, tempraw);
- db_free(&tdbv);
- }
- }
- }
- strncpy(truncated, tempraw, mir_strlen(truncated));
- return wasAlert;
-}
-
-/*****************************************************************************/
-int DataWndAlertCommand(WPARAM wParam, LPARAM)
-{
- MCONTACT hContact = wParam;
- if (WindowList_Find(hWindowList, hContact))
- return 0;
-
- HWND hwndDlg = CreateDialogParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_DISPLAY_DATA), nullptr, DlgProcDisplayData, 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", 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);
- return 0;
-}
-
-/*****************************************************************************/
-void ReadFromFile(void *param)
-{
- MCONTACT hContact = (UINT_PTR)param;
-
- DBVARIANT dbv;
- char truncated[MAXSIZE1];
- int AmountWspcRem = 0;
- int fileexists = 0;
-
- HWND hwndDlg = WindowList_Find(hWindowList, hContact);
-
- char contactname[100]; contactname[0] = 0;
- if (!db_get_s(hContact, "CList", "MyHandle", &dbv)) {
- strncpy_s(contactname, _countof(contactname), dbv.pszVal, _TRUNCATE);
- db_free(&dbv);
- }
-
- if (g_plugin.getString(hContact, CACHE_FILE_KEY, &dbv))
- return;
-
- FILE *pfile;
- if ((pfile = fopen(dbv.pszVal, "r")) == nullptr) {
- SendToRichEdit(hwndDlg, Translate("Cannot read from cache file"), TextClr, BackgoundClr);
- fileexists = 0;
- }
- else {
- fread(truncated, sizeof(truncated), 1, pfile);
- fclose(pfile);
- fileexists = 1;
- }
-
- db_free(&dbv);
-
- if (fileexists) {
- CodetoSymbol(truncated);
- Sleep(100); // avoid 100% CPU
-
- EraseBlock(truncated);
- Sleep(100); // avoid 100% CPU
-
- FastTagFilter(truncated);
- Sleep(100); // avoid 100% CPU
-
- NumSymbols(truncated);
- Sleep(100); // avoid 100% CPU
-
- EraseSymbols(truncated);
- Sleep(100); // avoid 100% CPU
-
- AmountWspcRem = g_plugin.getByte(hContact, RWSPACE_KEY, 0);
- RemoveInvis(truncated, AmountWspcRem);
- Sleep(100); // avoid 100% CPU
-
- 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 deleted file mode 100644 index 9325881d38..0000000000 --- a/plugins/WebView/src/webview_cleanup.cpp +++ /dev/null @@ -1,797 +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"
-
-// ///////////////////////
-// 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 CodetoSymbol(char *truncated)
-{
- int counter = 0;
- int position = 0, recpos = 0;
- static char *stringfrompos;
-
- for (int n = 0; n < AMOUNT3; n++) {
- while (true) { // loop forever
- Sleep(1); // avoid 100% CPU
-
- if ( strstr(truncated, CharacterCodes[n]) != nullptr) { // does character code exist?
- stringfrompos = strstr(truncated, CharacterCodes[n]);
-
- position = stringfrompos - truncated;
- counter = 0;
- while (counter != mir_strlen(CharacterCodes[n])) {
- truncated[position + counter] = ' ';
- counter++;
- }
-
- truncated[(position + counter) - 1] = Characters[n];
- strncpy(&truncated[position], &truncated[position + mir_strlen(CharacterCodes[n])] - 1, mir_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;
- int BlockLength = 0;
-
- char* tempraw = (char*)malloc(MAXSIZE1);
- if (truncated)
- strncpy(tempraw, truncated, MAXSIZE1);
-
- // ///////////////////////////
-
- while (true) {
- Sleep(1); // avoid 100% CPU
- // /get start and end of block
-
- if (strstr(tempraw, "<!--") != nullptr) // does tag exist?
- {
- stringfrompos = strstr(tempraw, "<!--");
- positionStart = stringfrompos - tempraw;
- }
-
- if (strstr(tempraw, "-->") != nullptr) // does tag exist?
- {
- stringfrompos = strstr(tempraw, "-->");
- positionEnd = stringfrompos - tempraw;
- }
- BlockLength = (positionEnd - positionStart) + 3;
-
- if ((strstr(tempraw, "<!--") == nullptr) || (strstr(tempraw, "-->") == nullptr))
- break;
-
- /////////////////////////////////////////
-
- if (strstr(tempraw, "<!--") != nullptr)
- for (counter = 0; counter < BlockLength; counter++)
- tempraw[positionStart + counter] = ' ';
-
- if ((positionStart == 0) && (positionEnd == 0))
- break;
- if (positionStart > positionEnd)
- break;
-
- positionStart = 0;
- positionEnd = 0;
- }
-
- // ///////////////////////////
- positionStart = 0;
- positionEnd = 0;
-
- // 2//
- while (true) {
- Sleep(1); // avoid 100% CPU
- // /get start and end of block
-
- if (((strstr(tempraw, "<script")) != nullptr) || (strstr(tempraw, "<SCRIPT") != nullptr)) // does
- {
- if (strstr(tempraw, "<script") != nullptr)
- stringfrompos = strstr(tempraw, "<script");
- else
- stringfrompos = strstr(tempraw, "<SCRIPT");
-
- positionStart = stringfrompos - tempraw;
- }
-
- if (((strstr(tempraw, "</script")) != nullptr) || (strstr(tempraw, "</SCRIPT") != nullptr)) // does
- {
- if (strstr(tempraw, "<script") != nullptr)
- stringfrompos = strstr(tempraw, "</script");
- else
- stringfrompos = strstr(tempraw, "</SCRIPT");
-
- positionEnd = stringfrompos - tempraw;
- }
- BlockLength = (positionEnd - positionStart) + 9;
-
- if ((strstr(tempraw, "<script") != nullptr) && (strstr(tempraw, "</script") == nullptr))
- break;
-
- if ((strstr(tempraw, "<SCRIPT") != nullptr) && (strstr(tempraw, "</SCRIPT") == nullptr))
- break;
-
- ///////////////////////////////////////
-
- if (((strstr(tempraw, "<script")) != nullptr) || ((strstr(tempraw, "<SCRIPT")) != nullptr))
- for (counter = 0; counter < BlockLength; counter++)
- tempraw[positionStart + counter] = ' ';
-
- if ((positionStart == 0) && (positionEnd == 0))
- break;
- if (positionStart > positionEnd)
- break;
-
- positionStart = 0;
- positionEnd = 0;
- }
-
- // ////
- // 3//
- while (true)
- {
- Sleep(1); // avoid 100% CPU
- // /get start and end of block
-
- if (((strstr(tempraw, "<style")) != nullptr) || (strstr(tempraw, "<STYLE") != nullptr)) // does
- {
- if (strstr(tempraw, "<style") != nullptr)
- stringfrompos = strstr(tempraw, "<style");
- else
- stringfrompos = strstr(tempraw, "<STYLE");
-
- positionStart = stringfrompos - tempraw;
- }
-
- if (((strstr(tempraw, "</style")) != nullptr) || (strstr(tempraw, "</STYLE") != nullptr)) // does
- {
- if (strstr(tempraw, "<style") != nullptr)
- stringfrompos = strstr(tempraw, "</style");
- else
- stringfrompos = strstr(tempraw, "</STYLE");
-
- positionEnd = stringfrompos - tempraw;
- }
- BlockLength = (positionEnd - positionStart) + 8;
-
- if ((strstr(tempraw, "<style") != nullptr) && (strstr(tempraw, "</style") == nullptr))
- break;
-
- if ((strstr(tempraw, "<STYLE") != nullptr) && (strstr(tempraw, "</STYLE") == nullptr))
- break;
-
- ///////////////////////////////////////
- if (((strstr(tempraw, "<style")) != nullptr) || ((strstr(tempraw, "<STYLE")) != nullptr))
- for (counter = 0; counter < BlockLength; counter++)
- tempraw[positionStart + counter] = ' ';
-
- if ((positionStart == 0) && (positionEnd == 0))
- break;
- if (positionStart > positionEnd)
- break;
-
- positionStart = 0;
- positionEnd = 0;
- }
-
- // 4//
-
- while (true) {
- Sleep(1); // avoid 100% CPU
- // /get start and end of block
- if (strstr(tempraw, "{") != nullptr) // does tag exist?
- {
- stringfrompos = strstr(tempraw, "{");
- positionStart = stringfrompos - tempraw;
- }
-
- if (strstr(tempraw, "}") != nullptr) // does tag exist?
- {
- stringfrompos = strstr(tempraw, "}");
- positionEnd = stringfrompos - tempraw;
- }
- BlockLength = (positionEnd - positionStart) + 1;
-
- if ((strstr(tempraw, "}") == nullptr) || (strstr(tempraw, "{") == nullptr))
- break;
-
- /////////////////////////////////////////
- if (strstr(tempraw, "{") != nullptr)
- for (counter = 0; counter < BlockLength; counter++)
- tempraw[positionStart + counter] = ' ';
-
- if ((positionStart == 0) && (positionEnd == 0))
- break;
- if (positionStart > positionEnd)
- break;
-
- positionStart = 0;
- positionEnd = 0;
- }
-
- // ///////////////////////////
- positionStart = 0;
- positionEnd = 0;
-
- strncpy(truncated, tempraw, mir_strlen(truncated));
- free(tempraw);
-}
-
-/*****************************************************************************/
-void EraseSymbols(char *truncated)
-{
- int counter = 0;
- int position = 0, recpos = 0;
- char *stringfrompos;
-
- char *tempraw = (char*)malloc(MAXSIZE1);
- if (truncated)
- strncpy(tempraw, truncated, MAXSIZE1);
-
- // //////
- while (true) {
- Sleep(1); // avoid 100% CPU
-
- /**/
- counter = 0;
- if ((strstr(tempraw, "&#")) != nullptr) {
- stringfrompos = strstr(tempraw, "&#");
- position = stringfrompos - tempraw;
-
- while (true) {
- tempraw[position + counter] = ' ';
- counter++;
- if (counter > 20)
- break;
- if (tempraw[position + counter] == ' ')
- break;
- }
- if (tempraw[position + counter] == ';')
- tempraw[position + counter] = ' ';
- }
- if (recpos == position)
- break;
- recpos = position;
- }
-
- strncpy(truncated, tempraw, mir_strlen(truncated));
- free(tempraw);
-}
-
-/*****************************************************************************/
-void NumSymbols(char *truncated)
-{
- int counter = 0;
- int position = 0, recpos = 0;
- char*stringfrompos;
- char symbol[20];
- int character;
-
- char *tempraw = (char*)malloc(MAXSIZE1);
- if (truncated)
- strncpy(tempraw, truncated, MAXSIZE1);
-
- while (true) {
- Sleep(1); // avoid 100% CPU
-
- counter = 0;
-
- if ((strstr(tempraw, "&#")) != nullptr) {
- stringfrompos = strstr(tempraw, "&#");
- position = stringfrompos - tempraw;
-
- while (true) {
- if (counter > 1)
- symbol[counter - 2] = tempraw[position + counter];
-
- tempraw[position + counter] = ' ';
- counter++;
- if (counter > 20)
- break;
-
- if ((tempraw[position + counter] == ';')) {
- symbol[counter - 2] = '\0';
- character = atoi(symbol);
-
- if (character > 0 && character < 256)
- memset(&tempraw[position], character, 1);
- break;
- }
- }
-
- if (tempraw[position + counter] == ';')
- tempraw[position + counter] = ' ';
- }
- if (recpos == position)
- break;
- recpos = position;
- }
-
- strncpy(truncated, tempraw, mir_strlen(truncated));
- free(tempraw);
-}
-
-/*****************************************************************************/
-void FastTagFilter(char *truncated)
-{
- char *tempraw = (char*)malloc(MAXSIZE1);
- if (truncated)
- strncpy(tempraw, truncated, MAXSIZE1);
-
- for (int counter = 0; counter < mir_strlen(tempraw); counter++) {
- if (tempraw[counter] == '<') {
- while (tempraw[counter] != '>') {
- if (counter >= mir_strlen(tempraw))
- break;
-
- tempraw[counter] = ' ';
- counter++;
- }
- if (tempraw[counter] == '>')
- tempraw[counter] = ' ';
- }
- }
-
- strncpy(truncated, tempraw, mir_strlen(truncated));
- free(tempraw);
-}
-
-/*****************************************************************************/
-void RemoveInvis(char *truncated, int AmountWspcRem)
-{
- int erase = 0;
- int RemovalLevel = 0;
-
- char *tempraw = (char*)malloc(MAXSIZE1);
- if (truncated)
- strncpy(tempraw, truncated, MAXSIZE1);
-
- switch (AmountWspcRem) {
- case 1:
- RemovalLevel = 80; // small
- break;
- case 2:
- RemovalLevel = 30; // medium
- break;
- case 3:
- RemovalLevel = 10; // large
- break;
- }
-
- for (int counter = 0; counter < mir_strlen(tempraw); counter++) {
- if (AmountWspcRem != 0 && AmountWspcRem != 4) {
- if ((tempraw[counter] == '\n') || (tempraw[counter] == ' ') || (tempraw[counter] == '\r'))
- erase = erase + 1;
- else
- erase = 0;
-
- if (erase > RemovalLevel)
- tempraw[counter] = ' ';
- }
-
- if (AmountWspcRem == 4)
- if ((tempraw[counter] == '\n') || (tempraw[counter] == ' ') || (tempraw[counter] == '\r'))
- tempraw[counter] = ' ';
- } // end for
-
- strncpy(truncated, tempraw, mir_strlen(truncated));
- free(tempraw);
-}
-
-/*****************************************************************************/
-void RemoveTabs(char *truncated)
-{
- char *tempraw = (char*)malloc(MAXSIZE1);
- if (truncated)
- strncpy(tempraw, truncated, MAXSIZE1);
-
- for (int counter = 0; counter < mir_strlen(tempraw); counter++)
- if (tempraw[counter] == '\t')
- tempraw[counter] = ' ';
-
- strncpy(truncated, tempraw, mir_strlen(truncated));
- free(tempraw);
-}
-
-/*****************************************************************************/
-void Removewhitespace(char *truncated)
-{
- int counter2 = 0;
- int pos1 = 0, pos2 = 0;
-
- for (int counter = 0; counter < mir_strlen(truncated); counter++) {
- if (truncated[counter] == ' ' && truncated[counter + 1] == ' ') {
- pos1 = counter + 1;
- counter2 = counter;
-
- while (truncated[counter2] == ' ')
- counter2++;
-
- pos2 = counter2;
- strncpy(&truncated[pos1], &truncated[pos2], mir_strlen(&truncated[pos1]) - 1);
- } // end if
- } // end for
-}
-
-/*****************************************************************************/
-void Filter(char *truncated)
-{
- char tempraw[MAXSIZE1];
- strncpy(tempraw, truncated, _countof(tempraw));
-
- for (int counter = 0; counter < mir_strlen(tempraw); counter++)
- if ((tempraw[counter] == '\n') || (tempraw[counter] == '\r') || (tempraw[counter] == '\t'))
- strncpy(&tempraw[counter], &tempraw[counter + 1], mir_strlen(&tempraw[counter]) - 1);
-
- strncpy(truncated, tempraw, mir_strlen(truncated));
-}
diff --git a/plugins/WebView/src/webview_datawnd.cpp b/plugins/WebView/src/webview_datawnd.cpp deleted file mode 100644 index f87b88a16e..0000000000 --- a/plugins/WebView/src/webview_datawnd.cpp +++ /dev/null @@ -1,514 +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"
-
-/*****************************************************************************/
-INT_PTR CALLBACK DlgProcFind(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- static char Searchstr[128];
- static int loc;
- static int oldloc;
- static int startposition;
- static int OLDstartposition;
-
- HWND ParentHwnd = GetParent(hwndDlg);
-
- switch (msg) {
- case WM_INITDIALOG:
- TranslateDialogDefault(hwndDlg);
- SetWindowLongPtr(hwndDlg, GWLP_USERDATA, lParam);
- SetWindowText(hwndDlg, TranslateT("Find"));
- SendMessage(hwndDlg, WM_SETICON, ICON_SMALL, (LPARAM)LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_FIND)));
- return TRUE;
-
- case WM_COMMAND:
- switch (LOWORD(wParam)) {
- case IDC_OK: // find Next
- {
- char NewSearchstr[128];
- int location = 0;
- int startsel = 0, endsel = 0;
- char buff[MAXSIZE1];
-
- memset(&NewSearchstr, 0, sizeof(NewSearchstr));
-
- int len = GetWindowTextLength(GetDlgItem(ParentHwnd, IDC_DATA));
-
- char *tempbuffer = (char*)malloc(len + 2);
-
- GetDlgItemTextA(ParentHwnd, IDC_DATA, tempbuffer, len);
- strncpy(buff, tempbuffer, _countof(buff));
- free(tempbuffer);
-
- Filter(buff);
- CharUpperBuffA(buff, (int)mir_strlen(buff));
-
- GetDlgItemTextA(hwndDlg, IDC_FINDWHAT, NewSearchstr, _countof(NewSearchstr));
- CharUpperBuffA(NewSearchstr, (int)mir_strlen(NewSearchstr));
-
- OLDstartposition = startposition;
-
- if ((strstr(Searchstr, NewSearchstr)) != nullptr)
- startposition = loc + (int)mir_strlen(Searchstr);
- else {
- oldloc = 0;
- startposition = 0;
- }
-
- mir_strcpy(Searchstr, NewSearchstr);
-
- if (!(startposition > (int)mir_strlen(buff)))
- location = (strstr(buff + startposition, NewSearchstr)) - buff;
-
- oldloc = loc;
- loc = location;
-
- if (loc == 0) {
- ShowWindow(GetDlgItem(hwndDlg, IDC_SEARCH_COMPLETE), SW_SHOW);
- loc = (strstr(buff, NewSearchstr)) - buff;
- startsel = loc;
- endsel = loc + (int)mir_strlen(NewSearchstr);
- oldloc = 0;
- startposition = 0;
- }
- else {
- ShowWindow(GetDlgItem(hwndDlg, IDC_SEARCH_COMPLETE), SW_HIDE);
- startsel = loc;
- endsel = loc + (int)mir_strlen(NewSearchstr);
- }
-
- CHARRANGE sel2 = { startsel, endsel };
- SendDlgItemMessage(ParentHwnd, IDC_DATA, EM_EXSETSEL, 0, (LPARAM)&sel2);
- SetFocus(GetDlgItem(ParentHwnd, IDC_DATA));
- }
- return TRUE;
-
- case WM_DESTROY:
- case IDC_CANCEL:
- EnableWindow(GetDlgItem(ParentHwnd, IDC_FIND_BUTTON), 1);
- EnableWindow(ParentHwnd, 1);
- DestroyWindow(hwndDlg);
- }
- break;
- }
- return FALSE;
-}
-
-/*****************************************************************************/
-
-static wchar_t tszSizeString[] = L"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
-
-static MCONTACT FindContactByUrl(HWND hwndDlg)
-{
- MCONTACT res = NULL;
- wchar_t urltext[300], titlebartxt[300];
- int contactcount = 0;
-
- GetDlgItemText(hwndDlg, IDC_OPEN_URL, urltext, _countof(urltext));
- GetWindowText(hwndDlg, titlebartxt, _countof(titlebartxt));
-
- for (auto &hContact : Contacts(MODULENAME)) {
- ptrW db1(g_plugin.getWStringA(hContact, URL_KEY));
- ptrW db2(g_plugin.getWStringA(hContact, PRESERVE_NAME_KEY));
-
- if (!mir_wstrcmp(urltext, db1) && !mir_wstrcmp(titlebartxt, db2)) {
- contactcount++;
- if (contactcount > 1) {
- MessageBox(nullptr, TranslateT("ERROR: You have two or more Webview contacts with the same URL and contact name."), _A2W(MODULENAME), MB_OK);
- return NULL;
- }
- res = hContact;
- }
- }
- return res;
-}
-
-INT_PTR CALLBACK DlgProcDisplayData(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- DBVARIANT dbv;
- RECT rc;
- wchar_t url[300];
- MCONTACT hContact;
-
- switch (msg) {
- case WM_INITDIALOG:
- TranslateDialogDefault(hwndDlg);
- {
- MCONTACT hContact2 = lParam;
-
- SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)hContact2);
- WindowList_Add(hWindowList, hwndDlg, hContact2);
-
- url[0] = '\0';
- if (!g_plugin.getWString(hContact2, URL_KEY, &dbv)) {
- wcsncpy_s(url, dbv.pwszVal, _TRUNCATE);
- db_free(&dbv);
- }
- SetDlgItemText(hwndDlg, IDC_OPEN_URL, FixButtonText(url, _countof(url)));
-
- char preservename[100];
- if (!g_plugin.getString(hContact2, PRESERVE_NAME_KEY, &dbv)) {
- strncpy_s(preservename, _countof(preservename), dbv.pszVal, _TRUNCATE);
- db_free(&dbv);
- }
- else preservename[0] = 0;
- SetWindowTextA(hwndDlg, preservename);
-
- SendMessage(hwndDlg, WM_SETICON, ICON_SMALL, (LPARAM)LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_SITE)));
-
- // //////
- COLORREF colour = BackgoundClr;
- COLORREF txtcolor;
- SendDlgItemMessage(hwndDlg, IDC_DATA, EM_SETBKGNDCOLOR, 0, colour);
-
- SendDlgItemMessage(hwndDlg, IDC_UPDATE_BUTTON, BM_SETIMAGE, IMAGE_ICON, (LPARAM)LoadImage(g_plugin.getInst(), MAKEINTRESOURCE(IDI_UPDATE), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0));
- SendDlgItemMessage(hwndDlg, IDC_UPDATE_BUTTON, BUTTONADDTOOLTIP, (WPARAM)TranslateT("Update data"), BATF_UNICODE);
-
- SendDlgItemMessage(hwndDlg, IDC_FIND_BUTTON, BM_SETIMAGE, IMAGE_ICON, (LPARAM)LoadImage(g_plugin.getInst(), MAKEINTRESOURCE(IDI_FIND), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0));
- SendDlgItemMessage(hwndDlg, IDC_FIND_BUTTON, BUTTONADDTOOLTIP, (WPARAM)TranslateT("Find"), BATF_UNICODE);
-
- SendDlgItemMessage(hwndDlg, IDC_OPTIONS_BUTTON, BM_SETIMAGE, IMAGE_ICON, (LPARAM)LoadImage(g_plugin.getInst(), MAKEINTRESOURCE(IDI_OPTIONS), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0));
- SendDlgItemMessage(hwndDlg, IDC_OPTIONS_BUTTON, BUTTONADDTOOLTIP, (WPARAM)TranslateT("Contact options"), BATF_UNICODE);
-
- SendDlgItemMessage(hwndDlg, IDC_ALERT_BUTTON, BM_SETIMAGE, IMAGE_ICON, (LPARAM)LoadImage(g_plugin.getInst(), MAKEINTRESOURCE(IDI_ALERT), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0));
- SendDlgItemMessage(hwndDlg, IDC_ALERT_BUTTON, BUTTONADDTOOLTIP, (WPARAM)TranslateT("Alert options"), BATF_UNICODE);
-
- SendDlgItemMessage(hwndDlg, IDC_STOP, BM_SETIMAGE, IMAGE_ICON, (LPARAM)LoadImage(g_plugin.getInst(), MAKEINTRESOURCE(IDI_STOP), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0));
- SendDlgItemMessage(hwndDlg, IDC_STOP, BUTTONADDTOOLTIP, (WPARAM)TranslateT("Stop processing"), BATF_UNICODE);
-
- SendDlgItemMessage(hwndDlg, IDC_OPEN_URL, BUTTONADDTOOLTIP, (WPARAM)TranslateT("Click here to open this URL in a browser window."), BATF_UNICODE);
-
- if (!g_plugin.getByte(hContact2, ON_TOP_KEY)) {
- SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BM_SETIMAGE, IMAGE_ICON, (LPARAM)LoadImage(g_plugin.getInst(), MAKEINTRESOURCE(IDI_UNSTICK), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0));
- SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BUTTONADDTOOLTIP, (WPARAM)TranslateT("Stick to the front"), BATF_UNICODE);
- }
- else {
- 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));
- SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BUTTONADDTOOLTIP, (WPARAM)TranslateT("Disable stick to the front"), BATF_UNICODE);
- }
-
- SendDlgItemMessage(hwndDlg, IDC_DATA, WM_SETFONT, (WPARAM)h_font, 1);
-
- txtcolor = TextClr;
-
- SetDlgItemText(hwndDlg, IDC_DATA, L"");
-
- InvalidateRect(hwndDlg, nullptr, 1);
-
- SendDlgItemMessage(hwndDlg, IDC_DATA, EM_AUTOURLDETECT, 1, 0);
- int mask = (int)SendDlgItemMessage(hwndDlg, IDC_DATA, EM_GETEVENTMASK, 0, 0);
-
- SendDlgItemMessage(hwndDlg, IDC_DATA, EM_SETEVENTMASK, 0, mask | ENM_LINK | ENM_MOUSEEVENTS);
-
- SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BUTTONSETASFLATBTN, 0, 0);
- SendDlgItemMessage(hwndDlg, IDC_UPDATE_BUTTON, BUTTONSETASFLATBTN, 0, 0);
- SendDlgItemMessage(hwndDlg, IDC_FIND_BUTTON, BUTTONSETASFLATBTN, 0, 0);
- SendDlgItemMessage(hwndDlg, IDC_OPTIONS_BUTTON, BUTTONSETASFLATBTN, 0, 0);
- SendDlgItemMessage(hwndDlg, IDC_ALERT_BUTTON, BUTTONSETASFLATBTN, 0, 0);
- SendDlgItemMessage(hwndDlg, IDC_STOP, BUTTONSETASFLATBTN, 0, 0);
-
- SendDlgItemMessage(hwndDlg, IDC_OPEN_URL, BUTTONSETASFLATBTN, 0, 0);
-
- HDC hdc = GetDC(GetDlgItem(hwndDlg, IDC_STATUSBAR));
- SelectObject(hdc, (HFONT)SendDlgItemMessage(hwndDlg, IDC_STATUSBAR, WM_GETFONT, 0, 0));
- SIZE textSize;
- GetTextExtentPoint32(hdc, tszSizeString, _countof(tszSizeString), &textSize);
- int partWidth[2] = { textSize.cx, -1 };
- ReleaseDC(GetDlgItem(hwndDlg, IDC_STATUSBAR), hdc);
-
- SendDlgItemMessage(hwndDlg, IDC_STATUSBAR, SB_SETPARTS, _countof(partWidth), (LPARAM)partWidth);
- SendDlgItemMessage(hwndDlg, IDC_STATUSBAR, SB_SETTEXT, 1 | SBT_OWNERDRAW, 0);
-
- if (g_plugin.getByte(SAVE_INDIVID_POS_KEY, 0))
- Utils_RestoreWindowPosition(hwndDlg, hContact2, MODULENAME, "WV");
- }
- break;
-
- case WM_NOTIFY:
- switch (((NMHDR *)lParam)->code) {
- case EN_MSGFILTER:
- switch (((MSGFILTER *)lParam)->msg) {
- case WM_RBUTTONUP:
- {
- POINT pt;
- CHARRANGE sel, all = { 0, -1 };
-
- HMENU hSubMenu = GetSubMenu(hMenu, 0);
- TranslateMenu(hSubMenu);
- SendMessage(((NMHDR *)lParam)->hwndFrom, EM_EXGETSEL, 0, (LPARAM)& sel);
-
- EnableMenuItem(hSubMenu, IDM_COPY, MF_ENABLED);
- EnableMenuItem(hSubMenu, IDM_CUT, MF_ENABLED);
- EnableMenuItem(hSubMenu, IDM_DELETE, MF_ENABLED);
-
- if (sel.cpMin == sel.cpMax) {
- EnableMenuItem(hSubMenu, IDM_COPY, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(hSubMenu, IDM_CUT, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(hSubMenu, IDM_DELETE, MF_BYCOMMAND | MF_GRAYED);
- }
- pt.x = (short)LOWORD(((ENLINK *)lParam)->lParam);
- pt.y = (short)HIWORD(((ENLINK *)lParam)->lParam);
- ClientToScreen(((NMHDR *)lParam)->hwndFrom, &pt);
- switch (TrackPopupMenu(hSubMenu, TPM_RETURNCMD, pt.x, pt.y, 0, hwndDlg, nullptr)) {
- case IDM_COPY:
- SendMessage(((NMHDR *)lParam)->hwndFrom, WM_COPY, 0, 0);
- break;
-
- case IDM_COPYALL:
- SendMessage(((NMHDR *)lParam)->hwndFrom, EM_EXSETSEL, 0, (LPARAM)& all);
- SendMessage(((NMHDR *)lParam)->hwndFrom, WM_COPY, 0, 0);
- SendMessage(((NMHDR *)lParam)->hwndFrom, EM_EXSETSEL, 0, (LPARAM)& sel);
- break;
-
- case IDM_SELECTALL:
- SendMessage(((NMHDR *)lParam)->hwndFrom, EM_EXSETSEL, 0, (LPARAM)& all);
- break;
-
- case IDM_CUT:
- SendMessage(((NMHDR *)lParam)->hwndFrom, WM_CUT, 0, 0);
- break;
-
- case IDM_PASTE:
- SendMessage(((NMHDR *)lParam)->hwndFrom, WM_PASTE, 0, 0);
- break;
-
- case IDM_DELETE:
- SendMessage(((NMHDR *)lParam)->hwndFrom, WM_CLEAR, 0, 0);
- break;
-
- case IDM_CLEAR_ALL:
- SetDlgItemTextA(hwndDlg, IDC_DATA, "");
- SetFocus(GetDlgItem(hwndDlg, IDC_DATA));
- break;
- }
- }
- }
- break;
-
- case EN_LINK:
- switch (((ENLINK *)lParam)->msg) {
- case WM_RBUTTONDOWN:
- case WM_LBUTTONUP:
- CHARRANGE sel;
- SendDlgItemMessage(hwndDlg, IDC_DATA, EM_EXGETSEL, 0, (LPARAM)& sel);
- if (sel.cpMin != sel.cpMax)
- break;
-
- TEXTRANGEA tr;
- tr.chrg = ((ENLINK *)lParam)->chrg;
- tr.lpstrText = (char*)malloc(tr.chrg.cpMax - tr.chrg.cpMin + 8);
-
- SendDlgItemMessage(hwndDlg, IDC_DATA, EM_GETTEXTRANGE, 0, (LPARAM)& tr);
- if (strchr(tr.lpstrText, '@') != nullptr && strchr(tr.lpstrText, ':') == nullptr && strchr(tr.lpstrText, '/') == nullptr) {
- memmove(tr.lpstrText + 7, tr.lpstrText, tr.chrg.cpMax - tr.chrg.cpMin + 1);
- memcpy(tr.lpstrText, "mailto:", 7);
- }
-
- Utils_OpenUrl(tr.lpstrText);
- SetFocus(GetDlgItem(hwndDlg, IDC_DATA));
-
- free(tr.lpstrText);
- break;
- }
- }
- break; // notify
-
- case WM_COMMAND:
- switch (LOWORD(wParam)) {
- case IDC_OPEN_URL:
- GetDlgItemText(hwndDlg, IDC_OPEN_URL, url, _countof(url));
- Utils_OpenUrlW(url);
- g_plugin.setWord(wParam, "Status", ID_STATUS_ONLINE);
- break;
-
- case IDC_UPDATE_BUTTON:
- if (hContact = FindContactByUrl(hwndDlg)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_UPDATE_BUTTON), 0);
- UpdateMenuCommand(wParam, lParam, hContact);
- }
- break;
-
- case IDC_STOP:
- if (hContact = FindContactByUrl(hwndDlg))
- g_plugin.setByte(hContact, STOP_KEY, 1);
- break;
-
- case IDC_STICK_BUTTON:
- if (hContact = FindContactByUrl(hwndDlg))
- OnTopMenuCommand(wParam, lParam, hContact);
- {
- wchar_t *ptszToolTip;
- HWND hTopmost;
- if (!g_plugin.getByte(hContact, ON_TOP_KEY, 0)) {
- hTopmost = HWND_NOTOPMOST;
- ptszToolTip = TranslateT("Stick to the front");
- }
- else {
- hTopmost = HWND_TOPMOST;
- ptszToolTip = TranslateT("Disable stick to the front");
- }
- SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BM_SETIMAGE, IMAGE_ICON, (LPARAM)LoadImage(g_plugin.getInst(), MAKEINTRESOURCE(IDI_UNSTICK), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0));
- SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BUTTONADDTOOLTIP, (WPARAM)ptszToolTip, BATF_UNICODE);
- SetWindowPos(hwndDlg, hTopmost, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
- }
- break;
-
- case IDC_FIND_BUTTON:
- {
- HWND hwndFind = CreateDialogParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_FIND), hwndDlg, DlgProcFind, (LPARAM)wParam);
- ShowWindow(hwndFind, SW_SHOW);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FIND_BUTTON), 0);
- }
- break;
-
- case IDC_OPTIONS_BUTTON:
- if (hContact = FindContactByUrl(hwndDlg))
- DialogBoxParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_CONTACT_OPT), hwndDlg, DlgProcContactOpt, hContact);
- break;
-
- case IDC_ALERT_BUTTON:
- if (hContact = FindContactByUrl(hwndDlg))
- DialogBoxParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_ALRT_OPT), hwndDlg, DlgProcAlertOpt, hContact);
- break;
-
- case IDOK:
- case IDCANCEL:
- if (hwndDlg != nullptr)
- DestroyWindow(hwndDlg);
- return TRUE;
- }
- break;
-
- case WM_CLOSE:
- if (Yposition == -32000)
- Yposition = 100;
-
- if (Xposition == -32000)
- Xposition = 100;
-
- SavewinSettings();
-
- if (hContact = FindContactByUrl(hwndDlg))
- Utils_SaveWindowPosition(hwndDlg, hContact, MODULENAME, "WV");
-
- if (hwndDlg != nullptr)
- DestroyWindow(hwndDlg);
- return 0;
-
- case WM_DESTROY:
- WindowList_Remove(hWindowList, hwndDlg);
- return 0;
-
- case WM_SIZE:
- Utils_ResizeDialog(hwndDlg, g_plugin.getInst(), MAKEINTRESOURCEA(IDD_DISPLAY_DATA), DataDialogResize);
- InvalidateRect(hwndDlg, nullptr, TRUE);
-
- // global
- GetWindowRect(hwndDlg, &rc);
- Xposition = rc.left;
- Yposition = rc.top;
- WindowHeight = rc.bottom - rc.top;
- WindowWidth = rc.right - rc.left;
- break;
-
- case WM_MOVE:
- if (!IsIconic(hwndDlg) && !IsZoomed(hwndDlg)) {
- GetWindowRect(hwndDlg, &rc);
- // global
- Xposition = rc.left;
- Yposition = rc.top;
- WindowHeight = rc.bottom - rc.top;
- WindowWidth = rc.right - rc.left;
-
- if ((GetAsyncKeyState(VK_CONTROL) & 0x8000))
- break;
-
- ValidatePosition(hwndDlg);
- }
- }
- return FALSE;
-}
-
-/*****************************************************************************/
-
-int DataDialogResize(HWND, LPARAM, UTILRESIZECONTROL *urc)
-{
- switch (urc->wId) {
- case IDC_OPEN_URL:
- return RD_ANCHORX_WIDTH | RD_ANCHORY_TOP;
- case IDC_DATA:
- return RD_ANCHORX_WIDTH | RD_ANCHORY_HEIGHT;
- case IDC_STATUSBAR:
- return RD_ANCHORX_WIDTH | RD_ANCHORX_RIGHT;
-
- }
- return RD_ANCHORX_LEFT | RD_ANCHORY_TOP;
-}
-
-/*****************************************************************************/
-
-void SavewinSettings(void)
-{
- if (Yposition == -32000)
- Yposition = 100;
-
- if (Xposition == -32000)
- Xposition = 100;
-
- g_plugin.setDword(Xpos_WIN_KEY, Xposition);
- g_plugin.setDword(Ypos_WIN_KEY, Yposition);
-
- g_plugin.setDword(BG_COLOR_KEY, BackgoundClr);
- g_plugin.setDword(TXT_COLOR_KEY, TextClr);
- g_plugin.setDword(WIN_HEIGHT_KEY, WindowHeight);
- g_plugin.setDword(WIN_WIDTH_KEY, WindowWidth);
-
-}
-
-/*****************************************************************************/
-void ValidatePosition(HWND)
-{
- RECT r;
- SystemParametersInfo(SPI_GETWORKAREA, 0, &r, 0);
-
- POINT pt = { 0, 0 };
- HMONITOR hMonitor = MonitorFromPoint(pt, MONITOR_DEFAULTTONEAREST); // always
-
- MONITORINFO monitorInfo;
- monitorInfo.cbSize = sizeof(MONITORINFO);
- if (GetMonitorInfo(hMonitor, &monitorInfo))
- memcpy(&r, &monitorInfo.rcMonitor, sizeof(RECT));
-
- // /window going off right of screen*
- if (Xposition + WindowWidth >= r.right)
- Xposition = r.right - WindowWidth;
-
- // window going off bottom of screen
- if (Yposition + WindowHeight >= r.bottom)
- Yposition = r.bottom - WindowHeight;
-
- // window going off left of screen
- if (Xposition >= r.right)
- Xposition = 0;
-}
diff --git a/plugins/WebView/src/webview_getdata.cpp b/plugins/WebView/src/webview_getdata.cpp deleted file mode 100644 index c77d994379..0000000000 --- a/plugins/WebView/src/webview_getdata.cpp +++ /dev/null @@ -1,511 +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"
-
-int Startingup = 1;
-int AlreadyDownloading = 0;
-
-/*******************/
-void GetData(void *param)
-{
- MCONTACT hContact = (DWORD_PTR)param;
- int statpos = 0, dispos = 0, statposend = 0;
- char*pos;
- DBVARIANT dbv;
- char tempstring[300], tempstring2[300];
- int MallocSize = 0;
- int DownloadSuccess = 0;
- char*raw;
- char truncated[MAXSIZE1];
- char truncated2[MAXSIZE2];
- int trunccount = 0;
- char url[300];
- unsigned long downloadsize = 0;
- int AmountWspcRem = 0;
- static char contactname[100];
- int TherewasAlert = 0;
- int PosButnClick = 0;
- char tstr[128];
- static char timestring[128];
- int eventIndex = 0;
- int location = 0;
- int location2 = 0;
-
- if (Startingup)
- Sleep(2000);
-
- HWND hwndDlg = (WindowList_Find(hWindowList, hContact));
-
- Startingup = 0;
-
- memset(&url, 0, sizeof(url));
- memset(&contactname, 0, sizeof(contactname));
- memset(&tempstring, 0, sizeof(tempstring));
- memset(&tempstring2, 0, sizeof(tempstring2));
- memset(&dbv, 0, sizeof(dbv));
- memset(&tstr, 0, sizeof(tstr));
- memset(×tring, 0, sizeof(timestring));
-
- g_plugin.setByte(hContact, STOP_KEY, 0);
-
- if (g_plugin.getString(hContact, PRESERVE_NAME_KEY, &dbv)) {
- if (!db_get_s(hContact, "CList", "MyHandle", &dbv)) {
- g_plugin.setString(hContact, PRESERVE_NAME_KEY, dbv.pszVal);
- db_free(&dbv);
- }
- }
-
- if (!g_plugin.getString(hContact, PRESERVE_NAME_KEY, &dbv)) {
- strncpy_s(contactname, _countof(contactname), dbv.pszVal, _TRUNCATE);
- db_free(&dbv);
- }
-
- url[0] = '\0';
-
- if (!Startingup)
- g_plugin.setByte(HAS_CRASHED_KEY, 1);
-
- if (!g_plugin.getString(hContact, START_STRING_KEY, &dbv)) {
- strncpy_s(tempstring, _countof(tempstring), dbv.pszVal, _TRUNCATE);
- db_free(&dbv);
- }
-
- if (!g_plugin.getString(hContact, END_STRING_KEY, &dbv)) {
- strncpy_s(tempstring2, _countof(tempstring2), dbv.pszVal, _TRUNCATE);
- db_free(&dbv);
- }
-
- if (!g_plugin.getString(hContact, URL_KEY, &dbv)) {
- strncpy_s(url, _countof(url), dbv.pszVal, _TRUNCATE);
- db_free(&dbv);
- }
-
- if (mir_strlen(url) < 3)
- WErrorPopup(hContact, TranslateT("URL not supplied"));
-
- NETLIBHTTPREQUEST nlhr = { sizeof(nlhr) };
- nlhr.requestType = REQUEST_GET;
- nlhr.flags = NLHRF_DUMPASTEXT;
- nlhr.szUrl = url;
- nlhr.headersCount = 2;
-
- NETLIBHTTPHEADER headers[2];
- headers[0].szName = "User-Agent";
- headers[0].szValue = NETLIB_USER_AGENT;
-
- headers[1].szName = "Content-Length";
- headers[1].szValue = nullptr;
-
- nlhr.headers = headers;
-
- if ( g_plugin.getByte(NO_PROTECT_KEY, 0)) // disable
- AlreadyDownloading = 0;
-
- // //try site////
- if (!AlreadyDownloading) { // not already downloading
- if (IsWindowEnabled(GetDlgItem(hwndDlg, IDC_UPDATE_BUTTON)))
- PosButnClick = 0;
- else
- PosButnClick = 1;
- EnableWindow(GetDlgItem(hwndDlg, IDC_UPDATE_BUTTON), 1);
-
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Download in progress, please wait..."));
- db_set_ws(hContact, "CList", "StatusMsg", TranslateT("Updating..."));
- g_plugin.setWord(hContact, "Status", ID_STATUS_DND); // download
-
- NETLIBHTTPREQUEST *nlhrReply = Netlib_HttpTransaction(hNetlibUser, &nlhr);
- if (nlhrReply) {
- if (nlhrReply->resultCode < 200 || nlhrReply->resultCode >= 300) {
- g_plugin.setWord(hContact, "Status", ID_STATUS_AWAY);
-
- wchar_t *statusText = TranslateT("The server replied with a failure code");
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, statusText);
- WErrorPopup(hContact, statusText);
- db_set_ws(hContact, "CList", "StatusMsg", statusText);
- }
- if (nlhrReply->dataLength) {
- trunccount = 0;
- downloadsize = (ULONG)mir_strlen(nlhrReply->pData);
- strncpy_s(truncated2, nlhrReply->pData, _TRUNCATE);
- AlreadyDownloading = 1;
- } // END DATELENGTH
- } // END REPLY
-
- if (!nlhrReply) {
- g_plugin.setWord(hContact, "Status", ID_STATUS_NA);
-
- wchar_t *statusText = TranslateT("The server is down or lagging.");
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, statusText);
- WErrorPopup(hContact, statusText);
- db_set_ws(hContact, "CList", "StatusMsg", statusText);
- }
-
- if (!(nlhrReply))
- DownloadSuccess = 0;
-
- if ((nlhrReply) && (nlhrReply->resultCode < 200 || nlhrReply->resultCode >= 300))
- DownloadSuccess = 0;
- else if (nlhrReply)
- DownloadSuccess = 1;
-
- Netlib_FreeHttpRequest(nlhrReply);
-
- if (DownloadSuccess)
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Download successful; about to process data..."));
-
- // download successful
- if (DownloadSuccess) {
- // all the site
- if (g_plugin.getByte(hContact, U_ALLSITE_KEY, 0) == 1)
- mir_strncpy(truncated, truncated2, MAXSIZE1);
- else { // use start and end string
- // putting data into string
- if (((strstr(truncated2, tempstring)) != nullptr) && ((strstr(truncated2, tempstring2)) != nullptr)) {
- // start string
- pos = strstr(truncated2, tempstring);
- statpos = pos - truncated2;
-
- memset(&pos, 0, sizeof(pos)); // XXX: looks bad.
- // end string
- pos = strstr(truncated2, tempstring2);
- statposend = pos - truncated2 + (int)mir_strlen(tempstring2);
-
- if (statpos > statposend) {
- memset(&truncated2, ' ', statpos);
- memset(&pos, 0, sizeof(pos)); // XXX: looks bad.
- pos = strstr(truncated2, tempstring2);
- statposend = pos - truncated2 + (int)mir_strlen(tempstring2);
- }
- if (statpos < statposend) {
- memset(&raw, 0, sizeof(raw));
-
- // get size for malloc
- MallocSize = statposend - statpos;
- raw = (char *) malloc(MallocSize + 1);
-
- // start string
- pos = strstr(truncated2, tempstring);
- statpos = pos - truncated2;
-
- // end string
- pos = strstr(truncated2, tempstring2);
- statposend = pos - truncated2 + (int)mir_strlen(tempstring2);
-
- if (statpos > statposend) {
- memset(&truncated2, ' ', statpos);
- memset(&pos, 0, sizeof(pos)); // XXX
- pos = strstr(truncated2, tempstring2);
- statposend = pos - truncated2 + (int)mir_strlen(tempstring2);
- }
- dispos = 0;
-
- strncpy(raw, &truncated2[statpos], MallocSize);
- raw[MallocSize] = '\0';
-
- trunccount = 0;
-
- mir_strncpy(truncated, raw, MAXSIZE1);
-
- free(raw);
-
- DownloadSuccess = 1;
- }
- else if (g_plugin.getByte(hContact, U_ALLSITE_KEY, 0) == 0) {
- wchar_t *szStatusText = TranslateT("Invalid search parameters.");
- WErrorPopup(hContact, szStatusText);
-
- DownloadSuccess = 0;
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, szStatusText);
- g_plugin.setWord(hContact, "Status", ID_STATUS_AWAY);
- }
- } // end putting data into string
- } // end use start and end strings
- } // end download success
-
- if (DownloadSuccess) { // download success
- if (statpos == 0 && statposend == 0) {
- if (g_plugin.getByte(hContact, U_ALLSITE_KEY, 0) == 0) {
- wchar_t *statusText = TranslateT("Both search strings not found or strings not set.");
- WErrorPopup(hContact, statusText);
- db_set_ws(hContact, "CList", "StatusMsg", statusText);
-
- DownloadSuccess = 0;
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, statusText);
- TherewasAlert = ProcessAlerts(hContact, _T2A(statusText), contactname, contactname, 1);
- g_plugin.setWord(hContact, "Status", ID_STATUS_AWAY);
- }
- }
- } // end download success
-
- if (DownloadSuccess) { // download success
- char timeprefix[32];
- char temptime1[32];
- char timeat[16];
- char temptime2[32];
- char temptime[128];
- time_t ftime;
- struct tm *nTime;
-
- if (!g_plugin.getString(hContact, PRESERVE_NAME_KEY, &dbv)) {
- memset(&temptime, 0, sizeof(temptime));
- memset(&tstr, 0, sizeof(tstr));
- ftime = time(0);
- nTime = localtime(&ftime);
- // 12 hour
- if (g_plugin.getByte(hContact, USE_24_HOUR_KEY, 0) == 0)
- strftime(temptime, 128, "(%b %d,%I:%M %p)", nTime);
- // 24 hour
- if (g_plugin.getByte(hContact, USE_24_HOUR_KEY, 0) == 1)
- strftime(temptime, 128, "(%b %d,%H:%M:%S)", nTime);
-
- if (g_plugin.getByte(hContact, CONTACT_PREFIX_KEY, 1) == 1)
- mir_snprintf(tstr, "%s %s", temptime, dbv.pszVal);
- if (g_plugin.getByte(hContact, CONTACT_PREFIX_KEY, 1) == 0)
- mir_snprintf(tstr, "%s %s", dbv.pszVal, temptime);
- db_free(&dbv);
- }
- else {
- db_get_ws(hContact, "CList", "MyHandle", &dbv);
- memset(&temptime, 0, sizeof(temptime));
- memset(&tstr, 0, sizeof(tstr));
- ftime = time(0);
- nTime = localtime(&ftime);
- // 12 hour
- if (g_plugin.getByte(hContact, USE_24_HOUR_KEY, 0) == 0)
- strftime(temptime, 128, "(%b %d,%I:%M %p)", nTime);
- // 24 hour
- if (g_plugin.getByte(hContact, USE_24_HOUR_KEY, 0) == 1)
- strftime(temptime, 128, "(%b %d,%H:%M:%S)", nTime);
-
- g_plugin.setWString(hContact, PRESERVE_NAME_KEY, dbv.pwszVal);
- if (g_plugin.getByte(hContact, CONTACT_PREFIX_KEY, 1) == 1)
- mir_snprintf(tstr, "%s %s", temptime, dbv.pszVal);
- if (g_plugin.getByte(hContact, CONTACT_PREFIX_KEY, 1) == 0)
- mir_snprintf(tstr, "%s %s", dbv.pszVal, temptime);
- db_free(&dbv);
- }
-
- ftime = time(0);
- nTime = localtime(&ftime);
-
- strncpy_s(timeprefix, _countof(timeprefix), Translate("Last updated on"), _TRUNCATE);
- strncpy_s(timeat, _countof(timeat), Translate("at the time"), _TRUNCATE);
- strftime(temptime1, 32, " %a, %b %d, %Y ", nTime);
- strftime(temptime2, 32, " %I:%M %p.", nTime);
- mir_snprintf(timestring, " %s %s%s%s", timeprefix, temptime1, timeat, temptime2);
- } // end download success
-
- if (DownloadSuccess) {
- TherewasAlert = ProcessAlerts(hContact, truncated, tstr, contactname, 0);
-
- // get range of text to be highlighted when part of change changes
- if (TherewasAlert) {
- // ////////////////////////
- static char buff[MAXSIZE1];
- char Alerttempstring[300], Alerttempstring2[300];
-
- eventIndex = g_plugin.getByte(hContact, EVNT_INDEX_KEY, 0);
- if (eventIndex == 2) {
- strncpy(buff, truncated, _countof(buff));
- Filter(buff);
-
- if (!g_plugin.getString(hContact, ALRT_S_STRING_KEY, &dbv)) {
- strncpy_s(Alerttempstring, _countof(Alerttempstring), dbv.pszVal, _TRUNCATE);
- db_free(&dbv);
- }
- if (!g_plugin.getString(hContact, ALRT_E_STRING_KEY, &dbv)) {
- strncpy_s(Alerttempstring2, _countof(Alerttempstring2), dbv.pszVal, _TRUNCATE);
- db_free(&dbv);
- }
-
- // putting data into string
- if (((strstr(buff, Alerttempstring)) != nullptr) && ((strstr(buff, Alerttempstring2)) != nullptr)) {
- location = (strstr(buff, Alerttempstring)) - buff;
- location2 = (strstr(buff, Alerttempstring2)) - buff;
- }
- }
- }
-
- if ((((strstr(truncated2, tempstring)) != nullptr) && ((strstr(truncated2, tempstring2)) != nullptr) && (g_plugin.getByte(hContact, U_ALLSITE_KEY, 0) == 0)) || (g_plugin.getByte(hContact, U_ALLSITE_KEY, 0) == 1)) {
- RemoveTabs(truncated);
-
- if ( g_plugin.getByte(hContact, CLEAR_DISPLAY_KEY, 0)) {
- SendToRichEdit(hwndDlg, truncated, TextClr, BackgoundClr);
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Processing data (Stage 1)"));
-
- if (g_plugin.getByte(hContact, STOP_KEY, 1) == 1) {
-LBL_Stop: wchar_t *statusText = TranslateT("Processing data stopped by user.");
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, statusText);
- g_plugin.setByte(hContact, STOP_KEY, 0);
- g_plugin.setWord(hContact, "Status", ID_STATUS_ONLINE);
- db_set_ws(hContact, "CList", "StatusMsg", statusText);
- AlreadyDownloading = 0;
- return;
- }
-
- CodetoSymbol(truncated);
- Sleep(100); // avoid 100% CPU
-
- SendToRichEdit(hwndDlg, truncated, TextClr, BackgoundClr);
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Processing data (Stage 2)"));
- if (g_plugin.getByte(hContact, STOP_KEY, 1) == 1)
- goto LBL_Stop;
-
- EraseBlock(truncated);
- Sleep(100); // avoid 100% CPU
-
- SendToRichEdit(hwndDlg, truncated, TextClr, BackgoundClr);
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Processing data (Stage 3)"));
- if (g_plugin.getByte(hContact, STOP_KEY, 1) == 1)
- goto LBL_Stop;
-
- FastTagFilter(truncated);
- Sleep(100); // avoid 100% CPU
-
- SendToRichEdit(hwndDlg, truncated, TextClr, BackgoundClr);
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Processing data (Stage 4)"));
- if (g_plugin.getByte(hContact, STOP_KEY, 1) == 1)
- goto LBL_Stop;
-
- NumSymbols(truncated);
- Sleep(100); // avoid 100% CPU
-
- SendToRichEdit(hwndDlg, truncated, TextClr, BackgoundClr);
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Processing data (Stage 5)"));
- if (g_plugin.getByte(hContact, STOP_KEY, 1) == 1)
- goto LBL_Stop;
-
- EraseSymbols(truncated);
- Sleep(100); // avoid 100% CPU
-
- SendToRichEdit(hwndDlg, truncated, TextClr, BackgoundClr);
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Processing data (Stage 6)"));
-
- AmountWspcRem = g_plugin.getByte(hContact, RWSPACE_KEY, 0);
- if (g_plugin.getByte(hContact, STOP_KEY, 1) == 1)
- goto LBL_Stop;
-
- RemoveInvis(truncated, AmountWspcRem);
- Sleep(100); // avoid 100% CPU
-
- SendToRichEdit(hwndDlg, truncated, TextClr, BackgoundClr);
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Processing data (Stage 7)"));
- if (g_plugin.getByte(hContact, STOP_KEY, 1) == 1)
- goto LBL_Stop;
-
- Removewhitespace(truncated);
-
- SendToRichEdit(hwndDlg, truncated, TextClr, BackgoundClr);
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Processing data (Stage 8)"));
-
- //data in popup
- if (TherewasAlert)
- if ( g_plugin.getByte(DATA_POPUP_KEY, 0))
- WAlertPopup(hContact, _A2T(truncated));
-
- if (g_plugin.getByte(hContact, STOP_KEY, 1) == 1)
- goto LBL_Stop;
-
- // removed any excess characters at the end.
- if ((truncated[mir_strlen(truncated) - 1] == truncated[mir_strlen(truncated) - 2]) && (truncated[mir_strlen(truncated) - 2] == truncated[mir_strlen(truncated) - 3])) {
- int counterx = 0;
-
- while (true) {
- counterx++;
- if (truncated[mir_strlen(truncated) - counterx] != truncated[mir_strlen(truncated) - 1]) {
- truncated[(mir_strlen(truncated) - counterx) + 2] = '\0';
- break;
- }
- }
- }
- }
- }
-
- if (TherewasAlert) {
- g_plugin.setWord(hContact, "Status", ID_STATUS_OCCUPIED);
- db_set_ws(hContact, "CList", "StatusMsg", TranslateT("Alert!"));
- }
- else {
- g_plugin.setWord(hContact, "Status", ID_STATUS_ONLINE);
- db_set_ws(hContact, "CList", "StatusMsg", TranslateT("Online"));
- }
- }
-
- if (g_plugin.getByte(hContact, U_ALLSITE_KEY, 0) == 0) {
- if (statpos > statposend)
- DownloadSuccess = 0;
- else if (statpos == 0 && statposend == 0)
- DownloadSuccess = 0;
- else
- DownloadSuccess = 1;
- }
-
- AlreadyDownloading = 0;
- } // end not already downloading
-
- if (AlreadyDownloading)
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("A site is already downloading, try again in a moment."));
-
- if (DownloadSuccess) { // download success
- char BytesString[128];
-
- // update window if the update only on alert option isn't ticked or
- // there was an alert or the update button was clicked
- if ((!(g_plugin.getByte(UPDATE_ONALERT_KEY, 0))) || (TherewasAlert == 1) || (PosButnClick == 1)) {
- SendToRichEdit(hwndDlg, truncated, TextClr, BackgoundClr);
-
- if (TherewasAlert) {
- // highlight text when part of change changes
- if (eventIndex == 2) {
- CHARRANGE sel2 = {location, location2};
-
- SendDlgItemMessage(hwndDlg, IDC_DATA, EM_EXSETSEL, 0, (LPARAM)&sel2);
- SetFocus(GetDlgItem(hwndDlg, IDC_DATA));
-
- DWORD HiBackgoundClr = g_plugin.getDword(BG_COLOR_KEY, Def_color_bg);
- DWORD HiTextClr = g_plugin.getDword(TXT_COLOR_KEY, Def_color_txt);
-
- CHARFORMAT2 Format;
- memset(&Format, 0, sizeof(Format));
- Format.cbSize = sizeof(Format);
- Format.dwMask = CFM_BOLD | CFM_COLOR | CFM_BACKCOLOR;
- Format.dwEffects = CFE_BOLD;
- Format.crBackColor = ((~HiBackgoundClr) & 0x00ffffff);
- Format.crTextColor = ((~HiTextClr) & 0x00ffffff);
- SendDlgItemMessage(hwndDlg, IDC_DATA, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&Format);
- }
- }
-
- SetDlgItemTextA(hwndDlg, IDC_STATUSBAR, timestring);
- sprintf(BytesString, "%s: %d | %s: %lu", (Translate("Bytes in display")), (GetWindowTextLength(GetDlgItem(hwndDlg, IDC_DATA))), (Translate("Bytes downloaded")), downloadsize);
-
- SendDlgItemMessage(hwndDlg, IDC_STATUSBAR, SB_SETTEXT, 1, (LPARAM)BytesString);
- }
- else SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Alert test conditions not met; press the refresh button to view content."));
- }
- EnableWindow(GetDlgItem(hwndDlg, IDC_UPDATE_BUTTON), 1);
-
- if (!Startingup)
- g_plugin.setByte(HAS_CRASHED_KEY, 0);
-}
diff --git a/plugins/WebView/src/webview_opts.cpp b/plugins/WebView/src/webview_opts.cpp deleted file mode 100644 index 135a78f528..0000000000 --- a/plugins/WebView/src/webview_opts.cpp +++ /dev/null @@ -1,1265 +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"
-
-const wchar_t *szTrackerBarDescr[] = {
- LPGENW("No whitespace removal"),
- LPGENW("Minimal level of whitespace removal"),
- LPGENW("Medium level of whitespace removal"),
- LPGENW("Large level of whitespace removal"),
- LPGENW("Remove all whitespace")
-};
-
-static char *fontSizes[] = { "8", "10", "14", "16", "18", "20", "24", "28" };
-static wchar_t *AlertTypes[] = { LPGENW("Popup plugin"), LPGENW("Log to file"), LPGENW("Open data display window"), LPGENW("Use OSD plugin") };
-static wchar_t *EventTypes[] = { LPGENW("A string is present"), LPGENW("The web page changes"), LPGENW("A specific part of web page changes") };
-
-#define M_FILLSCRIPTCOMBO (WM_USER+16)
-
-wchar_t* FixButtonText(wchar_t *url, size_t len)
-{
- wchar_t buttontext[256], stringbefore[256], newbuttontext[256];
- wcsncpy_s(buttontext, url, _TRUNCATE);
- wcsncpy_s(newbuttontext, url, _TRUNCATE);
-
- if (wcschr(newbuttontext, '&') != nullptr) {
- while (true) {
- if (wcschr(newbuttontext, '&') == nullptr)
- break;
-
- wcsncpy_s(buttontext, newbuttontext, _TRUNCATE);
- wchar_t *stringafter = wcschr(buttontext, '&');
- int pos = (stringafter - buttontext);
- int posbefore = (stringafter - buttontext) - 1;
- int posafter = (stringafter - buttontext) + 1;
- strdelw(stringafter, 1);
- wcsncpy_s(stringbefore, pos, buttontext, _TRUNCATE);
- mir_snwprintf(newbuttontext, L"%s!!%s", stringbefore, stringafter);
-
- posafter = 0;
- posbefore = 0;
- }
-
- while (true) {
- if (wcschr(newbuttontext, '!') != nullptr) {
- wchar_t *stringafter = wcschr(newbuttontext, '!');
- int pos = (stringafter - newbuttontext);
- newbuttontext[pos] = '&';
- }
- if (wcschr(newbuttontext, '!') == nullptr)
- break;
- }
- }
-
- wcsncpy_s(url, len, newbuttontext, _TRUNCATE);
- return url;
-}
-
-/*****************************************************************************/
-static int CALLBACK EnumFontScriptsProc(ENUMLOGFONTEX * lpelfe, NEWTEXTMETRICEX*, int, LPARAM lParam)
-{
- if (SendMessage((HWND)lParam, CB_FINDSTRINGEXACT, -1, (LPARAM)lpelfe->elfScript) == CB_ERR) {
- int i = SendMessage((HWND)lParam, CB_ADDSTRING, 0, (LPARAM)lpelfe->elfScript);
-
- SendMessage((HWND)lParam, CB_SETITEMDATA, i, lpelfe->elfLogFont.lfCharSet);
- }
- return TRUE;
-}
-
-/*****************************************************************************/
-// copied and modified from NewStatusNotify
-INT_PTR CALLBACK DlgPopUpOpts(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
-
- char str[512];
- DWORD BGColour = 0;
- DWORD TextColour = 0;
- DWORD delay = 0;
- static int test = 0;
-
- switch (msg) {
- case WM_INITDIALOG:
- TranslateDialogDefault(hdlg);
-
- delay = g_plugin.getDword(POP_DELAY_KEY, 0);
-
- // setting popup delay option
- _itoa(delay, str, 10);
- SetDlgItemTextA(hdlg, IDC_DELAY, str);
-
- BGColour = g_plugin.getDword(POP_BG_CLR_KEY, Def_color_bg);
- TextColour = g_plugin.getDword(POP_TXT_CLR_KEY, Def_color_txt);
-
- // Colours. First step is configuring the colours.
- SendDlgItemMessage(hdlg, IDC_POP_BGCOLOUR, CPM_SETCOLOUR, 0, BGColour);
- SendDlgItemMessage(hdlg, IDC_POP_TEXTCOLOUR, CPM_SETCOLOUR, 0, TextColour);
- // Second step is disabling them if we want to use default Windows
- // ones.
- CheckDlgButton(hdlg, IDC_POP_USEWINCOLORS, g_plugin.getByte(POP_USEWINCLRS_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hdlg, IDC_POP_USESAMECOLORS, g_plugin.getByte(POP_USESAMECLRS_KEY, 1) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hdlg, IDC_POP_USECUSTCOLORS, g_plugin.getByte(POP_USECUSTCLRS_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
-
- if (IsDlgButtonChecked(hdlg, IDC_POP_USEWINCOLORS) || IsDlgButtonChecked(hdlg, IDC_POP_USESAMECOLORS)) {
- EnableWindow(GetDlgItem(hdlg, IDC_POP_BGCOLOUR), 0);
- EnableWindow(GetDlgItem(hdlg, IDC_POP_TEXTCOLOUR), 0);
- }
-
- CheckDlgButton(hdlg, IDC_LCLK_WINDOW, g_plugin.getByte(LCLK_WINDOW_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hdlg, IDC_LCLK_WEB_PGE, g_plugin.getByte(LCLK_WEB_PGE_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hdlg, IDC_LCLK_DISMISS, g_plugin.getByte(LCLK_DISMISS_KEY, 1) ? BST_CHECKED : BST_UNCHECKED);
-
- CheckDlgButton(hdlg, IDC_RCLK_WINDOW, g_plugin.getByte(RCLK_WINDOW_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hdlg, IDC_RCLK_WEB_PGE, g_plugin.getByte(RCLK_WEB_PGE_KEY, 1) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hdlg, IDC_RCLK_DISMISS, g_plugin.getByte(RCLK_DISMISS_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- return TRUE;
-
- case WM_COMMAND:
- // enable the "apply" button
- if (HIWORD(wParam) == BN_CLICKED && GetFocus() == (HWND)lParam)
- SendMessage(GetParent(hdlg), PSM_CHANGED, 0, 0);
- // These are simple clicks: we don't save, but we tell the Options Page
- // to enable the "Apply" button.
- switch (LOWORD(wParam)) {
- case IDC_POP_BGCOLOUR: // Fall through
- case IDC_POP_TEXTCOLOUR:
- // select new colors
- if (HIWORD(wParam) == CPN_COLOURCHANGED)
- SendMessage(GetParent(hdlg), PSM_CHANGED, 0, 0);
- break;
-
- case IDC_POP_USESAMECOLORS:
- // use same color as data window - enable/disable color selection
- // controls
- EnableWindow(GetDlgItem(hdlg, IDC_POP_BGCOLOUR), !((BYTE)IsDlgButtonChecked(hdlg, IDC_POP_USESAMECOLORS)));
- EnableWindow(GetDlgItem(hdlg, IDC_POP_TEXTCOLOUR), !((BYTE)IsDlgButtonChecked(hdlg, IDC_POP_USESAMECOLORS)));
- SendMessage(GetParent(hdlg), PSM_CHANGED, 0, 0);
- break;
-
- case IDC_POP_USEWINCOLORS:
- // use window color - enable/disable color selection controls
- EnableWindow(GetDlgItem(hdlg, IDC_POP_BGCOLOUR), !((BYTE)IsDlgButtonChecked(hdlg, IDC_POP_USEWINCOLORS)));
- EnableWindow(GetDlgItem(hdlg, IDC_POP_TEXTCOLOUR), !((BYTE)IsDlgButtonChecked(hdlg, IDC_POP_USEWINCOLORS)));
- SendMessage(GetParent(hdlg), PSM_CHANGED, 0, 0);
- break;
-
- case IDC_POP_USECUSTCOLORS:
- EnableWindow(GetDlgItem(hdlg, IDC_POP_BGCOLOUR), ((BYTE)IsDlgButtonChecked(hdlg, IDC_POP_USECUSTCOLORS)));
- EnableWindow(GetDlgItem(hdlg, IDC_POP_TEXTCOLOUR), ((BYTE)IsDlgButtonChecked(hdlg, IDC_POP_USECUSTCOLORS)));
- break;
-
- case IDC_PD1:
- SetDlgItemText(hdlg, IDC_DELAY, L"0");
- break;
- case IDC_PD2:
- // Popup delay = permanent
- SetDlgItemText(hdlg, IDC_DELAY, L"-1");
- break;
-
- case IDC_DELAY:
- if (HIWORD(wParam) == EN_CHANGE)
- test++;
- if (test > 1) {
- //CheckRadioButton(hdlg, IDC_PD1, IDC_PD3, IDC_PD3);
- SendMessage(GetParent(hdlg), PSM_CHANGED, 0, 0);
- }
- break;
-
- case IDC_PREVIEW:
- wchar_t str3[512];
- POPUPDATAW ppd = { 0 };
-
- GetDlgItemText(hdlg, IDC_DELAY, str3, _countof(str3));
-
- if (IsDlgButtonChecked(hdlg, IDC_POP_USECUSTCOLORS)) {
- BGColour = (SendDlgItemMessage(hdlg, IDC_POP_BGCOLOUR, CPM_GETCOLOUR, 0, 0));
- TextColour = (SendDlgItemMessage(hdlg, IDC_POP_TEXTCOLOUR, CPM_GETCOLOUR, 0, 0));
- }
- if (IsDlgButtonChecked(hdlg, IDC_POP_USEWINCOLORS)) {
- BGColour = GetSysColor(COLOR_BTNFACE);
- TextColour = GetSysColor(COLOR_WINDOWTEXT);
- }
- if (IsDlgButtonChecked(hdlg, IDC_POP_USESAMECOLORS)) {
- BGColour = BackgoundClr;
- TextColour = TextClr;
- }
- ppd.lchContact = NULL;
- mir_wstrcpy(ppd.lpwzContactName, _A2W(MODULENAME));
- ppd.lchIcon = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_SITE));
- mir_wstrcpy(ppd.lpwzText, TranslateT("This is a preview popup."));
- ppd.colorBack = BGColour;
- ppd.colorText = TextColour;
- ppd.PluginWindowProc = nullptr;
- ppd.iSeconds = _wtol(str3);
- // display popups
- PUAddPopupW(&ppd);
- }
- break;
-
- case WM_NOTIFY: // Here we have pressed either the OK or the APPLY button.
- switch (((LPNMHDR)lParam)->code) {
- case PSN_APPLY:
- int popupdelayval = 0;
- wchar_t str2[512];
- GetDlgItemText(hdlg, IDC_DELAY, str2, _countof(str2));
-
- popupdelayval = _wtol(str2);
- g_plugin.setDword(POP_DELAY_KEY, popupdelayval);
-
- g_plugin.setByte(LCLK_WINDOW_KEY, (BYTE)IsDlgButtonChecked(hdlg, IDC_LCLK_WINDOW));
- g_plugin.setByte(LCLK_WEB_PGE_KEY, (BYTE)IsDlgButtonChecked(hdlg, IDC_LCLK_WEB_PGE));
- g_plugin.setByte(LCLK_DISMISS_KEY, (BYTE)IsDlgButtonChecked(hdlg, IDC_LCLK_DISMISS));
-
- g_plugin.setByte(RCLK_WINDOW_KEY, (BYTE)IsDlgButtonChecked(hdlg, IDC_RCLK_WINDOW));
- g_plugin.setByte(RCLK_WEB_PGE_KEY, (BYTE)IsDlgButtonChecked(hdlg, IDC_RCLK_WEB_PGE));
- g_plugin.setByte(RCLK_DISMISS_KEY, (BYTE)IsDlgButtonChecked(hdlg, IDC_RCLK_DISMISS));
-
- g_plugin.setByte(POP_USECUSTCLRS_KEY, (BYTE)IsDlgButtonChecked(hdlg, IDC_POP_USECUSTCOLORS));
- g_plugin.setByte(POP_USEWINCLRS_KEY, (BYTE)IsDlgButtonChecked(hdlg, IDC_POP_USEWINCOLORS));
- g_plugin.setByte(POP_USESAMECLRS_KEY, (BYTE)IsDlgButtonChecked(hdlg, IDC_POP_USESAMECOLORS));
-
- BGColour = (SendDlgItemMessage(hdlg, IDC_POP_BGCOLOUR, CPM_GETCOLOUR, 0, 0));
- TextColour = (SendDlgItemMessage(hdlg, IDC_POP_TEXTCOLOUR, CPM_GETCOLOUR, 0, 0));
-
- g_plugin.setDword(POP_BG_CLR_KEY, BGColour);
- g_plugin.setDword(POP_TXT_CLR_KEY, TextColour);
-
- test = 0;
- return TRUE;
- }
- break;
- }
- return FALSE;
-}
-
-/*****************************************************************************/
-INT_PTR CALLBACK DlgProcAlertOpt(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- HWND ParentHwnd;
- DBVARIANT dbv;
- int i;
- int alertIndex = 0;
- int eventIndex = 0;
- static int test;
- MCONTACT hContact;
-
- ParentHwnd = GetParent(hwndDlg);
-
- switch (msg) {
- case WM_INITDIALOG:
- test = 0;
- TranslateDialogDefault(hwndDlg);
- hContact = lParam;
- SetWindowLongPtr(hwndDlg, GWLP_USERDATA, lParam);
-
- SetWindowText(hwndDlg, TranslateT("Alert options"));
-
- SendMessage(hwndDlg, WM_SETICON, ICON_SMALL, (LPARAM)LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_ALERT)));
-
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_APPLY), 0);
-
- if (!g_plugin.getWString(hContact, ALERT_STRING_KEY, &dbv)) {
- SetDlgItemText(hwndDlg, IDC_ALERT_STRING, dbv.pwszVal);
- db_free(&dbv);
- }
- if (!g_plugin.getWString(hContact, ALRT_S_STRING_KEY, &dbv)) {
- SetDlgItemText(hwndDlg, IDC_START2, dbv.pwszVal);
- db_free(&dbv);
- }
- if (!g_plugin.getWString(hContact, ALRT_E_STRING_KEY, &dbv)) {
- SetDlgItemText(hwndDlg, IDC_END2, dbv.pwszVal);
- db_free(&dbv);
- }
- CheckDlgButton(hwndDlg, IDC_ENABLE_ALERTS, g_plugin.getByte(hContact, ENABLE_ALERTS_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_ADD_DATE_NAME, g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_24_HOUR, g_plugin.getByte(hContact, USE_24_HOUR_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_ALWAYS_LOG, g_plugin.getByte(hContact, ALWAYS_LOG_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
-
- SetDlgItemText(hwndDlg, IDC_ALERT_TYPE, TranslateW(AlertTypes[g_plugin.getByte(hContact, ALRT_INDEX_KEY, 0)]));
- SetDlgItemText(hwndDlg, IDC_EVENT_TYPE, TranslateW(EventTypes[g_plugin.getByte(hContact, EVNT_INDEX_KEY, 0)]));
-
- for (i = 0; i < _countof(AlertTypes); i++)
- SendDlgItemMessage(hwndDlg, IDC_ALERT_TYPE, CB_ADDSTRING, 0, (LPARAM)TranslateW(AlertTypes[i]));
-
- for (i = 0; i < _countof(EventTypes); i++)
- SendDlgItemMessage(hwndDlg, IDC_EVENT_TYPE, CB_ADDSTRING, 0, (LPARAM)TranslateW(EventTypes[i]));
-
- if (g_plugin.getByte(hContact, ENABLE_ALERTS_KEY, 0)) {
- CheckDlgButton(hwndDlg, IDC_ENABLE_ALERTS, BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_ADD_DATE_NAME, BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_24_HOUR, BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_PREFIX, BST_UNCHECKED);
- }
- EnableWindow(GetDlgItem(hwndDlg, IDC_EVENT_TYPE), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_ADD_DATE_NAME), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
-
- if (IsDlgButtonChecked(hwndDlg, IDC_ADD_DATE_NAME)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_PREFIX), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_SUFFIX), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_24_HOUR), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- }
- else {
- EnableWindow(GetDlgItem(hwndDlg, IDC_PREFIX), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SUFFIX), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_24_HOUR), 0);
- }
-
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_TYPE), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_START2), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_END2), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALWAYS_LOG), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
-
- if (!g_plugin.getString(hContact, EVNT_INDEX_KEY, &dbv)) {
- eventIndex = g_plugin.getByte(hContact, EVNT_INDEX_KEY, 0);
- db_free(&dbv);
- }
- if (!g_plugin.getString(hContact, ALRT_INDEX_KEY, &dbv)) {
- alertIndex = g_plugin.getByte(hContact, ALRT_INDEX_KEY, 0);
- db_free(&dbv);
- }
-
- // alerts
- if (alertIndex == 0) // Popup
- {
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 0);
- }
- }
- else if (alertIndex == 1) // file
- {
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 1);
- }
- }
- else if (alertIndex == 2) // datawindow
- {
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 0);
- }
- }
- else if (alertIndex == 3) // osd
- {
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 0);
- }
- }
-
- // events
- if (eventIndex == 0) // string is present
- {
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_START2), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_END2), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), 1);
- }
- }
- else if (eventIndex == 1) // webpage changed
- {
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_START2), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_END2), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), 0);
- }
- }
- else if (eventIndex == 2) // part of page changed
- {
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_START2), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_END2), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), 0);
- }
- }
-
- if (!g_plugin.getWString(hContact, FILE_KEY, &dbv)) {
- SetDlgItemText(hwndDlg, IDC_FILENAME, dbv.pwszVal);
- db_free(&dbv);
- }
-
- CheckDlgButton(hwndDlg, IDC_APPEND, g_plugin.getByte(hContact, APPEND_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_SAVE_AS_RAW, g_plugin.getByte(hContact, SAVE_AS_RAW_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
-
- if (g_plugin.getByte(hContact, CONTACT_PREFIX_KEY, 1) == 1)
- CheckRadioButton(hwndDlg, IDC_PREFIX, IDC_SUFFIX, IDC_PREFIX);
- else
- CheckRadioButton(hwndDlg, IDC_PREFIX, IDC_SUFFIX, IDC_SUFFIX);
-
- if (g_plugin.getByte(hContact, ALWAYS_LOG_KEY, 0)) {
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 1);
- }
- }
- return TRUE;
-
- case WM_COMMAND:
- switch (LOWORD(wParam)) {
- case IDC_BROWSE:
- {
- wchar_t szFileName[MAX_PATH];
- GetDlgItemText(hwndDlg, IDC_FILENAME, szFileName, _countof(szFileName));
-
- OPENFILENAME ofn = { 0 };
- ofn.lStructSize = sizeof(ofn);
- ofn.hwndOwner = hwndDlg;
- ofn.hInstance = nullptr;
- ofn.lpstrFilter = L"TEXT Files (*.txt)\0*.txt\0All Files (*.*)\0*.*\0\0";
- ofn.lpstrFile = szFileName;
- ofn.Flags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;
- ofn.nMaxFile = _countof(szFileName);
- ofn.nMaxFileTitle = MAX_PATH;
- ofn.lpstrDefExt = L"txt";
- if (!GetSaveFileName(&ofn))
- break;
-
- SetDlgItemText(hwndDlg, IDC_FILENAME, szFileName);
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_APPLY), 1);
- }
- break;
-
- case IDC_ADD_DATE_NAME:
- EnableWindow(GetDlgItem(hwndDlg, IDC_PREFIX), (IsDlgButtonChecked(hwndDlg, IDC_ADD_DATE_NAME)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_SUFFIX), (IsDlgButtonChecked(hwndDlg, IDC_ADD_DATE_NAME)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_24_HOUR), (IsDlgButtonChecked(hwndDlg, IDC_ADD_DATE_NAME)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_APPLY), 1);
- break;
-
- case IDC_24_HOUR:
- case IDC_SUFFIX:
- case IDC_PREFIX:
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_APPLY), 1);
- break;
-
- case IDC_ALERT_STRING:
- if (HIWORD(wParam) == EN_CHANGE)
- test++;
- if (test > 1)
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_APPLY), 1);
- break;
-
- case IDC_START2:
- case IDC_END2:
- if (HIWORD(wParam) == EN_CHANGE)
- test++;
- if (test > 3)
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_APPLY), 1);
- break;
-
- case IDC_APPEND:
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_APPLY), 1);
- break;
-
- case IDC_SAVE_AS_RAW:
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_APPLY), 1);
- break;
-
- case IDC_ENABLE_ALERTS:
- hContact = (MCONTACT)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
- EnableWindow(GetDlgItem(hwndDlg, IDC_ADD_DATE_NAME), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
-
- if (IsDlgButtonChecked(hwndDlg, IDC_ADD_DATE_NAME)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_PREFIX), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_SUFFIX), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_24_HOUR), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- }
- else {
- EnableWindow(GetDlgItem(hwndDlg, IDC_PREFIX), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SUFFIX), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_24_HOUR), 0);
- }
-
- EnableWindow(GetDlgItem(hwndDlg, IDC_EVENT_TYPE), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_TYPE), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALWAYS_LOG), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
-
- eventIndex = g_plugin.getByte(hContact, EVNT_INDEX_KEY, 0);
- alertIndex = g_plugin.getByte(hContact, ALRT_INDEX_KEY, 0);
-
- if (eventIndex == 2) { // part of webpage changed
- EnableWindow(GetDlgItem(hwndDlg, IDC_START2), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_END2), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- }
- else {
- EnableWindow(GetDlgItem(hwndDlg, IDC_START2), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_END2), 0);
- }
-
- // ////////
- if (alertIndex == 0) { // popup
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 0);
-
- if (eventIndex == 2) // part of webpage changed
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), 0);
- if (eventIndex == 1) // webpage changed
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), 0);
- if (eventIndex == 0) // string present
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- }
- }
- else if (alertIndex == 1) { // log to file
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 1);
-
- if (eventIndex == 1) // webpage changed
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), 0);
- if (eventIndex == 0) // string present
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- }
- else {
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 0);
- }
- }
- else if (alertIndex == 2) { // display window
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 0);
-
- if (eventIndex == 1) // webpage changed
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), 0);
- if (eventIndex == 0) // string present
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- }
- }
- else if (alertIndex == 3) { // osd
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 0);
-
- if (eventIndex == 1) // webpage changed
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), 0);
- if (eventIndex == 0) // string present
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- }
- }
-
- if (eventIndex == 0) // string present
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
-
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_APPLY), 1);
-
- if (IsDlgButtonChecked(hwndDlg, IDC_ALWAYS_LOG)) {
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 1);
- }
- else {
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 0);
- }
- }
- break;
-
- case IDC_ALWAYS_LOG:
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), (IsDlgButtonChecked(hwndDlg, IDC_ALWAYS_LOG)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), (IsDlgButtonChecked(hwndDlg, IDC_ALWAYS_LOG)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), (IsDlgButtonChecked(hwndDlg, IDC_ALWAYS_LOG)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), (IsDlgButtonChecked(hwndDlg, IDC_ALWAYS_LOG)));
- break;
-
- case IDC_ALERT_TYPE:
- if (HIWORD(wParam) == CBN_SELCHANGE || HIWORD(wParam) == CBN_EDITCHANGE) {
- hContact = (MCONTACT)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
- alertIndex = SendDlgItemMessage(hwndDlg, IDC_ALERT_TYPE, CB_GETCURSEL, 0, 0);
-
- if (HIWORD(wParam) == CBN_SELCHANGE) {
- g_plugin.setByte(hContact, ALRT_INDEX_KEY, alertIndex);
- if (alertIndex == 0) {
- // PopUp
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 0);
- }
- else if (alertIndex == 1) {
- // log to file
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 1);
- }
- else if (alertIndex == 2) {
- // data window
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 0);
- }
- else if (alertIndex == 3) {
- // OSD
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 0);
- }
-
- if (IsDlgButtonChecked(hwndDlg, IDC_ALWAYS_LOG)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), (IsDlgButtonChecked(hwndDlg, IDC_ALWAYS_LOG)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), (IsDlgButtonChecked(hwndDlg, IDC_ALWAYS_LOG)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), (IsDlgButtonChecked(hwndDlg, IDC_ALWAYS_LOG)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), (IsDlgButtonChecked(hwndDlg, IDC_ALWAYS_LOG)));
- }
- }
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_APPLY), 1);
- }
- break;
-
- case IDC_EVENT_TYPE:
- if (HIWORD(wParam) == CBN_SELCHANGE || HIWORD(wParam) == CBN_EDITCHANGE) {
- hContact = (MCONTACT)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
- eventIndex = SendDlgItemMessage(hwndDlg, IDC_EVENT_TYPE, CB_GETCURSEL, 0, 0);
-
- if (HIWORD(wParam) == CBN_SELCHANGE) {
- g_plugin.setByte(hContact, EVNT_INDEX_KEY, eventIndex);
- if (eventIndex == 0) {
- // event when string is present
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_START2), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_END2), 0);
- }
- else if (eventIndex == 1) {
- // event when web page changes
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_START2), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_END2), 0);
- }
- else if (eventIndex == 2) {
- // event when part of web page changes
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_START2), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_END2), 1);
- }
- }
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_APPLY), 1);
- }
- break;
-
- case IDC_ALERT_APPLY:
- case IDC_OK2:
- {
- hContact = (MCONTACT)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
-
- eventIndex = g_plugin.getByte(hContact, EVNT_INDEX_KEY, 0);
- alertIndex = g_plugin.getByte(hContact, ALRT_INDEX_KEY, 0);
-
- g_plugin.setByte(hContact, ENABLE_ALERTS_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS));
- g_plugin.setByte(hContact, APND_DATE_NAME_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_ADD_DATE_NAME));
- g_plugin.setByte(hContact, USE_24_HOUR_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_24_HOUR));
- g_plugin.setByte(hContact, ALWAYS_LOG_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_ALWAYS_LOG));
-
- //if alerts is unticked delete the cache
- if (!(IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)))
- SiteDeleted(hContact, 0);
-
- if (eventIndex == 0) // string present
- if (!(GetWindowTextLength(GetDlgItem(hwndDlg, IDC_ALERT_STRING))))
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- MessageBox(nullptr, TranslateT("You need to supply a search string."), _A2W(MODULENAME), MB_OK);
- break;
- }
-
- if (eventIndex == 2) // part of web page changed
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- if (!(GetWindowTextLength(GetDlgItem(hwndDlg, IDC_START2)))) {
- MessageBox(nullptr, TranslateT("You need to supply a start string."), _A2W(MODULENAME), MB_OK);
- break;
- }
- if (!(GetWindowTextLength(GetDlgItem(hwndDlg, IDC_END2)))) {
- MessageBox(nullptr, TranslateT("You need to supply an end string."), _A2W(MODULENAME), MB_OK);
- break;
- }
- }
-
- if (alertIndex == 1) // log to file
- if (!(GetWindowTextLength(GetDlgItem(hwndDlg, IDC_FILENAME))))
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- MessageBox(nullptr, TranslateT("You need to supply a file name and path."), _A2W(MODULENAME), MB_OK);
- break;
- }
-
- if (IsDlgButtonChecked(hwndDlg, IDC_ALWAYS_LOG))
- if (!(GetWindowTextLength(GetDlgItem(hwndDlg, IDC_FILENAME))))
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- MessageBox(nullptr, TranslateT("You need to supply a file name and path."), _A2W(MODULENAME), MB_OK);
- break;
- }
-
- wchar_t buf[MAX_PATH];
- GetDlgItemText(hwndDlg, IDC_FILENAME, buf, _countof(buf));
- g_plugin.setWString(hContact, FILE_KEY, buf);
-
- g_plugin.setByte(hContact, APPEND_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_APPEND));
- g_plugin.setByte(hContact, SAVE_AS_RAW_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_SAVE_AS_RAW));
-
- GetDlgItemText(hwndDlg, IDC_ALERT_STRING, buf, _countof(buf));
- g_plugin.setWString(hContact, ALERT_STRING_KEY, buf);
-
- GetDlgItemText(hwndDlg, IDC_START2, buf, _countof(buf));
- g_plugin.setWString(hContact, ALRT_S_STRING_KEY, buf);
-
- GetDlgItemText(hwndDlg, IDC_END2, buf, _countof(buf));
- g_plugin.setWString(hContact, ALRT_E_STRING_KEY, buf);
-
- g_plugin.setByte(hContact, CONTACT_PREFIX_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_PREFIX));
-
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_APPLY), 0);
-
- if (LOWORD(wParam) == IDC_OK2)
- EndDialog(hwndDlg, 1);
- }
- break;
-
- case IDC_ALERT_CANCEL:
- case IDC_CANCEL:
- EndDialog(hwndDlg, 0);
- }
- }
- return FALSE;
-}
-
-/*****************************************************************************/
-
-INT_PTR CALLBACK DlgProcContactOpt(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- DBVARIANT dbv;
- wchar_t url[300];
- HWND ParentHwnd = GetParent(hwndDlg);
- static int test;
- static int test2;
- MCONTACT hContact;
-
- switch (msg) {
- case WM_INITDIALOG:
- TranslateDialogDefault(hwndDlg);
-
- hContact = (MCONTACT)lParam;
-
- test = 0;
- test2 = 0;
-
- SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)hContact);
-
- SetWindowText(hwndDlg, TranslateT("Contact options"));
-
- SendMessage(hwndDlg, WM_SETICON, ICON_SMALL, (LPARAM)LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_OPTIONS)));
-
- EnableWindow(GetDlgItem(hwndDlg, IDC_OPT_APPLY), 0);
-
- if (!g_plugin.getWString(hContact, URL_KEY, &dbv)) {
- SetDlgItemText(hwndDlg, IDC_URL, dbv.pwszVal);
- db_free(&dbv);
- }
- if (!g_plugin.getWString(hContact, START_STRING_KEY, &dbv)) {
- SetDlgItemText(hwndDlg, IDC_START, dbv.pwszVal);
- db_free(&dbv);
- }
- if (!g_plugin.getWString(hContact, END_STRING_KEY, &dbv)) {
- SetDlgItemText(hwndDlg, IDC_END, dbv.pwszVal);
- db_free(&dbv);
- }
- if (g_plugin.getWString(hContact, PRESERVE_NAME_KEY, &dbv)) {
- db_free(&dbv);
- db_get_ws(hContact, "CList", "MyHandle", &dbv);
- g_plugin.setWString(hContact, PRESERVE_NAME_KEY, dbv.pwszVal);
- db_free(&dbv);
- }
- if (!g_plugin.getWString(hContact, PRESERVE_NAME_KEY, &dbv)) {
- SetDlgItemText(hwndDlg, IDC_SITE_NAME, dbv.pwszVal);
- db_free(&dbv);
- }
-
- CheckDlgButton(hwndDlg, IDC_CLEAN, g_plugin.getByte(hContact, CLEAR_DISPLAY_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
-
- SendDlgItemMessage(hwndDlg, IDC_RWSPACE, TBM_SETRANGE, FALSE, MAKELONG(0, 4));
- SendDlgItemMessage(hwndDlg, IDC_RWSPACE, TBM_SETPOS, TRUE, g_plugin.getByte(hContact, RWSPACE_KEY, 0));
- SetDlgItemText(hwndDlg, IDC_RWSPC_TEXT, TranslateW(szTrackerBarDescr[SendDlgItemMessage(hwndDlg, IDC_RWSPACE, TBM_GETPOS, 0, 0)]));
-
- EnableWindow(GetDlgItem(hwndDlg, IDC_RWSPACE), (IsDlgButtonChecked(hwndDlg, IDC_CLEAN)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_RWSPC_TEXT), (IsDlgButtonChecked(hwndDlg, IDC_CLEAN)));
-
- if (g_plugin.getByte(hContact, DBLE_WIN_KEY, 1) == 1)
- CheckRadioButton(hwndDlg, IDC_DBLE_WEB, IDC_DBLE_WIN, IDC_DBLE_WIN);
- else
- CheckRadioButton(hwndDlg, IDC_DBLE_WEB, IDC_DBLE_WIN, IDC_DBLE_WEB);
-
- if (g_plugin.getByte(hContact, U_ALLSITE_KEY, 0) == 1) {
- CheckRadioButton(hwndDlg, IDC_U_SE_STRINGS, IDC_U_ALLSITE, IDC_U_ALLSITE);
- EnableWindow(GetDlgItem(hwndDlg, IDC_START), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_END), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_CPY_STRINGS), 0);
- }
- else {
- CheckRadioButton(hwndDlg, IDC_U_SE_STRINGS, IDC_U_ALLSITE, IDC_U_SE_STRINGS);
- EnableWindow(GetDlgItem(hwndDlg, IDC_START), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_END), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_CPY_STRINGS), 1);
- //EnableWindow(GetDlgItem(hwndDlg, IDC_CPY_STR_TXT), 1);
- }
- break;
-
- case WM_HSCROLL:
- SetDlgItemText(hwndDlg, IDC_RWSPC_TEXT, TranslateW(szTrackerBarDescr[SendDlgItemMessage(hwndDlg, IDC_RWSPACE, TBM_GETPOS, 0, 0)]));
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_OPT_APPLY), 1);
- break;
-
- case WM_COMMAND:
- switch (LOWORD(wParam)) {
- case WM_CLOSE:
- case IDCANCEL:
- if (hwndDlg) {
- DestroyWindow(hwndDlg);
- hwndDlg = nullptr;
- }
- return TRUE;
-
- case IDC_SITE_NAME:
- case IDC_URL:
- if (HIWORD(wParam) == EN_CHANGE)
- test++;
- if (test > 2)
- EnableWindow(GetDlgItem(hwndDlg, IDC_OPT_APPLY), 1);
- break;
-
- case IDC_DBLE_WEB:
- case IDC_DBLE_WIN:
- EnableWindow(GetDlgItem(hwndDlg, IDC_OPT_APPLY), 1);
- break;
-
- case IDC_START:
- case IDC_END:
- if (HIWORD(wParam) == EN_CHANGE)
- test2++;
- if (test2 > 2)
- EnableWindow(GetDlgItem(hwndDlg, IDC_OPT_APPLY), 1);
- break;
-
- case IDC_CPY_STRINGS:
- {
- wchar_t string[128];
- hContact = (MCONTACT)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
-
- GetDlgItemText(hwndDlg, IDC_START, string, _countof(string));
- g_plugin.setWString(hContact, ALRT_S_STRING_KEY, string);
-
- GetDlgItemText(hwndDlg, IDC_END, string, _countof(string));
- g_plugin.setWString(hContact, ALRT_E_STRING_KEY, string);
-
- g_plugin.setWord(hContact, EVNT_INDEX_KEY, 2);
- }
- break;
-
- case IDC_CLEAN:
- EnableWindow(GetDlgItem(hwndDlg, IDC_RWSPACE), (IsDlgButtonChecked(hwndDlg, IDC_CLEAN)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_RWSPC_TEXT), (IsDlgButtonChecked(hwndDlg, IDC_CLEAN)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_OPT_APPLY), 1);
- break;
-
- case IDC_U_SE_STRINGS:
- EnableWindow(GetDlgItem(hwndDlg, IDC_START), (IsDlgButtonChecked(hwndDlg, IDC_U_SE_STRINGS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_END), (IsDlgButtonChecked(hwndDlg, IDC_U_SE_STRINGS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_CPY_STRINGS), (IsDlgButtonChecked(hwndDlg, IDC_U_SE_STRINGS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_OPT_APPLY), 1);
- break;
-
- case IDC_U_ALLSITE:
- EnableWindow(GetDlgItem(hwndDlg, IDC_START), (IsDlgButtonChecked(hwndDlg, IDC_U_SE_STRINGS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_END), (IsDlgButtonChecked(hwndDlg, IDC_U_SE_STRINGS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_CPY_STRINGS), (IsDlgButtonChecked(hwndDlg, IDC_U_SE_STRINGS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_OPT_APPLY), 1);
- break;
-
- case IDC_OPT_APPLY:
- case IDOK:
- {
- wchar_t str[128], contactname[128];
- if (!GetWindowTextLength(GetDlgItem(hwndDlg, IDC_URL))) {
- MessageBox(nullptr, TranslateT("You need to supply a URL."), _A2W(MODULENAME), MB_OK);
- break;
- }
- if (!GetWindowTextLength(GetDlgItem(hwndDlg, IDC_START))) {
- if (IsDlgButtonChecked(hwndDlg, IDC_U_SE_STRINGS)) {
- MessageBox(nullptr, TranslateT("You need to supply a start string."), _A2W(MODULENAME), MB_OK);
- break;
- }
- }
- if (!GetWindowTextLength(GetDlgItem(hwndDlg, IDC_END))) {
- if (IsDlgButtonChecked(hwndDlg, IDC_U_SE_STRINGS)) {
- MessageBox(nullptr, TranslateT("You need to supply an end string."), _A2W(MODULENAME), MB_OK);
- break;
- }
- }
- if (!GetWindowTextLength(GetDlgItem(hwndDlg, IDC_SITE_NAME))) {
- MessageBox(nullptr, TranslateT("You need to supply a name for the contact."), _A2W(MODULENAME), MB_OK);
- break;
- }
-
- GetDlgItemText(hwndDlg, IDC_SITE_NAME, contactname, _countof(contactname));
- if (wcschr(contactname, '\\') != nullptr) {
- MessageBox(nullptr, TranslateT("Invalid symbol present in contact name."), _A2W(MODULENAME), MB_OK);
- break;
- }
- if (wcschr(contactname, '/') != nullptr) {
- MessageBox(nullptr, TranslateT("Invalid symbol present in contact name."), _A2W(MODULENAME), MB_OK);
- break;
- }
- if (wcschr(contactname, ':') != nullptr) {
- MessageBox(nullptr, TranslateT("Invalid symbol present in contact name."), _A2W(MODULENAME), MB_OK);
- break;
- }
- if (wcschr(contactname, '*') != nullptr) {
- MessageBox(nullptr, TranslateT("Invalid symbol present in contact name."), _A2W(MODULENAME), MB_OK);
- break;
- }
- if (wcschr(contactname, '?') != nullptr) {
- MessageBox(nullptr, TranslateT("Invalid symbol present in contact name."), _A2W(MODULENAME), MB_OK);
- break;
- }
- if (wcschr(contactname, '\"') != nullptr) {
- MessageBox(nullptr, TranslateT("Invalid symbol present in contact name."), _A2W(MODULENAME), MB_OK);
- break;
- }
- if (wcschr(contactname, '<') != nullptr) {
- MessageBox(nullptr, TranslateT("Invalid symbol present in contact name."), _A2W(MODULENAME), MB_OK);
- break;
- }
- if (wcschr(contactname, '>') != nullptr) {
- MessageBox(nullptr, TranslateT("Invalid symbol present in contact name."), _A2W(MODULENAME), MB_OK);
- break;
- }
- if (wcschr(contactname, '|') != nullptr) {
- MessageBox(nullptr, TranslateT("Invalid symbol present in contact name."), _A2W(MODULENAME), MB_OK);
- break;
- }
-
- hContact = (MCONTACT)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
-
- GetDlgItemText(hwndDlg, IDC_URL, url, _countof(url));
- g_plugin.setWString(hContact, URL_KEY, url);
- g_plugin.setWString(hContact, "Homepage", url);
-
- GetDlgItemText(hwndDlg, IDC_START, str, _countof(str));
- g_plugin.setWString(hContact, START_STRING_KEY, str);
-
- GetDlgItemText(hwndDlg, IDC_END, str, _countof(str));
- g_plugin.setWString(hContact, END_STRING_KEY, str);
-
- GetDlgItemText(hwndDlg, IDC_SITE_NAME, str, _countof(str));
- db_set_ws(hContact, "CList", "MyHandle", str);
-
- g_plugin.setByte(hContact, DBLE_WIN_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_DBLE_WIN));
- g_plugin.setByte(hContact, U_ALLSITE_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_U_ALLSITE));
-
- g_plugin.setByte(hContact, CLEAR_DISPLAY_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_CLEAN));
- g_plugin.setByte(hContact, RWSPACE_KEY, (BYTE)(SendDlgItemMessage(hwndDlg, IDC_RWSPACE, TBM_GETPOS, 0, 0)));
-
- SetDlgItemText(ParentHwnd, IDC_OPEN_URL, FixButtonText(url, _countof(url)));
-
- SetWindowText(ParentHwnd, str);
- EnableWindow(GetDlgItem(hwndDlg, IDC_OPT_APPLY), 0);
-
- if (LOWORD(wParam) == IDOK)
- EndDialog(hwndDlg, 1);
- }
- break;
-
- case IDC_OPT_CANCEL:
- EndDialog(hwndDlg, 0);
- }
- break;
- }
- return FALSE;
-}
-
-/*****************************************************************************/
-INT_PTR CALLBACK DlgProcOpt(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
-{
- DWORD timerval, delaytime, oldcolor;
- DBVARIANT dbv;
- static int test = 0;
- static int test2 = 0;
-
- switch (uMsg) {
- case WM_INITDIALOG:
- TranslateDialogDefault(hwndDlg);
- {
- test = 0;
-
- SendDlgItemMessage(hwndDlg, IDC_SPIN1, UDM_SETRANGE, 0, MAKELONG(999, 0));
- SendDlgItemMessage(hwndDlg, IDC_SPIN2, UDM_SETRANGE, 0, MAKELONG(120, 0));
-
- SetDlgItemInt(hwndDlg, IDC_TIME, g_plugin.getDword(REFRESH_KEY, TIME), FALSE);
- SetDlgItemInt(hwndDlg, IDC_START_DELAY, g_plugin.getWord(START_DELAY_KEY, 0), FALSE);
-
- mir_forkthread(FillFontListThread, hwndDlg);
-
- CheckDlgButton(hwndDlg, IDC_DISABLEMENU, g_plugin.getByte(MENU_OFF, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_SUPPRESS, g_plugin.getByte(SUPPRESS_ERR_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_UPDATE_ONSTART, g_plugin.getByte(UPDATE_ONSTART_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_UPDATE_ON_OPEN, g_plugin.getByte(UPDATE_ON_OPEN_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_HIDE_STATUS_ICON, g_plugin.getByte(HIDE_STATUS_ICON_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_FONT_BOLD, g_plugin.getByte(FONT_BOLD_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_FONT_ITALIC, g_plugin.getByte(FONT_ITALIC_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_FONT_UNDERLINE, g_plugin.getByte(FONT_UNDERLINE_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_ERROR_POPUP, g_plugin.getByte(ERROR_POPUP_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_UPDATE_ONALERT, g_plugin.getByte(UPDATE_ONALERT_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_SAVE_INDIVID_POS, g_plugin.getByte(SAVE_INDIVID_POS_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_NO_PROTECT, g_plugin.getByte(NO_PROTECT_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_DATAPOPUP, g_plugin.getByte(DATA_POPUP_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
-
- if (!g_plugin.getWString(FONT_FACE_KEY, &dbv)) {
- SetDlgItemText(hwndDlg, IDC_TYPEFACE, dbv.pwszVal);
- db_free(&dbv);
- }
- else SetDlgItemText(hwndDlg, IDC_TYPEFACE, Def_font_face);
-
- for (int i = 0; i < _countof(fontSizes); i++)
- SendDlgItemMessage(hwndDlg, IDC_FONTSIZE, CB_ADDSTRING, 0, (LPARAM)fontSizes[i]);
-
- SendMessage(hwndDlg, M_FILLSCRIPTCOMBO, wParam, 0);
-
- SetDlgItemInt(hwndDlg, IDC_FONTSIZE, g_plugin.getByte(FONT_SIZE_KEY, 14), FALSE);
-
- EnableWindow(GetDlgItem(hwndDlg, IDC_FIND_BUTTON), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_BUTTON), 0);
-
- SendDlgItemMessage(hwndDlg, IDC_BGCOLOR, CPM_SETCOLOUR, 0, (BackgoundClr));
- SendDlgItemMessage(hwndDlg, IDC_TXTCOLOR, CPM_SETCOLOUR, 0, (TextClr));
-
- /*
- * record bg value for later comparison
- */
- oldcolor = BackgoundClr;
-
- if (g_plugin.getByte(SUPPRESS_ERR_KEY, 0)) {
- CheckDlgButton(hwndDlg, IDC_SUPPRESS, BST_CHECKED);
- EnableWindow(GetDlgItem(hwndDlg, IDC_ERROR_POPUP), 0);
- }
- else {
- CheckDlgButton(hwndDlg, IDC_SUPPRESS, BST_UNCHECKED);
- if ((ServiceExists(MS_POPUP_ADDPOPUPW) != 0))
- EnableWindow(GetDlgItem(hwndDlg, IDC_ERROR_POPUP), 1);
- }
-
- if (ServiceExists(MS_POPUP_ADDPOPUPW) == 0)
- EnableWindow(GetDlgItem(hwndDlg, IDC_ERROR_POPUP), 0);
-
- if (g_plugin.getByte(UPDATE_ONSTART_KEY, 0)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_START_DELAY), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SPIN2), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_STARTDELAYTXT), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_STDELAYSECTXT), 1);
- }
- else {
- EnableWindow(GetDlgItem(hwndDlg, IDC_START_DELAY), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SPIN2), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_STARTDELAYTXT), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_STDELAYSECTXT), 0);
- }
- }
- break;
-
- case M_FILLSCRIPTCOMBO: // fill the script combo box and set the
- // selection to the value for fontid wParam
-
- {
- LOGFONT lf = { 0 };
- int i;
- HDC hdc = GetDC(hwndDlg);
-
- lf.lfCharSet = DEFAULT_CHARSET;
- GetDlgItemText(hwndDlg, IDC_TYPEFACE, lf.lfFaceName, _countof(lf.lfFaceName));
- lf.lfPitchAndFamily = 0;
- SendDlgItemMessage(hwndDlg, IDC_SCRIPT, CB_RESETCONTENT, 0, 0);
- EnumFontFamiliesEx(hdc, &lf, (FONTENUMPROC)EnumFontScriptsProc, (LPARAM)GetDlgItem(hwndDlg, IDC_SCRIPT), 0);
- ReleaseDC(hwndDlg, hdc);
- for (i = SendDlgItemMessage(hwndDlg, IDC_SCRIPT, CB_GETCOUNT, 0, 0) - 1; i >= 0; i--) {
- if (SendDlgItemMessage(hwndDlg, IDC_SCRIPT, CB_GETITEMDATA, i, 0) == (BYTE)((g_plugin.getByte(FONT_SCRIPT_KEY, 0)))) {
- SendDlgItemMessage(hwndDlg, IDC_SCRIPT, CB_SETCURSEL, i, 0);
- break;
- }
- }
- if (i < 0)
- SendDlgItemMessage(hwndDlg, IDC_SCRIPT, CB_SETCURSEL, 0, 0);
- }
- break;
-
- case WM_COMMAND:
- if (HIWORD(wParam) == BN_CLICKED && GetFocus() == (HWND)lParam)
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
-
- switch (LOWORD(wParam)) {
- case IDC_TXTCOLOR:
- TextClr = SendDlgItemMessage(hwndDlg, IDC_TXTCOLOR, CPM_GETCOLOUR, 0, 0);
- g_plugin.setDword(TXT_COLOR_KEY, TextClr);
- if (HIWORD(wParam) == CPN_COLOURCHANGED) {
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- TxtclrLoop();
- }
- break;
-
- case IDC_BGCOLOR:
- BackgoundClr = SendDlgItemMessage(hwndDlg, IDC_BGCOLOR, CPM_GETCOLOUR, 0, 0);
- g_plugin.setDword(BG_COLOR_KEY, BackgoundClr);
- if (HIWORD(wParam) == CPN_COLOURCHANGED) {
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- BGclrLoop();
- }
- break;
-
- case IDC_HIDE_STATUS_ICON:
- ShowWindow(GetDlgItem(hwndDlg, IDC_RESTART), SW_SHOW);
- break;
-
- case IDC_SUPPRESS:
- if ((ServiceExists(MS_POPUP_ADDPOPUPW) != 0))
- EnableWindow(GetDlgItem(hwndDlg, IDC_ERROR_POPUP), (!(IsDlgButtonChecked(hwndDlg, IDC_SUPPRESS))));
- break;
-
- case IDC_UPDATE_ONSTART:
- EnableWindow(GetDlgItem(hwndDlg, IDC_START_DELAY), ((IsDlgButtonChecked(hwndDlg, IDC_UPDATE_ONSTART))));
- EnableWindow(GetDlgItem(hwndDlg, IDC_SPIN2), ((IsDlgButtonChecked(hwndDlg, IDC_UPDATE_ONSTART))));
- EnableWindow(GetDlgItem(hwndDlg, IDC_STARTDELAYTXT), ((IsDlgButtonChecked(hwndDlg, IDC_UPDATE_ONSTART))));
- EnableWindow(GetDlgItem(hwndDlg, IDC_STDELAYSECTXT), ((IsDlgButtonChecked(hwndDlg, IDC_UPDATE_ONSTART))));
- break;
-
- case IDC_DISABLEMENU:
- ShowWindow(GetDlgItem(hwndDlg, IDC_RESTART), SW_SHOW);
- break;
-
- case IDC_TYPEFACE:
- SendMessage(hwndDlg, M_FILLSCRIPTCOMBO, wParam, 0);
- case IDC_FONTSIZE:
- case IDC_SCRIPT:
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- break;
-
- case IDC_START_DELAY:
- if (HIWORD(wParam) == EN_CHANGE)
- test++;
- if (test > 1)
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- break;
-
- case IDC_TIME:
- if (HIWORD(wParam) == EN_CHANGE)
- test2++;
- if (test2 > 2)
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- break;
- } // end WM_COMMAND
- break;
-
- case WM_DESTROY:
- test = 0;
- test2 = 0;
- break;
-
- case WM_NOTIFY:
- switch (((LPNMHDR)lParam)->code) {
- case PSN_APPLY:
- g_plugin.setByte(MENU_OFF, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_DISABLEMENU));
- g_plugin.setByte(SUPPRESS_ERR_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_SUPPRESS));
- g_plugin.setByte(UPDATE_ONSTART_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_UPDATE_ONSTART));
- g_plugin.setByte(UPDATE_ON_OPEN_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_UPDATE_ON_OPEN));
- g_plugin.setByte(HIDE_STATUS_ICON_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_HIDE_STATUS_ICON));
- g_plugin.setByte(FONT_BOLD_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_FONT_BOLD));
- g_plugin.setByte(FONT_ITALIC_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_FONT_ITALIC));
- g_plugin.setByte(FONT_UNDERLINE_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_FONT_UNDERLINE));
- g_plugin.setByte(UPDATE_ONALERT_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_UPDATE_ONALERT));
- g_plugin.setByte(SAVE_INDIVID_POS_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_SAVE_INDIVID_POS));
- g_plugin.setByte(NO_PROTECT_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_NO_PROTECT));
- g_plugin.setByte(DATA_POPUP_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_DATAPOPUP));
-
- wchar_t str[100];
- GetDlgItemText(hwndDlg, IDC_TYPEFACE, str, _countof(str));
- g_plugin.setWString(FONT_FACE_KEY, str);
-
- g_plugin.setByte(FONT_SIZE_KEY, (GetDlgItemInt(hwndDlg, IDC_FONTSIZE, nullptr, FALSE)));
- g_plugin.setByte(FONT_SCRIPT_KEY, ((BYTE)SendDlgItemMessage(hwndDlg, IDC_SCRIPT, CB_GETITEMDATA, SendDlgItemMessage(hwndDlg, IDC_SCRIPT, CB_GETCURSEL, 0, 0), 0)));
-
- g_plugin.setByte(ERROR_POPUP_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_ERROR_POPUP));
-
- timerval = GetDlgItemInt(hwndDlg, IDC_TIME, nullptr, FALSE);
- g_plugin.setDword(REFRESH_KEY, timerval);
- g_plugin.setDword(COUNTDOWN_KEY, timerval);
-
-
- delaytime = GetDlgItemInt(hwndDlg, IDC_START_DELAY, nullptr, FALSE);
- g_plugin.setDword(START_DELAY_KEY, delaytime);
-
- BackgoundClr = (SendDlgItemMessage(hwndDlg, IDC_BGCOLOR, CPM_GETCOLOUR, 0, 0));
- TextClr = (SendDlgItemMessage(hwndDlg, IDC_TXTCOLOR, CPM_GETCOLOUR, 0, 0));
-
- if ((g_plugin.getDword(REFRESH_KEY, 0) != 0)) {
- KillTimer(nullptr, timerId);
- KillTimer(nullptr, Countdown);
- timerId = SetTimer(nullptr, 0, ((g_plugin.getDword(REFRESH_KEY, 0)) * MINUTE), timerfunc);
- Countdown = SetTimer(nullptr, 0, MINUTE, Countdownfunc);
- }
- if ((g_plugin.getDword(REFRESH_KEY, 0) == 0)) {
- KillTimer(nullptr, timerId);
- KillTimer(nullptr, Countdown);
- }
- test = 0;
- }
- break; // end apply
- }
-
- return 0;
-}
diff --git a/plugins/WebView/src/webview_services.cpp b/plugins/WebView/src/webview_services.cpp deleted file mode 100644 index 4957120181..0000000000 --- a/plugins/WebView/src/webview_services.cpp +++ /dev/null @@ -1,458 +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" - -static int searchId = -1; - -/*****************************************************************************/ -static char szInvalidChars[] = { '\\', '/', ':', '*', '?', '\"', '<', '>', '|' }; - -int DBSettingChanged(WPARAM wParam, LPARAM lParam) -{ - // We can't upload changes to NULL contact - MCONTACT hContact = wParam; - if (hContact == NULL) - return 0; - - DBCONTACTWRITESETTING *cws = (DBCONTACTWRITESETTING *)lParam; - if (!strcmp(cws->szModule, "CList")) { - int invalidpresent = 0; - - char *szProto = GetContactProto(hContact); - if (szProto == nullptr || strcmp(szProto, MODULENAME)) - return 0; - - // A contact is renamed - if (!strcmp(cws->szSetting, "MyHandle")) { - ptrW oldName(g_plugin.getWStringA(hContact, PRESERVE_NAME_KEY)); - if (oldName == NULL) - return 0; - - wchar_t nick[100]; - ptrW oldnick(db_get_wsa(hContact, "CList", "MyHandle")); - if (oldnick != NULL) - wcsncpy_s(nick, oldnick, _TRUNCATE); - else - nick[0] = 0; - - for (int i = 0; i < _countof(szInvalidChars); i++) { - wchar_t *p = wcschr(nick, szInvalidChars[i]); - if (p != nullptr) { - WErrorPopup((UINT_PTR)"ERROR", TranslateT("Invalid symbol present in contact name.")); - *p = '_'; - invalidpresent = 1; - } - } - - if (invalidpresent) { - srand((unsigned)time(0)); - wchar_t ranStr[7]; - _itow((int)10000 * rand() / (RAND_MAX + 1.0), ranStr, 10); - mir_wstrcat(nick, ranStr); - } - - if (wcschr(nick, '(') == nullptr) { - g_plugin.setWString(hContact, PRESERVE_NAME_KEY, nick); - g_plugin.setWString(hContact, "Nick", nick); - db_set_ws(hContact, "CList", "MyHandle", nick); - } - - // TEST GET NAME FOR CACHE - wchar_t cachepath[MAX_PATH], cachedirectorypath[MAX_PATH]; - GetModuleFileName(g_plugin.getInst(), cachepath, _countof(cachepath)); - wchar_t *cacheend = wcsrchr(cachepath, '\\'); - cacheend++; - *cacheend = '\0'; - mir_snwprintf(cachedirectorypath, L"%s" _A2W(MODULENAME) L"cache\\", cachepath); - CreateDirectory(cachedirectorypath, nullptr); - - wchar_t newcachepath[MAX_PATH + 50], renamedcachepath[MAX_PATH + 50]; - mir_snwprintf(newcachepath, L"%s" _A2W(MODULENAME) L"cache\\%s.txt", cachepath, oldName); - mir_snwprintf(renamedcachepath, L"%s" _A2W(MODULENAME) L"cache\\%s.txt", cachepath, nick); - - // file exists? - if (_waccess(newcachepath, 0) != -1) { - FILE *pcachefile = _wfopen(newcachepath, L"r"); - if (pcachefile != nullptr) { - fclose(pcachefile); - if (mir_wstrcmp(newcachepath, renamedcachepath)) { - MoveFile(newcachepath, renamedcachepath); - g_plugin.setWString(hContact, CACHE_FILE_KEY, renamedcachepath); - } - } - } - } - } - return 0; -} - -/*****************************************************************************/ -int SiteDeleted(WPARAM wParam, LPARAM) -{ - MCONTACT hContact = wParam; - if (mir_strcmp(GetContactProto(hContact), MODULENAME)) - return 0; - - ptrW contactName(g_plugin.getWStringA(hContact, PRESERVE_NAME_KEY)); - - // TEST GET NAME FOR CACHE - wchar_t cachepath[MAX_PATH], cachedirectorypath[MAX_PATH], newcachepath[MAX_PATH + 50]; - GetModuleFileName(g_plugin.getInst(), cachepath, _countof(cachepath)); - wchar_t *cacheend = wcsrchr(cachepath, '\\'); - cacheend++; - *cacheend = '\0'; - - mir_snwprintf(cachedirectorypath, L"%s" _A2W(MODULENAME) L"cache\\", cachepath); - CreateDirectory(cachedirectorypath, nullptr); - mir_snwprintf(newcachepath, L"%s" _A2W(MODULENAME) L"cache\\%s.txt", cachepath, contactName); - // file exists? - if (_waccess(newcachepath, 0) != -1) { - FILE *pcachefile = _wfopen(newcachepath, L"r"); - if (pcachefile != nullptr) { - fclose(pcachefile); - DeleteFile(newcachepath); - g_plugin.setString(hContact, CACHE_FILE_KEY, ""); - } - } - return 0; -} - -/*****************************************************************************/ -INT_PTR OpenCacheDir(WPARAM, LPARAM) -{ - //GET NAME FOR CACHE - wchar_t cachepath[MAX_PATH], cachedirectorypath[MAX_PATH]; - GetModuleFileName(g_plugin.getInst(), cachepath, _countof(cachepath)); - wchar_t *cacheend = wcsrchr(cachepath, '\\'); - cacheend++; - *cacheend = '\0'; - - mir_snwprintf(cachedirectorypath, L"%s" _A2W(MODULENAME) L"cache\\%s", cachepath, cacheend); - - if (_waccess(cachedirectorypath, 0) != 0) - WErrorPopup((UINT_PTR)"ERROR", TranslateT("Cache folder does not exist.")); - else - ShellExecute(nullptr, L"open", cachedirectorypath, nullptr, nullptr, SW_SHOWNORMAL); - return 0; -} - -/*****************************************************************************/ -INT_PTR PingWebsiteMenuCommand(WPARAM wParam, LPARAM) -{ - FILE *pfile = fopen("psite.bat", "r"); - if (pfile == nullptr) { - WErrorPopup((UINT_PTR)"ERROR", TranslateT("Missing \"psite.bat\" file.")); - return 0; - } - - ptrW url(g_plugin.getWStringA(wParam, "URL")); - if (url == NULL) - return 0; - - wchar_t Cnick[200], *Oldnick; - wcsncpy(Cnick, url, _countof(Cnick)); - if ((Oldnick = wcsstr(Cnick, L"://")) != nullptr) - Oldnick += 3; - else - Oldnick = Cnick; - - wchar_t *Nend = wcschr(Oldnick, '/'); - if (Nend) *Nend = '\0'; - - ShellExecute(nullptr, L"open", L"psite.bat", Oldnick, nullptr, SW_HIDE); - return 0; -} - -/*****************************************************************************/ -INT_PTR StpPrcssMenuCommand(WPARAM wParam, LPARAM) -{ - g_plugin.setByte(wParam, STOP_KEY, 1); - return 0; -} - -//======================================================= -// GetCaps -// ======================================================= - -INT_PTR GetCaps(WPARAM wParam, LPARAM) -{ - switch (wParam) { - case PFLAGNUM_1: - return PF1_BASICSEARCH | PF1_ADDSEARCHRES | PF1_VISLIST; - case PFLAGNUM_2: - return g_plugin.getByte(HIDE_STATUS_ICON_KEY, 0) ? 0 : (PF2_ONLINE | PF2_SHORTAWAY | PF2_LONGAWAY | PF2_LIGHTDND | PF2_HEAVYDND); - case PFLAGNUM_3: - return 0; - case PFLAGNUM_4: - return PF4_NOCUSTOMAUTH | PF4_NOAUTHDENYREASON; - case PFLAGNUM_5: - return PF2_INVISIBLE | PF2_SHORTAWAY | PF2_LONGAWAY | PF2_LIGHTDND | PF2_HEAVYDND | PF2_FREECHAT | PF2_OUTTOLUNCH | PF2_ONTHEPHONE; - case PFLAG_UNIQUEIDTEXT: - return (INT_PTR)Translate("Site URL"); - default: - return 0; - } -} - -// ======================================================= -// GetName -// ======================================================= - -INT_PTR GetName(WPARAM wParam, LPARAM lParam) -{ - mir_strncpy((char*)lParam, MODULENAME, wParam); - return 0; -} - -//======================================================= -// SetStatus -// ======================================================= - -INT_PTR SetStatus(WPARAM wParam, LPARAM) -{ - int oldStatus = bpStatus; - - if (wParam == ID_STATUS_ONLINE) - wParam = ID_STATUS_ONLINE; - else if (wParam == ID_STATUS_OFFLINE) - wParam = ID_STATUS_OFFLINE; - else - wParam = ID_STATUS_ONLINE; - - // broadcast the message - bpStatus = wParam; - - ProtoBroadcastAck(MODULENAME, NULL, ACKTYPE_STATUS, ACKRESULT_SUCCESS, (HANDLE)oldStatus, wParam); - - // Make sure no contact has offline status for any reason on first time run - if (g_plugin.getByte("FirstTime", 100) == 100) { - for (auto &hContact : Contacts(MODULENAME)) - g_plugin.setWord(hContact, "Status", ID_STATUS_ONLINE); - - g_plugin.setByte("FirstTime", 1); - } - - g_plugin.setByte(OFFLINE_STATUS, bpStatus == ID_STATUS_OFFLINE); - return 0; -} - -//======================================================= -// GetStatus -// ======================================================= - -INT_PTR GetStatus(WPARAM, LPARAM) -{ - if (bpStatus == ID_STATUS_ONLINE) - return ID_STATUS_ONLINE; - if (bpStatus == ID_STATUS_AWAY) - return ID_STATUS_AWAY; - if (bpStatus == ID_STATUS_NA) - return ID_STATUS_NA; - if (bpStatus == ID_STATUS_OCCUPIED) - return ID_STATUS_OCCUPIED; - if (bpStatus == ID_STATUS_DND) - return ID_STATUS_DND; - return ID_STATUS_OFFLINE; -} - -//======================================================= -// BPLoadIcon -// ======================================================= - -INT_PTR BPLoadIcon(WPARAM wParam, LPARAM) -{ - UINT id; - - switch (wParam & 0xFFFF) { - case PLI_PROTOCOL: - id = IDI_SITE; - break; - default: - return 0; - } - return (INT_PTR)LoadImage(g_plugin.getInst(), MAKEINTRESOURCE(id), IMAGE_ICON, - GetSystemMetrics(wParam & PLIF_SMALL ? SM_CXSMICON : SM_CXICON), - GetSystemMetrics(wParam & PLIF_SMALL ? SM_CYSMICON : SM_CYICON), 0); -} - -/*****************************************************************************/ -static void __cdecl BasicSearchTimerProc(wchar_t *pszNick) -{ - PROTOSEARCHRESULT psr = { sizeof(psr) }; - psr.flags = PSR_UNICODE; - psr.nick.w = pszNick; - - // broadcast the search result - ProtoBroadcastAck(MODULENAME, NULL, ACKTYPE_SEARCH, ACKRESULT_DATA, (HANDLE)1, (LPARAM)&psr); - ProtoBroadcastAck(MODULENAME, NULL, ACKTYPE_SEARCH, ACKRESULT_SUCCESS, (HANDLE)1, 0); - - // exit the search - searchId = -1; - mir_free(pszNick); -} - -INT_PTR BasicSearch(WPARAM, LPARAM lParam) -{ - if (searchId != -1) - return 0; // only one search at a time - - searchId = 1; - - // create a thread for the ID search - mir_forkThread<wchar_t>(BasicSearchTimerProc, mir_wstrdup((const wchar_t*)lParam)); - return searchId; -} - -/*****************************************************************************/ -INT_PTR AddToList(WPARAM, LPARAM lParam) -{ - PROTOSEARCHRESULT *psr = (PROTOSEARCHRESULT *)lParam; - DBVARIANT dbv; - int sameurl = 0; - int samename = 0; - - if (psr == nullptr) - return 0; - if (psr->nick.w == nullptr) { - WErrorPopup((UINT_PTR)"ERROR", TranslateT("Please select site in Find/Add contacts...")); - return 0; - } - // if contact with the same ID was not found, add it - if (psr->cbSize != sizeof(PROTOSEARCHRESULT)) - return NULL; - // search for existing contact - for (auto &hContact : Contacts(MODULENAME)) { - // check ID to see if the contact already exist in the database - if (g_plugin.getWString(hContact, "URL", &dbv)) - continue; - if (!mir_wstrcmpi(psr->nick.w, dbv.pwszVal)) { - // remove the flag for not on list and hidden, thus make the - // contact visible - // and add them on the list - sameurl++; - if (db_get_b(hContact, "CList", "NotOnList", 1)) { - db_unset(hContact, "CList", "NotOnList"); - db_unset(hContact, "CList", "Hidden"); - } - } - db_free(&dbv); - } - - MCONTACT hContact = db_add_contact(); - Proto_AddToContact(hContact, MODULENAME); - - /////////write to db - g_plugin.setByte(hContact, ON_TOP_KEY, 0); - g_plugin.setByte(hContact, DBLE_WIN_KEY, 1); - g_plugin.setString(hContact, END_STRING_KEY, ""); - g_plugin.setByte(hContact, RWSPACE_KEY, 1); - - //Convert url into a name for contact - wchar_t Cnick[255]; - if (psr->nick.w != nullptr) - wcsncpy(Cnick, psr->nick.w, _countof(Cnick)); - else - Cnick[0] = 0; - - wchar_t *Oldnick = wcsstr(Cnick, L"://"); - if (Oldnick != nullptr) - Oldnick += 3; - else - Oldnick = Cnick; - - wchar_t *Newnick = wcsstr(Oldnick, L"www."); - if (Newnick != nullptr) - Newnick += 4; - else { - Newnick = wcsstr(Oldnick, L"WWW."); - if (Newnick != nullptr) - Newnick += 4; - else - Newnick = Oldnick; - } - - wchar_t *Nend = wcschr(Newnick, '.'); - if (Nend) *Nend = '\0'; - - for (auto &hContact2 : Contacts(MODULENAME)) { - if (!db_get_ws(hContact2, MODULENAME, PRESERVE_NAME_KEY, &dbv)) { - if (!mir_wstrcmpi(Newnick, dbv.pwszVal)) { - // remove the flag for not on list and hidden, thus make the - // contact visible - // and add them on the list - samename++; - if (db_get_b(hContact2, "CList", "NotOnList", 1)) { - db_unset(hContact2, "CList", "NotOnList"); - db_unset(hContact2, "CList", "Hidden"); - } - db_free(&dbv); - } - } - db_free(&dbv); - } - - if ((sameurl > 0) || (samename > 0)) // contact has the same url or name as another contact, add rand num to name - { - srand((unsigned)time(0)); - - wchar_t ranStr[10]; - _itow((int)10000 * rand() / (RAND_MAX + 1.0), ranStr, 10); - mir_wstrcat(Newnick, ranStr); - } - //end convert - - db_set_ws(hContact, "CList", "MyHandle", Newnick); - g_plugin.setWString(hContact, PRESERVE_NAME_KEY, Newnick); - g_plugin.setWString(hContact, "Nick", Newnick); - g_plugin.setByte(hContact, CLEAR_DISPLAY_KEY, 1); - g_plugin.setString(hContact, START_STRING_KEY, ""); - g_plugin.setWString(hContact, URL_KEY, psr->nick.w); - g_plugin.setWString(hContact, "Homepage", psr->nick.w); - g_plugin.setByte(hContact, U_ALLSITE_KEY, 1); - g_plugin.setWord(hContact, "Status", ID_STATUS_ONLINE); - - // ignore status change - db_set_dw(hContact, "Ignore", "Mask", 8); - - Sleep(2); - - db_free(&dbv); - - - return (INT_PTR)hContact; -} - -/*****************************************************************************/ - -static void __cdecl AckFunc(void*) -{ - for (auto &hContact : Contacts(MODULENAME)) - ProtoBroadcastAck(MODULENAME, hContact, ACKTYPE_GETINFO, ACKRESULT_SUCCESS, (HANDLE)1, 0); -} - -INT_PTR GetInfo(WPARAM, LPARAM) -{ - mir_forkthread(AckFunc); - return 1; -} |