Página principal   Módulos   Lista de namespaces   Hierarquia de classes   Lista de componentes   Lista de ficheiros   Membros do namespace   Componentes membro   Ficheiros membro   Páginas relacionadas  

Referência à classe Slang::Ecra::Troco
[Ferramentas de ecrã]

Esta classe serve para representar um troço de ecrã. Mais...

#include <Slang++/ecra.H>

Mostrar lista completa dos membros

Membros públicos

 Troco (Dimensao const &dimensao)
 Constrói um novo troço.

Dimensao dimensao () const
 Devolve a dimensão do troço.


Amigos

class Ecra


Descrição detalhada

Esta classe serve para representar um troço de ecrã.

Os troços de ecrã são úteis para guardar partes do ecrã, que mais tarde podem ser desenhados onde se entender.

Uma variável do tipo Troco (leia-se "troço") guarda uma parte do ecrã com todas as suas propriedades (i.e., caracteres e cores (do texto e do fundo) de todas as células de uma zona, ou trço, rectangular do ecrã. Esta classe é especialmente útil em operações como cortar e colar (copy & paste) para guardar a parte do ecrã que se pretende reproduzir e depois pôr este mesmo troço de ecrã noutra ou na mesma posição.

Exemplo

O seguinte programa demonstra a utilização de troços de ecrã:

#include <string>

#include <Slang++/slang.H>

extern "C" {
#include <unistd.h>  // para sleep()
}

using namespace std;

using namespace Slang;

// Este exemplo deve ser testado em janelas com pelo menos 80 colunas!
int main()
{
    string letras = "abcdefghijklmnopqrstuvwxyz";

    // Preenche o ecrã com um padrão de letras:
    for(int i = 0; i != ecra.dimensao().numeroDeLinhas(); ++i) {
        ecra << cursor(i, 0);
        for(int j = 0; j != ecra.dimensao().numeroDeColunas(); ++j)
            ecra << letras[(i * ecra.dimensao().numeroDeColunas() +
                            j) % letras.size()];
    }

    ecra << refresca;

    Aviso("Ecrã preenchido.").interage();

    // Cria uma caixa de dimensão 10 × 20 com origem na posição (0, 0):
    Caixa caixa(Posicao(0, 0), Dimensao(10, 20));  
        
    // Obtém cópia do troço de ecrã que se encontra sob a caixa:
    Ecra::Troco troco = ecra.trocoDe(caixa); 

    Aviso("Troço copiado.  Tome atenção às alterações que "
          "ocorrerão no ecrã!").interage();

    // Move o cursor para a posição (11, 21), cola o troço copiado acima nessa
    // posição e refresca o ecrã de modo a que estas modificações se tornem
    // visíveis:
    ecra << cursor(11, 21) << troco << refresca;

    Aviso("Troço colado.  Não viu?  Vou colar em sequência...").interage();

    for(int j = 22; j != 80; ++j) {
        // Move o cursor para a posição (11, j), cola o troço copiado acima nessa
        // posição e refresca o ecrã de modo a que estas modificações se tornem
        // visíveis:
        ecra << cursor(11, j) << troco << refresca;
        
        // Espera 1 segundo:
        sleep(1);
    }

    Aviso("Agora viu...").interage();
}

Invariante:
dimensao_.numeroDeLinhas() * dimensao_.numeroDeColunas() = dados.size().

Definido na linha 2006 do ficheiro ecra.H.


Documentação dos Construtores & Destrutor

Slang::Ecra::Troco::Troco Dimensao const &    dimensao [inline, explicit]
 

Constrói um novo troço.

É pouco usual ser usado directamente. Normalmente é a própria classe ecrã que constrói o troço e o devolve, por exemplo através da operação Ecra::trocoDe() (e portanto o construtor mais usado é o construtor por cópia).

Precondição:
dimensao.eCanonica().
Poscondição:
*this é um troço com a dimensão indicada, embora vazio.

Definido na linha 1059 do ficheiro ecra_impl.H.

Referências dimensao(), Slang::Ecra::dimensao() e Slang::Dimensao::eCanonica().


Documentação dos métodos

Slang::Dimensao Slang::Ecra::Troco::dimensao   const [inline]
 

Devolve a dimensão do troço.

Precondição:
V.
Poscondição:
dimensao = dimensão do troço.

Definido na linha 1068 do ficheiro ecra_impl.H.

Referenciado por Slang::Ecra::cola(), Slang::Ecra::operator>>() e Troco().


Documentação das classes amigas e funções relacionadas

friend class Ecra [friend]
 

Definido na linha 2039 do ficheiro ecra.H.


A documentação para esta classe foi gerada a partir dos seguintes ficheiros:
Gerado em Tue Dec 3 15:19:37 2002 para Pacotes por doxygen1.3-rc1