public FroggiesMainView(IEventAggregator aggregator, FroggiesMainGameClass game) { _aggregator = aggregator; _aggregator.Subscribe(this); Grid thisGrid = new Grid(); AddAutoColumns(thisGrid, 2); StackPanel stack = new StackPanel(); GameBoardWPF board = new GameBoardWPF(aggregator, game, this); board.Margin = new Thickness(5, 5, 5, 5); stack.Margin = new Thickness(5, 5, 5, 5); AddControlToGrid(thisGrid, board, 0, 0); Button redoButton = GetGamingButton("Redo Game", nameof(FroggiesMainViewModel.RedoAsync)); stack.Children.Add(redoButton); SimpleLabelGrid thisLab = new SimpleLabelGrid(); thisLab.AddRow("Moves Left", nameof(FroggiesMainViewModel.MovesLeft)); thisLab.AddRow("How Many Frogs Currently", nameof(FroggiesMainViewModel.NumberOfFrogs)); thisLab.AddRow("How Many Frogs To Start", nameof(FroggiesMainViewModel.StartingFrogs)); stack.Children.Add(thisLab.GetContent); AddControlToGrid(thisGrid, stack, 0, 1); Content = thisGrid; //i think. }
public ConnectFourMainView(IEventAggregator aggregator, TestOptions test ) { _aggregator = aggregator; _aggregator.Subscribe(this); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(ConnectFourMainViewModel.RestoreScreen) }; } SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(ConnectFourMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(ConnectFourMainViewModel.Status)); _board = new GameBoardWPF(); mainStack.Children.Add(firstInfo.GetContent); mainStack.Children.Add(_board); if (restoreP != null) { //todo: figure out where to place the restore ui if there is a restore option. mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public TicTacToeMainView(IEventAggregator aggregator, TestOptions test ) { _aggregator = aggregator; _aggregator.Subscribe(this); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(TicTacToeMainViewModel.RestoreScreen) }; } _board = new GameBoardWPF(); mainStack.Children.Add(_board); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(TicTacToeMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(TicTacToeMainViewModel.Status)); // this may have to show the status to begin with (?) mainStack.Children.Add(firstInfo.GetContent); if (restoreP != null) { mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public BattleshipMainView(IEventAggregator aggregator, IGamePackageResolver resolver ) { _aggregator = aggregator; _resolver = resolver; _aggregator.Subscribe(this); _boardUI = new GameBoardWPF(); Grid mainGrid = new Grid(); AddAutoColumns(mainGrid, 1); AddLeftOverColumn(mainGrid !, 1); // try as leftovers mainGrid !.Margin = new Thickness(5, 5, 5, 5); AddControlToGrid(mainGrid, _boardUI, 0, 0); StackPanel otherStack = new StackPanel(); otherStack.Margin = new Thickness(5, 5, 5, 5); AddControlToGrid(mainGrid, otherStack, 0, 1); _shipUI = new ShipControlWPF(); otherStack.Children.Add(_shipUI); StackPanel tempStack = new StackPanel(); tempStack.Margin = new Thickness(0, 5, 0, 0); var thisBind = GetVisibleBinding(nameof(BattleshipMainViewModel.ShipDirectionsVisible)); tempStack.SetBinding(StackPanel.VisibilityProperty, thisBind); var firstBut = GetGamingButton("Horizontal", nameof(BattleshipMainViewModel.ShipDirection)); firstBut.CommandParameter = true; thisBind = new Binding(nameof(BattleshipMainViewModel.ShipsHorizontal)); IValueConverter thisConv; thisConv = new DirectionConverter(); thisBind.Converter = thisConv; thisBind.ConverterParameter = true; // this one is true for comparison //WindowHelper.SetKeyBindings(Key.F1, nameof(BattleshipMainViewModel.ShipDirectionCommand), true); firstBut.SetBinding(BackgroundProperty, thisBind); tempStack.Children.Add(firstBut); firstBut = GetGamingButton("Vertical", nameof(BattleshipMainViewModel.ShipDirection)); //WindowHelper.SetKeyBindings(Key.F2, nameof(BattleshipMainViewModel.ShipDirectionCommand), false); firstBut.CommandParameter = false; thisBind = new Binding(nameof(BattleshipMainViewModel.ShipsHorizontal)); thisBind.Converter = thisConv; thisBind.ConverterParameter = false; firstBut.SetBinding(BackgroundProperty, thisBind); tempStack.Children.Add(firstBut); otherStack.Children.Add(tempStack); // i think SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(BattleshipMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(BattleshipMainViewModel.Status)); otherStack.Children.Add(firstInfo.GetContent); //for now, no hotkeys. otherwise, requires lots of rethinking on this one. Content = mainGrid; }
public LifeBoardGameMainView(IEventAggregator aggregator, IGamePackageRegister register, GameBoardGraphicsCP graphicsCP ) { _aggregator = aggregator; _aggregator.Subscribe(this); Grid grid = new Grid(); AddAutoColumns(grid, 1); AddLeftOverColumn(grid, 70); AddLeftOverColumn(grid, 30);//i think split 50/50 is fine. SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(LifeBoardGameMainViewModel.NormalTurn)); firstInfo.AddRow("Instructions", nameof(LifeBoardGameMainViewModel.Instructions)); firstInfo.AddRow("Status", nameof(LifeBoardGameMainViewModel.Status)); StackPanel stack = new StackPanel(); stack.Margin = new Thickness(3); stack.Children.Add(firstInfo.GetContent); AddVerticalLabelGroup("Space Details", nameof(LifeBoardGameMainViewModel.GameDetails), stack); AddControlToGrid(grid, stack, 0, 2); //on tablets will be different. GameBoardWPF gameBoard = new GameBoardWPF(aggregator); gameBoard.VerticalAlignment = VerticalAlignment.Top; register.RegisterControl(gameBoard.Element, ""); graphicsCP.LinkBoard(); AddControlToGrid(grid, gameBoard, 0, 0); gameBoard.Margin = new Thickness(3); stack = new StackPanel(); //everything else will go to this stack. stack.Margin = new Thickness(3); Type type = typeof(LifeBoardGameMainViewModel); CustomBasicList <string> list = type.GetProperties(x => x.Name.EndsWith("Screen") && x.Name != "MainScreen" && x.Name != "BoardScreen").Select(x => x.Name).ToCustomBasicList(); if (list.Count == 0) { throw new BasicBlankException("No screens found using reflection. Rethink"); } list.ForEach(x => { ParentSingleUIContainer middle = new ParentSingleUIContainer() { Name = x, HorizontalAlignment = HorizontalAlignment.Left //Margin = new Thickness(5) }; stack.Children.Add(middle); }); AddControlToGrid(grid, stack, 0, 1); Content = grid; }
public SequenceDiceMainView(IEventAggregator aggregator, TestOptions test, SequenceDiceVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _board = new GameBoardWPF(); _board.Margin = new Thickness(3); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; StackPanel tempStack = new StackPanel(); tempStack.Orientation = Orientation.Horizontal; mainStack.Children.Add(tempStack); tempStack.Children.Add(_board); if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(SequenceDiceMainViewModel.RestoreScreen) }; } var thisRoll = GetGamingButton("Roll Dice", nameof(SequenceDiceMainViewModel.RollDiceAsync)); StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; _diceControl = new DiceListControlWPF <SimpleDice>(); otherStack.Children.Add(_diceControl); otherStack.Children.Add(thisRoll); mainStack.Children.Add(otherStack); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(SequenceDiceMainViewModel.NormalTurn)); firstInfo.AddRow("Instructions", nameof(SequenceDiceMainViewModel.Instructions)); firstInfo.AddRow("Status", nameof(SequenceDiceMainViewModel.Status)); //if we need to put to main, just change to main (?) tempStack.Children.Add(firstInfo.GetContent); if (restoreP != null) { mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public PaydayMainView(IEventAggregator aggregator, TestOptions test, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register, PaydayGameContainer gameContainer, PaydayVMData model ) { StackPanel mainStack = new StackPanel(); _aggregator = aggregator; _gameContainer = gameContainer; _model = model; _aggregator.Subscribe(this); _board = new GameBoardWPF(); register.RegisterControl(_board.Element, "main"); graphicsCP.LinkBoard(); _score = new ScoreBoardWPF(); _score.AddColumn("Money", true, nameof(PaydayPlayerItem.MoneyHas), useCurrency: true, rightMargin: 10); _score.AddColumn("Loans", true, nameof(PaydayPlayerItem.Loans), useCurrency: true, rightMargin: 10); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Main Turn", nameof(PaydayMainViewModel.NormalTurn)); firstInfo.AddRow("Other Turn", nameof(PaydayMainViewModel.OtherLabel)); firstInfo.AddRow("Progress", nameof(PaydayMainViewModel.MonthLabel)); firstInfo.AddRow("Status", nameof(PaydayMainViewModel.Status)); //firstInfo.AddRow("Instructions", nameof(PaydayMainViewModel.Instructions)); var firstContent = firstInfo.GetContent; StackPanel tempStack = new StackPanel(); AddVerticalLabelGroup("Instructions", nameof(PaydayMainViewModel.Instructions), tempStack); ScrollViewer tempScroll = new ScrollViewer(); tempScroll.VerticalScrollBarVisibility = ScrollBarVisibility.Auto; tempScroll.HorizontalScrollBarVisibility = ScrollBarVisibility.Disabled; tempScroll.Content = tempStack; ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(PaydayMainViewModel.RestoreScreen) }; } StackPanel firstStack = new StackPanel(); firstStack.Orientation = Orientation.Horizontal; firstStack.Children.Add(_board); mainStack.Children.Add(firstStack); firstStack.Margin = new Thickness(3, 3, 3, 3); Grid rightGrid = new Grid(); firstStack.Children.Add(rightGrid); AddPixelRow(rightGrid, 225); AddLeftOverRow(rightGrid, 1); AddAutoColumns(rightGrid, 1); Grid grid1 = new Grid(); AddControlToGrid(rightGrid, grid1, 0, 0); AddAutoRows(grid1, 1); AddPixelColumn(grid1, 200); AddPixelColumn(grid1, 150); AddPixelColumn(grid1, 200); AddLeftOverColumn(grid1, 1); StackPanel stack1 = new StackPanel(); AddControlToGrid(grid1, stack1, 0, 0); ParentSingleUIContainer mailPile = new ParentSingleUIContainer() { Name = nameof(PaydayMainViewModel.MailPileScreen) }; ParentSingleUIContainer dealPile = new ParentSingleUIContainer() { Name = nameof(PaydayMainViewModel.DealPileScreen) }; stack1.Children.Add(mailPile); stack1.Children.Add(dealPile); ParentSingleUIContainer roller = new ParentSingleUIContainer() { Name = nameof(PaydayMainViewModel.RollerScreen) }; stack1.Children.Add(roller); AddControlToGrid(grid1, tempScroll, 0, 1); // instructions on card AddControlToGrid(grid1, firstContent, 0, 2); AddControlToGrid(grid1, _score, 0, 3); Grid grid2 = new Grid(); AddControlToGrid(rightGrid, grid2, 1, 0); AddAutoRows(grid2, 1); AddAutoColumns(grid2, 1); AddLeftOverColumn(grid2, 1); StackPanel finalStack = new StackPanel(); _dealList = new BaseHandWPF <DealCard, CardGraphicsCP, DealCardWPF>(); _dealList.Height = 500; _dealList.HandType = HandObservable <DealCard> .EnumHandList.Vertical; _dealList.HorizontalAlignment = HorizontalAlignment.Left; finalStack.Children.Add(_dealList); AddControlToGrid(grid2, finalStack, 0, 0); _currentPiece = new PawnPiecesWPF <EnumColorChoice>(); _currentPiece.Visibility = Visibility.Collapsed; // until proven to need it _currentPiece.Width = 80; _currentPiece.Height = 80; _currentPiece.Margin = new Thickness(5, 5, 5, 5); _currentPiece.Init(); finalStack.Children.Add(_currentPiece); ParentSingleUIContainer mailList = new ParentSingleUIContainer() { Name = nameof(PaydayMainViewModel.MailListScreen) }; AddControlToGrid(grid2, mailList, 0, 1); ParentSingleUIContainer extras = new ParentSingleUIContainer() { Name = nameof(PaydayMainViewModel.DealOrBuyScreen) }; AddControlToGrid(grid2, extras, 0, 1); extras = new ParentSingleUIContainer() { Name = nameof(PaydayMainViewModel.ChooseDealScreen) }; AddControlToGrid(grid2, extras, 0, 1); extras = new ParentSingleUIContainer() { Name = nameof(PaydayMainViewModel.LotteryScreen) }; AddControlToGrid(grid2, extras, 0, 1); extras = new ParentSingleUIContainer() { Name = nameof(PaydayMainViewModel.PlayerScreen) }; AddControlToGrid(grid2, extras, 0, 1); if (restoreP != null) { //todo: figure out where to place the restore ui if there is a restore option. mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }