/** SGX

The   sss    gggg x   x   
     s      g      x x    Engine
      sss   g  gg   x
         s  g   g  x x          Copyright 1995-2009.
     ssss    gggg x   x         Steven Goodwin. All Rights Reserved.
    
This version has been released under the GNU Public License v2.0.

Please see the license files for details.

File: sgx/include/utils/menusystem/alert.hpp

*/

#ifndef SGX_UTILS_MENUSYSTEM_ALERT_HPP
#define SGX_UTILS_MENUSYSTEM_ALERT_HPP	1

class CGameMenuHandler;
class CSGXMenu;
class sgxWidget;

class sgxGameAlertCallbackHandler {
public:
	virtual tBOOL onGameAlertPrepareAlert(CGameMenuHandler *pHandler);
	virtual tBOOL onGameAlertGetCaptionPosition(const CGameMenuHandler *p, sgxPoint2i &pos, const char *pCaption) const;
	virtual tBOOL onGameAlertGetQuestionPosition(const CGameMenuHandler *p, sgxPoint2i &pos, const char *pQuestion) const;
	virtual tBOOL onGameAlertGetWidgetPosition(const CGameMenuHandler *p, sgxPoint2i &pos, const tUINT32 idx, const tUINT32 numOptions, const sgxWidget *pWidget) const;
	virtual tBOOL onGameAlertDrawAlert(const CGameMenuHandler *pHandler) const;
	virtual tBOOL onGameAlertUpdateAlert(CGameMenuHandler *pHandler, const tREAL32 telaps);
	virtual tBOOL onGameAlertOptionSelect(CGameMenuHandler *pHandler, const tINT32 opt);
};

class CSGXAlert : public sgxGameAlertCallbackHandler {
public:
	CSGXAlert(CSGXMenu *pMenu = NULL);
	CSGXAlert(const sgxString &message, const sgxString &title, CSGXMenu *pMenu=NULL);

protected:
	CSGXMenu *	m_pNextMenu;
	//
	sgxString	m_Message;
	sgxString	m_Title;
};


#endif	// SGX_UTILS_MENUSYSTEM_ALERT_HPP

