/** 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/flying_menu.hpp

*/

#ifndef SGX_UTILS_MENUSYSTEM_MENU_FLYING_MENU_HPP
#define SGX_UTILS_MENUSYSTEM_MENU_FLYING_MENU_HPP	1

class CFlyingMenu : public CSGXMenu {
public:
	class CFlyingMenuSettings {
	public:
		tREAL32	m_fEntranceSpeed;
		tREAL32	m_fExitSpeed;
		tBOOL	m_bAnimating;

		CFlyingMenuSettings();
	};

	CFlyingMenu(const CFlyingMenuSettings &settings=CFlyingMenuSettings());

	virtual void beginEntrance(CGameMenuHandler *p);
	virtual tBOOL updateEntrance(CGameMenuHandler *p, const tREAL32 telaps);
 	virtual void beginExit(CGameMenuHandler *p);
	virtual tBOOL updateExit(CGameMenuHandler *p, const tREAL32 telaps);

	virtual tBOOL onGameMenuGetCaptionPosition(const CGameMenuHandler *p, sgxPoint2i &pos, const char *pCaption) const;
	virtual tBOOL onGameMenuGetWidgetPosition(const CGameMenuHandler *p, sgxPoint2i &pos, const tUINT32 idx, const sgxWidget *pWidget) const;

private:
	CFlyingMenuSettings m_Settings;

	tINT32	m_ButtonWidth;
	tINT32	m_TargetX;
};


#endif // SGX_UTILS_MENUSYSTEM_MENU_FLYING_MENU_HPP

