Widgets intermediários em PHP-GTK

Publicado por Gabriel Falcão Gonçalves de Moura 01/11/2006

[ Hits: 5.254 ]

Homepage: http://gabrielfalcao.com

Download nacao.php




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.

  



Esconder código-fonte

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

?>

Scripts recomendados

Entendendo os operadores de atribuição

Calendário

WShell - Comandos do sistema via web

Formatar CPF e CNPJ para formato user friendly

Invertendo a data


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts