bool SetValue(wxVariant const& variant, unsigned int col) override { if (col == 0) { wxArrayString toks = wxSplit(variant.GetString(), '-'); std::vector<std::string> keys; keys.reserve(toks.size()); transform(toks.begin(), toks.end(), back_inserter(keys), (std::string(*)(wxString const&))&from_wx); combo = Combo(combo.Context(), combo.CmdName(), keys); cmd_str = to_wx(combo.Str()); return true; } else if (col == 1) { wxDataViewIconText text; text << variant; combo = Combo(combo.Context(), from_wx(text.GetText()), combo.Get()); cmd_name = text.GetText(); return true; } return false; }
bool SetValue(wxVariant const& variant, unsigned int col) { if (col == 0) { wxArrayString toks = wxSplit(variant.GetString(), '-'); std::vector<std::string> keys; keys.resize(toks.size()); for (size_t i = 0; i < toks.size(); ++i) keys[i] = STD_STR(toks[i]); combo = Combo(combo.Context(), combo.CmdName(), keys); cmd_str = combo.Str(); return true; } else if (col == 1) { wxDataViewIconText text; text << variant; combo = Combo(combo.Context(), STD_STR(text.GetText()), combo.Get()); cmd_name = text.GetText(); return true; } return false; }
TEST(lagi_hotkey, combo_stuff) { Hotkey::HotkeyMap hm = Hotkey("", simple_valid).GetHotkeyMap(); Hotkey::HotkeyMap::const_iterator it, end; std::tr1::tie(it, end) = hm.equal_range("cmd1"); EXPECT_EQ(3, std::distance(it, end)); std::tr1::tie(it, end) = hm.equal_range("cmd2"); ASSERT_EQ(1, std::distance(it, end)); Combo c = it->second; EXPECT_STREQ("Ctrl-C", c.StrMenu().c_str()); EXPECT_STREQ("cmd2", c.CmdName().c_str()); EXPECT_STREQ("Default", c.Context().c_str()); EXPECT_EQ(2, c.Get().size()); }