ToolBook: um grande software para hipertexto

Autor: Pedro Luis Kantek Garcia Navarro


O TOOLBOOK é um software específico para criar aplicações hipertexto. Na sua nova versão, ele dá todo o suporte para aplicações hipertexto. Na sua nova versão, ele dá todo o suporte para aplicações multimídia. As explicações que se seguem referem-se à versão 1.5, anterior à facilidade multimídia. Entretanto, para quem estiver pensando em criar aplicações hipertexto, embaixo do Windows (aqueles sistemas de encher os olhos) e não queira ou não possa se ater a detalhes exaustivos e difíceis de programação em Pascal ou C++, aqui vão algumas dicas.

QUEM É O PAI

Softwares, tais como filhos, costumam herdar algumas características de seus criadores. Nesse sentido usando o TB você estará em boa companhia. Ele é fabricado e vendido pela Asymetrics Corporation, que vem a ser a empresa fundada por Paul Allen. Para quem não lembra, Paul foi o sócio (50% de cada um) de Bill Gates III no início da Microsoft. Em meados da década de 80, Allen resolveu sair, forrou os bolsos, e abriu a Asymetrics. Eu acho que em pouco tempo estaremos ouvindo falar muito do TOOLBOOK, pois ele já é, e cada vez mais será, uma excelente alternativa de criação de aplicativos Windows. Mas, sem mais delongas, vamos a um vôo sobre o TB.

NÍVEIS DE USO

O TOOLBOOK trabalha em dois níveis: de autor e nível de leitor. Para usar uma aplicação TB, usa-se o nível de leitor. Para criar uma nova aplicação ou fazer modificações em uma existente, usa-se o nível de autor. Quando o TB é rodado, ele automaticamente entra em modo leitor.

A passagem para o nível de autor se dá (quando permitida) via F3. Embora a linha de comandos possa ser customizada, em geral o modo de autor tem mais comandos do que o nível de leitor.

O nome TOOLBOOK refere-se a ferramentas para a criação de aplicações. Uma aplicação é batizada de livro (deveria ser hiperlivro), que é uma boa metáfora para caracterizar qualquer aplicação TOOLBOOK.

O TB é orientado a objetos, o que significa que criar uma aplicação não é escrever uma seqüência longa e linear de comandos. Pelo contrário, em TB para se escrever um book, cria-se um vazio de depois enche-se o mesmo de páginas. A seguir, colocam-se gráficos, campos e botões em tais páginas.

Depois de criar os objetos, criam-se os scripts que descrevem o papel que cada objeto vai desempenhar na aplicação. Scripts são programas escritos usando a linguagem OpenScript.

Para abrir uma aplicação TB, basta clicar duas vezes sobre seu nome. Se a aplicação estiver protegida por password esta será pedida.

Quando o TB é instalado no Windows, automaticamente é criado um ícone chamado Bookshelf (prateleira de livros), que é o iniciador de aplicações TB.

Para criar uma nova aplicação sobre o Bookshelf, deve-se chamar o comando ADDBOOK (do Bookshelf). O nome associado ao ícone será o nome do arquivo.

OBS é um ajudante na organização dos livros. Dentro dele, é possível incluir uma nova página, incluir aplicativos nas páginas, excluir uns e outros (só não se pode excluir o último).

Dentro do BS existe o comando FILE, com o subcomando RUN. Neste, podemos rodar livros, mas o detalhe é que podem ser inicializados via este comando os seguintes programas:

- Painel de controle
- Notepad
- Clipboard

Aplicativos também podem ser criados dentro do BS (comando NEW BOOK). Neste caso o BS passa a se comportar exatamente como o TB.

A ANATOMIA DE UM BOOK

Quando se roda um livro como uma aplicação Windows, na barra superior aparece TOOLBOOK [aplicação. TBK]. Isto pode ser mudado de maneira a se colocar qualquer coisa na barra de título.

O menu (-) do TB contém, além dos comandos usuais, o subcomando RUN (acima descrito) e o comando SIZE TO PAGE, que faz com que a janela do Windows fique do exato tamanho da tela do TB.

Na parte inferior da tela, aparece o Status Box. Ele aparece e desaparece, pressionando-se F12.

A barra de menus do TOOLBOOK surge com os comandos: FILE, EDIT, TEXT, PAGE e HELP.

Páginas:

As páginas em TB têm apenas um lado e são transparentes. Toda página tem um background, que é uma superfície opaca, do mesmo tamanho da página. Qualquer objeto que possa aparecer no background aparece na página. Como a página é transparente, qualquer coisa que esteja no background será visível, a menos que algo opaco na página o cubra.

Diversas páginas podem compartilhar o mesmo background.

Quando o texto aparece em uma página, ele usualmente existe dentro de objetos conheci os como campos (fields). Campos podem ser opacos ou transparentes. Podem conter barra de scroll. Podem conter linhas de escrita (como um caderno). Podem ter sombras, diversos tamanhos e formas.

Campos usados para armazenar informações guardáveis em bancos de dados, são chamados campos de registro (record fields). Estes campos são diferentes porque podem ser usados para gerar relatórios, e para ordenar páginas.

Botões:

Geralmente usados para iniciar um processo. Os botões podem ser sem bordas, retangulares, arredondados ou sombreados. Podem ser também checkbox (um quadradinho) onde se selecionam uma ou mais opções que se desejam. Existe também o radio button, que é redondo, e no qual uma opção desabilita as outras.

Ícones:

Imagens gráficas que são clicadas.

Hotwords:

Palavras dentro de campos que atuam como se fossem botões. Entretanto, os botões são apertados para selecionar uma nova opção, ou para iniciar um processo. Já os hotwords são usadas para acessar informações relacionadas a esta palavra. O cursor muda para uma moldura quando passeia sobre uma hotword. Outra possibilidade é pedir o comando SHOW HOTWORDS no menu Text.

Gráficos:

Podem ser incluídos nas páginas.

Comandos:

O book pode, a qualquer momento, abrir uma janela de comando para permitir a execução de um comando openscript em tempo real.

Navegação:

Para ler um livro comum imprenso, deve-se passar pelas sua páginas. Assim é também no TB, com o detalhe que, aqui, passar pelas páginas chama-se navegar por elas. O conjunto de ferramentas usadas para a navegação é determinado pelo autor. Muitos autores permitem que seja usado o status box e os subcomandos do comando PAGE. Outros trocam isto por botões, hotwords, entre outros.

Para navegar, é preciso identificar uma página. Isto é feito de duas maneiras: pelo seu nome e pelo seu número. Como em um livro impresso, as páginas em TB começam em 1 e são numeradas seqüencialmente. A diferença é que é uma numeração circular. Isto é, ao chegar ao final, começa tudo de novo.

O status box mostra a página corrente e o total de páginas do book.
No comando PAGE (que pode ou não estar habilitado), existem as opções: next, previous, first, last, back e history. Em history há uma lista (até 100) das páginas visitadas, permitindo ir para qualquer uma delas.

Pode-se ir para uma página da qual se conheça uma parte do texto incluído. O subcomando SEARCH do comando PAGE permite isto.

Tabela de caracteres especiais (like-word):

tab ^t
parágrafo ^p
nova linha ^n
caret ^^
interrogação ^?
asterisco ^*

Campos:

Antes de entrar ou editar texto, é preciso conhecer o conceito de foco. Um campo está focado, quando o cursor aparece dentro. Um botão está focado quando seu título aparece rodeado por uma linha pontilhada. Quando um botão tem foco, apertando-se espaço ele é pressionado.

Quando se leva o cursor para um campo, se ele transformar em um I-beam, o campo não está bloqueado. Se o cursor não se alterar ele está bloqueado. Para mover o foco via teclado, apertar TAB e SHIFT TAB.

O limite máximo (o autor pode determinar um menor) de caracteres em um campo é de 32.000.

Para selecionar texto, usa-se o mouse. Leva-se até um canto, aperta-se o mouse, leva-se até outro e solta-se o dito cujo (exatamente como no NOTEPAD).

Quando se usa o comando CUT ou COPY (de EDIT), o TB coloca o texto selecionado dentro do Clipboard.

O texto pode ter seu tamanho ou fonte mudado no comando CARACTER. Para formatar um texto dentro de um campo, usa-se o comando PARAGRAPH.

Inclusão de Página:

Para incluir uma nova página que compartilhe o background de uma já existente, vá até a página que já tem o background escolhido e chame o comando Nova página. Ela será incluída após esta e todo o conjunto renumerado.

Como selecionar uma página:

Pressionar SHIFT e clicar no ícone de página dentro do status box. A página deste ícone fica reverso-vídeo.

Quando fazemos NEW PAGE, apenas o background é copiado. Para copiar a página com tudo dentro, deve-se fazer COPY (comando EDIT). O TB colocará a página no Clipboard.

Depois deve-se navegar até o local onde se quer fazer a inserção, e daí chamar PASTE. Todo o conjunto é renumerado. Isto permite cópias intra e inter books.

Se em vez de duplicar, quisermos mover uma página, fazer tudo igual, menos o comando COPY. Usar CUT neste caso. Para inserir diversas páginas de um book em outro, deve-se usar o subcomando IMPORT do comando FILE.

Para criar uma aplicação TB

1. Criar os objetos da aplicação.
2. Estabelecer as propriedades dos objetos.
3. Estabelecer o script de cada objeto.

Para acessar as ferramentas para construir e manipular objetos, há necessidade de ir para o nível de autor (F3). Quando isto é feito, duas coisas acontecem:

. A menu bar ganha mais comandos.
. Surge uma paleta de ferramentas.

Entretanto, em um book já existente, as coisas podem acontecer de maneira diferente, um vez que o autor pode customizar o modo de autor.

Depois que são feitas as alterações no modo autor, para testá-las deve-se ir ao modo leitor. Uma possibilidade é rodar duas instâncias do TB. Uma trabalha no modo autor e outra no modo leitor. A interface entre as duas é o book devidamente salvado em disco.

A paleta de ferramentas pode ser movida para qualquer lugar da tela. Para fazer isto, clica-se no indicador de seleção (no alto da paleta) e leva-se a paleta para o lugar desejado.

Para selecionar um objeto qualquer, basta levar o mouse até ele e clicar.

A ferramenta zoom aumenta o desenho 2, 4, 8 e 16 vezes, sempre centrando a ampliação no local da lupa. Escolhendo-se zoom com CTRL pressionado, o zoom diminui em vez de aumentar. Detalhe legal: Quando se aperta CTRL, sem nada mais, a lupa perde o "+" e ganha um "-".

Além da paleta de ferramentas, podem ser acessadas mais cinco paletas de estilo (linha, padrão, polígono, cores e espectro).

Para mostrar estas paletas, o subcomando PALETES do comando WINDOWS deve ser escolhido.

CRIANDO BOOK

Para criar uma aplicação, você deve criar um book, preencher este livro com os objetos desejados e escrever scripts para dar vida a estes objetos. O novo livro pode ser criado dentro do BOOKSHELF ou dentro do TOOLBOOK, através do subcomando NEW do comando FILE, no modo autor, obviamente.

Feito isto, devemos salvá-lo com um nome qualquer. O TB colocará este nome na barra de cima da janela.

Feito isto, a próxima etapa é determinar as propriedades do book. Para isto, escolher comando OBJECT, subcomando BOOK PROPERTIES.

Campos:

Caption: o nome que a aplicação terá na barra de título da aplicação.

Page size: permite mudar o tamanho original que é 6"x4".

Escolhendo-se isto, abre-se uma janela que tem diversas coisas, mas o que nos interessa é o tamanho potencial (cinza) e real (banco) da página em questão.

Passwords: Diversas proteções para este book.

1. Password para passar para o modo de autor.
2. Password para salvar este book com o mesmo nome.
3. Password para ler o book.

Uma página também recebe o nome de foreground (em oposição a background).

No modo de autor, geralmente aparecem as duas visões (back e fore). Entretanto, podemos escolher ver só o background (subcomando FOREGROUND ou BACKGROUND, do comando PAGE), ou simplesmente F4.

Camadas:

Ao criar uma página, podemos compartilhar o background daquela já existente ou criar um novo background também. Páginas são numeradas de 0 a 65.535 e backgrounds de 0 a 32.766. Tanto um como outro são únicos.

As páginas têm também propriedades, chamadas através de PAGE PROPERTIES.
As páginas podem ter nome, que deve ser informado no campo correspondente a PROPERTIE (até 32 caracteres, exceto quotation mark).

Embora o TOOLBOOK permita usar nomes repetidos (neste caso ele sempre colocará o nome mais o número único), devemos dar nomes diferentes, justamente para evitar esta chateação.

Podem ser assinalados nomes tanto para páginas quanto para backgrounds, a fim de melhorar seu reconhecimento nos scripts.

Campos:

O primeiro objeto que você realmente quererá colocar em uma página é o campo. Isto, porque campos são usados para realizar duas tarefas vitais: armazenar e mostrar o texto que se quer que os usuários leiam, e também aceitar e armazenar as entradas dos usuários.

Existem dois tipos de campos, os normais e os de registros. Pode-se pensar nos campos normais como notas post-it que se colam em livros convencionais. Eles serão vistos sempre que se navegar até a página que os contém. Se estes campos forem colados no background eles serão vistos em todas as páginas que compartilharem o mesmo background.

Campos de registro permitem usar o TB para gerenciar um banco de dados. Quando se coloca um registro deste no background ele continua aparecendo. Entretanto, quando se armazena texto em um registro, o TB não mostrará o texto dentro do campo em todas as páginas que compartilham o BG. Pelo contrário, o texto digitado em uma determinada página só vai aparecer quando aquela página for mostrada.

Em resumo, você pode criar múltiplas páginas que compartilhem o background, contendo uma série de campos de registros. Cada página terá uma instância destes campos (o que equivaleria a um registro em um banco de dados convencional).

Criando campos:

Selecione a ferramenta tool. Para criar um campo de registro, vá para o BG e daí selecione a ferramenta record field. Escolha um canto. Clique. Arraste. Solte.

O campo é desenhado em preto sobre branco (como default). Entretanto, se houver cor de preenchimento e de contorno escolhidas elas serão usadas. Para mudar um campo já existente, selecione-o e daí chame as paletas de cor e espectro.

Depois de criar um campo, é hora de entrar com sua propriedades. Por exemplo, se for um campo muito grande, certamente haveremos de querer que tenha uma scroll bar.

Para isto:

a) seleciona-se o campos

b) escolhe-se o comando FIELD PROPERTIES (comando OBJECT).

Quando um campo é criado, o TB assinala um número entre 0 e 4.294.967.295, que é único.

O usuário pode dar um nome ao campo para melhor referenciá-lo nos scripts.

Como nos botões, a camada em que o campo foi colocado é que determina qual será a ordem em que ele receberá o foco. Se desejarmos, podemos mudar a camada em que o campo aparece, modificando a propriedade Layer na descrição do campo.

A propriedade Single line pode ser estabelecida em True, clicando-se na caixinha quadrada da tela de diálogo em questão (X é true, vazio é false).

Existem ainda as propriedades de baseline (linhas de apoio para escrever, como num caderno), transparente e activate script.

Existe a propriedade Single line que, quando ativada, permite a entrada de uma única linha.
A propriedade Activate faz com que o campo seja protegido contra mudança no modo de leitor. Em outras palavras, se esta propriedade for True, o TB não deixará o foco parar neste campo. Esta propriedade também ativa qualquer hotword dentro deste texto.

Por default, o TB estabelece para falso em todos os campos de FG e em todos os campos de registro. Em BG o TB estabelece para verdadeiro, e não permitirá que se estabeleça para falso.

Formatação de caractere e de parágrafo

Sem nenhuma novidade, exceto quanto à maneira de chamar:

1. Selecionar o campo
2. Comando TEXT
3. Subcomando Caracter

Criando hotwords e botões

Para criar uma hotword:

1. Certifique-se de que a propriedade activated do campo é TRUE.
2. Duplo clique no texto, para chamar o cursor I-beam.
3. Selecione a palavra ou conjunto de palavras que serão HOTWORD.
4. Subcomando CREATE HOTWORD, comando TEXT.
5. Para que a hotword apareça diferente, deve-se chamar o comando MENU, subcomando SHOW HOTWORDS.
6. Depois de criada, o próximo passo é estabelecer as propriedades (levar o cursor lá, comando OBJECT, subcomando HOTWORD PROPERTIES).

Quando uma HW é criada, o TB assinala um número único entre 0 e 4 bilhões e alguma coisa. Se o usuário quiser poderá dar um nome à HW, e neste caso ficará mais fácil chamá-la de dentro do script.

A propriedade Highlight faz com que a hotword mude de cor quando selecionada no nível de leitor. Caso contrário, não há nenhum feedback.

Para ligar uma hotword a uma outra página, deve-se usar os botões Link to e Link with. Entretanto, se algo mais for necessário, deve-se usar o botão script e mandar brasa...

Para converter uma HOTWORD em texto normal, devemos levar o cursor até ela, e daí escolher o comando TEXT, subcomando REMOVE HOTWORD (ao invés de CREATE HOTWORD). Neste caso, o TB deletará o script.

Eventos

São acontecimentos que ocorrem dentro do book. Por exemplo, apertar um botão, entrar dentro de um campo, escolher um comando de um menu, escrever dentro de um campo etc.
Quando um evento ocorre, o TB manda uma mensagem para o objeto que é alvo do evento.
Por exemplo, se você clica um botão, o TB manda a mensagem Button Up para o botão.

Quando nenhum evento está ocorrendo, o TB manda a mensagem Idle para a página corrente. Uma lista completa de mensagens e eventos estão na documentação.

Quando um objeto recebe uma mensagem, o TB examinará o script deste objeto para determinar se ele contém um handler para esta mensagem. Um handler tem o nome da mensagem e indica o que fazer quando a mensagem chegar para este objeto.

Se o objeto não possue o handler, a mensagem é passada para o próximo objeto da hierarquia.

Comentários podem ser escritos dentro de um script depois de escrever 2 hífens seguidos. A propósito, o software diz o seguinte "...the lowest place in hell is reserved for those who don't place comment in their scripts..."

O caractere de continuação do script é uma barra ao contrário.

Hierarquia dos objetos

Quando um objeto recebe uma mensagem, se ele tiver um handler a mensagem é processada. Se não tiver, a mensagem é passada para o próximo na hierarquia. O comando forward reenvia a mensagem para cima da hierarquia.

Maiores detalhes: O ABC do TOOLBOOK, livro editado pela Makron Books.