[BUG_FIXED] Crash bug while the shortcut command is absent in shortcut.xml is fixed.

Add a new message NPPM_MSGTOPLUGIN for the communication between 2 plugins.


git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository@8 f5eea248-9336-0410-98b8-ebc06183d4e3
This commit is contained in:
donho 2007-08-19 00:38:09 +00:00
parent 61c0b2af50
commit 5357c64049
6 changed files with 44 additions and 6 deletions

View File

@ -1,4 +1,4 @@
v4.2.1 fixed bugs and added features (from v4.1.2) :
v4.2.2 fixed bugs and added features (from v4.1.2) :
1. Fix the dockable dialog drag and drop problem under vista.
2. Add Column mode edition feature (Menu "Edit->Column Editor...").
@ -10,8 +10,11 @@ v4.2.1 fixed bugs and added features (from v4.1.2) :
8. Add a menu entry to access to notepad++ plugins project page.
9. Enhance file open dialog (add all supported extensions in the filters list).
10. Fix bug of Run macro until EOF.
11. Add the filters in Find in files dialog.
12. Add a new transparency feature for Find dialog : Transparency on loss focus.
Plugins included in v4.2 :
Plugins included in v4.2.2 :
1. TexFX v0.24a
2. Function list v1.2

View File

@ -152,6 +152,16 @@ enum winVer{WV_UNKNOWN, WV_WIN32S, WV_95, WV_98, WV_ME, WV_NT, WV_W2K, WV_XP, WV
#define NPPM_GETPLUGINSCONFIGDIR (NPPMSG + 46)
//void NPPM_GETPLUGINSCONFIGDIR(int strLen, char *str)
#define NPPM_MSGTOPLUGIN (NPPMSG + 47)
//BOOL NPPM_MSGTOPLUGIN(char *destModuleName, CommunicationInfo *info)
// return value is TRUE when the message arrive to the destination plugins.
// if destModule or info is NULL, then return value is FALSE
struct CommunicationInfo {
long internalMsg;
const char * srcModuleName;
void * info; // defined by plugin
};
#define RUNCOMMAND_USER (WM_USER + 3000)
#define NPPM_GETFULLCURRENTPATH (RUNCOMMAND_USER + FULL_CURRENT_PATH)
#define NPPM_GETCURRENTDIRECTORY (RUNCOMMAND_USER + CURRENT_DIRECTORY)

View File

@ -105,6 +105,22 @@ public:
}
};
bool relayPluginMessages(UINT Message, WPARAM wParam, LPARAM lParam) {
const char * moduleName = (const char *)wParam;
if (!moduleName || !moduleName[0] || !lParam)
return false;
for (size_t i = 0 ; i < _pluginInfos.size() ; i++)
{
if (stricmp(_pluginInfos[i]->_moduleName, moduleName) == 0)
{
_pluginInfos[i]->_pMessageProc(Message, wParam, lParam);
return true;
}
}
return false;
};
HMENU getMenuHandle() {
return _hPluginsMenu;
};

View File

@ -6828,6 +6828,11 @@ LRESULT Notepad_plus::runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPa
return TRUE;
}
case NPPM_MSGTOPLUGIN :
{
return _pluginsManager.relayPluginMessages(Message, wParam, lParam);
}
default:
{
if (Message == WDN_NOTIFY)

View File

@ -752,12 +752,16 @@ void NppParameters::feedUserCmds(TiXmlNode *node)
if (getShortcuts(childNode, sc) && sc.isValid())
{
UserCommand uc(sc);
uc._cmd = (childNode->FirstChild())->Value();
TiXmlNode *aNode = childNode->FirstChild();
if (aNode)
{
uc._cmd = aNode->Value();
if (uc.isValid())
_userCommands.push_back(uc);
}
}
}
}
void NppParameters::feedPluginCustomizedCmds(TiXmlNode *node)
{

View File

@ -73,7 +73,7 @@ BEGIN
GROUPBOX "Transparency",IDC_TRANSPARENT_GRPBOX,227,123,83,49
CONTROL "",IDC_TRANSPARENT_CHECK,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,223,123,9,10
CONTROL "On loss focus",IDC_TRANSPARENT_LOSSFOCUS_RADIO,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,237,135,69,10
CONTROL "On lose focus",IDC_TRANSPARENT_LOSSFOCUS_RADIO,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,237,135,69,10
CONTROL "Always",IDC_TRANSPARENT_ALWAYS_RADIO,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,237,147,63,10
CONTROL "",IDC_PERCENTAGE_SLIDER,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | NOT WS_VISIBLE | WS_TABSTOP,240,161,53,10
END