summaryrefslogtreecommitdiff
path: root/noncore/graphics
Unidiff
Diffstat (limited to 'noncore/graphics') (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
11 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
@@ -17,24 +17,25 @@
17#include "colorpanel.h" 17#include "colorpanel.h"
18#include "drawpadcanvas.h" 18#include "drawpadcanvas.h"
19#include "ellipsetool.h" 19#include "ellipsetool.h"
20#include "erasetool.h" 20#include "erasetool.h"
21#include "exportdialog.h" 21#include "exportdialog.h"
22#include "filledellipsetool.h" 22#include "filledellipsetool.h"
23#include "filledrectangletool.h" 23#include "filledrectangletool.h"
24#include "filltool.h" 24#include "filltool.h"
25#include "importdialog.h" 25#include "importdialog.h"
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>
32#include <qpe/qpemenubar.h> 33#include <qpe/qpemenubar.h>
33#include <qpe/qpetoolbar.h> 34#include <qpe/qpetoolbar.h>
34#include <qpe/resource.h> 35#include <qpe/resource.h>
35 36
36#include <qaction.h> 37#include <qaction.h>
37#include <qfile.h> 38#include <qfile.h>
38#include <qpainter.h> 39#include <qpainter.h>
39#include <qspinbox.h> 40#include <qspinbox.h>
40#include <qtoolbutton.h> 41#include <qtoolbutton.h>
@@ -120,33 +121,39 @@ DrawPad::DrawPad(QWidget* parent, const char* name)
120 m_pNextPageAction = new QAction(tr("Next Page"), Resource::loadIconSet("forward"), QString::null, 0, this); 121 m_pNextPageAction = new QAction(tr("Next Page"), Resource::loadIconSet("forward"), QString::null, 0, this);
121 connect(m_pNextPageAction, SIGNAL(activated()), m_pDrawPadCanvas, SLOT(goNextPage())); 122 connect(m_pNextPageAction, SIGNAL(activated()), m_pDrawPadCanvas, SLOT(goNextPage()));
122 m_pNextPageAction->addTo(navigationToolBar); 123 m_pNextPageAction->addTo(navigationToolBar);
123 124
124 m_pLastPageAction = new QAction(tr("Last Page"), Resource::loadIconSet("fastforward"), QString::null, 0, this); 125 m_pLastPageAction = new QAction(tr("Last Page"), Resource::loadIconSet("fastforward"), QString::null, 0, this);
125 connect(m_pLastPageAction, SIGNAL(activated()), m_pDrawPadCanvas, SLOT(goLastPage())); 126 connect(m_pLastPageAction, SIGNAL(activated()), m_pDrawPadCanvas, SLOT(goLastPage()));
126 m_pLastPageAction->addTo(navigationToolBar); 127 m_pLastPageAction->addTo(navigationToolBar);
127 128
128 // init draw mode toolbar 129 // init draw mode toolbar
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);
144 151
145 QPopupMenu* rectanglePopupMenu = new QPopupMenu(m_pRectangleToolButton); 152 QPopupMenu* rectanglePopupMenu = new QPopupMenu(m_pRectangleToolButton);
146 153
147 m_pRectangleToolAction = new QAction(tr("Draw Rectangle"), Resource::loadIconSet("drawpad/rectangle.png"), "", 0, this); 154 m_pRectangleToolAction = new QAction(tr("Draw Rectangle"), Resource::loadIconSet("drawpad/rectangle.png"), "", 0, this);
148 connect(m_pRectangleToolAction, SIGNAL(activated()), this, SLOT(setRectangleTool())); 155 connect(m_pRectangleToolAction, SIGNAL(activated()), this, SLOT(setRectangleTool()));
149 m_pRectangleToolAction->addTo(rectanglePopupMenu); 156 m_pRectangleToolAction->addTo(rectanglePopupMenu);
150 157
151 m_pFilledRectangleToolAction = new QAction(tr("Draw Filled Rectangle"), Resource::loadIconSet("drawpad/filledrectangle.png"), "", 0, this); 158 m_pFilledRectangleToolAction = new QAction(tr("Draw Filled Rectangle"), Resource::loadIconSet("drawpad/filledrectangle.png"), "", 0, this);
152 connect(m_pFilledRectangleToolAction, SIGNAL(activated()), this, SLOT(setFilledRectangleTool())); 159 connect(m_pFilledRectangleToolAction, SIGNAL(activated()), this, SLOT(setFilledRectangleTool()));
@@ -162,24 +169,29 @@ DrawPad::DrawPad(QWidget* parent, const char* name)
162 169
163 m_pEllipseToolAction = new QAction(tr("Draw Ellipse"), Resource::loadIconSet("drawpad/ellipse.png"), "", 0, this); 170 m_pEllipseToolAction = new QAction(tr("Draw Ellipse"), Resource::loadIconSet("drawpad/ellipse.png"), "", 0, this);
164 connect(m_pEllipseToolAction, SIGNAL(activated()), this, SLOT(setEllipseTool())); 171 connect(m_pEllipseToolAction, SIGNAL(activated()), this, SLOT(setEllipseTool()));
165 m_pEllipseToolAction->addTo(ellipsePopupMenu); 172 m_pEllipseToolAction->addTo(ellipsePopupMenu);
166 173
167 m_pFilledEllipseToolAction = new QAction(tr("Draw Filled Ellipse"), Resource::loadIconSet("drawpad/filledellipse.png"), "", 0, this); 174 m_pFilledEllipseToolAction = new QAction(tr("Draw Filled Ellipse"), Resource::loadIconSet("drawpad/filledellipse.png"), "", 0, this);
168 connect(m_pFilledEllipseToolAction, SIGNAL(activated()), this, SLOT(setFilledEllipseTool())); 175 connect(m_pFilledEllipseToolAction, SIGNAL(activated()), this, SLOT(setFilledEllipseTool()));
169 m_pFilledEllipseToolAction->addTo(ellipsePopupMenu); 176 m_pFilledEllipseToolAction->addTo(ellipsePopupMenu);
170 177
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()));
177 m_pFillToolAction->addTo(drawModeToolBar); 189 m_pFillToolAction->addTo(drawModeToolBar);
178 190
179 m_pEraseToolAction = new QAction(tr("Erase Point"), Resource::loadIconSet("drawpad/erase.png"), QString::null, 0, this); 191 m_pEraseToolAction = new QAction(tr("Erase Point"), Resource::loadIconSet("drawpad/erase.png"), QString::null, 0, this);
180 m_pEraseToolAction->setToggleAction(true); 192 m_pEraseToolAction->setToggleAction(true);
181 connect(m_pEraseToolAction, SIGNAL(activated()), this, SLOT(setEraseTool())); 193 connect(m_pEraseToolAction, SIGNAL(activated()), this, SLOT(setEraseTool()));
182 m_pEraseToolAction->addTo(drawModeToolBar); 194 m_pEraseToolAction->addTo(drawModeToolBar);
183 195
184 m_pTool = 0; 196 m_pTool = 0;
185 setRectangleTool(); 197 setRectangleTool();
@@ -264,164 +276,192 @@ DrawPad::~DrawPad()
264 file.close(); 276 file.close();
265 } 277 }
266} 278}
267 279
268void DrawPad::setPointTool() 280void DrawPad::setPointTool()
269{ 281{
270 if (m_pTool) { 282 if (m_pTool) {
271 delete m_pTool; 283 delete m_pTool;
272 } 284 }
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}
283 301
284void DrawPad::setLineTool() 302void DrawPad::setLineTool()
285{ 303{
286 if (m_pTool) { 304 if (m_pTool) {
287 delete m_pTool; 305 delete m_pTool;
288 } 306 }
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}
299 323
300void DrawPad::setRectangleTool() 324void DrawPad::setRectangleTool()
301{ 325{
302 if (m_pTool) { 326 if (m_pTool) {
303 delete m_pTool; 327 delete m_pTool;
304 } 328 }
305 329
306 m_pTool = new RectangleTool(this, m_pDrawPadCanvas); 330 m_pTool = new RectangleTool(this, m_pDrawPadCanvas);
307 331
308 m_pRectangleToolButton->setIconSet(m_pRectangleToolAction->iconSet()); 332 m_pRectangleToolButton->setIconSet(m_pRectangleToolAction->iconSet());
309 QToolTip::add(m_pRectangleToolButton, m_pRectangleToolAction->text()); 333 QToolTip::add(m_pRectangleToolButton, m_pRectangleToolAction->text());
310 334
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}
321 345
322void DrawPad::setFilledRectangleTool() 346void DrawPad::setFilledRectangleTool()
323{ 347{
324 if (m_pTool) { 348 if (m_pTool) {
325 delete m_pTool; 349 delete m_pTool;
326 } 350 }
327 351
328 m_pTool = new FilledRectangleTool(this, m_pDrawPadCanvas); 352 m_pTool = new FilledRectangleTool(this, m_pDrawPadCanvas);
329 353
330 m_pRectangleToolButton->setIconSet(m_pFilledRectangleToolAction->iconSet()); 354 m_pRectangleToolButton->setIconSet(m_pFilledRectangleToolAction->iconSet());
331 QToolTip::add(m_pRectangleToolButton, m_pFilledRectangleToolAction->text()); 355 QToolTip::add(m_pRectangleToolButton, m_pFilledRectangleToolAction->text());
332 356
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}
343 367
344void DrawPad::setEllipseTool() 368void DrawPad::setEllipseTool()
345{ 369{
346 if (m_pTool) { 370 if (m_pTool) {
347 delete m_pTool; 371 delete m_pTool;
348 } 372 }
349 373
350 m_pTool = new EllipseTool(this, m_pDrawPadCanvas); 374 m_pTool = new EllipseTool(this, m_pDrawPadCanvas);
351 375
352 m_pEllipseToolButton->setIconSet(m_pEllipseToolAction->iconSet()); 376 m_pEllipseToolButton->setIconSet(m_pEllipseToolAction->iconSet());
353 QToolTip::add(m_pEllipseToolButton, m_pEllipseToolAction->text()); 377 QToolTip::add(m_pEllipseToolButton, m_pEllipseToolAction->text());
354 378
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}
365 389
366void DrawPad::setFilledEllipseTool() 390void DrawPad::setFilledEllipseTool()
367{ 391{
368 if (m_pTool) { 392 if (m_pTool) {
369 delete m_pTool; 393 delete m_pTool;
370 } 394 }
371 395
372 m_pTool = new FilledEllipseTool(this, m_pDrawPadCanvas); 396 m_pTool = new FilledEllipseTool(this, m_pDrawPadCanvas);
373 397
374 m_pEllipseToolButton->setIconSet(m_pFilledEllipseToolAction->iconSet()); 398 m_pEllipseToolButton->setIconSet(m_pFilledEllipseToolAction->iconSet());
375 QToolTip::add(m_pEllipseToolButton, m_pFilledEllipseToolAction->text()); 399 QToolTip::add(m_pEllipseToolButton, m_pFilledEllipseToolAction->text());
376 400
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}
387 427
388void DrawPad::setFillTool() 428void DrawPad::setFillTool()
389{ 429{
390 if (m_pTool) { 430 if (m_pTool) {
391 delete m_pTool; 431 delete m_pTool;
392 } 432 }
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}
403 443
404void DrawPad::setEraseTool() 444void DrawPad::setEraseTool()
405{ 445{
406 if (m_pTool) { 446 if (m_pTool) {
407 delete m_pTool; 447 delete m_pTool;
408 } 448 }
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}
419 459
420void DrawPad::changePenWidth(int value) 460void DrawPad::changePenWidth(int value)
421{ 461{
422 m_pen.setWidth(value); 462 m_pen.setWidth(value);
423} 463}
424 464
425void DrawPad::changePenColor(const QColor& color) 465void DrawPad::changePenColor(const QColor& color)
426{ 466{
427 m_pen.setColor(color); 467 m_pen.setColor(color);
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
@@ -36,24 +36,25 @@ public:
36 36
37 Tool* tool() { return m_pTool; } 37 Tool* tool() { return m_pTool; }
38 QPen pen() { return m_pen; } 38 QPen pen() { return m_pen; }
39 QBrush brush() { return m_brush; } 39 QBrush brush() { return m_brush; }
40 40
41private slots: 41private slots:
42 void setPointTool(); 42 void setPointTool();
43 void setLineTool(); 43 void setLineTool();
44 void setRectangleTool(); 44 void setRectangleTool();
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
51 void changePenWidth(int value); 52 void changePenWidth(int value);
52 void changePenColor(const QColor& color); 53 void changePenColor(const QColor& color);
53 void changeBrushColor(const QColor& color); 54 void changeBrushColor(const QColor& color);
54 void choosePenColor(); 55 void choosePenColor();
55 void chooseBrushColor(); 56 void chooseBrushColor();
56 57
57 void updateUndoRedoToolButtons(); 58 void updateUndoRedoToolButtons();
58 void updateNavigationToolButtons(); 59 void updateNavigationToolButtons();
59 void updateCaption(); 60 void updateCaption();
@@ -73,22 +74,24 @@ private:
73 74
74 QAction* m_pFirstPageAction; 75 QAction* m_pFirstPageAction;
75 QAction* m_pPreviousPageAction; 76 QAction* m_pPreviousPageAction;
76 QAction* m_pNextPageAction; 77 QAction* m_pNextPageAction;
77 QAction* m_pLastPageAction; 78 QAction* m_pLastPageAction;
78 79
79 QAction* m_pPointToolAction; 80 QAction* m_pPointToolAction;
80 QAction* m_pLineToolAction; 81 QAction* m_pLineToolAction;
81 QAction* m_pRectangleToolAction; 82 QAction* m_pRectangleToolAction;
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;
91 QToolButton* m_pBrushColorToolButton; 94 QToolButton* m_pBrushColorToolButton;
92}; 95};
93 96
94#endif // DRAWPAD_H 97#endif // DRAWPAD_H
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
@@ -7,42 +7,44 @@ HEADERS = colordialog.h \
7 ellipsetool.h \ 7 ellipsetool.h \
8 erasetool.h \ 8 erasetool.h \
9 exportdialog.h \ 9 exportdialog.h \
10 filltool.h \ 10 filltool.h \
11 filledellipsetool.h \ 11 filledellipsetool.h \
12 filledrectangletool.h \ 12 filledrectangletool.h \
13 importdialog.h \ 13 importdialog.h \
14 linetool.h \ 14 linetool.h \
15 newpagedialog.h \ 15 newpagedialog.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 \
22 drawpad.cpp \ 23 drawpad.cpp \
23 drawpadcanvas.cpp \ 24 drawpadcanvas.cpp \
24 ellipsetool.cpp \ 25 ellipsetool.cpp \
25 erasetool.cpp \ 26 erasetool.cpp \
26 exportdialog.cpp \ 27 exportdialog.cpp \
27 filltool.cpp \ 28 filltool.cpp \
28 filledellipsetool.cpp \ 29 filledellipsetool.cpp \
29 filledrectangletool.cpp \ 30 filledrectangletool.cpp \
30 importdialog.cpp \ 31 importdialog.cpp \
31 linetool.cpp \ 32 linetool.cpp \
32 main.cpp \ 33 main.cpp \
33 newpagedialog.cpp \ 34 newpagedialog.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
40 DEPENDPATH+= $(OPIEDIR)/include 42 DEPENDPATH+= $(OPIEDIR)/include
41 LIBS += -lqpe 43 LIBS += -lqpe
42 DESTDIR = $(OPIEDIR)/bin 44 DESTDIR = $(OPIEDIR)/bin
43 TARGET = drawpad 45 TARGET = drawpad
44 46
45TRANSLATIONS = ../../i18n/pt_BR/drawpad.ts 47TRANSLATIONS = ../../i18n/pt_BR/drawpad.ts
46TRANSLATIONS += ../../i18n/de/drawpad.ts 48TRANSLATIONS += ../../i18n/de/drawpad.ts
47TRANSLATIONS += ../../i18n/en/drawpad.ts 49TRANSLATIONS += ../../i18n/en/drawpad.ts
48TRANSLATIONS += ../../i18n/hu/drawpad.ts 50TRANSLATIONS += ../../i18n/hu/drawpad.ts
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
@@ -319,24 +319,40 @@ QList<QPixmap> DrawPadCanvas::pages()
319} 319}
320 320
321uint DrawPadCanvas::pagePosition() 321uint DrawPadCanvas::pagePosition()
322{ 322{
323 return (m_pages.at() + 1); 323 return (m_pages.at() + 1);
324} 324}
325 325
326uint DrawPadCanvas::pageCount() 326uint DrawPadCanvas::pageCount()
327{ 327{
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?"),
334 QMessageBox::Information, QMessageBox::Yes, 350 QMessageBox::Information, QMessageBox::Yes,
335 QMessageBox::No | QMessageBox::Escape | QMessageBox::Default, 351 QMessageBox::No | QMessageBox::Escape | QMessageBox::Default,
336 QMessageBox::NoButton, this); 352 QMessageBox::NoButton, this);
337 353
338 if (messageBox.exec() == QMessageBox::Yes) { 354 if (messageBox.exec() == QMessageBox::Yes) {
339 m_pages.clear(); 355 m_pages.clear();
340 356
341 m_pages.append(new QPixmap(contentsRect().size())); 357 m_pages.append(new QPixmap(contentsRect().size()));
342 m_pages.current()->fill(Qt::white); 358 m_pages.current()->fill(Qt::white);
@@ -504,37 +520,24 @@ void DrawPadCanvas::goLastPage()
504 emit pagesChanged(); 520 emit pagesChanged();
505 emit pageBackupsChanged(); 521 emit pageBackupsChanged();
506} 522}
507 523
508void DrawPadCanvas::contentsMousePressEvent(QMouseEvent* e) 524void DrawPadCanvas::contentsMousePressEvent(QMouseEvent* e)
509{ 525{
510 m_pDrawPad->tool()->mousePressEvent(e); 526 m_pDrawPad->tool()->mousePressEvent(e);
511} 527}
512 528
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)
532{ 535{
533 m_pDrawPad->tool()->mouseMoveEvent(e); 536 m_pDrawPad->tool()->mouseMoveEvent(e);
534} 537}
535 538
536void DrawPadCanvas::drawContents(QPainter* p, int cx, int cy, int cw, int ch) 539void DrawPadCanvas::drawContents(QPainter* p, int cx, int cy, int cw, int ch)
537{ 540{
538 QRect clipRect(cx, cy, cw, ch); 541 QRect clipRect(cx, cy, cw, ch);
539 542
540 p->drawPixmap(clipRect.topLeft(), *(m_pages.current()), clipRect); 543 p->drawPixmap(clipRect.topLeft(), *(m_pages.current()), clipRect);
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
@@ -39,24 +39,26 @@ public:
39 void exportPage(uint fromPage, uint toPage, const QString& name, const QString& format); 39 void exportPage(uint fromPage, uint toPage, const QString& name, const QString& format);
40 40
41 bool undoEnabled(); 41 bool undoEnabled();
42 bool redoEnabled(); 42 bool redoEnabled();
43 bool goPreviousPageEnabled(); 43 bool goPreviousPageEnabled();
44 bool goNextPageEnabled(); 44 bool goNextPageEnabled();
45 45
46 QPixmap* currentPage(); 46 QPixmap* currentPage();
47 QList<QPixmap> pages(); 47 QList<QPixmap> pages();
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();
54 void clearPage(); 56 void clearPage();
55 void deletePage(); 57 void deletePage();
56 58
57 void undo(); 59 void undo();
58 void redo(); 60 void redo();
59 61
60 void goFirstPage(); 62 void goFirstPage();
61 void goPreviousPage(); 63 void goPreviousPage();
62 void goNextPage(); 64 void goNextPage();
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
@@ -32,24 +32,26 @@ EraseTool::~EraseTool()
32 32
33void EraseTool::mousePressEvent(QMouseEvent* e) 33void EraseTool::mousePressEvent(QMouseEvent* e)
34{ 34{
35 m_mousePressed = true; 35 m_mousePressed = true;
36 m_polyline[2] = m_polyline[1] = m_polyline[0] = e->pos(); 36 m_polyline[2] = m_polyline[1] = m_polyline[0] = e->pos();
37} 37}
38 38
39void EraseTool::mouseReleaseEvent(QMouseEvent* e) 39void EraseTool::mouseReleaseEvent(QMouseEvent* e)
40{ 40{
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)
47{ 49{
48 if (m_mousePressed) { 50 if (m_mousePressed) {
49 QPainter painter; 51 QPainter painter;
50 QPen pen(Qt::white, m_pDrawPad->pen().width()); 52 QPen pen(Qt::white, m_pDrawPad->pen().width());
51 painter.begin(m_pDrawPadCanvas->currentPage()); 53 painter.begin(m_pDrawPadCanvas->currentPage());
52 painter.setPen(pen); 54 painter.setPen(pen);
53 m_polyline[2] = m_polyline[1]; 55 m_polyline[2] = m_polyline[1];
54 m_polyline[1] = m_polyline[0]; 56 m_polyline[1] = m_polyline[0];
55 m_polyline[0] = e->pos(); 57 m_polyline[0] = e->pos();
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
@@ -33,24 +33,26 @@ void FillTool::mousePressEvent(QMouseEvent* e)
33 int x = e->x(); 33 int x = e->x();
34 int y = e->y(); 34 int y = e->y();
35 35
36 m_image = m_pDrawPadCanvas->currentPage()->convertToImage(); 36 m_image = m_pDrawPadCanvas->currentPage()->convertToImage();
37 m_fillRgb = m_pDrawPad->brush().color().rgb(); 37 m_fillRgb = m_pDrawPad->brush().color().rgb();
38 m_oldRgb = m_image.pixel(x, y); 38 m_oldRgb = m_image.pixel(x, y);
39 39
40 if (m_oldRgb != m_fillRgb) { 40 if (m_oldRgb != m_fillRgb) {
41 fillLine(x, y); 41 fillLine(x, y);
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
48void FillTool::mouseReleaseEvent(QMouseEvent* e) 50void FillTool::mouseReleaseEvent(QMouseEvent* e)
49{ 51{
50 Q_UNUSED(e) 52 Q_UNUSED(e)
51} 53}
52 54
53void FillTool::mouseMoveEvent(QMouseEvent* e) 55void FillTool::mouseMoveEvent(QMouseEvent* e)
54{ 56{
55 Q_UNUSED(e) 57 Q_UNUSED(e)
56} 58}
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
@@ -32,24 +32,26 @@ PointTool::~PointTool()
32 32
33void PointTool::mousePressEvent(QMouseEvent* e) 33void PointTool::mousePressEvent(QMouseEvent* e)
34{ 34{
35 m_mousePressed = true; 35 m_mousePressed = true;
36 m_polyline[2] = m_polyline[1] = m_polyline[0] = e->pos(); 36 m_polyline[2] = m_polyline[1] = m_polyline[0] = e->pos();
37} 37}
38 38
39void PointTool::mouseReleaseEvent(QMouseEvent* e) 39void PointTool::mouseReleaseEvent(QMouseEvent* e)
40{ 40{
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)
47{ 49{
48 if (m_mousePressed) { 50 if (m_mousePressed) {
49 QPainter painter; 51 QPainter painter;
50 painter.begin(m_pDrawPadCanvas->currentPage()); 52 painter.begin(m_pDrawPadCanvas->currentPage());
51 painter.setPen(m_pDrawPad->pen()); 53 painter.setPen(m_pDrawPad->pen());
52 m_polyline[2] = m_polyline[1]; 54 m_polyline[2] = m_polyline[1];
53 m_polyline[1] = m_polyline[0]; 55 m_polyline[1] = m_polyline[0];
54 m_polyline[0] = e->pos(); 56 m_polyline[0] = e->pos();
55 painter.drawPolyline(m_polyline); 57 painter.drawPolyline(m_polyline);
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
@@ -52,24 +52,26 @@ void ShapeTool::mouseReleaseEvent(QMouseEvent* e)
52 r.setRight(r.right() + m_pDrawPad->pen().width()); 52 r.setRight(r.right() + m_pDrawPad->pen().width());
53 r.setBottom(r.bottom() + m_pDrawPad->pen().width()); 53 r.setBottom(r.bottom() + m_pDrawPad->pen().width());
54 54
55 QRect viewportRect(m_pDrawPadCanvas->contentsToViewport(r.topLeft()), 55 QRect viewportRect(m_pDrawPadCanvas->contentsToViewport(r.topLeft()),
56 m_pDrawPadCanvas->contentsToViewport(r.bottomRight())); 56 m_pDrawPadCanvas->contentsToViewport(r.bottomRight()));
57 57
58 bitBlt(m_pDrawPadCanvas->viewport(), viewportRect.x(), viewportRect.y(), 58 bitBlt(m_pDrawPadCanvas->viewport(), viewportRect.x(), viewportRect.y(),
59 m_pDrawPadCanvas->currentPage(), r.x(), r.y(), r.width(), r.height()); 59 m_pDrawPadCanvas->currentPage(), r.x(), r.y(), r.width(), r.height());
60 60
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)
67{ 69{
68 if (m_mousePressed) { 70 if (m_mousePressed) {
69 m_polyline[0] = e->pos(); 71 m_polyline[0] = e->pos();
70 QPainter painter; 72 QPainter painter;
71 painter.begin(m_pDrawPadCanvas->currentPage()); 73 painter.begin(m_pDrawPadCanvas->currentPage());
72 drawTemporaryShape(painter); 74 drawTemporaryShape(painter);
73 painter.end(); 75 painter.end();
74 76
75 QRect r = m_polyline.boundingRect(); 77 QRect r = m_polyline.boundingRect();
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