コード例 #1
0
ファイル: kcmtaskbar.cpp プロジェクト: serghei/kde3-kdebase
// Get a translated version of the above string list.
QStringList TaskbarConfig::i18nActionList()
{
    QStringList i18nList;
    for(QStringList::ConstIterator it = actionList().begin(); it != actionList().end(); ++it)
    {
        i18nList << i18n((*it).latin1());
    }
    return i18nList;
}
コード例 #2
0
ファイル: RTBSS.hpp プロジェクト: CarbonGU/AI-Toolbox
        double RTBSS<M>::simulate(const Belief & b, unsigned horizon) {
            if ( horizon == 0 ) return 0;

            std::vector<size_t> actionList(A);

            // Here we use no heuristic to sort the actions. If you want one
            // add it here!
            std::iota(std::begin(actionList), std::end(actionList), 0);

            double max = -std::numeric_limits<double>::infinity();

            for ( auto a : actionList ) {
                double rew = beliefExpectedReward(model_, b, a);

                double uBound = rew + upperBound(b, a, horizon - 1);
                if ( uBound > max ) {
                    for ( size_t o = 0; o < O; ++o ) {
                        double p = beliefObservationProbability(model_, b, a, o);
                        // Only work if it makes sense
                        if ( checkDifferentSmall(p, 0.0) ) rew += model_.getDiscount() * p * simulate(updateBelief(model_, b, a, o), horizon - 1);
                    }
                }
                if ( rew > max ) {
                    max = rew;
                    if ( horizon == maxDepth_ ) maxA_ = a;
                }
            }
            return max;
        }
コード例 #3
0
ファイル: KviCoreActions.cpp プロジェクト: DINKIN/KVIrc
void KviConnectAction::activeContextStateChanged()
{

	KviPointerList<QAction> * bl = actionList();
	if(!bl)return;

	bool bIconVisibleInMenu = KVI_OPTION_BOOL(KviOption_boolShowIconsInPopupMenus);
	QPixmap * p;
	QString txt;
	KviIrcContext * c = g_pMainWindow->activeContext();
	if(c)
	{
		switch(c->state())
		{
			case KviIrcContext::Idle:
				p = g_pIconManager->getBigIcon(KVI_BIGICON_DISCONNECTED);
				txt = m_szConnectString;
			break;
			case KviIrcContext::PendingReconnection:
			case KviIrcContext::Connecting:
			case KviIrcContext::LoggingIn:
				p = g_pIconManager->getBigIcon(KVI_BIGICON_CONNECTING);
				txt = m_szAbortConnectionString;
			break;
			case KviIrcContext::Connected:
				p = g_pIconManager->getBigIcon(KVI_BIGICON_CONNECTED);
				txt = m_szDisconnectString;
			break;
			default:
				p = 0;
			break;
		}
	} else {
		p = 0;
	}

	if(p)
	{
		for(QAction * b = bl->first();b;b =bl->next())
		{
			if(!b->isEnabled())b->setEnabled(true);
			b->setIcon(QIcon(*p));
			b->setText(txt);
			b->setIconVisibleInMenu(bIconVisibleInMenu);
		}
	} else {
		for(QAction * b = bl->first();b;b = bl->next())
		{
			if(b->isEnabled())b->setEnabled(false);
			b->setIconVisibleInMenu(bIconVisibleInMenu);
		}
	}
}
コード例 #4
0
ファイル: EditorGame.cpp プロジェクト: aronarts/FireNET
void CEditorGame::InitActionInputEnums( IGameToEditorInterface* pGTE )
{
	CRY_ASSERT(pGTE);

	IActionMapManager* pActionMapManager = g_pGame->GetIGameFramework()->GetIActionMapManager();
	if (pActionMapManager)
	{
		struct SActionList : public IActionMapPopulateCallBack
		{
			explicit SActionList(int actionCount)
				: m_maxNumNames(actionCount)
				, m_nameCount(0)
			{
				m_allActionNames = new const char*[actionCount];
			}

			~SActionList()
			{
				SAFE_DELETE_ARRAY(m_allActionNames);
			}

			//IActionMapPopulateCallBack
			virtual void AddActionName( const char* const pName )
			{
				assert(m_nameCount < m_maxNumNames);

				if (m_nameCount < m_maxNumNames)
				{
					m_allActionNames[m_nameCount] = pName;
					m_nameCount++;
				}
			}
			//~IActionMapPopulateCallBack

			const char** m_allActionNames;
			int m_maxNumNames;
			int m_nameCount;
		};

		int actionCount = pActionMapManager->GetActionsCount();
		if (actionCount > 0)
		{
			SActionList actionList(actionCount);

			pActionMapManager->EnumerateActions(&actionList);

			pGTE->SetUIEnums("input_actions", actionList.m_allActionNames, actionList.m_nameCount);
		}
	}
}
コード例 #5
0
ファイル: RimeWithWeasel.cpp プロジェクト: wishstudio/weasel
bool RimeWithWeaselHandler::_Respond(UINT session_id, LPWSTR buffer)
{
	std::set<std::string> actions;
	std::list<std::string> messages;

	// extract information

	RimeCommit commit = {0};
	if (RimeGetCommit(session_id, &commit))
	{
		actions.insert("commit");
		messages.push_back(boost::str(boost::format("commit=%s\n") % commit.text));
		RimeFreeCommit(&commit);
	}
	
	bool is_composing;
	RimeStatus status = {0};
	RIME_STRUCT_INIT(RimeStatus, status);
	if (RimeGetStatus(session_id, &status))
	{
		is_composing = status.is_composing;
		actions.insert("status");
		messages.push_back(boost::str(boost::format("status.ascii_mode=%d\n") % status.is_ascii_mode));
		messages.push_back(boost::str(boost::format("status.composing=%d\n") % status.is_composing));
		messages.push_back(boost::str(boost::format("status.disabled=%d\n") % status.is_disabled));
		RimeFreeStatus(&status);
	}
	
	RimeContext ctx = {0};
	RIME_STRUCT_INIT(RimeContext, ctx);
	if (RimeGetContext(session_id, &ctx))
	{
		if (is_composing)
		{
			actions.insert("ctx");
			messages.push_back(boost::str(boost::format("ctx.preedit=%s\n") % ctx.composition.preedit));
			if (ctx.composition.sel_start <= ctx.composition.sel_end)
			{
				messages.push_back(boost::str(boost::format("ctx.preedit.cursor=%d,%d\n") %
					utf8towcslen(ctx.composition.preedit, ctx.composition.sel_start) %
					utf8towcslen(ctx.composition.preedit, ctx.composition.sel_end)));
			}
		}
		RimeFreeContext(&ctx);
	}

	// configuration information
	actions.insert("config");
	messages.push_back(boost::str(boost::format("config.inline_preedit=%d\n") % (int) m_ui->style().inline_preedit));

	// summarize

	if (actions.empty())
	{
		messages.insert(messages.begin(), std::string("action=noop\n"));
	}
	else
	{
		std::string actionList(boost::join(actions, ","));
		messages.insert(messages.begin(), boost::str(boost::format("action=%s\n") % actionList));
	}

	messages.push_back(std::string(".\n"));

	// printing to stream

	memset(buffer, 0, WEASEL_IPC_BUFFER_SIZE);
	wbufferstream bs(buffer, WEASEL_IPC_BUFFER_LENGTH);

	BOOST_FOREACH(const std::string &msg, messages)
	{
		bs << utf8towcs(msg.c_str());
		if (!bs.good())
		{
			// response text toooo long!
			return false;
		}
	}
コード例 #6
0
ファイル: RimeWithWeasel.cpp プロジェクト: Prcuvu/weasel
bool RimeWithWeaselHandler::_Respond(UINT session_id, EatLine eat)
{
	std::set<std::string> actions;
	std::list<std::string> messages;

	// extract information

	RIME_STRUCT(RimeCommit, commit);
	if (RimeGetCommit(session_id, &commit))
	{
		actions.insert("commit");
		messages.push_back(std::string("commit=") + commit.text + '\n');
		RimeFreeCommit(&commit);
	}
	
	bool is_composing = false;
	RIME_STRUCT(RimeStatus, status);
	if (RimeGetStatus(session_id, &status))
	{
		is_composing = !!status.is_composing;
		actions.insert("status");
		messages.push_back(std::string("status.ascii_mode=") + std::to_string(status.is_ascii_mode) + '\n');
		messages.push_back(std::string("status.composing=") + std::to_string(status.is_composing) + '\n');
		messages.push_back(std::string("status.disabled=") + std::to_string(status.is_disabled) + '\n');
		RimeFreeStatus(&status);
	}
	
	RIME_STRUCT(RimeContext, ctx);
	if (RimeGetContext(session_id, &ctx))
	{
		if (is_composing)
		{
			actions.insert("ctx");
			switch (m_ui->style().preedit_type)
			{
			case weasel::UIStyle::PREVIEW:
				if (ctx.commit_text_preview != NULL)
				{
					std::string first = ctx.commit_text_preview;
					messages.push_back(std::string("ctx.preedit=") + first + '\n');
					messages.push_back(std::string("ctx.preedit.cursor=") +
						std::to_string(utf8towcslen(first.c_str(), 0)) + ',' +
						std::to_string(utf8towcslen(first.c_str(), first.size())) + '\n');
					break;
				}
				// no preview, fall back to composition
			case weasel::UIStyle::COMPOSITION:
				messages.push_back(std::string("ctx.preedit=") + ctx.composition.preedit + '\n');
				if (ctx.composition.sel_start <= ctx.composition.sel_end)
				{
					messages.push_back(std::string("ctx.preedit.cursor=") +
						std::to_string(utf8towcslen(ctx.composition.preedit, ctx.composition.sel_start)) + ',' +
						std::to_string(utf8towcslen(ctx.composition.preedit, ctx.composition.sel_end)) + '\n');
				}
				break;
			}
		}
		if (ctx.menu.num_candidates)
		{
			weasel::CandidateInfo cinfo;
			std::wstringstream ss;
			boost::archive::text_woarchive oa(ss);
			_GetCandidateInfo(cinfo, ctx);

			oa << cinfo;

			messages.push_back(std::string("ctx.cand=") + wcstoutf8(ss.str().c_str()) + '\n');
		}
		RimeFreeContext(&ctx);
	}

	// configuration information
	actions.insert("config");
	messages.push_back(std::string("config.inline_preedit=") + std::to_string((int)m_ui->style().inline_preedit) + '\n');

	// style
	bool has_synced = RimeGetOption(session_id, "__synced");
	if (!has_synced) {
		std::wstringstream ss;
		boost::archive::text_woarchive oa(ss);
		oa << m_ui->style();

		actions.insert("style");
		messages.push_back(std::string("style=") + wcstoutf8(ss.str().c_str()) + '\n');
		RimeSetOption(session_id, "__synced", true);
	}

	// summarize

	if (actions.empty())
	{
		messages.insert(messages.begin(), std::string("action=noop\n"));
	}
	else
	{
		std::string actionList(join(actions, ","));
		messages.insert(messages.begin(), std::string("action=") + actionList + '\n');
	}

	messages.push_back(std::string(".\n"));

	return std::all_of(messages.begin(), messages.end(), [&eat](std::string &msg)
	{
		return eat(std::wstring(utf8towcs(msg.c_str())));
	});
}