Add basic static text drawing capability to lance

Task-number: QTBUG-17514
Change-Id: Ife7cd8f940424d805f634ca190bcbf6fd83d8682
Reviewed-on: http://codereview.qt.nokia.com/321
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: aavit <qt_aavit@ovi.com>
This commit is contained in:
Jiang Jiang 2011-06-03 13:31:05 +02:00 committed by Qt Continuous Integration System
parent 39d6b7b287
commit ce041a6516
3 changed files with 143 additions and 0 deletions

View File

@ -48,6 +48,7 @@
#include <qtextstream.h>
#include <qtextlayout.h>
#include <qdebug.h>
#include <QStaticText>
#ifndef QT_NO_OPENGL
#include <qglpixelbuffer.h>
@ -433,6 +434,10 @@ void PaintCommands::staticInit()
"^drawText\\s+(-?\\w*)\\s+(-?\\w*)\\s+\"(.*)\"$",
"drawText <x> <y> <text>",
"drawText 10 10 \"my text\"");
DECL_PAINTCOMMAND("drawStaticText", command_drawStaticText,
"^drawStaticText\\s+(-?\\w*)\\s+(-?\\w*)\\s+\"(.*)\"$",
"drawStaticText <x> <y> <text>",
"drawStaticText 10 10 \"my text\"");
DECL_PAINTCOMMAND("drawTiledPixmap", command_drawTiledPixmap,
"^drawTiledPixmap\\s+([\\w.:\\/]*)"
"\\s+(-?\\w*)\\s+(-?\\w*)\\s*(-?\\w*)\\s*(-?\\w*)"
@ -1256,6 +1261,21 @@ void PaintCommands::command_drawText(QRegExp re)
m_painter->drawText(x, y, txt);
}
void PaintCommands::command_drawStaticText(QRegExp re)
{
if (!m_shouldDrawText)
return;
QStringList caps = re.capturedTexts();
int x = convertToInt(caps.at(1));
int y = convertToInt(caps.at(2));
QString txt = caps.at(3);
if (m_verboseMode)
printf(" -(lance) drawStaticText(%d, %d, %s)\n", x, y, qPrintable(txt));
m_painter->drawStaticText(x, y, QStaticText(txt));
}
/***************************************************************************************************/
void PaintCommands::command_noop(QRegExp)
{

View File

@ -201,6 +201,7 @@ private:
void command_drawRoundedRect(QRegExp re);
void command_drawRoundRect(QRegExp re);
void command_drawText(QRegExp re);
void command_drawStaticText(QRegExp re);
void command_drawTiledPixmap(QRegExp re);
void command_path_addEllipse(QRegExp re);
void command_path_addPolygon(QRegExp re);

View File

@ -0,0 +1,122 @@
drawStaticText -5 5 "Text that is drawn outside the bounds..."
translate 20 20
begin_block text_drawing
save
setFont "sansserif" 10 normal
drawStaticText 0 20 "sansserif 10pt, normal"
setFont "sansserif" 12 normal
drawStaticText 0 40 "sansserif 12pt, normal"
setFont "sansserif" 10 bold
drawStaticText 0 60 "sansserif 12pt, bold"
setFont "sansserif" 10 bold italic
drawStaticText 0 80 "sansserif 10pt, bold italic"
translate 0 100
setPen #7fff0000
setFont "sansserif" 10 normal
drawStaticText 0 20 "alpha sansserif 10pt, normal"
setFont "sansserif" 12 normal
drawStaticText 0 40 "alpha sansserif 12pt, normal"
setFont "sansserif" 10 bold
drawStaticText 0 60 "alpha sansserif 12pt, bold"
setFont "sansserif" 10 bold italic
drawStaticText 0 80 "alpha sansserif 10pt, bold italic"
translate 0 100
setPen black
save
scale 0.9 0.9
setFont "sansserif" 10 normal
drawStaticText 0 20 "scaled sansserif 10pt, normal"
setFont "sansserif" 12 normal
drawStaticText 0 40 "scaled sansserif 12pt, normal"
setFont "sansserif" 10 bold
drawStaticText 0 60 "scaled sansserif 12pt, bold"
setFont "sansserif" 10 bold italic
drawStaticText 0 80 "scaled sansserif 10pt, bold italic"
restore
translate 0 100
setPen black
save
translate 200 90
rotate 185
setFont "sansserif" 10 normal
drawStaticText 0 20 "scaled sansserif 10pt, normal"
setFont "sansserif" 12 normal
drawStaticText 0 40 "scaled sansserif 12pt, normal"
setFont "sansserif" 10 bold
drawStaticText 0 60 "scaled sansserif 12pt, bold"
setFont "sansserif" 10 bold italic
drawStaticText 0 80 "scaled sansserif 10pt, bold italic"
restore
translate 0 100
gradient_appendStop 0 red
gradient_appendStop 0.5 #00ff00
gradient_appendStop 1 blue
gradient_setLinear 0 0 200 0
setPen brush
setFont "sansserif" 10 normal
drawStaticText 0 0 "gradient sansserif 10pt, normal"
setFont "sansserif" 12 normal
drawStaticText 0 20 "gradient sansserif 12pt, normal"
setFont "sansserif" 10 bold
drawStaticText 0 40 "gradient sansserif 12pt, bold"
setFont "sansserif" 10 bold italic
drawStaticText 0 60 "gradient sansserif 10pt, bold italic"
restore
end_block
translate 250 0
drawStaticText 25 520 "clipped to rectangle"
save
setPen #3f000000
setBrush nobrush
drawRect 20 0 100 500
setClipRect 20 0 100 500
setPen black
repeat_block text_drawing
restore
translate 150 0
drawStaticText 25 520 "clipped to path"
save
path_moveTo clip 20 0
path_cubicTo clip 0 200 40 400 20 400
path_lineTo clip 30 500
path_lineTo clip 30 0
path_lineTo clip 40 0
path_lineTo clip 40 500
path_lineTo clip 120 500
path_lineTo clip 120 0
path_lineTo clip 20 0
setPen #3f000000
setBrush nobrush
drawPath clip
setClipPath clip
setPen black
repeat_block text_drawing
restore