Project

General

Profile

Bug #6296 » main.cpp

Velvet Jones, 03/15/2018 04:37 PM

 
1
#include <Wt/WApplication>
2
#include <Wt/WContainerWidget>
3
#include <Wt/WVBoxLayout>
4
#include <Wt/WPushButton>
5
#include <Wt/WBootstrapTheme>
6
#include <Wt/WPanel>
7

    
8
class CButtonWidget : public Wt::WContainerWidget
9
{
10
  public:
11
    CButtonWidget() : Wt::WContainerWidget() {}
12

    
13
    void addButton () { this->addWidget (new Wt::WPushButton("Test")); }
14
};
15

    
16
class CChooserWidget : public Wt::WContainerWidget {
17
  public:
18
    CChooserWidget() : Wt::WContainerWidget() {
19
      Wt::WVBoxLayout* l (new Wt::WVBoxLayout());
20
      this->setLayout(l);
21
      Wt::WPushButton* trigger (new Wt::WPushButton("Click Me"));
22
      l->addWidget (trigger);
23
      CButtonWidget* bw (new CButtonWidget());
24
      l->addWidget (bw);
25
      trigger->clicked().connect (bw,&CButtonWidget::addButton);
26
    }
27
};
28

    
29
class CPropertiesWidget : public Wt::WContainerWidget {
30
  public:
31
    CPropertiesWidget() : Wt::WContainerWidget() {
32
      Wt::WGridLayout* l (new Wt::WGridLayout());
33
      this->setLayout(l);
34
      Wt::WPanel* panel = new Wt::WPanel();
35
      panel->setCentralWidget(new CChooserWidget());
36
      panel->setCollapsible(false);
37
      panel->setCollapsed(false);
38
      panel->setTitleBar(false);
39
      l->addWidget (panel,0,0);
40
    }
41
};
42

    
43
class TestApp : public Wt::WApplication
44
{
45
  public:
46
    TestApp (const Wt::WEnvironment& env) : Wt::WApplication(env) {
47
      this->setTheme(new Wt::WBootstrapTheme(this));
48
      CPropertiesWidget* p (new CPropertiesWidget());
49
      this->root()->addWidget (p);
50
    }
51
};
52

    
53
Wt::WApplication* createApplication(const Wt::WEnvironment& env)
54
{
55
  return new TestApp(env);
56
}
57

    
58
int main(int argc, char *argv[])
59
{
60
  return Wt::WRun(argc, argv, &createApplication);
61
}
(1-1/2)