2 // "$Id: unittest_lines.cxx 7913 2010-11-29 18:18:27Z greg.ercolano $"
4 // Unit tests for the Fast Light Tool Kit (FLTK).
6 // Copyright 1998-2010 by Bill Spitzak and others.
8 // This library is free software; you can redistribute it and/or
9 // modify it under the terms of the GNU Library General Public
10 // License as published by the Free Software Foundation; either
11 // version 2 of the License, or (at your option) any later version.
13 // This library is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 // Library General Public License for more details.
18 // You should have received a copy of the GNU Library General Public
19 // License along with this library; if not, write to the Free Software
20 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
23 // Please report all bugs and problems on the following page:
25 // http://www.fltk.org/str.php
28 #include <FL/Fl_Box.H>
29 #include <FL/fl_draw.H>
32 //------- test the line drawing capabilities of this implementation ----------
34 class LineTest
: public Fl_Box
{
36 static Fl_Widget
*create() {
37 return new LineTest(TESTAREA_X
, TESTAREA_Y
, TESTAREA_W
, TESTAREA_H
);
39 LineTest(int x
, int y
, int w
, int h
) : Fl_Box(x
, y
, w
, h
) {
40 label("testing the integer based fl_line calls\n"
41 "No red pixels should be visible.\n"
42 "If you see bright red pixels, the line drawing alignment is off,\n"
43 "or the last pixel in a line does not get drawn.\n"
44 "If you see dark red pixels, anti-aliasing must be switched off.");
45 align(FL_ALIGN_INSIDE
|FL_ALIGN_BOTTOM
|FL_ALIGN_LEFT
|FL_ALIGN_WRAP
);
50 int a
= x()+10, b
= y()+10; fl_color(FL_BLACK
); fl_rect(a
, b
, 100, 100);
51 // testing fl_xyline(x, y, x1)
52 fl_color(FL_RED
); fl_point(a
+10, b
+10); fl_point(a
+20, b
+10);
53 fl_color(FL_BLACK
); fl_xyline(a
+10, b
+10, a
+20);
54 // testing fl_xyline(x, y, x1, y2);
55 fl_color(FL_RED
); fl_point(a
+10, b
+20); fl_point(a
+20, b
+20);
57 fl_color(FL_BLACK
); fl_xyline(a
+10, b
+20, a
+20, b
+30);
58 // testing fl_xyline(x, y, x1, y2, x3);
59 fl_color(FL_RED
); fl_point(a
+10, b
+40); fl_point(a
+20, b
+40);
60 fl_point(a
+20, b
+50); fl_point(a
+30, b
+50);
61 fl_color(FL_BLACK
); fl_xyline(a
+10, b
+40, a
+20, b
+50, a
+30);
62 //+++ add testing for the fl_yxline commands!
63 // testing fl_loop(x,y, x,y, x,y, x, y)
64 fl_color(FL_RED
); fl_point(a
+60, b
+60); fl_point(a
+90, b
+60);
65 fl_point(a
+60, b
+90); fl_point(a
+90, b
+90);
67 fl_loop(a
+60, b
+60, a
+90, b
+60, a
+90, b
+90, a
+60, b
+90);
71 UnitTest
lines("drawing lines", LineTest::create
);
74 // End of "$Id: unittest_lines.cxx 7913 2010-11-29 18:18:27Z greg.ercolano $"