Área de Transferência
Este exemplo procura demonstar a utilização da área de transferência em conjunto com caixas de entrada de dados (GtkEntry). Este exemplo consiste em uma janela contendo uma caixa vertical (GtkVBox) com duas caixas horizontais (GtkHBox), cada uma contendo um botão (copiar ou colar) e uma caixa de entrada de dados.
O Objetivo do botão copiar, localizado em frente à caixa de entrada de dados da primeira linha é copiar o conteúdo digitado para a área de transferência. O Objetivo do botão colar, localizado em frente à caixa de entrada de dados da segunda linha é colar o conteúdo da área de transferência.
<?php
/*
* função onCopy
* Copia o conteúdo do Entry para a área de transferência
*/
function onCopy($entry)
{
// seleciona todo conteúdo
$entry->select_region(0,-1);
// copia para área de transferência
$entry->copy_clipboard();
}
/*
* função onPaste
* Cola o conteúdo da área de transferência para o Entry
*/
function onPaste($entry)
{
// limpa todo conteúdo
$entry->set_text('');
// cola conteúdo da área de transferência
$entry->paste_clipboard();
}
// cria janela principal
$window = new GtkWindow;
$window->set_default_size(140,100);
$window->set_position(GTK::WIN_POS_CENTER);
$window->set_title('Área de transferência');
$window->set_border_width(20);
// cria caixa vertical
$vbox = new GtkVBox;
// cria 2 campos de entrada
$entry1= new GtkEntry;
$entry2= new GtkEntry;
// cria 2 botões (copiar e colar)
$button1 = GtkButton::new_from_stock(Gtk::STOCK_COPY);
$button2 = GtkButton::new_from_stock(Gtk::STOCK_PASTE);
// define as ações dos botões
$button1->connect_simple('clicked', 'onCopy', $entry1);
$button2->connect_simple('clicked', 'onPaste', $entry2);
// cria 2 caixas horizontais
$hbox1 = new GtkHBox;
$hbox2 = new GtkHBox;
// empacota botões e entries
$hbox1->pack_start($button1);
$hbox1->pack_start($entry1);
$hbox2->pack_start($button2);
$hbox2->pack_start($entry2);
// empacota caixas horizontais
$vbox->pack_start($hbox1);
$vbox->pack_start($hbox2);
$window->add($vbox);
// exibe janela
$window->show_all();
Gtk::main();
?>w





