Rexx - Interface gráfica do usuário
Para usar as interfaces gráficas de usuário disponíveis no Rexx, é necessário usar 2 pacotes, um é chamado ActiveTcl e o outro é o Rexxtkpacote. Junto com esses 2 pacotes, pode-se projetar formulários normais que podem ter botões e outros controles nos formulários.
Configuração de ambiente
A primeira coisa a fazer é a configuração do ambiente. Vamos seguir as etapas a seguir para ter o ambiente no lugar.
Step 1 - Baixe o pacote Activetcl do seguinte site - https://www.activestate.com/activetcl

Step 2- O próximo passo é iniciar a instalação do ActiveTCl. Clique no botão Avançar na tela para prosseguir.

Step 3 - Aceite o contrato de licença e clique no botão Avançar.

Step 4 - Escolha um local para a instalação e clique no botão seguinte.

Step 5 - Escolha um local para a instalação dos demos e clique no botão Avançar.

Step 6 - Clique no botão Avançar para prosseguir com a instalação.

Step 7 - Clique no botão Concluir para concluir a instalação.

Step 8 - A próxima etapa é baixar o software Rexxtk a partir do seguinte link - https://sourceforge.net/projects/rexxtk/
Step 9- Clique duas vezes no arquivo do instalador do link na etapa anterior para iniciar a instalação. Clique no próximo botão para prosseguir.

Step 10 - Na próxima tela, clique no botão Sim para concordar com o Contrato de Licença.

Step 11 - Na próxima tela, escolha o local de instalação e clique no botão Avançar.

Step 12 - Escolha o local da pasta do programa e clique no botão seguinte.

Assim que a instalação estiver concluída, podemos agora começar com a programação da GUI's no Rexx.
Programa Básico
Vamos ver como podemos projetar um programa básico simples com Rexx em um formato de interface gráfica com o usuário.
Exemplo
/* Main program */
call RxFuncAdd 'TkLoadFuncs','rexxtk','TkLoadFuncs'
call TkLoadFuncs
do forever
interpret 'Call' TkWait()
end
call TkDropFuncs
exit 0
As seguintes coisas precisam ser observadas sobre o programa acima -
A biblioteca Rexxtk e todas as suas funções são carregadas usando o comando RxFuncAdd.
O loop do forever manterá a janela aberta e aguardará a entrada do usuário.
Assim que a entrada do usuário for detectada, o programa será encerrado.
Quando o programa acima for executado, você obterá a seguinte saída.

Criando Menus
Os menus são criados com a ajuda das funções TkMenu e TkAdd. A sintaxe dessas funções é fornecida a seguir.
Sintaxe
TkMenu(widgetname,options,0)
Parâmetros
Widgetname - Um nome para dar ao menu.
As opções podem ser qualquer uma das seguintes -
selectcolor - se as caixas de seleção ou botões de rádio forem usados como opções de menu, esta opção especifica a cor a ser escolhida quando qualquer opção de menu é selecionada.
tearoff - Esta opção é usada para adicionar submenus ao menu principal.
title - A string que deve ser usada para dar um título à janela.
Valor de retorno
Um identificador para o menu criado.
Exemplo
/* Main program */
call RxFuncAdd 'TkLoadFuncs','rexxtk','TkLoadFuncs'
call TkLoadFuncs
menubar = TkMenu('.m1')
filemenu = TkMenu('.m1.file','-tearoff', 0)
call TkAdd menubar, 'cascade', '-label', 'File', '-menu', filemenu
call TkAdd filemenu, 'command', '-label', 'Open...', '-rexx', 'getfile'
call TkConfig '.', '-menu', menubar
do forever
interpret 'Call' TkWait()
end
call TkDropFuncs
exit 0
As seguintes coisas precisam ser observadas sobre o programa acima -
A barra de menu é criada usando a função TkMenu. O parâmetro 'tearoff' significa que precisamos criar submenus que serão anexados ao menu principal.
Em seguida, adicionamos 2 opções de menu chamadas Arquivo e Abrir usando a função TkAdd.
Quando o programa acima for executado, você obterá a seguinte saída.
