From 18e0b1e1b7e216e13c58d863510af4a25df1fee1 Mon Sep 17 00:00:00 2001 From: Vadim Dashevskiy Date: Mon, 23 Jul 2012 09:46:45 +0000 Subject: HistorySweeperLight, MyDetails, NewEventNotify: changed folder structure git-svn-id: http://svn.miranda-ng.org/main/trunk@1112 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/HistorySweeperLight/src/main.cpp | 179 +++++++++++++++++++++++++++++++ 1 file changed, 179 insertions(+) create mode 100644 plugins/HistorySweeperLight/src/main.cpp (limited to 'plugins/HistorySweeperLight/src/main.cpp') diff --git a/plugins/HistorySweeperLight/src/main.cpp b/plugins/HistorySweeperLight/src/main.cpp new file mode 100644 index 0000000000..c6f8b427ac --- /dev/null +++ b/plugins/HistorySweeperLight/src/main.cpp @@ -0,0 +1,179 @@ +/* +Miranda IM History Sweeper Light plugin +Copyright (C) 2002-2003 Sergey V. Gershovich +Copyright (C) 2006-2009 Boris Krasnovskiy +Copyright (C) 2010, 2011 tico-tico + +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 "historysweeperlight.h" +#include "version.h" + +HINSTANCE hInst; + +static HANDLE hHooks[5]; +int hLangpack; + +static PLUGININFOEX pluginInfoEx = +{ + // about plugin + sizeof(PLUGININFOEX), + "History Sweeper Light", + __VERSION_DWORD, + "This plugin can sweep system history, history from all contacts or only from chosen; also it may sweep history older than certain time; and may do it at Miranda IM startup/shutdown.", + "Sergey V. Gershovich a.k.a. Jazzy$, Boris Krasnovskiy, tico-tico", + "", + "© 2002-2003 Sergey V. Gershovich a.k.a. Jazzy$, 2006-2009 Boris Krasnovskiy, 2010, 2011 tico-tico", + "", + UNICODE_AWARE, + MIID_HISTORYSWEEPERLIGHT +}; + +BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved) +{ + hInst=hinstDLL; + return TRUE; +} + +int OnIconPressed(WPARAM wParam, LPARAM lParam) +{ + StatusIconClickData *sicd = (StatusIconClickData *)lParam; + + if ( !(sicd->flags & MBCF_RIGHTBUTTON) && !lstrcmpA(sicd->szModule, ModuleName) + && DBGetContactSettingByte(NULL, ModuleName, "ChangeInMW", 0)) + { + int nh = sicd->dwId; HANDLE hContact = (HANDLE)wParam; StatusIconData sid = {0}; + + sid.cbSize = sizeof(sid); + sid.szModule = ModuleName; + sid.dwId = nh; + sid.flags = MBF_HIDDEN; + CallService(MS_MSG_MODIFYICON, (WPARAM)hContact, (LPARAM)&sid); + + nh = (nh + 1) % 4; + DBWriteContactSettingByte((HANDLE)wParam, ModuleName, "SweepHistory", (BYTE)nh); + + sid.dwId = nh; + sid.flags = 0; + CallService(MS_MSG_MODIFYICON, (WPARAM)hContact, (LPARAM)&sid); + } + return 0; +} + + +int OnModulesLoaded(WPARAM wParam, LPARAM lParam) +{ + StatusIconData sid = {0}; + int i, sweep = DBGetContactSettingByte(NULL, ModuleName, "SweepHistory", 0); + HANDLE hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDFIRST, 0, 0); + + sid.cbSize = sizeof(sid); + sid.szModule = ModuleName; + + sid.hIcon = LoadIconEx("actG"); + if (sweep == 0) + sid.szTooltip = Translate("Keep all events"); + else if (sweep == 1) + { + sid.szTooltip = Translate(time_stamp_strings[DBGetContactSettingByte(NULL, ModuleName, "StartupShutdownOlder", 0)]); + } + else if (sweep == 2) + { + sid.szTooltip = Translate(keep_strings[DBGetContactSettingByte(NULL, ModuleName, "StartupShutdownKeep", 0)]); + } + else if (sweep == 3) + { + sid.szTooltip = Translate("Delete all events"); + } + sid.flags = MBF_HIDDEN; + CallService(MS_MSG_ADDICON, 0, (LPARAM)&sid); + + sid.dwId = 1; + sid.hIcon = LoadIconEx("act1"); + sid.szTooltip = Translate(time_stamp_strings[DBGetContactSettingByte(NULL, ModuleName, "StartupShutdownOlder", 0)]); + sid.flags = MBF_HIDDEN; + CallService(MS_MSG_ADDICON, 0, (LPARAM)&sid); + + sid.dwId = 2; + sid.hIcon = LoadIconEx("act2"); + sid.szTooltip = Translate(keep_strings[DBGetContactSettingByte(NULL, ModuleName, "StartupShutdownKeep", 0)]); + sid.flags = MBF_HIDDEN; + CallService(MS_MSG_ADDICON, 0, (LPARAM)&sid); + + sid.dwId = 3; + sid.hIcon = LoadIconEx("actDel"); + sid.szTooltip = Translate("Delete all events"); + sid.flags = MBF_HIDDEN; + CallService(MS_MSG_ADDICON, 0, (LPARAM)&sid); + + // for new contacts + while ( hContact != NULL ) + { + ZeroMemory(&sid,sizeof(sid)); + + sweep = DBGetContactSettingByte(hContact, ModuleName, "SweepHistory", 0); + + sid.cbSize = sizeof(sid); + sid.szModule = ModuleName; + + for(i = 0; i < 4; i++) + { + sid.dwId = i; + sid.flags = (sweep == i) ? 0 : MBF_HIDDEN; + CallService(MS_MSG_MODIFYICON, (WPARAM)hContact, (LPARAM)&sid); + } + + hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDNEXT, (WPARAM)hContact, 0); + } + + hHooks[2] = HookEvent(ME_MSG_WINDOWEVENT, OnWindowEvent); + hHooks[3] = HookEvent(ME_MSG_ICONPRESSED, OnIconPressed); + + return 0; +} + +extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion) +{ + return &pluginInfoEx; +} + +extern "C" __declspec(dllexport) int Load(void) +{ + + mir_getLP(&pluginInfoEx); + + hHooks[0] = HookEvent(ME_SYSTEM_MODULESLOADED, OnModulesLoaded); + hHooks[1] = HookEvent(ME_OPT_INITIALISE, HSOptInitialise); + + InitIcons(); + + return 0; +} + +extern "C" __declspec(dllexport) int Unload(void) +{ + int i; + + ShutdownAction(); + + for (i = 0; i < SIZEOF(hHooks); i++) + { + if (hHooks[i]) + UnhookEvent(hHooks[i]); + } + + return 0; +} \ No newline at end of file -- cgit v1.2.3