Funções Solidtec

tela.h

Committer:
marcusncunha
Date:
2017-12-08
Revision:
0:73f074c39876
Child:
1:392e0e10ccf7

File content as of revision 0:73f074c39876:

/*
** Cabeçalhos das funções implementadas no módulo tela.cpp ,
** que servem para desenhar os botões e imagens na tela
*/

#include "mbed.h"
#include "LCD_DISCO_F746NG.h"
#include "TS_DISCO_F746NG.h"

//Constantes de Botão 
#define TEMPO_PRESSIONADO_BOTAO 0.01000f
#define TEMPO_ATUALIZAR 0.20000f

//Estruturas dos Botões
/*
** Base do botão com dimensões e posicionamento
*/
typedef struct{
    uint16_t x;
    uint16_t y;
    uint16_t largura;
    uint16_t altura;
}dadosRetanguloBase;
/*
** Estrutura do botão com a base, tempo pressionado e flags de alteração
*/
typedef struct{
    dadosRetanguloBase retanguloObjeto;
    bool isPressed; 
    bool updateFlag;
    Timer depressTime;
}botao;
/*
** Estrutura de imagem com dimensões e cor Key
*/
typedef struct{
    uint16_t largura;
    uint16_t altura;    
    uint32_t corKey;
}dadosImagem;

/*
==============================================================================================
** Funções de Tela
==============================================================================================
*/
/*
** Função desenharImagem desenha a imagem na tela
*/
void desenharImagem(const unsigned long *PICTURE, uint16_t largura, uint16_t altura,uint16_t posX, uint16_t posY);
/*
** Função desenharImagemKey desenha a imagem trocando a cor key pela informada na função
*/
void desenharImagemKey(const unsigned long *PICTURE, dadosImagem imagem, uint32_t corDeFundo,uint16_t posX, uint16_t posY);
/*
** Função desenhaCaixaMensagem desenha caixa retangular com a cor informada de borda e fundo
** e coloca a imagem da mensagem sobreposta com Key
*/
void desenhaCaixaMensagem(const unsigned long *PICTURE, dadosImagem imagem, uint32_t corDeBordaCaixa, uint32_t corDeFundoCaixa, dadosRetanguloBase *baseMensagem);
/*
** Função desenhaBotaoComImagem desenha o botão retangular com a cor informada e coloca a imagem sobreposta com Key
*/
void desenhaBotaoComImagem (const unsigned long *PICTURE, dadosImagem imagem, uint32_t cor, botao *botaoObjeto);
/*
** Função iniciarBotaoArea limita área de toque aonde cria um evento de botão. Para funcionar tem que gerar
** condição de update do flag e função de callback
No loop 
if(botao.updateFlag){
    botao_callback();
}
Criar função no programa
void botao_callback(){
    botao.updateFlag = 0;
    atualizarTela = true; // Flag indispensável para a lógica do loop para não chamar toda hora
}
*/
void iniciarBotaoArea(botao *botaoObjeto, TS_StateTypeDef *toqueTela);
/*
** Função iniciarBotaoComImagem cria um botão com cores diferentes de clique e insere uma imagem
** com key. Para funcionar tem que gerar condição de update do flag e função de callback
No loop 
if(botao.updateFlag){
    botao_callback();
}
Criar função no programa
void botao_callback(){
    botao.updateFlag = 0;
    atualizarTela = true; // Flag indispensável para a lógica do loop para não chamar toda hora
}
*/
void iniciarBotaoComImagem(const unsigned long *PICTURE, dadosImagem imagem, uint32_t corSemClick, uint32_t corComClick, botao *botaoObjeto, TS_StateTypeDef *toqueTela);

void iniciarBotaoComImagemClick(const unsigned long *PICTURE, const unsigned long *PICTURECLK, dadosImagem imagem, dadosImagem imagemClk,uint32_t corSemClick, uint32_t corComClick, botao *botaoObjeto, TS_StateTypeDef *toqueTela);

/*
** Função escreverInteiroTelaDireita imprime na tela na posição x contrária e alinhada à direita
*/
void escreverInteiroTelaDireita(int variavel, int x, int y);
/*
** Função escreverDoubleTelaDireita imprime na tela na posição x contrária e alinhada à direita com duas casas Decimais
*/
void escreverDoubleTelaDireita(double variavel, int x, int y);
/*
** Função escreverInteiroTelaEsquerda imprime na tela na posição x contrária e alinhada à direita
*/
void escreverInteiroTelaEsquerda(int variavel, int x, int y);
/*
** Função escreverDoubleTelaEsquerda imprime na tela na posição x contrária e alinhada à direita com duas casas Decimais
*/
void escreverDoubleTelaEsquerda(double variavel, int x, int y);