本文整理汇总了C++中WTemplate::bindWidget方法的典型用法代码示例。如果您正苦于以下问题:C++ WTemplate::bindWidget方法的具体用法?C++ WTemplate::bindWidget怎么用?C++ WTemplate::bindWidget使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WTemplate
的用法示例。
在下文中一共展示了WTemplate::bindWidget方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: WContainerWidget
Project1::Project1(WContainerWidget *parent) : WContainerWidget(parent)
{
// Read XML resource message
WTemplate *mainTemplate = new WTemplate(WString::tr("project1"), this);
mainTemplate->bindWidget("smoothing", new DetailManipulation(false));
mainTemplate->bindWidget("detail_manipulation", new DetailManipulation(true));
}
示例2: WContainerWidget
Crianca::Crianca(Wt::WContainerWidget *parent):
WContainerWidget(parent)
{
WTemplate *view = new WTemplate(WString::tr("App.nova-crianca"));
WText *title = new WText("Cadastrar nova crianca:");
view->bindWidget("action", title);
name = new WLineEdit("Nome: ");
view->bindWidget("name", name);
WText *text = new WText("Sexo: ");
view->bindWidget("sex", text);
selectSexo = new WButtonGroup();
WRadioButton *optionSexo = new WRadioButton("masculino");
selectSexo->addButton(optionSexo, 1);
optionSexo = new WRadioButton("feminino");
selectSexo->addButton(optionSexo, 2);
view->bindWidget("group", selectSexo);
Wt::WPushButton *cadastrar = new Wt::WPushButton("Cadastrar");
cadastrar->clicked().connect(this, &Crianca::salvarDadosCrianca);
view->bindWidget("button", cadastrar);
WContainerWidget *container = new WContainerWidget();
WStackedWidget *stacked = new WStackedWidget(container);
stacked->addWidget(view);
}
示例3: bindPanelTemplates
void bindPanelTemplates() {
if (!session_.user())
return;
dbo::Transaction t(session_);
if (authorPanel_) {
WPushButton *newPost = new WPushButton(tr("new-post"));
newPost->clicked().connect(SLOT(this, BlogImpl::newPost));
WContainerWidget *unpublishedPosts = new WContainerWidget();
showPosts(session_.user()->allPosts(Post::Unpublished), unpublishedPosts);
authorPanel_->bindString("user", session_.user()->name);
authorPanel_->bindInt("unpublished-count",
(int)session_.user()->allPosts(Post::Unpublished)
.size());
authorPanel_->bindInt("published-count",
(int)session_.user()->allPosts(Post::Published)
.size());
authorPanel_->bindWidget("new-post", newPost);
authorPanel_->bindWidget("unpublished-posts", unpublishedPosts);
}
t.commit();
}
示例4: loggedIn
void loggedIn() {
WApplication::instance()->changeSessionId();
refresh();
loginStatus_->resolveWidget("login")->show();
loginStatus_->resolveWidget("login-link")->hide();
loginStatus_->resolveWidget("register-link")->hide();
WText *profileLink = new WText(tr("profile"));
profileLink->setStyleClass("link");
profileLink->clicked().connect(this, &BlogImpl::editProfile);
dbo::ptr<User> user = session().user();
if (user->role == User::Admin) {
WText *editUsersLink = new WText(tr("edit-users"));
editUsersLink->setStyleClass("link");
editUsersLink->clicked().connect(SLOT(this, BlogImpl::editUsers));
loginStatus_->bindWidget("userlist-link", editUsersLink);
WText *authorPanelLink = new WText(tr("author-post"));
authorPanelLink->setStyleClass("link");
authorPanelLink->clicked().connect(SLOT(this, BlogImpl::authorPanel));
loginStatus_->bindWidget("author-panel-link", authorPanelLink);
} else {
loginStatus_->bindEmpty("userlist-link");
loginStatus_->bindEmpty("author-panel-link");
}
loginStatus_->bindWidget("profile-link", profileLink);
bindPanelTemplates();
}
示例5: WLineEdit
WDateEdit::WDateEdit(WContainerWidget *parent)
: WLineEdit(parent)
{
changed().connect(this, &WDateEdit::setFromLineEdit);
const char *TEMPLATE = "${calendar}";
WTemplate *t = new WTemplate(WString::fromUTF8(TEMPLATE));
popup_ = new WPopupWidget(t, this);
popup_->setAnchorWidget(this);
popup_->setTransient(true);
calendar_ = new WCalendar();
calendar_->activated().connect(popup_, &WPopupWidget::hide);
calendar_->activated().connect(this, &WDateEdit::setFocus);
calendar_->selectionChanged().connect(this, &WDateEdit::setFromCalendar);
t->bindWidget("calendar", calendar_);
WApplication::instance()->theme()->apply(this, popup_, DatePickerPopupRole);
t->escapePressed().connect(popup_, &WTemplate::hide);
t->escapePressed().connect(this, &WDateEdit::setFocus);
setValidator(new WDateValidator("dd/MM/yyyy", this));
}
示例6: WContainerWidget
ItemContaWidget::ItemContaWidget(Wt::WContainerWidget *parent,
ContaWidget *view,
int id_diario,
std::string data,
std::string descricao,
Moeda debito,
Moeda credito):
WContainerWidget(parent), view_(view),
id_diario_(id_diario),
data_(data),
descricao_(descricao),
debito_(debito),
credito_(credito){
setInline(true);
WText *btnRemove = new WText("<button class='bg-color-red fg-color-white'>Remove</button>", Wt::XHTMLUnsafeText);
btnRemove->clicked().connect(this, &ItemContaWidget::removeLancamento);
WTemplate *t = new WTemplate(this);
t->setTemplateText(
"<tr>"
"<td>${data}</td>"
"<td>${descricao}</td>"
"<td class='right'>${debito}</td>"
"<td class='right'>${credito}</td>"
"<td>${btnRemove}</td>"
"</tr>", XHTMLUnsafeText);
t->bindString("data", data_);
t->bindString("descricao", WString(descricao_, UTF8));
t->bindString("debito", debito_.valStr());
t->bindString("credito", credito_.valStr());
t->bindWidget("btnRemove", btnRemove);
t->setInline(true);
}
示例7: novoAnuncio
void AdsEditor::novoAnuncio() {
AdsApplication *app = AdsApplication::adsApplication();
cppdb::session &db = app->db_;
Wt::WDialog dialog("novo Anuncio");
Wt::WPushButton *ok = new WPushButton("Ok");
ok->setStyleClass("btn btn-primary");
ok->clicked().connect(&dialog, &Wt::WDialog::accept);
Wt::WPushButton *cancel = new WPushButton("Cancela");
cancel->setStyleClass("btn");
cancel->clicked().connect(&dialog, &Wt::WDialog::reject);
WLineEdit *lTitulo = new WLineEdit();
WLineEdit *lURL = new WLineEdit();
WLineEdit *lTexto = new WLineEdit();
WTemplate *t = new WTemplate(dialog.contents());
t->setTemplateText("<form>"
" <fieldset>"
" <legend>Dados do anuncio</legend>"
" <table border=0>"
" <tr><td>Titulo</td> <td>${titulo}</td></tr>"
" <tr><td>URL</td> <td>${url}</td></tr>"
" <tr><td>Texto</td> <td>${texto}</td></tr>"
" </table>"
" </fieldset>"
" ${ok}${cancel}"
"</form>"
, XHTMLUnsafeText);
t->bindWidget("titulo", lTitulo);
t->bindWidget("url", lURL);
t->bindWidget("texto", lTexto);
t->bindWidget("ok", ok);
t->bindWidget("cancel", cancel);
if (dialog.exec() == Wt::WDialog::Accepted) {
db << "insert into anuncio (id, titulo, url, texto, imagem) values "
"(NULL, ?,?,?, '/img/cabure.png')"
<< lTitulo->text().narrow() << lURL->text().narrow()
<< lTexto->text().narrow() << cppdb::exec;
}
renderUI();
}
示例8: configure
void WTimePicker::configure()
{
WTemplate *container = dynamic_cast<WTemplate *>(implementation());
container->bindWidget("hour", sbhour_);
container->bindWidget("minute", sbminute_);
container->bindWidget("second", sbsecond_);
if (formatMs())
container->bindWidget("millisecond", sbmillisecond_);
else {
container->takeWidget("millisecond");
container->bindEmpty("millisecond");
}
if (formatAp()) {
sbhour_->setRange(1, 12);
container->bindWidget("ampm", cbAP_);
} else {
container->takeWidget("ampm");
container->bindEmpty("ampm");
sbhour_->setRange(0, 23);
}
}
示例9: setControlsWidget
void WMediaPlayer::setControlsWidget(WWidget *controlsWidget)
{
if (gui_ != this)
delete gui_;
gui_ = controlsWidget;
WTemplate *impl = dynamic_cast<WTemplate *>(implementation());
if (gui_) {
gui_->addStyleClass("jp-gui");
impl->bindWidget("gui", gui_);
} else
impl->bindString("gui", std::string());
}
示例10: create
void WDatePicker::create(WInteractWidget *displayWidget,
WLineEdit *forEdit)
{
setImplementation(layout_ = new WContainerWidget());
displayWidget_ = displayWidget;
forEdit_ = forEdit;
forEdit_->setVerticalAlignment(AlignMiddle);
forEdit_->changed().connect(this, &WDatePicker::setFromLineEdit);
format_ = "dd/MM/yyyy";
layout_->setInline(true);
layout_->addWidget(displayWidget);
layout_->setAttributeValue("style", "white-space: nowrap");
const char *TEMPLATE = "${calendar}";
WTemplate *t = new WTemplate(WString::fromUTF8(TEMPLATE));
popup_ = new WPopupWidget(t, this);
popup_->setAnchorWidget(displayWidget_, Horizontal);
popup_->setTransient(true);
calendar_ = new WCalendar();
calendar_->setSingleClickSelect(true);
calendar_->activated().connect(popup_, &WWidget::hide);
calendar_->activated().connect(this, &WDatePicker::onPopupHidden);
calendar_->selectionChanged().connect(this, &WDatePicker::setFromCalendar);
t->escapePressed().connect(popup_, &WTemplate::hide);
t->escapePressed().connect(forEdit_, &WWidget::setFocus);
t->bindWidget("calendar", calendar_);
WApplication::instance()->theme()->apply(this, popup_, DatePickerPopupRole);
displayWidget->clicked().connect(popup_, &WWidget::show);
displayWidget->clicked().connect(this, &WDatePicker::setFromLineEdit);
if (!forEdit_->validator())
forEdit_->setValidator(new WDateValidator(format_, this));
}
示例11: WContainerWidget
WWidget *Home::quoteForm()
{
WContainerWidget *result = new WContainerWidget();
result->setStyleClass("quote");
WTemplate *requestTemplate = new WTemplate(tr("quote.request"), result);
WPushButton *quoteButton = new WPushButton(tr("quote.requestbutton"));
requestTemplate->bindWidget("button", quoteButton);
WWidget *quoteForm = createQuoteForm();
result->addWidget(quoteForm);
quoteButton->clicked().connect(quoteForm, &WWidget::show);
quoteButton->clicked().connect(requestTemplate, &WWidget::hide);
quoteForm->hide();
return result;
}
示例12: startChat
bool SimpleChatWidget::startChat(const WString& user)
{
/*
* When logging in, we pass our processChatEvent method as the function that
* is used to indicate a new chat event for this user.
*/
if (server_.login(user)) {
loggedIn_ = true;
connect();
user_ = user;
clear();
userNameEdit_ = 0;
messages_ = new WContainerWidget();
userList_ = new WContainerWidget();
messageEdit_ = new WTextArea();
messageEdit_->setRows(2);
messageEdit_->setFocus();
// Display scroll bars if contents overflows
messages_->setOverflow(WContainerWidget::OverflowAuto);
userList_->setOverflow(WContainerWidget::OverflowAuto);
sendButton_ = new WPushButton("Send");
WPushButton *logoutButton = new WPushButton("Logout");
createLayout(messages_, userList_, messageEdit_, sendButton_, logoutButton);
/*
* Connect event handlers:
* - click on button
* - enter in text area
*
* We will clear the input field using a small custom client-side
* JavaScript invocation.
*/
// Create a JavaScript 'slot' (JSlot). The JavaScript slot always takes
// 2 arguments: the originator of the event (in our case the
// button or text area), and the JavaScript event object.
clearInput_.setJavaScript
("function(o, e) { setTimeout(function() {"
"" + messageEdit_->jsRef() + ".value='';"
"}, 0); }");
/*
* Set the connection monitor
*
* The connection monitor is a javascript monitor that will
* nootify the given object by calling the onChange method to
* inform of connection change (use of websockets, connection
* online/offline) Here we just disable the TextEdit when we are
* offline and enable it once we're back online
*/
WApplication::instance()->setConnectionMonitor(
"window.monitor={ "
"'onChange':function(type, newV) {"
"var connected = window.monitor.status.connectionStatus != 0;"
"if(connected) {"
+ messageEdit_->jsRef() + ".disabled=false;"
+ messageEdit_->jsRef() + ".placeholder='';"
"} else { "
+ messageEdit_->jsRef() + ".disabled=true;"
+ messageEdit_->jsRef() + ".placeholder='connection lost';"
"}"
"}"
"}"
);
// Bind the C++ and JavaScript event handlers.
sendButton_->clicked().connect(this, &SimpleChatWidget::send);
messageEdit_->enterPressed().connect(this, &SimpleChatWidget::send);
sendButton_->clicked().connect(clearInput_);
messageEdit_->enterPressed().connect(clearInput_);
sendButton_->clicked().connect((WWidget *)messageEdit_,
&WWidget::setFocus);
messageEdit_->enterPressed().connect((WWidget *)messageEdit_,
&WWidget::setFocus);
// Prevent the enter from generating a new line, which is its default
// action
messageEdit_->enterPressed().preventDefaultAction();
logoutButton->clicked().connect(this, &SimpleChatWidget::logout);
WInPlaceEdit *nameEdit = new WInPlaceEdit();
nameEdit->addStyleClass("name-edit");
nameEdit->setButtonsEnabled(false);
nameEdit->setText(user_);
nameEdit->valueChanged().connect(this, &SimpleChatWidget::changeName);
WTemplate *joinMsg = new WTemplate(tr("join-msg.template"), messages_);
joinMsg->bindWidget("name", nameEdit);
joinMsg->setStyleClass("chat-msg");
if (!userList_->parent()) {
delete userList_;
//.........这里部分代码省略.........
示例13: startChat
bool SimpleChatWidget::startChat(const WString& user)
{
/*
* When logging in, we pass our processChatEvent method as the function that
* is used to indicate a new chat event for this user.
*/
if (server_.login(user)) {
loggedIn_ = true;
connect();
user_ = user;
clear();
userNameEdit_ = 0;
messages_ = new WContainerWidget();
userList_ = new WContainerWidget();
messageEdit_ = new WTextArea();
messageEdit_->setRows(2);
messageEdit_->setFocus();
// Display scroll bars if contents overflows
messages_->setOverflow(WContainerWidget::OverflowAuto);
userList_->setOverflow(WContainerWidget::OverflowAuto);
sendButton_ = new WPushButton("Send");
WPushButton *logoutButton = new WPushButton("Logout");
createLayout(messages_, userList_, messageEdit_, sendButton_, logoutButton);
/*
* Connect event handlers:
* - click on button
* - enter in text area
*
* We will clear the input field using a small custom client-side
* JavaScript invocation.
*/
// Create a JavaScript 'slot' (JSlot). The JavaScript slot always takes
// 2 arguments: the originator of the event (in our case the
// button or text area), and the JavaScript event object.
clearInput_.setJavaScript
("function(o, e) { setTimeout(function() {"
"" + messageEdit_->jsRef() + ".value='';"
"}, 0); }");
// Bind the C++ and JavaScript event handlers.
sendButton_->clicked().connect(this, &SimpleChatWidget::send);
messageEdit_->enterPressed().connect(this, &SimpleChatWidget::send);
sendButton_->clicked().connect(clearInput_);
messageEdit_->enterPressed().connect(clearInput_);
sendButton_->clicked().connect(messageEdit_, &WLineEdit::setFocus);
messageEdit_->enterPressed().connect(messageEdit_, &WLineEdit::setFocus);
// Prevent the enter from generating a new line, which is its default
// action
messageEdit_->enterPressed().preventDefaultAction();
logoutButton->clicked().connect(this, &SimpleChatWidget::logout);
WInPlaceEdit *nameEdit = new WInPlaceEdit();
nameEdit->addStyleClass("name-edit");
nameEdit->setButtonsEnabled(false);
nameEdit->setText(user_);
nameEdit->valueChanged().connect(this, &SimpleChatWidget::changeName);
WTemplate *joinMsg = new WTemplate(tr("join-msg.template"), messages_);
joinMsg->bindWidget("name", nameEdit);
joinMsg->setStyleClass("chat-msg");
if (!userList_->parent()) {
delete userList_;
userList_ = 0;
}
if (!sendButton_->parent()) {
delete sendButton_;
sendButton_ = 0;
}
if (!logoutButton->parent())
delete logoutButton;
updateUsers();
return true;
} else
return false;
}
示例14: Div
WWidget *CmsDashboard::Layout()
{
Div *container = new Div("CmsDashboard", "container-fluid");
try {
CgiRoot *cgiRoot = static_cast<CgiRoot *>(WApplication::instance());
CgiEnv *cgiEnv = cgiRoot->GetCgiEnvInstance();
string htmlData;
string file;
if (cgiEnv->GetCurrentLanguage() == CgiEnv::Language::Fa) {
file = "../templates/cms-dashboard-fa.wtml";
} else {
file = "../templates/cms-dashboard.wtml";
}
if (CoreLib::FileSystem::Read(file, htmlData)) {
/// Fill the template
WTemplate *tmpl = new WTemplate(container);
tmpl->setTemplateText(WString::fromUTF8(htmlData), TextFormat::XHTMLUnsafeText);
WPushButton *forceTerminateAllSessionsPushButton = new WPushButton(tr("cms-dashboard-force-terminate-all-sessions"));
forceTerminateAllSessionsPushButton->setStyleClass("btn btn-default");
tmpl->bindWidget("welcome-message", new WText(tr("cms-dashboard-welcome-message")));
tmpl->bindWidget("last-login-title", new WText(tr("cms-dashboard-last-login-info-title")));
tmpl->bindWidget("last-login-ip-label", new WText(tr("cms-dashboard-last-login-info-ip")));
tmpl->bindWidget("last-login-location-label", new WText(tr("cms-dashboard-last-login-info-location")));
tmpl->bindWidget("last-login-user-agent-label", new WText(tr("cms-dashboard-last-login-info-user-agent")));
tmpl->bindWidget("last-login-referer-label", new WText(tr("cms-dashboard-last-login-info-referer")));
tmpl->bindWidget("last-login-time-label", new WText(tr("cms-dashboard-last-login-info-time")));
tmpl->bindWidget("last-login-ip", new WText(WString::fromUTF8(cgiEnv->SignedInUser.LastLogin.IP)));
tmpl->bindWidget("last-login-location", new WText(WString::fromUTF8(cgiEnv->SignedInUser.LastLogin.Location)));
tmpl->bindWidget("last-login-user-agent", new WText(WString::fromUTF8(cgiEnv->SignedInUser.LastLogin.UserAgent)));
tmpl->bindWidget("last-login-referer", new WText(WString::fromUTF8(cgiEnv->SignedInUser.LastLogin.Referer)));
tmpl->bindWidget("last-login-time-gdate", new WText(WString::fromUTF8(cgiEnv->SignedInUser.LastLogin.LoginGDate)));
tmpl->bindWidget("last-login-time-jdate", new WText(WString::fromUTF8(cgiEnv->SignedInUser.LastLogin.LoginJDate)));
tmpl->bindWidget("last-login-time", new WText(WString::fromUTF8(cgiEnv->SignedInUser.LastLogin.LoginTime)));
tmpl->bindWidget("force-terminate-all-sessions", forceTerminateAllSessionsPushButton);
forceTerminateAllSessionsPushButton->clicked().connect(m_pimpl.get(), &CmsDashboard::Impl::OnForceTerminateAllSessionsPushButtonPressed);
}
}
catch (boost::exception &ex) {
LOG_ERROR(boost::diagnostic_information(ex));
}
catch (std::exception &ex) {
LOG_ERROR(ex.what());
}
catch (...) {
LOG_ERROR(UNKNOWN_ERROR);
}
return container;
}
示例15: Div
WWidget *CmsSubscribers::Layout()
{
Div *container = new Div("CmsSubscribers", "container-fluid");
try {
CgiRoot *cgiRoot = static_cast<CgiRoot *>(WApplication::instance());
CgiEnv *cgiEnv = cgiRoot->GetCgiEnvInstance();
string htmlData;
string file;
if (cgiEnv->GetCurrentLanguage() == CgiEnv::Language::Fa) {
file = "../templates/cms-subscribers-fa.wtml";
} else {
file = "../templates/cms-subscribers.wtml";
}
if (CoreLib::FileSystem::Read(file, htmlData)) {
/// Fill the template
WTemplate *tmpl = new WTemplate(container);
tmpl->setTemplateText(WString::fromUTF8(htmlData), TextFormat::XHTMLUnsafeText);
WPushButton *allSubscribersPushButton = new WPushButton(tr("cms-subscribers-all"));
allSubscribersPushButton->setStyleClass("btn btn-default");
WPushButton *englishFarsiSubscribersPushButton = new WPushButton(tr("cms-subscribers-english-farsi"));
englishFarsiSubscribersPushButton->setStyleClass("btn btn-default");
WPushButton *englishSubscribersPushButton = new WPushButton(tr("cms-subscribers-english"));
englishSubscribersPushButton->setStyleClass("btn btn-default");
WPushButton *farsiSubscribersPushButton = new WPushButton(tr("cms-subscribers-farsi"));
farsiSubscribersPushButton->setStyleClass("btn btn-default");
WPushButton *inactiveSubscribersPushButton = new WPushButton(tr("cms-subscribers-inactive"));
inactiveSubscribersPushButton->setStyleClass("btn btn-default");
m_pimpl->SubscribersTableContainer = new Div("SubscribersTableContainer", "subscribers-table-container");
tmpl->bindWidget("subscribers-title", new WText(tr("cms-subscribers-page-title")));
tmpl->bindWidget("subscribers-table", m_pimpl->SubscribersTableContainer);
tmpl->bindWidget("all-subscribers-button", allSubscribersPushButton);
tmpl->bindWidget("english-farsi-subscribers-button", englishFarsiSubscribersPushButton);
tmpl->bindWidget("english-subscribers-button", englishSubscribersPushButton);
tmpl->bindWidget("farsi-subscribers-button", farsiSubscribersPushButton);
tmpl->bindWidget("inactive-subscribers-button", inactiveSubscribersPushButton);
allSubscribersPushButton->clicked().connect(m_pimpl.get(), &CmsSubscribers::Impl::OnAllButtonPressed);
englishFarsiSubscribersPushButton->clicked().connect(m_pimpl.get(), &CmsSubscribers::Impl::OnEnFaButtonPressed);
englishSubscribersPushButton->clicked().connect(m_pimpl.get(), &CmsSubscribers::Impl::OnEnButtonPressed);
farsiSubscribersPushButton->clicked().connect(m_pimpl.get(), &CmsSubscribers::Impl::OnFaButtonPressed);
inactiveSubscribersPushButton->clicked().connect(m_pimpl.get(), &CmsSubscribers::Impl::OnInactiveButtonPressed);
allSubscribersPushButton->setFocus();
}
}
catch (boost::exception &ex) {
LOG_ERROR(boost::diagnostic_information(ex));
}
catch (std::exception &ex) {
LOG_ERROR(ex.what());
}
catch (...) {
LOG_ERROR(UNKNOWN_ERROR);
}
return container;
}