Para interface gráfica, ele oferece o módulo BLOX. Sua IDE pode ser iniciada pelo comando:
bash$ gst-blox
Caso queira navegar pelas classes de sua própria imagem –
dev.im
por exemplo –, use:bash$ gst-blox -I dev.im
Este artigo apresentará um exemplo extremamente simples de uso programático do BLOX para criar interface gráfica com o usuário, baseado no código encontrado no tutorial oficial.
Primeiro vamos criar a imagem contendo o módulo BLOX:
bash$ gst-load -iI blox-sample.im Blox
Crie um arquivo fonte
blox-sample.st
onde vamos trabalhar.Declare as variáveis que usaremos:
| win con lab bt |
Agora crie a janela principal com o título
Example
e seu container:" Main window "
win := BLOX.BWindow new: 'Example'.
con := BLOX.BContainer new: win.
Para definar as dimensões da janela e a callback do botão de fechamento:
" Main window's geometry and close button "
win
width: 200 height: 50;
callback: [
BLOX.Blox terminateMainLoop.
true.
] message: #value.
A callback encerrará o ciclo principal. Callbacks de janelas precisam ter a última saída
true
(quando a janela deve ser fechada) ou false
(quando a janela não deve ser fechada).Podemos então configurar a geometria padrão para widgets filhos:
" Geometry management "
con
setVerticalLayout: true;
defaultHeight: 50;
defaultWidth: 200.
Agora, para criar um rótulo (label) e um botão:
lab := BLOX.BLabel new: con label: 'Waiting...'.
bt := BLOX.BButton new: con label: 'Click me'.
O rótulo exibirá seu texto centralizado, com fundo azul e cor de texto branco:
" Label setup "
lab
alignment: #TopCenter;
backgroundColor: #blue;
foregroundColor: #white.
A callback que responde ao evento clique no botão:
" Button callback "
bt
callback: [
lab label: 'HELLO WORLD!'.
] message: #value.
Para exibir a janela:
" Show window "
win map.
Por último devemos iniciar o ciclo principal (mainloop):
" Start mainloop "
BLOX.Blox dispatchEvents: win.
Se quiser, é possível exibir uma mensagem indicando o fim do programa:
Transcript
show: 'Finished';
cr.
Resta apenas executar a aplicação:
bash$ gst -I blox-sample.im -f blox-sample.st
Outra opção ao BLOX é Gtk+.
[]’s
Cacilhας, La Batalema