BOOL CMainFrame::InitRibbonTheme() { std::wstring themeName(getUIOptions()->GetString(L"themeName", L"OFFICE2010SILVER.INI")); std::wstring themeDll(getUIOptions()->GetString(L"themeDll", L"Office2010.dll")); getUIOptions()->SetString(L"themeDll", themeDll.c_str()); getUIOptions()->SetString(L"themeName", themeName.c_str()); themeDll = getTranslationsPath((L"../" + themeDll).c_str()); BOOL ret = XTPResourceImages()->SetHandle(themeDll.c_str(), themeName.c_str()); if (!ret) { std::wstring dllfile(getTranslationsPath(L"../Office2007.dll")); ret = XTPResourceImages()->SetHandle(dllfile.c_str(), L"OFFICE2007BLUE.INI"); if (ret) { getUIOptions()->SetString(L"themeDll", L"Office2007.dll"); getUIOptions()->SetString(L"themeName", L"OFFICE2007BLUE.INI"); } } if (ret) { XTPPaintManager()->SetTheme(xtpThemeRibbon); m_cmdbars->SetTheme(xtpThemeRibbon); } else { CString msg; msg.Format(L"Need Office2010.dll or Office2007.dll in the translations folder: %s.\n", getTranslationsPath(L"..").c_str()); ASSERT_MESSAGE(0, w2a(msg).c_str()); } return ret; }
void Notepad_plus_Window::init(HINSTANCE hInst, HWND parent, const TCHAR *cmdLine, CmdLineParams *cmdLineParams) { time_t timestampBegin = 0; if (cmdLineParams->_showLoadingTime) timestampBegin = time(NULL); Window::init(hInst, parent); WNDCLASS nppClass; nppClass.style = CS_BYTEALIGNWINDOW | CS_DBLCLKS; nppClass.lpfnWndProc = Notepad_plus_Proc; nppClass.cbClsExtra = 0; nppClass.cbWndExtra = 0; nppClass.hInstance = _hInst; nppClass.hIcon = ::LoadIcon(hInst, MAKEINTRESOURCE(IDI_M30ICON)); nppClass.hCursor = ::LoadCursor(NULL, IDC_ARROW); nppClass.hbrBackground = ::CreateSolidBrush(::GetSysColor(COLOR_MENU)); nppClass.lpszMenuName = MAKEINTRESOURCE(IDR_M30_MENU); nppClass.lpszClassName = _className; _isPrelaunch = cmdLineParams->_isPreLaunch; if (!::RegisterClass(&nppClass)) { throw std::runtime_error("Notepad_plus_Window::init : RegisterClass() function failed"); } RECT workAreaRect; ::SystemParametersInfo(SPI_GETWORKAREA, 0, &workAreaRect, 0); NppParameters *pNppParams = NppParameters::getInstance(); const NppGUI & nppGUI = pNppParams->getNppGUI(); if (cmdLineParams->_isNoPlugin) _notepad_plus_plus_core._pluginsManager.disable(); _hSelf = ::CreateWindowEx( WS_EX_ACCEPTFILES | (_notepad_plus_plus_core._nativeLangSpeaker.isRTL()?WS_EX_LAYOUTRTL:0),\ _className,\ TEXT("Notepad++"),\ WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,\ // CreateWindowEx bug : set all 0 to walk around the pb 0, 0, 0, 0,\ _hParent,\ NULL,\ _hInst,\ (LPVOID)this); // pass the ptr of this instantiated object // for retrieve it in Notepad_plus_Proc from // the CREATESTRUCT.lpCreateParams afterward. if (!_hSelf) { throw std::runtime_error("Notepad_plus_Window::init : CreateWindowEx() function return null"); } _notepad_plus_plus_core.staticCheckMenuAndTB(); gNppHWND = _hSelf; // In setting the startup window position, take into account that the last-saved // position might have assumed a second monitor that's no longer available. POINT newUpperLeft; newUpperLeft.x = nppGUI._appPos.left + workAreaRect.left; newUpperLeft.y = nppGUI._appPos.top + workAreaRect.top; // GetSystemMetrics does not support the multi-monitor values on Windows NT and Windows 95. winVer winVersion = pNppParams->getWinVersion(); if ((winVersion != WV_95) && (winVersion != WV_NT)) { int margin = ::GetSystemMetrics(SM_CYSMCAPTION); if (newUpperLeft.x > ::GetSystemMetrics(SM_CXVIRTUALSCREEN)-margin) newUpperLeft.x = workAreaRect.right - nppGUI._appPos.right; if (newUpperLeft.x + nppGUI._appPos.right < ::GetSystemMetrics(SM_XVIRTUALSCREEN)+margin) newUpperLeft.x = workAreaRect.left; if (newUpperLeft.y > ::GetSystemMetrics(SM_CYVIRTUALSCREEN)-margin) newUpperLeft.y = workAreaRect.bottom - nppGUI._appPos.bottom; if (newUpperLeft.y + nppGUI._appPos.bottom < ::GetSystemMetrics(SM_YVIRTUALSCREEN)+margin) newUpperLeft.y = workAreaRect.top; } if (cmdLineParams->isPointValid()) ::MoveWindow(_hSelf, cmdLineParams->_point.x, cmdLineParams->_point.y, nppGUI._appPos.right, nppGUI._appPos.bottom, TRUE); else ::MoveWindow(_hSelf, newUpperLeft.x, newUpperLeft.y, nppGUI._appPos.right, nppGUI._appPos.bottom, TRUE); if (nppGUI._tabStatus & TAB_MULTILINE) ::SendMessage(_hSelf, WM_COMMAND, IDM_VIEW_DRAWTABBAR_MULTILINE, 0); if (!nppGUI._menuBarShow) ::SetMenu(_hSelf, NULL); if (cmdLineParams->_isNoTab || (nppGUI._tabStatus & TAB_HIDE)) { ::SendMessage(_hSelf, NPPM_HIDETABBAR, 0, TRUE); } if (cmdLineParams->_alwaysOnTop) { ::SendMessage(_hSelf, WM_COMMAND, IDM_VIEW_ALWAYSONTOP, 0); } _notepad_plus_plus_core._rememberThisSession = !cmdLineParams->_isNoSession; if (nppGUI._rememberLastSession && !cmdLineParams->_isNoSession) { _notepad_plus_plus_core.loadLastSession(); } if (!cmdLineParams->_isPreLaunch) { if (cmdLineParams->isPointValid()) ::ShowWindow(_hSelf, SW_SHOW); else ::ShowWindow(_hSelf, nppGUI._isMaximized?SW_MAXIMIZE:SW_SHOW); } else { _notepad_plus_plus_core._pTrayIco = new trayIconControler(_hSelf, IDI_M30ICON, IDC_MINIMIZED_TRAY, ::LoadIcon(_hInst, MAKEINTRESOURCE(IDI_M30ICON)), TEXT("")); _notepad_plus_plus_core._pTrayIco->doTrayIcon(ADD); } if (cmdLine) { _notepad_plus_plus_core.loadCommandlineParams(cmdLine, cmdLineParams); } vector<generic_string> fileNames; vector<generic_string> patterns; patterns.push_back(TEXT("*.xml")); generic_string nppDir = pNppParams->getNppPath(); #ifdef UNICODE LocalizationSwitcher & localizationSwitcher = pNppParams->getLocalizationSwitcher(); wstring localizationDir = nppDir; PathAppend(localizationDir, TEXT("localization\\")); _notepad_plus_plus_core.getMatchedFileNames(localizationDir.c_str(), patterns, fileNames, false, false); for (size_t i = 0 ; i < fileNames.size() ; i++) { localizationSwitcher.addLanguageFromXml(fileNames[i].c_str()); } #endif fileNames.clear(); ThemeSwitcher & themeSwitcher = pNppParams->getThemeSwitcher(); // Get themes from both npp install themes dir and app data themes dir with the per user // overriding default themes of the same name. generic_string themeDir; if (pNppParams->getAppDataNppDir() && pNppParams->getAppDataNppDir()[0]) { themeDir = pNppParams->getAppDataNppDir(); PathAppend(themeDir, TEXT("themes\\")); _notepad_plus_plus_core.getMatchedFileNames(themeDir.c_str(), patterns, fileNames, false, false); for (size_t i = 0 ; i < fileNames.size() ; i++) { themeSwitcher.addThemeFromXml(fileNames[i].c_str()); } } fileNames.clear(); themeDir.clear(); themeDir = nppDir.c_str(); // <- should use the pointer to avoid the constructor of copy PathAppend(themeDir, TEXT("themes\\")); _notepad_plus_plus_core.getMatchedFileNames(themeDir.c_str(), patterns, fileNames, false, false); for (size_t i = 0 ; i < fileNames.size() ; i++) { generic_string themeName( themeSwitcher.getThemeFromXmlFileName(fileNames[i].c_str()) ); if (! themeSwitcher.themeNameExists(themeName.c_str()) ) { themeSwitcher.addThemeFromXml(fileNames[i].c_str()); } } // Notify plugins that Notepad++ is ready SCNotification scnN; scnN.nmhdr.code = NPPN_READY; scnN.nmhdr.hwndFrom = _hSelf; scnN.nmhdr.idFrom = 0; _notepad_plus_plus_core._pluginsManager.notify(&scnN); if (cmdLineParams->_showLoadingTime) { time_t timestampEnd = time(NULL); double loadTime = difftime(timestampEnd, timestampBegin); char dest[256]; sprintf(dest, "Loading time : %.2lf seconds", loadTime); ::MessageBoxA(NULL, dest, "", MB_OK); } }
void Notepad_plus_Window::init(HINSTANCE hInst, HWND parent, const TCHAR *cmdLine, CmdLineParams *cmdLineParams) { time_t timestampBegin = 0; if (cmdLineParams->_showLoadingTime) timestampBegin = time(NULL); Window::init(hInst, parent); WNDCLASS nppClass; nppClass.style = CS_BYTEALIGNWINDOW | CS_DBLCLKS; nppClass.lpfnWndProc = Notepad_plus_Proc; nppClass.cbClsExtra = 0; nppClass.cbWndExtra = 0; nppClass.hInstance = _hInst; nppClass.hIcon = ::LoadIcon(hInst, MAKEINTRESOURCE(IDI_M30ICON)); nppClass.hCursor = ::LoadCursor(NULL, IDC_ARROW); nppClass.hbrBackground = ::CreateSolidBrush(::GetSysColor(COLOR_MENU)); nppClass.lpszMenuName = MAKEINTRESOURCE(IDR_M30_MENU); nppClass.lpszClassName = _className; _isPrelaunch = cmdLineParams->_isPreLaunch; if (!::RegisterClass(&nppClass)) { throw std::runtime_error("Notepad_plus_Window::init : RegisterClass() function failed"); } RECT workAreaRect; ::SystemParametersInfo(SPI_GETWORKAREA, 0, &workAreaRect, 0); NppParameters *pNppParams = NppParameters::getInstance(); NppGUI & nppGUI = (NppGUI &)pNppParams->getNppGUI(); if (cmdLineParams->_isNoPlugin) _notepad_plus_plus_core._pluginsManager.disable(); _hSelf = ::CreateWindowEx( WS_EX_ACCEPTFILES | (_notepad_plus_plus_core._nativeLangSpeaker.isRTL()?WS_EX_LAYOUTRTL:0),\ _className,\ TEXT("Notepad++"),\ WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,\ // CreateWindowEx bug : set all 0 to walk around the pb 0, 0, 0, 0,\ _hParent,\ NULL,\ _hInst,\ (LPVOID)this); // pass the ptr of this instantiated object // for retrieve it in Notepad_plus_Proc from // the CREATESTRUCT.lpCreateParams afterward. if (!_hSelf) { throw std::runtime_error("Notepad_plus_Window::init : CreateWindowEx() function return null"); } _notepad_plus_plus_core.staticCheckMenuAndTB(); gNppHWND = _hSelf; if (cmdLineParams->isPointValid()) ::MoveWindow(_hSelf, cmdLineParams->_point.x, cmdLineParams->_point.y, nppGUI._appPos.right, nppGUI._appPos.bottom, TRUE); else { WINDOWPLACEMENT posInfo; posInfo.length = sizeof(WINDOWPLACEMENT); posInfo.flags = 0; if(_isPrelaunch) posInfo.showCmd = SW_HIDE; else posInfo.showCmd = nppGUI._isMaximized?SW_SHOWMAXIMIZED:SW_SHOWNORMAL; posInfo.ptMinPosition.x = (LONG)-1; posInfo.ptMinPosition.y = (LONG)-1; posInfo.ptMaxPosition.x = (LONG)-1; posInfo.ptMaxPosition.y = (LONG)-1; posInfo.rcNormalPosition.left = nppGUI._appPos.left; posInfo.rcNormalPosition.top = nppGUI._appPos.top; posInfo.rcNormalPosition.bottom = nppGUI._appPos.top + nppGUI._appPos.bottom; posInfo.rcNormalPosition.right = nppGUI._appPos.left + nppGUI._appPos.right; //SetWindowPlacement will take care of situations, where saved position was in no longer available monitor ::SetWindowPlacement(_hSelf,&posInfo); } if (nppGUI._tabStatus & TAB_MULTILINE) ::SendMessage(_hSelf, WM_COMMAND, IDM_VIEW_DRAWTABBAR_MULTILINE, 0); if (!nppGUI._menuBarShow) ::SetMenu(_hSelf, NULL); if (cmdLineParams->_isNoTab || (nppGUI._tabStatus & TAB_HIDE)) { ::SendMessage(_hSelf, NPPM_HIDETABBAR, 0, TRUE); } if (cmdLineParams->_alwaysOnTop) { ::SendMessage(_hSelf, WM_COMMAND, IDM_VIEW_ALWAYSONTOP, 0); } nppGUI._isCmdlineNosessionActivated = cmdLineParams->_isNoSession; if (nppGUI._rememberLastSession && !cmdLineParams->_isNoSession) { _notepad_plus_plus_core.loadLastSession(); } if (!cmdLineParams->_isPreLaunch) { if (cmdLineParams->isPointValid()) ::ShowWindow(_hSelf, SW_SHOW); else ::ShowWindow(_hSelf, nppGUI._isMaximized?SW_MAXIMIZE:SW_SHOW); } else { _notepad_plus_plus_core._pTrayIco = new trayIconControler(_hSelf, IDI_M30ICON, IDC_MINIMIZED_TRAY, ::LoadIcon(_hInst, MAKEINTRESOURCE(IDI_M30ICON)), TEXT("")); _notepad_plus_plus_core._pTrayIco->doTrayIcon(ADD); } if (cmdLine) { _notepad_plus_plus_core.loadCommandlineParams(cmdLine, cmdLineParams); } vector<generic_string> fileNames; vector<generic_string> patterns; patterns.push_back(TEXT("*.xml")); generic_string nppDir = pNppParams->getNppPath(); #ifdef UNICODE LocalizationSwitcher & localizationSwitcher = pNppParams->getLocalizationSwitcher(); wstring localizationDir = nppDir; PathAppend(localizationDir, TEXT("localization\\")); _notepad_plus_plus_core.getMatchedFileNames(localizationDir.c_str(), patterns, fileNames, false, false); for (size_t i = 0, len = fileNames.size(); i < len ; ++i) { localizationSwitcher.addLanguageFromXml(fileNames[i].c_str()); } #endif fileNames.clear(); ThemeSwitcher & themeSwitcher = pNppParams->getThemeSwitcher(); // Get themes from both npp install themes dir and app data themes dir with the per user // overriding default themes of the same name. generic_string themeDir; if (pNppParams->getAppDataNppDir() && pNppParams->getAppDataNppDir()[0]) { themeDir = pNppParams->getAppDataNppDir(); PathAppend(themeDir, TEXT("themes\\")); _notepad_plus_plus_core.getMatchedFileNames(themeDir.c_str(), patterns, fileNames, false, false); for (size_t i = 0, len = fileNames.size() ; i < len ; ++i) { themeSwitcher.addThemeFromXml(fileNames[i].c_str()); } } fileNames.clear(); themeDir.clear(); themeDir = nppDir.c_str(); // <- should use the pointer to avoid the constructor of copy PathAppend(themeDir, TEXT("themes\\")); _notepad_plus_plus_core.getMatchedFileNames(themeDir.c_str(), patterns, fileNames, false, false); for (size_t i = 0, len = fileNames.size(); i < len ; ++i) { generic_string themeName( themeSwitcher.getThemeFromXmlFileName(fileNames[i].c_str()) ); if (! themeSwitcher.themeNameExists(themeName.c_str()) ) { themeSwitcher.addThemeFromXml(fileNames[i].c_str()); } } for (size_t i = 0, len = _notepad_plus_plus_core._internalFuncIDs.size() ; i < len ; ++i) ::SendMessage(_hSelf, WM_COMMAND, _notepad_plus_plus_core._internalFuncIDs[i], 0); // Notify plugins that Notepad++ is ready SCNotification scnN; scnN.nmhdr.code = NPPN_READY; scnN.nmhdr.hwndFrom = _hSelf; scnN.nmhdr.idFrom = 0; _notepad_plus_plus_core._pluginsManager.notify(&scnN); if (cmdLineParams->_showLoadingTime) { time_t timestampEnd = time(NULL); double loadTime = difftime(timestampEnd, timestampBegin); char dest[256]; sprintf(dest, "Loading time : %.0lf seconds", loadTime); ::MessageBoxA(NULL, dest, "", MB_OK); } bool isSnapshotMode = nppGUI.isSnapshotMode(); if (isSnapshotMode) { _notepad_plus_plus_core.checkModifiedDocument(); // Lauch backup task _notepad_plus_plus_core.launchDocumentBackupTask(); } }
QColor StyleHelper::treeViewBackground() { QSettings st(PathResolve::themePath(themeName()) + "skin.ini"); return QColor(st.value("Category/Background", "#808080").toString()); }
QColor StyleHelper::listViewItemSeperator() { QSettings st(PathResolve::themePath(themeName()) + "skin.ini"); return QColor(st.value("Documents/Line", "#d9dcdd").toString()); }
QColor StyleHelper::listViewBackground() { QSettings st(PathResolve::themePath(themeName()) + "skin.ini"); return QColor(st.value("Documents/Background", "#ffffff").toString()); }
QColor StyleHelper::treeViewItemCategoryText() { QSettings st(PathResolve::themePath(themeName()) + "skin.ini"); return QColor(st.value("Category/ItemCategoryText", "#697882").toString()); }
const QString QgsApplication::activeThemePath() { return ":/images/themes/" + themeName() + "/"; }
void Notepad_plus_Window::init(HINSTANCE hInst, HWND parent, const TCHAR *cmdLine, CmdLineParams *cmdLineParams) { time_t timestampBegin = 0; if (cmdLineParams->_showLoadingTime) timestampBegin = time(NULL); Window::init(hInst, parent); WNDCLASS nppClass; nppClass.style = CS_BYTEALIGNWINDOW | CS_DBLCLKS; nppClass.lpfnWndProc = Notepad_plus_Proc; nppClass.cbClsExtra = 0; nppClass.cbWndExtra = 0; nppClass.hInstance = _hInst; nppClass.hIcon = ::LoadIcon(hInst, MAKEINTRESOURCE(IDI_M30ICON)); nppClass.hCursor = ::LoadCursor(NULL, IDC_ARROW); nppClass.hbrBackground = ::CreateSolidBrush(::GetSysColor(COLOR_MENU)); nppClass.lpszMenuName = MAKEINTRESOURCE(IDR_M30_MENU); nppClass.lpszClassName = _className; _isPrelaunch = cmdLineParams->_isPreLaunch; if (!::RegisterClass(&nppClass)) { throw std::runtime_error("Notepad_plus_Window::init : RegisterClass() function failed"); } NppParameters *pNppParams = NppParameters::getInstance(); NppGUI & nppGUI = const_cast<NppGUI &>(pNppParams->getNppGUI()); if (cmdLineParams->_isNoPlugin) _notepad_plus_plus_core._pluginsManager.disable(); _hSelf = ::CreateWindowEx( WS_EX_ACCEPTFILES | (_notepad_plus_plus_core._nativeLangSpeaker.isRTL()?WS_EX_LAYOUTRTL:0), _className, TEXT("Notepad++"), (WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN), // CreateWindowEx bug : set all 0 to walk around the pb 0, 0, 0, 0, _hParent, nullptr, _hInst, (LPVOID) this); // pass the ptr of this instantiated object // for retrieve it in Notepad_plus_Proc from // the CREATESTRUCT.lpCreateParams afterward. if (NULL == _hSelf) throw std::runtime_error("Notepad_plus_Window::init : CreateWindowEx() function return null"); PaintLocker paintLocker{_hSelf}; _notepad_plus_plus_core.staticCheckMenuAndTB(); gNppHWND = _hSelf; if (cmdLineParams->isPointValid()) { ::MoveWindow(_hSelf, cmdLineParams->_point.x, cmdLineParams->_point.y, nppGUI._appPos.right, nppGUI._appPos.bottom, TRUE); } else { WINDOWPLACEMENT posInfo; posInfo.length = sizeof(WINDOWPLACEMENT); posInfo.flags = 0; if (_isPrelaunch) posInfo.showCmd = SW_HIDE; else posInfo.showCmd = nppGUI._isMaximized ? SW_SHOWMAXIMIZED : SW_SHOWNORMAL; posInfo.ptMinPosition.x = (LONG)-1; posInfo.ptMinPosition.y = (LONG)-1; posInfo.ptMaxPosition.x = (LONG)-1; posInfo.ptMaxPosition.y = (LONG)-1; posInfo.rcNormalPosition.left = nppGUI._appPos.left; posInfo.rcNormalPosition.top = nppGUI._appPos.top; posInfo.rcNormalPosition.bottom = nppGUI._appPos.top + nppGUI._appPos.bottom; posInfo.rcNormalPosition.right = nppGUI._appPos.left + nppGUI._appPos.right; //SetWindowPlacement will take care of situations, where saved position was in no longer available monitor ::SetWindowPlacement(_hSelf,&posInfo); } if ((nppGUI._tabStatus & TAB_MULTILINE) != 0) ::SendMessage(_hSelf, WM_COMMAND, IDM_VIEW_DRAWTABBAR_MULTILINE, 0); if (!nppGUI._menuBarShow) ::SetMenu(_hSelf, NULL); if (cmdLineParams->_isNoTab || (nppGUI._tabStatus & TAB_HIDE)) { const int tabStatusOld = nppGUI._tabStatus; ::SendMessage(_hSelf, NPPM_HIDETABBAR, 0, TRUE); if (cmdLineParams->_isNoTab) { // Restore old settings when tab bar has been hidden from tab bar. nppGUI._tabStatus = tabStatusOld; } } if (cmdLineParams->_alwaysOnTop) ::SendMessage(_hSelf, WM_COMMAND, IDM_VIEW_ALWAYSONTOP, 0); nppGUI._isCmdlineNosessionActivated = cmdLineParams->_isNoSession; if (nppGUI._rememberLastSession && !cmdLineParams->_isNoSession) _notepad_plus_plus_core.loadLastSession(); if (not cmdLineParams->_isPreLaunch) { if (cmdLineParams->isPointValid()) ::ShowWindow(_hSelf, SW_SHOW); else ::ShowWindow(_hSelf, nppGUI._isMaximized ? SW_MAXIMIZE : SW_SHOW); } else { _notepad_plus_plus_core._pTrayIco = new trayIconControler(_hSelf, IDI_M30ICON, IDC_MINIMIZED_TRAY, ::LoadIcon(_hInst, MAKEINTRESOURCE(IDI_M30ICON)), TEXT("")); _notepad_plus_plus_core._pTrayIco->doTrayIcon(ADD); } if (cmdLine) _notepad_plus_plus_core.loadCommandlineParams(cmdLine, cmdLineParams); std::vector<generic_string> fileNames; std::vector<generic_string> patterns; patterns.push_back(TEXT("*.xml")); generic_string nppDir = pNppParams->getNppPath(); LocalizationSwitcher & localizationSwitcher = pNppParams->getLocalizationSwitcher(); std::wstring localizationDir = nppDir; PathAppend(localizationDir, TEXT("localization\\")); _notepad_plus_plus_core.getMatchedFileNames(localizationDir.c_str(), patterns, fileNames, false, false); for (size_t i = 0, len = fileNames.size(); i < len; ++i) localizationSwitcher.addLanguageFromXml(fileNames[i].c_str()); fileNames.clear(); ThemeSwitcher & themeSwitcher = pNppParams->getThemeSwitcher(); // Get themes from both npp install themes dir and app data themes dir with the per user // overriding default themes of the same name. generic_string themeDir; if (pNppParams->getAppDataNppDir() && pNppParams->getAppDataNppDir()[0]) { themeDir = pNppParams->getAppDataNppDir(); PathAppend(themeDir, TEXT("themes\\")); _notepad_plus_plus_core.getMatchedFileNames(themeDir.c_str(), patterns, fileNames, false, false); for (size_t i = 0, len = fileNames.size() ; i < len ; ++i) { themeSwitcher.addThemeFromXml(fileNames[i].c_str()); } } fileNames.clear(); themeDir.clear(); themeDir = nppDir.c_str(); // <- should use the pointer to avoid the constructor of copy PathAppend(themeDir, TEXT("themes\\")); _notepad_plus_plus_core.getMatchedFileNames(themeDir.c_str(), patterns, fileNames, false, false); for (size_t i = 0, len = fileNames.size(); i < len ; ++i) { generic_string themeName( themeSwitcher.getThemeFromXmlFileName(fileNames[i].c_str()) ); if (! themeSwitcher.themeNameExists(themeName.c_str()) ) { themeSwitcher.addThemeFromXml(fileNames[i].c_str()); } } for (size_t i = 0, len = _notepad_plus_plus_core._internalFuncIDs.size() ; i < len ; ++i) ::SendMessage(_hSelf, WM_COMMAND, _notepad_plus_plus_core._internalFuncIDs[i], 0); // Notify plugins that Notepad++ is ready SCNotification scnN; scnN.nmhdr.code = NPPN_READY; scnN.nmhdr.hwndFrom = _hSelf; scnN.nmhdr.idFrom = 0; _notepad_plus_plus_core._pluginsManager.notify(&scnN); if (!cmdLineParams->_easterEggName.empty()) { if (cmdLineParams->_quoteType == 0) // Easter Egg Name { int iQuote = _notepad_plus_plus_core.getQuoteIndexFrom(cmdLineParams->_easterEggName.c_str()); if (iQuote != -1) { _notepad_plus_plus_core.showQuoteFromIndex(iQuote); } } else if (cmdLineParams->_quoteType == 1) // command line quote { _userQuote = cmdLineParams->_easterEggName; _quoteParams.reset(); _quoteParams._quote = _userQuote.c_str(); _quoteParams._quoter = TEXT("Anonymous #999"); _quoteParams._shouldBeTrolling = false; _quoteParams._lang = cmdLineParams->_langType; if (cmdLineParams->_ghostTypingSpeed == 1) _quoteParams._speed = QuoteParams::slow; else if (cmdLineParams->_ghostTypingSpeed == 2) _quoteParams._speed = QuoteParams::rapid; else if (cmdLineParams->_ghostTypingSpeed == 3) _quoteParams._speed = QuoteParams::speedOfLight; _notepad_plus_plus_core.showQuote(&_quoteParams); } else if (cmdLineParams->_quoteType == 2) // content drom file { if (::PathFileExists(cmdLineParams->_easterEggName.c_str())) { std::string content = getFileContent(cmdLineParams->_easterEggName.c_str()); WcharMbcsConvertor *wmc = WcharMbcsConvertor::getInstance(); _userQuote = wmc->char2wchar(content.c_str(), SC_CP_UTF8); if (!_userQuote.empty()) { _quoteParams.reset(); _quoteParams._quote = _userQuote.c_str(); _quoteParams._quoter = TEXT("Anonymous #999"); _quoteParams._shouldBeTrolling = false; _quoteParams._lang = cmdLineParams->_langType; if (cmdLineParams->_ghostTypingSpeed == 1) _quoteParams._speed = QuoteParams::slow; else if (cmdLineParams->_ghostTypingSpeed == 2) _quoteParams._speed = QuoteParams::rapid; else if (cmdLineParams->_ghostTypingSpeed == 3) _quoteParams._speed = QuoteParams::speedOfLight; _notepad_plus_plus_core.showQuote(&_quoteParams); } } } } if (cmdLineParams->_showLoadingTime) { time_t timestampEnd = time(NULL); double loadTime = difftime(timestampEnd, timestampBegin); char dest[256]; sprintf(dest, "Loading time : %.0lf seconds", loadTime); ::MessageBoxA(NULL, dest, "", MB_OK); } bool isSnapshotMode = nppGUI.isSnapshotMode(); if (isSnapshotMode) { _notepad_plus_plus_core.checkModifiedDocument(false); // Lauch backup task _notepad_plus_plus_core.launchDocumentBackupTask(); } // Make this call later to take effect ::SendMessage(_hSelf, NPPM_INTERNAL_SETWORDCHARS, 0, 0); if (pNppParams->doFunctionListExport()) ::SendMessage(_hSelf, NPPM_INTERNAL_EXPORTFUNCLISTANDQUIT, 0, 0); if (pNppParams->doPrintAndExit()) ::SendMessage(_hSelf, NPPM_INTERNAL_PRNTANDQUIT, 0, 0); }
QString StyleHelper::skinResourceFileName(const QString& strName, bool need2x) { bool use2x = need2x && ::WizIsHighPixel(); return ::WizGetSkinResourceFileName(themeName(), (use2x ? strName + "@2x" : strName)); }
QString StyleHelper::skinResourceFileName(const QString& strName) { return ::WizGetSkinResourceFileName(themeName(), strName); }