Explicação
A criação de menus se torna complexo quando a arvore de itens é muito grande. Atualmente é necessário criar item, adiciona-lo ao menu e depois adicioná-lo ao menubar. Com a utilização do Fabula::GtkMenuBar, a construção é feita de forma automatizada, sendo que o programador só precisará adicionar os itens onde desejar.
Imagem
Exemplo
* @download
*/
class Demo {
/**
* Armazena os widgets necessarios
*
* @access private
* @property array $widgets
*/
public $widgets = array();
/**
* @name __construct()
* @return Demo
*/
public function __construct() {
// Cria a janela
$this->widgets['frmDemo'] = new GtkWindow();
$this->widgets['frmDemo']->set_size_request(250, 250);
$this->widgets['frmDemo']->set_position(Gtk::WIN_POS_CENTER_ALWAYS);
$this->widgets['frmDemo']->set_title("Demo");
$this->widgets['frmDemo']->connect("destroy", array($this, "frmDemo_unload"));
$vbox = new GtkVBox();
// Adiciona o menu
$this->widgets['mnuBar'] = Fabula::GtkMenuBar();
$vbox->pack_start($this->widgets['mnuBar'], FALSE, FALSE);
// Arquivo
$mnuFile = $this->widgets['mnuBar']->append_menu("_Arquivo");
$mnuImportar = $mnuFile->append_menu("Importar");
$mnuFile->append_item("Exportar");
$mnuFile->append_separator();
$mnuFile->append_item("Sair", array($this, "sair_onclick"));
// Importar
$mnuImportar->append_item("Arquivo 1");
$mnuImportar->append_item("Arquivo 2");
// Ajuda
$mnuHelp = $this->widgets['mnuBar']->append_menu("Aju_da");
$mnuHelp->append_item("Ajuda");
$mnuHelp->append_item("Site na Web");
$mnuHelp->append_separator();
$mnuHelp->append_item("Sobre");
$this->widgets['frmDemo']->add($vbox);
$vbox->pack_start(new GtkFixed(), TRUE, TRUE);
// Inicia a aplicação
$this->frmDemo_onload();
}
/**
* Método do carregamento do formulario
*
* @name frmDemo_onload()
*/
public function frmDemo_onload() {
// Inicia a aplicação
$this->widgets['frmDemo']->show_all();
Gtk::main();
}
/**
* Método do descarregamento do formulario
*
* @name frmDemo_unload()
*/
public function frmDemo_unload() {
// Encerra a aplicação
Gtk::main_quit();
}
}
/**
* Inicia o demo
*/
new Demo();
parabens Bruno…excelente site…
uma verdadeira e excelente aula de php…
muito bom!
abs
Poxa Ze Luiz, muito obrigado =)