You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gtk3-tqt-engine/tests/test-painter.cpp

145 lines
4.1 KiB

#include <cairo.h>
#include <tqpainter.h>
#include <tqapplication.h>
#include "tqtcairopainter.h"
int
main (int argc, char *argv[])
{
cairo_surface_t *surface;
cairo_t *cr;
surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 500, 500);
// cr = cairo_create (surface);
// /* Examples are in 1.0 x 1.0 coordinate space */
// cairo_scale (cr, 120, 120);
//
// /* Drawing code goes here */
// cairo_set_line_width (cr, 0.1);
// cairo_set_source_rgb (cr, 0, 0, 0);
// cairo_rectangle (cr, 0.25, 0.25, 0.5, 0.5);
// cairo_stroke (cr);
// Initialize TQApplication required data structures
new TQApplication(argc, argv, TRUE);
TQt3CairoPaintDevice pd(surface);
TQPainter p(&pd);
// Rectangle tests
{
p.setPen(TQPen(TQt::red, 1));
p.drawRect(5, 5, 50, 50);
TQBrush brush( TQt::yellow, TQBrush::DiagCrossPattern ); // yellow pattern
p.setBrush( brush ); // set the yellow brush
p.setPen( TQt::NoPen ); // do not draw outline
p.drawRect( 0,0, 25,25 ); // draw filled rectangle
TQBrush brush2( TQt::green, TQBrush::SolidPattern ); // green pattern
p.setBrush( brush2 ); // set the yellow brush
p.setPen( TQt::NoPen ); // do not draw outline
p.drawRect( 40,30, 200,100 ); // draw filled rectangle
p.setBrush( TQt::NoBrush ); // do not fill
p.setPen( TQt::blue ); // set blue pen, 0 pixel width
p.drawRect( 10,10, 30,20 ); // draw rectangle outline
TQBrush brush3( TQColor(255,128,0), TQBrush::SolidPattern ); // green pattern
p.setBrush( brush3 ); // set the yellow brush
p.setPen( TQColor(255,0,255) ); // draw outline
p.drawRect( 50,40, 180,80 ); // draw filled rectangle
}
// Line tests
{
p.setPen( TQt::blue ); // set blue pen, 0 pixel width
p.drawLine(140,140, 160,160);
}
// Point tests
{
p.setPen( TQt::green ); // set green pen, 0 pixel width
p.drawPoint(135,135);
}
// Polyline tests
{
TQPointArray a;
int x1 = 250;
int y1 = 10;
a.setPoints( 11, x1+0, y1+85, x1+75, y1+75, x1+100, y1+10, x1+125, y1+75, x1+200, y1+85, x1+150, y1+125, x1+160, y1+190, x1+100, y1+150, x1+40, y1+190, x1+50, y1+125, x1+0, y1+85 );
p.setPen(TQt::red);
p.drawPolyline(a);
}
// Polyfill tests
{
TQPointArray a;
int x1 = 250;
int y1 = 200;
a.setPoints( 11, x1+0, y1+85, x1+75, y1+75, x1+100, y1+10, x1+125, y1+75, x1+200, y1+85, x1+150, y1+125, x1+160, y1+190, x1+100, y1+150, x1+40, y1+190, x1+50, y1+125, x1+0, y1+85 );
p.setPen(TQt::blue);
p.setBrush(TQt::green);
p.drawPolygon(a);
}
// Rounded rectangle tests
{
p.setBrush(TQt::green);
p.setPen(TQPen(TQt::red, 1));
p.drawRoundRect(10, 150, 50, 50);
p.setBrush(TQBrush());
p.setPen(TQPen(TQt::blue, 1));
p.drawRoundRect(80, 150, 50, 50);
}
// Ellipse tests
{
p.setBrush(TQt::green);
p.setPen(TQPen(TQt::red, 1));
p.drawEllipse(10, 220, 50, 50);
p.setBrush(TQBrush());
p.setPen(TQPen(TQt::blue, 1));
p.drawEllipse(80, 220, 50, 50);
}
// Arc tests
{
p.setBrush(TQBrush());
p.setPen(TQPen(TQt::yellow, 1));
p.drawArc(10,10, 70,100, 100*16, 160*16); // draws a "(" arc
}
// Pie tests
{
p.setBrush(TQBrush());
p.setPen(TQPen(TQt::red, 1));
p.drawPie(250, 400, 200, 100, 45*16, 90*16);
p.setBrush(TQt::green);
p.setPen(TQPen(TQt::blue, 1));
p.drawPie(250, 450, 200, 100, 45*16, 90*16);
}
// Chord tests
{
p.setBrush(TQBrush());
p.setPen(TQPen(TQt::red, 1));
p.drawChord(100, 400, 200, 100, 45*16, 90*16);
p.setBrush(TQt::green);
p.setPen(TQPen(TQt::blue, 1));
p.drawChord(100, 450, 200, 100, 45*16, 90*16);
}
p.end();
/* Write output and clean up */
cairo_surface_write_to_png (surface, "stroke.png");
// cairo_destroy (cr);
cairo_surface_destroy (surface);
return 0;
}