Beispiel #1
0
        private static void runWindows(Control mainControl)
        {
            ConsoleAdapter canvas = new ConsoleAdapter(80, 25);

            canvas.Initialize(  );

            Renderer renderer = ConsoleApplication.Instance.Renderer;

            renderer.Canvas = canvas;
            // Fill the canvas by default
            renderer.RootElementRect = new Rect(new Point(0, 0), canvas.Size);
            renderer.RootElement     = mainControl;
            ConsoleApplication.Instance.RootControl = mainControl;
            //
            mainControl.Invalidate();
            renderer.UpdateLayout();
            renderer.FinallyApplyChangesToCanvas();

            Console.WriteLine("Applied to canvas");
            EventManager eventManager = ConsoleApplication.Instance.EventManager;

            canvas.UserInputReceived += (sender, args) => {
//                mainControl.Invalidate();
//                renderer.UpdateLayout();
//                renderer.FinallyApplyChangesToCanvas();
                eventManager.ParseInputEvent(args.InputRecord, mainControl);

                while (true)
                {
                    //bool anyInvokeActions = isAnyInvokeActions();
                    bool anyRoutedEvent        = !eventManager.IsQueueEmpty();
                    bool anyLayoutToRevalidate = renderer.AnyControlInvalidated;

                    if (/*!anyInvokeActions &&*/ !anyRoutedEvent && !anyLayoutToRevalidate)
                    {
                        break;
                    }

                    eventManager.ProcessEvents();
                    //processInvokeActions();
                    renderer.UpdateLayout();
                }
                renderer.FinallyApplyChangesToCanvas();
            };
        }
Beispiel #2
0
        private static void runWindows(Control mainControl) {
            ConsoleAdapter canvas = new ConsoleAdapter( 80, 25 );
            canvas.Initialize(  );
            
            Renderer renderer = ConsoleApplication.Instance.Renderer;
            renderer.Canvas = canvas;
            // Fill the canvas by default
            renderer.RootElementRect = new Rect( new Point( 0, 0 ), canvas.Size );
            renderer.RootElement = mainControl;
            ConsoleApplication.Instance.RootControl = mainControl;
            //
            mainControl.Invalidate();
            renderer.UpdateLayout();
            renderer.FinallyApplyChangesToCanvas();

            Console.WriteLine("Applied to canvas");
            EventManager eventManager = ConsoleApplication.Instance.EventManager;

            canvas.UserInputReceived += ( sender, args ) => {
//                mainControl.Invalidate();
//                renderer.UpdateLayout();
//                renderer.FinallyApplyChangesToCanvas();
                eventManager.ParseInputEvent( args.InputRecord, mainControl );

                while (true) {
                    //bool anyInvokeActions = isAnyInvokeActions();
                    bool anyRoutedEvent = !eventManager.IsQueueEmpty();
                    bool anyLayoutToRevalidate = renderer.AnyControlInvalidated;

                    if (/*!anyInvokeActions &&*/ !anyRoutedEvent && !anyLayoutToRevalidate)
                        break;

                    eventManager.ProcessEvents();
                    //processInvokeActions();
                    renderer.UpdateLayout();
                }
                renderer.FinallyApplyChangesToCanvas();
            };
        }