Wt examples  4.10.4
Character.C
Go to the documentation of this file.
1 #include <iostream>
2 #include <Wt/WAny.h>
3 
4 #include "Character.h"
5 
6 Character::Character(const std::string& name)
7  : WText(),
8  name_(name),
9  redDrops_(0),
10  blueDrops_(0)
11 {
12  setText(name_ + " got no pills");
13 
14  setStyleClass("character");
15 
16  /*
17  * Accept drops, and indicate this with a change in CSS style class.
18  */
19  acceptDrops("red-pill", "red-drop-site");
20  acceptDrops("blue-pill", "blue-drop-site");
21 
22  setInline(false);
23 }
24 
26 {
27  if (event.mimeType() == "red-pill")
28  ++redDrops_;
29  if (event.mimeType() == "blue-pill")
30  ++blueDrops_;
31 
32  std::string text = name_ + " got ";
33 
34  if (redDrops_ != 0)
35  text += asString(redDrops_).toUTF8() + " red pill";
36  if (redDrops_ > 1)
37  text += "s";
38 
39  if (redDrops_ != 0 && blueDrops_ != 0)
40  text += " and ";
41 
42  if (blueDrops_ != 0)
43  text += asString(blueDrops_).toUTF8() + " blue pill";
44  if (blueDrops_ > 1)
45  text += "s";
46 
47  setText(text);
48 }
Character(const std::string &name)
Create a new character with the given name.
Definition: Character.C:6
void dropEvent(WDropEvent event)
React to a drop event.
Definition: Character.C:25
std::string name_
The name.
Definition: Character.h:37
int blueDrops_
The current number of blue pills.
Definition: Character.h:43
int redDrops_
The current number of red pills.
Definition: Character.h:40
const std::string & mimeType() const
std::string toUTF8() const
const WString & text() const
bool setText(const WString &text)
virtual void setStyleClass(const WString &styleClass) override
virtual void setInline(bool isInline) override
virtual void acceptDrops(const std::string &mimeType, const WString &hoverStyleClass=WString())
WString asString(const cpp17::any &v, const WString &formatString=WString())