#ifndef tool_h #define tool_h #include #include #include "textedit.h" #include "msg.h" class View; class Tool : public RadioButton { public: Tool( View*, ButtonState*, const char* label ); virtual void Setup(Event&) { } virtual boolean Manipulating(Event&) { return false; } virtual void DoIt(Event&) { } protected: Graphic* Select(Event&); View* view; }; class PenTool : public Tool { public: PenTool(View*, ButtonState*, ButtonState* size); virtual void Setup(Event&); virtual boolean Manipulating(Event&); virtual void DoIt(Event&); virtual void Press(); void Send(Event&); private: ButtonState* penSize; Painter* painter; struct PenRecord pr; int s; }; class TextTool : public Tool { public: TextTool(View*, ButtonState*); virtual void Setup(Event&); virtual boolean Manipulating(Event&); virtual void DoIt(Event&); virtual void Press(); void Send(); void HandleKey(char); private: struct TextRecord tr; TextEdit *te; Coord x, y; int i; }; class EraserTool : public Tool { public: EraserTool(View*, ButtonState*, ButtonState* size); virtual void Setup(Event&); virtual boolean Manipulating(Event&); virtual void DoIt(Event&); virtual void Press(); void Send(Event&); private: ButtonState* eraserSize; struct EraserRecord er; int s; }; class CursorTool : public Tool { public: CursorTool(View*, ButtonState*); virtual void Setup(Event&); virtual boolean Manipulating(Event&); virtual void DoIt(Event&); virtual void Press(); void Send(Event&); private: struct CursorRecord cr; }; #endif