=> WindowRectangle = GetConsoleRect(); // fill the entire console with the root "desktop" public override void Draw(IScreenBuffer screenBuffer) { base.Draw(screenBuffer); var clientRect = ClientRectangle; var y = 0; screenBuffer.Draw(clientRect.X, clientRect.Y + y++, "F1 - List animals"); screenBuffer.Draw(clientRect.X, clientRect.Y + y++, "F2 - Advance week"); screenBuffer.Draw(clientRect.X, clientRect.Y + y++, "F3 - Show this weeks food requirement"); screenBuffer.Draw(clientRect.X, clientRect.Y + y++, "F4 - Wipe and restart database"); }
public override void Draw(IScreenBuffer screenBuffer) { base.Draw(screenBuffer); var rc = ClientRectangle; var text1 = "Do you want to reset database?"; var text2 = "Press Y for yes or Escape to cancel."; screenBuffer.Draw(rc.X + rc.Width / 2 - text1.Length / 2, rc.Y, text1); screenBuffer.Draw(rc.X + rc.Width / 2 - text2.Length / 2, rc.Y + 1, text2); }
public void Draw(IScreenBuffer screenBuffer, Point location) { screenBuffer.Draw(location.X, location.Y, Title, ConsoleColor.Magenta); screenBuffer.EnableUnderline = true; screenBuffer.Draw( location.X, location.Y + 1, Value.ToString().PadRight(MaxLength, ' '), ConsoleColor.Gray); screenBuffer.EnableUnderline = false; }
public override void Draw(IScreenBuffer screenBuffer) { base.Draw(screenBuffer); if (_database == null) { return; } screenBuffer.Draw(ClientRectangle.X, ClientRectangle.Y, "Species"); screenBuffer.Draw(ClientRectangle.X + 10, ClientRectangle.Y, "Name"); screenBuffer.Draw(ClientRectangle.X + 30, ClientRectangle.Y, "Age"); int index = 0; int y = ClientRectangle.Y + 2; foreach (var animal in _database.Animals) { var line = $"{animal.Species.PadRight(10)}{animal.Name.Clip(19).PadRight(20)}{animal.Age.ToBirthdayFormat()}"; var foreground = ConsoleColor.Gray; var background = ConsoleColor.Black; if (index == _selectedIndex) { background = ConsoleColor.Blue; } screenBuffer.Draw(ClientRectangle.X, y, line, foreground, background); if (++y >= ClientRectangle.Bottom) { break; } ++index; } }
public override void Draw(IScreenBuffer screenBuffer) { base.Draw(screenBuffer); var totalFoodRequirement = _zooManager.CalculateWeekTotalFoodRequirement(); var rc = ClientRectangle; int y = 0; screenBuffer.Draw(rc.X, rc.Y + y, "Animal food requirements this week"); y += 2; // print out each individual species and their food requirement foreach (var kv in _zooManager.CalculateIndividualSpeciesFoodRequirement().OrderBy(a => a.Key)) { var species = kv.Key; var requirement = kv.Value; screenBuffer.Draw(rc.X, rc.Y + y++, $"[{species}] {requirement:0.00} kg"); } ++y; screenBuffer.Draw(rc.X, rc.Y + y++, $"Total required food: {totalFoodRequirement:0.00} kg"); }
public override void Draw(IScreenBuffer screenBuffer) { base.Draw(screenBuffer); var y = ClientRectangle.Y; foreach (var component in _components) { component.Draw(screenBuffer, new Point(ClientRectangle.X, y)); if (component == _components[_focusedComponentIndex]) { screenBuffer.Draw(ClientRectangle.X + component.Value.Length, y + 1, ' ', ConsoleColor.Gray, ConsoleColor.Gray); } y += 3; } }
public override void Draw(IScreenBuffer screenBuffer) { base.Draw(screenBuffer); screenBuffer.Draw(ClientRectangle.X, ClientRectangle.Y, _message); }