/* application.h  fichier d'en-tête qui contient des constantes utiles à toute l'application */

#ifndef __APPLICATION_H
#define __APPLICATION_H

#define DEFAULT_THEME  LIGHT_BLUE_THEME

#define DEFAULT_SDL_WINDOW_WIDTH  1280
#define DEFAULT_SDL_WINDOW_HEIGHT  800

#include "engine.h"

typedef enum TAB_name
{
    Amplitude_TAB,
    Frequency_TAB,
    Phase_TAB,
    M_QAM_TAB,
    NOT_a_TAB
} TAB_Name;

typedef enum aTheme
{
    LIGHT_GREEN_THEME          = 0,
    CLASSIC_THEME              = 1,
    DARK_THEME                 = 2,
    LIGHT_BLUE_THEME           = 3,
    WINDOWS_THEME              = 4
} THEME;


class Application
{
  public:
    Application();
    ~Application();

    void setTheme(THEME theme);
    inline THEME get_current_theme() const { return current_theme; }

    inline TAB_name get_current_tab() const { return current_tab; }
    void     set_current_tab(TAB_name aTab);

  private:
    THEME current_theme;
    TAB_name current_tab;
    float windowWidth;
    float windowHeight;
};

#endif  /* __APPLICATION_H */