Wt examples
3.3.12
tmp
package-src
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
SimpleChatServer.h
ChatEvent
Encapsulate a chat event.
Definition
SimpleChatServer.h:31
SimpleChatServer::Client
Definition
SimpleChatServer.h:92
SimpleChatServer
A simple chat server.
Definition
SimpleChatServer.h:86
SimpleChatWidget
A self-contained chat widget.
Definition
SimpleChatWidget.h:36
SimpleChatWidget::startChat
bool startChat(const Wt::WString &user)
Start a chat for the given user.
Definition
SimpleChatWidget.C:187
SimpleChatWidget::updateUsers
virtual void updateUsers()
Definition
SimpleChatWidget.C:319
SimpleChatWidget::server
SimpleChatServer & server()
Definition
SimpleChatWidget.h:62
SimpleChatWidget::messages_
Wt::WContainerWidget * messages_
Definition
SimpleChatWidget.h:95
SimpleChatWidget::messageEdit_
Wt::WTextArea * messageEdit_
Definition
SimpleChatWidget.h:96
SimpleChatWidget::user_
Wt::WString user_
Definition
SimpleChatWidget.h:90
SimpleChatWidget::connect
void connect()
Definition
SimpleChatWidget.C:46
SimpleChatWidget::userNameEdit_
Wt::WLineEdit * userNameEdit_
Definition
SimpleChatWidget.h:92
SimpleChatWidget::letLogin
void letLogin()
Show a simple login screen.
Definition
SimpleChatWidget.C:59
SimpleChatWidget::updateUser
void updateUser()
Definition
SimpleChatWidget.C:352
SimpleChatWidget::disconnect
void disconnect()
Definition
SimpleChatWidget.C:53
SimpleChatWidget::clearInput_
Wt::JSlot clearInput_
Definition
SimpleChatWidget.h:88
SimpleChatWidget::userCount
int userCount()
Definition
SimpleChatWidget.h:64
SimpleChatWidget::loggedIn_
bool loggedIn_
Definition
SimpleChatWidget.h:86
SimpleChatWidget::loggedIn
bool loggedIn() const
Definition
SimpleChatWidget.C:167
SimpleChatWidget::statusMsg_
Wt::WText * statusMsg_
Definition
SimpleChatWidget.h:93
SimpleChatWidget::render
virtual void render(Wt::WFlags< Wt::RenderFlag > flags)
Definition
SimpleChatWidget.C:172
SimpleChatWidget::sendButton_
Wt::WPushButton * sendButton_
Definition
SimpleChatWidget.h:97
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::server_
SimpleChatServer & server_
Definition
SimpleChatWidget.h:85
SimpleChatWidget::newMessage
virtual void newMessage()
Definition
SimpleChatWidget.C:349
SimpleChatWidget::changeName
void changeName(const Wt::WString &name)
Definition
SimpleChatWidget.C:305
SimpleChatWidget::logout
void logout()
Definition
SimpleChatWidget.C:97
SimpleChatWidget::userName
const Wt::WString & userName() const
Definition
SimpleChatWidget.h:66
SimpleChatWidget::processChatEvent
void processChatEvent(const ChatEvent &event)
Definition
SimpleChatWidget.C:358
SimpleChatWidget::send
void send()
Definition
SimpleChatWidget.C:313
SimpleChatWidget::login
void login()
Definition
SimpleChatWidget.C:83
SimpleChatWidget::UserMap
std::map< Wt::WString, bool > UserMap
Definition
SimpleChatWidget.h:82
SimpleChatWidget::userList_
Wt::WContainerWidget * userList_
Definition
SimpleChatWidget.h:98
SimpleChatWidget::messageReceived_
Wt::WSound * messageReceived_
Definition
SimpleChatWidget.h:100
SimpleChatWidget::~SimpleChatWidget
~SimpleChatWidget()
Delete a chat widget.
Definition
SimpleChatWidget.C:40
SimpleChatWidget::users_
UserMap users_
Definition
SimpleChatWidget.h:83
Wt::JSlot
Wt::WContainerWidget
Wt::WFlags
Wt::WLineEdit
Wt::WPushButton
Wt::WSound
Wt::WString
Wt::WTextArea
Wt::WText
Wt::WWidget
Wt::WWidget::parent
WWidget * parent() const
Wt
Generated on Fri May 17 2024 for
the C++ Web Toolkit (Wt)
by
1.9.8