|
|
|
#include <Wt/WApplication>
|
|
#include <Wt/WBreak>
|
|
#include <Wt/WContainerWidget>
|
|
#include <Wt/WLineEdit>
|
|
#include <Wt/WPushButton>
|
|
#include <Wt/WRadioButton>
|
|
#include <Wt/WGroupBox>
|
|
#include <Wt/WText>
|
|
|
|
#include <Wt/WPanel>
|
|
#include <Wt/WVBoxLayout>
|
|
#include <Wt/WHBoxLayout>
|
|
#include <Wt/WBorderLayout>
|
|
|
|
#include <Wt/WDialog>
|
|
|
|
// --docroot . --http-address 0.0.0.0 --http-port 8080
|
|
|
|
using namespace Wt;
|
|
|
|
class HelloApplication : public WApplication
|
|
{
|
|
public:
|
|
HelloApplication(const WEnvironment& env);
|
|
|
|
private:
|
|
WLineEdit *le_name;
|
|
WText *l_greet;
|
|
|
|
void greet();
|
|
void test001();
|
|
void test002();
|
|
void test003();
|
|
|
|
WPushButton *test_button;
|
|
void on_click()
|
|
{
|
|
test_button->setText("meow");
|
|
}
|
|
|
|
WLineEdit le;
|
|
WString dialog_text;
|
|
void on_ttt()
|
|
{
|
|
test_button->setText(dialog_text);
|
|
}
|
|
};
|
|
|
|
void HelloApplication::test003()
|
|
{
|
|
WDialog *dialog = new WDialog("enter something");
|
|
|
|
Wt::WPanel *panel = new Wt::WPanel(dialog->contents());
|
|
WContainerWidget *c = new WContainerWidget();
|
|
panel->setCentralWidget(c);
|
|
WHBoxLayout *hb = new WHBoxLayout();
|
|
c->setLayout(hb);
|
|
|
|
hb->addWidget(new WText("do it:"));
|
|
hb->addWidget(&le);
|
|
dialog->show();
|
|
}
|
|
|
|
void HelloApplication::test002()
|
|
{
|
|
Wt::WContainerWidget *container = new Wt::WContainerWidget();
|
|
container->resize(100, 100);
|
|
container->setStyleClass("yellow-box centered");
|
|
|
|
Wt::WBorderLayout *layout = new Wt::WBorderLayout();
|
|
container->setLayout(layout);
|
|
|
|
Wt::WVBoxLayout *vbox = new Wt::WVBoxLayout();
|
|
layout->addItem(vbox);
|
|
|
|
Wt::WText *item = new Wt::WText("Item 1");
|
|
item->setStyleClass("green-box");
|
|
vbox->addWidget(item, 1);
|
|
|
|
Wt::WHBoxLayout *hbox = new Wt::WHBoxLayout();
|
|
vbox->addLayout(hbox);
|
|
|
|
item = new Wt::WText("Item 2");
|
|
item->setStyleClass("green-box");
|
|
hbox->addWidget(item);
|
|
|
|
item = new Wt::WText("Item 3");
|
|
item->setStyleClass("blue-box");
|
|
hbox->addWidget(item);
|
|
|
|
root()->addWidget(container);
|
|
}
|
|
|
|
void HelloApplication::test001()
|
|
{
|
|
Wt::WContainerWidget *container = new Wt::WContainerWidget();
|
|
container->addWidget(new Wt::WText("test_text"));
|
|
container->addWidget(new Wt::WRadioButton("rb1"));
|
|
container->addWidget(new Wt::WRadioButton("rb2"));
|
|
root()->addWidget(container);
|
|
|
|
WGroupBox *gb = new WGroupBox("group box");
|
|
gb->resize(500, 300);
|
|
gb->setStyleClass("yellow-box centered");
|
|
test_button = new WPushButton("click!");
|
|
test_button->clicked().connect(this, &HelloApplication::on_click);
|
|
gb->addWidget(test_button);
|
|
root()->addWidget(gb);
|
|
|
|
Wt::WPanel *panel = new Wt::WPanel();
|
|
panel->addStyleClass("centered-example");
|
|
panel->setTitle("Terrific panel");
|
|
panel->setCentralWidget(new Wt::WText("my panel"));
|
|
gb->addWidget(panel);
|
|
|
|
Wt::WPanel *apanel = new Wt::WPanel();
|
|
apanel->setTitle("Collapsible panel");
|
|
apanel->addStyleClass("centered-example");
|
|
apanel->setCollapsible(true);
|
|
Wt::WAnimation animation(Wt::WAnimation::SlideInFromTop, Wt::WAnimation::EaseOut, 500);
|
|
apanel->setAnimation(animation);
|
|
apanel->setCentralWidget(new Wt::WText("This panel can be collapsed."));
|
|
gb->addWidget(apanel);
|
|
}
|
|
|
|
HelloApplication::HelloApplication(const WEnvironment& env)
|
|
: WApplication(env)
|
|
{
|
|
setTitle("Hello world");
|
|
|
|
root()->addWidget(new WText("Your name, please ? "));
|
|
le_name = new WLineEdit(root());
|
|
le_name->setFocus();
|
|
|
|
WPushButton *button = new WPushButton("Greet me.", root());
|
|
button->setMargin(5, Left);
|
|
|
|
root()->addWidget(new WBreak());
|
|
l_greet = new WText(root());
|
|
|
|
button->clicked().connect(this, &HelloApplication::greet);
|
|
le_name->enterPressed().connect(boost::bind(&HelloApplication::greet, this));
|
|
|
|
test001();
|
|
test002();
|
|
test003();
|
|
}
|
|
|
|
void HelloApplication::greet()
|
|
{
|
|
printf("TEXT= %s\n", le_name->text().toUTF8().data());
|
|
l_greet->setText("Hello there, " + le_name->text());
|
|
}
|
|
|
|
WApplication *createApplication(const WEnvironment& env)
|
|
{
|
|
return new HelloApplication(env);
|
|
}
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
return WRun(argc, argv, &createApplication);
|
|
}
|