/// <summary> /// Sets the content of the region. /// </summary> /// <param name="screen">The screen.</param> /// <param name="vrName">Name of the region (viewRange).</param> /// <param name="content">The content.</param> /// <returns>true if the content could be set, otherwise false</returns> private bool setRegionContent(BrailleIOScreen screen, String vrName, Object content) { if (screen != null) { BrailleIOViewRange vr = screen.GetViewRange(vrName); if (vr != null) { if (content != null) { if (content is bool[, ]) { vr.SetMatrix(content as bool[, ]); } else if (content is Bitmap) { vr.SetBitmap(content as Bitmap); } else if (content is String) { vr.SetText(content.ToString()); } else { return(false); } return(true); } else { vr.SetMatrix(null); } //TODO: check if this works } } return(false); }
/// <summary> /// Sets the content of the region. /// </summary> /// <param name="screen">The screen.</param> /// <param name="vrName">Name of the region (viewRange).</param> /// <param name="content">The content.</param> /// <param name="renderer">The renderer to use to transform the content into a matrix.</param> /// <returns>true if the content could be set, otherwise false</returns> public bool SetRegionContent(BrailleIOScreen screen, String vrName, Object content, IBrailleIOContentRenderer renderer) { if (screen != null) { BrailleIOViewRange vr = screen.GetViewRange(vrName); if (vr != null) { if (content != null) { vr.SetOtherContent(content, renderer); } else { vr.SetMatrix(null); } } } return(false); }
private bool[,] RenderTextBox(IViewBoxModel view, UiElement textBoxContent) { bool[,] viewMatrix; if (textBoxContent.isDisabled) { viewMatrix = Helper.createBoxDeaktivatedUpDown(view.ViewBox.Height, view.ViewBox.Width); } else { viewMatrix = Helper.createBox(view.ViewBox.Height, view.ViewBox.Width); //erstmal eine eckige Matrix } //Ecke links oben abrunden Debug.Print(viewMatrix.GetLength(0).ToString()); Debug.Print(viewMatrix.GetLength(1).ToString()); if (viewMatrix.GetLength(0) <= 0 || viewMatrix.GetLength(1) <= 0) { return(new bool[0, 0]); } viewMatrix[0, 0] = false; if (viewMatrix.GetLength(1) > 1) { viewMatrix[1, 0] = false; } if (viewMatrix.GetLength(0) > 1) { viewMatrix[0, 1] = false; } if (viewMatrix.GetLength(0) > 1 && viewMatrix.GetLength(1) > 1) { viewMatrix[1, 1] = true; } BrailleIOViewRange tmpBoxView = new BrailleIOViewRange(view.ViewBox.Left, view.ViewBox.Top, view.ViewBox.Width, view.ViewBox.Height); tmpBoxView.Name = "_B_" + textBoxContent.screenName + view.ViewBox.Left + view.ViewBox.Top + view.ViewBox.Width + view.ViewBox.Height; // tmpBoxView.SetText(textBoxText); tmpBoxView.SetMatrix(viewMatrix); // tmpBoxView.ShowScrollbars = true; tmpBoxView.SetYOffset(0); tmpBoxView.SetZIndex(2); object cM = textBoxContent.text as object; IViewBoxModel tmpModel = tmpBoxView as IViewBoxModel; callAllPreHooks(ref tmpModel, ref cM); tmpBoxView = tmpBoxView as BrailleIOViewRange; BrailleIOMediator brailleIOMediator = BrailleIOMediator.Instance; BrailleIOScreen screen = (BrailleIOScreen)brailleIOMediator.GetView(textBoxContent.screenName); if (screen != null) { BrailleIOViewRange viewRange = screen.GetViewRange(tmpBoxView.Name); if (viewRange == null) { ((BrailleIOScreen)brailleIOMediator.GetView(textBoxContent.screenName)).AddViewRange(tmpBoxView.Name, tmpBoxView); } } callAllPostHooks(tmpBoxView, cM, ref viewMatrix, false); return(viewMatrix); }
/// <summary> /// Called every frame to drive the game logic /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Tick() { // Push the last update to the screen if (!buffers[0].Equals(buffers[1]) || textRegionDirty) { textRegionDirty = false; Render(); } // Update the controllers characterController.Update(); levelController.Update(); dialogueController.Update(); // Do the rendering/sound stuff. TODO: Clean this up with views buffers[bufferIndex].Clear(); buffers[bufferIndex].X = (levelModel.Avatar.X + levelModel.Avatar.Width / 2) - buffers[bufferIndex].Width / 2; buffers[bufferIndex].Y = (levelModel.Avatar.Y + levelModel.Avatar.Height / 2) - buffers[bufferIndex].Height / 2; foreach (WorldObject obj in levelModel.level.Objects) { if (!obj.isHidden) { buffers[bufferIndex].Draw(obj); } } buffers[bufferIndex].Draw(levelModel.Avatar); mainRegion.SetMatrix(buffers[bufferIndex].Data); bufferIndex = (bufferIndex + 1) % 2; if (gameState == GameState.Event && gameDialogue.HasAction()) { if (detailRegion.GetText() != gameDialogue.GetCurrent()) { detailRegion.SetText(gameDialogue.GetCurrent()); textRegionDirty = true; Audio.AbortCurrentSound(); Audio.PlaySound(gameDialogue.GetCurrent()); } if (!detailRegion.IsVisible()) { detailRegion.SetVisibility(true); textRegionDirty = true; } } else { Audio.AbortCurrentSound(); detailRegion.SetText(string.Empty); if (detailRegion.IsVisible()) { textRegionDirty = true; detailRegion.SetVisibility(false); } } }