Construindo um GtkToolbar

Explicação

A utilização de toolbars facilita a usabilidade do usuário para tarefas rotineiras e para fácil acesso à determinadas funcionalidade. Alem disso, um toolbar pode deixar a aplicação mais agradável ao usuário.

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();

		// Toolbar
		$this->widgets['tlbDemo'] = Fabula::GtkToolbar();
		$vbox->pack_start($this->widgets['tlbDemo'], FALSE, FALSE);
		
		// Botão do stock
		$btnAbrir = $this->widgets['tlbDemo']->append_button_from_stock(Gtk::STOCK_OPEN, NULL, "Abrir");
		$btnConectar = $this->widgets['tlbDemo']->append_button_from_stock(Gtk::STOCK_CONNECT, NULL, "Conectar");
		$btnSair = $this->widgets['tlbDemo']->append_button_from_stock(Gtk::STOCK_CLOSE, NULL, "Sair");
		
		// Conecta
		$btnAbrir->connect_simple("clicked", array($this, "btnToolbar_clicked"), 1);
		$btnConectar->connect_simple("clicked", array($this, "btnToolbar_clicked"), 2);
		$btnSair->connect_simple("clicked", array($this, "btnToolbar_clicked"), 3);
		
		// Inicia a aplicação
		$vbox->pack_start(new GtkFixed());
		$this->widgets['frmDemo']->add($vbox);
		$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();
	}
	
	/**
	 * Método do click dos botões do menu
	 * 
	 * @name btnToolbar_clicked()
	 * @param integer $btn Index do botão pressionado
	 */
	public function btnToolbar_clicked($btn) {
		echo $btn . "\n";
	}
}
	
/**
 * Inicia o demo
 */
new Demo();

Referências

http://gtk.php.net/manual/en/gtk.gtktoolbar.php
http://gtk.php.net/manual/en/gtk.gtktoolbutton.php