7 #include <Wt/WContainerWidget> 8 #include <Wt/WGridLayout> 18 : WContainerWidget(root)
22 text +=
"<h2>Paint example</h2>";
25 "<p>A simple example demonstrating cross-browser vector graphics." 27 "<p>The emweb logo below is painted using the Wt WPainter API from " 28 "bezier paths, and rendered to the browser using inline SVG, inline VML " 29 "or the HTML 5 <canvas> element." 32 "The example also demonstrates the horizontal and vertical " 33 "<a href=\"http://www.webtoolkit.eu/wt/doc/reference/html/classWt_1_1WSlider.html\" target=\"_blank\">" 34 "WSlider</a> widgets. Here," 35 "the events of the WSlider widgets are used to scale and rotate the " 39 "In non-IE browsers, a different backend is used for positive or negative " 40 "angles (SVG or HTML canvas)." 43 new WText(text,
this);
45 WContainerWidget *emweb =
new WContainerWidget(
this);
46 emweb->setMargin(WLength::Auto, Left | Right);
48 WGridLayout *layout =
new WGridLayout();
49 emweb->setLayout(layout);
51 WSlider *scaleSlider =
new WSlider(Horizontal);
52 scaleSlider->setMinimum(0);
53 scaleSlider->setMaximum(20);
54 scaleSlider->setValue(10);
55 scaleSlider->setTickInterval(5);
56 scaleSlider->setTickPosition(WSlider::TicksBothSides);
57 scaleSlider->resize(300, 50);
60 layout->addWidget(scaleSlider, 0, 1, AlignCenter | AlignMiddle);
62 WSlider *rotateSlider =
new WSlider(Vertical);
63 rotateSlider->setMinimum(-30);
64 rotateSlider->setMaximum(30);
65 rotateSlider->setValue(0);
66 rotateSlider->setTickInterval(10);
67 rotateSlider->setTickPosition(WSlider::TicksBothSides);
68 rotateSlider->resize(50, 400);
71 layout->addWidget(rotateSlider, 1, 0, AlignCenter | AlignMiddle);
76 shapes_->setPreferredMethod(WPaintedWidget::HtmlCanvas);
78 layout->addWidget(
shapes_, 1, 1, AlignCenter | AlignMiddle);
86 shapes_->setPreferredMethod(v < 0 ? WPaintedWidget::InlineSvgVml
87 : WPaintedWidget::HtmlCanvas);
PaintExample(WContainerWidget *root, bool showTitle=true)