public static MainMenuController Wire(IMainMenu form, IMessageQueue queue, ISubscriber bus) { var adapter = new MainMenuController(form); bus.Subscribe <UI.InboxDisplayed>(adapter); bus.Subscribe <UI.ProjectDisplayed>(adapter); form.SubscribeToAddStuffClicked(() => queue.Enqueue(new UI.AddStuffClicked())); form.SubscribeToDefineProjectClicked(() => queue.Enqueue(new UI.DefineProjectClicked())); form.SubscribeToGotoInboxClicked(() => queue.Enqueue(new UI.DisplayInbox())); form.SubscribeToSelectedFilterChanged(x => queue.Enqueue(new UI.ActionFilterChanged(x))); return(adapter); }