INT_PTR CALLBACK DebugInfoDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM /*lParam*/) { switch (message) { case WM_INITDIALOG: { // Notepad++ version _debugInfoStr = NOTEPAD_PLUS_VERSION; _debugInfoStr += TEXT("\r\n"); // Build time _debugInfoStr += TEXT("Build time : "); generic_string buildTime; WcharMbcsConvertor *wmc = WcharMbcsConvertor::getInstance(); buildTime += wmc->char2wchar(__DATE__, CP_ACP); buildTime += TEXT(" - "); buildTime += wmc->char2wchar(__TIME__, CP_ACP); _debugInfoStr += buildTime; _debugInfoStr += TEXT("\r\n"); // Binary path _debugInfoStr += TEXT("Path : "); TCHAR nppFullPath[MAX_PATH]; ::GetModuleFileName(NULL, nppFullPath, MAX_PATH); _debugInfoStr += nppFullPath; _debugInfoStr += TEXT("\r\n"); // Administrator mode _debugInfoStr += TEXT("Admin mode : "); _debugInfoStr += (_isAdmin ? TEXT("ON") : TEXT("OFF")); _debugInfoStr += TEXT("\r\n"); // local conf _debugInfoStr += TEXT("Local Conf mode : "); bool doLocalConf = (NppParameters::getInstance())->isLocal(); _debugInfoStr += (doLocalConf ? TEXT("ON") : TEXT("OFF")); _debugInfoStr += TEXT("\r\n"); // OS version _debugInfoStr += TEXT("OS : "); _debugInfoStr += (NppParameters::getInstance())->getWinVersionStr(); _debugInfoStr += TEXT("\r\n"); // Plugins _debugInfoStr += TEXT("Plugins : "); _debugInfoStr += _loadedPlugins.length() == 0 ? TEXT("none") : _loadedPlugins; _debugInfoStr += TEXT("\r\n"); ::SetDlgItemText(_hSelf, IDC_DEBUGINFO_EDIT, _debugInfoStr.c_str()); _copyToClipboardLink.init(_hInst, _hSelf); _copyToClipboardLink.create(::GetDlgItem(_hSelf, IDC_DEBUGINFO_COPYLINK), IDC_DEBUGINFO_COPYLINK); getClientRect(_rc); return TRUE; } case WM_COMMAND: { switch (wParam) { case IDCANCEL: case IDOK: display(false); return TRUE; case IDC_DEBUGINFO_COPYLINK: { if ((GetKeyState(VK_LBUTTON) & 0x100) != 0) { // Visual effect ::SendDlgItemMessage(_hSelf, IDC_DEBUGINFO_EDIT, EM_SETSEL, 0, _debugInfoStr.length() - 1); // Copy to clipboard str2Clipboard(_debugInfoStr, _hSelf); } return TRUE; } default: break; } } case WM_DESTROY: { return TRUE; } } return FALSE; }
void FileBrowser::popupMenuCmd(int cmdID) { // get selected item handle HTREEITEM selectedNode = _treeView.getSelection(); switch (cmdID) { // // Toolbar menu commands // case IDM_FILEBROWSER_REMOVEROOTFOLDER: { if (not selectedNode) return; generic_string *rootPath = (generic_string *)_treeView.getItemParam(selectedNode); if (_treeView.getParent(selectedNode) != nullptr || rootPath == nullptr) return; size_t nbFolderUpdaters = _folderUpdaters.size(); for (size_t i = 0; i < nbFolderUpdaters; ++i) { if (_folderUpdaters[i]->_rootFolder._rootPath == *rootPath) { _folderUpdaters[i]->stopWatcher(); _folderUpdaters.erase(_folderUpdaters.begin() + i); _treeView.removeItem(selectedNode); break; } } } break; case IDM_FILEBROWSER_EXPLORERHERE: { if (not selectedNode) return; generic_string path = getNodePath(selectedNode); if (::PathFileExists(path.c_str())) { TCHAR cmdStr[1024]; wsprintf(cmdStr, TEXT("explorer /select,%s"), path.c_str()); Command cmd(cmdStr); cmd.run(nullptr); } } break; case IDM_FILEBROWSER_CMDHERE: { if (not selectedNode) return; if (getNodeType(selectedNode) == browserNodeType_file) selectedNode = _treeView.getParent(selectedNode); generic_string path = getNodePath(selectedNode); if (::PathFileExists(path.c_str())) { TCHAR cmdStr[1024]; wsprintf(cmdStr, TEXT("cmd /K cd /d %s"), path.c_str()); Command cmd(cmdStr); cmd.run(nullptr); } } break; case IDM_FILEBROWSER_COPYEPATH: { if (not selectedNode) return; generic_string path = getNodePath(selectedNode); str2Clipboard(path, _hParent); } break; case IDM_FILEBROWSER_OPENINNPP: { openSelectFile(); } break; case IDM_FILEBROWSER_REMOVEALLROOTS: { for (int i = _folderUpdaters.size() - 1; i >= 0; --i) { _folderUpdaters[i]->stopWatcher(); HTREEITEM root = getRootFromFullPath(_folderUpdaters[i]->_rootFolder._rootPath); if (root) _treeView.removeItem(root); _folderUpdaters.erase(_folderUpdaters.begin() + i); } } break; case IDM_FILEBROWSER_ADDROOT: { generic_string folderPath = folderBrowser(_hParent, TEXT("Select a folder to add in Folder as Workspace panel")); if (not folderPath.empty()) { addRootFolder(folderPath); } } break; case IDM_FILEBROWSER_SHELLEXECUTE: { if (not selectedNode) return; generic_string path = getNodePath(selectedNode); if (::PathFileExists(path.c_str())) ::ShellExecute(NULL, TEXT("open"), path.c_str(), NULL, NULL, SW_SHOWNORMAL); } break; /* case IDM_FILEBROWSER_RENAME : TreeView_EditLabel(_treeView.getHSelf(), hTreeItem); break; case IDM_FILEBROWSER_DELETEFOLDER : { HTREEITEM parent = _treeView.getParent(hTreeItem); if (_treeView.getChildFrom(hTreeItem) != NULL) { TCHAR str2display[MAX_PATH] = TEXT("All the sub-items will be removed.\rAre you sure you want to remove this folder from the project?"); if (::MessageBox(_hSelf, str2display, TEXT("Remove folder from project"), MB_YESNO) == IDYES) { _treeView.removeItem(hTreeItem); //_folderUpdaters[0].stopWatcher(); } } else { _treeView.removeItem(hTreeItem); } if (getNodeType(parent) == browserNodeType_folder) _treeView.setItemImage(parent, INDEX_CLOSED_NODE, INDEX_CLOSED_NODE); } break; case IDM_FILEBROWSER_DELETEFILE : { HTREEITEM parent = _treeView.getParent(hTreeItem); TCHAR str2display[MAX_PATH] = TEXT("Are you sure you want to remove this file from the project?"); if (::MessageBox(_hSelf, str2display, TEXT("Remove file from project"), MB_YESNO) == IDYES) { _treeView.removeItem(hTreeItem); if (getNodeType(parent) == browserNodeType_folder) _treeView.setItemImage(parent, INDEX_CLOSED_NODE, INDEX_CLOSED_NODE); } } break; */ } }