#ifndef JANELA_H
#define JANELA_H
#include <SDL.h>
#include <iostream>
#include "erro.h"
class Janela
{
public:
Janela(int, int, std::string, int, int, int, bool);///Contrutor que recebe como parametro o número de fps da janela
//void Flags(int);///Setar as flags para os sub sistemas da SDL
void Iniciar();///Cria e matém a janela aberta
///Ativar ou desativar a capturar de mouse e teclado
void CapturarMouse(bool);
void CapturarTeclado(bool);
SDL_Surface* Tela(){return janela;}
///Ultimo erro ocorrido na SDL
std::string UltimoErro();
virtual ~Janela();///Destrutor
protected:
std::string erro;///Contém a descrição do último erro ocorrido na janela
int largura, altura, bpp;//Dimensões da janela
int flags;//Flags para inicializar os sub sistemas da SDL
int espera;//O tempo de espera para cada quadro
bool aberta;//Indica se a janela esta aberta
bool telacheia;//Indica se devemos usar tela cheia
bool capturarmouse;//Indica se devemos capturar o mouse
bool capturarteclado;//Indica se devemos capturar entradas do teclado
SDL_Surface* janela;//Ponteiro para a janela
///Estas duas funções devem ser implementadas na classe filho
///Logia(): Calcula a lógica do jogo, movimentos dos personagens etc.
///Desenhar(): Desenha a tela do jogo
virtual void Logica(){}
virtual void Desenhar(){}
///Métodos para execução de eventos
virtual void AoIniciar(){}
virtual void AoPressionarTecla(SDLKey tecla){}
virtual void AoLiberarTecla(SDLKey tecla){}
virtual void AoUsarMouse(SDL_MouseButtonEvent mouse){}
virtual void AoLiberarMouse(SDL_MouseButtonEvent mouse){}
virtual void AoSair(){}
///Capturar eventos na janela
///Criada para ser usada dentro do método Lógica();
void Eventos();
private:
};
#endif // JANELA_H