9#include <Wt/WStackedWidget.h>
10#include <Wt/WVBoxLayout.h>
11#include <Wt/WHBoxLayout.h>
12#include <Wt/WApplication.h>
13#include <Wt/Auth/AuthWidget.h>
14#include <Wt/Auth/RegistrationModel.h>
27 std::unique_ptr<Auth::AuthModel> authModel
32 std::unique_ptr<Auth::AuthWidget> authWidget
34 auto authWidgetPtr = authWidget.get();
35 authWidget->setModel(std::move(authModel));
36 authWidget->setRegistrationEnabled(
true);
38 std::unique_ptr<WText> title(std::make_unique<WText>(
"<h1>A Witty game: Hangman</h1>"));
39 addWidget(std::move(title));
41 addWidget(std::move(authWidget));
45 addWidget(std::unique_ptr<WStackedWidget>(
mainStack_));
47 links_ =
new WContainerWidget();
48 links_->setStyleClass(
"links");
50 addWidget(std::unique_ptr<WContainerWidget>(
links_));
56 scoresAnchor_->setLink(WLink(LinkType::InternalPath,
"/highscores"));
58 WApplication::instance()->internalPathChanged()
61 authWidgetPtr->processEnvironment();
80 if (internalPath ==
"/play")
82 else if (internalPath ==
"/highscores")
85 WApplication::instance()->setInternalPath(
"/play",
true);
WAnchor * backToGameAnchor_
WStackedWidget * mainStack_
WContainerWidget * links_
void handleInternalPath(const std::string &internalPath)
HighScoresWidget * scores_
static const Auth::AbstractPasswordService & passwordAuth()
static const std::vector< const Auth::OAuthService * > & oAuth()
std::string userName() const
static const Auth::AuthService & auth()
Auth::AbstractUserDatabase & users()