summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/drawpad/drawpad.cpp84
-rw-r--r--noncore/graphics/drawpad/drawpad.h3
-rw-r--r--noncore/graphics/drawpad/drawpad.pro2
-rw-r--r--noncore/graphics/drawpad/drawpadcanvas.cpp29
-rw-r--r--noncore/graphics/drawpad/drawpadcanvas.h2
-rw-r--r--noncore/graphics/drawpad/erasetool.cpp2
-rw-r--r--noncore/graphics/drawpad/filltool.cpp2
-rw-r--r--noncore/graphics/drawpad/pointtool.cpp2
-rw-r--r--noncore/graphics/drawpad/shapetool.cpp2
-rw-r--r--noncore/graphics/drawpad/texttool.cpp79
-rw-r--r--noncore/graphics/drawpad/texttool.h46
-rw-r--r--pics/drawpad/text.pngbin0 -> 142 bytes
12 files changed, 218 insertions, 35 deletions
diff --git a/noncore/graphics/drawpad/drawpad.cpp b/noncore/graphics/drawpad/drawpad.cpp
index 1375792..7e6fc53 100644
--- a/noncore/graphics/drawpad/drawpad.cpp
+++ b/noncore/graphics/drawpad/drawpad.cpp
@@ -26,6 +26,7 @@
26#include "linetool.h" 26#include "linetool.h"
27#include "pointtool.h" 27#include "pointtool.h"
28#include "rectangletool.h" 28#include "rectangletool.h"
29#include "texttool.h"
29 30
30#include <qpe/applnk.h> 31#include <qpe/applnk.h>
31#include <qpe/global.h> 32#include <qpe/global.h>
@@ -129,15 +130,21 @@ DrawPad::DrawPad(QWidget* parent, const char* name)
129 130
130 QPEToolBar* drawModeToolBar = new QPEToolBar(this); 131 QPEToolBar* drawModeToolBar = new QPEToolBar(this);
131 132
132 m_pPointToolAction = new QAction(tr("Draw Point"), Resource::loadIconSet("drawpad/point.png"), QString::null, 0, this); 133 m_pLineToolButton = new QToolButton(drawModeToolBar);
133 m_pPointToolAction->setToggleAction(true); 134 m_pLineToolButton->setToggleButton(true);
135
136 QPopupMenu* linePopupMenu = new QPopupMenu(m_pLineToolButton);
137
138 m_pPointToolAction = new QAction(tr("Draw Point"), Resource::loadIconSet("drawpad/point.png"), "", 0, this);
134 connect(m_pPointToolAction, SIGNAL(activated()), this, SLOT(setPointTool())); 139 connect(m_pPointToolAction, SIGNAL(activated()), this, SLOT(setPointTool()));
135 m_pPointToolAction->addTo(drawModeToolBar); 140 m_pPointToolAction->addTo(linePopupMenu);
136 141
137 m_pLineToolAction = new QAction(tr("Draw Line"), Resource::loadIconSet("drawpad/line.png"), QString::null, 0, this); 142 m_pLineToolAction = new QAction(tr("Draw Line"), Resource::loadIconSet("drawpad/line.png"), "", 0, this);
138 m_pLineToolAction->setToggleAction(true);
139 connect(m_pLineToolAction, SIGNAL(activated()), this, SLOT(setLineTool())); 143 connect(m_pLineToolAction, SIGNAL(activated()), this, SLOT(setLineTool()));
140 m_pLineToolAction->addTo(drawModeToolBar); 144 m_pLineToolAction->addTo(linePopupMenu);
145
146 m_pLineToolButton->setPopup(linePopupMenu);
147 m_pLineToolButton->setPopupDelay(0);
141 148
142 m_pRectangleToolButton = new QToolButton(drawModeToolBar); 149 m_pRectangleToolButton = new QToolButton(drawModeToolBar);
143 m_pRectangleToolButton->setToggleButton(true); 150 m_pRectangleToolButton->setToggleButton(true);
@@ -171,6 +178,11 @@ DrawPad::DrawPad(QWidget* parent, const char* name)
171 m_pEllipseToolButton->setPopup(ellipsePopupMenu); 178 m_pEllipseToolButton->setPopup(ellipsePopupMenu);
172 m_pEllipseToolButton->setPopupDelay(0); 179 m_pEllipseToolButton->setPopupDelay(0);
173 180
181 m_pTextToolAction = new QAction(tr("Insert Text"), Resource::loadIconSet("drawpad/text.png"), QString::null, 0, this);
182 m_pTextToolAction->setToggleAction(true);
183 connect(m_pTextToolAction, SIGNAL(activated()), this, SLOT(setTextTool()));
184 m_pTextToolAction->addTo(drawModeToolBar);
185
174 m_pFillToolAction = new QAction(tr("Fill Region"), Resource::loadIconSet("drawpad/fill.png"), QString::null, 0, this); 186 m_pFillToolAction = new QAction(tr("Fill Region"), Resource::loadIconSet("drawpad/fill.png"), QString::null, 0, this);
175 m_pFillToolAction->setToggleAction(true); 187 m_pFillToolAction->setToggleAction(true);
176 connect(m_pFillToolAction, SIGNAL(activated()), this, SLOT(setFillTool())); 188 connect(m_pFillToolAction, SIGNAL(activated()), this, SLOT(setFillTool()));
@@ -273,10 +285,16 @@ void DrawPad::setPointTool()
273 285
274 m_pTool = new PointTool(this, m_pDrawPadCanvas); 286 m_pTool = new PointTool(this, m_pDrawPadCanvas);
275 287
276 m_pPointToolAction->setOn(true); 288 m_pLineToolButton->setIconSet(m_pPointToolAction->iconSet());
277 m_pLineToolAction->setOn(false); 289 QToolTip::add(m_pLineToolButton, m_pPointToolAction->text());
290
291 disconnect(m_pLineToolButton, SIGNAL(clicked()), 0, 0);
292 connect(m_pLineToolButton, SIGNAL(clicked()), m_pPointToolAction, SIGNAL(activated()));
293
294 m_pLineToolButton->setOn(true);
278 m_pRectangleToolButton->setOn(false); 295 m_pRectangleToolButton->setOn(false);
279 m_pEllipseToolButton->setOn(false); 296 m_pEllipseToolButton->setOn(false);
297 m_pTextToolAction->setOn(false);
280 m_pFillToolAction->setOn(false); 298 m_pFillToolAction->setOn(false);
281 m_pEraseToolAction->setOn(false); 299 m_pEraseToolAction->setOn(false);
282} 300}
@@ -289,10 +307,16 @@ void DrawPad::setLineTool()
289 307
290 m_pTool = new LineTool(this, m_pDrawPadCanvas); 308 m_pTool = new LineTool(this, m_pDrawPadCanvas);
291 309
292 m_pPointToolAction->setOn(false); 310 m_pLineToolButton->setIconSet(m_pLineToolAction->iconSet());
293 m_pLineToolAction->setOn(true); 311 QToolTip::add(m_pLineToolButton, m_pLineToolAction->text());
312
313 disconnect(m_pLineToolButton, SIGNAL(clicked()), 0, 0);
314 connect(m_pLineToolButton, SIGNAL(clicked()), m_pLineToolAction, SIGNAL(activated()));
315
316 m_pLineToolButton->setOn(true);
294 m_pRectangleToolButton->setOn(false); 317 m_pRectangleToolButton->setOn(false);
295 m_pEllipseToolButton->setOn(false); 318 m_pEllipseToolButton->setOn(false);
319 m_pTextToolAction->setOn(false);
296 m_pFillToolAction->setOn(false); 320 m_pFillToolAction->setOn(false);
297 m_pEraseToolAction->setOn(false); 321 m_pEraseToolAction->setOn(false);
298} 322}
@@ -311,10 +335,10 @@ void DrawPad::setRectangleTool()
311 disconnect(m_pRectangleToolButton, SIGNAL(clicked()), 0, 0); 335 disconnect(m_pRectangleToolButton, SIGNAL(clicked()), 0, 0);
312 connect(m_pRectangleToolButton, SIGNAL(clicked()), m_pRectangleToolAction, SIGNAL(activated())); 336 connect(m_pRectangleToolButton, SIGNAL(clicked()), m_pRectangleToolAction, SIGNAL(activated()));
313 337
314 m_pPointToolAction->setOn(false); 338 m_pLineToolButton->setOn(false);
315 m_pLineToolAction->setOn(false);
316 m_pRectangleToolButton->setOn(true); 339 m_pRectangleToolButton->setOn(true);
317 m_pEllipseToolButton->setOn(false); 340 m_pEllipseToolButton->setOn(false);
341 m_pTextToolAction->setOn(false);
318 m_pFillToolAction->setOn(false); 342 m_pFillToolAction->setOn(false);
319 m_pEraseToolAction->setOn(false); 343 m_pEraseToolAction->setOn(false);
320} 344}
@@ -333,10 +357,10 @@ void DrawPad::setFilledRectangleTool()
333 disconnect(m_pRectangleToolButton, SIGNAL(clicked()), 0, 0); 357 disconnect(m_pRectangleToolButton, SIGNAL(clicked()), 0, 0);
334 connect(m_pRectangleToolButton, SIGNAL(clicked()), m_pFilledRectangleToolAction, SIGNAL(activated())); 358 connect(m_pRectangleToolButton, SIGNAL(clicked()), m_pFilledRectangleToolAction, SIGNAL(activated()));
335 359
336 m_pPointToolAction->setOn(false); 360 m_pLineToolButton->setOn(false);
337 m_pLineToolAction->setOn(false);
338 m_pRectangleToolButton->setOn(true); 361 m_pRectangleToolButton->setOn(true);
339 m_pEllipseToolButton->setOn(false); 362 m_pEllipseToolButton->setOn(false);
363 m_pTextToolAction->setOn(false);
340 m_pFillToolAction->setOn(false); 364 m_pFillToolAction->setOn(false);
341 m_pEraseToolAction->setOn(false); 365 m_pEraseToolAction->setOn(false);
342} 366}
@@ -355,10 +379,10 @@ void DrawPad::setEllipseTool()
355 disconnect(m_pEllipseToolButton, SIGNAL(clicked()), 0, 0); 379 disconnect(m_pEllipseToolButton, SIGNAL(clicked()), 0, 0);
356 connect(m_pEllipseToolButton, SIGNAL(clicked()), m_pEllipseToolAction, SIGNAL(activated())); 380 connect(m_pEllipseToolButton, SIGNAL(clicked()), m_pEllipseToolAction, SIGNAL(activated()));
357 381
358 m_pPointToolAction->setOn(false); 382 m_pLineToolButton->setOn(false);
359 m_pLineToolAction->setOn(false);
360 m_pRectangleToolButton->setOn(false); 383 m_pRectangleToolButton->setOn(false);
361 m_pEllipseToolButton->setOn(true); 384 m_pEllipseToolButton->setOn(true);
385 m_pTextToolAction->setOn(false);
362 m_pFillToolAction->setOn(false); 386 m_pFillToolAction->setOn(false);
363 m_pEraseToolAction->setOn(false); 387 m_pEraseToolAction->setOn(false);
364} 388}
@@ -377,10 +401,26 @@ void DrawPad::setFilledEllipseTool()
377 disconnect(m_pEllipseToolButton, SIGNAL(clicked()), 0, 0); 401 disconnect(m_pEllipseToolButton, SIGNAL(clicked()), 0, 0);
378 connect(m_pEllipseToolButton, SIGNAL(clicked()), m_pFilledEllipseToolAction, SIGNAL(activated())); 402 connect(m_pEllipseToolButton, SIGNAL(clicked()), m_pFilledEllipseToolAction, SIGNAL(activated()));
379 403
380 m_pPointToolAction->setOn(false); 404 m_pLineToolButton->setOn(false);
381 m_pLineToolAction->setOn(false);
382 m_pRectangleToolButton->setOn(false); 405 m_pRectangleToolButton->setOn(false);
383 m_pEllipseToolButton->setOn(true); 406 m_pEllipseToolButton->setOn(true);
407 m_pTextToolAction->setOn(false);
408 m_pFillToolAction->setOn(false);
409 m_pEraseToolAction->setOn(false);
410}
411
412void DrawPad::setTextTool()
413{
414 if (m_pTool) {
415 delete m_pTool;
416 }
417
418 m_pTool = new TextTool(this, m_pDrawPadCanvas);
419
420 m_pLineToolButton->setOn(false);
421 m_pRectangleToolButton->setOn(false);
422 m_pEllipseToolButton->setOn(false);
423 m_pTextToolAction->setOn(true);
384 m_pFillToolAction->setOn(false); 424 m_pFillToolAction->setOn(false);
385 m_pEraseToolAction->setOn(false); 425 m_pEraseToolAction->setOn(false);
386} 426}
@@ -393,10 +433,10 @@ void DrawPad::setFillTool()
393 433
394 m_pTool = new FillTool(this, m_pDrawPadCanvas); 434 m_pTool = new FillTool(this, m_pDrawPadCanvas);
395 435
396 m_pPointToolAction->setOn(false); 436 m_pLineToolButton->setOn(false);
397 m_pLineToolAction->setOn(false);
398 m_pRectangleToolButton->setOn(false); 437 m_pRectangleToolButton->setOn(false);
399 m_pEllipseToolButton->setOn(false); 438 m_pEllipseToolButton->setOn(false);
439 m_pTextToolAction->setOn(false);
400 m_pFillToolAction->setOn(true); 440 m_pFillToolAction->setOn(true);
401 m_pEraseToolAction->setOn(false); 441 m_pEraseToolAction->setOn(false);
402} 442}
@@ -409,10 +449,10 @@ void DrawPad::setEraseTool()
409 449
410 m_pTool = new EraseTool(this, m_pDrawPadCanvas); 450 m_pTool = new EraseTool(this, m_pDrawPadCanvas);
411 451
412 m_pPointToolAction->setOn(false); 452 m_pLineToolButton->setOn(false);
413 m_pLineToolAction->setOn(false);
414 m_pRectangleToolButton->setOn(false); 453 m_pRectangleToolButton->setOn(false);
415 m_pEllipseToolButton->setOn(false); 454 m_pEllipseToolButton->setOn(false);
455 m_pTextToolAction->setOn(false);
416 m_pFillToolAction->setOn(false); 456 m_pFillToolAction->setOn(false);
417 m_pEraseToolAction->setOn(true); 457 m_pEraseToolAction->setOn(true);
418} 458}
diff --git a/noncore/graphics/drawpad/drawpad.h b/noncore/graphics/drawpad/drawpad.h
index 62a73c9..e4fd831 100644
--- a/noncore/graphics/drawpad/drawpad.h
+++ b/noncore/graphics/drawpad/drawpad.h
@@ -45,6 +45,7 @@ private slots:
45 void setFilledRectangleTool(); 45 void setFilledRectangleTool();
46 void setEllipseTool(); 46 void setEllipseTool();
47 void setFilledEllipseTool(); 47 void setFilledEllipseTool();
48 void setTextTool();
48 void setFillTool(); 49 void setFillTool();
49 void setEraseTool(); 50 void setEraseTool();
50 51
@@ -82,9 +83,11 @@ private:
82 QAction* m_pFilledRectangleToolAction; 83 QAction* m_pFilledRectangleToolAction;
83 QAction* m_pEllipseToolAction; 84 QAction* m_pEllipseToolAction;
84 QAction* m_pFilledEllipseToolAction; 85 QAction* m_pFilledEllipseToolAction;
86 QAction* m_pTextToolAction;
85 QAction* m_pFillToolAction; 87 QAction* m_pFillToolAction;
86 QAction* m_pEraseToolAction; 88 QAction* m_pEraseToolAction;
87 89
90 QToolButton* m_pLineToolButton;
88 QToolButton* m_pRectangleToolButton; 91 QToolButton* m_pRectangleToolButton;
89 QToolButton* m_pEllipseToolButton; 92 QToolButton* m_pEllipseToolButton;
90 QToolButton* m_pPenColorToolButton; 93 QToolButton* m_pPenColorToolButton;
diff --git a/noncore/graphics/drawpad/drawpad.pro b/noncore/graphics/drawpad/drawpad.pro
index fce0701..00eb00d 100644
--- a/noncore/graphics/drawpad/drawpad.pro
+++ b/noncore/graphics/drawpad/drawpad.pro
@@ -16,6 +16,7 @@ HEADERS = colordialog.h \
16 pointtool.h \ 16 pointtool.h \
17 rectangletool.h \ 17 rectangletool.h \
18 shapetool.h \ 18 shapetool.h \
19 texttool.h \
19 tool.h 20 tool.h
20 SOURCES = colordialog.cpp \ 21 SOURCES = colordialog.cpp \
21 colorpanel.cpp \ 22 colorpanel.cpp \
@@ -34,6 +35,7 @@ SOURCES = colordialog.cpp \
34 pointtool.cpp \ 35 pointtool.cpp \
35 rectangletool.cpp \ 36 rectangletool.cpp \
36 shapetool.cpp \ 37 shapetool.cpp \
38 texttool.cpp \
37 tool.cpp 39 tool.cpp
38 INCLUDEPATH+= $(OPIEDIR)/include \ 40 INCLUDEPATH+= $(OPIEDIR)/include \
39 $(QTDIR)/src/3rdparty/zlib 41 $(QTDIR)/src/3rdparty/zlib
diff --git a/noncore/graphics/drawpad/drawpadcanvas.cpp b/noncore/graphics/drawpad/drawpadcanvas.cpp
index db6288f..b39a633 100644
--- a/noncore/graphics/drawpad/drawpadcanvas.cpp
+++ b/noncore/graphics/drawpad/drawpadcanvas.cpp
@@ -328,6 +328,22 @@ uint DrawPadCanvas::pageCount()
328 return m_pages.count(); 328 return m_pages.count();
329} 329}
330 330
331void DrawPadCanvas::backupPage()
332{
333 QPixmap* currentBackup = m_pageBackups.current();
334 while (m_pageBackups.last() != currentBackup) {
335 m_pageBackups.removeLast();
336 }
337
338 while (m_pageBackups.count() >= (5 + 1)) {
339 m_pageBackups.removeFirst();
340 }
341
342 m_pageBackups.append(new QPixmap(*(m_pages.current())));
343
344 emit pageBackupsChanged();
345}
346
331void DrawPadCanvas::deleteAll() 347void DrawPadCanvas::deleteAll()
332{ 348{
333 QMessageBox messageBox(tr("Delete All"), tr("Do you want to delete\nall the pages?"), 349 QMessageBox messageBox(tr("Delete All"), tr("Do you want to delete\nall the pages?"),
@@ -513,19 +529,6 @@ void DrawPadCanvas::contentsMousePressEvent(QMouseEvent* e)
513void DrawPadCanvas::contentsMouseReleaseEvent(QMouseEvent* e) 529void DrawPadCanvas::contentsMouseReleaseEvent(QMouseEvent* e)
514{ 530{
515 m_pDrawPad->tool()->mouseReleaseEvent(e); 531 m_pDrawPad->tool()->mouseReleaseEvent(e);
516
517 QPixmap* currentBackup = m_pageBackups.current();
518 while (m_pageBackups.last() != currentBackup) {
519 m_pageBackups.removeLast();
520 }
521
522 while (m_pageBackups.count() >= (5 + 1)) {
523 m_pageBackups.removeFirst();
524 }
525
526 m_pageBackups.append(new QPixmap(*(m_pages.current())));
527
528 emit pageBackupsChanged();
529} 532}
530 533
531void DrawPadCanvas::contentsMouseMoveEvent(QMouseEvent* e) 534void DrawPadCanvas::contentsMouseMoveEvent(QMouseEvent* e)
diff --git a/noncore/graphics/drawpad/drawpadcanvas.h b/noncore/graphics/drawpad/drawpadcanvas.h
index a1a9466..e05ce8a 100644
--- a/noncore/graphics/drawpad/drawpadcanvas.h
+++ b/noncore/graphics/drawpad/drawpadcanvas.h
@@ -48,6 +48,8 @@ public:
48 uint pagePosition(); 48 uint pagePosition();
49 uint pageCount(); 49 uint pageCount();
50 50
51 void backupPage();
52
51public slots: 53public slots:
52 void deleteAll(); 54 void deleteAll();
53 void newPage(); 55 void newPage();
diff --git a/noncore/graphics/drawpad/erasetool.cpp b/noncore/graphics/drawpad/erasetool.cpp
index d37c901..828994b 100644
--- a/noncore/graphics/drawpad/erasetool.cpp
+++ b/noncore/graphics/drawpad/erasetool.cpp
@@ -41,6 +41,8 @@ void EraseTool::mouseReleaseEvent(QMouseEvent* e)
41 Q_UNUSED(e) 41 Q_UNUSED(e)
42 42
43 m_mousePressed = false; 43 m_mousePressed = false;
44
45 m_pDrawPadCanvas->backupPage();
44} 46}
45 47
46void EraseTool::mouseMoveEvent(QMouseEvent* e) 48void EraseTool::mouseMoveEvent(QMouseEvent* e)
diff --git a/noncore/graphics/drawpad/filltool.cpp b/noncore/graphics/drawpad/filltool.cpp
index 3297d21..004da02 100644
--- a/noncore/graphics/drawpad/filltool.cpp
+++ b/noncore/graphics/drawpad/filltool.cpp
@@ -42,6 +42,8 @@ void FillTool::mousePressEvent(QMouseEvent* e)
42 42
43 m_pDrawPadCanvas->currentPage()->convertFromImage(m_image); 43 m_pDrawPadCanvas->currentPage()->convertFromImage(m_image);
44 m_pDrawPadCanvas->viewport()->update(); 44 m_pDrawPadCanvas->viewport()->update();
45
46 m_pDrawPadCanvas->backupPage();
45 } 47 }
46} 48}
47 49
diff --git a/noncore/graphics/drawpad/pointtool.cpp b/noncore/graphics/drawpad/pointtool.cpp
index 5661b03..e281284 100644
--- a/noncore/graphics/drawpad/pointtool.cpp
+++ b/noncore/graphics/drawpad/pointtool.cpp
@@ -41,6 +41,8 @@ void PointTool::mouseReleaseEvent(QMouseEvent* e)
41 Q_UNUSED(e) 41 Q_UNUSED(e)
42 42
43 m_mousePressed = false; 43 m_mousePressed = false;
44
45 m_pDrawPadCanvas->backupPage();
44} 46}
45 47
46void PointTool::mouseMoveEvent(QMouseEvent* e) 48void PointTool::mouseMoveEvent(QMouseEvent* e)
diff --git a/noncore/graphics/drawpad/shapetool.cpp b/noncore/graphics/drawpad/shapetool.cpp
index 3c99370..bc5d9c0 100644
--- a/noncore/graphics/drawpad/shapetool.cpp
+++ b/noncore/graphics/drawpad/shapetool.cpp
@@ -61,6 +61,8 @@ void ShapeTool::mouseReleaseEvent(QMouseEvent* e)
61 m_pDrawPadCanvas->viewport()->update(viewportRect); 61 m_pDrawPadCanvas->viewport()->update(viewportRect);
62 62
63 m_mousePressed = false; 63 m_mousePressed = false;
64
65 m_pDrawPadCanvas->backupPage();
64} 66}
65 67
66void ShapeTool::mouseMoveEvent(QMouseEvent* e) 68void ShapeTool::mouseMoveEvent(QMouseEvent* e)
diff --git a/noncore/graphics/drawpad/texttool.cpp b/noncore/graphics/drawpad/texttool.cpp
new file mode 100644
index 0000000..37b4801
--- a/dev/null
+++ b/noncore/graphics/drawpad/texttool.cpp
@@ -0,0 +1,79 @@
1/***************************************************************************
2 * *
3 * DrawPad - a drawing program for Opie Environment *
4 * *
5 * (C) 2002 by S. Prud'homme <prudhomme@laposte.net> *
6 * *
7 * This program is free software; you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation; either version 2 of the License, or *
10 * (at your option) any later version. *
11 * *
12 ***************************************************************************/
13
14#include "texttool.h"
15
16#include "drawpad.h"
17#include "drawpadcanvas.h"
18
19#include <qlayout.h>
20#include <qlineedit.h>
21#include <qpainter.h>
22#include <qpixmap.h>
23
24TextToolDialog::TextToolDialog(QWidget* parent, const char* name)
25 : QDialog(parent, name, true)
26{
27 setCaption(tr("Insert Text"));
28
29 m_pLineEdit = new QLineEdit(this);
30
31 QVBoxLayout* mainLayout = new QVBoxLayout(this, 4, 4);
32
33 mainLayout->addWidget(m_pLineEdit);
34}
35
36TextToolDialog::~TextToolDialog()
37{
38}
39
40QString TextToolDialog::text()
41{
42 return m_pLineEdit->text();
43}
44
45TextTool::TextTool(DrawPad* drawPad, DrawPadCanvas* drawPadCanvas)
46 : Tool(drawPad, drawPadCanvas)
47{
48}
49
50TextTool::~TextTool()
51{
52}
53
54void TextTool::mousePressEvent(QMouseEvent* e)
55{
56 TextToolDialog textToolDialog(m_pDrawPad);
57
58 if (textToolDialog.exec() == QDialog::Accepted && !textToolDialog.text().isEmpty()) {
59 QPainter painter;
60 painter.begin(m_pDrawPadCanvas->currentPage());
61 painter.setPen(m_pDrawPad->pen());
62 painter.drawText(e->x(), e->y(), textToolDialog.text());
63 painter.end();
64
65 m_pDrawPadCanvas->viewport()->update();
66
67 m_pDrawPadCanvas->backupPage();
68 }
69}
70
71void TextTool::mouseReleaseEvent(QMouseEvent* e)
72{
73 Q_UNUSED(e)
74}
75
76void TextTool::mouseMoveEvent(QMouseEvent* e)
77{
78 Q_UNUSED(e)
79}
diff --git a/noncore/graphics/drawpad/texttool.h b/noncore/graphics/drawpad/texttool.h
new file mode 100644
index 0000000..3187675
--- a/dev/null
+++ b/noncore/graphics/drawpad/texttool.h
@@ -0,0 +1,46 @@
1/***************************************************************************
2 * *
3 * DrawPad - a drawing program for Opie Environment *
4 * *
5 * (C) 2002 by S. Prud'homme <prudhomme@laposte.net> *
6 * *
7 * This program is free software; you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation; either version 2 of the License, or *
10 * (at your option) any later version. *
11 * *
12 ***************************************************************************/
13
14#ifndef TEXTTOOL_H
15#define TEXTTOOL_H
16
17#include "tool.h"
18
19#include <qdialog.h>
20
21class QLineEdit;
22
23class TextToolDialog : public QDialog
24{
25public:
26 TextToolDialog(QWidget* parent = 0, const char* name = 0);
27 ~TextToolDialog();
28
29 QString text();
30
31private:
32 QLineEdit* m_pLineEdit;
33};
34
35class TextTool : public Tool
36{
37public:
38 TextTool(DrawPad* drawPad, DrawPadCanvas* drawPadCanvas);
39 ~TextTool();
40
41 void mousePressEvent(QMouseEvent* e);
42 void mouseReleaseEvent(QMouseEvent* e);
43 void mouseMoveEvent(QMouseEvent* e);
44};
45
46#endif // TEXTTOOL_H
diff --git a/pics/drawpad/text.png b/pics/drawpad/text.png
new file mode 100644
index 0000000..230d72b
--- a/dev/null
+++ b/pics/drawpad/text.png
Binary files differ