An example showing how to interact custom JavaScript with Wt stuff. More...
#include <JavascriptExample.h>
Inherits Wt::WApplication.
Public Member Functions | |
JavascriptExample (const WEnvironment &env) | |
Create the example application. | |
Private Member Functions | |
void | confirmed () |
The user has confirmed the payment. | |
void | setAmount (std::string amount) |
Set the amount to be payed. | |
Private Attributes | |
Popup * | promptAmount_ |
Popup for changing the amount. | |
Popup * | confirmPay_ |
Popup for paying. | |
WText * | currentAmount_ |
WText for showing the current amount. |
An example showing how to interact custom JavaScript with Wt stuff.
Definition at line 24 of file JavascriptExample.h.
JavascriptExample::JavascriptExample | ( | const WEnvironment & | env | ) |
Create the example application.
Definition at line 19 of file JavascriptExample.C.
: WApplication(env) { setTitle("Javascript example"); // Create a popup for prompting the amount of money, and connect the // okPressed button to the slot for setting the amount of money. // // Note that the input provided by the user in the prompt box is passed as // an argument to the slot. promptAmount_ = Popup::createPrompt("How much do you want to pay?", "", this); promptAmount_->okPressed().connect(SLOT(this, JavascriptExample::setAmount)); // Create a popup for confirming the payment. // // Since a confirm popup does not allow input, we ignore the // argument carrying the input (which will be empty anyway). confirmPay_ = Popup::createConfirm("", this); confirmPay_->okPressed().connect(SLOT(this, JavascriptExample::confirmed)); new WText("<h2>Wt Javascript example</h2>" "<p>Wt makes abstraction of Javascript, and therefore allows you" " to develop web applications without any knowledge of Javascript," " and which are not dependent on Javascript." " However, Wt does allow you to add custom Javascript code:</p>" " <ul>" " <li>To call custom JavaScript code from an event handler, " "connect the Wt::EventSignal to a Wt::JSlot.</li>" " <li>To call C++ code from custom JavaScript, use " "Wt.emit() to emit a Wt::JSignal.</li>" " <li>To call custom JavaScript code from C++, use " "WApplication::doJavascript() or Wt::JSlot::exec().</li>" " </ul>" "<p>This simple application shows how to interact between C++ and" " JavaScript using the JSlot and JSignal classes.</p>", root()); currentAmount_ = new WText("Current amount: $" + promptAmount_->defaultValue(), root()); WPushButton *amountButton = new WPushButton("Change ...", root()); amountButton->setMargin(10, Left | Right); new WBreak(root()); WPushButton *confirmButton = new WPushButton("Pay now.", root()); confirmButton->setMargin(10, Top | Bottom); // Connect the event handlers to a JSlot: this will execute the JavaScript // immediately, without a server round trip. amountButton->clicked().connect(promptAmount_->show); confirmButton->clicked().connect(confirmPay_->show); // Set the initial amount setAmount("1000"); }
void JavascriptExample::confirmed | ( | ) | [private] |
The user has confirmed the payment.
Definition at line 88 of file JavascriptExample.C.
{ new WText("<br/>Just payed $" + promptAmount_->defaultValue() + ".", root()); }
void JavascriptExample::setAmount | ( | std::string | amount | ) | [private] |
Set the amount to be payed.
Definition at line 76 of file JavascriptExample.C.
{ // Change the confirmation message to include the amount. confirmPay_->setMessage("Are you sure you want to pay $" + amount + " ?"); // Change the default value for the prompt. promptAmount_->setDefaultValue(amount); // Change the text that shows the current amount. currentAmount_->setText("Current amount: $" + promptAmount_->defaultValue()); }
Popup* JavascriptExample::confirmPay_ [private] |
Popup for paying.
Definition at line 46 of file JavascriptExample.h.
WText* JavascriptExample::currentAmount_ [private] |
WText for showing the current amount.
Definition at line 50 of file JavascriptExample.h.
Popup* JavascriptExample::promptAmount_ [private] |
Popup for changing the amount.
Definition at line 42 of file JavascriptExample.h.