<< Voltar Índice Próxima >>

ENVIO DE DADOS PARA O PROGRAMA

A Navi possui uma forma de envio de informações da página usada como GUI para o programa em C/C++. Crie um novo arquivo HTML, com o código abaixo com o nome "paginaDados.htm".

<html>
<head>
	<script type="text/javascript" src="Navi.js"></script>

	<script type="text/javascript">
	window.addEvent('domready', function(){

            $('myButton').addEvent('click', function(){
                $ND('buttonClicked', {secretMessage: "hello!", age: 19}).send();
            });

	});
	</script>
</head>
<body>
	<input type="button" id="myButton" value="Click Me!" />

</body>
</html>

 

Uma nova função utilizada é "addEvent()" da Mootools onde define-se que tipo de evento irá ocorrer, para a execução de determinado ação. No exemplo acima o evento é o clique do mouse. Visite o link para mais informações sobre ela.

Quando o botão de id "myButton" é clicado então a linha abaixo é executada.
$ND('buttonClicked', {secretMessage: "hello!", age: 19}).send();
A função "ND()" determina os dados que serão enviados. O primeiro parâmetro é o nome que será atribuido para essas informações. O segundo é uma sequência do tipo chave/valor, que serão os dados propriamente ditos trabalhados no programa. No exemplo foram criados dois dados, um de nome "secretMessage" com valor "hello!" e outro de nome "age" com valor 19. Com isso eles são enviados para o programa com a função "send()".

    buttonNavi = naviMgr->createNavi("buttonNavi", "local://paginaDados.html",
		NaviPosition(TopCenter), 500, 500);

    buttonNavi->bind("buttonClicked", NaviDelegate(this, &AplicationListener::BotaoClick));

 

Adicione o trecho acima no construtor da classe AplicationListener. Ele cria uma nova janela da Navi com a página criada anteriormente. Observe que desta vez a janela após criada foi atribuida para uma variável que é do tipo "Navi", para que a mesma possa ser acessada sem a necessidade da função "getNavi()".

O método "bind" faz a ligação entre as informações vindas da interface e a função que irá trabalha-las. No exemplo as informações de nome "buttonClicked" serão trabalhadas pelo método "BotaoClick()".

    void BotaoClick(const NaviData &naviData);

 

O cabeçalho do método deve ser declarado no arquivo "AplicationListener.h".

void AplicationListener::BotaoClick(const NaviData &naviData){

	std::string secretMessage = naviData["secretMessage"].str();
	std::string age = naviData["age"].str();

	Ogre::LogManager::getSingleton().logMessage("Mensagem da página: " + secretMessage +
		" " + age);
}

 

Em "BotaoClick()" obtemos o conteúdo das informações enviadas pela GUI usando a variável naviData que é o parâmetro da função. Basta acessar o item no através do seu nome como no código acima. Então eles são escritos no arquivo de log da Ogre.

Italo Mendes
italo.ribeiro@gmail.com

<< Voltar Índice Próxima >>