From 6a8a446eb61f96b00f74ae5baa0894ff16e7b18f Mon Sep 17 00:00:00 2001 From: ozone10 Date: Tue, 27 Dec 2022 15:26:13 +0100 Subject: [PATCH] Add dark mode to project panel file relocalizer dlg Fix #12713, close #12714 --- .../WinControls/ProjectPanel/ProjectPanel.cpp | 64 ++++++++++++++----- .../WinControls/ProjectPanel/ProjectPanel.rc | 2 +- 2 files changed, 49 insertions(+), 17 deletions(-) diff --git a/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.cpp b/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.cpp index 5c7a9846d..517e6ea65 100644 --- a/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.cpp +++ b/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.cpp @@ -33,7 +33,7 @@ ProjectPanel::~ProjectPanel() { - for (const auto s : fullPathStrs) + for (const auto& s : fullPathStrs) { delete s; } @@ -52,7 +52,7 @@ intptr_t CALLBACK ProjectPanel::run_dlgProc(UINT message, WPARAM wParam, LPARAM _hToolbarMenu = CreateWindowEx(0,TOOLBARCLASSNAME,NULL, style, 0,0,0,0,_hSelf, nullptr, _hInst, nullptr); - TBBUTTON tbButtons[2]; + TBBUTTON tbButtons[2]{}; NativeLangSpeaker *pNativeSpeaker = (NppParameters::getInstance()).getNativeLangSpeaker(); generic_string workspace_entry = pNativeSpeaker->getProjectPanelLangMenuStr("Entries", 0, PM_WORKSPACEMENUENTRY); @@ -150,7 +150,7 @@ intptr_t CALLBACK ProjectPanel::run_dlgProc(UINT message, WPARAM wParam, LPARAM if (selectedItem) { - RECT selectedItemRect; + RECT selectedItemRect{}; if (TreeView_GetItemRect(_treeView.getHSelf(), selectedItem, &selectedItemRect, TRUE)) { showContextMenuFromMenuKey(selectedItem, (selectedItemRect.left + selectedItemRect.right) / 2, (selectedItemRect.top + selectedItemRect.bottom) / 2); @@ -391,8 +391,8 @@ bool ProjectPanel::writeWorkSpace(const TCHAR *projectFileName) TiXmlDocument projDoc(fn2write); TiXmlNode *root = projDoc.InsertEndChild(TiXmlElement(TEXT("NotepadPlus"))); - TCHAR textBuffer[MAX_PATH]; - TVITEM tvItem; + TCHAR textBuffer[MAX_PATH] = { '\0' }; + TVITEM tvItem{}; tvItem.mask = TVIF_TEXT; tvItem.pszText = textBuffer; tvItem.cchTextMax = MAX_PATH; @@ -435,8 +435,8 @@ bool ProjectPanel::writeWorkSpace(const TCHAR *projectFileName) void ProjectPanel::buildProjectXml(TiXmlNode *node, HTREEITEM hItem, const TCHAR* fn2write) { - TCHAR textBuffer[MAX_PATH]; - TVITEM tvItem; + TCHAR textBuffer[MAX_PATH] = { '\0' }; + TVITEM tvItem{}; tvItem.mask = TVIF_TEXT | TVIF_PARAM; tvItem.pszText = textBuffer; tvItem.cchTextMax = MAX_PATH; @@ -465,8 +465,8 @@ void ProjectPanel::buildProjectXml(TiXmlNode *node, HTREEITEM hItem, const TCHAR bool ProjectPanel::enumWorkSpaceFiles(HTREEITEM tvFrom, const std::vector & patterns, std::vector & fileNames) { - TCHAR textBuffer[MAX_PATH]; - TVITEM tvItem; + TCHAR textBuffer[MAX_PATH] = { '\0' }; + TVITEM tvItem{}; tvItem.mask = TVIF_TEXT | TVIF_PARAM; tvItem.pszText = textBuffer; tvItem.cchTextMax = MAX_PATH; @@ -498,7 +498,7 @@ bool ProjectPanel::enumWorkSpaceFiles(HTREEITEM tvFrom, const std::vector(&tvItem)); @@ -595,7 +595,7 @@ void ProjectPanel::notified(LPNMHDR notification) else if ((notification->hwndFrom == _treeView.getHSelf())) { TCHAR textBuffer[MAX_PATH] = { '\0' }; - TVITEM tvItem; + TVITEM tvItem{}; tvItem.mask = TVIF_TEXT | TVIF_PARAM; tvItem.pszText = textBuffer; tvItem.cchTextMax = MAX_PATH; @@ -1308,7 +1308,7 @@ void ProjectPanel::addFilesFromDirectory(HTREEITEM hTreeItem) { if (_selDirOfFilesFromDirDlg == TEXT("") && _workSpaceFilePath != TEXT("")) { - TCHAR dir[MAX_PATH]; + TCHAR dir[MAX_PATH] = { '\0' }; wcscpy_s(dir, _workSpaceFilePath.c_str()); ::PathRemoveFileSpec(dir); _selDirOfFilesFromDirDlg = dir; @@ -1336,15 +1336,47 @@ intptr_t CALLBACK FileRelocalizerDlg::run_dlgProc(UINT Message, WPARAM wParam, L { goToCenter(); ::SetDlgItemText(_hSelf, IDC_EDIT_FILEFULLPATHNAME, _fullFilePath.c_str()); + NppDarkMode::autoSubclassAndThemeChildControls(_hSelf); return TRUE; } + + case WM_ERASEBKGND: + { + if (NppDarkMode::isEnabled()) + { + RECT rect{}; + GetClientRect(_hSelf, &rect); + ::FillRect(reinterpret_cast(wParam), &rect, NppDarkMode::getDarkerBackgroundBrush()); + return TRUE; + } + break; + } + + case WM_CTLCOLOREDIT: + { + if (NppDarkMode::isEnabled()) + { + return NppDarkMode::onCtlColorSofter(reinterpret_cast(wParam)); + } + break; + } + + case WM_PRINTCLIENT: + { + if (NppDarkMode::isEnabled()) + { + return TRUE; + } + break; + } + case WM_COMMAND : { switch (wParam) { case IDOK : { - TCHAR textBuf[MAX_PATH]; + TCHAR textBuf[MAX_PATH] = { '\0' }; ::GetDlgItemText(_hSelf, IDC_EDIT_FILEFULLPATHNAME, textBuf, MAX_PATH); _fullFilePath = textBuf; ::EndDialog(_hSelf, 0); @@ -1362,6 +1394,7 @@ intptr_t CALLBACK FileRelocalizerDlg::run_dlgProc(UINT Message, WPARAM wParam, L default : return FALSE; } + return FALSE; } int FileRelocalizerDlg::doDialog(const TCHAR *fn, bool isRTL) @@ -1378,4 +1411,3 @@ int FileRelocalizerDlg::doDialog(const TCHAR *fn, bool isRTL) } return static_cast(::DialogBoxParam(_hInst, MAKEINTRESOURCE(IDD_FILERELOCALIZER_DIALOG), _hParent, dlgProc, reinterpret_cast(this))); } - diff --git a/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.rc b/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.rc index 6fbe23eb7..154acd677 100644 --- a/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.rc +++ b/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.rc @@ -29,7 +29,7 @@ END IDD_FILERELOCALIZER_DIALOG DIALOGEX 0, 0, 350, 48 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU -EXSTYLE WS_EX_TOOLWINDOW +EXSTYLE WS_EX_DLGMODALFRAME | WS_EX_WINDOWEDGE CAPTION "Change file full path name" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN