utilizando o recurso de heranca do paradigma de orientacao a objetos. Logo, uma GtkWindow E um GtkWidget.A funcao gtk_init e reponsavel pela inicializacao do ambiente GTK. Deve ser chamada antes de qualquer outra.Vamos entao, enfim, criar a janela. Atente para o fato que, neste passo, iremos criar a janela EM MEMORIA, ou seja, na verdade nao vamos criar "o objeto grafico janela, na tela", mas sim, criar as estruturas de dados em memoria que vao armazenar e controlar o funcionamento deste futuro objeto grafico. A funcao que faz isso e a gtk_window_new. Vamos ver na documentacao qual e o prototipo desta funcao (ou seja, quais parametros precisamos passar para ela executar seu trabalho, e o que ela nos retorna). Vou utilizar para isso o DEVHELP, acessando dentro dele o "GTK+ 2 reference manual":Para usar a funcao, entao, precisaremos indicar um "GtkWindowType". O que e isso? E um parametro que diz que tipo de janela iremos criar, se uma janela principal (com tudo que tem direito, bordas, redimensionamento, titulo, etc...) ou uma janela "basica", sem esses recursos. Se clicarmos no proprio link "GtkWindowType, o DEVHELP vai nos mostrar que dados sao validos para este parametro (ou seja, quais os valores que estao definidos na enum GtkWindowType).Podemos entao passar para a funcao o valor GTK_WINDOW_TOPLEVEL (para uma janela normal, com tudo) ou GTK_WINDOW_POPUP (a janela basica "no osso"). O DEVHELP mostra uma descricao basica para esses valores.Voltando a definicao da funcao gtk_window_new, vemos que ela retorna um ponteiro para o tipo GtkWidget. Ou seja, vamos armazenar este retorno (que e efetivamente a referencia para os dados da janela criados na memoria) na variavel window, criada anteriormente.Vamos agora definir o texto que vai aparecer na barra de titulo da janela (Nao esqueca que nossa janela ainda e um "projeto" de janela, na memoria, e nao um objeto grafico bonitinho na tela do computador... ). Para isso utilizaremos a funcao gtk_window_set_title. La vamos nos novamente no DEVHELP...A funcao nao retorna nada (void), mas precisa de 2 parametros: um ponteiro para GtkWindow (referencia da janela que vamos definir o texto na barra de titulo) e um ponteiro para "const gchar".Como diria Jack, "vamos por partes": armazenamos a referencia da janela num ponteiro para GtkWidget, e agora voce diz que quer um ponteiro para GtkWindow? Bem, se voce relembrar o primeiro post dessa serie, vera que a hierarquia de objetos (widget hierarchy) comeca em GtkWidget e, neste caso especifico, termina em GtkWindow. Ou seja, uma GtkWindow E uma GtkWidget, entao podemos usar uma variavel no lugar da outra sem problemas! (ou quase...)E "quase" sem problemas porque a linguagem C nao foi construida levando em consideracao o paradigma da orientacao a objetos. Desta forma, algumas coisas nao sao tao transparentes como seriam numa linguagem especificamente projetada para este paradigma. No nosso caso, poderemos usar a variavel window, que e GtkWidget, em um lugar que se espera uma GtkWindow, mas teremos que indicar que uma pequena conversao devera ser feita. Isto e feito utilizando-se uma "funcao" que faz esse tipo de conversao pra gente. Neste caso, fica:gtk_window_set_title ( GTK_WINDOW( window