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;