The text box.
Наследование: IContainer
Пример #1
0
        public MenuWorld(ISkin skin, IWorldFactory worldFactory, IAssetManagerProvider assetManagerProvider, I2DRenderUtilities twodRenderUtilities)
        {
            this.m_2DRenderUtilities = twodRenderUtilities;

            this.m_LogoTexture = assetManagerProvider.GetAssetManager().Get<TextureAsset>("texture.Logo");

            this.m_WorldFactory = worldFactory;

            this.Entities = new List<IEntity>();

            var startServer = new Button();
            startServer.Text = "Start Server";
            startServer.Click += (sender, e) =>
            {
                this.m_LastGameContext.SwitchWorld<IWorldFactory>(
                    x => x.CreateLobbyWorld(false, IPAddress.Any));
            };

            var ipAddressTextBox = new TextBox();

            var joinGame = new Button();
            joinGame.Text = "Join Game";
            joinGame.Click += (sender, e) =>
            {
                this.m_LastGameContext.SwitchWorld<IWorldFactory>(
                    x => x.CreateLobbyWorld(true, IPAddress.Parse(ipAddressTextBox.Text)));
            };

            var exitGame = new Button();
            exitGame.Text = "Exit Game";
            exitGame.Click += (sender, e) =>
            {
                this.m_LastGameContext.Game.Exit();
            };

            var vertical = new VerticalContainer();
            vertical.AddChild(new EmptyContainer(), "*");
            vertical.AddChild(new Label { Text = "Perspective" }, "25");
            vertical.AddChild(new EmptyContainer(), "*");
            vertical.AddChild(startServer, "25");
            vertical.AddChild(new EmptyContainer(), "*");
            vertical.AddChild(new Label { Text = "Server IP address:" }, "20");
            vertical.AddChild(ipAddressTextBox, "20");
            vertical.AddChild(joinGame, "25");
            vertical.AddChild(new EmptyContainer(), "*");
            vertical.AddChild(exitGame, "25");
            vertical.AddChild(new EmptyContainer(), "*");

            var horizontal = new HorizontalContainer();
            horizontal.AddChild(new EmptyContainer(), "*");
            horizontal.AddChild(vertical, "250");
            horizontal.AddChild(new EmptyContainer(), "*");

            var canvas = new Canvas();
            canvas.SetChild(horizontal);

            this.Entities.Add(new CanvasEntity(skin, canvas));
        }
 public BoardRendererEntity(
     BoardAnalyzerEntity analyzerEntity,
     WebcamEntity webcamEntity, 
     IGraphicsBlit graphicsBlit, 
     IAssetManager assetManager,
     TextBox alphaTextBox)
 {
     _analyzerEntity = analyzerEntity;
     _webcamEntity = webcamEntity;
     _graphicsBlit = graphicsBlit;
     _alphaTextBox = alphaTextBox;
     _warpFromPolygonEffect = assetManager.Get<EffectAsset>("effect.WarpFromPolygon");
 }
Пример #3
0
        public WebcamEntity(ISensorEngine sensorEngine, ICameraSensor cameraSensor, TextBox deviceName)
        {
            _cameraSensor = cameraSensor;
            _deviceName = deviceName;
            _cameras = _cameraSensor.GetAvailableCameras();
            _activeCameraIndex = 0;

            _cameraSensor.ActiveCamera = _cameras[_activeCameraIndex];

            // Because sensors may engage hardware, you need to explicitly register
            // them with the sensor engine.
            sensorEngine.Register(_cameraSensor);
        }
        public BoardAnalyzerEntity(
            DetectorEntity detectorEntity, 
            TextBox pointThresholdTextBox, 
            TextBox minNumberOfPointsTextBox, 
            TextBox maxNumberOfPointsTextBox, 
            I2DRenderUtilities renderUtilities,
            IAssetManager assetManager)
        {
            _detectorEntity = detectorEntity;
            _pointThresholdTextBox = pointThresholdTextBox;
            _minNumberOfPointsTextBox = minNumberOfPointsTextBox;
            _maxNumberOfPointsTextBox = maxNumberOfPointsTextBox;
            _renderUtilities = renderUtilities;

            _pointThresholdTextBox.Text = _pointThreshold.ToString();
            _minNumberOfPointsTextBox.Text = _minNumberOfPoints.ToString();
            _maxNumberOfPointsTextBox.Text = _maxNumberOfPoints.ToString();

            _defaultFont = assetManager.Get<FontAsset>("font.Default");

            _thread = new Thread(Run);
            _thread.IsBackground = true;
            _thread.Start();
        }
Пример #5
0
        /// <summary>
        /// The draw text box.
        /// </summary>
        /// <param name="context">
        /// The context.
        /// </param>
        /// <param name="layout">
        /// The layout.
        /// </param>
        /// <param name="textBox">
        /// The text box.
        /// </param>
        public void DrawTextBox(IRenderContext context, Rectangle layout, TextBox textBox)
        {
            this.DrawSunken(context, layout);
            var textToRender = textBox.Text;
            if (textBox.Focused && (textBox.UpdateCounter / 15) % 2 == 0)
            {
                textToRender += "_";
            }

            if (string.IsNullOrEmpty(textBox.Text) && !textBox.Focused)
            {
                this.m_RenderUtilities.RenderText(
                    context,
                    new Vector2(layout.X + 4, layout.Center.Y),
                    textBox.Hint,
                    this.m_AssetManager.Get<FontAsset>("font.Default"),
                    textColor: Color.DimGray,
                    verticalAlignment: VerticalAlignment.Center);
            }
            else
            {
                this.m_RenderUtilities.RenderText(
                    context,
                    new Vector2(layout.X + 4, layout.Center.Y),
                    textToRender,
                    this.m_AssetManager.Get<FontAsset>("font.Default"),
                    verticalAlignment: VerticalAlignment.Center);
            }
        }
Пример #6
0
 public void DrawTextBox(IRenderContext context, Rectangle layout, TextBox textBox)
 {
     this.m_BasicSkin.DrawTextBox(context, layout, textBox);
 }
        public AugmentedBoardGameWorld(
            I2DRenderUtilities twoDRenderUtilities,
            IAssetManagerProvider assetManagerProvider,
            IEntityFactory entityFactory)
        {
            this.Entities = new List<IEntity>();

            _renderUtilities = twoDRenderUtilities;
            _assetManager = assetManagerProvider.GetAssetManager();
            _defaultFont = this._assetManager.Get<FontAsset>("font.Default");

            var canvasEntity = entityFactory.CreateCanvasEntity();

            var pointThresholdTextBox = new TextBox();
            var minPoints = new TextBox();
            var maxPoints = new TextBox();
            var alpha = new TextBox();
            var deviceWidth = new TextBox();
            var deviceHeight = new TextBox();
            var nextColor = new Button() {Text = "Show Next Color "};
            var showDiagnostics = new Button() { Text = "Show Diagnostics" };
            var showBoard = new Button() { Text = "Show Board" };
            var nextDevice = new Button() { Text = "Next Device" };
            var deviceName = new TextBox();
            _fullscreen = new Button() { Text = "Fullscreen 1080" };

            var camera640x480 = new Button() { Text = "Camera 640x480" };
            camera640x480.Click += (sender, args) =>
            {
                deviceWidth.Text = "640";
                deviceHeight.Text = "480";
            };
            var camera720p = new Button() { Text = "Camera 720p" };
            camera720p.Click += (sender, args) =>
            {
                deviceWidth.Text = "1080";
                deviceHeight.Text = "720";
            };
            var camera1080p = new Button() { Text = "Camera 1080p" };
            camera1080p.Click += (sender, args) =>
            {
                deviceWidth.Text = "1920";
                deviceHeight.Text = "1080";
            };

            var pointThresholdEntry = new HorizontalContainer();
            pointThresholdEntry.AddChild(new Label() { Text = "Point Threshold: "}, "100");
            pointThresholdEntry.AddChild(pointThresholdTextBox, "*");

            var minPointsEntry = new HorizontalContainer();
            minPointsEntry.AddChild(new Label() { Text = "Min. Points: " }, "100");
            minPointsEntry.AddChild(minPoints, "*");

            var maxPointsEntry = new HorizontalContainer();
            maxPointsEntry.AddChild(new Label() { Text = "Max. Points: " }, "100");
            maxPointsEntry.AddChild(maxPoints, "*");

            var renderAlphaEntry = new HorizontalContainer();
            renderAlphaEntry.AddChild(new Label() { Text = "Render Alpha: " }, "100");
            renderAlphaEntry.AddChild(alpha, "*");

            var deviceWidthEntry = new HorizontalContainer();
            deviceWidthEntry.AddChild(new Label() { Text = "Device Width: " }, "100");
            deviceWidthEntry.AddChild(deviceWidth, "*");

            var deviceHeightEntry = new HorizontalContainer();
            deviceHeightEntry.AddChild(new Label() { Text = "Device Height: " }, "100");
            deviceHeightEntry.AddChild(deviceHeight, "*");

            var vert = new VerticalContainer();
            vert.AddChild(pointThresholdEntry, "24");
            vert.AddChild(minPointsEntry, "24");
            vert.AddChild(maxPointsEntry, "24");
            vert.AddChild(renderAlphaEntry, "24");
            vert.AddChild(nextColor, "24");
            vert.AddChild(showDiagnostics, "48");
            vert.AddChild(showBoard, "48");
            vert.AddChild(nextDevice, "48");
            vert.AddChild(deviceName, "24");
            vert.AddChild(deviceWidthEntry, "24");
            vert.AddChild(deviceHeightEntry, "24");
            vert.AddChild(_fullscreen, "48");
            vert.AddChild(camera640x480, "48");
            vert.AddChild(camera720p, "48");
            vert.AddChild(camera1080p, "48");

            var hor = new HorizontalContainer();
            hor.AddChild(new EmptyContainer(), "*");
            hor.AddChild(vert, "200");

            var canvas = new Canvas();
            canvas.SetChild(hor);

            canvasEntity.Canvas = canvas;

            var webcamEntity = entityFactory.CreateWebcamEntity(deviceName, deviceWidth, deviceHeight);
            var detectorEntity = entityFactory.CreateDetectorEntity(webcamEntity);
            detectorEntity.X = 0;
            detectorEntity.Y = 0;
            var boardAnalyzerEntity = entityFactory.CreateBoardAnalyzerEntity(detectorEntity, pointThresholdTextBox, minPoints, maxPoints);
            var boardRendererEntity = entityFactory.CreateBoardRendererEntity(boardAnalyzerEntity, webcamEntity, alpha);

            nextColor.Click += (sender, args) =>
            {
                detectorEntity.NextColor();
            };
            showDiagnostics.Click += (sender, args) =>
            {
                alpha.Text = "0";
            };
            showBoard.Click += (sender, args) =>
            {
                alpha.Text = "1";
            };
            nextDevice.Click += (sender, args) =>
            {
                webcamEntity.NextDevice();
            };

            _hasSetupFullscreenButton = false;

            this.Entities.Add(webcamEntity);
            this.Entities.Add(detectorEntity);
            this.Entities.Add(boardAnalyzerEntity);
            this.Entities.Add(canvasEntity);
            this.Entities.Add(boardRendererEntity);
        }