GtkCombobox usando new_text()
Exemplo simples de aplicação O.O. para gerar um GtkCombobox com dados provenientes de um vetor.
O legal deste exemplo é a utilização do sinal CHANGE.
Este exemplo foi desenvolvido em parceria com Edivan Carneiro de Castro.
<?php
/**
* GTKCombobox com new_Text
* By Fernando Herique Correa and Edivan Carneiro De Castro.
* 2008-02-12
*/
class app {
private $win = null;
private $combo = null;
public function app(){
$this->buildGUI();
$this->startApp();
}
private function buildGUI(){
#Window
$this->createWin();
#Stored do Combo
$this->createCombo();
#Inicia App
$this->startApp();
}
private function createWin(){
$this->win = new GtkWindow();
$this->win->set_title("GtkComboBox com new_text()");
$this->win->set_default_size(450,50);
$this->win->connect('delete_event',array($this,'turnOffApp'));
}
private function createCombo(){
$this->combo = GtkComboBox::new_text();
$array_dados = $this->getDados();
foreach ($array_dados as $option) {
$this->combo->append_text($option);
}
$this->combo->set_active(0);
$this->combo->connect('changed', array($this, 'changeCBox'));
$this->win->add($this->combo);
}
public function changeCBox($lista_selection){
$iter = $lista_selection->get_active_iter();
echo get_class($iter);
if($iter) {
$model = $this->combo->get_model();
get_class($model);
$nome = $model->get_value($iter,0);
echo __METHOD__ ."> $nome
";
}
else {
echo __METHOD__ ."> Falha de selecao.
";
}
}
private function getDados(){
$array_dados = array(
0 => 'Edivan Carneiro De Castro',
1 => 'Fernando Henrique Correa',
2 => 'Lista PHP-GTK BR.'
);
return $array_dados;
}
private function startApp(){
$this->win->show_all();
}
public function turnOffApp(){
GTK::main_quit();
}
}
new app();
GTK::main();
?>





