diff --git a/PowerEditor/src/Notepad_plus.rc b/PowerEditor/src/Notepad_plus.rc index 6a235307a..8af039be2 100644 --- a/PowerEditor/src/Notepad_plus.rc +++ b/PowerEditor/src/Notepad_plus.rc @@ -330,56 +330,56 @@ IDR_CLOSETAB_INACT_DM BITMAP "icons/dark/tabbar/closeTabButton_inac IDR_CLOSETAB_HOVER_DM BITMAP "icons/dark/tabbar/closeTabButton_hover.bmp" IDR_CLOSETAB_PUSH_DM BITMAP "icons/dark/tabbar/closeTabButton_push.bmp" -IDR_DOCMAP_ICO ICON "icons/standard/panels/tabbar/docMap.ico" -IDR_DOCMAP_ICO2 ICON "icons/light/panels/docMap.ico" -IDR_DOCMAP_ICO_DM ICON "icons/dark/panels/docMap.ico" -IDR_DOCLIST_ICO ICON "icons/standard/panels/tabbar/docList.ico" -IDR_DOCLIST_ICO2 ICON "icons/light/panels/docList.ico" -IDR_DOCLIST_ICO_DM ICON "icons/dark/panels/docList.ico" -IDR_FUNC_LIST_ICO ICON "icons/standard/panels/tabbar/functionList.ico" -IDR_FUNC_LIST_ICO2 ICON "icons/light/panels/functionList.ico" -IDR_FUNC_LIST_ICO_DM ICON "icons/dark/panels/functionList.ico" -IDR_PROJECTPANEL_ICO ICON "icons/standard/panels/tabbar/projectPanel.ico" -IDR_PROJECTPANEL_ICO2 ICON "icons/light/panels/projectPanel.ico" -IDR_PROJECTPANEL_ICO_DM ICON "icons/dark/panels/projectPanel.ico" -IDR_FILEBROWSER_ICO ICON "icons/standard/panels/tabbar/fileBrowser.ico" -IDR_FILEBROWSER_ICO2 ICON "icons/light/panels/fileBrowser.ico" -IDR_FILEBROWSER_ICO_DM ICON "icons/dark/panels/fileBrowser.ico" -IDR_CLIPBOARDPANEL_ICO ICON "icons/standard/panels/tabbar/clipboardPanel.ico" -IDR_CLIPBOARDPANEL_ICO2 ICON "icons/light/panels/clipboardPanel.ico" -IDR_CLIPBOARDPANEL_ICO_DM ICON "icons/dark/panels/clipboardPanel.ico" -IDR_ASCIIPANEL_ICO ICON "icons/standard/panels/tabbar/asciiPanel.ico" -IDR_ASCIIPANEL_ICO2 ICON "icons/light/panels/asciiPanel.ico" -IDR_ASCIIPANEL_ICO_DM ICON "icons/dark/panels/asciiPanel.ico" +IDR_DOCMAP_ICO ICON "icons/standard/panels/tabbar/docMap.ico" +IDR_DOCMAP_ICO2 ICON "icons/light/panels/tabbar/docMap.ico" +IDR_DOCMAP_ICO_DM ICON "icons/dark/panels/tabbar/docMap.ico" +IDR_DOCLIST_ICO ICON "icons/standard/panels/tabbar/docList.ico" +IDR_DOCLIST_ICO2 ICON "icons/light/panels/tabbar/docList.ico" +IDR_DOCLIST_ICO_DM ICON "icons/dark/panels/tabbar/docList.ico" +IDR_FUNC_LIST_ICO ICON "icons/standard/panels/tabbar/functionList.ico" +IDR_FUNC_LIST_ICO2 ICON "icons/light/panels/tabbar/functionList.ico" +IDR_FUNC_LIST_ICO_DM ICON "icons/dark/panels/tabbar/functionList.ico" +IDR_PROJECTPANEL_ICO ICON "icons/standard/panels/tabbar/projectPanel.ico" +IDR_PROJECTPANEL_ICO2 ICON "icons/light/panels/tabbar/projectPanel.ico" +IDR_PROJECTPANEL_ICO_DM ICON "icons/dark/panels/tabbar/projectPanel.ico" +IDR_FILEBROWSER_ICO ICON "icons/standard/panels/tabbar/fileBrowser.ico" +IDR_FILEBROWSER_ICO2 ICON "icons/light/panels/tabbar/fileBrowser.ico" +IDR_FILEBROWSER_ICO_DM ICON "icons/dark/panels/tabbar/fileBrowser.ico" +IDR_CLIPBOARDPANEL_ICO ICON "icons/standard/panels/tabbar/clipboardPanel.ico" +IDR_CLIPBOARDPANEL_ICO2 ICON "icons/light/panels/tabbar/clipboardPanel.ico" +IDR_CLIPBOARDPANEL_ICO_DM ICON "icons/dark/panels/tabbar/clipboardPanel.ico" +IDR_ASCIIPANEL_ICO ICON "icons/standard/panels/tabbar/asciiPanel.ico" +IDR_ASCIIPANEL_ICO2 ICON "icons/light/panels/tabbar/asciiPanel.ico" +IDR_ASCIIPANEL_ICO_DM ICON "icons/dark/panels/tabbar/asciiPanel.ico" -IDI_PROJECT_WORKSPACE BITMAP "icons/standard/panels/project_work_space.bmp" -IDI_PROJECT_WORKSPACEDIRTY BITMAP "icons/standard/panels/project_work_space_dirty.bmp" -IDI_PROJECT_PROJECT BITMAP "icons/standard/panels/project_root.bmp" -IDI_PROJECT_FOLDEROPEN BITMAP "icons/standard/panels/project_folder_open.bmp" -IDI_PROJECT_FOLDERCLOSE BITMAP "icons/standard/panels/project_folder_close.bmp" -IDI_PROJECT_FILE BITMAP "icons/standard/panels/project_file.bmp" -IDI_PROJECT_FILEINVALID BITMAP "icons/standard/panels/project_file_invalid.bmp" -IDI_FB_ROOTOPEN BITMAP "icons/standard/panels/fb_root_open.bmp" -IDI_FB_ROOTCLOSE BITMAP "icons/standard/panels/fb_root_close.bmp" +IDI_PROJECT_WORKSPACE BITMAP "icons/standard/panels/treeview/project_work_space.bmp" +IDI_PROJECT_WORKSPACEDIRTY BITMAP "icons/standard/panels/treeview/project_work_space_dirty.bmp" +IDI_PROJECT_PROJECT BITMAP "icons/standard/panels/treeview/project_root.bmp" +IDI_PROJECT_FOLDEROPEN BITMAP "icons/standard/panels/treeview/project_folder_open.bmp" +IDI_PROJECT_FOLDERCLOSE BITMAP "icons/standard/panels/treeview/project_folder_close.bmp" +IDI_PROJECT_FILE BITMAP "icons/standard/panels/treeview/project_file.bmp" +IDI_PROJECT_FILEINVALID BITMAP "icons/standard/panels/treeview/project_file_invalid.bmp" +IDI_FB_ROOTOPEN BITMAP "icons/standard/panels/treeview/fb_root_open.bmp" +IDI_FB_ROOTCLOSE BITMAP "icons/standard/panels/treeview/fb_root_close.bmp" -IDI_FB_SELECTCURRENTFILE BITMAP "icons/standard/panels/fb_select_current_file.bmp" -IDI_FB_FOLDALL BITMAP "icons/standard/panels/fb_fold_all.bmp" -IDI_FB_EXPANDALL BITMAP "icons/standard/panels/fb_expand_all.bmp" -IDI_FB_SELECTCURRENTFILE_DM BITMAP "icons/dark/panels/fb_select_current_file.bmp" -IDI_FB_FOLDALL_DM BITMAP "icons/dark/panels/fb_fold_all.bmp" -IDI_FB_EXPANDALL_DM BITMAP "icons/dark/panels/fb_expand_all.bmp" +IDI_FB_SELECTCURRENTFILE ICON "icons/standard/panels/toolbar/fb_select_current_file.ico" +IDI_FB_FOLDALL ICON "icons/standard/panels/toolbar/fb_fold_all.ico" +IDI_FB_EXPANDALL ICON "icons/standard/panels/toolbar/fb_expand_all.ico" +IDI_FB_SELECTCURRENTFILE_DM ICON "icons/dark/panels/toolbar/fb_select_current_file.ico" +IDI_FB_FOLDALL_DM ICON "icons/dark/panels/toolbar/fb_fold_all.ico" +IDI_FB_EXPANDALL_DM ICON "icons/dark/panels/toolbar/fb_expand_all.ico" -IDI_FUNCLIST_ROOT BITMAP "icons/standard/panels/project_file.bmp" -IDI_FUNCLIST_NODE BITMAP "icons/standard/panels/funcList_node.bmp" -IDI_FUNCLIST_LEAF BITMAP "icons/standard/panels/funcList_leaf.bmp" +IDI_FUNCLIST_ROOT BITMAP "icons/standard/panels/treeview/project_file.bmp" +IDI_FUNCLIST_NODE BITMAP "icons/standard/panels/treeview/funcList_node.bmp" +IDI_FUNCLIST_LEAF BITMAP "icons/standard/panels/treeview/funcList_leaf.bmp" -IDI_FUNCLIST_SORTBUTTON BITMAP "icons/standard/panels/funclstSort.bmp" -IDI_FUNCLIST_RELOADBUTTON BITMAP "icons/standard/panels/funclstReload.bmp" -IDI_FUNCLIST_PREFERENCEBUTTON BITMAP "icons/standard/panels/funclstPreferences.bmp" -IDI_FUNCLIST_SORTBUTTON_DM BITMAP "icons/dark/panels/funclstSort.bmp" -IDI_FUNCLIST_RELOADBUTTON_DM BITMAP "icons/dark/panels/funclstReload.bmp" -IDI_FUNCLIST_PREFERENCEBUTTON_DM BITMAP "icons/dark/panels/funclstPreferences.bmp" +IDI_FUNCLIST_SORTBUTTON ICON "icons/standard/panels/toolbar/funclstSort.ico" +IDI_FUNCLIST_RELOADBUTTON ICON "icons/standard/panels/toolbar/funclstReload.ico" +IDI_FUNCLIST_PREFERENCEBUTTON ICON "icons/standard/panels/toolbar/funclstPreferences.ico" +IDI_FUNCLIST_SORTBUTTON_DM ICON "icons/dark/panels/toolbar/funclstSort.ico" +IDI_FUNCLIST_RELOADBUTTON_DM ICON "icons/dark/panels/toolbar/funclstReload.ico" +IDI_FUNCLIST_PREFERENCEBUTTON_DM ICON "icons/dark/panels/toolbar/funclstPreferences.ico" IDI_GET_INFO_FROM_TOOLTIP ICON "icons/moreOnTooltip.ico" diff --git a/PowerEditor/src/WinControls/FileBrowser/fileBrowser.cpp b/PowerEditor/src/WinControls/FileBrowser/fileBrowser.cpp index bb0d01a1f..fc863b12b 100644 --- a/PowerEditor/src/WinControls/FileBrowser/fileBrowser.cpp +++ b/PowerEditor/src/WinControls/FileBrowser/fileBrowser.cpp @@ -54,6 +54,15 @@ FileBrowser::~FileBrowser() { delete cd; } + + for (auto hImgList : _iconListVector) + { + if (hImgList != nullptr) + { + ::ImageList_Destroy(hImgList); + } + } + _iconListVector.clear(); } vector split(const generic_string & string2split, TCHAR sep) @@ -96,44 +105,65 @@ intptr_t CALLBACK FileBrowser::run_dlgProc(UINT message, WPARAM wParam, LPARAM l { switch (message) { - case WM_INITDIALOG : + case WM_INITDIALOG: { NppParameters& nppParam = NppParameters::getInstance(); - int style = WS_CHILD | WS_VISIBLE | CCS_ADJUSTABLE | TBSTYLE_AUTOSIZE | TBSTYLE_FLAT | TBSTYLE_LIST | TBSTYLE_TRANSPARENT | BTNS_AUTOSIZE | BTNS_SEP | TBSTYLE_TOOLTIPS | TBSTYLE_CUSTOMERASE; + + constexpr DWORD style = WS_CHILD | WS_VISIBLE | TBSTYLE_FLAT | TBSTYLE_LIST | TBSTYLE_TRANSPARENT | TBSTYLE_TOOLTIPS | TBSTYLE_CUSTOMERASE; _hToolbarMenu = CreateWindowEx(WS_EX_LAYOUTRTL, TOOLBARCLASSNAME, NULL, style, 0, 0, 0, 0, _hSelf, nullptr, _hInst, NULL); - // Add the bmap image into toolbar's imagelist - int iconSizeDyn = nppParam._dpiManager.scaleX(16); - ::SendMessage(_hToolbarMenu, TB_SETBITMAPSIZE, 0, MAKELPARAM(iconSizeDyn, iconSizeDyn)); + const DWORD tbExStyle = static_cast(::SendMessage(_hToolbarMenu, TB_GETEXTENDEDSTYLE, 0, 0)); + ::SendMessage(_hToolbarMenu, TB_SETEXTENDEDSTYLE, 0, tbExStyle | TBSTYLE_EX_DOUBLEBUFFER); - TBADDBITMAP addbmp = { 0, 0 }; - const int nbIcons = 3; + setDpi(); + const int iconSizeDyn = _dpiManager.scale(16); + constexpr int nbIcons = 3; int iconIDs[nbIcons] = { IDI_FB_SELECTCURRENTFILE, IDI_FB_FOLDALL, IDI_FB_EXPANDALL}; int iconDarkModeIDs[nbIcons] = { IDI_FB_SELECTCURRENTFILE_DM, IDI_FB_FOLDALL_DM, IDI_FB_EXPANDALL_DM}; + + // Create an image lists for the toolbar icons + HIMAGELIST hImageList = ImageList_Create(iconSizeDyn, iconSizeDyn, ILC_COLOR32 | ILC_MASK, nbIcons, 0); + HIMAGELIST hImageListDm = ImageList_Create(iconSizeDyn, iconSizeDyn, ILC_COLOR32 | ILC_MASK, nbIcons, 0); + _iconListVector.push_back(hImageList); + _iconListVector.push_back(hImageListDm); + for (size_t i = 0; i < nbIcons; ++i) { - int icoID = NppDarkMode::isEnabled() ? iconDarkModeIDs[i] : iconIDs[i]; - HBITMAP hBmp = static_cast(::LoadImage(_hInst, MAKEINTRESOURCE(icoID), IMAGE_BITMAP, iconSizeDyn, iconSizeDyn, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT)); - addbmp.nID = reinterpret_cast(hBmp); - ::SendMessage(_hToolbarMenu, TB_ADDBITMAP, 1, reinterpret_cast(&addbmp)); + int icoID = iconIDs[i]; + HICON hIcon = nullptr; + DPIManagerV2::loadIcon(_hInst, MAKEINTRESOURCE(icoID), iconSizeDyn, iconSizeDyn, &hIcon, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT); + ImageList_AddIcon(_iconListVector.at(0), hIcon); + ::DestroyIcon(hIcon); + hIcon = nullptr; + + icoID = iconDarkModeIDs[i]; + DPIManagerV2::loadIcon(_hInst, MAKEINTRESOURCE(icoID), iconSizeDyn, iconSizeDyn, &hIcon, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT); + ImageList_AddIcon(_iconListVector.at(1), hIcon); + ::DestroyIcon(hIcon); // Clean up the loaded icon } - TBBUTTON tbButtons[nbIcons]; + // Attach the image list to the toolbar + ::SendMessage(_hToolbarMenu, TB_SETIMAGELIST, 0, reinterpret_cast(_iconListVector.at(NppDarkMode::isEnabled() ? 1 : 0))); + + TBBUTTON tbButtons[nbIcons]{}; + tbButtons[0].idCommand = FB_CMD_AIMFILE; tbButtons[0].iBitmap = 0; tbButtons[0].fsState = TBSTATE_ENABLED; - tbButtons[0].fsStyle = BTNS_BUTTON | BTNS_AUTOSIZE; - tbButtons[0].iString = reinterpret_cast(TEXT("")); + tbButtons[0].fsStyle = BTNS_BUTTON; + tbButtons[0].iString = 0; + tbButtons[1].idCommand = FB_CMD_FOLDALL; tbButtons[1].iBitmap = 1; tbButtons[1].fsState = TBSTATE_ENABLED; - tbButtons[1].fsStyle = BTNS_BUTTON | BTNS_AUTOSIZE; - tbButtons[1].iString = reinterpret_cast(TEXT("")); + tbButtons[1].fsStyle = BTNS_BUTTON; + tbButtons[1].iString = 0; + tbButtons[2].idCommand = FB_CMD_EXPANDALL; tbButtons[2].iBitmap = 2; tbButtons[2].fsState = TBSTATE_ENABLED; - tbButtons[2].fsStyle = BTNS_BUTTON | BTNS_AUTOSIZE; - tbButtons[2].iString = reinterpret_cast(TEXT("")); + tbButtons[2].fsStyle = BTNS_BUTTON; + tbButtons[2].iString = 0; // tips text for toolbar buttons NativeLangSpeaker *pNativeSpeaker = nppParam.getNativeLangSpeaker(); @@ -142,12 +172,10 @@ intptr_t CALLBACK FileBrowser::run_dlgProc(UINT message, WPARAM wParam, LPARAM l _locateCurrentFile = pNativeSpeaker->getAttrNameStr(_locateCurrentFile.c_str(), FOLDERASWORKSPACE_NODE, "LocateCurrentFileTip"); ::SendMessage(_hToolbarMenu, TB_BUTTONSTRUCTSIZE, sizeof(TBBUTTON), 0); - ::SendMessage(_hToolbarMenu, TB_SETBUTTONSIZE, 0, MAKELONG(nppParam._dpiManager.scaleX(20), nppParam._dpiManager.scaleY(20))); - ::SendMessage(_hToolbarMenu, TB_SETPADDING, 0, MAKELONG(nppParam._dpiManager.scaleX(10), 0)); + ::SendMessage(_hToolbarMenu, TB_SETBUTTONSIZE, 0, MAKELONG(iconSizeDyn, iconSizeDyn)); ::SendMessage(_hToolbarMenu, TB_ADDBUTTONS, sizeof(tbButtons) / sizeof(TBBUTTON), reinterpret_cast(&tbButtons)); ::SendMessage(_hToolbarMenu, TB_AUTOSIZE, 0, 0); - ::SendMessage(_hToolbarMenu, TB_GETIMAGELIST, 0, 0); ShowWindow(_hToolbarMenu, SW_SHOW); FileBrowser::initPopupMenus(); @@ -181,6 +209,7 @@ intptr_t CALLBACK FileBrowser::run_dlgProc(UINT message, WPARAM wParam, LPARAM l if (static_cast(lParam) != TRUE) { NppDarkMode::autoThemeChildControls(_hSelf); + ::SendMessage(_hToolbarMenu, TB_SETIMAGELIST, 0, reinterpret_cast(_iconListVector.at(NppDarkMode::isEnabled() ? 1 : 0))); } NppDarkMode::setTreeViewStyle(_treeView.getHSelf()); return TRUE; @@ -208,7 +237,7 @@ intptr_t CALLBACK FileBrowser::run_dlgProc(UINT message, WPARAM wParam, LPARAM l { int width = LOWORD(lParam); int height = HIWORD(lParam); - int extraValue = NppParameters::getInstance()._dpiManager.scaleX(4); + int extraValue = _dpiManager.scale(4); RECT toolbarMenuRect; ::GetClientRect(_hToolbarMenu, &toolbarMenuRect); @@ -511,7 +540,7 @@ void FileBrowser::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; @@ -676,7 +705,7 @@ void FileBrowser::notified(LPNMHDR notification) BrowserNodeType FileBrowser::getNodeType(HTREEITEM hItem) { - TVITEM tvItem; + TVITEM tvItem{}; tvItem.hItem = hItem; tvItem.mask = TVIF_IMAGE | TVIF_PARAM; SendMessage(_treeView.getHSelf(), TVM_GETITEM, 0, reinterpret_cast(&tvItem)); @@ -1038,7 +1067,7 @@ HTREEITEM FileBrowser::getRootFromFullPath(const generic_string & rootPath) cons hItemNode != nullptr && node == nullptr; hItemNode = _treeView.getNextSibling(hItemNode)) { - TVITEM tvItem; + TVITEM tvItem{}; tvItem.mask = TVIF_PARAM; tvItem.cchTextMax = MAX_PATH; tvItem.hItem = hItemNode; @@ -1057,7 +1086,7 @@ HTREEITEM FileBrowser::findChildNodeFromName(HTREEITEM parent, const generic_str hItemNode = _treeView.getNextSibling(hItemNode)) { TCHAR textBuffer[MAX_PATH] = { '\0' }; - TVITEM tvItem; + TVITEM tvItem{}; tvItem.mask = TVIF_TEXT; tvItem.pszText = textBuffer; tvItem.cchTextMax = MAX_PATH; @@ -1080,7 +1109,7 @@ vector FileBrowser::getRoots() const hItemNode != nullptr; hItemNode = _treeView.getNextSibling(hItemNode)) { - TVITEM tvItem; + TVITEM tvItem{}; tvItem.mask = TVIF_PARAM; tvItem.cchTextMax = MAX_PATH; tvItem.hItem = hItemNode; @@ -1217,7 +1246,7 @@ bool FileBrowser::addToTree(FilesToChange & group, HTREEITEM node) hItemNode = _treeView.getNextSibling(hItemNode)) { TCHAR textBuffer[MAX_PATH] = { '\0' }; - TVITEM tvItem; + TVITEM tvItem{}; tvItem.mask = TVIF_TEXT; tvItem.pszText = textBuffer; tvItem.cchTextMax = MAX_PATH; @@ -1278,7 +1307,7 @@ HTREEITEM FileBrowser::findInTree(const generic_string& rootPath, HTREEITEM node hItemNode = _treeView.getNextSibling(hItemNode)) { TCHAR textBuffer[MAX_PATH] = { '\0' }; - TVITEM tvItem; + TVITEM tvItem{}; tvItem.mask = TVIF_TEXT; tvItem.pszText = textBuffer; tvItem.cchTextMax = MAX_PATH; @@ -1319,7 +1348,7 @@ std::vector FileBrowser::findInTree(FilesToChange & group, HTREEITEM hItemNode = _treeView.getNextSibling(hItemNode)) { TCHAR textBuffer[MAX_PATH] = {'\0'}; - TVITEM tvItem; + TVITEM tvItem{}; tvItem.mask = TVIF_TEXT; tvItem.pszText = textBuffer; tvItem.cchTextMax = MAX_PATH; @@ -1346,8 +1375,8 @@ std::vector FileBrowser::findChildNodesFromNames(HTREEITEM parent, st hItemNode = _treeView.getNextSibling(hItemNode) ) { - TCHAR textBuffer[MAX_PATH]; - TVITEM tvItem; + TCHAR textBuffer[MAX_PATH]{}; + TVITEM tvItem{}; tvItem.mask = TVIF_TEXT; tvItem.pszText = textBuffer; tvItem.cchTextMax = MAX_PATH; @@ -1372,8 +1401,8 @@ void FileBrowser::removeNamesAlreadyInNode(HTREEITEM parent, std::vector _iconListVector; TreeView _treeView; HIMAGELIST _hImaLst = nullptr; @@ -207,7 +208,7 @@ protected: void removeNamesAlreadyInNode(HTREEITEM parent, std::vector & labels) const; - virtual intptr_t CALLBACK run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam); + intptr_t CALLBACK run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam) override; void notified(LPNMHDR notification); void showContextMenu(int x, int y); void openSelectFile(); diff --git a/PowerEditor/src/WinControls/FunctionList/functionListPanel.cpp b/PowerEditor/src/WinControls/FunctionList/functionListPanel.cpp index 35daeb19b..5c4d273bc 100644 --- a/PowerEditor/src/WinControls/FunctionList/functionListPanel.cpp +++ b/PowerEditor/src/WinControls/FunctionList/functionListPanel.cpp @@ -41,6 +41,15 @@ FunctionListPanel::~FunctionListPanel() ::DeleteObject(_hFontSearchEdit); _hFontSearchEdit = nullptr; } + + for (auto hImgList : _iconListVector) + { + if (hImgList != nullptr) + { + ::ImageList_Destroy(hImgList); + } + } + _iconListVector.clear(); } void FunctionListPanel::addEntry(const TCHAR *nodeName, const TCHAR *displayText, size_t pos) @@ -814,39 +823,56 @@ intptr_t CALLBACK FunctionListPanel::run_dlgProc(UINT message, WPARAM wParam, LP return reinterpret_cast(hBrushBackground); } - case WM_INITDIALOG : + case WM_INITDIALOG: { FunctionListPanel::initPreferencesMenu(); NppParameters& nppParams = NppParameters::getInstance(); - int editWidth = nppParams._dpiManager.scaleX(100); - int editWidthSep = nppParams._dpiManager.scaleX(105); //editWidth + 5 - int editHeight = nppParams._dpiManager.scaleY(20); + setDpi(); + const int editWidth = _dpiManager.scale(100); + const int editWidthSep = _dpiManager.scale(105); //editWidth + 5 + const int editHeight = _dpiManager.scale(20); // Create toolbar menu - int style = WS_CHILD | WS_VISIBLE | CCS_ADJUSTABLE | TBSTYLE_AUTOSIZE | TBSTYLE_FLAT | TBSTYLE_LIST | TBSTYLE_TRANSPARENT | BTNS_AUTOSIZE | BTNS_SEP | TBSTYLE_TOOLTIPS; + constexpr DWORD style = WS_CHILD | WS_VISIBLE | TBSTYLE_FLAT | TBSTYLE_LIST | TBSTYLE_TRANSPARENT | TBSTYLE_TOOLTIPS; _hToolbarMenu = CreateWindowEx(0,TOOLBARCLASSNAME,NULL, style, 0,0,0,0,_hSelf,nullptr, _hInst, NULL); + const DWORD tbExStyle = static_cast(::SendMessage(_hToolbarMenu, TB_GETEXTENDEDSTYLE, 0, 0)); + ::SendMessage(_hToolbarMenu, TB_SETEXTENDEDSTYLE, 0, tbExStyle | TBSTYLE_EX_DOUBLEBUFFER); + oldFunclstToolbarProc = reinterpret_cast(::SetWindowLongPtr(_hToolbarMenu, GWLP_WNDPROC, reinterpret_cast(funclstToolbarProc))); - // Add the bmap image into toolbar's imagelist - int iconSizeDyn = nppParams._dpiManager.scaleX(16); - ::SendMessage(_hToolbarMenu, TB_SETBITMAPSIZE, 0, MAKELPARAM(iconSizeDyn, iconSizeDyn)); - - TBADDBITMAP addbmp = { 0, 0 }; - const int nbIcons = 3; + const int iconSizeDyn = _dpiManager.scale(16); + constexpr int nbIcons = 3; int iconIDs[nbIcons] = { IDI_FUNCLIST_SORTBUTTON, IDI_FUNCLIST_RELOADBUTTON, IDI_FUNCLIST_PREFERENCEBUTTON }; int iconDarkModeIDs[nbIcons] = { IDI_FUNCLIST_SORTBUTTON_DM, IDI_FUNCLIST_RELOADBUTTON_DM, IDI_FUNCLIST_PREFERENCEBUTTON_DM }; + + // Create an image lists for the toolbar icons + HIMAGELIST hImageList = ImageList_Create(iconSizeDyn, iconSizeDyn, ILC_COLOR32 | ILC_MASK, nbIcons, 0); + HIMAGELIST hImageListDm = ImageList_Create(iconSizeDyn, iconSizeDyn, ILC_COLOR32 | ILC_MASK, nbIcons, 0); + _iconListVector.push_back(hImageList); + _iconListVector.push_back(hImageListDm); + for (size_t i = 0; i < nbIcons; ++i) { - int icoID = NppDarkMode::isEnabled() ? iconDarkModeIDs[i] : iconIDs[i]; - HBITMAP hBmp = static_cast(::LoadImage(_hInst, MAKEINTRESOURCE(icoID), IMAGE_BITMAP, iconSizeDyn, iconSizeDyn, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT)); - addbmp.nID = reinterpret_cast(hBmp); - ::SendMessage(_hToolbarMenu, TB_ADDBITMAP, 1, reinterpret_cast(&addbmp)); + int icoID = iconIDs[i]; + HICON hIcon = nullptr; + DPIManagerV2::loadIcon(_hInst, MAKEINTRESOURCE(icoID), iconSizeDyn, iconSizeDyn, &hIcon, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT); + ImageList_AddIcon(_iconListVector.at(0), hIcon); + ::DestroyIcon(hIcon); + hIcon = nullptr; + + icoID = iconDarkModeIDs[i]; + DPIManagerV2::loadIcon(_hInst, MAKEINTRESOURCE(icoID), iconSizeDyn, iconSizeDyn, &hIcon, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT); + ImageList_AddIcon(_iconListVector.at(1), hIcon); + ::DestroyIcon(hIcon); // Clean up the loaded icon } + // Attach the image list to the toolbar + ::SendMessage(_hToolbarMenu, TB_SETIMAGELIST, 0, reinterpret_cast(_iconListVector.at(NppDarkMode::isEnabled() ? 1 : 0))); + // Place holder of search text field TBBUTTON tbButtons[1 + nbIcons]{}; @@ -859,23 +885,23 @@ intptr_t CALLBACK FunctionListPanel::run_dlgProc(UINT message, WPARAM wParam, LP tbButtons[1].idCommand = IDC_SORTBUTTON_FUNCLIST; tbButtons[1].iBitmap = 0; tbButtons[1].fsState = TBSTATE_ENABLED; - tbButtons[1].fsStyle = BTNS_CHECK | BTNS_AUTOSIZE; - tbButtons[1].iString = reinterpret_cast(TEXT("")); + tbButtons[1].fsStyle = BTNS_CHECK; + tbButtons[1].iString = 0; tbButtons[2].idCommand = IDC_RELOADBUTTON_FUNCLIST; tbButtons[2].iBitmap = 1; tbButtons[2].fsState = TBSTATE_ENABLED; - tbButtons[2].fsStyle = BTNS_BUTTON | BTNS_AUTOSIZE; - tbButtons[2].iString = reinterpret_cast(TEXT("")); + tbButtons[2].fsStyle = BTNS_BUTTON; + tbButtons[2].iString = 0; tbButtons[3].idCommand = IDC_PREFERENCEBUTTON_FUNCLIST; tbButtons[3].iBitmap = 2; tbButtons[3].fsState = TBSTATE_ENABLED; - tbButtons[3].fsStyle = BTNS_BUTTON | BTNS_AUTOSIZE; - tbButtons[3].iString = reinterpret_cast(TEXT("")); + tbButtons[3].fsStyle = BTNS_BUTTON; + tbButtons[3].iString = 0; ::SendMessage(_hToolbarMenu, TB_BUTTONSTRUCTSIZE, sizeof(TBBUTTON), 0); - ::SendMessage(_hToolbarMenu, TB_SETBUTTONSIZE, 0, MAKELONG(nppParams._dpiManager.scaleX(16), nppParams._dpiManager.scaleY(16))); + ::SendMessage(_hToolbarMenu, TB_SETBUTTONSIZE, 0, MAKELONG(iconSizeDyn, iconSizeDyn)); ::SendMessage(_hToolbarMenu, TB_ADDBUTTONS, sizeof(tbButtons) / sizeof(TBBUTTON), reinterpret_cast(&tbButtons)); ::SendMessage(_hToolbarMenu, TB_AUTOSIZE, 0, 0); @@ -887,7 +913,7 @@ intptr_t CALLBACK FunctionListPanel::run_dlgProc(UINT message, WPARAM wParam, LP _reloadTipStr = pNativeSpeaker->getAttrNameStr(_reloadTipStr.c_str(), FL_FUCTIONLISTROOTNODE, FL_RELOADLOCALNODENAME); _preferenceTipStr = pNativeSpeaker->getAttrNameStr(_preferenceTipStr.c_str(), FL_FUCTIONLISTROOTNODE, FL_PREFERENCESLOCALNODENAME); - _hSearchEdit = CreateWindowEx(WS_EX_CLIENTEDGE, L"Edit", NULL, + _hSearchEdit = CreateWindowEx(WS_EX_CLIENTEDGE, WC_EDIT, NULL, WS_CHILD | WS_VISIBLE | ES_AUTOVSCROLL, 2, 2, editWidth, editHeight, _hToolbarMenu, reinterpret_cast(IDC_SEARCHFIELD_FUNCLIST), _hInst, 0 ); @@ -896,7 +922,7 @@ intptr_t CALLBACK FunctionListPanel::run_dlgProc(UINT message, WPARAM wParam, LP if (_hFontSearchEdit == nullptr) { - LOGFONT lf{ DPIManagerV2::getDefaultGUIFontForDpi(_hParent) }; + LOGFONT lf{ _dpiManager.getDefaultGUIFontForDpi() }; _hFontSearchEdit = ::CreateFontIndirect(&lf); } @@ -925,6 +951,7 @@ intptr_t CALLBACK FunctionListPanel::run_dlgProc(UINT message, WPARAM wParam, LP if (static_cast(lParam) != TRUE) { NppDarkMode::autoThemeChildControls(_hSelf); + ::SendMessage(_hToolbarMenu, TB_SETIMAGELIST, 0, reinterpret_cast(_iconListVector.at(NppDarkMode::isEnabled() ? 1 : 0))); } NppDarkMode::setTreeViewStyle(_treeView.getHSelf()); return TRUE; @@ -1000,7 +1027,7 @@ intptr_t CALLBACK FunctionListPanel::run_dlgProc(UINT message, WPARAM wParam, LP { int width = LOWORD(lParam); int height = HIWORD(lParam); - int extraValue = NppParameters::getInstance()._dpiManager.scaleX(4); + int extraValue = _dpiManager.scale(4); RECT toolbarMenuRect; ::GetClientRect(_hToolbarMenu, &toolbarMenuRect); diff --git a/PowerEditor/src/WinControls/FunctionList/functionListPanel.h b/PowerEditor/src/WinControls/FunctionList/functionListPanel.h index 775526864..7722e926d 100644 --- a/PowerEditor/src/WinControls/FunctionList/functionListPanel.h +++ b/PowerEditor/src/WinControls/FunctionList/functionListPanel.h @@ -111,6 +111,7 @@ private: HWND _hToolbarMenu = nullptr; HWND _hSearchEdit = nullptr; HFONT _hFontSearchEdit = nullptr; + std::vector _iconListVector; TreeView *_pTreeView = nullptr; TreeView _treeView; diff --git a/PowerEditor/src/icons/dark/panels/fb_expand_all.bmp b/PowerEditor/src/icons/dark/panels/fb_expand_all.bmp deleted file mode 100644 index d8a551225..000000000 Binary files a/PowerEditor/src/icons/dark/panels/fb_expand_all.bmp and /dev/null differ diff --git a/PowerEditor/src/icons/dark/panels/fb_fold_all.bmp b/PowerEditor/src/icons/dark/panels/fb_fold_all.bmp deleted file mode 100644 index 25c8a4946..000000000 Binary files a/PowerEditor/src/icons/dark/panels/fb_fold_all.bmp and /dev/null differ diff --git a/PowerEditor/src/icons/dark/panels/fb_select_current_file.bmp b/PowerEditor/src/icons/dark/panels/fb_select_current_file.bmp deleted file mode 100644 index 552b91db6..000000000 Binary files a/PowerEditor/src/icons/dark/panels/fb_select_current_file.bmp and /dev/null differ diff --git a/PowerEditor/src/icons/dark/panels/funclstPreferences.bmp b/PowerEditor/src/icons/dark/panels/funclstPreferences.bmp deleted file mode 100644 index 405c756fd..000000000 Binary files a/PowerEditor/src/icons/dark/panels/funclstPreferences.bmp and /dev/null differ diff --git a/PowerEditor/src/icons/dark/panels/funclstReload.bmp b/PowerEditor/src/icons/dark/panels/funclstReload.bmp deleted file mode 100644 index f88f567cc..000000000 Binary files a/PowerEditor/src/icons/dark/panels/funclstReload.bmp and /dev/null differ diff --git a/PowerEditor/src/icons/dark/panels/funclstSort.bmp b/PowerEditor/src/icons/dark/panels/funclstSort.bmp deleted file mode 100644 index bae0cfd16..000000000 Binary files a/PowerEditor/src/icons/dark/panels/funclstSort.bmp and /dev/null differ diff --git a/PowerEditor/src/icons/dark/panels/asciiPanel.ico b/PowerEditor/src/icons/dark/panels/tabbar/asciiPanel.ico similarity index 100% rename from PowerEditor/src/icons/dark/panels/asciiPanel.ico rename to PowerEditor/src/icons/dark/panels/tabbar/asciiPanel.ico diff --git a/PowerEditor/src/icons/dark/panels/clipboardPanel.ico b/PowerEditor/src/icons/dark/panels/tabbar/clipboardPanel.ico similarity index 100% rename from PowerEditor/src/icons/dark/panels/clipboardPanel.ico rename to PowerEditor/src/icons/dark/panels/tabbar/clipboardPanel.ico diff --git a/PowerEditor/src/icons/dark/panels/docList.ico b/PowerEditor/src/icons/dark/panels/tabbar/docList.ico similarity index 100% rename from PowerEditor/src/icons/dark/panels/docList.ico rename to PowerEditor/src/icons/dark/panels/tabbar/docList.ico diff --git a/PowerEditor/src/icons/dark/panels/docMap.ico b/PowerEditor/src/icons/dark/panels/tabbar/docMap.ico similarity index 100% rename from PowerEditor/src/icons/dark/panels/docMap.ico rename to PowerEditor/src/icons/dark/panels/tabbar/docMap.ico diff --git a/PowerEditor/src/icons/dark/panels/fileBrowser.ico b/PowerEditor/src/icons/dark/panels/tabbar/fileBrowser.ico similarity index 100% rename from PowerEditor/src/icons/dark/panels/fileBrowser.ico rename to PowerEditor/src/icons/dark/panels/tabbar/fileBrowser.ico diff --git a/PowerEditor/src/icons/dark/panels/functionList.ico b/PowerEditor/src/icons/dark/panels/tabbar/functionList.ico similarity index 100% rename from PowerEditor/src/icons/dark/panels/functionList.ico rename to PowerEditor/src/icons/dark/panels/tabbar/functionList.ico diff --git a/PowerEditor/src/icons/dark/panels/projectPanel.ico b/PowerEditor/src/icons/dark/panels/tabbar/projectPanel.ico similarity index 100% rename from PowerEditor/src/icons/dark/panels/projectPanel.ico rename to PowerEditor/src/icons/dark/panels/tabbar/projectPanel.ico diff --git a/PowerEditor/src/icons/dark/panels/toolbar/fb_expand_all.ico b/PowerEditor/src/icons/dark/panels/toolbar/fb_expand_all.ico new file mode 100644 index 000000000..47f4d6ac7 Binary files /dev/null and b/PowerEditor/src/icons/dark/panels/toolbar/fb_expand_all.ico differ diff --git a/PowerEditor/src/icons/dark/panels/toolbar/fb_fold_all.ico b/PowerEditor/src/icons/dark/panels/toolbar/fb_fold_all.ico new file mode 100644 index 000000000..43185e84a Binary files /dev/null and b/PowerEditor/src/icons/dark/panels/toolbar/fb_fold_all.ico differ diff --git a/PowerEditor/src/icons/dark/panels/toolbar/fb_select_current_file.ico b/PowerEditor/src/icons/dark/panels/toolbar/fb_select_current_file.ico new file mode 100644 index 000000000..43165e3b1 Binary files /dev/null and b/PowerEditor/src/icons/dark/panels/toolbar/fb_select_current_file.ico differ diff --git a/PowerEditor/src/icons/dark/panels/toolbar/funclstPreferences.ico b/PowerEditor/src/icons/dark/panels/toolbar/funclstPreferences.ico new file mode 100644 index 000000000..61ce8ded9 Binary files /dev/null and b/PowerEditor/src/icons/dark/panels/toolbar/funclstPreferences.ico differ diff --git a/PowerEditor/src/icons/dark/panels/toolbar/funclstReload.ico b/PowerEditor/src/icons/dark/panels/toolbar/funclstReload.ico new file mode 100644 index 000000000..e41c4cc39 Binary files /dev/null and b/PowerEditor/src/icons/dark/panels/toolbar/funclstReload.ico differ diff --git a/PowerEditor/src/icons/dark/panels/toolbar/funclstSort.ico b/PowerEditor/src/icons/dark/panels/toolbar/funclstSort.ico new file mode 100644 index 000000000..4a5280f23 Binary files /dev/null and b/PowerEditor/src/icons/dark/panels/toolbar/funclstSort.ico differ diff --git a/PowerEditor/src/icons/light/panels/asciiPanel.ico b/PowerEditor/src/icons/light/panels/tabbar/asciiPanel.ico similarity index 100% rename from PowerEditor/src/icons/light/panels/asciiPanel.ico rename to PowerEditor/src/icons/light/panels/tabbar/asciiPanel.ico diff --git a/PowerEditor/src/icons/light/panels/clipboardPanel.ico b/PowerEditor/src/icons/light/panels/tabbar/clipboardPanel.ico similarity index 100% rename from PowerEditor/src/icons/light/panels/clipboardPanel.ico rename to PowerEditor/src/icons/light/panels/tabbar/clipboardPanel.ico diff --git a/PowerEditor/src/icons/light/panels/docList.ico b/PowerEditor/src/icons/light/panels/tabbar/docList.ico similarity index 100% rename from PowerEditor/src/icons/light/panels/docList.ico rename to PowerEditor/src/icons/light/panels/tabbar/docList.ico diff --git a/PowerEditor/src/icons/light/panels/docMap.ico b/PowerEditor/src/icons/light/panels/tabbar/docMap.ico similarity index 100% rename from PowerEditor/src/icons/light/panels/docMap.ico rename to PowerEditor/src/icons/light/panels/tabbar/docMap.ico diff --git a/PowerEditor/src/icons/light/panels/fileBrowser.ico b/PowerEditor/src/icons/light/panels/tabbar/fileBrowser.ico similarity index 100% rename from PowerEditor/src/icons/light/panels/fileBrowser.ico rename to PowerEditor/src/icons/light/panels/tabbar/fileBrowser.ico diff --git a/PowerEditor/src/icons/light/panels/functionList.ico b/PowerEditor/src/icons/light/panels/tabbar/functionList.ico similarity index 100% rename from PowerEditor/src/icons/light/panels/functionList.ico rename to PowerEditor/src/icons/light/panels/tabbar/functionList.ico diff --git a/PowerEditor/src/icons/light/panels/projectPanel.ico b/PowerEditor/src/icons/light/panels/tabbar/projectPanel.ico similarity index 100% rename from PowerEditor/src/icons/light/panels/projectPanel.ico rename to PowerEditor/src/icons/light/panels/tabbar/projectPanel.ico diff --git a/PowerEditor/src/icons/standard/panels/fb_expand_all.bmp b/PowerEditor/src/icons/standard/panels/fb_expand_all.bmp deleted file mode 100644 index 5fe813112..000000000 Binary files a/PowerEditor/src/icons/standard/panels/fb_expand_all.bmp and /dev/null differ diff --git a/PowerEditor/src/icons/standard/panels/fb_fold_all.bmp b/PowerEditor/src/icons/standard/panels/fb_fold_all.bmp deleted file mode 100644 index fb20ddd20..000000000 Binary files a/PowerEditor/src/icons/standard/panels/fb_fold_all.bmp and /dev/null differ diff --git a/PowerEditor/src/icons/standard/panels/fb_select_current_file.bmp b/PowerEditor/src/icons/standard/panels/fb_select_current_file.bmp deleted file mode 100644 index 790413e6d..000000000 Binary files a/PowerEditor/src/icons/standard/panels/fb_select_current_file.bmp and /dev/null differ diff --git a/PowerEditor/src/icons/standard/panels/funclstPreferences.bmp b/PowerEditor/src/icons/standard/panels/funclstPreferences.bmp deleted file mode 100644 index f0e7103db..000000000 Binary files a/PowerEditor/src/icons/standard/panels/funclstPreferences.bmp and /dev/null differ diff --git a/PowerEditor/src/icons/standard/panels/funclstReload.bmp b/PowerEditor/src/icons/standard/panels/funclstReload.bmp deleted file mode 100644 index 0e3bb0be8..000000000 Binary files a/PowerEditor/src/icons/standard/panels/funclstReload.bmp and /dev/null differ diff --git a/PowerEditor/src/icons/standard/panels/funclstSort.bmp b/PowerEditor/src/icons/standard/panels/funclstSort.bmp deleted file mode 100644 index c32262bca..000000000 Binary files a/PowerEditor/src/icons/standard/panels/funclstSort.bmp and /dev/null differ diff --git a/PowerEditor/src/icons/standard/panels/toolbar/fb_expand_all.ico b/PowerEditor/src/icons/standard/panels/toolbar/fb_expand_all.ico new file mode 100644 index 000000000..e5fd6ad1b Binary files /dev/null and b/PowerEditor/src/icons/standard/panels/toolbar/fb_expand_all.ico differ diff --git a/PowerEditor/src/icons/standard/panels/toolbar/fb_fold_all.ico b/PowerEditor/src/icons/standard/panels/toolbar/fb_fold_all.ico new file mode 100644 index 000000000..8f25fb876 Binary files /dev/null and b/PowerEditor/src/icons/standard/panels/toolbar/fb_fold_all.ico differ diff --git a/PowerEditor/src/icons/standard/panels/toolbar/fb_select_current_file.ico b/PowerEditor/src/icons/standard/panels/toolbar/fb_select_current_file.ico new file mode 100644 index 000000000..e356a253f Binary files /dev/null and b/PowerEditor/src/icons/standard/panels/toolbar/fb_select_current_file.ico differ diff --git a/PowerEditor/src/icons/standard/panels/toolbar/funclstPreferences.ico b/PowerEditor/src/icons/standard/panels/toolbar/funclstPreferences.ico new file mode 100644 index 000000000..365571776 Binary files /dev/null and b/PowerEditor/src/icons/standard/panels/toolbar/funclstPreferences.ico differ diff --git a/PowerEditor/src/icons/standard/panels/toolbar/funclstReload.ico b/PowerEditor/src/icons/standard/panels/toolbar/funclstReload.ico new file mode 100644 index 000000000..41f83b3b0 Binary files /dev/null and b/PowerEditor/src/icons/standard/panels/toolbar/funclstReload.ico differ diff --git a/PowerEditor/src/icons/standard/panels/toolbar/funclstSort.ico b/PowerEditor/src/icons/standard/panels/toolbar/funclstSort.ico new file mode 100644 index 000000000..995576f2b Binary files /dev/null and b/PowerEditor/src/icons/standard/panels/toolbar/funclstSort.ico differ diff --git a/PowerEditor/src/icons/standard/panels/fb_root_close.bmp b/PowerEditor/src/icons/standard/panels/treeview/fb_root_close.bmp similarity index 100% rename from PowerEditor/src/icons/standard/panels/fb_root_close.bmp rename to PowerEditor/src/icons/standard/panels/treeview/fb_root_close.bmp diff --git a/PowerEditor/src/icons/standard/panels/fb_root_open.bmp b/PowerEditor/src/icons/standard/panels/treeview/fb_root_open.bmp similarity index 100% rename from PowerEditor/src/icons/standard/panels/fb_root_open.bmp rename to PowerEditor/src/icons/standard/panels/treeview/fb_root_open.bmp diff --git a/PowerEditor/src/icons/standard/panels/funcList_leaf.bmp b/PowerEditor/src/icons/standard/panels/treeview/funcList_leaf.bmp similarity index 100% rename from PowerEditor/src/icons/standard/panels/funcList_leaf.bmp rename to PowerEditor/src/icons/standard/panels/treeview/funcList_leaf.bmp diff --git a/PowerEditor/src/icons/standard/panels/funcList_node.bmp b/PowerEditor/src/icons/standard/panels/treeview/funcList_node.bmp similarity index 100% rename from PowerEditor/src/icons/standard/panels/funcList_node.bmp rename to PowerEditor/src/icons/standard/panels/treeview/funcList_node.bmp diff --git a/PowerEditor/src/icons/standard/panels/project_file.bmp b/PowerEditor/src/icons/standard/panels/treeview/project_file.bmp similarity index 100% rename from PowerEditor/src/icons/standard/panels/project_file.bmp rename to PowerEditor/src/icons/standard/panels/treeview/project_file.bmp diff --git a/PowerEditor/src/icons/standard/panels/project_file_invalid.bmp b/PowerEditor/src/icons/standard/panels/treeview/project_file_invalid.bmp similarity index 100% rename from PowerEditor/src/icons/standard/panels/project_file_invalid.bmp rename to PowerEditor/src/icons/standard/panels/treeview/project_file_invalid.bmp diff --git a/PowerEditor/src/icons/standard/panels/project_folder_close.bmp b/PowerEditor/src/icons/standard/panels/treeview/project_folder_close.bmp similarity index 100% rename from PowerEditor/src/icons/standard/panels/project_folder_close.bmp rename to PowerEditor/src/icons/standard/panels/treeview/project_folder_close.bmp diff --git a/PowerEditor/src/icons/standard/panels/project_folder_open.bmp b/PowerEditor/src/icons/standard/panels/treeview/project_folder_open.bmp similarity index 100% rename from PowerEditor/src/icons/standard/panels/project_folder_open.bmp rename to PowerEditor/src/icons/standard/panels/treeview/project_folder_open.bmp diff --git a/PowerEditor/src/icons/standard/panels/project_root.bmp b/PowerEditor/src/icons/standard/panels/treeview/project_root.bmp similarity index 100% rename from PowerEditor/src/icons/standard/panels/project_root.bmp rename to PowerEditor/src/icons/standard/panels/treeview/project_root.bmp diff --git a/PowerEditor/src/icons/standard/panels/project_work_space.bmp b/PowerEditor/src/icons/standard/panels/treeview/project_work_space.bmp similarity index 100% rename from PowerEditor/src/icons/standard/panels/project_work_space.bmp rename to PowerEditor/src/icons/standard/panels/treeview/project_work_space.bmp diff --git a/PowerEditor/src/icons/standard/panels/project_work_space_dirty.bmp b/PowerEditor/src/icons/standard/panels/treeview/project_work_space_dirty.bmp similarity index 100% rename from PowerEditor/src/icons/standard/panels/project_work_space_dirty.bmp rename to PowerEditor/src/icons/standard/panels/treeview/project_work_space_dirty.bmp