Project

General

Profile

Tips and Tricks » History » Version 6

Danis Freeman, 03/02/2011 10:00 AM

1 1 Pieter Libin
h1. Tips and Tricks
2
3
{{toc}}
4
5
6 2 Pieter Libin
h2. Making a hard-copy of painted graphics
7 1 Pieter Libin
8
The primary use for the Wt painting API is to paint on a WPaintedWidget. Internally, this uses either a VML, SVG or HTML 5 canvas painting device to deliver the painting to the browser.
9
10
It is also possible to paint directly to an SVG image, which is a standardized generic vector graphics format, and increasingly supported by various tools.
11
12
You could use the SVG image as a starting point for exporting the painted graphics to raster format. Using the "imagemagick":http://www.imagemagick.org/script/index.php or "graphicsmagick":http://www.graphicsmagick.org/ libraries, you can convert from SVG to other formats using the library API or using the command line 'convert' tool. Using "inkscape":http://www.inkscape.org/, a sophisticated SVG editor, you may get high quality SVG rendering (with, compared to imagemagick, much better font support) from the command-line (see the manpage). Another option may be "librsvg":http://librsvg.sourceforge.net.
13
14
The WSvgImage class allows you to easily create an SVG image, and save it to a (file) stream, using the following template:
15
16
<pre>
17
WSvgImage image(400, 300);
18
WPainter painter(&image);
19
20
// paint things on the painter, like you normally do in WPaintedWidget::paintEvent().
21
//
22
// e.g. you could do WCartesianChart *c = ...
23
// c->paint(painter);
24
25
painter.end();
26
std::ofstream f("image.svg");
27
image.write(f);
28
f.close();
29
</pre>
30 3 Pieter Libin
31
32
33
h2. Creating .CUR files
34 4 Pieter Libin
35 3 Pieter Libin
Creating .CUR files which are valid in Firefox and Chrome can be quite a pickle, especially if you want to specify a custom hotspot.
36
This program allows you to create such .CUR files:
37
http://www.rw-designer.com/cursor-maker
38 5 Richel Bilderbeek
39
h2. Assert
40
41
Under some environments, when linking to the Wt library, 'assert' is removed from the code. This page shows a custom assert to be used with Wt: http://richelbilderbeek.nl/CppWtAssert.htm
42 6 Danis Freeman
43
"essay writing .":http://essaywritingservices.org/index.php