core/MenuManager.h
changeset 790 9b1474d03470
parent 787 52283fe61d42
child 877 898c39fbfde9
     1.1 --- a/core/MenuManager.h	Sun May 13 22:36:22 2007 +0000
     1.2 +++ b/core/MenuManager.h	Mon May 14 04:46:06 2007 +0000
     1.3 @@ -59,10 +59,13 @@
     1.4  
     1.5  class MenuManager : 
     1.6  	public IMenuManager,
     1.7 -	public SMGlobalClass
     1.8 +	public SMGlobalClass,
     1.9 +	public IHandleTypeDispatch
    1.10  {
    1.11  	friend class BroadcastHandler;
    1.12  	friend class VoteHandler;
    1.13 +	friend class CBaseMenu;
    1.14 +	friend class BaseMenuStyle;
    1.15  public:
    1.16  	MenuManager();
    1.17  public: //SMGlobalClass
    1.18 @@ -95,15 +98,24 @@
    1.19  	void AddStyle(IMenuStyle *style);
    1.20  	bool SetDefaultStyle(IMenuStyle *style);
    1.21  	IMenuPanel *RenderMenu(int client, menu_states_t &states, ItemOrder order);
    1.22 +public: //IHandleTypeDispatch
    1.23 +	void OnHandleDestroy(HandleType_t type, void *object);
    1.24 +public:
    1.25 +	HandleError ReadMenuHandle(Handle_t handle, IBaseMenu **menu);
    1.26 +	HandleError ReadStyleHandle(Handle_t handle, IMenuStyle **style);
    1.27  protected:
    1.28  	void FreeBroadcastHandler(BroadcastHandler *bh);
    1.29  	void FreeVoteHandler(VoteHandler *vh);
    1.30 +	Handle_t CreateMenuHandle(IBaseMenu *menu, IdentityToken_t *pOwner);
    1.31 +	Handle_t CreateStyleHandle(IMenuStyle *style);
    1.32  private:
    1.33  	int m_ShowMenu;
    1.34  	IMenuStyle *m_pDefaultStyle;
    1.35  	CStack<BroadcastHandler *> m_BroadcastHandlers;
    1.36  	CStack<VoteHandler *> m_VoteHandlers;
    1.37  	CVector<IMenuStyle *> m_Styles;
    1.38 +	HandleType_t m_StyleType;
    1.39 +	HandleType_t m_MenuType;
    1.40  };
    1.41  
    1.42  extern MenuManager g_Menus;