chalk

kis_view.h
1/*
2 * Copyright (c) 1999 Matthias Elter <me@kde.org>
3 * 1999 Michael Koch <koch@kde.org>
4 * 1999 Carsten Pfeiffer <pfeiffer@kde.org>
5 * 2002 Patrick Julien <freak@codepimps.org>
6 * 2004 Clarence Dang <dang@kde.org>
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program 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
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21 */
22
23#ifndef KIS_VIEW_H_
24#define KIS_VIEW_H_
25
26#ifdef HAVE_CONFIG_H
27#include <config.h>
28#endif
29
30#include <list>
31
32#include <tqdatetime.h>
33#include <tqpixmap.h>
34#include <tqstringlist.h>
35#include <tqtimer.h>
36
37#include <ksqueezedtextlabel.h>
38#include <kdebug.h>
39#include <kxmlguibuilder.h>
40#include <kxmlguiclient.h>
41#include <KoView.h>
42
43#include "kis_canvas_controller.h"
44#include "kis_canvas_subject.h"
45#include "kis_global.h"
46// #include "kis_debug_areas.h"
47#include "kis_types.h"
48#include "kis_profile.h"
49#include "kis_opengl_image_context.h"
50#include "kis_id.h"
51#include "koffice_export.h"
52#include "kis_color.h"
53#include "kis_input_device.h"
54
55class TQButton;
56class TQLabel;
57class TQPaintEvent;
58class TQScrollBar;
59class TQWidget;
60class TQPopup;
61class TQPopupMenu;
62
63class DCOPObject;
64class TDEAction;
65class TDEActionMenu;
66class KPrinter;
67class TDEToggleAction;
68class TDEToolBar;
69
70class KoPartSelectAction;
71class KoDocumentEntry;
72class KoIconItem;
73class KoTabBar;
74class KoPaletteManager;
75class KoGrayWidget;
76class KoHSVWidget;
77class KoRGBWidget;
78
79class KisBirdEyeBox;
80class KisBrush;
81class KisButtonPressEvent;
82class KisButtonReleaseEvent;
83class KisCanvas;
85class KisCompositeOp;
86class KisControlFrame;
87class KisDoc;
88class KisDoubleClickEvent;
90class KisFilterStrategy;
91class KisGradient;
92class KisGridManager;
93class KisPerspectiveGridManager;
94class KisLabelProgress;
95class KisLayerBox;
96class KisMoveEvent;
98class KisPattern;
99class KisPoint;
100class KisRect;
101class KisResource;
103class KisRuler;
105class KoToolBox;
106class KisToolControllerInterface;
107class KisToolManager;
108class KisUndoAdapter;
110class KisPartLayerHandler;
111class KisPaintOpSettings;
112
113class KRITA_EXPORT KisView
114 : public KoView,
115 public KisCanvasSubject,
116 public KXMLGUIBuilder,
117 private KisCanvasController
118{
119
120 TQ_OBJECT
121
122
123 typedef KoView super;
124
125 typedef std::list<KisCanvasObserver*> vKisCanvasObserver;
126 typedef vKisCanvasObserver::iterator vKisCanvasObserver_it;
127 typedef vKisCanvasObserver::const_iterator vKisCanvasObserver_cit;
128
129public:
130 KisView(KisDoc *doc, KisUndoAdapter *adapter, TQWidget *parent = 0, const char *name = 0);
131 virtual ~KisView();
132
133public: // KXMLGUIBuilder implementation
134
135 virtual TQWidget *createContainer( TQWidget *parent, int index, const TQDomElement &element, int &id );
136 virtual void removeContainer( TQWidget *container, TQWidget *parent, TQDomElement &element, int id );
137
138public: // KoView implementation
139 virtual bool eventFilter(TQObject *o, TQEvent *e);
140
141 virtual DCOPObject* dcopObject();
142
143 virtual void print(KPrinter &printer);
144 virtual void setupPrinter(KPrinter &printer);
145
146 virtual void updateReadWrite(bool readwrite);
147 virtual void guiActivateEvent(KParts::GUIActivateEvent *event);
148
149 virtual int leftBorder() const;
150 virtual int rightBorder() const;
151 virtual int topBorder() const;
152 virtual int bottomBorder() const;
153
154 TQ_INT32 docWidth() const;
155 TQ_INT32 docHeight() const;
156
157 void updateStatusBarSelectionLabel();
158
159 virtual TQPoint applyViewTransformations(const TQPoint& p) const;
160 virtual TQPoint reverseViewTransformations( const TQPoint& p) const;
161 virtual void canvasAddChild(KoViewChild *child);
162
163signals:
164
165 void brushChanged(KisBrush * brush);
166 void gradientChanged(KisGradient * gradient);
167 void patternChanged(KisPattern * pattern);
168 void paintopChanged(KisID paintop, const KisPaintOpSettings *paintopSettings);
173 void currentColorSpaceChanged(KisColorSpace* cs);
174 void cursorPosition(TQ_INT32 xpos, TQ_INT32 ypos);
175
176 void sigFGQColorChanged(const TQColor &);
177 void sigBGQColorChanged(const TQColor &);
178
179 void sigInputDeviceChanged(const KisInputDevice& inputDevice);
180
181 /*
182 * Emitted whenever the zoom or scroll values change.
183 */
184 void viewTransformationsChanged();
185
186public slots:
187
188 void slotSetFGColor(const KisColor& c);
189 void slotSetBGColor(const KisColor& c);
190
191 void rotateLayer180();
192 void rotateLayerLeft90();
193 void rotateLayerRight90();
194 void mirrorLayerX();
195 void mirrorLayerY();
196 void scaleLayer(double sx, double sy, KisFilterStrategy *filterStrategy);
197 void rotateLayer(double radians);
198 void shearLayer(double angleX, double angleY);
199
200 void slotCreateMask();
201 void slotMaskFromSelection();
202 void slotMaskToSelection();
203 void slotApplyMask();
204 void slotRemoveMask();
205 void slotEditMask();
206 void slotShowMask();
207
208 void brushActivated(KisResource *brush);
209 void patternActivated(KisResource *pattern);
210 void gradientActivated(KisResource *gradient);
211 void paintopActivated(const KisID & paintop, const KisPaintOpSettings *paintopSettings);
212
213
214public:
215 virtual void mouseMoveEvent(TQMouseEvent *e);
216
217 void resizeCurrentImage(TQ_INT32 w, TQ_INT32 h, bool cropLayers = false);
218 void scaleCurrentImage(double sx, double sy, KisFilterStrategy *filterStrategy);
219 void rotateCurrentImage(double radians);
220 void shearCurrentImage(double angleX, double angleY);
221
222 void insertPart(const TQRect& viewRect, const KoDocumentEntry& entry,
223 KisGroupLayerSP parent, KisLayerSP above);
224
233 TQ_INT32 importImage(const KURL& url = KURL());
234protected:
235
236 virtual void resizeEvent(TQResizeEvent*); // From TQWidget
237 virtual void styleChange(TQStyle& oldStyle); // From TQWidget
238 virtual void paletteChange(const TQPalette& oldPalette); // From TQWidget
239 virtual void showEvent(TQShowEvent *);
240
241protected slots:
242 virtual void slotChildActivated(bool a); // from KoView
243
244// -------------------------------------------------------------------------//
245// KisCanvasSubject implementation
246// -------------------------------------------------------------------------//
247public:
248
249 KisCanvasSubject * canvasSubject() { return this; };
250
251private:
252
253 virtual KisImageSP currentImg() const;
254
255 virtual void attach(KisCanvasObserver *observer);
256 virtual void detach(KisCanvasObserver *observer);
257 virtual void notifyObservers();
258
259 virtual KisColor bgColor() const;
260 virtual void setBGColor(const KisColor& c);
261
262 virtual KisColor fgColor() const;
263 virtual void setFGColor(const KisColor& c);
264
265 float HDRExposure() const;
266 void setHDRExposure(float exposure);
267
268 virtual KisBrush *currentBrush() const;
269 virtual KisPattern *currentPattern() const;
270 virtual KisGradient *currentGradient() const;
271 virtual KisID currentPaintop() const;
272 virtual const KisPaintOpSettings *currentPaintopSettings() const;
273
274 virtual double zoomFactor() const;
275
276 virtual KisUndoAdapter *undoAdapter() const;
277
278 virtual KisCanvasController *canvasController() const;
279 virtual KisToolControllerInterface *toolController() const;
280
281 virtual KisProgressDisplayInterface *progressDisplay() const;
282
283 virtual KisDoc * document() const;
284
285 inline KisGridManager * gridManager() { return m_gridManager; }
286 inline KisPerspectiveGridManager* perspectiveGridManager() { return m_perspectiveGridManager; }
287
288 inline KisSelectionManager * selectionManager() { return m_selectionManager; }
289
290 KoPaletteManager * paletteManager();
291
292 KisProfile * monitorProfile();
293
294
295// -------------------------------------------------------------------------//
296// KisCanvasController implementation
297// -------------------------------------------------------------------------//
298
299public:
300
301 KisCanvasController * getCanvasController() { return this; };
302
303
304private slots:
305 virtual void updateCanvas();
306
307 void updateStatusBarZoomLabel();
308 void updateStatusBarProfileLabel();
309
310private:
311 virtual KisCanvas *kiscanvas() const;
312
313 virtual TQ_INT32 horzValue() const;
314 virtual TQ_INT32 vertValue() const;
315
316 virtual void scrollTo(TQ_INT32 x, TQ_INT32 y);
317
318 virtual void updateCanvas(TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h);
319 virtual void updateCanvas(const TQRect& imageRect);
320
321 virtual void zoomIn();
322 virtual void zoomIn(TQ_INT32 x, TQ_INT32 y);
323
324 virtual void zoomOut();
325 virtual void zoomOut(TQ_INT32 x, TQ_INT32 y);
326
327 virtual void zoomTo(TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h);
328 virtual void zoomTo(const TQRect& r);
329 virtual void zoomTo(const KisRect& r);
330 virtual void zoomAroundPoint(double x, double y, double zf);
331
332 virtual TQPoint viewToWindow(const TQPoint& pt);
333 virtual TQPoint viewToWindow(const TQPoint& pt) const;
334 virtual KisPoint viewToWindow(const KisPoint& pt);
335 virtual TQRect viewToWindow(const TQRect& rc);
336 virtual KisRect viewToWindow(const KisRect& rc);
337 virtual void viewToWindow(TQ_INT32 *x, TQ_INT32 *y);
338
339 virtual TQPoint windowToView(const TQPoint& pt);
340 virtual TQPoint windowToView(const TQPoint& pt) const;
341 virtual KisPoint windowToView(const KisPoint& pt);
342 virtual TQRect windowToView(const TQRect& rc);
343 virtual KisRect windowToView(const KisRect& rc);
344 virtual void windowToView(TQ_INT32 *x, TQ_INT32 *y);
345
346 virtual TQCursor setCanvasCursor(const TQCursor & cursor);
347
348 void setInputDevice(KisInputDevice inputDevice);
349 KisInputDevice currentInputDevice() const;
350
351// -------------------------------------------------------------------------//
352// KisView internals
353// -------------------------------------------------------------------------//
354
355private:
356
357 void connectCurrentImg();
358 void disconnectCurrentImg();
359// void eraseGuides();
360// void paintGuides();
361// void updateGuides();
362// void viewGuideLines();
363
364 void imgUpdateGUI();
365
366 void layerUpdateGUI(bool enable);
367 void createLayerBox();
368 void createDockers();
369
370 void paintToolOverlay(const TQRegion& region);
371
372 void paintTQPaintDeviceView(const TQRegion& canvasRegion);
373 void paintOpenGLView(const TQRect& canvasRect);
374
375 void updateTQPaintDeviceCanvas(const TQRect& imageRect);
376 void updateOpenGLCanvas(const TQRect& imageRect);
377
381 void refreshKisCanvas();
382
383 void selectionDisplayToggled(bool displaySelection);
384
385 bool activeLayerHasSelection();
386
390 void resetMonitorProfile();
391
392 void setupActions();
393 void setupCanvas();
394 void setupRulers();
395 void setupScrollBars();
396 void setupStatusBar();
397
398
399 KisFilterManager * filterManager() { return m_filterManager; }
400 void setCurrentImage(KisImageSP image);
401
405 double nextZoomInLevel() const;
406
410 double nextZoomOutLevel() const;
411
415 double nextZoomOutLevel(double zoomLevel) const;
416
420 double fitToCanvasZoomLevel() const;
421
425 void setInitialZoomLevel();
426
427 void startInitialZoomTimerIfReady();
428
429private slots:
430 void layersUpdated(); // Used in the channel separation to notify the view that we have added a few layers.
431 void maskUpdated(); // To update the enabled or disabled status of the mask entries
432
433 void slotSetFGQColor(const TQColor & c);
434 void slotSetBGQColor(const TQColor & c);
435
436 void imgUpdated(TQRect rc);
437 void slotOpenGLImageUpdated(TQRect rc);
438
439 void imgResizeToActiveLayer();
440
441 void canvasGotMoveEvent(KisMoveEvent *e);
442 void canvasGotButtonPressEvent(KisButtonPressEvent *e);
443 void canvasGotButtonReleaseEvent(KisButtonReleaseEvent *e);
444 void canvasGotDoubleClickEvent(KisDoubleClickEvent *e);
445 void canvasGotPaintEvent(TQPaintEvent *e);
446 void canvasGotEnterEvent(TQEvent *e);
447 void canvasGotLeaveEvent(TQEvent *e);
448 void canvasGotMouseWheelEvent(TQWheelEvent *e);
449 void canvasGotKeyPressEvent(TQKeyEvent*);
450 void canvasGotKeyReleaseEvent(TQKeyEvent*);
451 void canvasGotDragEnterEvent(TQDragEnterEvent*);
452 void canvasGotDropEvent(TQDropEvent*);
453
454 void reconnectAfterPartInsert();
455
456 TQPoint mapToScreen(const TQPoint& pt);
457 void slotImageProperties();
458
459 void layerCompositeOp(const KisCompositeOp& compositeOp);
460 void layerOpacity(int opacity, bool dontundo);
461 void layerOpacityFinishedChanging(int previous, int opacity);
462
463 void layerToggleVisible();
464 void layerToggleLocked();
465 void actLayerVisChanged(int show);
466 void layerProperties();
467 void showLayerProperties(KisLayerSP layer);
468 void layerAdd();
469 void addLayer(KisGroupLayerSP parent, KisLayerSP above);
470 void addGroupLayer(KisGroupLayerSP parent, KisLayerSP above);
471 void addPartLayer();
472 void addPartLayer(KisGroupLayerSP parent, KisLayerSP above, const KoDocumentEntry& entry);
473 void addAdjustmentLayer();
474 void addAdjustmentLayer(KisGroupLayerSP parent, KisLayerSP above);
475 void addAdjustmentLayer(KisGroupLayerSP parent, KisLayerSP above, const TQString & name, KisFilterConfiguration * filter, KisSelectionSP selection = 0);
476 void layerRemove();
477 void layerDuplicate();
478 void layerRaise();
479 void layerLower();
480 void layerFront();
481 void layerBack();
482 void flattenImage();
483 void mergeLayer();
484 void saveLayerAsImage();
485
486 void slotUpdateFullScreen(bool toggle);
487 void showRuler();
488
489 void slotZoomIn();
490 void slotZoomOut();
491 void slotActualPixels();
492 void slotActualSize();
493 void slotFitToCanvas();
494
495 void slotImageSizeChanged(TQ_INT32 w, TQ_INT32 h);
496
497 void scrollH(int value);
498 void scrollV(int value);
499
500 void slotInsertImageAsLayer();
501 void profileChanged(KisProfile * profile);
502
503 void slotAddPalette();
504 void slotEditPalette();
505
506 void preferences();
507
508 void slotAutoScroll(const TQPoint &p);
509
510 void handlePartLayerAdded(KisLayerSP layer);
511
513 void slotLoadingFinished();
514
515 void slotInitialZoomTimeout();
516
517private:
518
519 bool m_panning;
520
521 KisTool * m_oldTool;
522
523 KisDoc *m_doc;
524 KisCanvas *m_canvas;
525 KisPartLayerHandler* m_partHandler;
526
527 KisGridManager * m_gridManager;
528 KisPerspectiveGridManager * m_perspectiveGridManager;
529 KisSelectionManager * m_selectionManager;
530 KisFilterManager * m_filterManager;
531 KoPaletteManager * m_paletteManager;
532 KisToolManager * m_toolManager;
533 bool m_actLayerVis;
534
535 // Fringe benefits
536 KisRuler *m_hRuler;
537 KisRuler *m_vRuler;
538 TQ_INT32 m_rulerThickness;
539 TQ_INT32 m_vScrollBarExtent;
540 TQ_INT32 m_hScrollBarExtent;
541
542 // Actions
543 TDEAction *m_imgFlatten;
544 TDEAction *m_imgMergeLayer;
545 TDEAction *m_imgRename;
546 TDEAction *m_imgResizeToLayer;
547 TDEAction *m_imgScan;
548
549 KoPartSelectAction * m_actionPartLayer;
550 TDEAction * m_actionAdjustmentLayer;
551 TDEAction *m_layerAdd;
552 TDEAction *m_layerBottom;
553 TDEAction *m_layerDup;
554 TDEToggleAction *m_layerHide;
555 TDEAction *m_layerLower;
556 TDEAction *m_layerProperties;
557 TDEAction *m_layerRaise;
558 TDEAction *m_layerRm;
559 TDEAction *m_layerSaveAs;
560 TDEAction *m_layerTop;
561
562 TDEAction *m_createMask;
563 TDEAction *m_maskFromSelection;
564 TDEAction *m_maskToSelection;
565 TDEAction *m_applyMask;
566 TDEAction *m_removeMask;
567 TDEToggleAction *m_editMask;
568 TDEToggleAction *m_showMask;
569
570 TDEAction *m_zoomIn;
571 TDEAction *m_zoomOut;
572 TDEAction *m_actualPixels;
573 TDEAction *m_actualSize;
574 TDEAction *m_fitToCanvas;
575
576 TDEAction *m_fullScreen;
577 TDEAction *m_imgProperties;
578
579 TDEToggleAction *m_RulerAction;
580 TDEToggleAction *m_guideAction;
581
582 DCOPObject *m_dcop;
583
584 // Widgets
585 TQScrollBar *m_hScroll; // XXX: the sizing of the scrollthumbs
586 TQScrollBar *m_vScroll; // is not right yet.
587 int m_scrollX;
588 int m_scrollY;
589 int m_canvasXOffset;
590 int m_canvasYOffset;
591
592 bool m_paintViewEnabled;
593 bool m_guiActivateEventReceived;
594 bool m_showEventReceived;
595 bool m_imageLoaded;
596
597 TQTimer m_initialZoomTimer;
598
599
600// KisGuideSP m_currentGuide;
601// TQPoint m_lastGuidePoint;
602 KisUndoAdapter *m_adapter;
603 vKisCanvasObserver m_observers;
604 TQLabel *m_statusBarZoomLabel;
605 KSqueezedTextLabel *m_statusBarSelectionLabel;
606 KSqueezedTextLabel *m_statusBarProfileLabel;
607 KisLabelProgress *m_progress;
608
609
610 KisLayerBox *m_layerBox;
611 KoToolBox * m_toolBox;
612 KisControlFrame * m_brushesAndStuffToolBar;
613
614 // Current colours, brushes, patterns etc.
615
616 KisColor m_fg;
617 KisColor m_bg;
618
619 KisBrush *m_brush;
620 KisPattern *m_pattern;
621 KisGradient *m_gradient;
622
623 KisID m_paintop;
624 const KisPaintOpSettings *m_paintopSettings;
625
626 TQTime m_tabletEventTimer;
627 TQTabletEvent::TabletDevice m_lastTabletEventDevice;
628
629 TQPixmap m_canvasPixmap;
630 bool m_toolIsPainting;
631
632#ifdef HAVE_GL
633 // OpenGL context for the current image, containing textures
634 // shared between multiple views.
635 KisOpenGLImageContextSP m_OpenGLImageContext;
636#endif
637
638 // Monitorprofile for this view
639 KisProfile * m_monitorProfile;
640
641 float m_HDRExposure;
642
643 // Currently active input device (mouse, stylus, eraser...)
644 KisInputDevice m_inputDevice;
645
646 KisBirdEyeBox * m_birdEyeBox;
647 KoHSVWidget *m_hsvwidget;
648 KoRGBWidget *m_rgbwidget;
649 KoGrayWidget *m_graywidget;
650 KisPaletteWidget *m_palettewidget;
651 KisID m_currentColorChooserDisplay;
652
653private:
654 KisImageSP m_image;
655
656protected:
657
658 friend class KisSelectionManager;
659 friend class KisFilterManager;
660 friend class KisGridManager;
661 friend class KisPerspectiveGridManager;
662};
663
664#endif // KIS_VIEW_H_
Interface for classes that implement a canvas; i.e., a widget where KisImages are painted onto.
virtual TQPoint viewToWindow(const TQPoint &pt)=0
Conversion functions from view coordinates to image coordinates.
virtual TQ_INT32 vertValue() const =0
virtual TQPoint windowToView(const TQPoint &pt)=0
Conversion functions from image coordinates to view coordinates.
virtual TQCursor setCanvasCursor(const TQCursor &cursor)=0
Set the cursor shown when the pointer is over the canvas widget to the specified cursor.
virtual void zoomOut()=0
Decrease the zoomlevel one step.
virtual KisInputDevice currentInputDevice() const =0
virtual void zoomIn()=0
Increase the zoomlevel one step.
virtual void updateCanvas()=0
Tell all of the canvas to repaint itself.
virtual void setInputDevice(KisInputDevice inputDevice)=0
Set the active input device to the specified input device, This could be a mouse, a stylus,...
virtual void zoomAroundPoint(double x, double y, double zf)=0
To centre the view on the given point with the given zoom factor.
virtual void zoomTo(TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h)=0
Make the rect defined by x, y, w and h visible, zooming in or out as necessary.
virtual void scrollTo(TQ_INT32 x, TQ_INT32 y)=0
Sets the horizontal and vertical scrollbars to the specified values.
virtual TQ_INT32 horzValue() const =0
virtual KisCanvas * kiscanvas() const =0
This is the base interface plugins use to implement the Observer design pattern.
KisCanvasSubject is part of the Observer pattern.
virtual double zoomFactor() const =0
virtual float HDRExposure() const =0
virtual void setHDRExposure(float exposure)=0
Set the exposure value.
virtual void setFGColor(const KisColor &c)=0
Set the foreground or painting color.
virtual KisUndoAdapter * undoAdapter() const =0
retrieve the undo adapater – there is one undo adapter per document, and it collects all transactions
virtual KisDoc * document() const =0
XXX: Remove this method.
virtual KisPattern * currentPattern() const =0
virtual const KisPaintOpSettings * currentPaintopSettings() const =0
virtual KisToolControllerInterface * toolController() const =0
XXX: Remove this method.
virtual KisGradient * currentGradient() const =0
virtual KisProgressDisplayInterface * progressDisplay() const =0
XXX: Remove this method.
virtual void setBGColor(const KisColor &c)=0
Set the background color.
virtual KisColor fgColor() const =0
virtual KisPerspectiveGridManager * perspectiveGridManager()=0
Get the perspective grid manager.
virtual KoPaletteManager * paletteManager()=0
XXX: Remove this method.
virtual KisCanvasController * canvasController() const =0
virtual void detach(KisCanvasObserver *observer)=0
From now on, the specified observer will no longer be informed of changes.
virtual KisColor bgColor() const =0
virtual KisProfile * monitorProfile()=0
Get the profile that this view uses to display itself on he monitor.
virtual KisImageSP currentImg() const =0
virtual KisBrush * currentBrush() const =0
virtual KisSelectionManager * selectionManager()=0
XXX: Remove this method.
virtual void attach(KisCanvasObserver *observer)=0
From now on, the observer will be notified of changes in brush, foreground color, background color,...
virtual void notifyObservers()=0
Calling this method will notify all observers.
virtual KisID currentPaintop() const =0
Control Frame - status display with access to color selector, brushes, patterns, and preview.
A KisFilterConfiguration is the serializable representation of the filter parameters.
Create all the filter actions for the specified view and implement re-apply filter.
A color palette in table form.
A double-based point class that can return it's coordinates approximated to integers.
Definition kis_point.h:28
A double-based rect class that can return a TQRect that encloses the KisRect.
Definition kis_rect.h:29
A resource mediator manages access to resources like gradients.
The KisResource class provides a representation of Chalk image resources.
The selection manager is responsible selections and the clipboard.
This class manages the activation and deactivation of tools for each input device.