int main() {
print("Olá Mundo\n");
return 0;
}
Guarda-mos as alterações ao ficheiro, feito isto abrimos um terminal no local onde acabamos de guardar o ficheiro que acabamos de criar, digitamos no terminal o seguinte comando;
valac "hello.vala" -o hello
Isso irá criar um arquivo executável chamado "hello" no directório actual. Execute o arquivo a partir de um terminal usando o seguinte comando;
./hello
Aplicação simples "Olá mundo" usando objetos;
Aqui está o mesmo exemplo escrito novamente, desta vez usando recursos orientados a objectos Vala. O programa vai simplesmente exibir o primeiro argumento que é passado para ele. Para isso criamos um novo arquivo de texto com o nome de "hello2.vala", depois inserimos este código no arquivo e guarda-mos as alterações;
class Example : GLib.Object {
public static void main(string[] args) {
var ex = new Example();
if (args.length < 2)
print("Hello World\n");
else
ex.display(args[1]);
}
void display(string message) {
stdout.printf(message + "\n");
}
}
Agora vamos compilar o arquivo abrindo um terminal no local onde temos arquivo que acabamos de criar, digitamos no terminal o seguinte comando;
valac "hello2.vala" -o hello2
Isso irá criar um arquivo executável chamado "hello" no directório actual. Execute o arquivo a partir de um terminal usando o seguinte comando;
./hello2 "Welcome to Vala"
Aplicação simples GUI usando GTK
Agora iremos aprender a criar uma aplicação que pode realmente ser útil. Vamos criar uma aplicação GUI para eliminar os "Documentos Recentes" do histórico de um PC Linux/Debian. Vamos criar um novo arquivo de texto com o nome de "app1.vala", depois inserimos este código no arquivo e guarda-mos as alterações;
using Gtk;
class MainWindow : Window {
public static int main (string[] args)
{
Gtk.init(ref args); //Inicia Gtk
var window = new MainWindow (); //Cria uma Janela
window.destroy.connect (Gtk.main_quit); //Sai do aplicativo depois de fechar a Janela
window.show_all (); //Torna todos os widgets visíveis
Gtk.main(); //Inicia o loop principal
return 0;
}
public MainWindow()
{
this.title = "Minha 1ª App";
this.border_width = 10;
this.set_default_size (250, 60);
this.window_position = WindowPosition.CENTER;
this.destroy.connect(Gtk.main_quit); //Sai do aplicativo quando a janela é fechada
var btnClear = new Button.with_label ("Apagar Documentos Recentes");
btnClear.clicked.connect (clear_history); //Liga o evento à função
add(btnClear); //Adiciona botão a janela
}
public void clear_history ()
{
string HOME = Environment.get_home_dir ();
try {
Process.spawn_command_line_sync (@"rm $HOME/.local/share/recently-used.xbel");
Process.spawn_command_line_sync (@"touch $HOME/.local/share/recently-used.xbel");
messagebox_show ("Sucesso", "Histórico de documentos recentes eliminado");
}
catch (Error e){
string msg = e.message;
stderr.printf(msg);
messagebox_show ("Error", msg);
}
}
public void messagebox_show(string title, string message)
{
var dialog = new Gtk.MessageDialog(
null,
Gtk.DialogFlags.MODAL,
Gtk.MessageType.INFO,
Gtk.ButtonsType.OK,
message);
dialog.set_title(title);
dialog.run();
dialog.destroy();
}
}
Temos o código escrito para a criação de uma janela simples com um único botão. O evento Click do botão está ligado à função
clear_history (). O
clear_history () função executa comandos para eliminar um arquivo na sua pasta pessoal. Este arquivo contém a lista de documentos que foram recentemente acessados por você.
Agora vamos compilar o arquivo abrindo um terminal no local onde temos arquivo que acabamos de criar, digitamos no terminal o seguinte comando;
valac --pkg gtk+-3.0 "app1.vala" -o app1
A biblioteca
GTK3 contém uma coleção de classes para criar
widgets como janelas e botões. Uma vez que estamos criando um aplicativo
GTK, precisamos
linkar o programa com a biblioteca
GTK3 (isto é semelhante a adicionar uma referência a um arquivo
DLL no projeto
C#).
O "
-- pkg gtk + -3.0" argumento diz ao compilador
Vala para fazer a ligação. Podemos adicionar vários "
-- pkg" argumentos para cada biblioteca usada pela nossa aplicação. Você pode consultar o
site oficial ValaDoc para a lista completa de bibliotecas que você pode usar em seus projectos.
Vou recomendar que você mantenha esta página aberta numa janela de navegador quando você está programando com Vala. Ele permitirá que você procurar rapidamente bibliotecas e funções que você pode usar em seu projeto. Ele contém a referência completa para tudo que você precisa saber sobre como usar as classes e funções built-in.
Execute o arquivo a partir de um terminal usando o seguinte comando;
./app1
Clique no botão "Apagar Documentos recentes" para limpar o seu histórico;
Como esta é uma aplicação GUI, também pode executá-lo clicando duas vezes no arquivo do Nautilus ou qualquer outro gerenciador de arquivos. Executando-o a partir de uma janela de terminal é melhor porque será capaz de ver as mensagens que o programa grava na saída padrão (stdout) e erro padrão (stderr).
Clicando em
Exemplos GTK, poderá ver mais alguns exemplos
GTK.