diff options
| author | George Hazan <ghazan@miranda.im> | 2018-05-20 15:08:48 +0300 | 
|---|---|---|
| committer | George Hazan <ghazan@miranda.im> | 2018-05-20 15:08:48 +0300 | 
| commit | 8a74e7495ce5ad39de4f5c25121a84d35df90c36 (patch) | |
| tree | 03e5b4870f09a3163306740c2eebee47bc15b042 /plugins/AsSingleWindow/src | |
| parent | c5bf7d6123dd1c3b82ccb8fdb1b068077e9d56d4 (diff) | |
CMPlugin to receive a reference to PLUGININFOEX
Diffstat (limited to 'plugins/AsSingleWindow/src')
| -rw-r--r-- | plugins/AsSingleWindow/src/AsSingleWindow.cpp | 76 | ||||
| -rw-r--r-- | plugins/AsSingleWindow/src/AsSingleWindow.h | 4 | ||||
| -rw-r--r-- | plugins/AsSingleWindow/src/Options.cpp | 8 | ||||
| -rw-r--r-- | plugins/AsSingleWindow/src/Options.h | 2 | ||||
| -rw-r--r-- | plugins/AsSingleWindow/src/stdafx.h | 4 | 
5 files changed, 49 insertions, 45 deletions
diff --git a/plugins/AsSingleWindow/src/AsSingleWindow.cpp b/plugins/AsSingleWindow/src/AsSingleWindow.cpp index 8ab98c8d1a..87496f8e83 100644 --- a/plugins/AsSingleWindow/src/AsSingleWindow.cpp +++ b/plugins/AsSingleWindow/src/AsSingleWindow.cpp @@ -4,11 +4,15 @@  #include "WindowsManager.h"  #include "version.h" -CLIST_INTERFACE *pcli; +sPluginVars pluginVars; +  CMPlugin g_plugin; +CLIST_INTERFACE *pcli;  int &hLangpack(g_plugin.m_hLang); -PLUGININFOEX pluginInfo = { +///////////////////////////////////////////////////////////////////////////////////////// + +PLUGININFOEX pluginInfoEx = {  	 sizeof(PLUGININFOEX),  	 __PLUGIN_NAME,  	 PLUGIN_MAKE_VERSION(__MAJOR_VERSION, __MINOR_VERSION, __RELEASE_NUM, __BUILD_NUM), @@ -20,11 +24,43 @@ PLUGININFOEX pluginInfo = {  	 {0xF6C73B4, 0x2B2B, 0x711D, {0xFB, 0xB6, 0xBB, 0x26, 0x7D, 0xFD, 0x72, 0x08}}, // 0xF6C73B42B2B711DFBB6BB267DFD7208  }; -sPluginVars pluginVars; +CMPlugin::CMPlugin() : +	PLUGIN<CMPlugin>(MODULENAME, pluginInfoEx) +{}  extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD)  { -	return &pluginInfo; +	return &pluginInfoEx; +} + +///////////////////////////////////////////////////////////////////////////////////////// + +static int MsgWindowEvent(WPARAM, LPARAM lParam) +{ +	MessageWindowEventData* data = (MessageWindowEventData*)lParam; + +	if (data == nullptr) +		return 0; + +	switch (data->uType) { +	case MSG_WINDOW_EVT_OPEN: +		// Здесь можно отлавливать только открытие окна, +		// т.к. закрытие может быть закрытием вкладки +		windowAdd(data->hwndWindow, false); +		break; +	} + +	return 0; +} + +static int OnModulesLoaded(WPARAM, LPARAM) +{ +	windowAdd(pcli->hwndContactList, true); + +	HookEvent(ME_MSG_WINDOWEVENT, MsgWindowEvent); + +	optionsLoad(); +	return 0;  }  static int OnShutdown(WPARAM, LPARAM) @@ -36,7 +72,7 @@ static int OnShutdown(WPARAM, LPARAM)  extern "C" __declspec(dllexport) int Load(void)  { -	mir_getLP(&pluginInfo); +	mir_getLP(&pluginInfoEx);  	pcli = Clist_GetInterface();  	::InitializeCriticalSection(&pluginVars.m_CS); @@ -47,36 +83,10 @@ extern "C" __declspec(dllexport) int Load(void)  	return 0;  } +///////////////////////////////////////////////////////////////////////////////////////// +  extern "C" __declspec(dllexport) int Unload(void)  {  	::DeleteCriticalSection(&pluginVars.m_CS);  	return 0;  } - -int OnModulesLoaded(WPARAM, LPARAM) -{ -	windowAdd(pcli->hwndContactList, true); - -	HookEvent(ME_MSG_WINDOWEVENT, MsgWindowEvent); - -	optionsLoad(); -	return 0; -} - -int MsgWindowEvent(WPARAM, LPARAM lParam) -{ -	MessageWindowEventData* data = (MessageWindowEventData*)lParam; - -	if (data == nullptr) -		return 0; - -	switch (data->uType) { -	case MSG_WINDOW_EVT_OPEN: -		// Здесь можно отлавливать только открытие окна, -		// т.к. закрытие может быть закрытием вкладки -		windowAdd(data->hwndWindow, false); -		break; -	} - -	return 0; -} diff --git a/plugins/AsSingleWindow/src/AsSingleWindow.h b/plugins/AsSingleWindow/src/AsSingleWindow.h index 035a7697b2..eb00523ec3 100644 --- a/plugins/AsSingleWindow/src/AsSingleWindow.h +++ b/plugins/AsSingleWindow/src/AsSingleWindow.h @@ -29,7 +29,3 @@ struct sPluginVars {  };  extern sPluginVars pluginVars; -extern PLUGININFOEX pluginInfo; - -int OnModulesLoaded(WPARAM, LPARAM); -int MsgWindowEvent(WPARAM, LPARAM); diff --git a/plugins/AsSingleWindow/src/Options.cpp b/plugins/AsSingleWindow/src/Options.cpp index 54da7362e4..383e0422d2 100644 --- a/plugins/AsSingleWindow/src/Options.cpp +++ b/plugins/AsSingleWindow/src/Options.cpp @@ -103,8 +103,8 @@ void dlgUpdateControls(HWND hWnd)  void optionsLoad()  { -	pluginVars.Options.DrivenWindowPos = db_get_b(0, SETTINGSNAME, "DrivenWindowPosition", ASW_CLWINDOWPOS_RIGHT); -	pluginVars.Options.WindowsMerging = db_get_b(0, SETTINGSNAME, "WindowsMerging", ASW_WINDOWS_MERGEONE); +	pluginVars.Options.DrivenWindowPos = db_get_b(0, MODULENAME, "DrivenWindowPosition", ASW_CLWINDOWPOS_RIGHT); +	pluginVars.Options.WindowsMerging = db_get_b(0, MODULENAME, "WindowsMerging", ASW_WINDOWS_MERGEONE);  }  void optionsUpdate(HWND hWnd) @@ -122,6 +122,6 @@ void optionsUpdate(HWND hWnd)  void optionsSave()  { -	db_set_b(0, SETTINGSNAME, "DrivenWindowPosition", pluginVars.Options.DrivenWindowPos); -	db_set_b(0, SETTINGSNAME, "WindowsMerging", pluginVars.Options.WindowsMerging); +	db_set_b(0, MODULENAME, "DrivenWindowPosition", pluginVars.Options.DrivenWindowPos); +	db_set_b(0, MODULENAME, "WindowsMerging", pluginVars.Options.WindowsMerging);  } diff --git a/plugins/AsSingleWindow/src/Options.h b/plugins/AsSingleWindow/src/Options.h index 4c0a265793..5a2829dc72 100644 --- a/plugins/AsSingleWindow/src/Options.h +++ b/plugins/AsSingleWindow/src/Options.h @@ -1,6 +1,6 @@  #pragma once -#define SETTINGSNAME "AsSingleWindow" +#define MODULENAME "AsSingleWindow"  int InitOptions(WPARAM wParam, LPARAM lParam);  INT_PTR CALLBACK cbOptionsDialog(HWND, UINT, WPARAM, LPARAM); diff --git a/plugins/AsSingleWindow/src/stdafx.h b/plugins/AsSingleWindow/src/stdafx.h index 8b7fa46405..206955b5f7 100644 --- a/plugins/AsSingleWindow/src/stdafx.h +++ b/plugins/AsSingleWindow/src/stdafx.h @@ -25,7 +25,5 @@  struct CMPlugin : public PLUGIN<CMPlugin>  { -	CMPlugin() : -		PLUGIN<CMPlugin>(SETTINGSNAME) -	{} +	CMPlugin();  };  | 
