diff --git a/src/Tool/IntelliToolCircle.h b/src/Tool/IntelliToolCircle.h index 9d779e9..28e2fac 100644 --- a/src/Tool/IntelliToolCircle.h +++ b/src/Tool/IntelliToolCircle.h @@ -5,7 +5,7 @@ #include "QColor" #include "QPoint" /*! - * \brief The IntelliToolCircle class representing a tool to draw a circle. + * \brief The IntelliToolCircle class represents a tool to draw a circle. */ class IntelliToolCircle : public IntelliTool{ /*! @@ -30,8 +30,8 @@ class IntelliToolCircle : public IntelliTool{ int edgeWidth; public: /*! - * \brief A constructor setting the general Painting Area and colorPicker. And reading in the The inner alpha and edgeWIdth. - * \param Area - The general PaintingArea used by the project. + * \brief A constructor setting the general paintingArea and colorPicker. And reading in the inner alpha and edgeWidth. + * \param Area - The general paintingArea used by the project. * \param colorPicker - The general colorPicker used by the project. */ IntelliToolCircle(PaintingArea* Area, IntelliColorPicker* colorPicker); @@ -42,30 +42,30 @@ public: virtual ~IntelliToolCircle() override; /*! - * \brief A function managing the right click Pressed of a Mouse. Sets the middle point of the cricle. - * \param x - The x coordinate relative to the Active/Canvas Layer. - * \param y - The y coordinate relative to the Active/Canvas Layer. + * \brief A function managing the right click pressed of a mouse. Clearing the canvas layer. + * \param x - The x coordinate relative to the active/canvas layer. + * \param y - The y coordinate relative to the active/canvas layer. */ virtual void onMouseRightPressed(int x, int y) override; /*! - * \brief A function managing the right click Released of a Mouse. - * \param x - The x coordinate relative to the Active/Canvas Layer. - * \param y - The y coordinate relative to the Active/Canvas Layer. + * \brief A function managing the right click released of a mouse. + * \param x - The x coordinate relative to the active/canvas layer. + * \param y - The y coordinate relative to the active/canvas layer. */ virtual void onMouseRightReleased(int x, int y) override; /*! - * \brief A function managing the left click Pressed of a Mouse. Clearing the canvas layer. - * \param x - The x coordinate relative to the Active/Canvas Layer. - * \param y - The y coordinate relative to the Active/Canvas Layer. + * \brief A function managing the left click pressed of a mouse. Sets the middle point of the cricle. + * \param x - The x coordinate relative to the active/canvas layer. + * \param y - The y coordinate relative to the active/canvas layer. */ virtual void onMouseLeftPressed(int x, int y) override; /*! - * \brief A function managing the left click Released of a Mouse. - * \param x - The x coordinate relative to the Active/Canvas Layer. - * \param y - The y coordinate relative to the Active/Canvas Layer. + * \brief A function managing the left click released of a mouse. + * \param x - The x coordinate relative to the active/canvas layer. + * \param y - The y coordinate relative to the active/canvas layer. */ virtual void onMouseLeftReleased(int x, int y) override; @@ -77,8 +77,8 @@ public: /*! * \brief A function managing the mouse moved event. Draws a circle with radius of eulerian norm of mouse position and the middle point. - * \param x - The x coordinate of the new Mouse Position. - * \param y - The y coordinate of the new Mouse Position. + * \param x - The x coordinate of the new mouse position. + * \param y - The y coordinate of the new mouse position. */ virtual void onMouseMoved(int x, int y) override; }; diff --git a/src/Tool/IntelliToolCircle.h.autosave b/src/Tool/IntelliToolCircle.h.autosave new file mode 100644 index 0000000..3ed747c --- /dev/null +++ b/src/Tool/IntelliToolCircle.h.autosave @@ -0,0 +1,86 @@ +#ifndef INTELLITOOLCIRCLE_H +#define INTELLITOOLCIRCLE_H +#include "IntelliTool.h" + +#include "QColor" +#include "QPoint" +/*! + * \brief The IntelliToolCircle class represents a tool to draw a circle. + */ +class IntelliToolCircle : public IntelliTool{ + /*! + * \brief A function that implements a circle drawing algorithm. + * \param radius - The radius of the circle. + */ + void drawCyrcle(int radius); + + /*! + * \brief The center of the circle. + */ + QPoint Middle; + + /*! + * \brief The alpha value of the inner circle. + */ + int alphaInner; + + /*! + * \brief The width of the outer circle edge. + */ + int edgeWidth; +public: + /*! + * \brief A constructor setting the general paintingArea and colorPicker. And reading in the inner alpha and edgeWidth. + * \param Area - The general paintingArea used by the project. + * \param colorPicker - The general colorPicker used by the project. + */ + IntelliToolCircle(PaintingArea* Area, IntelliColorPicker* colorPicker); + + /*! + * \brief A Destructor. + */ + virtual ~IntelliToolCircle() override; + + /*! + * \brief A function managing the right click pressed of a mouse. Clearing the canvas layer. + * \param x - The x coordinate relative to the active/canvas layer. + * \param y - The y coordinate relative to the active/canvas layer. + */ + virtual void onMouseRightPressed(int x, int y) override; + + /*! + * \brief A function managing the right click released of a mouse. + * \param x - The x coordinate relative to the active/canvas layer. + * \param y - The y coordinate relative to the active/canvas layer. + */ + virtual void onMouseRightReleased(int x, int y) override; + + /*! + * \brief A function managing the left click pressed of a mouse. Sets the middle point of the cricle. + * \param x - The x coordinate relative to the active/canvas layer. + * \param y - The y coordinate relative to the active/canvas layer. + */ + virtual void onMouseLeftPressed(int x, int y) override; + + /*! + * \brief A function managing the left click released of a mouse. + * \param x - The x coordinate relative to the active/canvas layer. + * \param y - The y coordinate relative to the active/canvas layer. + */ + virtual void onMouseLeftReleased(int x, int y) override; + + /*! + * \brief A function managing the scroll event. Changing the edge Width relative to value. + * \param value - The absolute the scroll has changed. + */ + virtual void onWheelScrolled(int value) override; + + /*! + * \brief A function managing the mouse moved event. Draws a circle with radius of eulerian norm of mouse position and the middle point. + * \param x - The x coordinate of the new mouse position. + * \param y - The y coordinate of the new mouse position. + */ + virtual void onMouseMoved(int x, int y) override; +}; + +#endif // INTELLITOOLCIRCLE_H diff --git a/src/Tool/IntelliToolFloodFill.h b/src/Tool/IntelliToolFloodFill.h index 0aa298f..ff40817 100644 --- a/src/Tool/IntelliToolFloodFill.h +++ b/src/Tool/IntelliToolFloodFill.h @@ -4,19 +4,63 @@ #include "QColor" +/*! + * \brief The IntelliToolFloodFill class represents a tool to flood FIll a certian area. + */ class IntelliToolFloodFill : public IntelliTool{ public: + /*! + * \brief A constructor setting the general paintingArea and colorPicker. + * \param Area - The general paintingArea used by the project. + * \param colorPicker - The general colorPicker used by the project. + */ IntelliToolFloodFill(PaintingArea* Area, IntelliColorPicker* colorPicker); + + /*! + * \brief An Destructor. + */ virtual ~IntelliToolFloodFill() override; + /*! + * \brief A function managing the right click pressed of a mouse. Clearing the canvas. + * \param x - The x coordinate relative to the active/canvas layer. + * \param y - The y coordinate relative to the active/canvas layer. + */ virtual void onMouseRightPressed(int x, int y) override; + + /*! + * \brief A function managing the right click released of a mouse. + * \param x - The x coordinate relative to the active/canvas layer. + * \param y - The y coordinate relative to the active/canvas layer. + */ virtual void onMouseRightReleased(int x, int y) override; + + /*! + * \brief A function managing the left click pressed of a mouse. Sets the point to flood fill around and does this. + * \param x - The x coordinate relative to the active/canvas layer. + * \param y - The y coordinate relative to the active/canvas layer. + */ virtual void onMouseLeftPressed(int x, int y) override; + + /*! + * \brief A function managing the left click released of a mouse. + * \param x - The x coordinate relative to the active/canvas layer. + * \param y - The y coordinate relative to the active/canvas layer. + */ virtual void onMouseLeftReleased(int x, int y) override; + /*! + * \brief A function managing the scroll event. + * \param value - The absolute the scroll has changed. + */ virtual void onWheelScrolled(int value) override; + /*! + * \brief A function managing the mouse moved event. + * \param x - The x coordinate of the new mouse position. + * \param y - The y coordinate of the new mouse position. + */ virtual void onMouseMoved(int x, int y) override; }; diff --git a/src/Tool/IntelliToolFloodFill.h.autosave b/src/Tool/IntelliToolFloodFill.h.autosave new file mode 100644 index 0000000..4e3eb04 --- /dev/null +++ b/src/Tool/IntelliToolFloodFill.h.autosave @@ -0,0 +1,67 @@ +#ifndef INTELLITOOLFLOODFILL_H +#define INTELLITOOLFLOODFILL_H +#include "IntelliTool.h" + +#include "QColor" + +/*! + * \brief The IntelliToolFloodFill class represents a tool to flood FIll a certian area. + */ +class IntelliToolFloodFill : public IntelliTool{ +public: + /*! + * \brief A constructor setting the general paintingArea and colorPicker. + * \param Area - The general paintingArea used by the project. + * \param colorPicker - The general colorPicker used by the project. + */ + IntelliToolFloodFill(PaintingArea* Area, IntelliColorPicker* colorPicker); + + /*! + * \brief A Destructor. + */ + virtual ~IntelliToolFloodFill() override; + + + /*! + * \brief A function managing the right click pressed of a mouse. Clearing the canvas. + * \param x - The x coordinate relative to the active/canvas layer. + * \param y - The y coordinate relative to the active/canvas layer. + */ + virtual void onMouseRightPressed(int x, int y) override; + + /*! + * \brief A function managing the right click released of a mouse. + * \param x - The x coordinate relative to the active/canvas layer. + * \param y - The y coordinate relative to the active/canvas layer. + */ + virtual void onMouseRightReleased(int x, int y) override; + + /*! + * \brief A function managing the left click pressed of a mouse. Sets the point to flood fill around and does this. + * \param x - The x coordinate relative to the active/canvas layer. + * \param y - The y coordinate relative to the active/canvas layer. + */ + virtual void onMouseLeftPressed(int x, int y) override; + + /*! + * \brief A function managing the left click released of a mouse. + * \param x - The x coordinate relative to the active/canvas layer. + * \param y - The y coordinate relative to the active/canvas layer. + */ + virtual void onMouseLeftReleased(int x, int y) override; + + /*! + * \brief A function managing the scroll event. + * \param value - The absolute the scroll has changed. + */ + virtual void onWheelScrolled(int value) override; + + /*! + * \brief A function managing the mouse moved event. + * \param x - The x coordinate of the new mouse position. + * \param y - The y coordinate of the new mouse position. + */ + virtual void onMouseMoved(int x, int y) override; +}; + +#endif // INTELLITOOLFLOODFILL_H diff --git a/src/Tool/IntelliToolLine.h b/src/Tool/IntelliToolLine.h index 0d5d289..cbb1ab8 100644 --- a/src/Tool/IntelliToolLine.h +++ b/src/Tool/IntelliToolLine.h @@ -4,27 +4,85 @@ #include "QPoint" +/*! + * \brief The LineStyle enum classifing all ways of drawing a line. + */ enum class LineStyle{ SOLID_LINE, DOTTED_LINE }; +/*! + * \brief The IntelliToolFloodFill class represents a tool to draw a line. + */ class IntelliToolLine : public IntelliTool{ + /*! + * \brief The starting point of the line. + */ QPoint start; + + /*! + * \brief The width of the line to draw. + */ int lineWidth; + + /*! + * \brief The style of the line. Apropriate to LineStyle. + */ LineStyle lineStyle; public: + + /*! + * \brief A constructor setting the general paintingArea and colorPicker. And reading in the lineWidth and lineStyle. + * \param Area - The general paintingArea used by the project. + * \param colorPicker - The general colorPicker used by the project. + */ IntelliToolLine(PaintingArea* Area, IntelliColorPicker* colorPicker); + + /*! + * \brief An abstract Destructor. + */ virtual ~IntelliToolLine() override; - + /*! + * \brief A function managing the right click pressed of a mouse. Clearing the canvas. + * \param x - The x coordinate relative to the active/canvas layer. + * \param y - The y coordinate relative to the active/canvas layer. + */ virtual void onMouseRightPressed(int x, int y) override; + + /*! + * \brief A function managing the right click released of a mouse. + * \param x - The x coordinate relative to the active/canvas layer. + * \param y - The y coordinate relative to the active/canvas layer. + */ virtual void onMouseRightReleased(int x, int y) override; + + /*! + * \brief A function managing the left click pressed of a mouse. Sets the starting point of the line. + * \param x - The x coordinate relative to the active/canvas layer. + * \param y - The y coordinate relative to the active/canvas layer. + */ virtual void onMouseLeftPressed(int x, int y) override; + + /*! + * \brief A function managing the left click released of a mouse. + * \param x - The x coordinate relative to the active/canvas layer. + * \param y - The y coordinate relative to the active/canvas layer. + */ virtual void onMouseLeftReleased(int x, int y) override; + /*! + * \brief A function managing the scroll event. Changing the lineWidth relative to value. + * \param value - The absolute the scroll has changed. + */ virtual void onWheelScrolled(int value) override; + /*! + * \brief A function managing the mouse moved event. Drawing a Line from the startpoint to the current mouse position. + * \param x - The x coordinate of the new mouse position. + * \param y - The y coordinate of the new mouse position. + */ virtual void onMouseMoved(int x, int y) override; };