From 67010ebc31ce45e6c42d2c31d983f3988bb320e1 Mon Sep 17 00:00:00 2001 From: Kirill Volinsky Date: Wed, 20 Mar 2013 13:04:46 +0000 Subject: added some old plugins git-svn-id: http://svn.miranda-ng.org/main/trunk@4123 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- .../MagneticWindows/MagneticWindows.cpp | 184 +++++++++++++++++++++ 1 file changed, 184 insertions(+) create mode 100644 plugins/!NotAdopted/MagneticWindows/MagneticWindows.cpp (limited to 'plugins/!NotAdopted/MagneticWindows/MagneticWindows.cpp') diff --git a/plugins/!NotAdopted/MagneticWindows/MagneticWindows.cpp b/plugins/!NotAdopted/MagneticWindows/MagneticWindows.cpp new file mode 100644 index 0000000000..153289166f --- /dev/null +++ b/plugins/!NotAdopted/MagneticWindows/MagneticWindows.cpp @@ -0,0 +1,184 @@ +#include "MagneticWindowsCore.h" + +/////////////////////////////////////////////////////////////////////////////////////////////////// +// +// Magnetic Windows +// +// Autor: Michael Kunz +// EMail: Michael.Kunz@s2005.tu-chemnitz.de +// +// +// thanks to: pescuma +// +/////////////////////////////////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////////////////////////////////// +// Variables +/////////////////////////////////////////////////////////////////////////////////////////////////// + +PLUGININFO pluginInfo = { + sizeof(PLUGININFO), + "Magnetic Windows", + PLUGIN_MAKE_VERSION(0,0,3,2), + "Makes the main contactlist and the chat windows snapping to the desktop border and to each other.", + "Michael Kunz", + "Michael.Kunz@s2005.TU-Cemnitz.de", + "(c) 2006 Michael Kunz", + "http://addons.miranda-im.org/details.php?action=viewfile&id=2871", + 0, + 0 +}; + +PLUGINLINK * pluginLink; + +HANDLE hLoadedHook, hShootDownHook, hAddService, hRemService, hWindowEventHook; + +HINSTANCE hInst; +//char ModuleName[256]; +char ModuleName[] = "MagneticWindows"; + +/////////////////////////////////////////////////////////////////////////////////////////////////// +// Plugin Functions +/////////////////////////////////////////////////////////////////////////////////////////////////// + + +//For other Plugins to start snapping for other Windows +int SnapPluginWindowStart(WPARAM wParam, LPARAM lParam) { + + if (!WindowOpen((HWND)wParam)) return 1; + + return 0; +} +//For other Plugins to stop snapping for other Windows +int SnapPluginWindowStop(WPARAM wParam, LPARAM lParam) { + + if (!WindowClose((HWND)wParam)) return 1; + + return 0; +} + +int PluginMessageWindowEvent(WPARAM wParam, LPARAM lParam) { + MessageWindowEventData* Data; + HWND hWndParent, hWnd; + + Data = (MessageWindowEventData*)(lParam); + + switch (Data->uType) { + case MSG_WINDOW_EVT_OPEN: + hWnd = Data->hwndWindow; + //WindowOpen(hWnd); + hWndParent = GetParent(hWnd); + while ((hWndParent != 0) && (hWndParent != GetDesktopWindow()) && (IsWindowVisible(hWndParent))) { + hWnd = hWndParent; + hWndParent = GetParent(hWnd); + } + + WindowOpen(hWnd); + break; + + case MSG_WINDOW_EVT_CLOSING: + WindowClose(Data->hwndWindow); + break; + + default: + break; + } + + return 0; +} + + +/////////////////////////////////////////////////////////////////////////////////////////////////// +// Main Functions +/////////////////////////////////////////////////////////////////////////////////////////////////// + + +int SnapPluginStart(WPARAM wParam, LPARAM lParam) { + + LoadOptions(); + + hWindowEventHook = HookEvent(ME_MSG_WINDOWEVENT, PluginMessageWindowEvent); + + WindowOpen((HWND)CallService(MS_CLUI_GETHWND,0,0)); + return 0; +} + +int SnapPluginShootDown(WPARAM wParam, LPARAM lParam) { + UnhookEvent(hWindowEventHook); + UnhookEvent(hLoadedHook); + UnhookEvent(hShootDownHook); + UnhookEvent(hInitOptionsHook); + + WindowCloseAll(); + + DestroyServiceFunction(hAddService); + DestroyServiceFunction(hRemService); + DestroyServiceFunction(hSnapToListService); + + return 0; +} + + +/////////////////////////////////////////////////////////////////////////////////////////////////// +// Exportet Functions +/////////////////////////////////////////////////////////////////////////////////////////////////// + +extern "C" __declspec(dllexport) PLUGININFO* MirandaPluginInfo(DWORD mirandaVersion) +{ + return &pluginInfo; +} + +extern "C" int __declspec(dllexport) Load(PLUGINLINK *link) +{ + pluginLink = link; + + hLoadedHook = HookEvent(ME_SYSTEM_MODULESLOADED, SnapPluginStart); + hShootDownHook = HookEvent(ME_SYSTEM_PRESHUTDOWN, SnapPluginShootDown); + hInitOptionsHook = HookEvent(ME_OPT_INITIALISE, InitOptions); + + hAddService = CreateServiceFunction(MS_MW_ADDWINDOW, SnapPluginWindowStart); + hRemService = CreateServiceFunction(MS_MW_REMWINDOW, SnapPluginWindowStop); + hSnapToListService = CreateServiceFunction(MS_MW_SNAPTOLIST, SnapToList); + + return 0; +} + +extern "C" int __declspec(dllexport) Unload(void) +{ + return 0; +} + +/////////////////////////////////////////////////////////////////////////////////////////////////// +// DLL MAIN +/////////////////////////////////////////////////////////////////////////////////////////////////// + + +extern "C" bool APIENTRY DllMain( HMODULE hModule, + DWORD ul_reason_for_call, + LPVOID lpReserved + ) +{ + hInst = hModule; + + +/* char * Temp; + char * l,i; + + Temp = (char*) malloc(2048); + GetModuleFileName(hModule, Temp, 2048); + + l = Temp; + i = Temp; + + while (i != 0) { + if ((*i) == '\') l = i + 1; + i++; + } + + memcpy(ModuleName, l, i-l); + free(Temp); + */ + + return true; +} -- cgit v1.2.3