/* * 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. */ #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 INBUILTPOP_KEY "UseInbuiltPopupAlert" #define TIME 60 #define Def_color_bg 0x00ffffff #define Def_color_txt 0x00000000 #define Def_font_face _T("Courier") #define Def_font_size 14 #define HK_SHOWHIDE 3001 #define MAXSIZE1 250000 #define MAXSIZE2 500000 #define MAXSIZE3 1000000 #define Def_win_height 152 #define Def_win_width 250 //lets get rid of some warnings void CodetoSymbol(char *truncated); void GetData(HANDLE hContact); void FillFontListThread(void *); INT_PTR CALLBACK DlgProcDisplayData(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); INT_PTR CALLBACK DlgProcAlertOpt(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); INT_PTR CALLBACK DlgProcOpt(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); int DataWndAlertCommand(WPARAM wParam, LPARAM lParam); int PopupAlert(WPARAM wParam, LPARAM lParam); int WPopupAlert(WPARAM wParam, LPARAM lParam); int ErrorMsgs(WPARAM wParam, LPARAM lParam); int OSDAlert(WPARAM wParam, LPARAM lParam); void ReadFromFile(void *hContact); /* * some globals for window settings */ extern DWORD Xposition, Yposition, BackgoundClr, TextClr, WindowHeight, WindowWidth; extern UINT_PTR timerId, Countdown; extern LOGFONT lf; extern HFONT h_font; extern HWND ContactHwnd; extern HINSTANCE hInst; extern HMENU hMenu; extern int bpStatus; extern HANDLE hNetlibUser, hWindowList; extern HANDLE hMenuItem1, hMenuItemCountdown; extern char optionsname[80]; //lets get rid of some warnings void timerfunc(void); void Countdownfunc(void); void SavewinSettings(void); void ValidatePosition(HWND hwndDlg); int ModulesLoaded(WPARAM wParam, LPARAM lParam); void ChangeMenuItem3(); TCHAR* FixButtonText(TCHAR *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 ContactOptionsMenuCommand(WPARAM wParam, LPARAM lParam); INT_PTR CntOptionsMenuCommand(WPARAM wParam, LPARAM lParam); INT_PTR CntAlertMenuCommand(WPARAM wParam, LPARAM lParam); INT_PTR DataWndMenuCommand(WPARAM wParam, LPARAM lParam); INT_PTR ShowHideContactCommand(WPARAM wParam, LPARAM lParam); INT_PTR PingWebsiteMenuCommand(WPARAM wParam, LPARAM lParam); INT_PTR StpPrcssMenuCommand(WPARAM wParam, LPARAM lParam); int UpdateMenuCommand(WPARAM wParam, LPARAM lParam, HANDLE singlecontact); int OnTopMenuCommand(WPARAM wParam, LPARAM lParam, HANDLE singlecontact); // void ChangeContactStatus(int con_stat); void InitialiseGlobals(void); void FontSettings(void); /// void Removewhitespace(char *truncated); void RemoveInvis(char *truncated, int AmountWspcRem); void RemoveTabs(char *truncated); void FastTagFilter(char *truncated); void EraseBlock(char *truncated); void EraseSymbols(char *truncated); int ProcessAlerts(HANDLE hContact, char *truncated, char *tstr, char *contactname, int notpresent); INT_PTR CALLBACK DlgPopUpOpts(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam); INT_PTR CALLBACK DlgProcFind(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); int DataDialogResize(HWND hwndDlg, LPARAM lParam, UTILRESIZECONTROL * urc); void Filter(char *truncated); void TxtclrLoop(); void BGclrLoop(); void ContactLoop(void *dummy); void NumSymbols(char *truncated); INT_PTR AutoUpdateMCmd(WPARAM wParam, LPARAM lParam); INT_PTR CALLBACK DlgProcContactOpt(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); void AckFunc(void *dummy); int SiteDeleted(WPARAM wParam, LPARAM lParam); int WErrorPopup(HANDLE hContact, TCHAR *textdisplay); int WAlertPopup(HANDLE hContact, TCHAR *displaytext); ////////////////////// // wrappers extern HANDLE hHookDisplayDataAlert; #define ME_DISPLAYDATA_ALERT "Miranda/ALERT/DISPLAYDATA" extern HANDLE hHookAlertPopup; #define ME_POPUP_ALERT "Miranda/ALERT/POPUP" extern HANDLE hHookErrorPopup; #define ME_POPUP_ERROR "Miranda/ERROR/POPUP" extern HANDLE hHookAlertOSD; #define ME_OSD_ALERT "Miranda/ALERT/OSD"