From 88e6efae0b8867f14d59561f6503bfc41eb0d4d3 Mon Sep 17 00:00:00 2001 From: Vadim Dashevskiy Date: Thu, 12 Dec 2013 08:33:21 +0000 Subject: MagneticWindows moved to deprecated git-svn-id: http://svn.miranda-ng.org/main/trunk@7134 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- .../MagneticWindows/src/MagneticWindows.cpp | 143 +++++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 plugins/!Deprecated/MagneticWindows/src/MagneticWindows.cpp (limited to 'plugins/!Deprecated/MagneticWindows/src/MagneticWindows.cpp') diff --git a/plugins/!Deprecated/MagneticWindows/src/MagneticWindows.cpp b/plugins/!Deprecated/MagneticWindows/src/MagneticWindows.cpp new file mode 100644 index 0000000000..bcf38c3036 --- /dev/null +++ b/plugins/!Deprecated/MagneticWindows/src/MagneticWindows.cpp @@ -0,0 +1,143 @@ +#include "MagneticWindowsCore.h" + +/////////////////////////////////////////////////////////////////////////////////////////////////// +// +// Magnetic Windows +// +// Autor: Michael Kunz +// EMail: Michael.Kunz@s2005.tu-chemnitz.de +// +// +// thanks to: pescuma +// +/////////////////////////////////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////////////////////////////////// +// Variables +/////////////////////////////////////////////////////////////////////////////////////////////////// + +PLUGININFOEX pluginInfo = { + sizeof(PLUGININFOEX), + __PLUGIN_NAME, + PLUGIN_MAKE_VERSION(__MAJOR_VERSION, __MINOR_VERSION, __RELEASE_NUM, __BUILD_NUM), + __DESCRIPTION, + __AUTHOR, + __AUTHOREMAIL, + __COPYRIGHT, + __AUTHORWEB, + UNICODE_AWARE, + // {08C01613-24C8-486F-BDAE-2C3DDCAF9347} + {0x8c01613, 0x24c8, 0x486f, { 0xbd, 0xae, 0x2c, 0x3d, 0xdc, 0xaf, 0x93, 0x47 }} +}; + +HINSTANCE hInst; +int hLangpack; + +/////////////////////////////////////////////////////////////////////////////////////////////////// +// Plugin Functions +/////////////////////////////////////////////////////////////////////////////////////////////////// + + +//For other Plugins to start snapping for other Windows +INT_PTR SnapPluginWindowStart(WPARAM wParam, LPARAM) +{ + if (!WindowOpen((HWND)wParam)) return 1; + return 0; +} + +//For other Plugins to stop snapping for other Windows +INT_PTR SnapPluginWindowStop(WPARAM wParam, LPARAM) +{ + if (!WindowClose((HWND)wParam)) return 1; + return 0; +} + +int PluginMessageWindowEvent(WPARAM, LPARAM lParam) +{ + MessageWindowEventData *Data = (MessageWindowEventData*) lParam; + + switch (Data->uType) { + case MSG_WINDOW_EVT_OPEN: + { + HWND hWnd = Data->hwndWindow; + 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; + } + + return 0; +} + + +/////////////////////////////////////////////////////////////////////////////////////////////////// +// Main Functions +/////////////////////////////////////////////////////////////////////////////////////////////////// + +int SnapPluginStart(WPARAM, LPARAM) +{ + LoadOptions(); + + HookEvent(ME_MSG_WINDOWEVENT, PluginMessageWindowEvent); + + WindowOpen((HWND)CallService(MS_CLUI_GETHWND,0,0)); + return 0; +} + +int SnapPluginShutDown(WPARAM, LPARAM) +{ + WindowCloseAll(); + return 0; +} + + +/////////////////////////////////////////////////////////////////////////////////////////////////// +// Exportet Functions +/////////////////////////////////////////////////////////////////////////////////////////////////// + +extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD) +{ + return &pluginInfo; +} + +extern "C" int __declspec(dllexport) Load() +{ + mir_getLP(&pluginInfo); + + HookEvent(ME_SYSTEM_MODULESLOADED, SnapPluginStart); + HookEvent(ME_SYSTEM_PRESHUTDOWN, SnapPluginShutDown); + HookEvent(ME_OPT_INITIALISE, InitOptions); + + CreateServiceFunction(MS_MW_ADDWINDOW, SnapPluginWindowStart); + CreateServiceFunction(MS_MW_REMWINDOW, SnapPluginWindowStop); + CreateServiceFunction(MS_MW_SNAPTOLIST, SnapToList); + + WindowStart(); + return 0; +} + +extern "C" int __declspec(dllexport) Unload() +{ + return 0; +} + +/////////////////////////////////////////////////////////////////////////////////////////////////// +// DLL MAIN +/////////////////////////////////////////////////////////////////////////////////////////////////// + + +BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) +{ + hInst = hinstDLL; + return TRUE; +} -- cgit v1.2.3