diff --git a/PowerEditor/src/Notepad_plus.rc b/PowerEditor/src/Notepad_plus.rc index 1acb037b8..8604fa7f9 100644 --- a/PowerEditor/src/Notepad_plus.rc +++ b/PowerEditor/src/Notepad_plus.rc @@ -360,15 +360,15 @@ IDR_FIND_RESULT_ICO2 ICON "icons/light/panels/tabbar/findResul IDR_FIND_RESULT_ICO_DM ICON "icons/dark/panels/tabbar/findResult.ico" -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_PROJECT_WORKSPACE ICON "icons/standard/panels/treeview/project_work_space.ico" +IDI_PROJECT_WORKSPACEDIRTY ICON "icons/standard/panels/treeview/project_work_space_dirty.ico" +IDI_PROJECT_PROJECT ICON "icons/standard/panels/treeview/project_root.ico" +IDI_PROJECT_FOLDEROPEN ICON "icons/standard/panels/treeview/project_folder_open.ico" +IDI_PROJECT_FOLDERCLOSE ICON "icons/standard/panels/treeview/project_folder_close.ico" +IDI_PROJECT_FILE ICON "icons/standard/panels/treeview/project_file.ico" +IDI_PROJECT_FILEINVALID ICON "icons/standard/panels/treeview/project_file_invalid.ico" +IDI_FB_ROOTOPEN ICON "icons/standard/panels/treeview/fb_root_open.ico" +IDI_FB_ROOTCLOSE ICON "icons/standard/panels/treeview/fb_root_close.ico" 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" @@ -377,9 +377,9 @@ IDI_FB_SELECTCURRENTFILE_DM ICON "icons/dark/panels/toolbar/fb_select 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/treeview/project_file.bmp" // same file as IDI_PROJECT_FILE -IDI_FUNCLIST_NODE BITMAP "icons/standard/panels/treeview/funcList_node.bmp" -IDI_FUNCLIST_LEAF BITMAP "icons/standard/panels/treeview/funcList_leaf.bmp" +//IDI_FUNCLIST_ROOT ICON "icons/standard/panels/treeview/project_file.ico" // same file as IDI_PROJECT_FILE +IDI_FUNCLIST_NODE ICON "icons/standard/panels/treeview/funcList_node.ico" +IDI_FUNCLIST_LEAF ICON "icons/standard/panels/treeview/funcList_leaf.ico" IDI_FUNCLIST_SORTBUTTON ICON "icons/standard/panels/toolbar/funclstSort.ico" IDI_FUNCLIST_RELOADBUTTON ICON "icons/standard/panels/toolbar/funclstReload.ico" diff --git a/PowerEditor/src/NppBigSwitch.cpp b/PowerEditor/src/NppBigSwitch.cpp index 5e0cdaee8..002fb0275 100644 --- a/PowerEditor/src/NppBigSwitch.cpp +++ b/PowerEditor/src/NppBigSwitch.cpp @@ -3670,7 +3670,7 @@ LRESULT Notepad_plus::process(HWND hwnd, UINT message, WPARAM wParam, LPARAM lPa _subDocTab.setFont(); _mainDocTab.resizeIconsDpi(); _subDocTab.resizeIconsDpi(); - _subDocTab.setCloseBtnImageList(); + _mainDocTab.setCloseBtnImageList(); _subDocTab.setCloseBtnImageList(); ::SendMessage(_pPublicInterface->getHSelf(), WM_COMMAND, IDM_VIEW_REDUCETABBAR, 0); diff --git a/PowerEditor/src/WinControls/FileBrowser/fileBrowser.cpp b/PowerEditor/src/WinControls/FileBrowser/fileBrowser.cpp index c2a5eae3f..da0974439 100644 --- a/PowerEditor/src/WinControls/FileBrowser/fileBrowser.cpp +++ b/PowerEditor/src/WinControls/FileBrowser/fileBrowser.cpp @@ -180,8 +180,9 @@ intptr_t CALLBACK FileBrowser::run_dlgProc(UINT message, WPARAM wParam, LPARAM l FileBrowser::initPopupMenus(); + std::vector imgIds{ IDI_FB_ROOTOPEN, IDI_FB_ROOTCLOSE, IDI_PROJECT_FOLDEROPEN, IDI_PROJECT_FOLDERCLOSE, IDI_PROJECT_FILE }; _treeView.init(_hInst, _hSelf, ID_FILEBROWSERTREEVIEW); - _treeView.setImageList(CX_BITMAP, CY_BITMAP, 5, IDI_FB_ROOTOPEN, IDI_FB_ROOTCLOSE, IDI_PROJECT_FOLDEROPEN, IDI_PROJECT_FOLDERCLOSE, IDI_PROJECT_FILE); + _treeView.setImageList(imgIds); _treeView.addCanNotDropInList(INDEX_OPEN_ROOT); _treeView.addCanNotDropInList(INDEX_CLOSE_ROOT); diff --git a/PowerEditor/src/WinControls/FunctionList/functionListPanel.cpp b/PowerEditor/src/WinControls/FunctionList/functionListPanel.cpp index 4df3c19b8..0332ff4e4 100644 --- a/PowerEditor/src/WinControls/FunctionList/functionListPanel.cpp +++ b/PowerEditor/src/WinControls/FunctionList/functionListPanel.cpp @@ -710,39 +710,49 @@ void FunctionListPanel::searchFuncAndSwitchView() _pTreeView->customSorting(_pTreeView->getRoot(), categorySortFunc, 0, true); } -static WNDPROC oldFunclstToolbarProc = NULL; -static LRESULT CALLBACK funclstToolbarProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) +static LRESULT CALLBACK funclstToolbarProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR /*dwRefData*/) { switch (message) { + case WM_NCDESTROY: + { + ::RemoveWindowSubclass(hwnd, funclstToolbarProc, uIdSubclass); + break; + } + case WM_CTLCOLOREDIT : { return ::SendMessage(::GetParent(hwnd), WM_CTLCOLOREDIT, wParam, lParam); } } - return oldFunclstToolbarProc(hwnd, message, wParam, lParam); + return ::DefSubclassProc(hwnd, message, wParam, lParam); } -static WNDPROC oldFunclstSearchEditProc = NULL; -static LRESULT CALLBACK funclstSearchEditProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) +static LRESULT CALLBACK funclstSearchEditProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR /*dwRefData*/) { switch (message) { + case WM_NCDESTROY: + { + ::RemoveWindowSubclass(hwnd, funclstSearchEditProc, uIdSubclass); + break; + } + case WM_CHAR: { if (wParam == VK_ESCAPE) { ::SendMessage(hwnd, WM_SETTEXT, 0, reinterpret_cast(L"")); - return FALSE; + return 0; } else if (wParam == VK_TAB) { ::SendMessage(GetParent(hwnd), WM_COMMAND, VK_TAB, 1); - return FALSE; + return 0; } } } - return oldFunclstSearchEditProc(hwnd, message, wParam, lParam); + return ::DefSubclassProc(hwnd, message, wParam, lParam); } bool FunctionListPanel::shouldSort() @@ -842,7 +852,8 @@ intptr_t CALLBACK FunctionListPanel::run_dlgProc(UINT message, WPARAM wParam, LP 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))); + constexpr UINT_PTR idSubclassFunclstToolbar = 2; + ::SetWindowSubclass(_hToolbarMenu, funclstToolbarProc, idSubclassFunclstToolbar, 0); const int iconSizeDyn = _dpiManager.scale(16); constexpr int nbIcons = 3; @@ -918,7 +929,8 @@ intptr_t CALLBACK FunctionListPanel::run_dlgProc(UINT message, WPARAM wParam, LP 2, 2, editWidth, editHeight, _hToolbarMenu, reinterpret_cast(IDC_SEARCHFIELD_FUNCLIST), _hInst, 0 ); - oldFunclstSearchEditProc = reinterpret_cast(::SetWindowLongPtr(_hSearchEdit, GWLP_WNDPROC, reinterpret_cast(funclstSearchEditProc))); + constexpr UINT_PTR idSubclassFunclstSearchEdit = 3; + ::SetWindowSubclass(_hSearchEdit, funclstSearchEditProc, idSubclassFunclstSearchEdit, 0); if (_hFontSearchEdit == nullptr) { @@ -931,10 +943,11 @@ intptr_t CALLBACK FunctionListPanel::run_dlgProc(UINT message, WPARAM wParam, LP ::SendMessage(_hSearchEdit, WM_SETFONT, reinterpret_cast(_hFontSearchEdit), MAKELPARAM(TRUE, 0)); } + std::vector imgIds{ IDI_FUNCLIST_ROOT, IDI_FUNCLIST_NODE, IDI_FUNCLIST_LEAF }; _treeView.init(_hInst, _hSelf, IDC_LIST_FUNCLIST); - _treeView.setImageList(CX_BITMAP, CY_BITMAP, 3, IDI_FUNCLIST_ROOT, IDI_FUNCLIST_NODE, IDI_FUNCLIST_LEAF); + _treeView.setImageList(imgIds); _treeViewSearchResult.init(_hInst, _hSelf, IDC_LIST_FUNCLIST_AUX); - _treeViewSearchResult.setImageList(CX_BITMAP, 3, CY_BITMAP, IDI_FUNCLIST_ROOT, IDI_FUNCLIST_NODE, IDI_FUNCLIST_LEAF); + _treeViewSearchResult.setImageList(imgIds); _treeView.makeLabelEditable(false); diff --git a/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.cpp b/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.cpp index 18946f0cd..4b71a6954 100644 --- a/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.cpp +++ b/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.cpp @@ -77,8 +77,9 @@ intptr_t CALLBACK ProjectPanel::run_dlgProc(UINT message, WPARAM wParam, LPARAM SendMessage(_hToolbarMenu, TB_AUTOSIZE, 0, 0); ShowWindow(_hToolbarMenu, SW_SHOW); + std::vector imgIds{ IDI_PROJECT_WORKSPACE, IDI_PROJECT_WORKSPACEDIRTY, IDI_PROJECT_PROJECT, IDI_PROJECT_FOLDEROPEN, IDI_PROJECT_FOLDERCLOSE, IDI_PROJECT_FILE, IDI_PROJECT_FILEINVALID }; _treeView.init(_hInst, _hSelf, ID_PROJECTTREEVIEW); - _treeView.setImageList(CX_BITMAP, CY_BITMAP, 7, IDI_PROJECT_WORKSPACE, IDI_PROJECT_WORKSPACEDIRTY, IDI_PROJECT_PROJECT, IDI_PROJECT_FOLDEROPEN, IDI_PROJECT_FOLDERCLOSE, IDI_PROJECT_FILE, IDI_PROJECT_FILEINVALID); + _treeView.setImageList(imgIds); _treeView.addCanNotDropInList(INDEX_LEAF); _treeView.addCanNotDropInList(INDEX_LEAF_INVALID); diff --git a/PowerEditor/src/WinControls/TreeView/TreeView.cpp b/PowerEditor/src/WinControls/TreeView/TreeView.cpp index 2c42f931f..d14774b42 100644 --- a/PowerEditor/src/WinControls/TreeView/TreeView.cpp +++ b/PowerEditor/src/WinControls/TreeView/TreeView.cpp @@ -21,7 +21,8 @@ using namespace std; -#define CY_ITEMHEIGHT 18 +constexpr int g_treeviewItemPadding = 1; +constexpr int g_treeviewIcoSize = 16; void TreeView::init(HINSTANCE hInst, HWND parent, int treeViewID) { @@ -47,11 +48,11 @@ void TreeView::init(HINSTANCE hInst, HWND parent, int treeViewID) NppDarkMode::setTreeViewStyle(_hSelf); - int itemHeight = NppParameters::getInstance()._dpiManager.scaleY(CY_ITEMHEIGHT); + const int itemHeight = DPIManagerV2::scale(g_treeviewIcoSize + g_treeviewItemPadding * 2, _hParent); TreeView_SetItemHeight(_hSelf, itemHeight); - ::SetWindowLongPtr(_hSelf, GWLP_USERDATA, reinterpret_cast(this)); - _defaultProc = reinterpret_cast(::SetWindowLongPtr(_hSelf, GWLP_WNDPROC, reinterpret_cast(staticProc))); + constexpr UINT_PTR idSubclassTreeview = 1; + ::SetWindowSubclass(_hSelf, staticProc, idSubclassTreeview, reinterpret_cast(this)); } @@ -95,7 +96,23 @@ LRESULT TreeView::runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) } } } - return ::CallWindowProc(_defaultProc, hwnd, Message, wParam, lParam); + return ::DefSubclassProc(hwnd, Message, wParam, lParam); +} + +LRESULT TreeView::staticProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData) +{ + switch (Message) + { + case WM_NCDESTROY: + { + ::RemoveWindowSubclass(hwnd, staticProc, uIdSubclass); + break; + } + + default: + break; + } + return reinterpret_cast(dwRefData)->runProc(hwnd, Message, wParam, lParam); } void TreeView::makeLabelEditable(bool toBeEnabled) @@ -264,43 +281,33 @@ HTREEITEM TreeView::searchSubItemByName(const wchar_t *itemName, HTREEITEM hPare return nullptr; } -BOOL TreeView::setImageList(int w, int h, int nbImage, int image_id, ...) +bool TreeView::setImageList(std::vector imageIds, int imgSize) { - HBITMAP hbmp; - COLORREF maskColour = RGB(192, 192, 192); + const int nbImage = static_cast(imageIds.size()); + if (imgSize <= 0) + imgSize = g_treeviewIcoSize; // Creation of image list - int bmDpiDynW = NppParameters::getInstance()._dpiManager.scaleX(w); - int bmDpiDynH = NppParameters::getInstance()._dpiManager.scaleY(h); - if ((_hImaLst = ImageList_Create(bmDpiDynW, bmDpiDynH, ILC_COLOR32 | ILC_MASK, nbImage, 0)) == NULL) - return FALSE; + int dpiImgSize = DPIManagerV2::scale(imgSize, _hParent); + if ((_hImaLst = ::ImageList_Create(dpiImgSize, dpiImgSize, ILC_COLOR32 | ILC_MASK, nbImage, 0)) == nullptr) + return false; - // Add the bmp in the list - va_list argLst; - va_start(argLst, image_id); - int imageID = image_id; - - for (int i = 0; i < nbImage; i++) + // Add the ico into the list + for (const int& id : imageIds) { - if (i > 0) - imageID = va_arg(argLst, int); + HICON hIcon = nullptr; + DPIManagerV2::loadIcon(_hInst, MAKEINTRESOURCE(id), dpiImgSize, dpiImgSize, &hIcon, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT); + if (hIcon == nullptr) + return false; - hbmp = (HBITMAP)::LoadImage(_hInst, MAKEINTRESOURCE(imageID), IMAGE_BITMAP, bmDpiDynW, bmDpiDynH, 0); - if (hbmp == NULL) - { - va_end(argLst); - return FALSE; - } - ImageList_AddMasked(_hImaLst, hbmp, maskColour); - DeleteObject(hbmp); + ::ImageList_AddIcon(_hImaLst, hIcon); + ::DestroyIcon(hIcon); } - va_end(argLst); // Set image list to the tree view TreeView_SetImageList(_hSelf, _hImaLst, TVSIL_NORMAL); - //TreeView_SetImageList(_treeViewSearchResult.getHSelf(), _hTreeViewImaLst, TVSIL_NORMAL); - return TRUE; + return true; } void TreeView::cleanSubEntries(HTREEITEM hTreeItem) diff --git a/PowerEditor/src/WinControls/TreeView/TreeView.h b/PowerEditor/src/WinControls/TreeView/TreeView.h index 046312f5c..231a974f5 100644 --- a/PowerEditor/src/WinControls/TreeView/TreeView.h +++ b/PowerEditor/src/WinControls/TreeView/TreeView.h @@ -21,9 +21,6 @@ #include "Window.h" #include "Common.h" -#define CX_BITMAP 16 -#define CY_BITMAP 16 - struct TreeStateNode { std::wstring _label; std::wstring _extraData; @@ -119,16 +116,13 @@ public: bool searchLeafAndBuildTree(const TreeView & tree2Build, const std::wstring & text2Search, int index2Search); void sort(HTREEITEM hTreeItem, bool isRecusive); void customSorting(HTREEITEM hTreeItem, PFNTVCOMPARE sortingCallbackFunc, LPARAM lParam, bool isRecursive); - BOOL setImageList(int w, int h, int nbImage, int image_id, ...); + bool setImageList(std::vector imageIds, int imgSize = 0); protected: HIMAGELIST _hImaLst = nullptr; - WNDPROC _defaultProc = nullptr; LRESULT runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam); - static LRESULT CALLBACK staticProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) { - return (((TreeView *)(::GetWindowLongPtr(hwnd, GWLP_USERDATA)))->runProc(hwnd, Message, wParam, lParam)); - }; + static LRESULT CALLBACK staticProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData); void cleanSubEntries(HTREEITEM hTreeItem); void dupTree(HTREEITEM hTree2Dup, HTREEITEM hParentItem); diff --git a/PowerEditor/src/icons/standard/panels/tabbar/projectPanel.ico b/PowerEditor/src/icons/standard/panels/tabbar/projectPanel.ico index 1df3d1897..2e71fb4f7 100644 Binary files a/PowerEditor/src/icons/standard/panels/tabbar/projectPanel.ico and b/PowerEditor/src/icons/standard/panels/tabbar/projectPanel.ico differ diff --git a/PowerEditor/src/icons/standard/panels/treeview/fb_root_close.bmp b/PowerEditor/src/icons/standard/panels/treeview/fb_root_close.bmp deleted file mode 100644 index 5b57f9ad6..000000000 Binary files a/PowerEditor/src/icons/standard/panels/treeview/fb_root_close.bmp and /dev/null differ diff --git a/PowerEditor/src/icons/standard/panels/treeview/fb_root_close.ico b/PowerEditor/src/icons/standard/panels/treeview/fb_root_close.ico new file mode 100644 index 000000000..c3a218c72 Binary files /dev/null and b/PowerEditor/src/icons/standard/panels/treeview/fb_root_close.ico differ diff --git a/PowerEditor/src/icons/standard/panels/treeview/fb_root_open.bmp b/PowerEditor/src/icons/standard/panels/treeview/fb_root_open.bmp deleted file mode 100644 index 56753ae6f..000000000 Binary files a/PowerEditor/src/icons/standard/panels/treeview/fb_root_open.bmp and /dev/null differ diff --git a/PowerEditor/src/icons/standard/panels/treeview/fb_root_open.ico b/PowerEditor/src/icons/standard/panels/treeview/fb_root_open.ico new file mode 100644 index 000000000..e8092430c Binary files /dev/null and b/PowerEditor/src/icons/standard/panels/treeview/fb_root_open.ico differ diff --git a/PowerEditor/src/icons/standard/panels/treeview/funcList_leaf.bmp b/PowerEditor/src/icons/standard/panels/treeview/funcList_leaf.bmp deleted file mode 100644 index 0ff2ba6b7..000000000 Binary files a/PowerEditor/src/icons/standard/panels/treeview/funcList_leaf.bmp and /dev/null differ diff --git a/PowerEditor/src/icons/standard/panels/treeview/funcList_leaf.ico b/PowerEditor/src/icons/standard/panels/treeview/funcList_leaf.ico new file mode 100644 index 000000000..635883619 Binary files /dev/null and b/PowerEditor/src/icons/standard/panels/treeview/funcList_leaf.ico differ diff --git a/PowerEditor/src/icons/standard/panels/treeview/funcList_node.bmp b/PowerEditor/src/icons/standard/panels/treeview/funcList_node.bmp deleted file mode 100644 index c35f6e4d8..000000000 Binary files a/PowerEditor/src/icons/standard/panels/treeview/funcList_node.bmp and /dev/null differ diff --git a/PowerEditor/src/icons/standard/panels/treeview/funcList_node.ico b/PowerEditor/src/icons/standard/panels/treeview/funcList_node.ico new file mode 100644 index 000000000..2d9bee1dd Binary files /dev/null and b/PowerEditor/src/icons/standard/panels/treeview/funcList_node.ico differ diff --git a/PowerEditor/src/icons/standard/panels/treeview/project_file.bmp b/PowerEditor/src/icons/standard/panels/treeview/project_file.bmp deleted file mode 100644 index 17ff75e0c..000000000 Binary files a/PowerEditor/src/icons/standard/panels/treeview/project_file.bmp and /dev/null differ diff --git a/PowerEditor/src/icons/standard/panels/treeview/project_file.ico b/PowerEditor/src/icons/standard/panels/treeview/project_file.ico new file mode 100644 index 000000000..f6b10d5e9 Binary files /dev/null and b/PowerEditor/src/icons/standard/panels/treeview/project_file.ico differ diff --git a/PowerEditor/src/icons/standard/panels/treeview/project_file_invalid.bmp b/PowerEditor/src/icons/standard/panels/treeview/project_file_invalid.bmp deleted file mode 100644 index a6377ffd1..000000000 Binary files a/PowerEditor/src/icons/standard/panels/treeview/project_file_invalid.bmp and /dev/null differ diff --git a/PowerEditor/src/icons/standard/panels/treeview/project_file_invalid.ico b/PowerEditor/src/icons/standard/panels/treeview/project_file_invalid.ico new file mode 100644 index 000000000..8c884a2b9 Binary files /dev/null and b/PowerEditor/src/icons/standard/panels/treeview/project_file_invalid.ico differ diff --git a/PowerEditor/src/icons/standard/panels/treeview/project_folder_close.bmp b/PowerEditor/src/icons/standard/panels/treeview/project_folder_close.bmp deleted file mode 100644 index a00d454c8..000000000 Binary files a/PowerEditor/src/icons/standard/panels/treeview/project_folder_close.bmp and /dev/null differ diff --git a/PowerEditor/src/icons/standard/panels/treeview/project_folder_close.ico b/PowerEditor/src/icons/standard/panels/treeview/project_folder_close.ico new file mode 100644 index 000000000..2a445b83f Binary files /dev/null and b/PowerEditor/src/icons/standard/panels/treeview/project_folder_close.ico differ diff --git a/PowerEditor/src/icons/standard/panels/treeview/project_folder_open.bmp b/PowerEditor/src/icons/standard/panels/treeview/project_folder_open.bmp deleted file mode 100644 index 5aae97e6b..000000000 Binary files a/PowerEditor/src/icons/standard/panels/treeview/project_folder_open.bmp and /dev/null differ diff --git a/PowerEditor/src/icons/standard/panels/treeview/project_folder_open.ico b/PowerEditor/src/icons/standard/panels/treeview/project_folder_open.ico new file mode 100644 index 000000000..584cbc013 Binary files /dev/null and b/PowerEditor/src/icons/standard/panels/treeview/project_folder_open.ico differ diff --git a/PowerEditor/src/icons/standard/panels/treeview/project_root.bmp b/PowerEditor/src/icons/standard/panels/treeview/project_root.bmp deleted file mode 100644 index f47dbc553..000000000 Binary files a/PowerEditor/src/icons/standard/panels/treeview/project_root.bmp and /dev/null differ diff --git a/PowerEditor/src/icons/standard/panels/treeview/project_root.ico b/PowerEditor/src/icons/standard/panels/treeview/project_root.ico new file mode 100644 index 000000000..d783acbb9 Binary files /dev/null and b/PowerEditor/src/icons/standard/panels/treeview/project_root.ico differ diff --git a/PowerEditor/src/icons/standard/panels/treeview/project_work_space.bmp b/PowerEditor/src/icons/standard/panels/treeview/project_work_space.bmp deleted file mode 100644 index 13d5eacc9..000000000 Binary files a/PowerEditor/src/icons/standard/panels/treeview/project_work_space.bmp and /dev/null differ diff --git a/PowerEditor/src/icons/standard/panels/treeview/project_work_space.ico b/PowerEditor/src/icons/standard/panels/treeview/project_work_space.ico new file mode 100644 index 000000000..702ff8dde Binary files /dev/null and b/PowerEditor/src/icons/standard/panels/treeview/project_work_space.ico differ diff --git a/PowerEditor/src/icons/standard/panels/treeview/project_work_space_dirty.bmp b/PowerEditor/src/icons/standard/panels/treeview/project_work_space_dirty.bmp deleted file mode 100644 index 7685aba0c..000000000 Binary files a/PowerEditor/src/icons/standard/panels/treeview/project_work_space_dirty.bmp and /dev/null differ diff --git a/PowerEditor/src/icons/standard/panels/treeview/project_work_space_dirty.ico b/PowerEditor/src/icons/standard/panels/treeview/project_work_space_dirty.ico new file mode 100644 index 000000000..83a2aff6e Binary files /dev/null and b/PowerEditor/src/icons/standard/panels/treeview/project_work_space_dirty.ico differ