#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 |
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(); }
Definido na linha 2006 do ficheiro ecra.H.
|
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).
Definido na linha 1059 do ficheiro ecra_impl.H. Referências dimensao(), Slang::Ecra::dimensao() e Slang::Dimensao::eCanonica(). |
|
Devolve a dimensão do troço.
Definido na linha 1068 do ficheiro ecra_impl.H. Referenciado por Slang::Ecra::cola(), Slang::Ecra::operator>>() e Troco(). |
|
|