Ejemplo n.º 1
0
	void GetValue(wxVariant &variant, unsigned int col) const override {
		if (col == 0)
			variant = to_wx(combo.Str());
		else if (col == 1) {
			wxIcon icon;
			try {
				auto icon_bmp = cmd::get(combo.CmdName())->Icon(16);
				if (icon_bmp.IsOk())
					icon.CopyFromBitmap(icon_bmp);
			}
			catch (agi::Exception const&) {
				// Just use no icon; error is reported in the description column
			}
			variant << wxDataViewIconText(to_wx(combo.CmdName()), icon);
		}
		else if (col == 2) {
			try {
				variant = cmd::get(combo.CmdName())->StrHelp();
			}
			catch (agi::Exception const& e) {
				variant = to_wx(e.GetChainedMessage());
			}
		}
		else
			throw agi::InternalError("HotkeyDataViewModel asked for an invalid column number", nullptr);
	}
Ejemplo n.º 2
0
	HotkeyModelCombo(HotkeyModelCategory *parent, Combo const& combo)
	: parent(parent)
	, combo(combo)
	, cmd_name(to_wx(combo.CmdName()))
	, cmd_str(to_wx(combo.Str()))
	{
	}
Ejemplo n.º 3
0
 void GetValue(wxVariant &variant, unsigned int col) const {
     if (col == 0)
         variant = to_wx(combo.Str());
     else if (col == 1) {
         wxBitmap icon_bmp(icon::get(combo.CmdName(), 16));
         wxIcon icon;
         if (icon_bmp.IsOk())
             icon.CopyFromBitmap(icon_bmp);
         variant << wxDataViewIconText(to_wx(combo.CmdName()), icon);
     }
     else if (col == 2) {
         try {
             variant = cmd::get(combo.CmdName())->StrHelp();
         }
         catch (agi::Exception const& e) {
             variant = to_wx(e.GetChainedMessage());
         }
     }
     else
         throw agi::InternalError("HotkeyDataViewModel asked for an invalid column number", 0);
 }
Ejemplo n.º 4
0
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());
}
Ejemplo n.º 5
0
	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;
	}
Ejemplo n.º 6
0
	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;
	}
Ejemplo n.º 7
0
	void Apply(Hotkey::HotkeyMap *hk_map) {
		if (combo.CmdName().size() || combo.Str().size())
			hk_map->insert(make_pair(combo.CmdName(), combo));
	}
Ejemplo n.º 8
0
void Hotkey::ComboInsert(Combo const& combo) {
	str_map.insert(make_pair(combo.Str(), combo));
	cmd_map.insert(make_pair(combo.CmdName(), combo));
}