Widgets intermediários em PHP-GTK
Publicado por Gabriel Falcão Gonçalves de Moura 01/11/2006
[ Hits: 5.536 ]
Homepage: http://gabrielfalcao.com
Script simples/intermediário que gera alguns widgets (objetos) em php-gtk. Funções básicas estão atribuídas aos botões de eventos.
Parcialmente comentado.
<?php
/* $Id: gabriel.php,v 1.7 2002/12/04 17:31:50 fmk Exp $ */
if (!extension_loaded('gtk')) {
dl( 'php_gtk.' . PHP_SHLIB_SUFFIX);
}
function matar()
{
Gtk::main_quit();
}
function deleta_evento()
{
return false;
}
function criapasta()
{
$executar= exec("notepad.exe");
}
function removepasta()
{
rmdir("c:\pasta");
}
//função cria arquivo
function criaarquivo()
{
$filename = 'C:\teste.txt';
$somecontent = $entry;
// Tendo certeza que o arquivo existe e que há permissão de escrita primeiro.
// Em nosso exemplo, nós estamos abrindo $filename em modo de append (acréscimo).
// O ponteiro do arquivo estará no final dele desde
// que será aqui que $somecontent será escrito com fwrite().
$handle = fopen($filename, 'w');
// Escrevendo $somecontent para o arquivo aberto.
fwrite($handle, $somecontent);
fclose($handle);
} //fim da função edita arquivo
// Desenha a janela:
//cria nova janela
$janela = &new GtkWindow();
//Define o título da janela
$janela->set_title('Nação Linux - Instalador de Programas');
//quando o X da janela for clicado, chama a função matar(), que mata o GTK
$janela->connect('destroy', 'matar');
//fixo: cancela algum evento
$janela->connect('delete_event', 'deleta_evento');
//Define o tamanho da janela (largura,altura)
$janela->set_default_size(400, 240);
$janela->set_position(GTK_WIN_POS_CENTER);
// Desenha os botões:
$btn_criapasta = &new GtkButton('Editar repositórios Debian');
$btn_criapasta->connect('clicked', 'criapasta');
$repos_nacao_label = &new GtkLabel("Repositório padrão(Nação Linux)");
$repos_nacao_label->show();
$btn_removepasta = &new GtkButton('Salvar repositório');
$btn_removepasta->connect('clicked', '');
$btn_instala = &new GtkButton('Instalar pacote');
$btn_instala->connect('clicked', '');
$entry = &new GtkEntry();
$entry->set_text('http://www.nacaolivre.org/repositorio deb');
// $entry->select_region(0, 5); //seleciona os 5 primeiros caracteres
$entry->show();
//$janela->add($btn_criapasta);
$box1 = &new GtkVBox();
$box1->set_border_width(10);
$janela->add($box1);
$label = &new GtkLabel("Configurar repositórios de Programas");
$label->show();
$label2 = &new GtkLabel("Selecione o pacote a instalar:");
$label2->show();
$box1->pack_start($label);
$box1->pack_start($btn_criapasta);
$box1->pack_start($repos_nacao_label);
$box1->pack_start($entry);
$box1->pack_start($btn_removepasta);
$box1->pack_start($label2);
$box2 = &new GtkHBox();
$box2->set_border_width(10);
////////////////////////////////////////////////////////
$list = &new GtkList();
$list->set_selection_mode(GTK_SELECTION_BROWSE);
$items[] = &new GtkListItem("W32Codecs");
$items[] = &new GtkListItem("Gaim");
$items[] = &new GtkListItem("Amsn");
$items[] = &new GtkListItem("amaroK");
$items[] = &new GtkListItem("GnomeBaker");
$items[] = &new GtkListItem("Karamba");
$items[] = &new GtkListItem("KDE");
$items[] = &new GtkListItem("WindowMaker");
$items[] = &new GtkListItem("Blackbox");
$list->append_items($items);
/*
* Create a scrolled window and add the list widget to it - this provides
* automatic scrollbars.
*/
$scrolled_window = &new GtkScrolledWindow();
$scrolled_window->set_policy(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
$scrolled_window->add_with_viewport($list);
$box2->pack_start($scrolled_window);
$box2->pack_start($btn_instala);
/////////////////////////////////////////////////////////
$box1->pack_start($box2);
//Mostra todo o conteúdo adicionado à janela
$janela->show_all();
//Comando que inicia o loop infinito, que só é quebrado pelo gtk::main_quit
Gtk::main();
?>
gerador de tabelas em html v2.2
Nenhum comentário foi encontrado.
Papagaiando o XFCE com temas e recursos
WhatsApp com Chamadas no Linux via Waydroid
XFCE - quase um Gnome ou Plasma mas muito mais leve
LXQT - funcional para máquinas pererecas e usuários menos exigentes
Centralizar Logo com Transparência via ImageMagick
Removendo entradas de boot UEFI "fantasmas" via terminal
Atualizações de Segurança Automáticas no Debian
Como cortar as partes de um vídeo com passagens de áudio em branco
Alguém tem que acabar com ANATEL!!! (3)
Uma pergunta bem simples mas não achei resposta (ainda) [RESOLVIDO] (2)
Tentativa de instalar Linux em um notebook HP 246 G6 (2)









