Wt examples
3.3.9
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
builddir
build
BUILD
wt-3.3.9
examples
simplechat
SimpleChatWidget.h
Go to the documentation of this file.
1
// This may look like C code, but it's really -*- C++ -*-
2
/*
3
* Copyright (C) 2008 Emweb bvba, Heverlee, Belgium.
4
*
5
* See the LICENSE file for terms of use.
6
*/
7
8
#ifndef SIMPLECHATWIDGET_H_
9
#define SIMPLECHATWIDGET_H_
10
11
#include <Wt/WContainerWidget>
12
#include <Wt/WJavaScript>
13
#include <Wt/WSound>
14
15
#include "
SimpleChatServer.h
"
16
17
namespace
Wt {
18
class
WApplication;
19
class
WPushButton;
20
class
WText;
21
class
WLineEdit;
22
class
WTextArea;
23
}
24
25
class
ChatEvent
;
26
31
34
class
SimpleChatWidget
:
public
Wt::WContainerWidget
,
35
public
SimpleChatServer::Client
36
{
37
public
:
40
SimpleChatWidget
(
SimpleChatServer
&
server
,
Wt::WContainerWidget
*parent = 0);
41
44
~SimpleChatWidget
();
45
46
void
connect
();
47
void
disconnect
();
48
49
52
void
letLogin
();
53
58
bool
startChat
(
const
Wt::WString
& user);
59
60
void
logout
();
61
62
SimpleChatServer
&
server
() {
return
server_
; }
63
64
int
userCount
() {
return
users_
.size(); }
65
66
const
Wt::WString
&
userName
()
const
{
return
user_
; }
67
68
protected
:
69
virtual
void
createLayout
(
Wt::WWidget
*messages,
Wt::WWidget
*userList,
70
Wt::WWidget
*messageEdit,
71
Wt::WWidget
*sendButton,
Wt::WWidget
*logoutButton);
72
73
virtual
void
updateUsers
();
74
virtual
void
newMessage
();
75
76
virtual
void
render
(
Wt::WFlags<Wt::RenderFlag>
flags);
77
78
protected
:
79
bool
loggedIn
()
const
;
80
81
private
:
82
typedef
std::map<Wt::WString, bool>
UserMap
;
83
UserMap
users_
;
84
85
SimpleChatServer
&
server_
;
86
bool
loggedIn_
;
87
88
Wt::JSlot
clearInput_
;
89
90
Wt::WString
user_
;
91
92
Wt::WLineEdit
*
userNameEdit_
;
93
Wt::WText
*
statusMsg_
;
94
95
Wt::WContainerWidget
*
messages_
;
96
Wt::WTextArea
*
messageEdit_
;
97
Wt::WPushButton
*
sendButton_
;
98
Wt::WContainerWidget
*
userList_
;
99
100
Wt::WSound
*
messageReceived_
;
101
102
void
login
();
103
void
changeName
(
const
Wt::WString
& name);
104
void
send
();
105
void
updateUser
();
106
107
/* called from another session */
108
void
processChatEvent
(
const
ChatEvent
& event);
109
};
110
113
#endif // SIMPLECHATWIDGET
SimpleChatWidget::messages_
Wt::WContainerWidget * messages_
Definition:
SimpleChatWidget.h:95
SimpleChatWidget::server_
SimpleChatServer & server_
Definition:
SimpleChatWidget.h:85
SimpleChatWidget::userList_
Wt::WContainerWidget * userList_
Definition:
SimpleChatWidget.h:98
SimpleChatWidget::user_
Wt::WString user_
Definition:
SimpleChatWidget.h:90
SimpleChatWidget::statusMsg_
Wt::WText * statusMsg_
Definition:
SimpleChatWidget.h:93
Wt::WWidget
SimpleChatWidget::messageEdit_
Wt::WTextArea * messageEdit_
Definition:
SimpleChatWidget.h:96
SimpleChatWidget::loggedIn
bool loggedIn() const
Definition:
SimpleChatWidget.C:167
SimpleChatWidget::UserMap
std::map< Wt::WString, bool > UserMap
Definition:
SimpleChatWidget.h:82
Wt::WSound
SimpleChatWidget::userName
const Wt::WString & userName() const
Definition:
SimpleChatWidget.h:66
SimpleChatWidget::send
void send()
Definition:
SimpleChatWidget.C:313
SimpleChatWidget::sendButton_
Wt::WPushButton * sendButton_
Definition:
SimpleChatWidget.h:97
ChatEvent
Encapsulate a chat event.
Definition:
SimpleChatServer.h:30
SimpleChatWidget::createLayout
virtual void createLayout(Wt::WWidget *messages, Wt::WWidget *userList, Wt::WWidget *messageEdit, Wt::WWidget *sendButton, Wt::WWidget *logoutButton)
Definition:
SimpleChatWidget.C:108
SimpleChatWidget::disconnect
void disconnect()
Definition:
SimpleChatWidget.C:53
SimpleChatWidget::server
SimpleChatServer & server()
Definition:
SimpleChatWidget.h:62
SimpleChatWidget::changeName
void changeName(const Wt::WString &name)
Definition:
SimpleChatWidget.C:305
SimpleChatWidget
A self-contained chat widget.
Definition:
SimpleChatWidget.h:34
SimpleChatWidget::~SimpleChatWidget
~SimpleChatWidget()
Delete a chat widget.
Definition:
SimpleChatWidget.C:40
SimpleChatWidget::processChatEvent
void processChatEvent(const ChatEvent &event)
Definition:
SimpleChatWidget.C:358
Wt::WText
Wt::JSlot
SimpleChatWidget::updateUsers
virtual void updateUsers()
Definition:
SimpleChatWidget.C:319
SimpleChatWidget::clearInput_
Wt::JSlot clearInput_
Definition:
SimpleChatWidget.h:88
SimpleChatWidget::updateUser
void updateUser()
Definition:
SimpleChatWidget.C:352
SimpleChatWidget::startChat
bool startChat(const Wt::WString &user)
Start a chat for the given user.
Definition:
SimpleChatWidget.C:187
SimpleChatWidget::userNameEdit_
Wt::WLineEdit * userNameEdit_
Definition:
SimpleChatWidget.h:92
Wt::WPushButton
Wt::WLineEdit
Wt::WString
Wt::WTextArea
SimpleChatWidget::letLogin
void letLogin()
Show a simple login screen.
Definition:
SimpleChatWidget.C:59
SimpleChatServer::Client
Definition:
SimpleChatServer.h:91
SimpleChatWidget::login
void login()
Definition:
SimpleChatWidget.C:83
SimpleChatWidget::userCount
int userCount()
Definition:
SimpleChatWidget.h:64
Wt::WContainerWidget
Wt::WFlags
SimpleChatWidget::logout
void logout()
Definition:
SimpleChatWidget.C:97
SimpleChatWidget::render
virtual void render(Wt::WFlags< Wt::RenderFlag > flags)
Definition:
SimpleChatWidget.C:172
SimpleChatServer
A simple chat server.
Definition:
SimpleChatServer.h:85
SimpleChatWidget::loggedIn_
bool loggedIn_
Definition:
SimpleChatWidget.h:86
SimpleChatWidget::messageReceived_
Wt::WSound * messageReceived_
Definition:
SimpleChatWidget.h:100
SimpleChatWidget::connect
void connect()
Definition:
SimpleChatWidget.C:46
SimpleChatWidget::users_
UserMap users_
Definition:
SimpleChatWidget.h:83
SimpleChatServer.h
SimpleChatWidget::SimpleChatWidget
SimpleChatWidget(SimpleChatServer &server, Wt::WContainerWidget *parent=0)
Create a chat widget that will connect to the given server.
Definition:
SimpleChatWidget.C:28
SimpleChatWidget::newMessage
virtual void newMessage()
Definition:
SimpleChatWidget.C:349
Generated on Wed May 2 2018 for
the C++ Web Toolkit (Wt)
by
1.8.5