7 #include <Wt/WApplication> 8 #include <Wt/WEnvironment> 11 #include <Wt/WVBoxLayout> 20 const std::string&
id)
26 if (Wt::WApplication::instance()->environment().agentIsIE()) {
27 if (Wt::WApplication::instance()->environment().agent()
28 == Wt::WEnvironment::IE6)
29 setPositionScheme(Wt::Absolute);
31 setPositionScheme(Wt::Fixed);
37 """var s = $('#" +
id +
"');" 38 """s.toggleClass('chat-maximized chat-minimized');" 39 + Wt::WApplication::instance()->javaScriptClass()
40 +
".layouts2.scheduleAdjust(true);" 45 setStyleClass(
"chat-widget chat-minimized");
63 n = name + boost::lexical_cast<std::string>(++tries);
72 Wt::WContainerWidget *bar =
new Wt::WContainerWidget();
73 bar->setStyleClass(
"chat-bar");
75 Wt::WText *toggleButton =
new Wt::WText();
76 toggleButton->setInline(
false);
77 toggleButton->setStyleClass(
"chat-minmax");
81 bar->addWidget(toggleButton);
83 title_ =
new Wt::WText(bar);
101 Wt::WString name =
name_;
109 name =
name_ + boost::lexical_cast<std::string>(++tries);
116 bar_->removeStyleClass(
"alert");
120 Wt::WWidget *userList,
121 Wt::WWidget *messageEdit,
122 Wt::WWidget *sendButton,
123 Wt::WWidget *logoutButton)
125 Wt::WVBoxLayout *layout =
new Wt::WVBoxLayout();
126 layout->setContentsMargins(0, 0, 0, 0);
127 layout->setSpacing(0);
131 layout->addWidget(bar);
132 bar->setMinimumSize(Wt::WLength::Auto, 20);
133 layout->addWidget(messages, 1);
134 layout->addWidget(messageEdit);
147 title_->setText(
"Thoughts? Ventilate.");
149 title_->setText(
"Chat: 1 user online");
151 title_->setText(Wt::WString(
"Chat: {1} users online").arg(count));
153 title_->setText(Wt::WString(
"Chat: <span class=\"self\">{1}</span>" 154 " <span class=\"online\">({2} user{3})</span>")
155 .arg(
userName()).arg(count).arg(count == 1 ?
"" :
"s"));
164 bar_->addStyleClass(
"alert");
UserSet users()
Get the users currently logged in.
bool changeName(const Wt::WString &user, const Wt::WString &newUser)
Changes the name.
Wt::WString suggestGuest()
Get a suggestion for a guest user name.