Project

General

Profile

"signal not exposed" with all browsers » test_wt.cpp

Alex M, 01/31/2014 03:43 PM

 

#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);
}
(1-1/2)