Beispiel #1
0
std::vector<gcRefPtr<UserCore::Item::ItemInfoI>> DesuraJSBinding::getGames()
{
	auto im = getItemManager();

	if (!im)
		return std::vector<gcRefPtr<UserCore::Item::ItemInfoI>>();

	std::vector<gcRefPtr<UserCore::Item::ItemInfoI>> gList;
	im->getGameList(gList);
	return gList;
}
Beispiel #2
0
wxMenu* TBIGameMenu::createMenu(uint32 &lastMenuId)
{
	gcMenu* menu = new gcMenu();
	m_IdMapList.clear();

	auto pItemManager = getItemManager();

	if (!pItemManager)
		return menu;

	std::vector<gcRefPtr<UserCore::Item::ItemInfoI>> gList;
	pItemManager->getGameList(gList);

	std::sort(gList.begin(), gList.end(), [](gcRefPtr<UserCore::Item::ItemInfoI> left, gcRefPtr<UserCore::Item::ItemInfoI> right){
		return strcmp(left->getName(), right->getName()) <= 0;
	});

	for (size_t x=0; x<gList.size(); x++)
	{
		auto item = gList[x];

		if (!item)
			continue;

		if ((item->getStatus() & UserCore::Item::ItemInfoI::STATUS_DEVELOPER) && !(item->getStatus() & (UserCore::Item::ItemInfoI::STATUS_INSTALLING|UserCore::Item::ItemInfoI::STATUS_DOWNLOADING|UserCore::Item::ItemInfoI::STATUS_UPDATING|UserCore::Item::ItemInfoI::STATUS_READY|UserCore::Item::ItemInfoI::STATUS_INSTALLED)))
			continue;


		wxMenuItem* menuItem = new gcMenuItem(menu, lastMenuId, item->getName());
		menu->Append(menuItem);

		m_IdMapList[lastMenuId] = item->getId();
		loadIcon(menuItem, item->getIcon());

		lastMenuId++;
	}

	if (menu->GetMenuItemCount() == 0)
	{
		wxMenuItem* noItems = new gcMenuItem(menu, lastMenuId, Managers::GetString(L"#TB_NOITEMS"));
		lastMenuId++;

		menu->Append(noItems);
		noItems->Enable(false);
	}

	return menu;
}
Beispiel #3
0
wxMenu* TBIModMenu::createMenu(uint32 &lastMenuId)
{
	gcMenu* menu = new gcMenu();
	m_IdMapList.clear();

	auto pItemManager = getItemManager();

	if (!pItemManager)
		return menu;

	std::vector<gcRefPtr<UserCore::Item::ItemInfoI>> gList;
	pItemManager->getGameList(gList);

	std::sort(gList.begin(), gList.end(), [](gcRefPtr<UserCore::Item::ItemInfoI> left, gcRefPtr<UserCore::Item::ItemInfoI> right){
		return strcmp(left->getName(), right->getName()) <= 0;
	});

	for (size_t x=0; x<gList.size(); x++)
	{
		auto game = gList[x];

		std::vector<gcRefPtr<UserCore::Item::ItemInfoI>> mList;
		pItemManager->getModList(game->getId(), mList);

		if (mList.size() == 0)
			continue;

		gcMenu* gameMenu = new gcMenu();

		std::sort(mList.begin(), mList.end(), [](gcRefPtr<UserCore::Item::ItemInfoI> left, gcRefPtr<UserCore::Item::ItemInfoI> right){
			return strcmp(left->getName(), right->getName()) <= 0;
		});

		for (size_t y=0; y<mList.size(); y++)
		{
			auto mod = mList[y];

			wxMenuItem* menuItem = new gcMenuItem(gameMenu, lastMenuId, mod->getName());
			gameMenu->Append(menuItem);

			m_IdMapList[lastMenuId] = mod->getId();
			loadIcon(menuItem, mod->getIcon());

			lastMenuId++;
		}

		wxMenuItem* gameItem = new gcMenuItem(gameMenu, wxID_ANY, game->getName(), "", wxITEM_NORMAL, gameMenu);
		loadIcon(gameItem, game->getIcon());

		menu->Append(gameItem);
	}

	if (menu->GetMenuItemCount() == 0)
	{
		wxMenuItem* noItems = new gcMenuItem(menu, lastMenuId, Managers::GetString(L"#TB_NOITEMS"));
		lastMenuId++;

		menu->Append(noItems);
		noItems->Enable(false);
	}

	return menu;
}