<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Core Code &#187; PHP-Gtk2</title>
	<atom:link href="http://corecode.wordpress.com/category/php-gtk2/feed/" rel="self" type="application/rss+xml" />
	<link>http://corecode.wordpress.com</link>
	<description></description>
	<lastBuildDate>Thu, 03 Dec 2009 23:46:53 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='corecode.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/501714ae3b790583f2bb3786bef3c5cb?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Core Code &#187; PHP-Gtk2</title>
		<link>http://corecode.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://corecode.wordpress.com/osd.xml" title="Core Code" />
		<item>
		<title>Compilando as suas aplicações em PHP-GTK</title>
		<link>http://corecode.wordpress.com/2008/12/20/compilando-as-suas-aplicacoes-em-php-gtk/</link>
		<comments>http://corecode.wordpress.com/2008/12/20/compilando-as-suas-aplicacoes-em-php-gtk/#comments</comments>
		<pubDate>Sat, 20 Dec 2008 22:54:46 +0000</pubDate>
		<dc:creator>leonidaskirotawa</dc:creator>
				<category><![CDATA[Gtk]]></category>
		<category><![CDATA[PHP-Gtk2]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[php-gtk]]></category>

		<guid isPermaLink="false">http://corecode.wordpress.com/?p=98</guid>
		<description><![CDATA[Nesse post irei mostrar como criar uma aplicação em PHP-GTK compilada usando o bcompiler no linux (ubuntu 8.04).  A fonte para o tutorial de instalação do bcompiler é o  artigo do Patrick Mendes no site do PHP-GTK Brasil.
Instalando o bcompiler no seu ubuntu 8.04
kirotawa@xxx:~$wget -c http://pecl.php.net/get/bcompiler-0.8.tgz
kirotawa@xxx:~$tar -xzvf bcompiler-0.8.tgz
kirotawa@xxx:~$cd bcompiler-0.8
kirotawa@xxx:~$phpize
kirotawa@xxx:~$./configure
kirotawa@xxx:~$make
kirotawa@xxx:~$make install
kirotawa@xxx:~$echo &#8216;extension=bcompiler.so&#8217; &#62;&#62; /etc/php5/cli/php.ini 
Lembre-se de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=corecode.wordpress.com&blog=3748115&post=98&subd=corecode&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p style="text-align:justify;">Nesse post irei mostrar como criar uma aplicação em PHP-GTK compilada usando o bcompiler no linux (ubuntu 8.04).  A fonte para o tutorial de instalação do bcompiler é o  <a href="http://www.php-gtk.com.br/article_117">artigo</a> do Patrick Mendes no site do PHP-GTK Brasil.</p>
<p><strong>Instalando o bcompiler no seu ubuntu 8.04</strong></p>
<p><span style="color:#008000;">kirotawa@xxx:~$wget -c http://pecl.php.net/get/bcompiler-0.8.tgz<br />
kirotawa@xxx:~$tar -xzvf bcompiler-0.8.tgz<br />
kirotawa@xxx:~$cd bcompiler-0.8<br />
kirotawa@xxx:~$phpize<br />
kirotawa@xxx:~$./configure<br />
kirotawa@xxx:~$make<br />
kirotawa@xxx:~$make install<br />
kirotawa@xxx:~$echo &#8216;extension=bcompiler.so&#8217; &gt;&gt; /etc/php5/cli/php.ini </span></p>
<p style="text-align:justify;">Lembre-se de um detalhe o comando make install deve ser realizado como root.  Para não haver nenhum problema faça tudo como root, só pra garantir.</p>
<p style="text-align:justify;">Agora que você instalou o bcompiler é hora de usar ele.  Antes vamos criar uma aplicação simples em PHP-GTK.</p>
<p><strong>CODE</strong></p>
<pre class="brush: php;">
&lt;?php

  $janela = new GtkWindow();
  $janela-&gt;set_default_size(100,50);
  $janela-&gt;set_title(&quot;Janela Compilada&quot;);
  $Label = new GtkLabel(&quot;Nome&quot;);
  $Nome = new GtkEntry();
  $Botao = new GtkButton(&quot;_OK&quot;,true);
  $box = new GtkHbox();

  $box-&gt;add($Label);
  $box-&gt;add($Nome);
  $box-&gt;add($Botao);
  $janela-&gt;add($box);

  $Botao-&gt;connect_simple('clicked','fExibeTexto',$Nome );

  $janela-&gt;show_all();
  $janela-&gt;connect_simple('destroy', array('gtk', 'main_quit'));
  function fExibeTexto($campotexto)
  {
    $texto = $campotexto-&gt; get_text();
    $dialog = new GtkMessageDialog(null, Gtk::DIALOG_MODAL,
    gtk::MESSAGE_WARNING, Gtk::BUTTONS_OK, $texto );
    $dialog-&gt;run();
    $dialog-&gt;destroy();
  }

   Gtk::main();
?&gt;
</pre>
<p>O código acima é só pra explicar.  O que ele faz é criar uma janela com um GtkLabel, GtkButton e um GtkEntry.  Quando o botão é pressionado abre-se um GtkMessageDialog com o conteudo do GtkEntry.<br />
Agora vamos a parte que realmente interessa. Criar a tal  aplicação compilada.   Criamos um arquivo com o seguinte contéudo:</p>
<p><strong>CODE</strong></p>
<pre class="brush: php;">
&lt;?php
     $arq = fopen(&quot;janela.phb&quot;, &quot;w&quot;);//Cria o arquivo que conterá  o bytecode
     bcompiler_write_header($arq); //Escreve a parte do cabeçalho do arquivo bcompiler.
     bcompiler_write_file($arq, &quot;teste1.php&quot;); //Essa função lê o arquivo que você quer gera o     bytecode e escreve no arquivo recem criado
     bcompiler_write_footer($arq); //Escreve o caracter \x00 para indicar o Fim dos dados compilados.
     fclose($arq); //Fecha o arquivo
?&gt;
</pre>
<p>Agora que temos o códio para nossa aplicação, e temos o código que vai gerar a aplicação compilada. é só digitar:</p>
<p><span style="color:#008000;">kirotawa@xxx:~$php bcompilerteste.php</span></p>
<p>Ele vai gerar o arquivo janela.phb.  Para executar essa janela você pode digitar:</p>
<p><span style="color:#008000;">kirotawa@xxx:~$php janela.phb</span></p>
<p>Ou fazer o que eu fiz setar que os arquivos .phb  devem ser abertos com o php.  Pronto agora você pode proteger as suas aplicações em PHP-GTK.   Para saber mais dá uma conferida nas referências abaixo.<br />
<strong><br />
Referências</strong></p>
<p><a href="http://www.php-gtk.com.br/article_117">Artigo do Patrick Mendes</a><br />
<a href="http://forum.webly.com.br/?showtopic=16051">Wbly/Emilio</a><br />
<a href="http://xoopscube.com.br/docs/php/manual/ref.bcompiler.php">XoopsCube</a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/corecode.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/corecode.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/corecode.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/corecode.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/corecode.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/corecode.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/corecode.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/corecode.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/corecode.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/corecode.wordpress.com/98/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=corecode.wordpress.com&blog=3748115&post=98&subd=corecode&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://corecode.wordpress.com/2008/12/20/compilando-as-suas-aplicacoes-em-php-gtk/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/968c524e1d4a4b2b4b22e35672b5be8a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kirotawa</media:title>
		</media:content>
	</item>
		<item>
		<title>Três vezes GTK</title>
		<link>http://corecode.wordpress.com/2008/05/22/tres-vezes-gtk/</link>
		<comments>http://corecode.wordpress.com/2008/05/22/tres-vezes-gtk/#comments</comments>
		<pubDate>Thu, 22 May 2008 21:17:49 +0000</pubDate>
		<dc:creator>leonidaskirotawa</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Gtk]]></category>
		<category><![CDATA[PHP-Gtk2]]></category>
		<category><![CDATA[pygtk]]></category>

		<guid isPermaLink="false">http://corecode.wordpress.com/?p=15</guid>
		<description><![CDATA[Há muito tempo atrás quando mal conhecia o que eram GUI&#8217;s, comecei a estudar algo chamado Tk, mas precisamente Tcl/Tk.  Comecei a estudar esta linguagem quando vi que o aMSN era todo feito nela.  Minha ambição era criar um aMSN ou melhora-lo (hehe),  mas infelizmente faculdade rouba  nosso tempo, tempo no [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=corecode.wordpress.com&blog=3748115&post=15&subd=corecode&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p style="text-align:justify;">Há muito tempo atrás quando mal conhecia o que eram GUI&#8217;s, comecei a estudar algo chamado Tk, mas precisamente Tcl/Tk.  Comecei a estudar esta linguagem quando vi que o aMSN era todo feito nela.  Minha ambição era criar um aMSN ou melhora-lo (hehe),  mas infelizmente faculdade rouba  nosso tempo, tempo no qual poderia-mos está aprendendo sozinho, mas temos que tirar a nota X pra poder passar, etc.  Mas o que raios esse papo tem haver com GTk?  Acho que nada, foi só pra introduzir o artigo (hehe), mas espere! Tem sim haver, estamos falando de GUIS, e assim como Tk  GTK é uma Biblioteca para criar aplicações gráficas.  Ao contrário do que aconteceu com meus estudos em Tcl/Tk, com relação a GTK eu fui adiante e hoje estudo três linguagens diferentes que fazem uso desta mesma biblioteca, dai vem o título deste artigo e também o assunto do mesmo.</p>
<p style="text-align:justify;">Neste artigo pretendo apresentar a todos a biblioteca GTK usada no gnome das distribuições linux.  Também pretendo mostrar três linguagens que fazem uso desta biblioteca, e deixar que você escolha a mais poderosa, a mais fácil ou a que você sabe, para  que você crie suas aplicações gráficas utilizando GTK.</p>
<p style="text-align:justify;">Antes de falar dessas três linguagens vamos dá uma olhada no histórico da biblioteca GTK.</p>
<p style="text-align:justify;">GTK quer dizer Gnome tool kit, e é usado inteiramente no gnome.  Um dos aplicativos gráficos mais famosos do mundo open source, o gimp, possui sua parte gráfica toda feita em GTK.  Além de ser fácil de aprender, esta biblioteca é muiltiplataforma, logo você vai poder criar aplicações unix ou win32.  Mas como criar tais aplicações e quais as três linguagens que você disse que fazem uso da GTK?  São elas PHP-GTK2, C e Python, isso claro sem citar tantas outras que também fazem uso da GTK.</p>
<p style="text-align:justify;">Agora é a hora da verdade, vou mostrar três exemplos de codigos diferentes nestas três linguages e vocês escolhem em qual delas deseja começar a programar usando GTK.</p>
<p><strong>Em C</strong></p>
<pre class="brush: cpp;">
#include &lt;gtk/gtk.h&gt;

static void destroy( GtkWidget *widget,
                     gpointer   data );

int main( int   argc,
          char *argv[] )
{
    GtkWidget *window ,*label;

    gtk_init (&amp;argc, &amp;argv);
    //Cria a janela e a ponhe no topo
    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    //Da um tamanho a janela
    gtk_window_set_default_size(GTK_WINDOW (window),300,200);
    //Da um titulo a janela
    gtk_window_set_title(GTK_WINDOW (window),&quot;Ola mundo&quot;);

    //Cria o label com a frase Ola mundo <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> !
    label = gtk_label_new(&quot;Ola Mundo <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> !&quot;);
    //Adiciona o label a janela
    gtk_container_add(GTK_CONTAINER (window), label);
    //Adiciona a funcao destroy para fechar a janela
    g_signal_connect (G_OBJECT (window), &quot;destroy&quot;,
		      G_CALLBACK (destroy), NULL);

    //Diz pra mostrar todos os widgets da janela
    gtk_widget_show_all (window);
    //loop do gtk
    gtk_main ();

    return 0;
}
//Funcao pra quando clicar no x da janela ela fechar
static void destroy( GtkWidget *widget,
                     gpointer   data )
{
    gtk_main_quit ();
}
</pre>
<p>Achou em C complicado? Então que tal em PHP-Gtk2.</p>
<p><strong>PHP-Gtk2</strong></p>
<pre class="brush: php;">
&lt;?php

$wnd = new GtkWindow();
$wnd-&gt;set_title('Olá mundo');
$wnd-&gt;set_size_request(300,200);
$wnd-&gt;connect_simple('destroy', array('gtk', 'main_quit'));

$label_ola= new GtkLabel(&quot;Olá Mundo <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> !'&quot;);
$wnd-&gt;add($label_ola);

$wnd-&gt;show_all();
Gtk::main();
?&gt;
</pre>
<p style="text-align:justify;">Se ainda assim você achou difícil ou não gostou de PHP-Gtk2, então tenta ai no python.</p>
<p><strong>Python</strong></p>
<pre class="brush: python;">
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import pygtk
pygtk.require( '2.0' )
import gtk

def main():
	window = gtk.Window(gtk.WINDOW_TOPLEVEL)
	window.set_title( &quot;Ola Mundo&quot; )
	window.set_size_request(300,200)
	window.connect('destroy',gtk.main_quit)

	label = gtk.Label(' Ola Mundo <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> !' )
	window.add(label)

	window.show_all()

	gtk.main()

if __name__ == '__main__':
	main()
</pre>
<p style="text-align:justify;">E ai está os três códigos fazem a mesma coisa, mostram uma janela com um label dizendo &#8220;ola mundo&#8221;. Agora se você não conhece nenhuma dessas linguagens ou não gosta delas há outras opções para você, eis a lista de linguagens que fazem uso da Gtk:</p>
<p><strong></strong></p>
<pre><strong>C++  	gtkmm
C# 	Gtk#
Java 	java-gnome
Python 	PyGTK
Perl 	gtk2-perl
R 	RGtk2
Guile 	guile-gnome
Ruby 	Ruby-GNOME2
PHP 	PHP-GTK
Ada 	GtkAda
OCaml 	LablGTK
Haskell Gtk2Hs
Lua 	lua-gtk
S-Lang 	SLgtk 	      </strong></pre>
<p style="text-align:justify;">
<p style="text-align:justify;">Viu quantas possibilidades você tem. Até aquela linguagem verborratica e chata que começa com J usa o Gtk.  E além disso você pode usar o Glade que é uma ferramenta onde você pode construir sua interface gráfica sem digitar código, apenas fazendo uso do projeto que o Glade gera e utilizando um parser.  Mas essa historia fica para uma próxima oportunidade.  A quem desejar aprender mais sobre Gtk, dêem uma olhada nas referências ou se liguem aqui no Core Code que em breve vou criar um tutorial de C gtk, pygtk e claro php-gtk2 com o uso do glade e sem o uso do glade.</p>
<p style="text-align:justify;">
<p style="text-align:justify;"><strong>Referências</strong></p>
<p style="text-align:justify;"><a title="Pagina do Gtk" href="http://www.gtk.org/">http://www.gtk.org/</a></p>
<p style="text-align:justify;"><a title="Gtk com C" href="http://library.gnome.org/devel/gtk-tutorial/stable/c24.html">http://library.gnome.org/devel/gtk-tutorial/stable/c24.html</a></p>
<p style="text-align:justify;"><a title="Pagina do php-gtk" href="http://www.php-gtk.com.br"><span class="a">www.php-gtk.com.br</span></a></p>
<p style="text-align:justify;"><a title="Pagina do php-gtk internacional" href="http://gtk.php.net"><span class="a">gtk.php.net</span></a></p>
<p style="text-align:justify;"><a title="Pagina com vários tutorias de php-gtk" href="http://www.kksou.com/"><span class="a">www.kksou.com/</span></a></p>
<p style="text-align:justify;"><a title="Pagina do pygtk" href="http://www.pygtk.org/"><span class="a">www.<strong>pygtk</strong>.org/</span></a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/corecode.wordpress.com/15/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/corecode.wordpress.com/15/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/corecode.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/corecode.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/corecode.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/corecode.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/corecode.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/corecode.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/corecode.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/corecode.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/corecode.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/corecode.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=corecode.wordpress.com&blog=3748115&post=15&subd=corecode&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://corecode.wordpress.com/2008/05/22/tres-vezes-gtk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/968c524e1d4a4b2b4b22e35672b5be8a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kirotawa</media:title>
		</media:content>
	</item>
	</channel>
</rss>