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::Posicao
[Ferramentas de ecrã]

Representa a posição de uma célula do ecrã. Mais...

#include <Slang++/ecra.H>

Mostrar lista completa dos membros

Membros públicos

Construtores
 Posicao (int const linha=0, int const coluna=0)
 Constrói uma nova posição.

Inspectores
int linha () const
 Devolve a linha do ecrã correspondente à posição.

int coluna () const
 Devolve a coluna do ecrã correspondente à posição.

Modificadores
void mudaLinhaPara (int const nova_linha)
 Muda a linha do ecrã correspondente à posição para nova_linha.

void mudaColunaPara (int const nova_coluna)
 Muda a coluna do ecrã correspondente à posição para nova_coluna.

Serializadores
 Posicao (std::istream &entrada)
 Constrói uma posição por carregamento a partir de um canal de entrada.

void carregaDe (std::istream &entrada)
 Carrega a posição a partir de um canal.

void guardaEm (std::ostream &saida) const
 Guarda a posição num canal.

Operadores especiais de atribuição
Posicao & operator+= (Dimensao const &deslocamento)
 Adiciona a posição de uma dimensão interpretada como um vector.

Posicao & operator-= (Dimensao const &deslocamento)
 Subtrai a posição de uma dimensão interpretada como um vector.


Funções associadas

(Note que não são funções membro)

Posicao const operator+ (Posicao posicao, Dimensao const &deslocamento)
 Devolve a adição de uma posição com uma dimensão (a dimensão é interpretada como um vector).

Posicao const operator- (Posicao posicao, Dimensao const &deslocamento)
 Devolve a subtracção de uma posição de uma dimensão (a dimensão é interpretada como um vector).

Posicao const operator+ (Dimensao const &deslocamento, Posicao posicao)
 Devolve a adição de uma posição com uma dimensão (a dimensão é interpretada como um vector).

Posicao const operator- (Dimensao const &deslocamento, Posicao const &posicao)
 Devolve a subtracção de uma posição de uma dimensão (a dimensão é interpretada como um vector).

Dimensao const operator- (Posicao const &destino, Posicao const &origem)
 Devolve a diferença entre duas posições, que é a dimensão correspondente ao vector entre as duas posições.

Posicao const operator- (Posicao const &posicao)
 Devolve o simétrico de uma posição.

bool operator== (Posicao const &uma_posicao, Posicao const &outra_posicao)
 Indica se duas posições são iguais.

bool operator!= (Posicao const &uma_posicao, Posicao const &outra_posicao)
 Indica se duas posições são diferentes.


Descrição detalhada

Representa a posição de uma célula do ecrã.

As coordenadas de uma posição são inteiras e expressas em (linha, coluna). A linha 0 corresponde ao topo do ecrã e a coluna 0 corresponde ao lado esquerdo do ecrã. Note-se que conceptualmente o ecrã é ilimitado (ou melhor, é limitado apenas pela gama dos inteiros usados como coordenadas), o que significa que as posições podem ter coordenadas negativas.

É possível realizar operações aritméticas com posições e dimensões (i.e., valores da classe Dimensao). As posições são entendidas como pontuais, enquanto as dimensões são entendidas como vectoriais. Assim, a diferença entre duas posições é uma dimensão, sendo também possível adicinar ou subtrair dimensões a posições, de que resulta uma nova posição.

As posições podem ser inseridas no ecrã, usando o operador <<, o que tem como efeito colocar o cursor na posição inserida (ou na posição mais próxima do ecrã real, se o ecrã tiver o cursor limitado ao ecrã real).

Invariante:
V.

Definido na linha 69 do ficheiro ecra.H.


Documentação dos Construtores & Destrutor

Slang::Posicao::Posicao int const    linha = 0,
int const    coluna = 0
[inline, explicit]
 

Constrói uma nova posição.

Por omissão a posição corresponde ao canto superior esquerdo do ecrã.

Precondição:
V.
Poscondição:
linha() = linha e coluna() = coluna.

Definido na linha 19 do ficheiro ecra_impl.H.

Referenciado por carregaDe().

Slang::Posicao::Posicao std::istream &    entrada [explicit]
 

Constrói uma posição por carregamento a partir de um canal de entrada.

Assume-se que os dados no canal têm um formato equivalente ao produzido pela operação guardaEm().

Precondição:
entrada.good().
Poscondição:
Posicao é a posição que se encontrava no canal de entrada.
Excepções:
ErroAoCarregar é lançada se a construção por carregamento falhar.

Definido na linha 16 do ficheiro ecra.C.


Documentação dos métodos

int Slang::Posicao::linha   const [inline]
 

Devolve a linha do ecrã correspondente à posição.

Precondição:
V.
Poscondição:
linha() = linha a que a posição corresponde.

Definido na linha 26 do ficheiro ecra_impl.H.

Referenciado por Slang::Caixa::bordaContem(), Slang::Ecra::cola(), Slang::Caixa::contem(), Slang::Ecra::desenha(), Slang::Ecra::moveCursorPara(), Slang::Caixa::operator *=(), Slang::Caixa::operator+=(), Slang::Ecra::operator>>() e Slang::Ecra::trocoDe().

int Slang::Posicao::coluna   const [inline]
 

Devolve a coluna do ecrã correspondente à posição.

Precondição:
V.
Poscondição:
coluna() = coluna a que a posição corresponde.

Definido na linha 33 do ficheiro ecra_impl.H.

Referenciado por Slang::Caixa::bordaContem(), Slang::Ecra::cola(), Slang::Caixa::contem(), Slang::Ecra::desenha(), Slang::Ecra::moveCursorPara(), Slang::Caixa::operator *=(), Slang::Caixa::operator+=(), Slang::Ecra::operator>>() e Slang::Ecra::trocoDe().

void Slang::Posicao::mudaLinhaPara int const    nova_linha [inline]
 

Muda a linha do ecrã correspondente à posição para nova_linha.

Precondição:
V.
Poscondição:
linha() = nova_linha.

Definido na linha 40 do ficheiro ecra_impl.H.

void Slang::Posicao::mudaColunaPara int const    nova_coluna [inline]
 

Muda a coluna do ecrã correspondente à posição para nova_coluna.

Precondição:
V.
Poscondição:
coluna() = nova_coluna.

Definido na linha 49 do ficheiro ecra_impl.H.

void Slang::Posicao::carregaDe std::istream &    entrada [inline]
 

Carrega a posição a partir de um canal.

Assume-se que os dados no canal têm um formato equivalente ao produzido pela operação guardaEm().

Precondição:
entrada.good().
Poscondição:
*this é a posição que se encontrava no canal de entrada.
Excepções:
ErroAoCarregar é lançada se o carregamento falhar. Nesse caso o canal pode ficar parcialmente lido.

Definido na linha 58 do ficheiro ecra_impl.H.

Referências Posicao().

void Slang::Posicao::guardaEm std::ostream &    saida const
 

Guarda a posição num canal.

O formato produzido é compatível com o que o método carregaDe() espera.

Precondição:
saida.good().
Excepções:
ErroAoGuardar é lançada se a operação falhar. Nesse caso o canal pode ficar parcialmente escrito.

Definido na linha 28 do ficheiro ecra.C.

Referenciado por Slang::Caixa::guardaEm().

Slang::Posicao & Slang::Posicao::operator+= Dimensao const &    deslocamento [inline]
 

Adiciona a posição de uma dimensão interpretada como um vector.

Precondição:
*this = p.
Poscondição:
*this = p + deslocamento.

Definido na linha 68 do ficheiro ecra_impl.H.

Referências Slang::Dimensao::numeroDeColunas() e Slang::Dimensao::numeroDeLinhas().

Slang::Posicao & Slang::Posicao::operator-= Dimensao const &    deslocamento [inline]
 

Subtrai a posição de uma dimensão interpretada como um vector.

Precondição:
*this = p.
Poscondição:
*this = p - deslocamento.

Definido na linha 81 do ficheiro ecra_impl.H.

Referências Slang::Dimensao::numeroDeColunas() e Slang::Dimensao::numeroDeLinhas().


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

Posicao const operator+ Posicao    posicao,
Dimensao const &    deslocamento
[related]
 

Devolve a adição de uma posição com uma dimensão (a dimensão é interpretada como um vector).

Precondição:
p = posicao.
Poscondição:
operator+.linha() = p.linha() + deslocamento.numeroDeLinhas() e operator+.coluna() = p.coluna() + deslocamento.numeroDeColunas().

Posicao const operator- Posicao    posicao,
Dimensao const &    deslocamento
[related]
 

Devolve a subtracção de uma posição de uma dimensão (a dimensão é interpretada como um vector).

Precondição:
p = posicao.
Poscondição:
operator+.linha() = p.linha() - deslocamento.numeroDeLinhas() e operator+.coluna() = p.coluna() - deslocamento.numeroDeColunas().

Posicao const operator+ Dimensao const &    deslocamento,
Posicao    posicao
[related]
 

Devolve a adição de uma posição com uma dimensão (a dimensão é interpretada como um vector).

Precondição:
p = posicao.
Poscondição:
operator+.linha() = p.linha() + deslocamento.numeroDeLinhas() e operator+.coluna() = p.coluna() + deslocamento.numeroDeColunas().

Posicao const operator- Dimensao const &    deslocamento,
Posicao const &    posicao
[related]
 

Devolve a subtracção de uma posição de uma dimensão (a dimensão é interpretada como um vector).

Precondição:
V.
Poscondição:
operator+.linha() = deslocamento.numeroDeLinhas() - posicao.linha() e operator+.coluna() = deslocamento.numeroDeColunas() - posicao.coluna().

Dimensao const operator- Posicao const &    destino,
Posicao const &    origem
[related]
 

Devolve a diferença entre duas posições, que é a dimensão correspondente ao vector entre as duas posições.

Precondição:
V.
Poscondição:
operator+.numeroDeLinhas() = destino.linha() - origem.linha() e operator+.numeroDeColunas() = destino.coluna() - origem.coluna().

Posicao const operator- Posicao const &    posicao [related]
 

Devolve o simétrico de uma posição.

Precondição:
V.
Poscondição:
operator-.linha() = -posicao.linha() e operator-.coluna() = -posicao.coluna().

bool operator== Posicao const &    uma_posicao,
Posicao const &    outra_posicao
[related]
 

Indica se duas posições são iguais.

Precondição:
V.
Poscondição:
operator== = (uma_posicao.linha() = outra_posicao.linha() e uma_posicao.coluna() = outra_posicao.coluna()).

bool operator!= Posicao const &    uma_posicao,
Posicao const &    outra_posicao
[related]
 

Indica se duas posições são diferentes.

Precondição:
V.
Poscondição:
operator!= = (uma_posicao.linha() ≠ outra_posicao.linha() ou uma_posicao.coluna() ≠ outra_posicao.coluna()).


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