private void RegisterMenuEvents(Item menu)
{
if (menu == null)
return;
menu.BindSelectHandler<Composite>(c =>
{
activeMenu.Push(c);
RaiseMessageEvent(new MenuMessage(activeMenu.Peek()));
});
menu.BindSelectHandler<Back>(b =>
{
activeMenu.Pop();
RaiseMessageEvent(new MenuMessage(activeMenu.Peek()));
});
menu.BindSelectHandler<InputBox>(ib =>
{
rawInput = true;
RaiseMessageEvent(new MenuMessage(ib));
});
menu.BindUnSelectHandler<Item>(i =>
{
if (!i.Selectable || !i.Active && !i.ActiveChanged)
{
activeMenu.Pop();
RaiseMessageEvent(new MenuMessage(activeMenu.Peek()));
}
});
}