예제 #1
0
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;
}
예제 #2
0
 ~WDbgArkColorHack() { RevertColors(); }