void set(window wd, const nana::string& str) { if (str.empty()) _m_untip(wd); else _m_get(wd).second = str; }
pair_t& _m_get(window wd) { for (auto & pr : cont_) { if (pr.first == wd) return pr; } auto & events = API::events(wd); events.mouse_enter.connect([this](const arg_mouse& arg){ auto & pr = _m_get(arg.window_handle); if (pr.second.size()) this->show(pr.second); }); auto leave_fn = [this]{ this->close(); }; events.mouse_leave.connect(leave_fn); events.mouse_down.connect(leave_fn); events.destroy.connect([this](const arg_destroy& arg){ _m_untip(arg.window_handle); }); cont_.emplace_back(wd, nana::string()); return cont_.back(); }
std::string internationalization::get(std::string msgid) const { std::string str; if(_m_get(msgid, str)) _m_replace_args(str, nullptr); return str; }