Example #1
0
        public WidgetApplication(IConsoleBox console, Func <IWidget> viewFactory)
        {
            Console      = console;
            Context      = new BuildContext();
            factory      = viewFactory;
            InputManager = new UserInputManager();

            UI = new UIManager(console);

            // note:  Order on wiring up events matters!
            // we want the UI to process the events prior to
            // firing off renders
            console.KeyEvent += (s, e) =>
            {
                InputManager.OnKey(e);
                Render();
            };

            console.MouseMove       += (s, e) => Render();
            console.MouseButtonUp   += (s, e) => Render();
            console.MouseClick      += (s, e) => Render();
            console.MouseWheel      += (s, e) => Render();
            console.MouseButtonDown += (s, e) => Render();

            console.ResizeEvent += (s, e) =>
            {
                console.Clear();
                Render(true);
            };

            Context.State.Set(UserInputManager.STATE_KEY, InputManager);
        }