From f3d44bc057201407373012b7f682881bda7b3d98 Mon Sep 17 00:00:00 2001 From: Vadim Dashevskiy Date: Wed, 23 May 2012 07:44:30 +0000 Subject: some includes restored, mir_full.sln updated, some renaming of folders and projects git-svn-id: http://svn.miranda-ng.org/main/trunk@140 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/W7ui/subclassmgr.h | 71 ---------------------------------------------- 1 file changed, 71 deletions(-) delete mode 100644 plugins/W7ui/subclassmgr.h (limited to 'plugins/W7ui/subclassmgr.h') diff --git a/plugins/W7ui/subclassmgr.h b/plugins/W7ui/subclassmgr.h deleted file mode 100644 index 1cf2433254..0000000000 --- a/plugins/W7ui/subclassmgr.h +++ /dev/null @@ -1,71 +0,0 @@ -#ifndef subclassmgr_h__ -#define subclassmgr_h__ - -struct TSubclassData -{ - WNDPROC oldWndProc; - LPARAM lParam; -}; - -typedef LRESULT (*TSubclassProc)(MSG *msg, TSubclassData *data); - -class CSubclassMgr -{ -public: - static void Subclass(HWND hwnd, TSubclassProc newWndProc, LPARAM lParam) - { - TWindowInfo *wi = new TWindowInfo; - wi->hwnd = hwnd; - wi->newWndProc = newWndProc; - wi->lParam = lParam; - Instance().m_windows.insert(wi); - wi->oldWndProc = (WNDPROC)SetWindowLongPtr(hwnd, GWLP_WNDPROC, (LONG_PTR)GlobalSubclassProc); - } - -private: - CSubclassMgr(): m_windows(5, TWindowInfo::Compare) {} - CSubclassMgr(const CSubclassMgr &); - CSubclassMgr &operator=(const CSubclassMgr &); - - static CSubclassMgr &Instance() - { - static CSubclassMgr theInstance; - return theInstance; - } - - struct TWindowInfo - { - HWND hwnd; - WNDPROC oldWndProc; - TSubclassProc newWndProc; - LPARAM lParam; - - static int Compare(const TWindowInfo *p1, const TWindowInfo *p2) - { - return (int)p1->hwnd - (int)p2->hwnd; - } - }; - - OBJLIST m_windows; - - static LRESULT CALLBACK GlobalSubclassProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) - { - TWindowInfo search = { hwnd }; - TWindowInfo *wnd = Instance().m_windows.find(&search); - if (!wnd) return DefWindowProc(hwnd, message, wParam, lParam); - - MSG msg = { hwnd, message, wParam, lParam }; - TSubclassData data = { wnd->oldWndProc, wnd->lParam }; - LRESULT result = wnd->newWndProc(&msg, &data); - - if (message == WM_DESTROY) - { - SetWindowLongPtr(hwnd, GWLP_WNDPROC, (LONG_PTR)wnd->oldWndProc); - Instance().m_windows.remove(wnd); - } - - return result; - } -}; - -#endif // subclassmgr_h__ -- cgit v1.2.3