mirror of
https://github.com/notepad-plus-plus/notepad-plus-plus.git
synced 2025-07-27 15:54:17 +02:00
parent
a93b533e81
commit
a6cd3de8a7
@ -244,6 +244,56 @@ HINSTANCE Command::run(HWND hWnd, const wchar_t* cwd)
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RunDlg::insertVariable(unsigned char id)
|
||||||
|
{
|
||||||
|
wchar_t cmd[MAX_PATH]{};
|
||||||
|
::GetDlgItemText(_hSelf, IDC_COMBO_RUN_PATH, cmd, MAX_PATH);
|
||||||
|
|
||||||
|
wstring variable;
|
||||||
|
switch (id)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
variable = fullCurrentPath;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
variable = currentDirectory;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
variable = onlyFileName;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
variable = fileNamePart;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
variable = fileExtPart;
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
variable = currentWord;
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
variable = nppDir;
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
variable = nppFullFilePath;
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
variable = currentLine;
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
variable = currentColumn;
|
||||||
|
break;
|
||||||
|
case 10:
|
||||||
|
variable = currentLineStr;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return; // Invalid id number
|
||||||
|
}
|
||||||
|
|
||||||
|
wstring cmdNew = cmd;
|
||||||
|
cmdNew += L"$(" + variable + L")";
|
||||||
|
::SetDlgItemText(_hSelf, IDC_COMBO_RUN_PATH, cmdNew.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
intptr_t CALLBACK RunDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam)
|
intptr_t CALLBACK RunDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
switch (message)
|
switch (message)
|
||||||
@ -312,6 +362,12 @@ intptr_t CALLBACK RunDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam
|
|||||||
|
|
||||||
case WM_COMMAND:
|
case WM_COMMAND:
|
||||||
{
|
{
|
||||||
|
if (LOWORD(wParam) >= IDM_RUN_DLG_VARMENU_START && LOWORD(wParam) <= IDM_RUN_DLG_VARMENU_END)
|
||||||
|
{
|
||||||
|
insertVariable(static_cast<unsigned char>(LOWORD(wParam) - IDM_RUN_DLG_VARMENU_START));
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
switch (LOWORD(wParam))
|
switch (LOWORD(wParam))
|
||||||
{
|
{
|
||||||
case IDCANCEL :
|
case IDCANCEL :
|
||||||
@ -406,7 +462,23 @@ intptr_t CALLBACK RunDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
default :
|
case IDC_BUTTON_VARIABLES:
|
||||||
|
{
|
||||||
|
RECT rcButton;
|
||||||
|
GetWindowRect(::GetDlgItem(_hSelf, IDC_BUTTON_VARIABLES), &rcButton);
|
||||||
|
|
||||||
|
HMENU hmenu; // menu template
|
||||||
|
HMENU hVariablePopup; // shortcut menu
|
||||||
|
hmenu = ::LoadMenu(_hInst, MAKEINTRESOURCE(IDR_RUN_DLG_MENU_VARIABLES));
|
||||||
|
hVariablePopup = ::GetSubMenu(hmenu, 0);
|
||||||
|
TrackPopupMenu(hVariablePopup, TPM_LEFTALIGN, rcButton.right, rcButton.top, 0, _hSelf, NULL);
|
||||||
|
PostMessage(_hSelf, WM_NULL, 0, 0);
|
||||||
|
DestroyMenu(hmenu);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -59,6 +59,7 @@ public :
|
|||||||
void destroy() override {};
|
void destroy() override {};
|
||||||
|
|
||||||
protected :
|
protected :
|
||||||
|
void insertVariable(unsigned char id);
|
||||||
intptr_t CALLBACK run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam) override;
|
intptr_t CALLBACK run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam) override;
|
||||||
|
|
||||||
private :
|
private :
|
||||||
|
@ -24,16 +24,35 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|||||||
#define IDC_STATIC -1
|
#define IDC_STATIC -1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
IDD_RUN_DLG DIALOGEX 0, 0, 186, 80
|
IDD_RUN_DLG DIALOGEX 0, 0, 402, 80
|
||||||
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||||
EXSTYLE WS_EX_DLGMODALFRAME | WS_EX_WINDOWEDGE
|
EXSTYLE WS_EX_DLGMODALFRAME | WS_EX_WINDOWEDGE
|
||||||
CAPTION "Run..."
|
CAPTION "Run..."
|
||||||
FONT 8, L"MS Shell Dlg", 400, 0, 0x1
|
FONT 8, L"MS Shell Dlg", 400, 0, 0x1
|
||||||
BEGIN
|
BEGIN
|
||||||
GROUPBOX "The &Program to Run",IDC_MAINTEXT_STATIC,7,6,172,48,BS_CENTER
|
GROUPBOX "The &Program to Run",IDC_MAINTEXT_STATIC,7,6,388,48,BS_CENTER
|
||||||
COMBOBOX IDC_COMBO_RUN_PATH,14,26,138,71,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
|
COMBOBOX IDC_COMBO_RUN_PATH,14,26,338,71,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
|
||||||
PUSHBUTTON "...",IDC_BUTTON_FILE_BROWSER,156,25,16,14
|
PUSHBUTTON "...",IDC_BUTTON_FILE_BROWSER,356,25,16,14
|
||||||
DEFPUSHBUTTON "&Run",IDOK,16,60,50,14
|
PUSHBUTTON "&+",IDC_BUTTON_VARIABLES,372,25,16,14
|
||||||
PUSHBUTTON "&Save...",IDC_BUTTON_SAVE,69,60,50,14
|
DEFPUSHBUTTON "&Run",IDOK,124,60,50,14
|
||||||
PUSHBUTTON "&Cancel",IDCANCEL,122,60,50,14
|
PUSHBUTTON "&Save...",IDC_BUTTON_SAVE,177,60,50,14
|
||||||
|
PUSHBUTTON "&Cancel",IDCANCEL,230,60,50,14
|
||||||
|
END
|
||||||
|
|
||||||
|
IDR_RUN_DLG_MENU_VARIABLES MENU
|
||||||
|
BEGIN
|
||||||
|
POPUP "Variables menu"
|
||||||
|
BEGIN
|
||||||
|
MENUITEM "&FULL_CURRENT_PATH\tFull path to active file", IDM_RUN_DLG_VARMENU_START + 0
|
||||||
|
MENUITEM "CURRENT_&DIRECTORY\tActive file's directory", IDM_RUN_DLG_VARMENU_START + 1
|
||||||
|
MENUITEM "FILE_&NAME\tActive file's name", IDM_RUN_DLG_VARMENU_START + 2
|
||||||
|
MENUITEM "NAME_&PART\tFile name without extension", IDM_RUN_DLG_VARMENU_START + 3
|
||||||
|
MENUITEM "E&XT_PART\tFile extension (with .)", IDM_RUN_DLG_VARMENU_START + 4
|
||||||
|
MENUITEM "CURRENT_&WORD\tSelected word or word under caret", IDM_RUN_DLG_VARMENU_START + 5
|
||||||
|
MENUITEM "NPP_&DIRECTORY\tnotepad++.exe directory", IDM_RUN_DLG_VARMENU_START + 6
|
||||||
|
MENUITEM "NPP_F&ULL_FILE_PATH\tFull path of notepad++.exe", IDM_RUN_DLG_VARMENU_START + 7
|
||||||
|
MENUITEM "CURRENT_&LINE\tLine number of caret", IDM_RUN_DLG_VARMENU_START + 8
|
||||||
|
MENUITEM "CURRENT_&COLUMN\tColumn number of caret", IDM_RUN_DLG_VARMENU_START + 9
|
||||||
|
MENUITEM "CURRENT_LINE&STR\tCurrent line text", IDM_RUN_DLG_VARMENU_START + 10
|
||||||
|
END
|
||||||
END
|
END
|
||||||
|
@ -21,4 +21,7 @@
|
|||||||
#define IDC_COMBO_RUN_PATH (IDD_RUN_DLG + 2)
|
#define IDC_COMBO_RUN_PATH (IDD_RUN_DLG + 2)
|
||||||
#define IDC_MAINTEXT_STATIC (IDD_RUN_DLG + 3)
|
#define IDC_MAINTEXT_STATIC (IDD_RUN_DLG + 3)
|
||||||
#define IDC_BUTTON_SAVE (IDD_RUN_DLG + 4)
|
#define IDC_BUTTON_SAVE (IDD_RUN_DLG + 4)
|
||||||
|
#define IDC_BUTTON_VARIABLES (IDD_RUN_DLG + 5)
|
||||||
|
#define IDR_RUN_DLG_MENU_VARIABLES 1950
|
||||||
|
#define IDM_RUN_DLG_VARMENU_START (IDD_RUN_DLG + 60)
|
||||||
|
#define IDM_RUN_DLG_VARMENU_END (IDM_RUN_DLG_VARMENU_START + 10)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user