
O "desktop", como seu nome indica, nada mais é do que uma área que representa o ambiente e as ferramentas de trabalho do usuário. Nela são colocados alguns objetos, tais como ícones, painéis, pastas e atalhos que permitem identificar, acessar e gerenciar os componentes do sistemas operacional, assim como disponibilizar os recursos para desenvolvimento dos aplicativos específicos de cada usuário.
As janelas constituem, basicamente, a maneira com a qual o usuário visualiza e interage com os procedimentos e as informações. Por isso, é extremamente importante que cada janela seja planejada, desenhada e implementada de maneira consistente.
As operações básicas com janelas incluem: ativar, desativar, abrir, fechar, mover, redimensionar, maximizar, minimizar, esconder, mostrar, rolar e particionar. As janelas fornecem acesso a diferentes tipos de informação e, de acordo com sua utilização, são classificadas em dois tipos: janela principal e janela secundária.
Uma janela principal envolve a interação com objetos através de atividades como visualização e edição. Adicionalmente, em cada janela principal, podem ser incluídas múltiplas janelas secundárias, de forma a permitir que o usuário especifique parâmetros e opções, ou seja, detalhes mais específicos em relação aos objetos e procedimentos incluídos na janela principal.
Uma janela principal consiste, usualmente, de uma moldura, que define sua extensão, um menu de controle, uma janela (ou barra) de status, barras de rolamento (quando necessário) e um título que identifica o que está sendo apresentado na janela.
Geralmente, cada janela principal requer um conjunto de janelas secundárias para complementar as atividades do usuário na janela principal. As janelas secundárias são similares às principais mas diferem em seu aspecto, comportamento e utilização. Exemplos de janelas secundárias são: Folhas de propriedades (property sheets), Caixas de diálogo (Dialog boxes), paletas (palette Windows), Caixas de mensagens (message boxes) e muitos outros.
A janela principal de um programa OpusWin possui, como dimensão inicial default, 24 linhas por 80 colunas. Estes valores podem ser modificados através de opções OpusWin, tais como $WINLINES=<num> e $WINCOLS<num>, especificadas no início do programa.
A opção $MAXIMIZE indica que a tela deve ser maximizada, sendo calculado automaticamente o número máximo de linhas e colunas, dependendo da resolução configurada pelo usuário.
As funções numéricas MAXLINES() e MAXCOLUMNS() retornam o número máximo de linhas e colunas na janela principal, dependendo da opção $MAXIMIZE e da resolução da tela.
Exemplo
$maximize
prog
? maxlines() && retorna 38 em resolução 800x600
? maxcolumns() && retorna 100 em resolução 800x600
A OpusWin utiliza as opções $NOSCREEN e $NOWINDOW para determinar que a janela principal do programa não será criada.
A opção $NOSCREEN permite criar programas Windows cuja janela principal não será mostrada. Neste caso, o programa será executado em background e terminará sem avisar.
A opção $NOWINDOW permite criar programas Windows sem janela principal. Neste caso, o programa será executado em background.
Exemplo
$noscreen
prog
database EXEMPLO 1 a 2
use PESSOA
locate
do while !eof()
replace IDADE with IDADE+1
change
continue
enddo
Observações
Com a opção $NOSCREEN, o programa não poderá receber parâmetros na execução. A opção $NOWINDOW permite a passagem de parâmetros, para o programa.
Uma janela secundária inclui, usualmente, uma borda e uma barra de título. O usuário pode mover a janela, arrastando sua barra de título. Porém, esta janela, por ser secundária, não possui botões de maximizar e minimizar (pois essas operações não se aplicam a janelas secundárias), nem possui barra ou janela de status. Um botão "Close" pode ser incluído para fechar ("destruir") a janela. O título da janela não inclui ícone, como vimos na janela primária. Veja na figura a seguir exemplos típicos de janelas secundárias.
