2017-01-21 17:27:46 +01:00
|
|
|
|
2017-01-21 23:44:30 +01:00
|
|
|
#pragma once
|
2017-01-21 17:27:46 +01:00
|
|
|
|
2017-02-09 18:28:00 +01:00
|
|
|
#include <unordered_map>
|
2017-02-04 17:59:07 +01:00
|
|
|
#include "def.h"
|
|
|
|
|
2017-01-21 17:27:46 +01:00
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
class CMenu
|
|
|
|
{
|
|
|
|
public:
|
2017-02-12 13:14:22 +01:00
|
|
|
CMenu();
|
|
|
|
~CMenu();
|
|
|
|
|
|
|
|
bool Create (CPixmap *pPixmap, CSound *pSound,
|
|
|
|
POINT pos, Sint32 nb, Sint32 *pButtons, Sint32 *pErrors,
|
|
|
|
std::unordered_map<Sint32, const char *> &texts,
|
|
|
|
Sint32 perso);
|
|
|
|
void Update (Sint32 nb, Sint32 *pButtons, Sint32 *pErrors,
|
|
|
|
std::unordered_map<Sint32, const char *> &texts);
|
|
|
|
void Delete();
|
|
|
|
void Draw();
|
|
|
|
Sint32 GetSel();
|
|
|
|
Sint32 GetRank();
|
|
|
|
bool IsError();
|
|
|
|
bool IsExist();
|
|
|
|
void Message();
|
|
|
|
|
|
|
|
bool TreatEvent (const SDL_Event &event);
|
2017-01-21 17:27:46 +01:00
|
|
|
|
|
|
|
protected:
|
2017-02-12 13:14:22 +01:00
|
|
|
Sint32 Detect (POINT pos);
|
|
|
|
bool MouseDown (POINT pos);
|
|
|
|
bool MouseMove (POINT pos);
|
|
|
|
bool MouseUp (POINT pos);
|
2017-01-21 17:27:46 +01:00
|
|
|
|
|
|
|
protected:
|
2017-02-12 13:14:22 +01:00
|
|
|
CPixmap *m_pPixmap;
|
|
|
|
CDecor *m_pDecor;
|
|
|
|
CSound *m_pSound;
|
|
|
|
POINT m_pos; // coin sup/gauche
|
|
|
|
POINT m_dim; // dimensions
|
|
|
|
Sint32 m_nbButtons;
|
|
|
|
POINT m_nbCel;
|
|
|
|
Sint32 m_perso;
|
|
|
|
Sint32 m_buttons[MAXBUTTON];
|
|
|
|
Sint32 m_errors[MAXBUTTON];
|
|
|
|
std::unordered_map<Sint32, const char *> m_texts;
|
|
|
|
Uint32 m_messages[MAXBUTTON];
|
|
|
|
Sint32 m_selRank;
|
2017-01-21 17:27:46 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|