Wt examples  3.2.0
Public Member Functions | Private Member Functions | Private Attributes
PaintExample Class Reference

#include <PaintExample.h>

Inheritance diagram for PaintExample:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 PaintExample (WContainerWidget *root, bool showTitle=true)

Private Member Functions

void rotateShape (int v)
void scaleShape (int v)

Private Attributes

ShapesWidgetshapes_

Detailed Description

Definition at line 17 of file PaintExample.h.


Constructor & Destructor Documentation

PaintExample::PaintExample ( WContainerWidget root,
bool  showTitle = true 
)

Definition at line 17 of file PaintExample.C.

  : WContainerWidget(root)
{
  std::string text;
  if (showTitle)
    text += "<h2>Paint example</h2>";

  text += 
    "<p>A simple example demonstrating cross-browser vector graphics."
    "</p>"
    "<p>The emweb logo below is painted using the Wt WPainter API from "
    "bezier paths, and rendered to the browser using inline SVG, inline VML "
    "or the HTML 5 &lt;canvas&gt; element."
    "</p>"
    "<p>"
    "The example also demonstrates the horizontal and vertical "
    "<a href=\"http://www.webtoolkit.eu/wt/doc/reference/html/classWt_1_1WSlider.html\" target=\"_blank\">"
    "WSlider</a> widgets. Here,"
    "the events of the WSlider widgets are used to scale and rotate the "
    "emweb logo."
    "</p>"
    "<p>"
    "In non-IE browsers, a different backend is used for positive or negative "
    "angles (SVG or HTML canvas)."
    "</p>";

  new WText(text, this);

  WContainerWidget *emweb = new WContainerWidget(this);
  emweb->setMargin(WLength::Auto, Left | Right);

  WGridLayout *layout = new WGridLayout();
  emweb->setLayout(layout, AlignCenter | AlignTop);

  WSlider *scaleSlider = new WSlider(Horizontal);
  scaleSlider->setMinimum(0);
  scaleSlider->setMaximum(20);
  scaleSlider->setValue(10);
  scaleSlider->setTickInterval(5);
  scaleSlider->setTickPosition(WSlider::TicksBothSides);
  scaleSlider->resize(300, 50);
  scaleSlider->sliderMoved().connect(this, &PaintExample::scaleShape);

  layout->addWidget(scaleSlider, 0, 1, AlignCenter | AlignMiddle);

  WSlider *rotateSlider = new WSlider(Vertical);
  rotateSlider->setMinimum(-30);
  rotateSlider->setMaximum(30);
  rotateSlider->setValue(0);
  rotateSlider->setTickInterval(10);
  rotateSlider->setTickPosition(WSlider::TicksBothSides);
  rotateSlider->resize(50, 400);
  rotateSlider->sliderMoved().connect(this, &PaintExample::rotateShape);

  layout->addWidget(rotateSlider, 1, 0, AlignCenter | AlignMiddle);

  shapes_ = new ShapesWidget();
  shapes_->setAngle(0.0);
  shapes_->setRelativeSize(0.5);
  shapes_->setPreferredMethod(WPaintedWidget::InlineSvgVml);

  layout->addWidget(shapes_, 1, 1, AlignCenter | AlignMiddle);
}

Member Function Documentation

void PaintExample::rotateShape ( int  v) [private]

Definition at line 81 of file PaintExample.C.

{
  shapes_->setAngle(v / 2.0);

  // Being silly: test alternate rendering method
  shapes_->setPreferredMethod(v < 0 ? WPaintedWidget::InlineSvgVml
                              : WPaintedWidget::HtmlCanvas);
}
void PaintExample::scaleShape ( int  v) [private]

Definition at line 90 of file PaintExample.C.

{
  shapes_->setRelativeSize(0.1 + 0.9 * (v/20.0));
}

Member Data Documentation

Definition at line 23 of file PaintExample.h.


The documentation for this class was generated from the following files:

Generated on Tue Nov 29 2011 for the C++ Web Toolkit (Wt) by doxygen 1.7.5.1