Wt examples  3.3.1
Public Member Functions | Private Member Functions | Private Attributes | List of all members
HangmanGame Class Reference

#include <HangmanGame.h>

Inheritance diagram for HangmanGame:
Inheritance graph
[legend]

Public Member Functions

 HangmanGame (Wt::WContainerWidget *parent=0)
 
void handleInternalPath (const std::string &internalPath)
 
- Public Member Functions inherited from Wt::WWidget
virtual void setPositionScheme (PositionScheme scheme)=0
 
virtual PositionScheme positionScheme () const =0
 
virtual void setOffsets (const WLength &offset, WFlags< Side > sides=All)=0
 
virtual WLength offset (Side side) const =0
 
virtual void resize (const WLength &width, const WLength &height)
 
virtual WLength width () const =0
 
virtual WLength height () const =0
 
virtual void setMinimumSize (const WLength &width, const WLength &height)=0
 
virtual WLength minimumWidth () const =0
 
virtual WLength minimumHeight () const =0
 
virtual void setMaximumSize (const WLength &width, const WLength &height)=0
 
virtual WLength maximumWidth () const =0
 
virtual WLength maximumHeight () const =0
 
virtual void setLineHeight (const WLength &height)=0
 
virtual WLength lineHeight () const =0
 
virtual void setFloatSide (Side s)=0
 
virtual Side floatSide () const =0
 
virtual void setClearSides (WFlags< Side > sides)=0
 
virtual WFlags< SideclearSides () const =0
 
virtual void setMargin (const WLength &margin, WFlags< Side > sides=All)=0
 
virtual WLength margin (Side side) const =0
 
virtual void setHiddenKeepsGeometry (bool enabled)=0
 
virtual bool hiddenKeepsGeometry () const =0
 
virtual void setHidden (bool hidden, const WAnimation &animation=WAnimation())=0
 
virtual bool isHidden () const =0
 
virtual bool isVisible () const =0
 
virtual void setDisabled (bool disabled)=0
 
virtual bool isDisabled () const =0
 
virtual bool isEnabled () const =0
 
virtual void setPopup (bool popup)=0
 
virtual bool isPopup () const =0
 
virtual void setInline (bool inlined)=0
 
virtual bool isInline () const =0
 
virtual void setDecorationStyle (const WCssDecorationStyle &style)=0
 
virtual WCssDecorationStyledecorationStyle ()=0
 
virtual void setStyleClass (const WString &styleClass)=0
 
virtual WString styleClass () const =0
 
virtual void addStyleClass (const WString &styleClass, bool force=false)=0
 
virtual void removeStyleClass (const WString &styleClass, bool force=false)=0
 
virtual bool hasStyleClass (const WString &styleClass) const =0
 
virtual void setVerticalAlignment (AlignmentFlag alignment, const WLength &length=WLength::Auto)=0
 
virtual AlignmentFlag verticalAlignment () const =0
 
virtual WLength verticalAlignmentLength () const =0
 
virtual void setToolTip (const WString &text, TextFormat textFormat=PlainText)=0
 
virtual const WStringtoolTip () const =0
 
virtual void refresh ()
 
virtual void setAttributeValue (const std::string &name, const WString &value)=0
 
virtual WString attributeValue (const std::string &name) const =0
 
virtual void setJavaScriptMember (const std::string &name, const std::string &value)=0
 
virtual std::string javaScriptMember (const std::string &name) const =0
 
virtual void callJavaScriptMember (const std::string &name, const std::string &args)=0
 
virtual void load ()=0
 
virtual bool loaded () const =0
 
virtual void setTabIndex (int index)=0
 
virtual int tabIndex () const =0
 
virtual void setId (const std::string &id)=0
 
virtual WWidgetfind (const std::string &name)=0
 
virtual void setSelectable (bool selectable)=0
 
virtual void doJavaScript (const std::string &js)=0
 

Private Member Functions

void onAuthEvent ()
 
void showGame ()
 
void showHighScores ()
 

Private Attributes

Wt::WStackedWidgetmainStack_
 
HangmanWidgetgame_
 
HighScoresWidgetscores_
 
Wt::WContainerWidgetlinks_
 
Wt::WAnchorbackToGameAnchor_
 
Wt::WAnchorscoresAnchor_
 
Session session_
 

Additional Inherited Members

- Protected Member Functions inherited from Wt::WWidget
virtual void enableAjax ()=0
 
virtual void propagateSetEnabled (bool enabled)=0
 
virtual void render (WFlags< RenderFlag > flags)
 

Detailed Description

Definition at line 24 of file HangmanGame.h.

Constructor & Destructor Documentation

HangmanGame::HangmanGame ( Wt::WContainerWidget parent = 0)

Definition at line 21 of file HangmanGame.C.

21  :
22  WContainerWidget(parent),
23  game_(0),
24  scores_(0)
25 {
27 
29  session_.users(), this);
31  authModel->addOAuth(Session::oAuth());
32 
33  Auth::AuthWidget *authWidget = new Auth::AuthWidget(session_.login());
34  authWidget->setModel(authModel);
35  authWidget->setRegistrationEnabled(true);
36 
37  WText *title = new WText("<h1>A Witty game: Hangman</h1>");
38  addWidget(title);
39 
40  addWidget(authWidget);
41 
42  mainStack_ = new WStackedWidget();
43  mainStack_->setStyleClass("gamestack");
44  addWidget(mainStack_);
45 
46  links_ = new WContainerWidget();
47  links_->setStyleClass("links");
48  links_->hide();
49  addWidget(links_);
50 
51  backToGameAnchor_ = new WAnchor("/play", "Gaming Grounds", links_);
52  backToGameAnchor_->setLink(WLink(WLink::InternalPath, "/play"));
53 
54  scoresAnchor_ = new WAnchor("/highscores", "Highscores", links_);
55  scoresAnchor_->setLink(WLink(WLink::InternalPath, "/highscores"));
56 
57  WApplication::instance()->internalPathChanged()
58  .connect(this, &HangmanGame::handleInternalPath);
59 
60  authWidget->processEnvironment();
61 }
Wt::WAnchor * backToGameAnchor_
Definition: HangmanGame.h:36
virtual void addOAuth(const OAuthService *auth)
Session session_
Definition: HangmanGame.h:39
void setModel(AuthModel *model)
Wt::Auth::AbstractUserDatabase & users()
Definition: Session.C:208
Wt::WStackedWidget * mainStack_
Definition: HangmanGame.h:32
Signal & changed()
static const Wt::Auth::AuthService & auth()
Definition: Session.C:213
virtual void addPasswordAuth(const AbstractPasswordService *auth)
HangmanWidget * game_
Definition: HangmanGame.h:33
static const std::vector< const Wt::Auth::OAuthService * > & oAuth()
Definition: Session.C:223
Wt::Auth::Login & login()
Definition: Session.h:32
Wt::WAnchor * scoresAnchor_
Definition: HangmanGame.h:37
Wt::WContainerWidget * links_
Definition: HangmanGame.h:35
virtual void processEnvironment()
void setRegistrationEnabled(bool enabled)
void setLink(const WLink &link)
HighScoresWidget * scores_
Definition: HangmanGame.h:34
virtual Wt::Signals::connection connect(WObject *target, WObject::Method method)
static const Wt::Auth::AbstractPasswordService & passwordAuth()
Definition: Session.C:218
void handleInternalPath(const std::string &internalPath)
Definition: HangmanGame.C:76
virtual void setStyleClass(const WString &styleClass)=0
void onAuthEvent()
Definition: HangmanGame.C:63

Member Function Documentation

void HangmanGame::handleInternalPath ( const std::string &  internalPath)

Definition at line 76 of file HangmanGame.C.

77 {
78  if (session_.login().loggedIn()) {
79  if (internalPath == "/play")
80  showGame();
81  else if (internalPath == "/highscores")
83  else
84  WApplication::instance()->setInternalPath("/play", true);
85  }
86 }
void showHighScores()
Definition: HangmanGame.C:88
Session session_
Definition: HangmanGame.h:39
void showGame()
Definition: HangmanGame.C:100
bool loggedIn() const
Wt::Auth::Login & login()
Definition: Session.h:32
void HangmanGame::onAuthEvent ( )
private

Definition at line 63 of file HangmanGame.C.

64 {
65  if (session_.login().loggedIn()) {
66  links_->show();
67  handleInternalPath(WApplication::instance()->internalPath());
68  } else {
69  mainStack_->clear();
70  game_ = 0;
71  scores_ = 0;
72  links_->hide();
73  }
74 }
Session session_
Definition: HangmanGame.h:39
bool loggedIn() const
Wt::WStackedWidget * mainStack_
Definition: HangmanGame.h:32
HangmanWidget * game_
Definition: HangmanGame.h:33
Wt::Auth::Login & login()
Definition: Session.h:32
Wt::WContainerWidget * links_
Definition: HangmanGame.h:35
HighScoresWidget * scores_
Definition: HangmanGame.h:34
void handleInternalPath(const std::string &internalPath)
Definition: HangmanGame.C:76
void HangmanGame::showGame ( )
private

Definition at line 100 of file HangmanGame.C.

101 {
102  if (!game_) {
105  }
106 
108 
109  backToGameAnchor_->addStyleClass("selected-link");
110  scoresAnchor_->removeStyleClass("selected-link");
111 }
Wt::WAnchor * backToGameAnchor_
Definition: HangmanGame.h:36
Session session_
Definition: HangmanGame.h:39
virtual void removeStyleClass(const WString &styleClass, bool force=false)=0
void setCurrentWidget(WWidget *widget)
Wt::WStackedWidget * mainStack_
Definition: HangmanGame.h:32
HangmanWidget * game_
Definition: HangmanGame.h:33
Wt::WAnchor * scoresAnchor_
Definition: HangmanGame.h:37
virtual Wt::Signals::connection connect(WObject *target, WObject::Method method)
void addToScore(int s)
Definition: Session.C:156
Wt::Signal< int > & scoreUpdated()
Definition: HangmanWidget.h:27
virtual void addStyleClass(const WString &styleClass, bool force=false)=0
std::string userName() const
Definition: Session.C:148
void HangmanGame::showHighScores ( )
private

Definition at line 88 of file HangmanGame.C.

89 {
90  if (!scores_)
92 
94  scores_->update();
95 
96  backToGameAnchor_->removeStyleClass("selected-link");
97  scoresAnchor_->addStyleClass("selected-link");
98 }
Wt::WAnchor * backToGameAnchor_
Definition: HangmanGame.h:36
Session session_
Definition: HangmanGame.h:39
virtual void removeStyleClass(const WString &styleClass, bool force=false)=0
void setCurrentWidget(WWidget *widget)
Wt::WStackedWidget * mainStack_
Definition: HangmanGame.h:32
Wt::WAnchor * scoresAnchor_
Definition: HangmanGame.h:37
HighScoresWidget * scores_
Definition: HangmanGame.h:34
virtual void addStyleClass(const WString &styleClass, bool force=false)=0

Member Data Documentation

Wt::WAnchor* HangmanGame::backToGameAnchor_
private

Definition at line 36 of file HangmanGame.h.

HangmanWidget* HangmanGame::game_
private

Definition at line 33 of file HangmanGame.h.

Wt::WContainerWidget* HangmanGame::links_
private

Definition at line 35 of file HangmanGame.h.

Wt::WStackedWidget* HangmanGame::mainStack_
private

Definition at line 32 of file HangmanGame.h.

HighScoresWidget* HangmanGame::scores_
private

Definition at line 34 of file HangmanGame.h.

Wt::WAnchor* HangmanGame::scoresAnchor_
private

Definition at line 37 of file HangmanGame.h.

Session HangmanGame::session_
private

Definition at line 39 of file HangmanGame.h.


The documentation for this class was generated from the following files:

Generated on Wed Jun 11 2014 for the C++ Web Toolkit (Wt) by doxygen 1.8.7