Wt examples  4.5.0
Public Member Functions | Private Member Functions | Private Attributes | List of all members
ChatApplication Class Reference

A chat demo application. More...

Inheritance diagram for ChatApplication:
Inheritance graph
[legend]

Public Member Functions

 ChatApplication (const Wt::WEnvironment &env, SimpleChatServer &server)
 Create a new instance. More...
 

Private Member Functions

void addChatWidget ()
 Add another chat client. More...
 
void javaScriptTest ()
 
void emptyFunc ()
 

Private Attributes

SimpleChatServerserver_
 
Wt::WText * javaScriptError_
 
const Wt::WEnvironment & env_
 
std::unique_ptr< Wt::WTimer > timer_
 

Detailed Description

A chat demo application.

Definition at line 25 of file simpleChat.C.

Constructor & Destructor Documentation

◆ ChatApplication()

ChatApplication::ChatApplication ( const Wt::WEnvironment &  env,
SimpleChatServer server 
)

Create a new instance.

Definition at line 45 of file simpleChat.C.

47  : WApplication(env),
48  server_(server),
49  env_(env)
50 {
51  setTitle("Wt Chat");
52  useStyleSheet("chatapp.css");
53 
54  messageResourceBundle().use(appRoot() + "simplechat");
55 
57 
58  root()->addWidget(std::make_unique<Wt::WText>(Wt::WString::tr("introduction")));
59 
60  SimpleChatWidget *chatWidget =
61  root()->addWidget(std::make_unique<SimpleChatWidget>(server_));
62  chatWidget->setStyleClass("chat");
63 
64  root()->addWidget(std::make_unique<Wt::WText>(Wt::WString::tr("details")));
65 
66  Wt::WPushButton *b =
67  root()->addWidget(std::make_unique<Wt::WPushButton>("I'm schizophrenic ..."));
68  b->clicked().connect(b, &Wt::WPushButton::hide);
69  b->clicked().connect(this, &ChatApplication::addChatWidget);
70 }
void addChatWidget()
Add another chat client.
Definition: simpleChat.C:90
SimpleChatServer & server_
Definition: simpleChat.C:33
const Wt::WEnvironment & env_
Definition: simpleChat.C:35
void javaScriptTest()
Definition: simpleChat.C:72
A self-contained chat widget.

Member Function Documentation

◆ addChatWidget()

void ChatApplication::addChatWidget ( )
private

Add another chat client.

Definition at line 90 of file simpleChat.C.

91 {
92  SimpleChatWidget *chatWidget2 =
93  root()->addWidget(std::make_unique<SimpleChatWidget>(server_));
94  chatWidget2->setStyleClass("chat");
95 }

◆ emptyFunc()

void ChatApplication::emptyFunc ( )
private

Definition at line 87 of file simpleChat.C.

88 {}

◆ javaScriptTest()

void ChatApplication::javaScriptTest ( )
private

Definition at line 72 of file simpleChat.C.

73 {
74  if(!env_.javaScript()){
76  root()->addWidget(std::make_unique<Wt::WText>(Wt::WString::tr("serverpushwarning")));
77 
78  // The 5 second timer is a fallback for real server push. The updated
79  // server state will piggy back on the response to this timeout.
80  timer_ = std::make_unique<Wt::WTimer>();
81  timer_->setInterval(std::chrono::milliseconds{5000});
82  timer_->timeout().connect(this, &ChatApplication::emptyFunc);
83  timer_->start();
84  }
85 }
Wt::WText * javaScriptError_
Definition: simpleChat.C:34
void emptyFunc()
Definition: simpleChat.C:87
std::unique_ptr< Wt::WTimer > timer_
Definition: simpleChat.C:36

Member Data Documentation

◆ env_

const Wt::WEnvironment& ChatApplication::env_
private

Definition at line 35 of file simpleChat.C.

◆ javaScriptError_

Wt::WText* ChatApplication::javaScriptError_
private

Definition at line 34 of file simpleChat.C.

◆ server_

SimpleChatServer& ChatApplication::server_
private

Definition at line 33 of file simpleChat.C.

◆ timer_

std::unique_ptr<Wt::WTimer> ChatApplication::timer_
private

Definition at line 36 of file simpleChat.C.


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

Generated on Sat Aug 14 2021 for the C++ Web Toolkit (Wt) by doxygen 1.9.1