Merge branch 'master' into mui

This commit is contained in:
Pairi Daiza 2019-11-27 00:00:48 +01:00
commit 0ec66d09bf
10 changed files with 88 additions and 75 deletions

View File

@ -1 +1 @@
2686
2687

View File

@ -264,7 +264,7 @@ BEGIN
LTEXT "Nachricht:", IDC_STATIC, 16, 120, 40, 8
CONTROL "KEINE, starte die Ziel-Applikation immer wenn eine Datei geöffnet wird.",IDC_ALWAYSRUN,
"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,7,78,240,10
CONTROL "Sende eine ""FILE OPEN"" Nachricht zum Ziel-Fenster:",IDC_SENDDROPMSG,
CONTROL "Sende eine ""DROP FILES"" Nachricht zum Ziel-Fenster:",IDC_SENDDROPMSG,
"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,7,92,170,10
CONTROL "Führe folgendes DDE-Kommando aus:",IDC_USEDDE,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,7,106,240,10
LTEXT "Applikation:",IDC_STATIC,124,120,40,8

View File

@ -2453,8 +2453,9 @@ INT_PTR CALLBACK FindWinDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
//
// Select MiniPath target application
//
extern int iUseTargetApplication;
extern int iTargetApplicationMode;
extern UseTargetApp eUseTargetApplication;
extern TargetAppMode eTargetApplicationMode;
extern WCHAR szTargetApplication[MAX_PATH];
extern WCHAR szTargetApplicationParams[MAX_PATH];
extern WCHAR szTargetApplicationWndClass[MAX_PATH];
@ -2524,7 +2525,7 @@ INT_PTR CALLBACK FindTargetDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lPar
LoadTargetParamsOnce();
if (iUseTargetApplication)
if (eUseTargetApplication != UTA_UNDEFINED)
CheckRadioButton(hwnd,IDC_LAUNCH,IDC_TARGET,IDC_TARGET);
else
CheckRadioButton(hwnd,IDC_LAUNCH,IDC_TARGET,IDC_LAUNCH);
@ -2537,9 +2538,8 @@ INT_PTR CALLBACK FindTargetDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lPar
}
SetDlgItemText(hwnd,IDC_TARGETPATH,wch);
if (iUseTargetApplication) {
i = iTargetApplicationMode;
i = clampi(i, 0, 2);
if (eUseTargetApplication != UTA_UNDEFINED) {
i = clampi(eTargetApplicationMode, TAM_ALWAYS_RUN, TAM_SEND_DDE_MSG);
CheckRadioButton(hwnd,IDC_ALWAYSRUN,IDC_USEDDE,IDC_ALWAYSRUN + i);
}
@ -2701,11 +2701,11 @@ INT_PTR CALLBACK FindTargetDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lPar
LoadIniFile(g_wchIniFile);
const WCHAR* const TargetApp_Section = L"Target Application";
i = IsDlgButtonChecked(hwnd,IDC_LAUNCH);
iUseTargetApplication = i ? 0:1;
IniSectionSetInt(TargetApp_Section,L"UseTargetApplication",iUseTargetApplication);
i = (BST_CHECKED == IsDlgButtonChecked(hwnd, IDC_LAUNCH));
eUseTargetApplication = ((i) ? UTA_UNDEFINED : UTA_LAUNCH_TARGET);
IniSectionSetInt(TargetApp_Section,L"UseTargetApplication",eUseTargetApplication);
if (iUseTargetApplication) {
if (eUseTargetApplication != UTA_UNDEFINED) {
GetDlgItemText(hwnd,IDC_TARGETPATH,tch,COUNTOF(tch));
ExtractFirstArgument(tch,szTargetApplication,szTargetApplicationParams);
}
@ -2716,22 +2716,22 @@ INT_PTR CALLBACK FindTargetDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lPar
IniSectionSetString(TargetApp_Section,L"TargetApplicationPath",szTargetApplication);
IniSectionSetString(TargetApp_Section,L"TargetApplicationParams",szTargetApplicationParams);
if (!iUseTargetApplication) {
iTargetApplicationMode = 0;
IniSectionSetInt(TargetApp_Section,L"TargetApplicationMode",iTargetApplicationMode);
if (eUseTargetApplication == UTA_UNDEFINED) {
eTargetApplicationMode = TAM_ALWAYS_RUN;
IniSectionSetInt(TargetApp_Section,L"TargetApplicationMode",eTargetApplicationMode);
}
else {
if (BST_CHECKED == IsDlgButtonChecked(hwnd,IDC_ALWAYSRUN)) {
iTargetApplicationMode = 0;
IniSectionSetInt(TargetApp_Section,L"TargetApplicationMode",iTargetApplicationMode);
eTargetApplicationMode = TAM_ALWAYS_RUN;
IniSectionSetInt(TargetApp_Section,L"TargetApplicationMode",eTargetApplicationMode);
}
else if (BST_CHECKED == IsDlgButtonChecked(hwnd,IDC_SENDDROPMSG)) {
iTargetApplicationMode = 1;
IniSectionSetInt(TargetApp_Section,L"TargetApplicationMode",iTargetApplicationMode);
eTargetApplicationMode = TAM_SEND_DROP_MSG;
IniSectionSetInt(TargetApp_Section,L"TargetApplicationMode",eTargetApplicationMode);
}
else {
iTargetApplicationMode = 2;
IniSectionSetInt(TargetApp_Section,L"TargetApplicationMode",iTargetApplicationMode);
eTargetApplicationMode = TAM_SEND_DDE_MSG;
IniSectionSetInt(TargetApp_Section,L"TargetApplicationMode",eTargetApplicationMode);
}
}

View File

@ -101,8 +101,9 @@ UINT wFuncCopyMove = FO_COPY;
UINT msgTaskbarCreated = 0;
int iUseTargetApplication = 4;
int iTargetApplicationMode = 0;
UseTargetApp eUseTargetApplication = UTA_DEFINE_TARGET;
TargetAppMode eTargetApplicationMode = TAM_ALWAYS_RUN;
WCHAR szTargetApplication[MAX_PATH] = L"";
WCHAR szTargetApplicationParams[MAX_PATH] = L"";
WCHAR szTargetApplicationWndClass[MAX_PATH] = L"";
@ -541,19 +542,22 @@ static void __fastcall _SetTargetAppMenuEntry(HMENU hMenu)
if (dli.ntype != DLE_DIR) {
WCHAR wchMenuEntry[MAX_PATH] = { L'\0' };
WCHAR wchTargetAppName[MAX_PATH] = { L'\0' };
if (iUseTargetApplication != 0xFB) {
if (eUseTargetApplication != 0xFB) {
lstrcpy(wchTargetAppName, szTargetApplication);
PathStripPath(wchTargetAppName);
PathRemoveExtension(wchTargetAppName);
}
else if (iUseTargetApplication && wchTargetAppName[0] == 0) {
iUseTargetApplication = 1;
else if ((eUseTargetApplication != UTA_UNDEFINED) && StrIsEmpty(wchTargetAppName)) {
eUseTargetApplication = UTA_LAUNCH_TARGET;
lstrcpy(wchTargetAppName, L"Notepad3");
}
if (iUseTargetApplication == 4 || (iUseTargetApplication && wchTargetAppName[0] == 0)) {
if ((eUseTargetApplication == UTA_DEFINE_TARGET) ||
((eUseTargetApplication != UTA_UNDEFINED) && StrIsEmpty(wchTargetAppName))) {
lstrcpy(wchTargetAppName, L"...");
}
if (wchTargetAppName[0] != 0){
if (StrIsNotEmpty(wchTargetAppName)){
FormatLngStringW(wchMenuEntry, COUNTOF(wchMenuEntry), IDS_OPEN_FILE_WITH, wchTargetAppName);
MENUITEMINFO menuitem;
ZeroMemory(&menuitem, sizeof(MENUITEMINFO));
@ -3323,8 +3327,8 @@ void LoadTargetParamsOnce(void)
const WCHAR* const TargetApp_Section = L"Target Application";
if (IniSectionGetInt(TargetApp_Section,L"UseTargetApplication",0xFB) != 0xFB) {
iUseTargetApplication = IniSectionGetInt(TargetApp_Section,L"UseTargetApplication",iUseTargetApplication);
iTargetApplicationMode = IniSectionGetInt(TargetApp_Section,L"TargetApplicationMode",iTargetApplicationMode);
eUseTargetApplication = IniSectionGetInt(TargetApp_Section,L"UseTargetApplication",eUseTargetApplication);
eTargetApplicationMode = IniSectionGetInt(TargetApp_Section,L"TargetApplicationMode",eTargetApplicationMode);
IniSectionGetString(TargetApp_Section,L"TargetApplicationPath",szTargetApplication,szTargetApplication,COUNTOF(szTargetApplication));
IniSectionGetString(TargetApp_Section,L"TargetApplicationParams",szTargetApplicationParams,szTargetApplicationParams,COUNTOF(szTargetApplicationParams));
IniSectionGetString(TargetApp_Section,L"TargetApplicationWndClass",szTargetApplicationWndClass,szTargetApplicationWndClass,COUNTOF(szTargetApplicationWndClass));
@ -3332,9 +3336,9 @@ void LoadTargetParamsOnce(void)
IniSectionGetString(TargetApp_Section,L"DDEApplication",szDDEApp,szDDEApp,COUNTOF(szDDEApp));
IniSectionGetString(TargetApp_Section,L"DDETopic",szDDETopic,szDDETopic,COUNTOF(szDDETopic));
}
else if (iUseTargetApplication && StrIsEmpty(szTargetApplication)) {
iUseTargetApplication = 1;
iTargetApplicationMode = 1;
else if ((eUseTargetApplication != UTA_UNDEFINED) && StrIsEmpty(szTargetApplication)) {
eUseTargetApplication = UTA_LAUNCH_TARGET;
eTargetApplicationMode = TAM_SEND_DROP_MSG;
lstrcpy(szTargetApplication,L"Notepad3.exe");
lstrcpy(szTargetApplicationParams,L"");
lstrcpy(szTargetApplicationWndClass,L"Notepad3");
@ -3363,13 +3367,13 @@ void LaunchTarget(LPCWSTR lpFileName,BOOL bOpenNew)
LoadTargetParamsOnce();
if (iUseTargetApplication == 4 ||
(iUseTargetApplication && StrIsEmpty(szTargetApplication))) {
if ((eUseTargetApplication == UTA_DEFINE_TARGET) || ((eUseTargetApplication != UTA_UNDEFINED) && StrIsEmpty(szTargetApplication)))
{
ThemedDialogBoxParam(g_hLngResContainer,MAKEINTRESOURCE(IDD_FINDTARGET),hwndMain,FindTargetDlgProc,(LPARAM)NULL);
return;
}
if (iUseTargetApplication && iTargetApplicationMode == 1)
if ((eUseTargetApplication != UTA_UNDEFINED) && (eTargetApplicationMode == TAM_SEND_DROP_MSG))
{
lstrcpy(szGlobalWndClass,szTargetApplicationWndClass);
@ -3391,7 +3395,6 @@ void LaunchTarget(LPCWSTR lpFileName,BOOL bOpenNew)
PostMessage(hwnd,WM_DROPFILES,(WPARAM)hDrop,(LPARAM)0);
}
}
else // Either no window or disabled - run target.exe
{
WCHAR szFile[MAX_PATH];
@ -3465,12 +3468,12 @@ void LaunchTarget(LPCWSTR lpFileName,BOOL bOpenNew)
WCHAR szParam[MAX_PATH] = L"";
WCHAR szTmp[MAX_PATH];
if (iUseTargetApplication &&
iTargetApplicationMode == 2 &&
if ((eUseTargetApplication != UTA_UNDEFINED) &&
(eTargetApplicationMode == TAM_SEND_DDE_MSG) &&
ExecDDECommand(lpFileName,szDDEMsg,szDDEApp,szDDETopic))
return;
if (!iUseTargetApplication && StrIsEmpty(lpFileName))
if ((eUseTargetApplication == UTA_UNDEFINED) && StrIsEmpty(lpFileName))
return;
else {
@ -3517,7 +3520,7 @@ void LaunchTarget(LPCWSTR lpFileName,BOOL bOpenNew)
sei.fMask = 0;
sei.hwnd = hwndMain;
sei.lpVerb = NULL;
if (iUseTargetApplication) {
if (eUseTargetApplication != UTA_UNDEFINED) {
sei.lpFile = szFile;
sei.lpParameters = szParam;
}

View File

@ -81,6 +81,7 @@
//==== Callback Message from System Tray ======================================
#define WM_TRAYMESSAGE WM_USER
//==== TypeDefs ======================================
typedef struct _wi
{
@ -90,6 +91,11 @@ typedef struct _wi
int cy;
} WININFO;
typedef enum { UTA_UNDEFINED = 0, UTA_LAUNCH_TARGET = 1, UTA_DEFINE_TARGET = 4 } UseTargetApp;
typedef enum { TAM_ALWAYS_RUN = 0, TAM_SEND_DROP_MSG = 1, TAM_SEND_DDE_MSG = 2 } TargetAppMode;
// ----------------------------------------------------------------------------
#define DL_FILTER_BUFSIZE 256 // should correspond to Dlapi.h def

View File

@ -3,7 +3,7 @@
<assemblyIdentity
name="Notepad3"
processorArchitecture="*"
version="5.19.1123.2686"
version="5.19.1126.2687"
type="win32"
/>
<description>Notepad3 BETA</description>

View File

@ -3355,7 +3355,7 @@ WINDOWPLACEMENT WindowPlacementFromInfo(HWND hwnd, const WININFO* pWinInfo, SCRE
// DialogNewWindow()
//
//
void DialogNewWindow(HWND hwnd, bool bSaveOnRunTools, bool bSetCurFile)
void DialogNewWindow(HWND hwnd, bool bSaveOnRunTools, LPCWSTR lpcwFilePath)
{
if (bSaveOnRunTools && !FileSave(false, true, false, false, Flags.bPreserveFileModTime)) { return; }
@ -3384,23 +3384,23 @@ void DialogNewWindow(HWND hwnd, bool bSaveOnRunTools, bool bSetCurFile)
MONITORINFO mi;
WININFO wi = GetMyWindowPlacement(hwnd, &mi);
// offset new window position +10/+10
wi.x += 10;
wi.y += 10;
// check if window fits monitor
if ((wi.x + wi.cx) > mi.rcWork.right || (wi.y + wi.cy) > mi.rcWork.bottom) {
wi.x = mi.rcMonitor.left;
wi.y = mi.rcMonitor.top;
}
wi.max = IsZoomed(hwnd);
//~ offset new window position +10/+10
//~wi.x += 10;
//~wi.y += 10;
//~// check if window fits monitor
//~if ((wi.x + wi.cx) > mi.rcWork.right || (wi.y + wi.cy) > mi.rcWork.bottom) {
//~ wi.x = mi.rcMonitor.left;
//~ wi.y = mi.rcMonitor.top;
//~}
//~wi.max = IsZoomed(hwnd);
StringCchPrintf(tch, COUNTOF(tch), L" -pos %i,%i,%i,%i,%i", wi.x, wi.y, wi.cx, wi.cy, wi.max);
StringCchCat(szParameters, COUNTOF(szParameters), tch);
if (bSetCurFile && StrIsNotEmpty(Globals.CurrentFile))
if (StrIsNotEmpty(lpcwFilePath))
{
WCHAR szFileName[MAX_PATH] = { L'\0' };
StringCchCopy(szFileName, COUNTOF(szFileName), Globals.CurrentFile);
StringCchCopy(szFileName, COUNTOF(szFileName), lpcwFilePath);
PathQuoteSpaces(szFileName);
StringCchCat(szParameters, COUNTOF(szParameters), L" ");
StringCchCat(szParameters, COUNTOF(szParameters), szFileName);

View File

@ -45,7 +45,7 @@ WININFO GetMyWindowPlacement(HWND hwnd,MONITORINFO * hMonitorInfo);
void FitIntoMonitorGeometry(RECT* pRect, WININFO* pWinInfo, SCREEN_MODE mode);
WINDOWPLACEMENT WindowPlacementFromInfo(HWND hwnd, const WININFO* pWinInfo, SCREEN_MODE mode);
void DialogNewWindow(HWND hwnd,bool,bool);
void DialogNewWindow(HWND hwnd, bool bSaveOnRunTools, LPCWSTR lpcwFilePath);
void DialogFileBrowse(HWND hwnd);
void DialogAdminExe(HWND hwnd,bool);

View File

@ -2750,26 +2750,28 @@ LRESULT MsgDropFiles(HWND hwnd, WPARAM wParam, LPARAM lParam)
{
UNUSED(lParam);
WCHAR szBuf[MAX_PATH + 40];
WCHAR szDropStrgBuf[MAX_PATH + 40];
HDROP hDrop = (HDROP)wParam;
// Reset Change Notify
//bPendingChangeNotify = false;
if (IsIconic(hwnd))
if (IsIconic(hwnd)) {
ShowWindow(hwnd, SW_RESTORE);
//SetForegroundWindow(hwnd);
DragQueryFile(hDrop, 0, szBuf, COUNTOF(szBuf));
if (PathIsDirectory(szBuf)) {
WCHAR tchFile[MAX_PATH] = { L'\0' };
if (OpenFileDlg(Globals.hwndMain, tchFile, COUNTOF(tchFile), szBuf))
FileLoad(false, false, false, Settings.SkipUnicodeDetection, Settings.SkipANSICodePageDetection, false, tchFile);
}
else if (PathFileExists(szBuf)) {
FileLoad(false, false, false, Settings.SkipUnicodeDetection, Settings.SkipANSICodePageDetection, false, szBuf);
DragQueryFile(hDrop, 0, szDropStrgBuf, COUNTOF(szDropStrgBuf));
if (PathIsDirectory(szDropStrgBuf)) {
WCHAR tchFile[MAX_PATH] = { L'\0' };
if (OpenFileDlg(Globals.hwndMain, tchFile, COUNTOF(tchFile), szDropStrgBuf)) {
FileLoad(false, false, false, Settings.SkipUnicodeDetection, Settings.SkipANSICodePageDetection, false, tchFile);
}
}
else if (PathFileExists(szDropStrgBuf)) {
if (Flags.bReuseWindow) {
FileLoad(false, false, false, Settings.SkipUnicodeDetection, Settings.SkipANSICodePageDetection, false, szDropStrgBuf);
}
else {
DialogNewWindow(hwnd, Settings.SaveBeforeRunningTools, szDropStrgBuf);
}
}
else {
#ifndef _EXTRA_DRAG_N_DROP_HANDLER_
@ -2782,6 +2784,7 @@ LRESULT MsgDropFiles(HWND hwnd, WPARAM wParam, LPARAM lParam)
if (DragQueryFile(hDrop, (UINT)(-1), NULL, 0) > 1) {
InfoBoxLng(MB_ICONWARNING, NULL, IDS_MUI_ERR_DROP);
}
DragFinish(hDrop);
return FALSE;
@ -3718,8 +3721,9 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
case IDM_FILE_NEWWINDOW:
case IDM_FILE_NEWWINDOW2:
SaveAllSettings(false);
DialogNewWindow(hwnd, Settings.SaveBeforeRunningTools, (iLoWParam != IDM_FILE_NEWWINDOW2));
SaveAllSettings(false);
LPCWSTR lpcwFilePath = (iLoWParam != IDM_FILE_NEWWINDOW2) ? Globals.CurrentFile : NULL;
DialogNewWindow(hwnd, Settings.SaveBeforeRunningTools, lpcwFilePath);
break;

View File

@ -8,8 +8,8 @@
#define SAPPNAME "Notepad3"
#define VERSION_MAJOR 5
#define VERSION_MINOR 19
#define VERSION_REV 1123
#define VERSION_BUILD 2686
#define VERSION_REV 1126
#define VERSION_BUILD 2687
#define SCINTILLA_VER 421
#define ONIGURUMA_REGEX_VER 6.9.4
#define UCHARDET_VER 2018.09.27