bool WDbgArkColorHack::SetTheme(const std::string &theme_name) { if ( !IsInited() ) { err << wa::showminus << __FUNCTION__ << ": class is not initialized" << endlerr; return false; } if ( m_cur_theme == theme_name ) return true; themes::const_iterator it = m_themes.find(theme_name); if ( it == m_themes.end() ) { err << wa::showminus << __FUNCTION__ << ": failed to find theme " << theme_name << endlerr; return false; } theme_elems elems = it->second; for ( const auto &element : elems ) { if ( !SetColor(element.first, element.second) ) { err << wa::showminus << __FUNCTION__ << ": failed to set new color for " << element.first << endlerr; RevertColors(); return false; } } m_cur_theme = theme_name; return true; }
~WDbgArkColorHack() { RevertColors(); }