[BUG_FIXED] Fix the hiding bug while launch time (change of environment from duel monitors to mono monitor).
Add NPPM_GETNPPVERSION message for plugin system. git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository@78 f5eea248-9336-0410-98b8-ebc06183d4e3
This commit is contained in:
parent
74d580d949
commit
4beac9434b
@ -173,6 +173,13 @@ enum winVer{WV_UNKNOWN, WV_WIN32S, WV_95, WV_98, WV_ME, WV_NT, WV_W2K, WV_XP, WV
|
||||
#define NPPM_ACTIVATEDOCMENU (NPPMSG + 49)
|
||||
//void NPPM_ACTIVATEDOCMENU(int view, int index2Activate)
|
||||
|
||||
#define NPPM_GETNPPVERSION (NPPMSG + 50)
|
||||
// int NPPM_GETNPPVERSION()
|
||||
// return version
|
||||
// ex : v4.6
|
||||
// HIWORD(version) == 4
|
||||
// LOWORD(version) == 6
|
||||
|
||||
#define RUNCOMMAND_USER (WM_USER + 3000)
|
||||
#define NPPM_GETFULLCURRENTPATH (RUNCOMMAND_USER + FULL_CURRENT_PATH)
|
||||
#define NPPM_GETCURRENTDIRECTORY (RUNCOMMAND_USER + CURRENT_DIRECTORY)
|
||||
|
@ -207,11 +207,26 @@ void Notepad_plus::init(HINSTANCE hInst, HWND parent, const char *cmdLine, CmdLi
|
||||
throw int(777);
|
||||
}
|
||||
|
||||
// the routine ShowWindow should be called here immediately
|
||||
// Otherwise (if we call it after opening the files) the Scintilla
|
||||
// View contained the opened document will shift down one line.
|
||||
::MoveWindow(_hSelf, nppGUI._appPos.left + workAreaRect.left, nppGUI._appPos.top + workAreaRect.top, nppGUI._appPos.right, nppGUI._appPos.bottom, TRUE);
|
||||
//::ShowWindow(_hSelf, nppGUI._isMaximized?SW_MAXIMIZE:SW_SHOW);
|
||||
// In setting the startup window position, take into account that the last-saved
|
||||
// position might have assumed a second monitor that's no longer available.
|
||||
POINT newUpperLeft;
|
||||
newUpperLeft.x = nppGUI._appPos.left + workAreaRect.left;
|
||||
newUpperLeft.y = nppGUI._appPos.top + workAreaRect.top;
|
||||
|
||||
// GetSystemMetrics does not support the multi-monitor values on Windows NT and Windows 95.
|
||||
if ((_winVersion != WV_95) && (_winVersion != WV_NT))
|
||||
{
|
||||
int margin = ::GetSystemMetrics(SM_CYSMCAPTION);
|
||||
if (newUpperLeft.x > ::GetSystemMetrics(SM_CXVIRTUALSCREEN)-margin)
|
||||
newUpperLeft.x = workAreaRect.right - nppGUI._appPos.right;
|
||||
if (newUpperLeft.x + nppGUI._appPos.right < ::GetSystemMetrics(SM_XVIRTUALSCREEN)+margin)
|
||||
newUpperLeft.x = workAreaRect.left;
|
||||
if (newUpperLeft.y > ::GetSystemMetrics(SM_CYVIRTUALSCREEN)-margin)
|
||||
newUpperLeft.y = workAreaRect.bottom - nppGUI._appPos.bottom;
|
||||
if (newUpperLeft.y + nppGUI._appPos.bottom < ::GetSystemMetrics(SM_YVIRTUALSCREEN)+margin)
|
||||
newUpperLeft.y = workAreaRect.top;
|
||||
}
|
||||
::MoveWindow(_hSelf, newUpperLeft.x, newUpperLeft.y, nppGUI._appPos.right, nppGUI._appPos.bottom, TRUE);
|
||||
|
||||
if (nppGUI._rememberLastSession && !cmdLineParams->_isNoSession)
|
||||
{
|
||||
@ -6511,6 +6526,38 @@ LRESULT Notepad_plus::runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPa
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
case NPPM_GETNPPVERSION:
|
||||
{
|
||||
char verStr[16] = VERSION_VALUE;
|
||||
char mainVerStr[16];
|
||||
char auxVerStr[16];
|
||||
bool isDot = false;
|
||||
int j =0;
|
||||
int k = 0;
|
||||
for (int i = 0 ; verStr[i] ; i++)
|
||||
{
|
||||
if (verStr[i] == '.')
|
||||
isDot = true;
|
||||
else
|
||||
{
|
||||
if (!isDot)
|
||||
mainVerStr[j++] = verStr[i];
|
||||
else
|
||||
auxVerStr[k++] = verStr[i];
|
||||
}
|
||||
}
|
||||
mainVerStr[j] = '\0';
|
||||
auxVerStr[k] = '\0';
|
||||
|
||||
int mainVer, auxVer = 0;
|
||||
if (mainVerStr)
|
||||
mainVer = atoi(mainVerStr);
|
||||
if (auxVerStr)
|
||||
auxVer = atoi(auxVerStr);
|
||||
|
||||
return MAKELONG(auxVer, mainVer);
|
||||
}
|
||||
|
||||
case WM_ISCURRENTMACRORECORDED :
|
||||
return (!_macro.empty() && !_recordingMacro);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user