9 #include <Wt/WAnchor.h>
11 #include <Wt/WStackedWidget.h>
12 #include <Wt/WApplication.h>
13 #include <Wt/Auth/AuthWidget.h>
24 auto authModel = std::make_unique<Auth::AuthModel>(
Session::auth(), session_.users());
28 auto authWidget = std::make_unique<Auth::AuthWidget>(session_.login());
29 auto authWidgetPtr = authWidget.get();
30 authWidget->setModel(std::move(authModel));
31 authWidget->setRegistrationEnabled(
true);
33 addNew<WText>(
"<h1>A Witty game: Hangman</h1>");
35 addWidget(std::move(authWidget));
37 mainStack_ = addNew<WStackedWidget>();
38 mainStack_->setStyleClass(
"gamestack");
40 links_ = addNew<WContainerWidget>();
41 links_->setStyleClass(
"links");
44 backToGameAnchor_ = links_->addNew<
WAnchor>(
"/play",
"Gaming Grounds");
47 scoresAnchor_ = links_->addNew<
WAnchor>(
"/highscores",
"Highscores");
53 authWidgetPtr->processEnvironment();
58 if (session_.login().loggedIn()) {
71 if (session_.login().loggedIn()) {
72 if (internalPath ==
"/play")
74 else if (internalPath ==
"/highscores")
86 mainStack_->setCurrentWidget(scores_);
89 backToGameAnchor_->removeStyleClass(
"selected-link");
90 scoresAnchor_->addStyleClass(
"selected-link");
96 game_ = mainStack_->addNew<
HangmanWidget>(session_.userName());
100 mainStack_->setCurrentWidget(game_);
102 backToGameAnchor_->addStyleClass(
"selected-link");
103 scoresAnchor_->removeStyleClass(
"selected-link");
void handleInternalPath(const std::string &internalPath)
static const Wt::Auth::AbstractPasswordService & passwordAuth()
static const Wt::Auth::AuthService & auth()
static std::vector< const Wt::Auth::OAuthService * > oAuth()
virtual Wt::Signals::connection connect(WObject *target, WObject::Method method) override
void setLink(const WLink &link)
void setInternalPath(const std::string &path, bool emitChange=false)
static WApplication * instance()
Signal< std::string > & internalPathChanged()