Funções Solidtec
tela.h@1:392e0e10ccf7, 2018-11-06 (annotated)
- Committer:
- marcusncunha
- Date:
- Tue Nov 06 16:28:00 2018 +0000
- Revision:
- 1:392e0e10ccf7
- Parent:
- 0:73f074c39876
11_06_2018
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
marcusncunha | 0:73f074c39876 | 1 | /* |
marcusncunha | 0:73f074c39876 | 2 | ** Cabeçalhos das funções implementadas no módulo tela.cpp , |
marcusncunha | 0:73f074c39876 | 3 | ** que servem para desenhar os botões e imagens na tela |
marcusncunha | 0:73f074c39876 | 4 | */ |
marcusncunha | 0:73f074c39876 | 5 | |
marcusncunha | 0:73f074c39876 | 6 | #include "mbed.h" |
marcusncunha | 0:73f074c39876 | 7 | #include "LCD_DISCO_F746NG.h" |
marcusncunha | 0:73f074c39876 | 8 | #include "TS_DISCO_F746NG.h" |
marcusncunha | 1:392e0e10ccf7 | 9 | #include <string> |
marcusncunha | 0:73f074c39876 | 10 | |
marcusncunha | 0:73f074c39876 | 11 | //Constantes de Botão |
marcusncunha | 0:73f074c39876 | 12 | #define TEMPO_PRESSIONADO_BOTAO 0.01000f |
marcusncunha | 0:73f074c39876 | 13 | #define TEMPO_ATUALIZAR 0.20000f |
marcusncunha | 0:73f074c39876 | 14 | |
marcusncunha | 0:73f074c39876 | 15 | //Estruturas dos Botões |
marcusncunha | 0:73f074c39876 | 16 | /* |
marcusncunha | 0:73f074c39876 | 17 | ** Base do botão com dimensões e posicionamento |
marcusncunha | 0:73f074c39876 | 18 | */ |
marcusncunha | 0:73f074c39876 | 19 | typedef struct{ |
marcusncunha | 0:73f074c39876 | 20 | uint16_t x; |
marcusncunha | 0:73f074c39876 | 21 | uint16_t y; |
marcusncunha | 0:73f074c39876 | 22 | uint16_t largura; |
marcusncunha | 0:73f074c39876 | 23 | uint16_t altura; |
marcusncunha | 0:73f074c39876 | 24 | }dadosRetanguloBase; |
marcusncunha | 0:73f074c39876 | 25 | /* |
marcusncunha | 0:73f074c39876 | 26 | ** Estrutura do botão com a base, tempo pressionado e flags de alteração |
marcusncunha | 0:73f074c39876 | 27 | */ |
marcusncunha | 0:73f074c39876 | 28 | typedef struct{ |
marcusncunha | 0:73f074c39876 | 29 | dadosRetanguloBase retanguloObjeto; |
marcusncunha | 0:73f074c39876 | 30 | bool isPressed; |
marcusncunha | 0:73f074c39876 | 31 | bool updateFlag; |
marcusncunha | 0:73f074c39876 | 32 | Timer depressTime; |
marcusncunha | 0:73f074c39876 | 33 | }botao; |
marcusncunha | 0:73f074c39876 | 34 | /* |
marcusncunha | 0:73f074c39876 | 35 | ** Estrutura de imagem com dimensões e cor Key |
marcusncunha | 0:73f074c39876 | 36 | */ |
marcusncunha | 0:73f074c39876 | 37 | typedef struct{ |
marcusncunha | 0:73f074c39876 | 38 | uint16_t largura; |
marcusncunha | 0:73f074c39876 | 39 | uint16_t altura; |
marcusncunha | 0:73f074c39876 | 40 | uint32_t corKey; |
marcusncunha | 0:73f074c39876 | 41 | }dadosImagem; |
marcusncunha | 0:73f074c39876 | 42 | |
marcusncunha | 0:73f074c39876 | 43 | /* |
marcusncunha | 0:73f074c39876 | 44 | ============================================================================================== |
marcusncunha | 0:73f074c39876 | 45 | ** Funções de Tela |
marcusncunha | 0:73f074c39876 | 46 | ============================================================================================== |
marcusncunha | 0:73f074c39876 | 47 | */ |
marcusncunha | 0:73f074c39876 | 48 | /* |
marcusncunha | 0:73f074c39876 | 49 | ** Função desenharImagem desenha a imagem na tela |
marcusncunha | 0:73f074c39876 | 50 | */ |
marcusncunha | 0:73f074c39876 | 51 | void desenharImagem(const unsigned long *PICTURE, uint16_t largura, uint16_t altura,uint16_t posX, uint16_t posY); |
marcusncunha | 0:73f074c39876 | 52 | /* |
marcusncunha | 0:73f074c39876 | 53 | ** Função desenharImagemKey desenha a imagem trocando a cor key pela informada na função |
marcusncunha | 0:73f074c39876 | 54 | */ |
marcusncunha | 0:73f074c39876 | 55 | void desenharImagemKey(const unsigned long *PICTURE, dadosImagem imagem, uint32_t corDeFundo,uint16_t posX, uint16_t posY); |
marcusncunha | 0:73f074c39876 | 56 | /* |
marcusncunha | 0:73f074c39876 | 57 | ** Função desenhaCaixaMensagem desenha caixa retangular com a cor informada de borda e fundo |
marcusncunha | 0:73f074c39876 | 58 | ** e coloca a imagem da mensagem sobreposta com Key |
marcusncunha | 0:73f074c39876 | 59 | */ |
marcusncunha | 0:73f074c39876 | 60 | void desenhaCaixaMensagem(const unsigned long *PICTURE, dadosImagem imagem, uint32_t corDeBordaCaixa, uint32_t corDeFundoCaixa, dadosRetanguloBase *baseMensagem); |
marcusncunha | 0:73f074c39876 | 61 | /* |
marcusncunha | 0:73f074c39876 | 62 | ** Função desenhaBotaoComImagem desenha o botão retangular com a cor informada e coloca a imagem sobreposta com Key |
marcusncunha | 0:73f074c39876 | 63 | */ |
marcusncunha | 0:73f074c39876 | 64 | void desenhaBotaoComImagem (const unsigned long *PICTURE, dadosImagem imagem, uint32_t cor, botao *botaoObjeto); |
marcusncunha | 1:392e0e10ccf7 | 65 | |
marcusncunha | 1:392e0e10ccf7 | 66 | void desenhaBotaoComLabel(string label, int tamanhoFonte, uint32_t corSemClickLabel, uint32_t corSemClick, botao *botaoObjeto); |
marcusncunha | 0:73f074c39876 | 67 | /* |
marcusncunha | 0:73f074c39876 | 68 | ** Função iniciarBotaoArea limita área de toque aonde cria um evento de botão. Para funcionar tem que gerar |
marcusncunha | 0:73f074c39876 | 69 | ** condição de update do flag e função de callback |
marcusncunha | 0:73f074c39876 | 70 | No loop |
marcusncunha | 0:73f074c39876 | 71 | if(botao.updateFlag){ |
marcusncunha | 0:73f074c39876 | 72 | botao_callback(); |
marcusncunha | 0:73f074c39876 | 73 | } |
marcusncunha | 0:73f074c39876 | 74 | Criar função no programa |
marcusncunha | 0:73f074c39876 | 75 | void botao_callback(){ |
marcusncunha | 0:73f074c39876 | 76 | botao.updateFlag = 0; |
marcusncunha | 0:73f074c39876 | 77 | atualizarTela = true; // Flag indispensável para a lógica do loop para não chamar toda hora |
marcusncunha | 0:73f074c39876 | 78 | } |
marcusncunha | 0:73f074c39876 | 79 | */ |
marcusncunha | 0:73f074c39876 | 80 | void iniciarBotaoArea(botao *botaoObjeto, TS_StateTypeDef *toqueTela); |
marcusncunha | 0:73f074c39876 | 81 | /* |
marcusncunha | 0:73f074c39876 | 82 | ** Função iniciarBotaoComImagem cria um botão com cores diferentes de clique e insere uma imagem |
marcusncunha | 0:73f074c39876 | 83 | ** com key. Para funcionar tem que gerar condição de update do flag e função de callback |
marcusncunha | 0:73f074c39876 | 84 | No loop |
marcusncunha | 0:73f074c39876 | 85 | if(botao.updateFlag){ |
marcusncunha | 0:73f074c39876 | 86 | botao_callback(); |
marcusncunha | 0:73f074c39876 | 87 | } |
marcusncunha | 0:73f074c39876 | 88 | Criar função no programa |
marcusncunha | 0:73f074c39876 | 89 | void botao_callback(){ |
marcusncunha | 0:73f074c39876 | 90 | botao.updateFlag = 0; |
marcusncunha | 0:73f074c39876 | 91 | atualizarTela = true; // Flag indispensável para a lógica do loop para não chamar toda hora |
marcusncunha | 0:73f074c39876 | 92 | } |
marcusncunha | 0:73f074c39876 | 93 | */ |
marcusncunha | 0:73f074c39876 | 94 | void iniciarBotaoComImagem(const unsigned long *PICTURE, dadosImagem imagem, uint32_t corSemClick, uint32_t corComClick, botao *botaoObjeto, TS_StateTypeDef *toqueTela); |
marcusncunha | 0:73f074c39876 | 95 | |
marcusncunha | 1:392e0e10ccf7 | 96 | void iniciarBotaoComLabel(string label, int tamanhoFonte, uint32_t corSemClickLabel, uint32_t corComClickLabel, uint32_t corSemClick, uint32_t corComClick, botao *botaoObjeto, TS_StateTypeDef *toqueTela); |
marcusncunha | 1:392e0e10ccf7 | 97 | |
marcusncunha | 0:73f074c39876 | 98 | 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); |
marcusncunha | 0:73f074c39876 | 99 | |
marcusncunha | 0:73f074c39876 | 100 | /* |
marcusncunha | 0:73f074c39876 | 101 | ** Função escreverInteiroTelaDireita imprime na tela na posição x contrária e alinhada à direita |
marcusncunha | 0:73f074c39876 | 102 | */ |
marcusncunha | 0:73f074c39876 | 103 | void escreverInteiroTelaDireita(int variavel, int x, int y); |
marcusncunha | 0:73f074c39876 | 104 | /* |
marcusncunha | 0:73f074c39876 | 105 | ** Função escreverDoubleTelaDireita imprime na tela na posição x contrária e alinhada à direita com duas casas Decimais |
marcusncunha | 0:73f074c39876 | 106 | */ |
marcusncunha | 0:73f074c39876 | 107 | void escreverDoubleTelaDireita(double variavel, int x, int y); |
marcusncunha | 0:73f074c39876 | 108 | /* |
marcusncunha | 0:73f074c39876 | 109 | ** Função escreverInteiroTelaEsquerda imprime na tela na posição x contrária e alinhada à direita |
marcusncunha | 0:73f074c39876 | 110 | */ |
marcusncunha | 0:73f074c39876 | 111 | void escreverInteiroTelaEsquerda(int variavel, int x, int y); |
marcusncunha | 0:73f074c39876 | 112 | /* |
marcusncunha | 0:73f074c39876 | 113 | ** Função escreverDoubleTelaEsquerda imprime na tela na posição x contrária e alinhada à direita com duas casas Decimais |
marcusncunha | 0:73f074c39876 | 114 | */ |
marcusncunha | 0:73f074c39876 | 115 | void escreverDoubleTelaEsquerda(double variavel, int x, int y); |
marcusncunha | 0:73f074c39876 | 116 |