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.

00018   : WContainerWidget(root)
00019 {
00020   std::string text;
00021   if (showTitle)
00022     text += "<h2>Paint example</h2>";
00023 
00024   text += 
00025     "<p>A simple example demonstrating cross-browser vector graphics."
00026     "</p>"
00027     "<p>The emweb logo below is painted using the Wt WPainter API from "
00028     "bezier paths, and rendered to the browser using inline SVG, inline VML "
00029     "or the HTML 5 &lt;canvas&gt; element."
00030     "</p>"
00031     "<p>"
00032     "The example also demonstrates the horizontal and vertical "
00033     "<a href=\"http://www.webtoolkit.eu/wt/doc/reference/html/classWt_1_1WSlider.html\" target=\"_blank\">"
00034     "WSlider</a> widgets (which are rendered using vector graphics). Here, "
00035     "the events of the WSlider widgets are used to scale and rotate the "
00036     "emweb logo."
00037     "</p>"
00038     "<p>"
00039     "In non-IE browsers, a different backend is used for positive or negative "
00040     "angles (SVG or HTML canvas)."
00041     "</p>";
00042 
00043   new WText(text, this);
00044 
00045   WContainerWidget *emweb = new WContainerWidget(this);
00046   emweb->setMargin(WLength::Auto, Left | Right);
00047 
00048   WGridLayout *layout = new WGridLayout();
00049   emweb->setLayout(layout, AlignCenter | AlignTop);
00050 
00051   WSlider *scaleSlider = new WSlider(Horizontal);
00052   scaleSlider->setMinimum(0);
00053   scaleSlider->setMaximum(20);
00054   scaleSlider->setValue(10);
00055   scaleSlider->setTickInterval(5);
00056   scaleSlider->setTickPosition(WSlider::TicksBothSides);
00057   scaleSlider->resize(300, 50);
00058   scaleSlider->sliderMoved().connect(SLOT(this, PaintExample::scaleShape));
00059 
00060   layout->addWidget(scaleSlider, 0, 1, AlignCenter | AlignMiddle);
00061 
00062   WSlider *rotateSlider = new WSlider(Vertical);
00063   rotateSlider->setMinimum(-30);
00064   rotateSlider->setMaximum(30);
00065   rotateSlider->setValue(0);
00066   rotateSlider->setTickInterval(10);
00067   rotateSlider->setTickPosition(WSlider::TicksBothSides);
00068   rotateSlider->resize(50, 400);
00069   rotateSlider->sliderMoved().connect(SLOT(this, PaintExample::rotateShape));
00070 
00071   layout->addWidget(rotateSlider, 1, 0, AlignCenter | AlignMiddle);
00072 
00073   shapes_ = new ShapesWidget();
00074   shapes_->setAngle(0.0);
00075   shapes_->setRelativeSize(0.5);
00076   shapes_->setPreferredMethod(WPaintedWidget::InlineSvgVml);
00077 
00078   layout->addWidget(shapes_, 1, 1, AlignCenter | AlignMiddle);
00079 }


Member Function Documentation

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

Definition at line 81 of file PaintExample.C.

00082 {
00083   shapes_->setAngle(v / 2.0);
00084 
00085   // Being silly: test alternate rendering method
00086   shapes_->setPreferredMethod(v < 0 ? WPaintedWidget::InlineSvgVml
00087                               : WPaintedWidget::HtmlCanvas);
00088 }

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

Definition at line 90 of file PaintExample.C.

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


Member Data Documentation

Definition at line 23 of file PaintExample.h.


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

Generated on Fri Mar 26 17:12:12 2010 for Wt by doxygen 1.5.6