int main(void) { auto renderWindow = CreateRenderWindow(); auto inputComponent = CreateInputHandler(renderWindow); auto gameBoard = CreateGameBoard(); const auto numTiles = gameBoard->GetNumTiles(); auto renderComponent = CreateGameRenderer(*gameBoard, renderWindow); auto boardController = std::make_unique<BoardController>(std::move(gameBoard)); auto playerController = CreatePlayerController(NUM_PLAYERS); { auto chooser = std::make_shared<TileChooser>(NUM_PLAYERS, 10, *renderComponent); inputComponent->AddObserver(chooser); chooser->ChooseTiles(); //chooser->AutoChooseTiles(); chooser->AssignTilesToPlayers(*playerController); } { auto manager = std::make_shared<GameManager>(std::move(renderComponent), std::move(boardController), playerController); inputComponent->AddObserver(manager); playerController->ObserveTimers(manager); manager->StartGame(); } glfwDestroyWindow(renderWindow); glfwTerminate(); }
bool wxButton::Create(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap, const wxString &lbl, const wxPoint &pos, const wxSize &size, long style, const wxValidator& validator, const wxString &name) { wxString label(lbl); if (label.empty() && wxIsStockID(id)) label = wxGetStockLabel(id); long ctrl_style = style & ~wxBU_ALIGN_MASK; ctrl_style = ctrl_style & ~wxALIGN_MASK; if((style & wxBU_RIGHT) == wxBU_RIGHT) ctrl_style |= wxALIGN_RIGHT; else if((style & wxBU_LEFT) == wxBU_LEFT) ctrl_style |= wxALIGN_LEFT; else ctrl_style |= wxALIGN_CENTRE_HORIZONTAL; if((style & wxBU_TOP) == wxBU_TOP) ctrl_style |= wxALIGN_TOP; else if((style & wxBU_BOTTOM) == wxBU_BOTTOM) ctrl_style |= wxALIGN_BOTTOM; else ctrl_style |= wxALIGN_CENTRE_VERTICAL; if ( !wxControl::Create(parent, id, pos, size, ctrl_style, validator, name) ) return false; SetLabel(label); if (bitmap.IsOk()) SetBitmap(bitmap); // SetInitialSize called by SetBitmap() else SetInitialSize(size); CreateInputHandler(wxINP_HANDLER_BUTTON); return true; }
bool wxCheckListBox::Create(wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size, int n, const wxString choices[], long style, const wxValidator& validator, const wxString &name) { if ( !wxListBox::Create(parent, id, pos, size, n, choices, style, validator, name) ) return false; CreateInputHandler(wxINP_HANDLER_CHECKLISTBOX); return true; }
bool wxButton::Create(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap, const wxString &lbl, const wxPoint &pos, const wxSize &size, long style, const wxValidator& validator, const wxString &name) { wxString label(lbl); if (label.empty() && wxIsStockID(id)) label = wxGetStockLabel(id); long ctrl_style = style & !wxBU_ALIGN_MASK; wxASSERT_MSG( (ctrl_style & wxALIGN_MASK) == 0, _T("Some style conflicts with align flags") ); if((style & wxBU_RIGHT) == wxBU_RIGHT) ctrl_style |= wxALIGN_RIGHT; else if((style & wxBU_LEFT) == wxBU_LEFT) ctrl_style |= wxALIGN_LEFT; else ctrl_style |= wxALIGN_CENTRE_HORIZONTAL; if((style & wxBU_TOP) == wxBU_TOP) ctrl_style |= wxALIGN_TOP; else if((style & wxBU_BOTTOM) == wxBU_BOTTOM) ctrl_style |= wxALIGN_BOTTOM; else ctrl_style |= wxALIGN_CENTRE_VERTICAL; if ( !wxControl::Create(parent, id, pos, size, ctrl_style, validator, name) ) return false; SetLabel(label); SetImageLabel(bitmap); // SetBestSize(size); -- called by SetImageLabel() CreateInputHandler(wxINP_HANDLER_BUTTON); return true; }
bool wxListBox::Create(wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size, int n, const wxString choices[], long style, const wxValidator& validator, const wxString &name) { // for compatibility accept both the new and old styles - they mean the // same thing for us if ( style & wxLB_ALWAYS_SB ) style |= wxALWAYS_SHOW_SB; // if we don't have neither multiple nor extended flag, we must have the // single selection listbox if ( !(style & (wxLB_MULTIPLE | wxLB_EXTENDED)) ) style |= wxLB_SINGLE; #if wxUSE_TWO_WINDOWS style |= wxVSCROLL|wxHSCROLL; if ((style & wxBORDER_MASK) == 0) style |= wxBORDER_SUNKEN; #endif if ( !wxControl::Create(parent, id, pos, size, style, validator, name) ) return false; SetWindow(this); m_strings = new wxArrayString; Set(n, choices); SetBestSize(size); CreateInputHandler(wxINP_HANDLER_LISTBOX); return true; }
bool wxSpinButton::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name) { // the spin buttons never have the border style &= ~wxBORDER_MASK; if ( !wxSpinButtonBase::Create(parent, id, pos, size, style, wxDefaultValidator, name) ) return false; SetInitialSize(size); CreateInputHandler(wxINP_HANDLER_SPINBTN); return true; }
bool wxStatusBarUniv::Create(wxWindow *parent, wxWindowID id, long style, const wxString& name) { if ( !wxWindow::Create(parent, id, wxDefaultPosition, wxDefaultSize, style, name) ) { return false; } SetFieldsCount(1); CreateInputHandler(wxINP_HANDLER_STATUSBAR); SetSize(DoGetBestSize()); return true; }
bool wxScrollBar::Create(wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size, long style, const wxValidator& validator, const wxString &name) { // the scrollbars never have the border style &= ~wxBORDER_MASK; if ( !wxControl::Create(parent, id, pos, size, style, validator, name) ) return false; SetInitialSize(size); // override the cursor of the target window (if any) SetCursor(wxCURSOR_ARROW); CreateInputHandler(wxINP_HANDLER_SCROLLBAR); return true; }