26#include <ksharedptr.h>
29#include "kis_shared_ptr_vector.h"
30#include "kis_canvas_observer.h"
37class TDEActionCollection;
43class KisButtonPressEvent;
44class KisButtonReleaseEvent;
45class KisDoubleClickEvent;
47class KisCanvasPainter;
59const TQ_UINT8 NUMBER_OF_TOOLTYPES = 6;
66 KisTool( const TQString & name);
71 virtual void paint(KisCanvasPainter& gc) = 0;
72 virtual void paint(KisCanvasPainter& gc, const TQRect& rc) = 0;
83 virtual void setup(TDEActionCollection *collection) = 0;
85 virtual void buttonPress(KisButtonPressEvent *e) = 0;
86 virtual void move(KisMoveEvent *e) = 0;
87 virtual void buttonRelease(KisButtonReleaseEvent *e) = 0;
88 virtual void doubleClick(KisDoubleClickEvent *e) = 0;
89 virtual void keyPress(TQKeyEvent *e) = 0;
90 virtual void keyRelease(TQKeyEvent *e) = 0;
92 virtual TQCursor cursor() = 0;
93 virtual void setCursor( const TQCursor& cursor) = 0;
98 virtual TQWidget* createOptionWidget(TQWidget* parent);
102 virtual TQWidget* optionWidget();
103 TDERadioAction *action() const { return m_action; }
109 virtual bool wantsAutoScroll() const { return true; }
112 virtual TQ_UINT32 priority() { return 0; }
113 virtual enumToolType toolType() { return TOOL_FREEHAND; }
114 virtual TQString icon() { return m_action->icon(); }
115 virtual TQString quickHelp() const { return ""; }
121 virtual void activate() = 0;
127 virtual void deactivate() = 0;
130 KisTool( const KisTool&);
131 KisTool& operator=( const KisTool&);
134 TDERadioAction *m_action;
138 class KisToolPrivate;
This is the base interface plugins use to implement the Observer design pattern.
|