• Artigos
  • Projetos
  • Download
  • Lista
  • Docs
  • Comunidade
  • ?

Criando um ToolBar com imagens em PHP-GTK1

16/04/2004  Hugo Sacramento  Ler e Comentar

Eis o código que criará uma janela e com Toolbar e três botões. O código está bem explicado através de comentários e vale lembrar que você precisa ter o PHP e o PHP-GTK instalados.



<?php

// módulo PHP-GTK para Windows ou Linux:
dl('php_gtk.' . (strstr(PHP_OS, 'WIN') ? 'dll' : 'so'));


// Criando a Main Window(Janela Principal) e suas propriedades:
$window = &new GtkWindow();
// Largura, Altura da janela
$window->set_default_size(800 /* Largura */, 600 /* Altura */);
// Posição da Janela. Pode ser usado no formato x,y com a função set_position(x, y);
$window->set_position(GTK_WIN_POS_CENTER);
// Título da janela
$window->set_title("Criando Toolbar...");
// Conecta O sinal destroy da janela à função gtk::main_quit
// que encerra a aplicação
$window->connect_object('destroy', array('gtk', 'main_quit'));
// Mostra a Janela
$window->show();

// Criando Widget Fixed na Janela para Fixar as posições:
$fixed = &new GtkFixed;
// Colocando o Fixed na Janela(A janela por si só pode conter apenas um widget
// o fixed pode conter vários):
$window->add($fixed);

// Este Widget permitirá que o nosso ToolBar se torne
//destacável da janela.
$HandleBox = &new GtkHandleBox;

// | Criando o TOOLBAR |
$ToolBar = &new GtkToolBar("GTK_ORIENTATION_HORIZONTAL" , "GTK_TOOLBAR_BOTH");
/*
Orientação(1º Parâmetro) pode ser: GTK_ORIENTATION_HORIZONTAL ou GTK_ORIENTATION_VERTICAL
ToolBarStyle(2º Parâmetro) pode ser: GTK_TOOLBAR_ICONS, GTK_TOOLBAR_TEXT, GTK_TOOLBAR_BOTH
*/

// Espaço entre cada item do ToolBar
$ToolBar->set_space_size(2);


// +----------------+
// | Botão 1 |
// +----------------+
// Criando um Pixmap de uma imagem Xpm
$pixmap = gdk::pixmap_create_from_xpm($window->window, null, 'Package.xpm');
$icon = &new GtkPixmap($pixmap, $pixmap);
// Criando o botão que receberá a imagem
$button = &new GtkButton();
$button->add($icon);

// +----------------+
// | Botão 2 |
// +----------------+
// Criando um Pixmap de uma imagem Xpm
$pixmap2 = gdk::pixmap_create_from_xpm($window->window, null, 'RenameModel.xpm');
$icon2 = &new GtkPixmap($pixmap2, $pixmap2);
// Criando o botão que receberá a imagem
$button2 = &new GtkButton();
$button2->add($icon2);

// +----------------+
// | Botão 3 |
// +----------------+
// Criando um Pixmap de uma imagem Xpm
$pixmap3 = gdk::pixmap_create_from_xpm($window->window, null, 'Save.xpm');
$icon3 = &new GtkPixmap($pixmap3, $pixmap3);
// Criando o botão que receberá a imagem
$button3 = &new GtkButton();
$button3->add($icon3);


// Colocando o botão na próxima posição do toolbar
$ToolBar->append_widget($button, "Este texto irá aparecer quando o mouse estiver em cima do botão 1", "Este texto irá aparecer quando o mouse estiver em cima do botão 1");
$ToolBar->append_space(); //Insere o espaço após o botão

$ToolBar->append_widget($button2, "Este texto irá aparecer quando o mouse estiver em cima do botão 2", "Este texto irá aparecer quando o mouse estiver em cima do botão 2");
$ToolBar->append_space(); //Insere o espaço após o botão

$ToolBar->append_widget($button3, "Este texto irá aparecer quando o mouse estiver em cima do botão 3", "Este texto irá aparecer quando o mouse estiver em cima do botão 3");

//Colocando o ToolBar dentro do HandleBox que criamos
$HandleBox->add($ToolBar);
//Colocando o HandleBox dentro do Fixed que criamos
$fixed->put($HandleBox, 10 /* Posição x */, 0 /* Posição y */);

$button->connect_object('clicked', 'Dialog', "Botão 1 Clicado!");
$button2->connect_object('clicked', 'Dialog', "Botão 2 Clicado!");
$button3->connect_object('clicked', 'Dialog', "Botão 3 Clicado!");

// Mostrando todos os itens da Janela:
$window->show_all();

function 
Dialog($text)
{
$label = &new GtkLabel($text);
$dialog = &new GtkDialog();
$vbox = $dialog->vbox;
$vbox->pack_start($label);
$dialog->show_all();
}

// Iniciando o Loop
Gtk::main();
?>




Comentários

  Não funfa 

Ola to usando php-gtk 2 e não ta funcionando. a janela principal abre e fecha simultaneamente

  Enviado por Edivan carneiro em 2007-04-11  

 Adicionar Comentário
 login
 Senha
 Título
 Comentário

Livros


  • Artigos

    • PHP-GTK - O Futuro das Aplicações Client-Side Open Source pode ser ele.
    • Lançada PHPMagazine #3

    Projetos

    • Agenda Telefonica
    • Sistema de Controle de Agendas
    • Patrinux
    • UML2Classes
  • Google

    Parceiros

 
Designed by Wolfgang Bartelme Designed by Wolfgang Bartelme

© 2006 Wordpress Themes | Theme (Not so) Fresh
XHTML CSS

PHP-GTK Brasil