Interação por IG (Interface Gráfica)

XLogo lhe dá a possibilidade de criar alguns componentes gráficos na área de desenho (Botão, menu, ...). Esses componentes estão associados às interfaces gráficas e, para facilitar a memorização, todas essas primitivas iniciam por «IG»(Interface Gráfica). São as primitivas igbotão e igmenu e iglocal, e suas complementares igfaz, igapague e igdesenhe.


Para criar um componente: Para usar esses objetos gráficos é necessário criá-los e definir alguns parâmetros.

Para criar um botão:
Utilizamos a primitiva igbotão:

# Este comando cria um botão identificado pelo nome b
# No botão aparecerá escrito: Clique
igbotão "b "Clique

Para criar um menu de rolagem:
Utilizamos a primitiva igmenu.

# Este comando cria um menu de rolagem identificado pelo nome m
# e conterá 3 entradas: item1, item2 e item3
igmenu "m [item1 item2 item3]


Como atribuir propriedades a esses componentes?

iglocal: Permite posicionar (localizar) o elemento gráfico onde desejar na área de desenho. Por exemplo, para posicionar o botão definido acima no ponto (20, 100), escrevemos:

iglocal "b [20 100]

Se o local do componente não for indicado, ele será localizado, por padrão, no canto superior esquerdo da área de desenho.
igapague: Apaga (suprime, deleta) um elemento gráfico. Por exemplo, para apagar o botão acima:

igapague "b

igfaz: Define o que o elemento gráfico faz quando o usuário clicar sobre ele.

# A tat avançará 100 passos se clicarmos sobre o botão "b

igfaz "b [pf 100 ]

# Para o menu de rolagem, cada item contém sua própria ação
igfaz "m [[mostre "item1] [mostre "item2] [mostre "item3]]

igdesenhe: Mostrará o componente gráfico na área de desenho. É importante, pois no xLogo o botão ou menu só será exibido com este comando.
Por exemplo, para vermos o botão b:

igdesenhe "b


Como exemplo, vamos reescrever os procedimentos criados em Interação com o mouse. Note que dessa vez o projeto fica bem mais econômico, por assim dizer.

aprenda vai
limpedesenho botão
un mudepos [0 -100] ul
fim

aprenda botão
#cria a botão "bQ" com o rótulo "Quadrado"
igbotão "bQ "Quadrado
#Posiciona o botão "bQ
iglocal "bQ [-80 100]
#Informa ao botão bQ que ele executará o procedimento quadrado ao ser clicado
igfaz "bQ [quadrado]
#Exibe o botão bQ
igdesenhe "bQ

#A seguir, a mesma idéia geral para o botão "bC" que desenhará um círculo:
igbotão "bC "Círculo
iglocal "bC [80 100]
igfaz "bC [circule]
igdesenhe "bC
fim

aprenda circule
repita 90 [pf 1 pe 4] pe 90 un  pf 40 pd 90 ul
fim

aprenda quadrado
repita 4 [pf 40 pd 90] pd 90 pf 40 pe 90
fim

©© <2007>, xlogo.tuxfamily.org