From ca9395901b347253db8aeee90e0138e5c5c96141 Mon Sep 17 00:00:00 2001 From: Sonaion Date: Fri, 13 Dec 2019 13:20:55 +0100 Subject: [PATCH 01/62] Cryle Tool --- .gitignore | 1 + src/Image/IntelliImage.cpp | 10 +++++ src/Image/IntelliImage.h | 1 + src/IntelliPhoto.pro | 5 ++- src/Layer/PaintingArea.cpp | 5 ++- src/Tool/IntelliToolCircle.cpp | 80 ++++++++++++++++++++++++++++++++++ src/Tool/IntelliToolCircle.h | 26 +++++++++++ 7 files changed, 125 insertions(+), 3 deletions(-) create mode 100644 src/Tool/IntelliToolCircle.cpp create mode 100644 src/Tool/IntelliToolCircle.h diff --git a/.gitignore b/.gitignore index f4c35fb..a9a564c 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ CMakeLists.txt.user* /share/qtcreator/fonts/ /share/qtcreator/generic-highlighter/ /share/qtcreator/qmldesigner/QtProject/ +/build-*/ app_version.h phony.c diff --git a/src/Image/IntelliImage.cpp b/src/Image/IntelliImage.cpp index 74b7891..f5ae7a1 100644 --- a/src/Image/IntelliImage.cpp +++ b/src/Image/IntelliImage.cpp @@ -52,6 +52,16 @@ void IntelliImage::drawPixel(const QPoint &p1, const QColor& color){ painter.drawPoint(p1); } +void IntelliImage::drawPoint(const QPoint &p1, const QColor& color, const int& penWidth){ + // Used to draw on the widget + QPainter painter(&imageData); + + // Set the current settings for the pen + painter.setPen(QPen(color, penWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)); + // Draw a line from the last registered point to the current + painter.drawPoint(p1); +} + void IntelliImage::drawLine(const QPoint &p1, const QPoint& p2, const QColor& color, const int& penWidth){ // Used to draw on the widget QPainter painter(&imageData); diff --git a/src/Image/IntelliImage.h b/src/Image/IntelliImage.h index 14e9ec2..347cae6 100644 --- a/src/Image/IntelliImage.h +++ b/src/Image/IntelliImage.h @@ -30,6 +30,7 @@ public: //start on top left virtual void drawPixel(const QPoint &p1, const QColor& color); + virtual void drawPoint(const QPoint &p1, const QColor& color, const int& penWidth); virtual void drawLine(const QPoint &p1, const QPoint& p2, const QColor& color, const int& penWidth); virtual void drawPlain(const QColor& color); diff --git a/src/IntelliPhoto.pro b/src/IntelliPhoto.pro index 7d3580d..de708ac 100644 --- a/src/IntelliPhoto.pro +++ b/src/IntelliPhoto.pro @@ -24,6 +24,7 @@ SOURCES += \ IntelliHelper/IntelliHelper.cpp \ Layer/PaintingArea.cpp \ Tool/IntelliTool.cpp \ + Tool/IntelliToolCircle.cpp \ Tool/IntelliToolLine.cpp \ Tool/IntelliToolPen.cpp \ Tool/IntelliToolPlain.cpp \ @@ -38,9 +39,11 @@ HEADERS += \ IntelliHelper/IntelliHelper.h \ Layer/PaintingArea.h \ Tool/IntelliTool.h \ + Tool/IntelliToolCircle.h \ Tool/IntelliToolLine.h \ Tool/IntelliToolPen.h \ - Tool/IntelliToolPlain.h + Tool/IntelliToolPlain.h \ + Tool/intellitoolcircle.h FORMS += \ widget.ui diff --git a/src/Layer/PaintingArea.cpp b/src/Layer/PaintingArea.cpp index 7fff2a9..03f7e9c 100644 --- a/src/Layer/PaintingArea.cpp +++ b/src/Layer/PaintingArea.cpp @@ -13,11 +13,12 @@ #include "Tool/IntelliToolPen.h" #include "Tool/IntelliToolPlain.h" #include "Tool/IntelliToolLine.h" +#include "Tool/IntelliToolCircle.h" PaintingArea::PaintingArea(int maxWidth, int maxHeight, QWidget *parent) :QWidget(parent){ - this->Tool = nullptr; + this->Tool = new IntelliToolCircle(this, &colorPicker); this->setUp(maxWidth, maxHeight); //tetsing this->addLayer(200,200,0,0,ImageType::Shaped_Image); @@ -33,7 +34,7 @@ PaintingArea::PaintingArea(int maxWidth, int maxHeight, QWidget *parent) layerBundle[1].image->drawPlain(QColor(0,255,0,255)); layerBundle[1].alpha=200; - activeLayer=0; + activeLayer=1; } PaintingArea::~PaintingArea(){ diff --git a/src/Tool/IntelliToolCircle.cpp b/src/Tool/IntelliToolCircle.cpp new file mode 100644 index 0000000..7e16e77 --- /dev/null +++ b/src/Tool/IntelliToolCircle.cpp @@ -0,0 +1,80 @@ +#include "IntelliToolCircle.h" +#include "Layer/PaintingArea.h" +#include "QInputDialog" +#include + +IntelliToolCircle::IntelliToolCircle(PaintingArea* Area, IntelliColorPicker* colorPicker) + :IntelliTool(Area, colorPicker){ + this->alphaInner = QInputDialog::getInt(nullptr,"Inner Alpha Value", "Value:", 0,0,255,1); + this->edgeWidth = QInputDialog::getInt(nullptr,"Outer edge width", "Value:", 0,1,255,1); +} + +IntelliToolCircle::~IntelliToolCircle(){ + +} + +void IntelliToolCircle::drawCyrcle(int radius){ + int outer = radius+20; + QColor inner = this->colorPicker->getSecondColor(); + inner.setAlpha(alphaInner); + int yMin, yMax, xMin, xMax; + yMin = Middle.y()-radius; + yMax = Middle.y()+radius; + // x = x0+-sqrt(r2-(y-y0)2) + for(int i=yMin; i<=yMax; i++){ + xMin = Middle.x()-sqrt(pow(radius,2)-pow(i-Middle.y(),2)); + xMax = Middle.x()+sqrt(pow(radius,2)-pow(i-Middle.y(),2)); + this->Canvas->image->drawLine(QPoint(xMin,i), QPoint(xMax,i),inner,1); + } + + //TODO implement circle drawing algorithm + radius = radius +(this->edgeWidth/2.)-0.5; + yMin = (Middle.y()-radius); + yMax = (Middle.y()+radius); + for(int i=yMin; i<=yMax; i++){ + xMin = Middle.x()-sqrt(pow(radius,2)-pow(i-Middle.y(),2)); + xMax = Middle.x()+sqrt(pow(radius,2)-pow(i-Middle.y(),2)); + this->Canvas->image->drawPoint(QPoint(xMin,i), colorPicker->getFirstColor(),edgeWidth); + this->Canvas->image->drawPoint(QPoint(xMax,i), colorPicker->getFirstColor(),edgeWidth); + } + + xMin = (Middle.x()-radius); + xMax = (Middle.x()+radius); + for(int i=xMin; i<=xMax; i++){ + int yMin = Middle.y()-sqrt(pow(radius,2)-pow(i-Middle.x(),2)); + int yMax = Middle.y()+sqrt(pow(radius,2)-pow(i-Middle.x(),2)); + this->Canvas->image->drawPoint(QPoint(i, yMin), colorPicker->getFirstColor(),edgeWidth); + this->Canvas->image->drawPoint(QPoint(i, yMax), colorPicker->getFirstColor(),edgeWidth); + } +} + +void IntelliToolCircle::onMouseRightPressed(int x, int y){ + IntelliTool::onMouseRightPressed(x,y); +} + +void IntelliToolCircle::onMouseRightReleased(int x, int y){ + IntelliTool::onMouseRightReleased(x,y); +} + +void IntelliToolCircle::onMouseLeftPressed(int x, int y){ + IntelliTool::onMouseLeftPressed(x,y); + this->Middle=QPoint(x,y); + int radius = 1; + drawCyrcle(radius); + Canvas->image->calculateVisiblity(); +} + +void IntelliToolCircle::onMouseLeftReleased(int x, int y){ + IntelliTool::onMouseLeftReleased(x,y); +} + +void IntelliToolCircle::onMouseMoved(int x, int y){ + IntelliTool::onMouseMoved(x,y); + if(this->drawing){ + this->Canvas->image->drawPlain(Qt::transparent); + QPoint next(x,y); + int radius = static_cast(sqrt(pow((Middle.x()-x),2)+pow((Middle.y()-y),2))); + drawCyrcle(radius); + } + IntelliTool::onMouseMoved(x,y); +} diff --git a/src/Tool/IntelliToolCircle.h b/src/Tool/IntelliToolCircle.h new file mode 100644 index 0000000..93e7af3 --- /dev/null +++ b/src/Tool/IntelliToolCircle.h @@ -0,0 +1,26 @@ +#ifndef INTELLITOOLCIRCLE_H +#define INTELLITOOLCIRCLE_H +#include "IntelliTool.h" + +#include "QColor" +#include "QPoint" + +class IntelliToolCircle : public IntelliTool{ + void drawCyrcle(int radius); + + QPoint Middle; + int alphaInner; + int edgeWidth; +public: + IntelliToolCircle(PaintingArea* Area, IntelliColorPicker* colorPicker); + virtual ~IntelliToolCircle() override; + + virtual void onMouseRightPressed(int x, int y); + virtual void onMouseRightReleased(int x, int y); + virtual void onMouseLeftPressed(int x, int y); + virtual void onMouseLeftReleased(int x, int y); + + virtual void onMouseMoved(int x, int y); +}; + +#endif // INTELLITOOLCIRCLE_H From 9da13bc002e653fdd020b2bf7f2015757d01d146 Mon Sep 17 00:00:00 2001 From: Sonaion Date: Fri, 13 Dec 2019 13:21:27 +0100 Subject: [PATCH 02/62] Update .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index f4c35fb..a9a564c 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ CMakeLists.txt.user* /share/qtcreator/fonts/ /share/qtcreator/generic-highlighter/ /share/qtcreator/qmldesigner/QtProject/ +/build-*/ app_version.h phony.c From ce331cafa8f0f57935f0103e0cd16f049ed63c8c Mon Sep 17 00:00:00 2001 From: Sonaion Date: Fri, 13 Dec 2019 13:24:42 +0100 Subject: [PATCH 03/62] testing for tools --- src/Layer/PaintingArea.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Layer/PaintingArea.cpp b/src/Layer/PaintingArea.cpp index f38ad31..a5eb6a3 100644 --- a/src/Layer/PaintingArea.cpp +++ b/src/Layer/PaintingArea.cpp @@ -17,7 +17,8 @@ PaintingArea::PaintingArea(int maxWidth, int maxHeight, QWidget *parent) :QWidget(parent){ - this->Tool = new IntelliToolCircle(this, &colorPicker); + //test yout tool here and reset after accomplished test + this->Tool = nullptr; this->setUp(maxWidth, maxHeight); //tetsing this->addLayer(200,200,0,0,ImageType::Shaped_Image); From 1c29d564c796f9c4e1bb1d6ca2cf77d41a7e2a96 Mon Sep 17 00:00:00 2001 From: Sonaion Date: Fri, 13 Dec 2019 13:47:32 +0100 Subject: [PATCH 04/62] rectangle tool --- src/IntelliPhoto.pro | 2 ++ src/Layer/PaintingArea.cpp | 1 + src/Tool/IntelliToolRechteck.cpp | 60 ++++++++++++++++++++++++++++++++ src/Tool/IntelliToolRechteck.h | 27 ++++++++++++++ 4 files changed, 90 insertions(+) create mode 100644 src/Tool/IntelliToolRechteck.cpp create mode 100644 src/Tool/IntelliToolRechteck.h diff --git a/src/IntelliPhoto.pro b/src/IntelliPhoto.pro index de708ac..47bf20e 100644 --- a/src/IntelliPhoto.pro +++ b/src/IntelliPhoto.pro @@ -28,6 +28,7 @@ SOURCES += \ Tool/IntelliToolLine.cpp \ Tool/IntelliToolPen.cpp \ Tool/IntelliToolPlain.cpp \ + Tool/IntelliToolRechteck.cpp \ main.cpp HEADERS += \ @@ -43,6 +44,7 @@ HEADERS += \ Tool/IntelliToolLine.h \ Tool/IntelliToolPen.h \ Tool/IntelliToolPlain.h \ + Tool/IntelliToolRechteck.h \ Tool/intellitoolcircle.h FORMS += \ diff --git a/src/Layer/PaintingArea.cpp b/src/Layer/PaintingArea.cpp index a5eb6a3..4ec5ea3 100644 --- a/src/Layer/PaintingArea.cpp +++ b/src/Layer/PaintingArea.cpp @@ -14,6 +14,7 @@ #include "Tool/IntelliToolPlain.h" #include "Tool/IntelliToolLine.h" #include "Tool/IntelliToolCircle.h" +#include "Tool/IntelliToolRechteck.h" PaintingArea::PaintingArea(int maxWidth, int maxHeight, QWidget *parent) :QWidget(parent){ diff --git a/src/Tool/IntelliToolRechteck.cpp b/src/Tool/IntelliToolRechteck.cpp new file mode 100644 index 0000000..ded8346 --- /dev/null +++ b/src/Tool/IntelliToolRechteck.cpp @@ -0,0 +1,60 @@ +#include"IntelliToolRechteck.h" +#include "Layer/PaintingArea.h" +#include "QInputDialog" + +IntelliToolRechteck::IntelliToolRechteck(PaintingArea* Area, IntelliColorPicker* colorPicker) + :IntelliTool(Area, colorPicker){ + this->alphaInner = QInputDialog::getInt(nullptr,"Inner Alpha Value", "Value:", 0,0,255,1); + this->edgeWidth = QInputDialog::getInt(nullptr,"Outer edge width", "Value:", 0,1,255,1); +} + +IntelliToolRechteck::~IntelliToolRechteck(){ + +} + +void IntelliToolRechteck::drawRechteck(QPoint otherCornor){ + int xMin = std::min(originCornor.x(), otherCornor.x()); + int xMax = std::max(originCornor.x(), otherCornor.x()); + + int yMin = std::min(originCornor.y(), otherCornor.y()); + int yMax = std::max(originCornor.y(), otherCornor.y()); + + QColor clr = colorPicker->getSecondColor(); + clr.setAlpha(alphaInner); + for(int y=yMin; y<=yMax; y++){ + this->Canvas->image->drawLine(QPoint(xMin,y), QPoint(xMax, y), clr, 1); + } + this->Canvas->image->drawLine(QPoint(xMin, yMin),QPoint(xMin, yMax), this->colorPicker->getFirstColor(), edgeWidth); + this->Canvas->image->drawLine(QPoint(xMin, yMin),QPoint(xMax, yMin), this->colorPicker->getFirstColor(), edgeWidth); + this->Canvas->image->drawLine(QPoint(xMax, yMax),QPoint(xMin, yMax), this->colorPicker->getFirstColor(), edgeWidth); + this->Canvas->image->drawLine(QPoint(xMax, yMax),QPoint(xMax, yMin), this->colorPicker->getFirstColor(), edgeWidth); +} + +void IntelliToolRechteck::onMouseRightPressed(int x, int y){ + IntelliTool::onMouseRightPressed(x,y); +} + +void IntelliToolRechteck::onMouseRightReleased(int x, int y){ + IntelliTool::onMouseRightReleased(x,y); +} + +void IntelliToolRechteck::onMouseLeftPressed(int x, int y){ + IntelliTool::onMouseLeftPressed(x,y); + this->originCornor=QPoint(x,y); + drawRechteck(originCornor); + Canvas->image->calculateVisiblity(); +} + +void IntelliToolRechteck::onMouseLeftReleased(int x, int y){ + IntelliTool::onMouseLeftReleased(x,y); +} + +void IntelliToolRechteck::onMouseMoved(int x, int y){ + IntelliTool::onMouseMoved(x,y); + if(this->drawing){ + this->Canvas->image->drawPlain(Qt::transparent); + QPoint next(x,y); + drawRechteck(next); + } + IntelliTool::onMouseMoved(x,y); +} diff --git a/src/Tool/IntelliToolRechteck.h b/src/Tool/IntelliToolRechteck.h new file mode 100644 index 0000000..76886bc --- /dev/null +++ b/src/Tool/IntelliToolRechteck.h @@ -0,0 +1,27 @@ +#ifndef INTELLIRECHTECKTOOL_H +#define INTELLIRECHTECKTOOL_H + +#include "IntelliTool.h" + +#include "QColor" +#include "QPoint" + +class IntelliToolRechteck : public IntelliTool{ + void drawRechteck(QPoint otherCornor); + + QPoint originCornor; + int alphaInner; + int edgeWidth; +public: + IntelliToolRechteck(PaintingArea* Area, IntelliColorPicker* colorPicker); + virtual ~IntelliToolRechteck() override; + + virtual void onMouseRightPressed(int x, int y) override; + virtual void onMouseRightReleased(int x, int y) override; + virtual void onMouseLeftPressed(int x, int y) override; + virtual void onMouseLeftReleased(int x, int y) override; + + virtual void onMouseMoved(int x, int y) override; +}; + +#endif // INTELLIRECHTECKTOOL_H From 67a72fe4879f6e26c55dc49df623bc22d195b161 Mon Sep 17 00:00:00 2001 From: Sonaion Date: Mon, 16 Dec 2019 19:23:56 +0100 Subject: [PATCH 05/62] Scroll implemented --- src/Layer/PaintingArea.cpp | 10 +++++++++- src/Layer/PaintingArea.h | 1 + src/Tool/IntelliTool.cpp | 4 ++++ src/Tool/IntelliTool.h | 2 ++ src/Tool/IntelliToolCircle.cpp | 12 ++++++++++-- src/Tool/IntelliToolCircle.h | 12 +++++++----- src/Tool/IntelliToolLine.cpp | 8 ++++++++ src/Tool/IntelliToolLine.h | 2 ++ src/Tool/IntelliToolPen.cpp | 8 ++++++++ src/Tool/IntelliToolPen.h | 2 ++ src/Tool/IntelliToolPlain.cpp | 4 ++++ src/Tool/IntelliToolPlain.h | 13 ++++++++----- src/Tool/IntelliToolRechteck.cpp | 8 ++++++++ src/Tool/IntelliToolRechteck.h | 2 ++ 14 files changed, 75 insertions(+), 13 deletions(-) diff --git a/src/Layer/PaintingArea.cpp b/src/Layer/PaintingArea.cpp index 4ec5ea3..1783a40 100644 --- a/src/Layer/PaintingArea.cpp +++ b/src/Layer/PaintingArea.cpp @@ -19,7 +19,7 @@ PaintingArea::PaintingArea(int maxWidth, int maxHeight, QWidget *parent) :QWidget(parent){ //test yout tool here and reset after accomplished test - this->Tool = nullptr; + this->Tool = new IntelliToolRechteck(this, &colorPicker); this->setUp(maxWidth, maxHeight); //tetsing this->addLayer(200,200,0,0,ImageType::Shaped_Image); @@ -234,6 +234,14 @@ void PaintingArea::mouseReleaseEvent(QMouseEvent *event){ update(); } +void PaintingArea::wheelEvent(QWheelEvent *event){ + QPoint numDegrees = event->angleDelta() / 8; + if(!numDegrees.isNull()){ + QPoint numSteps = numDegrees / 15; + Tool->onWheelScrolled(numSteps.y()*-1); + } +} + // QPainter provides functions to draw on the widget // The QPaintEvent is sent to widgets that need to // update themselves diff --git a/src/Layer/PaintingArea.h b/src/Layer/PaintingArea.h index a4ec3fa..fa85425 100644 --- a/src/Layer/PaintingArea.h +++ b/src/Layer/PaintingArea.h @@ -70,6 +70,7 @@ protected: void mouseMoveEvent(QMouseEvent *event) override; void mouseReleaseEvent(QMouseEvent *event) override; + void wheelEvent(QWheelEvent *event) override; // Updates the painting area where we are painting void paintEvent(QPaintEvent *event) override; diff --git a/src/Tool/IntelliTool.cpp b/src/Tool/IntelliTool.cpp index 606459c..608770e 100644 --- a/src/Tool/IntelliTool.cpp +++ b/src/Tool/IntelliTool.cpp @@ -43,6 +43,10 @@ void IntelliTool::onMouseMoved(int x, int y){ Canvas->image->calculateVisiblity(); } +void IntelliTool::onWheelScrolled(int value){ + //if needed for future general tasks implement in here +} + void IntelliTool::createToolLayer(){ Area->createTempLayerAfter(Area->activeLayer); this->Active=&Area->layerBundle[Area->activeLayer]; diff --git a/src/Tool/IntelliTool.h b/src/Tool/IntelliTool.h index b534257..2531a55 100644 --- a/src/Tool/IntelliTool.h +++ b/src/Tool/IntelliTool.h @@ -29,6 +29,8 @@ public: virtual void onMouseLeftPressed(int x, int y); virtual void onMouseLeftReleased(int x, int y); + virtual void onWheelScrolled(int value); + virtual void onMouseMoved(int x, int y); }; #endif diff --git a/src/Tool/IntelliToolCircle.cpp b/src/Tool/IntelliToolCircle.cpp index 7e16e77..a129d7d 100644 --- a/src/Tool/IntelliToolCircle.cpp +++ b/src/Tool/IntelliToolCircle.cpp @@ -27,8 +27,8 @@ void IntelliToolCircle::drawCyrcle(int radius){ this->Canvas->image->drawLine(QPoint(xMin,i), QPoint(xMax,i),inner,1); } - //TODO implement circle drawing algorithm - radius = radius +(this->edgeWidth/2.)-0.5; + //TODO implement circle drawing algorithm bresenham + radius = radius +(this->edgeWidth/2.)-1.; yMin = (Middle.y()-radius); yMax = (Middle.y()+radius); for(int i=yMin; i<=yMax; i++){ @@ -68,6 +68,14 @@ void IntelliToolCircle::onMouseLeftReleased(int x, int y){ IntelliTool::onMouseLeftReleased(x,y); } +void IntelliToolCircle::onWheelScrolled(int value){ + IntelliTool::onWheelScrolled(value); + this->edgeWidth+=value; + if(this->edgeWidth<=0){ + this->edgeWidth=1; + } +} + void IntelliToolCircle::onMouseMoved(int x, int y){ IntelliTool::onMouseMoved(x,y); if(this->drawing){ diff --git a/src/Tool/IntelliToolCircle.h b/src/Tool/IntelliToolCircle.h index 93e7af3..488bdb4 100644 --- a/src/Tool/IntelliToolCircle.h +++ b/src/Tool/IntelliToolCircle.h @@ -15,12 +15,14 @@ public: IntelliToolCircle(PaintingArea* Area, IntelliColorPicker* colorPicker); virtual ~IntelliToolCircle() override; - virtual void onMouseRightPressed(int x, int y); - virtual void onMouseRightReleased(int x, int y); - virtual void onMouseLeftPressed(int x, int y); - virtual void onMouseLeftReleased(int x, int y); + virtual void onMouseRightPressed(int x, int y) override; + virtual void onMouseRightReleased(int x, int y) override; + virtual void onMouseLeftPressed(int x, int y) override; + virtual void onMouseLeftReleased(int x, int y) override; - virtual void onMouseMoved(int x, int y); + virtual void onWheelScrolled(int value) override; + + virtual void onMouseMoved(int x, int y) override; }; #endif // INTELLITOOLCIRCLE_H diff --git a/src/Tool/IntelliToolLine.cpp b/src/Tool/IntelliToolLine.cpp index b3f1bf7..0b088cd 100644 --- a/src/Tool/IntelliToolLine.cpp +++ b/src/Tool/IntelliToolLine.cpp @@ -34,6 +34,14 @@ void IntelliToolLine::onMouseLeftReleased(int x, int y){ IntelliTool::onMouseLeftReleased(x,y); } +void IntelliToolLine::onWheelScrolled(int value){ + IntelliTool::onWheelScrolled(value); + this->lineWidth+=value; + if(this->lineWidth<=0){ + this->lineWidth=1; + } +} + void IntelliToolLine::onMouseMoved(int x, int y){ IntelliTool::onMouseMoved(x,y); if(this->drawing){ diff --git a/src/Tool/IntelliToolLine.h b/src/Tool/IntelliToolLine.h index ffde866..af1f874 100644 --- a/src/Tool/IntelliToolLine.h +++ b/src/Tool/IntelliToolLine.h @@ -24,6 +24,8 @@ public: virtual void onMouseLeftPressed(int x, int y) override; virtual void onMouseLeftReleased(int x, int y) override; + virtual void onWheelScrolled(int value) override; + virtual void onMouseMoved(int x, int y) override; }; diff --git a/src/Tool/IntelliToolPen.cpp b/src/Tool/IntelliToolPen.cpp index 14db6dd..8012970 100644 --- a/src/Tool/IntelliToolPen.cpp +++ b/src/Tool/IntelliToolPen.cpp @@ -40,3 +40,11 @@ void IntelliToolPen::onMouseMoved(int x, int y){ } IntelliTool::onMouseMoved(x,y); } + +void IntelliToolPen::onWheelScrolled(int value){ + IntelliTool::onWheelScrolled(value); + this->penWidth+=value; + if(this->penWidth<=0){ + this->penWidth=1; + } +} diff --git a/src/Tool/IntelliToolPen.h b/src/Tool/IntelliToolPen.h index a5acc49..c923ddd 100644 --- a/src/Tool/IntelliToolPen.h +++ b/src/Tool/IntelliToolPen.h @@ -17,6 +17,8 @@ public: virtual void onMouseLeftPressed(int x, int y) override; virtual void onMouseLeftReleased(int x, int y) override; + virtual void onWheelScrolled(int value) override; + virtual void onMouseMoved(int x, int y) override; }; diff --git a/src/Tool/IntelliToolPlain.cpp b/src/Tool/IntelliToolPlain.cpp index aaa2a02..34e3c5f 100644 --- a/src/Tool/IntelliToolPlain.cpp +++ b/src/Tool/IntelliToolPlain.cpp @@ -28,3 +28,7 @@ void IntelliToolPlainTool::onMouseRightReleased(int x, int y){ void IntelliToolPlainTool::onMouseMoved(int x, int y){ IntelliTool::onMouseMoved(x,y); } + +void IntelliToolPlainTool::onWheelScrolled(int value){ + IntelliTool::onWheelScrolled(value); +} diff --git a/src/Tool/IntelliToolPlain.h b/src/Tool/IntelliToolPlain.h index 9ff1b7a..aad7633 100644 --- a/src/Tool/IntelliToolPlain.h +++ b/src/Tool/IntelliToolPlain.h @@ -8,11 +8,14 @@ class IntelliToolPlainTool : public IntelliTool{ public: IntelliToolPlainTool(PaintingArea *Area, IntelliColorPicker* colorPicker); - void onMouseLeftPressed(int x, int y) override; - void onMouseLeftReleased(int x, int y) override; - void onMouseRightPressed(int x, int y) override; - void onMouseRightReleased(int x, int y) override; - void onMouseMoved(int x, int y) override; + virtual void onMouseLeftPressed(int x, int y) override; + virtual void onMouseLeftReleased(int x, int y) override; + virtual void onMouseRightPressed(int x, int y) override; + virtual void onMouseRightReleased(int x, int y) override; + + virtual void onWheelScrolled(int value) override; + + virtual void onMouseMoved(int x, int y) override; }; diff --git a/src/Tool/IntelliToolRechteck.cpp b/src/Tool/IntelliToolRechteck.cpp index ded8346..05b1e79 100644 --- a/src/Tool/IntelliToolRechteck.cpp +++ b/src/Tool/IntelliToolRechteck.cpp @@ -58,3 +58,11 @@ void IntelliToolRechteck::onMouseMoved(int x, int y){ } IntelliTool::onMouseMoved(x,y); } + +void IntelliToolRechteck::onWheelScrolled(int value){ + IntelliTool::onWheelScrolled(value); + this->edgeWidth+=value; + if(this->edgeWidth<=0){ + this->edgeWidth=1; + } +} diff --git a/src/Tool/IntelliToolRechteck.h b/src/Tool/IntelliToolRechteck.h index 76886bc..f3db883 100644 --- a/src/Tool/IntelliToolRechteck.h +++ b/src/Tool/IntelliToolRechteck.h @@ -21,6 +21,8 @@ public: virtual void onMouseLeftPressed(int x, int y) override; virtual void onMouseLeftReleased(int x, int y) override; + virtual void onWheelScrolled(int value) override; + virtual void onMouseMoved(int x, int y) override; }; From 21ade765631f3a2416f31204915f16e06d0c39a1 Mon Sep 17 00:00:00 2001 From: Sonaion Date: Mon, 16 Dec 2019 19:29:12 +0100 Subject: [PATCH 06/62] Update .gitignore --- .gitignore | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index a9a564c..e431211 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ # Build folders -src/build-*/ +/build-*/ # QT Creator Files *.creator.user* @@ -13,7 +13,6 @@ CMakeLists.txt.user* /share/qtcreator/fonts/ /share/qtcreator/generic-highlighter/ /share/qtcreator/qmldesigner/QtProject/ -/build-*/ app_version.h phony.c From 7444455094f7ee619255139e2193e803e92494fb Mon Sep 17 00:00:00 2001 From: Conrad Date: Tue, 17 Dec 2019 14:11:21 +0100 Subject: [PATCH 07/62] Added doxygen documentation --- docs/html/_intelli_color_picker_8h.html | 128 ++ .../_intelli_color_picker_8h__dep__incl.dot | 41 + docs/html/_intelli_color_picker_8h__incl.dot | 13 + .../html/_intelli_color_picker_8h_source.html | 139 ++ ...li_helper_2_intelli_color_picker_8cpp.html | 113 ++ ...lper_2_intelli_color_picker_8cpp__incl.dot | 15 + ...er_2_intelli_color_picker_8cpp_source.html | 143 ++ docs/html/_intelli_helper_8cpp.html | 114 ++ docs/html/_intelli_helper_8cpp__incl.dot | 13 + docs/html/_intelli_helper_8cpp_source.html | 108 + docs/html/_intelli_helper_8h.html | 126 ++ docs/html/_intelli_helper_8h__dep__incl.dot | 11 + docs/html/_intelli_helper_8h__incl.dot | 9 + docs/html/_intelli_helper_8h_source.html | 138 ++ docs/html/_intelli_image_8cpp.html | 115 ++ docs/html/_intelli_image_8cpp__incl.dot | 24 + docs/html/_intelli_image_8cpp_source.html | 183 ++ docs/html/_intelli_image_8h.html | 168 ++ docs/html/_intelli_image_8h.js | 8 + docs/html/_intelli_image_8h__dep__incl.dot | 35 + docs/html/_intelli_image_8h__incl.dot | 19 + docs/html/_intelli_image_8h_source.html | 177 ++ docs/html/_intelli_photo_gui_8cpp.html | 165 ++ docs/html/_intelli_photo_gui_8cpp.js | 5 + docs/html/_intelli_photo_gui_8cpp__incl.dot | 64 + docs/html/_intelli_photo_gui_8cpp_source.html | 602 ++++++ docs/html/_intelli_photo_gui_8h.html | 132 ++ .../html/_intelli_photo_gui_8h__dep__incl.dot | 11 + docs/html/_intelli_photo_gui_8h__incl.dot | 21 + docs/html/_intelli_photo_gui_8h_source.html | 241 +++ docs/html/_intelli_raster_image_8cpp.html | 116 ++ .../html/_intelli_raster_image_8cpp__incl.dot | 29 + .../_intelli_raster_image_8cpp_source.html | 159 ++ docs/html/_intelli_raster_image_8h.html | 126 ++ .../_intelli_raster_image_8h__dep__incl.dot | 30 + docs/html/_intelli_raster_image_8h__incl.dot | 21 + .../html/_intelli_raster_image_8h_source.html | 140 ++ docs/html/_intelli_shaped_image_8cpp.html | 117 ++ .../html/_intelli_shaped_image_8cpp__incl.dot | 34 + .../_intelli_shaped_image_8cpp_source.html | 204 ++ docs/html/_intelli_shaped_image_8h.html | 126 ++ .../_intelli_shaped_image_8h__dep__incl.dot | 24 + docs/html/_intelli_shaped_image_8h__incl.dot | 23 + .../html/_intelli_shaped_image_8h_source.html | 147 ++ docs/html/_intelli_tool_8cpp.html | 114 ++ docs/html/_intelli_tool_8cpp__incl.dot | 46 + docs/html/_intelli_tool_8cpp_source.html | 204 ++ docs/html/_intelli_tool_8h.html | 127 ++ docs/html/_intelli_tool_8h__dep__incl.dot | 34 + docs/html/_intelli_tool_8h__incl.dot | 17 + docs/html/_intelli_tool_8h_source.html | 156 ++ docs/html/_intelli_tool_line_8cpp.html | 116 ++ docs/html/_intelli_tool_line_8cpp__incl.dot | 53 + docs/html/_intelli_tool_line_8cpp_source.html | 188 ++ docs/html/_intelli_tool_line_8h.html | 165 ++ docs/html/_intelli_tool_line_8h.js | 8 + .../html/_intelli_tool_line_8h__dep__incl.dot | 11 + docs/html/_intelli_tool_line_8h__incl.dot | 21 + docs/html/_intelli_tool_line_8h_source.html | 152 ++ docs/html/_intelli_tool_pen_8cpp.html | 117 ++ docs/html/_intelli_tool_pen_8cpp__incl.dot | 55 + docs/html/_intelli_tool_pen_8cpp_source.html | 172 ++ docs/html/_intelli_tool_pen_8h.html | 128 ++ docs/html/_intelli_tool_pen_8h__dep__incl.dot | 11 + docs/html/_intelli_tool_pen_8h__incl.dot | 21 + docs/html/_intelli_tool_pen_8h_source.html | 142 ++ docs/html/_intelli_tool_plain_8cpp.html | 115 ++ docs/html/_intelli_tool_plain_8cpp__incl.dot | 50 + .../html/_intelli_tool_plain_8cpp_source.html | 157 ++ docs/html/_intelli_tool_plain_8h.html | 127 ++ .../_intelli_tool_plain_8h__dep__incl.dot | 11 + docs/html/_intelli_tool_plain_8h__incl.dot | 20 + docs/html/_intelli_tool_plain_8h_source.html | 137 ++ docs/html/_painting_area_8cpp.html | 123 ++ docs/html/_painting_area_8cpp__incl.dot | 69 + docs/html/_painting_area_8cpp_source.html | 482 +++++ docs/html/_painting_area_8h.html | 137 ++ docs/html/_painting_area_8h__dep__incl.dot | 19 + docs/html/_painting_area_8h__incl.dot | 43 + docs/html/_painting_area_8h_source.html | 254 +++ .../_tool_2_intelli_color_picker_8cpp.html | 114 ++ ...tool_2_intelli_color_picker_8cpp__incl.dot | 17 + ...ol_2_intelli_color_picker_8cpp_source.html | 148 ++ docs/html/annotated.html | 120 ++ docs/html/annotated_dup.js | 15 + docs/html/bc_s.png | Bin 0 -> 659 bytes docs/html/bdwn.png | Bin 0 -> 140 bytes .../class_intelli_color_picker-members.html | 114 ++ docs/html/class_intelli_color_picker.html | 305 +++ docs/html/class_intelli_color_picker.js | 10 + ...7a6f20bf2fc0a4cbaf4c030c2a26d9_icgraph.dot | 10 + ...568fbf5dc783f06284b7031ffe9415_icgraph.dot | 10 + ...2ddbbbfbed383f06b24e5bf6b27ae8_icgraph.dot | 10 + ...bf4a940e4a0e465e30cbdf28748931_icgraph.dot | 10 + ...2eb27b928fe9388b9398b0556303b7_icgraph.dot | 20 + docs/html/class_intelli_helper-members.html | 109 + docs/html/class_intelli_helper.html | 234 +++ ...4bdb4f53b89dded693ba6e896f4c63f_cgraph.dot | 10 + ...bdb4f53b89dded693ba6e896f4c63f_icgraph.dot | 14 + ...fc007dda64187f6cef7fba3fcd9e40_icgraph.dot | 16 + docs/html/class_intelli_image-members.html | 121 ++ docs/html/class_intelli_image.html | 630 ++++++ docs/html/class_intelli_image.js | 17 + .../class_intelli_image__inherit__graph.dot | 11 + ...e622810dc2bc756054bb5769becb06_icgraph.dot | 14 + ...bced93f4744fad81b7f141b21f4ab2_icgraph.dot | 43 + ...0e9c8184d89dee33fd9adefbd2f8aa_icgraph.dot | 10 + ...c859f5c409e37051edfd9e9fbca056_icgraph.dot | 10 + ...eddbd9aa54c8d37590d1d4bf8dce31_icgraph.dot | 14 + .../html/class_intelli_photo_gui-members.html | 109 + docs/html/class_intelli_photo_gui.html | 188 ++ docs/html/class_intelli_photo_gui.js | 5 + .../class_intelli_photo_gui__coll__graph.dot | 9 + ...lass_intelli_photo_gui__inherit__graph.dot | 9 + .../class_intelli_raster_image-members.html | 123 ++ docs/html/class_intelli_raster_image.html | 420 ++++ docs/html/class_intelli_raster_image.js | 10 + ...lass_intelli_raster_image__coll__graph.dot | 9 + ...s_intelli_raster_image__inherit__graph.dot | 11 + ...12d79124f0e2c158a4f0abbe4b5f97f_cgraph.dot | 10 + ...f901301b106504de3c27308ade897dc_cgraph.dot | 10 + ...9b561fe499a4da3c6ef98971aa3468_icgraph.dot | 10 + ...3393397b0141a8033fe34d3a1b1884_icgraph.dot | 10 + .../class_intelli_shaped_image-members.html | 126 ++ docs/html/class_intelli_shaped_image.html | 491 +++++ docs/html/class_intelli_shaped_image.js | 12 + ...lass_intelli_shaped_image__coll__graph.dot | 11 + ...s_intelli_shaped_image__inherit__graph.dot | 11 + ...221d93c3c8990f7dab332454cc21f50_cgraph.dot | 12 + ...21d93c3c8990f7dab332454cc21f50_icgraph.dot | 12 + ...834c3f255baeb50c98ef335a6d0ea9_icgraph.dot | 10 + ...b69d75de7a3b85032482982f249458e_cgraph.dot | 14 + ...69d75de7a3b85032482982f249458e_icgraph.dot | 10 + ...cf374247c16f07fd84d50e4cd05630_icgraph.dot | 10 + ...6a99e1a96134073bceea252b37636cc_cgraph.dot | 10 + ...d0b31e0fa771104399d1f5ff39a0337_cgraph.dot | 18 + docs/html/class_intelli_tool-members.html | 119 ++ docs/html/class_intelli_tool.html | 579 ++++++ docs/html/class_intelli_tool.js | 15 + docs/html/class_intelli_tool__coll__graph.dot | 17 + .../class_intelli_tool__inherit__graph.dot | 13 + ...189b00307c6d7e89f28198f54404b0_icgraph.dot | 16 + ...6aa68ac5f3c2ca02319e5ef3f0c966_icgraph.dot | 16 + ...4b7ef1dde96b94a0ce450a25ae1778c_cgraph.dot | 10 + ...b7ef1dde96b94a0ce450a25ae1778c_icgraph.dot | 16 + ...06a2575c16c8a33cb2a5197f8d8cc5b_cgraph.dot | 10 + ...6a2575c16c8a33cb2a5197f8d8cc5b_icgraph.dot | 16 + ...10e20414cd8855a2f9b103fb6408639_cgraph.dot | 10 + ...0e20414cd8855a2f9b103fb6408639_icgraph.dot | 16 + .../html/class_intelli_tool_line-members.html | 121 ++ docs/html/class_intelli_tool_line.html | 448 +++++ docs/html/class_intelli_tool_line.js | 10 + .../class_intelli_tool_line__coll__graph.dot | 19 + ...lass_intelli_tool_line__inherit__graph.dot | 9 + ...55d676a5f98311217eb095be4759846_cgraph.dot | 17 + ...214918cba5753f89d97de4559a2b9b2_cgraph.dot | 10 + ...cce59f3017936214b10b47252a898a3_cgraph.dot | 10 + ...c6324ef0778823fe7e35aef8ae37f9b_cgraph.dot | 18 + ...93f76ff20a1c111a403b298bab02482_cgraph.dot | 12 + docs/html/class_intelli_tool_pen-members.html | 121 ++ docs/html/class_intelli_tool_pen.html | 448 +++++ docs/html/class_intelli_tool_pen.js | 10 + .../class_intelli_tool_pen__coll__graph.dot | 19 + ...class_intelli_tool_pen__inherit__graph.dot | 9 + ...751e3864a0d36ef42ca55021cae73ce_cgraph.dot | 10 + ...8d1d636497b630647ce0c4d652737c2_cgraph.dot | 16 + ...ff40aef6d38eb55af31a19322429205_cgraph.dot | 17 + ...da7a22b9766fa4ad254324a53cab94d_cgraph.dot | 12 + ...f8562e8cd2da586afdf4d47b3a4ff13_cgraph.dot | 10 + ...class_intelli_tool_plain_tool-members.html | 120 ++ docs/html/class_intelli_tool_plain_tool.html | 419 ++++ docs/html/class_intelli_tool_plain_tool.js | 9 + ...s_intelli_tool_plain_tool__coll__graph.dot | 19 + ...ntelli_tool_plain_tool__inherit__graph.dot | 9 + ...ae458f1b04eb77a47f6dca5e91e33b8_cgraph.dot | 10 + ...786dd5fa80af863246013d43c4b7ac9_cgraph.dot | 17 + ...23f5d0f07e42fd7c2ea3fc1347da400_cgraph.dot | 12 + ...b0c46e16d2c09370a2244a936de38b1_cgraph.dot | 10 + ...7546a6335bb3bb4cbf0e1883788d41c_cgraph.dot | 12 + docs/html/class_painting_area-members.html | 132 ++ docs/html/class_painting_area.html | 927 +++++++++ docs/html/class_painting_area.js | 28 + .../html/class_painting_area__coll__graph.dot | 9 + .../class_painting_area__inherit__graph.dot | 9 + ...6d86c25efdce9fe9031a9cd01c74c8_icgraph.dot | 10 + ...f597740b4d7b4bc2e24c51f8cb0b6eb_cgraph.dot | 12 + ...5b5df914acb608cc29717659793359c_cgraph.dot | 14 + ...ad76e1319659bfa38eee88ef33d395_icgraph.dot | 10 + ...735d4cf1dc58a9096d904e74c39c4df_cgraph.dot | 12 + ...fa0ec23e78cc59f28c823584c721460_cgraph.dot | 10 + ...6115307ff4a99cd7ca16423c5c8ecfb_cgraph.dot | 10 + ...1ac281e0de263208d4a3b9de74258ec_cgraph.dot | 10 + ...22e274b6094a9619f196cd7b49526b5_cgraph.dot | 12 + ...fe445f8d9b70ae42bfeda874127dd15_cgraph.dot | 14 + ...261acaaa346610dfed489dbac17e789_cgraph.dot | 12 + ...b5eb394b979ea90f2be9849fdda1774_cgraph.dot | 10 + docs/html/classes.html | 133 ++ docs/html/closed.png | Bin 0 -> 127 bytes docs/html/dir_000000_000001.html | 101 + docs/html/dir_000001_000005.html | 101 + docs/html/dir_000002_000003.html | 101 + docs/html/dir_000004_000003.html | 101 + docs/html/dir_000004_000005.html | 101 + docs/html/dir_000005_000002.html | 101 + docs/html/dir_000005_000003.html | 101 + docs/html/dir_000005_000004.html | 101 + .../dir_13830bfc3dd6736fe878600c9081919f.html | 118 ++ .../dir_13830bfc3dd6736fe878600c9081919f.js | 8 + ...r_13830bfc3dd6736fe878600c9081919f_dep.dot | 18 + .../dir_4e4e2e75df7fa6971448b424c011c8b5.html | 118 ++ .../dir_4e4e2e75df7fa6971448b424c011c8b5.js | 7 + ...r_4e4e2e75df7fa6971448b424c011c8b5_dep.dot | 11 + .../dir_68267d1309a1af8e8297ef4c3efbcdba.html | 129 ++ .../dir_68267d1309a1af8e8297ef4c3efbcdba.js | 9 + ...r_68267d1309a1af8e8297ef4c3efbcdba_dep.dot | 22 + .../dir_858355f3357c73763e566ff49d1e6a7a.html | 132 ++ .../dir_858355f3357c73763e566ff49d1e6a7a.js | 18 + ...r_858355f3357c73763e566ff49d1e6a7a_dep.dot | 15 + .../dir_8de6078cba2a961961818cf80b28fd4f.html | 117 ++ .../dir_8de6078cba2a961961818cf80b28fd4f.js | 11 + .../dir_fdbdd9841f9a730f284bb666ff3d8cfe.html | 126 ++ .../dir_fdbdd9841f9a730f284bb666ff3d8cfe.js | 13 + ...r_fdbdd9841f9a730f284bb666ff3d8cfe_dep.dot | 11 + docs/html/doc.png | Bin 0 -> 707 bytes docs/html/doxygen.css | 1766 +++++++++++++++++ docs/html/doxygen.png | Bin 0 -> 3778 bytes docs/html/dynsections.js | 127 ++ docs/html/files.html | 138 ++ docs/html/files_dup.js | 4 + docs/html/folderclosed.png | Bin 0 -> 554 bytes docs/html/folderopen.png | Bin 0 -> 571 bytes docs/html/functions.html | 415 ++++ docs/html/functions_func.html | 368 ++++ docs/html/functions_vars.html | 141 ++ docs/html/globals.html | 117 ++ docs/html/globals_enum.html | 108 + docs/html/globals_func.html | 111 ++ docs/html/graph_legend.dot | 23 + docs/html/graph_legend.html | 164 ++ docs/html/hierarchy.html | 124 ++ docs/html/hierarchy.js | 22 + docs/html/index.html | 104 + docs/html/inherit_graph_0.dot | 8 + docs/html/inherit_graph_1.dot | 8 + docs/html/inherit_graph_2.dot | 12 + docs/html/inherit_graph_3.dot | 10 + docs/html/inherit_graph_4.dot | 14 + docs/html/inherit_graph_5.dot | 8 + docs/html/inherit_graph_6.dot | 10 + docs/html/inherits.html | 122 ++ docs/html/jquery.js | 35 + docs/html/main_8cpp.html | 154 ++ docs/html/main_8cpp.js | 4 + docs/html/main_8cpp__incl.dot | 27 + docs/html/main_8cpp_source.html | 123 ++ docs/html/menu.js | 50 + docs/html/menudata.js | 66 + docs/html/nav_f.png | Bin 0 -> 143 bytes docs/html/nav_g.png | Bin 0 -> 95 bytes docs/html/nav_h.png | Bin 0 -> 90 bytes docs/html/navtree.css | 146 ++ docs/html/navtree.js | 544 +++++ docs/html/navtreedata.js | 53 + docs/html/navtreeindex0.js | 192 ++ docs/html/open.png | Bin 0 -> 116 bytes docs/html/resize.js | 136 ++ docs/html/search/all_0.html | 30 + docs/html/search/all_0.js | 8 + docs/html/search/all_1.html | 30 + docs/html/search/all_1.js | 13 + docs/html/search/all_2.html | 30 + docs/html/search/all_2.js | 9 + docs/html/search/all_3.html | 30 + docs/html/search/all_3.js | 4 + docs/html/search/all_4.html | 30 + docs/html/search/all_4.js | 8 + docs/html/search/all_5.html | 30 + docs/html/search/all_5.js | 5 + docs/html/search/all_6.html | 30 + docs/html/search/all_6.js | 37 + docs/html/search/all_7.html | 30 + docs/html/search/all_7.js | 6 + docs/html/search/all_8.html | 30 + docs/html/search/all_8.js | 10 + docs/html/search/all_9.html | 30 + docs/html/search/all_9.js | 9 + docs/html/search/all_a.html | 30 + docs/html/search/all_a.js | 8 + docs/html/search/all_b.html | 30 + docs/html/search/all_b.js | 6 + docs/html/search/all_c.html | 30 + docs/html/search/all_c.js | 17 + docs/html/search/all_d.html | 30 + docs/html/search/all_d.js | 5 + docs/html/search/all_e.html | 30 + docs/html/search/all_e.js | 11 + docs/html/search/classes_0.html | 30 + docs/html/search/classes_0.js | 13 + docs/html/search/classes_1.html | 30 + docs/html/search/classes_1.js | 4 + docs/html/search/classes_2.html | 30 + docs/html/search/classes_2.js | 4 + docs/html/search/close.png | Bin 0 -> 273 bytes docs/html/search/enums_0.html | 30 + docs/html/search/enums_0.js | 4 + docs/html/search/enums_1.html | 30 + docs/html/search/enums_1.js | 4 + docs/html/search/enumvalues_0.html | 30 + docs/html/search/enumvalues_0.js | 4 + docs/html/search/enumvalues_1.html | 30 + docs/html/search/enumvalues_1.js | 4 + docs/html/search/enumvalues_2.html | 30 + docs/html/search/enumvalues_2.js | 5 + docs/html/search/files_0.html | 30 + docs/html/search/files_0.js | 23 + docs/html/search/files_1.html | 30 + docs/html/search/files_1.js | 4 + docs/html/search/files_2.html | 30 + docs/html/search/files_2.js | 5 + docs/html/search/functions_0.html | 30 + docs/html/search/functions_0.js | 5 + docs/html/search/functions_1.html | 30 + docs/html/search/functions_1.js | 11 + docs/html/search/functions_2.html | 30 + docs/html/search/functions_2.js | 7 + docs/html/search/functions_3.html | 30 + docs/html/search/functions_3.js | 4 + docs/html/search/functions_4.html | 30 + docs/html/search/functions_4.js | 8 + docs/html/search/functions_5.html | 30 + docs/html/search/functions_5.js | 13 + docs/html/search/functions_6.html | 30 + docs/html/search/functions_6.js | 4 + docs/html/search/functions_7.html | 30 + docs/html/search/functions_7.js | 9 + docs/html/search/functions_8.html | 30 + docs/html/search/functions_8.js | 9 + docs/html/search/functions_9.html | 30 + docs/html/search/functions_9.js | 5 + docs/html/search/functions_a.html | 30 + docs/html/search/functions_a.js | 5 + docs/html/search/functions_b.html | 30 + docs/html/search/functions_b.js | 15 + docs/html/search/functions_c.html | 30 + docs/html/search/functions_c.js | 11 + docs/html/search/mag_sel.png | Bin 0 -> 465 bytes docs/html/search/nomatches.html | 12 + docs/html/search/search.css | 271 +++ docs/html/search/search.js | 814 ++++++++ docs/html/search/search_l.png | Bin 0 -> 567 bytes docs/html/search/search_m.png | Bin 0 -> 158 bytes docs/html/search/search_r.png | Bin 0 -> 553 bytes docs/html/search/searchdata.js | 33 + docs/html/search/variables_0.html | 30 + docs/html/search/variables_0.js | 6 + docs/html/search/variables_1.html | 30 + docs/html/search/variables_1.js | 5 + docs/html/search/variables_2.html | 30 + docs/html/search/variables_2.js | 4 + docs/html/search/variables_3.html | 30 + docs/html/search/variables_3.js | 5 + docs/html/search/variables_4.html | 30 + docs/html/search/variables_4.js | 5 + docs/html/search/variables_5.html | 30 + docs/html/search/variables_5.js | 4 + docs/html/search/variables_6.html | 30 + docs/html/search/variables_6.js | 5 + docs/html/splitbar.png | Bin 0 -> 282 bytes docs/html/struct_layer_object-members.html | 113 ++ docs/html/struct_layer_object.html | 234 +++ docs/html/struct_layer_object.js | 9 + .../html/struct_layer_object__coll__graph.dot | 9 + docs/html/sync_off.png | Bin 0 -> 843 bytes docs/html/sync_on.png | Bin 0 -> 830 bytes docs/html/tab_a.png | Bin 0 -> 127 bytes docs/html/tab_b.png | Bin 0 -> 160 bytes docs/html/tab_h.png | Bin 0 -> 155 bytes docs/html/tab_s.png | Bin 0 -> 167 bytes docs/html/tabs.css | 1 + 379 files changed, 26616 insertions(+) create mode 100644 docs/html/_intelli_color_picker_8h.html create mode 100644 docs/html/_intelli_color_picker_8h__dep__incl.dot create mode 100644 docs/html/_intelli_color_picker_8h__incl.dot create mode 100644 docs/html/_intelli_color_picker_8h_source.html create mode 100644 docs/html/_intelli_helper_2_intelli_color_picker_8cpp.html create mode 100644 docs/html/_intelli_helper_2_intelli_color_picker_8cpp__incl.dot create mode 100644 docs/html/_intelli_helper_2_intelli_color_picker_8cpp_source.html create mode 100644 docs/html/_intelli_helper_8cpp.html create mode 100644 docs/html/_intelli_helper_8cpp__incl.dot create mode 100644 docs/html/_intelli_helper_8cpp_source.html create mode 100644 docs/html/_intelli_helper_8h.html create mode 100644 docs/html/_intelli_helper_8h__dep__incl.dot create mode 100644 docs/html/_intelli_helper_8h__incl.dot create mode 100644 docs/html/_intelli_helper_8h_source.html create mode 100644 docs/html/_intelli_image_8cpp.html create mode 100644 docs/html/_intelli_image_8cpp__incl.dot create mode 100644 docs/html/_intelli_image_8cpp_source.html create mode 100644 docs/html/_intelli_image_8h.html create mode 100644 docs/html/_intelli_image_8h.js create mode 100644 docs/html/_intelli_image_8h__dep__incl.dot create mode 100644 docs/html/_intelli_image_8h__incl.dot create mode 100644 docs/html/_intelli_image_8h_source.html create mode 100644 docs/html/_intelli_photo_gui_8cpp.html create mode 100644 docs/html/_intelli_photo_gui_8cpp.js create mode 100644 docs/html/_intelli_photo_gui_8cpp__incl.dot create mode 100644 docs/html/_intelli_photo_gui_8cpp_source.html create mode 100644 docs/html/_intelli_photo_gui_8h.html create mode 100644 docs/html/_intelli_photo_gui_8h__dep__incl.dot create mode 100644 docs/html/_intelli_photo_gui_8h__incl.dot create mode 100644 docs/html/_intelli_photo_gui_8h_source.html create mode 100644 docs/html/_intelli_raster_image_8cpp.html create mode 100644 docs/html/_intelli_raster_image_8cpp__incl.dot create mode 100644 docs/html/_intelli_raster_image_8cpp_source.html create mode 100644 docs/html/_intelli_raster_image_8h.html create mode 100644 docs/html/_intelli_raster_image_8h__dep__incl.dot create mode 100644 docs/html/_intelli_raster_image_8h__incl.dot create mode 100644 docs/html/_intelli_raster_image_8h_source.html create mode 100644 docs/html/_intelli_shaped_image_8cpp.html create mode 100644 docs/html/_intelli_shaped_image_8cpp__incl.dot create mode 100644 docs/html/_intelli_shaped_image_8cpp_source.html create mode 100644 docs/html/_intelli_shaped_image_8h.html create mode 100644 docs/html/_intelli_shaped_image_8h__dep__incl.dot create mode 100644 docs/html/_intelli_shaped_image_8h__incl.dot create mode 100644 docs/html/_intelli_shaped_image_8h_source.html create mode 100644 docs/html/_intelli_tool_8cpp.html create mode 100644 docs/html/_intelli_tool_8cpp__incl.dot create mode 100644 docs/html/_intelli_tool_8cpp_source.html create mode 100644 docs/html/_intelli_tool_8h.html create mode 100644 docs/html/_intelli_tool_8h__dep__incl.dot create mode 100644 docs/html/_intelli_tool_8h__incl.dot create mode 100644 docs/html/_intelli_tool_8h_source.html create mode 100644 docs/html/_intelli_tool_line_8cpp.html create mode 100644 docs/html/_intelli_tool_line_8cpp__incl.dot create mode 100644 docs/html/_intelli_tool_line_8cpp_source.html create mode 100644 docs/html/_intelli_tool_line_8h.html create mode 100644 docs/html/_intelli_tool_line_8h.js create mode 100644 docs/html/_intelli_tool_line_8h__dep__incl.dot create mode 100644 docs/html/_intelli_tool_line_8h__incl.dot create mode 100644 docs/html/_intelli_tool_line_8h_source.html create mode 100644 docs/html/_intelli_tool_pen_8cpp.html create mode 100644 docs/html/_intelli_tool_pen_8cpp__incl.dot create mode 100644 docs/html/_intelli_tool_pen_8cpp_source.html create mode 100644 docs/html/_intelli_tool_pen_8h.html create mode 100644 docs/html/_intelli_tool_pen_8h__dep__incl.dot create mode 100644 docs/html/_intelli_tool_pen_8h__incl.dot create mode 100644 docs/html/_intelli_tool_pen_8h_source.html create mode 100644 docs/html/_intelli_tool_plain_8cpp.html create mode 100644 docs/html/_intelli_tool_plain_8cpp__incl.dot create mode 100644 docs/html/_intelli_tool_plain_8cpp_source.html create mode 100644 docs/html/_intelli_tool_plain_8h.html create mode 100644 docs/html/_intelli_tool_plain_8h__dep__incl.dot create mode 100644 docs/html/_intelli_tool_plain_8h__incl.dot create mode 100644 docs/html/_intelli_tool_plain_8h_source.html create mode 100644 docs/html/_painting_area_8cpp.html create mode 100644 docs/html/_painting_area_8cpp__incl.dot create mode 100644 docs/html/_painting_area_8cpp_source.html create mode 100644 docs/html/_painting_area_8h.html create mode 100644 docs/html/_painting_area_8h__dep__incl.dot create mode 100644 docs/html/_painting_area_8h__incl.dot create mode 100644 docs/html/_painting_area_8h_source.html create mode 100644 docs/html/_tool_2_intelli_color_picker_8cpp.html create mode 100644 docs/html/_tool_2_intelli_color_picker_8cpp__incl.dot create mode 100644 docs/html/_tool_2_intelli_color_picker_8cpp_source.html create mode 100644 docs/html/annotated.html create mode 100644 docs/html/annotated_dup.js create mode 100644 docs/html/bc_s.png create mode 100644 docs/html/bdwn.png create mode 100644 docs/html/class_intelli_color_picker-members.html create mode 100644 docs/html/class_intelli_color_picker.html create mode 100644 docs/html/class_intelli_color_picker.js create mode 100644 docs/html/class_intelli_color_picker_a437a6f20bf2fc0a4cbaf4c030c2a26d9_icgraph.dot create mode 100644 docs/html/class_intelli_color_picker_a55568fbf5dc783f06284b7031ffe9415_icgraph.dot create mode 100644 docs/html/class_intelli_color_picker_a7e2ddbbbfbed383f06b24e5bf6b27ae8_icgraph.dot create mode 100644 docs/html/class_intelli_color_picker_a86bf4a940e4a0e465e30cbdf28748931_icgraph.dot create mode 100644 docs/html/class_intelli_color_picker_aae2eb27b928fe9388b9398b0556303b7_icgraph.dot create mode 100644 docs/html/class_intelli_helper-members.html create mode 100644 docs/html/class_intelli_helper.html create mode 100644 docs/html/class_intelli_helper_a04bdb4f53b89dded693ba6e896f4c63f_cgraph.dot create mode 100644 docs/html/class_intelli_helper_a04bdb4f53b89dded693ba6e896f4c63f_icgraph.dot create mode 100644 docs/html/class_intelli_helper_a67fc007dda64187f6cef7fba3fcd9e40_icgraph.dot create mode 100644 docs/html/class_intelli_image-members.html create mode 100644 docs/html/class_intelli_image.html create mode 100644 docs/html/class_intelli_image.js create mode 100644 docs/html/class_intelli_image__inherit__graph.dot create mode 100644 docs/html/class_intelli_image_a6be622810dc2bc756054bb5769becb06_icgraph.dot create mode 100644 docs/html/class_intelli_image_aebbced93f4744fad81b7f141b21f4ab2_icgraph.dot create mode 100644 docs/html/class_intelli_image_aec0e9c8184d89dee33fd9adefbd2f8aa_icgraph.dot create mode 100644 docs/html/class_intelli_image_af3c859f5c409e37051edfd9e9fbca056_icgraph.dot create mode 100644 docs/html/class_intelli_image_af8eddbd9aa54c8d37590d1d4bf8dce31_icgraph.dot create mode 100644 docs/html/class_intelli_photo_gui-members.html create mode 100644 docs/html/class_intelli_photo_gui.html create mode 100644 docs/html/class_intelli_photo_gui.js create mode 100644 docs/html/class_intelli_photo_gui__coll__graph.dot create mode 100644 docs/html/class_intelli_photo_gui__inherit__graph.dot create mode 100644 docs/html/class_intelli_raster_image-members.html create mode 100644 docs/html/class_intelli_raster_image.html create mode 100644 docs/html/class_intelli_raster_image.js create mode 100644 docs/html/class_intelli_raster_image__coll__graph.dot create mode 100644 docs/html/class_intelli_raster_image__inherit__graph.dot create mode 100644 docs/html/class_intelli_raster_image_a612d79124f0e2c158a4f0abbe4b5f97f_cgraph.dot create mode 100644 docs/html/class_intelli_raster_image_a8f901301b106504de3c27308ade897dc_cgraph.dot create mode 100644 docs/html/class_intelli_raster_image_aad9b561fe499a4da3c6ef98971aa3468_icgraph.dot create mode 100644 docs/html/class_intelli_raster_image_ae43393397b0141a8033fe34d3a1b1884_icgraph.dot create mode 100644 docs/html/class_intelli_shaped_image-members.html create mode 100644 docs/html/class_intelli_shaped_image.html create mode 100644 docs/html/class_intelli_shaped_image.js create mode 100644 docs/html/class_intelli_shaped_image__coll__graph.dot create mode 100644 docs/html/class_intelli_shaped_image__inherit__graph.dot create mode 100644 docs/html/class_intelli_shaped_image_a0221d93c3c8990f7dab332454cc21f50_cgraph.dot create mode 100644 docs/html/class_intelli_shaped_image_a0221d93c3c8990f7dab332454cc21f50_icgraph.dot create mode 100644 docs/html/class_intelli_shaped_image_a0f834c3f255baeb50c98ef335a6d0ea9_icgraph.dot create mode 100644 docs/html/class_intelli_shaped_image_a4b69d75de7a3b85032482982f249458e_cgraph.dot create mode 100644 docs/html/class_intelli_shaped_image_a4b69d75de7a3b85032482982f249458e_icgraph.dot create mode 100644 docs/html/class_intelli_shaped_image_a68cf374247c16f07fd84d50e4cd05630_icgraph.dot create mode 100644 docs/html/class_intelli_shaped_image_ac6a99e1a96134073bceea252b37636cc_cgraph.dot create mode 100644 docs/html/class_intelli_shaped_image_aed0b31e0fa771104399d1f5ff39a0337_cgraph.dot create mode 100644 docs/html/class_intelli_tool-members.html create mode 100644 docs/html/class_intelli_tool.html create mode 100644 docs/html/class_intelli_tool.js create mode 100644 docs/html/class_intelli_tool__coll__graph.dot create mode 100644 docs/html/class_intelli_tool__inherit__graph.dot create mode 100644 docs/html/class_intelli_tool_a16189b00307c6d7e89f28198f54404b0_icgraph.dot create mode 100644 docs/html/class_intelli_tool_a1e6aa68ac5f3c2ca02319e5ef3f0c966_icgraph.dot create mode 100644 docs/html/class_intelli_tool_a34b7ef1dde96b94a0ce450a25ae1778c_cgraph.dot create mode 100644 docs/html/class_intelli_tool_a34b7ef1dde96b94a0ce450a25ae1778c_icgraph.dot create mode 100644 docs/html/class_intelli_tool_a906a2575c16c8a33cb2a5197f8d8cc5b_cgraph.dot create mode 100644 docs/html/class_intelli_tool_a906a2575c16c8a33cb2a5197f8d8cc5b_icgraph.dot create mode 100644 docs/html/class_intelli_tool_ac10e20414cd8855a2f9b103fb6408639_cgraph.dot create mode 100644 docs/html/class_intelli_tool_ac10e20414cd8855a2f9b103fb6408639_icgraph.dot create mode 100644 docs/html/class_intelli_tool_line-members.html create mode 100644 docs/html/class_intelli_tool_line.html create mode 100644 docs/html/class_intelli_tool_line.js create mode 100644 docs/html/class_intelli_tool_line__coll__graph.dot create mode 100644 docs/html/class_intelli_tool_line__inherit__graph.dot create mode 100644 docs/html/class_intelli_tool_line_a155d676a5f98311217eb095be4759846_cgraph.dot create mode 100644 docs/html/class_intelli_tool_line_a6214918cba5753f89d97de4559a2b9b2_cgraph.dot create mode 100644 docs/html/class_intelli_tool_line_a6cce59f3017936214b10b47252a898a3_cgraph.dot create mode 100644 docs/html/class_intelli_tool_line_abc6324ef0778823fe7e35aef8ae37f9b_cgraph.dot create mode 100644 docs/html/class_intelli_tool_line_ac93f76ff20a1c111a403b298bab02482_cgraph.dot create mode 100644 docs/html/class_intelli_tool_pen-members.html create mode 100644 docs/html/class_intelli_tool_pen.html create mode 100644 docs/html/class_intelli_tool_pen.js create mode 100644 docs/html/class_intelli_tool_pen__coll__graph.dot create mode 100644 docs/html/class_intelli_tool_pen__inherit__graph.dot create mode 100644 docs/html/class_intelli_tool_pen_a1751e3864a0d36ef42ca55021cae73ce_cgraph.dot create mode 100644 docs/html/class_intelli_tool_pen_a58d1d636497b630647ce0c4d652737c2_cgraph.dot create mode 100644 docs/html/class_intelli_tool_pen_a8ff40aef6d38eb55af31a19322429205_cgraph.dot create mode 100644 docs/html/class_intelli_tool_pen_abda7a22b9766fa4ad254324a53cab94d_cgraph.dot create mode 100644 docs/html/class_intelli_tool_pen_abf8562e8cd2da586afdf4d47b3a4ff13_cgraph.dot create mode 100644 docs/html/class_intelli_tool_plain_tool-members.html create mode 100644 docs/html/class_intelli_tool_plain_tool.html create mode 100644 docs/html/class_intelli_tool_plain_tool.js create mode 100644 docs/html/class_intelli_tool_plain_tool__coll__graph.dot create mode 100644 docs/html/class_intelli_tool_plain_tool__inherit__graph.dot create mode 100644 docs/html/class_intelli_tool_plain_tool_a2ae458f1b04eb77a47f6dca5e91e33b8_cgraph.dot create mode 100644 docs/html/class_intelli_tool_plain_tool_ab786dd5fa80af863246013d43c4b7ac9_cgraph.dot create mode 100644 docs/html/class_intelli_tool_plain_tool_ac23f5d0f07e42fd7c2ea3fc1347da400_cgraph.dot create mode 100644 docs/html/class_intelli_tool_plain_tool_acb0c46e16d2c09370a2244a936de38b1_cgraph.dot create mode 100644 docs/html/class_intelli_tool_plain_tool_ad7546a6335bb3bb4cbf0e1883788d41c_cgraph.dot create mode 100644 docs/html/class_painting_area-members.html create mode 100644 docs/html/class_painting_area.html create mode 100644 docs/html/class_painting_area.js create mode 100644 docs/html/class_painting_area__coll__graph.dot create mode 100644 docs/html/class_painting_area__inherit__graph.dot create mode 100644 docs/html/class_painting_area_a1d6d86c25efdce9fe9031a9cd01c74c8_icgraph.dot create mode 100644 docs/html/class_painting_area_a1f597740b4d7b4bc2e24c51f8cb0b6eb_cgraph.dot create mode 100644 docs/html/class_painting_area_a35b5df914acb608cc29717659793359c_cgraph.dot create mode 100644 docs/html/class_painting_area_a39ad76e1319659bfa38eee88ef33d395_icgraph.dot create mode 100644 docs/html/class_painting_area_a4735d4cf1dc58a9096d904e74c39c4df_cgraph.dot create mode 100644 docs/html/class_painting_area_a4fa0ec23e78cc59f28c823584c721460_cgraph.dot create mode 100644 docs/html/class_painting_area_a66115307ff4a99cd7ca16423c5c8ecfb_cgraph.dot create mode 100644 docs/html/class_painting_area_a71ac281e0de263208d4a3b9de74258ec_cgraph.dot create mode 100644 docs/html/class_painting_area_aa22e274b6094a9619f196cd7b49526b5_cgraph.dot create mode 100644 docs/html/class_painting_area_abfe445f8d9b70ae42bfeda874127dd15_cgraph.dot create mode 100644 docs/html/class_painting_area_ae261acaaa346610dfed489dbac17e789_cgraph.dot create mode 100644 docs/html/class_painting_area_aeb5eb394b979ea90f2be9849fdda1774_cgraph.dot create mode 100644 docs/html/classes.html create mode 100644 docs/html/closed.png create mode 100644 docs/html/dir_000000_000001.html create mode 100644 docs/html/dir_000001_000005.html create mode 100644 docs/html/dir_000002_000003.html create mode 100644 docs/html/dir_000004_000003.html create mode 100644 docs/html/dir_000004_000005.html create mode 100644 docs/html/dir_000005_000002.html create mode 100644 docs/html/dir_000005_000003.html create mode 100644 docs/html/dir_000005_000004.html create mode 100644 docs/html/dir_13830bfc3dd6736fe878600c9081919f.html create mode 100644 docs/html/dir_13830bfc3dd6736fe878600c9081919f.js create mode 100644 docs/html/dir_13830bfc3dd6736fe878600c9081919f_dep.dot create mode 100644 docs/html/dir_4e4e2e75df7fa6971448b424c011c8b5.html create mode 100644 docs/html/dir_4e4e2e75df7fa6971448b424c011c8b5.js create mode 100644 docs/html/dir_4e4e2e75df7fa6971448b424c011c8b5_dep.dot create mode 100644 docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html create mode 100644 docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.js create mode 100644 docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.dot create mode 100644 docs/html/dir_858355f3357c73763e566ff49d1e6a7a.html create mode 100644 docs/html/dir_858355f3357c73763e566ff49d1e6a7a.js create mode 100644 docs/html/dir_858355f3357c73763e566ff49d1e6a7a_dep.dot create mode 100644 docs/html/dir_8de6078cba2a961961818cf80b28fd4f.html create mode 100644 docs/html/dir_8de6078cba2a961961818cf80b28fd4f.js create mode 100644 docs/html/dir_fdbdd9841f9a730f284bb666ff3d8cfe.html create mode 100644 docs/html/dir_fdbdd9841f9a730f284bb666ff3d8cfe.js create mode 100644 docs/html/dir_fdbdd9841f9a730f284bb666ff3d8cfe_dep.dot create mode 100644 docs/html/doc.png create mode 100644 docs/html/doxygen.css create mode 100644 docs/html/doxygen.png create mode 100644 docs/html/dynsections.js create mode 100644 docs/html/files.html create mode 100644 docs/html/files_dup.js create mode 100644 docs/html/folderclosed.png create mode 100644 docs/html/folderopen.png create mode 100644 docs/html/functions.html create mode 100644 docs/html/functions_func.html create mode 100644 docs/html/functions_vars.html create mode 100644 docs/html/globals.html create mode 100644 docs/html/globals_enum.html create mode 100644 docs/html/globals_func.html create mode 100644 docs/html/graph_legend.dot create mode 100644 docs/html/graph_legend.html create mode 100644 docs/html/hierarchy.html create mode 100644 docs/html/hierarchy.js create mode 100644 docs/html/index.html create mode 100644 docs/html/inherit_graph_0.dot create mode 100644 docs/html/inherit_graph_1.dot create mode 100644 docs/html/inherit_graph_2.dot create mode 100644 docs/html/inherit_graph_3.dot create mode 100644 docs/html/inherit_graph_4.dot create mode 100644 docs/html/inherit_graph_5.dot create mode 100644 docs/html/inherit_graph_6.dot create mode 100644 docs/html/inherits.html create mode 100644 docs/html/jquery.js create mode 100644 docs/html/main_8cpp.html create mode 100644 docs/html/main_8cpp.js create mode 100644 docs/html/main_8cpp__incl.dot create mode 100644 docs/html/main_8cpp_source.html create mode 100644 docs/html/menu.js create mode 100644 docs/html/menudata.js create mode 100644 docs/html/nav_f.png create mode 100644 docs/html/nav_g.png create mode 100644 docs/html/nav_h.png create mode 100644 docs/html/navtree.css create mode 100644 docs/html/navtree.js create mode 100644 docs/html/navtreedata.js create mode 100644 docs/html/navtreeindex0.js create mode 100644 docs/html/open.png create mode 100644 docs/html/resize.js create mode 100644 docs/html/search/all_0.html create mode 100644 docs/html/search/all_0.js create mode 100644 docs/html/search/all_1.html create mode 100644 docs/html/search/all_1.js create mode 100644 docs/html/search/all_2.html create mode 100644 docs/html/search/all_2.js create mode 100644 docs/html/search/all_3.html create mode 100644 docs/html/search/all_3.js create mode 100644 docs/html/search/all_4.html create mode 100644 docs/html/search/all_4.js create mode 100644 docs/html/search/all_5.html create mode 100644 docs/html/search/all_5.js create mode 100644 docs/html/search/all_6.html create mode 100644 docs/html/search/all_6.js create mode 100644 docs/html/search/all_7.html create mode 100644 docs/html/search/all_7.js create mode 100644 docs/html/search/all_8.html create mode 100644 docs/html/search/all_8.js create mode 100644 docs/html/search/all_9.html create mode 100644 docs/html/search/all_9.js create mode 100644 docs/html/search/all_a.html create mode 100644 docs/html/search/all_a.js create mode 100644 docs/html/search/all_b.html create mode 100644 docs/html/search/all_b.js create mode 100644 docs/html/search/all_c.html create mode 100644 docs/html/search/all_c.js create mode 100644 docs/html/search/all_d.html create mode 100644 docs/html/search/all_d.js create mode 100644 docs/html/search/all_e.html create mode 100644 docs/html/search/all_e.js create mode 100644 docs/html/search/classes_0.html create mode 100644 docs/html/search/classes_0.js create mode 100644 docs/html/search/classes_1.html create mode 100644 docs/html/search/classes_1.js create mode 100644 docs/html/search/classes_2.html create mode 100644 docs/html/search/classes_2.js create mode 100644 docs/html/search/close.png create mode 100644 docs/html/search/enums_0.html create mode 100644 docs/html/search/enums_0.js create mode 100644 docs/html/search/enums_1.html create mode 100644 docs/html/search/enums_1.js create mode 100644 docs/html/search/enumvalues_0.html create mode 100644 docs/html/search/enumvalues_0.js create mode 100644 docs/html/search/enumvalues_1.html create mode 100644 docs/html/search/enumvalues_1.js create mode 100644 docs/html/search/enumvalues_2.html create mode 100644 docs/html/search/enumvalues_2.js create mode 100644 docs/html/search/files_0.html create mode 100644 docs/html/search/files_0.js create mode 100644 docs/html/search/files_1.html create mode 100644 docs/html/search/files_1.js create mode 100644 docs/html/search/files_2.html create mode 100644 docs/html/search/files_2.js create mode 100644 docs/html/search/functions_0.html create mode 100644 docs/html/search/functions_0.js create mode 100644 docs/html/search/functions_1.html create mode 100644 docs/html/search/functions_1.js create mode 100644 docs/html/search/functions_2.html create mode 100644 docs/html/search/functions_2.js create mode 100644 docs/html/search/functions_3.html create mode 100644 docs/html/search/functions_3.js create mode 100644 docs/html/search/functions_4.html create mode 100644 docs/html/search/functions_4.js create mode 100644 docs/html/search/functions_5.html create mode 100644 docs/html/search/functions_5.js create mode 100644 docs/html/search/functions_6.html create mode 100644 docs/html/search/functions_6.js create mode 100644 docs/html/search/functions_7.html create mode 100644 docs/html/search/functions_7.js create mode 100644 docs/html/search/functions_8.html create mode 100644 docs/html/search/functions_8.js create mode 100644 docs/html/search/functions_9.html create mode 100644 docs/html/search/functions_9.js create mode 100644 docs/html/search/functions_a.html create mode 100644 docs/html/search/functions_a.js create mode 100644 docs/html/search/functions_b.html create mode 100644 docs/html/search/functions_b.js create mode 100644 docs/html/search/functions_c.html create mode 100644 docs/html/search/functions_c.js create mode 100644 docs/html/search/mag_sel.png create mode 100644 docs/html/search/nomatches.html create mode 100644 docs/html/search/search.css create mode 100644 docs/html/search/search.js create mode 100644 docs/html/search/search_l.png create mode 100644 docs/html/search/search_m.png create mode 100644 docs/html/search/search_r.png create mode 100644 docs/html/search/searchdata.js create mode 100644 docs/html/search/variables_0.html create mode 100644 docs/html/search/variables_0.js create mode 100644 docs/html/search/variables_1.html create mode 100644 docs/html/search/variables_1.js create mode 100644 docs/html/search/variables_2.html create mode 100644 docs/html/search/variables_2.js create mode 100644 docs/html/search/variables_3.html create mode 100644 docs/html/search/variables_3.js create mode 100644 docs/html/search/variables_4.html create mode 100644 docs/html/search/variables_4.js create mode 100644 docs/html/search/variables_5.html create mode 100644 docs/html/search/variables_5.js create mode 100644 docs/html/search/variables_6.html create mode 100644 docs/html/search/variables_6.js create mode 100644 docs/html/splitbar.png create mode 100644 docs/html/struct_layer_object-members.html create mode 100644 docs/html/struct_layer_object.html create mode 100644 docs/html/struct_layer_object.js create mode 100644 docs/html/struct_layer_object__coll__graph.dot create mode 100644 docs/html/sync_off.png create mode 100644 docs/html/sync_on.png create mode 100644 docs/html/tab_a.png create mode 100644 docs/html/tab_b.png create mode 100644 docs/html/tab_h.png create mode 100644 docs/html/tab_s.png create mode 100644 docs/html/tabs.css diff --git a/docs/html/_intelli_color_picker_8h.html b/docs/html/_intelli_color_picker_8h.html new file mode 100644 index 0000000..0aad814 --- /dev/null +++ b/docs/html/_intelli_color_picker_8h.html @@ -0,0 +1,128 @@ + + + + + + + +IntelliPhoto: src/IntelliHelper/IntelliColorPicker.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
IntelliColorPicker.h File Reference
+
+
+
#include "QColor"
+#include "QPoint"
+#include "QColorDialog"
+
+Include dependency graph for IntelliColorPicker.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  IntelliColorPicker
 
+
+
+ + + + diff --git a/docs/html/_intelli_color_picker_8h__dep__incl.dot b/docs/html/_intelli_color_picker_8h__dep__incl.dot new file mode 100644 index 0000000..209f91b --- /dev/null +++ b/docs/html/_intelli_color_picker_8h__dep__incl.dot @@ -0,0 +1,41 @@ +digraph "src/IntelliHelper/IntelliColorPicker.h" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/IntelliHelper/Intelli\lColorPicker.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="src/IntelliHelper/Intelli\lColorPicker.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_helper_2_intelli_color_picker_8cpp.html",tooltip=" "]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="src/Layer/PaintingArea.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8h.html",tooltip=" "]; + Node3 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="src/GUI/IntelliPhotoGui.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_photo_gui_8cpp.html",tooltip=" "]; + Node3 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="src/Layer/PaintingArea.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8cpp.html",tooltip=" "]; + Node3 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="src/Tool/IntelliTool.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_8cpp.html",tooltip=" "]; + Node3 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="src/Tool/IntelliToolLine.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_line_8cpp.html",tooltip=" "]; + Node3 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="src/Tool/IntelliToolPen.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_pen_8cpp.html",tooltip=" "]; + Node3 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="src/Tool/IntelliToolPlain.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_plain_8cpp.html",tooltip=" "]; + Node1 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="src/Tool/IntelliColorPicker.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_tool_2_intelli_color_picker_8cpp.html",tooltip=" "]; + Node1 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="src/Tool/IntelliTool.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_8h.html",tooltip=" "]; + Node11 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="src/Tool/IntelliToolLine.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_line_8h.html",tooltip=" "]; + Node12 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="src/Tool/IntelliToolPen.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_pen_8h.html",tooltip=" "]; + Node13 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="src/Tool/IntelliToolPlain.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_plain_8h.html",tooltip=" "]; + Node14 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/docs/html/_intelli_color_picker_8h__incl.dot b/docs/html/_intelli_color_picker_8h__incl.dot new file mode 100644 index 0000000..da4b2b2 --- /dev/null +++ b/docs/html/_intelli_color_picker_8h__incl.dot @@ -0,0 +1,13 @@ +digraph "src/IntelliHelper/IntelliColorPicker.h" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/IntelliHelper/Intelli\lColorPicker.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="QColor",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="QColorDialog",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; +} diff --git a/docs/html/_intelli_color_picker_8h_source.html b/docs/html/_intelli_color_picker_8h_source.html new file mode 100644 index 0000000..ae4abdf --- /dev/null +++ b/docs/html/_intelli_color_picker_8h_source.html @@ -0,0 +1,139 @@ + + + + + + + +IntelliPhoto: src/IntelliHelper/IntelliColorPicker.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliColorPicker.h
+
+
+Go to the documentation of this file.
1 #ifndef INTELLITOOLSETCOLORTOOL_H
+
2 #define INTELLITOOLSETCOLORTOOL_H
+
3 
+
4 #include"QColor"
+
5 #include"QPoint"
+
6 #include"QColorDialog"
+
7 
+ +
9 public:
+ +
11  virtual ~IntelliColorPicker();
+
12 
+
13  void switchColors();
+
14 
+
15  QColor getFirstColor();
+
16  QColor getSecondColor();
+
17 
+
18  void setFirstColor(QColor Color);
+
19  void setSecondColor(QColor Color);
+
20 
+
21 private:
+
22  QColor firstColor;
+
23  QColor secondColor;
+
24 };
+
25 
+
26 #endif // INTELLITOOLSETCOLORTOOL_H
+
+
+ +
void setSecondColor(QColor Color)
+ + +
void setFirstColor(QColor Color)
+ + + + + + + diff --git a/docs/html/_intelli_helper_2_intelli_color_picker_8cpp.html b/docs/html/_intelli_helper_2_intelli_color_picker_8cpp.html new file mode 100644 index 0000000..9a0b5ef --- /dev/null +++ b/docs/html/_intelli_helper_2_intelli_color_picker_8cpp.html @@ -0,0 +1,113 @@ + + + + + + + +IntelliPhoto: src/IntelliHelper/IntelliColorPicker.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliColorPicker.cpp File Reference
+
+
+
+Include dependency graph for IntelliColorPicker.cpp:
+
+
+
+
+

Go to the source code of this file.

+
+
+ + + + diff --git a/docs/html/_intelli_helper_2_intelli_color_picker_8cpp__incl.dot b/docs/html/_intelli_helper_2_intelli_color_picker_8cpp__incl.dot new file mode 100644 index 0000000..dd89cd0 --- /dev/null +++ b/docs/html/_intelli_helper_2_intelli_color_picker_8cpp__incl.dot @@ -0,0 +1,15 @@ +digraph "src/IntelliHelper/IntelliColorPicker.cpp" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/IntelliHelper/Intelli\lColorPicker.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliColorPicker.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_color_picker_8h.html",tooltip=" "]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="QColor",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="QColorDialog",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; +} diff --git a/docs/html/_intelli_helper_2_intelli_color_picker_8cpp_source.html b/docs/html/_intelli_helper_2_intelli_color_picker_8cpp_source.html new file mode 100644 index 0000000..a93377e --- /dev/null +++ b/docs/html/_intelli_helper_2_intelli_color_picker_8cpp_source.html @@ -0,0 +1,143 @@ + + + + + + + +IntelliPhoto: src/IntelliHelper/IntelliColorPicker.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliColorPicker.cpp
+
+
+Go to the documentation of this file.
1 #include "IntelliColorPicker.h"
+
2 
+ +
4  firstColor = {255,0,0,255};
+
5  secondColor = {0,0,255,255};
+
6 }
+
7 
+ +
9 
+
10 }
+
11 
+ +
13  std::swap(firstColor, secondColor);
+
14 }
+
15 
+ +
17  return this->firstColor;
+
18 }
+
19 
+ +
21  return this->secondColor;
+
22 }
+
23 
+ +
25  this->firstColor = Color;
+
26 }
+
27 
+ +
29  this->secondColor = Color;
+
30 }
+
+
+ +
void setSecondColor(QColor Color)
+ + + +
void setFirstColor(QColor Color)
+ + + + + + diff --git a/docs/html/_intelli_helper_8cpp.html b/docs/html/_intelli_helper_8cpp.html new file mode 100644 index 0000000..62a5f07 --- /dev/null +++ b/docs/html/_intelli_helper_8cpp.html @@ -0,0 +1,114 @@ + + + + + + + +IntelliPhoto: src/IntelliHelper/IntelliHelper.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliHelper.cpp File Reference
+
+
+
#include "IntelliHelper.h"
+#include <algorithm>
+
+Include dependency graph for IntelliHelper.cpp:
+
+
+
+
+

Go to the source code of this file.

+
+
+ + + + diff --git a/docs/html/_intelli_helper_8cpp__incl.dot b/docs/html/_intelli_helper_8cpp__incl.dot new file mode 100644 index 0000000..be201ca --- /dev/null +++ b/docs/html/_intelli_helper_8cpp__incl.dot @@ -0,0 +1,13 @@ +digraph "src/IntelliHelper/IntelliHelper.cpp" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/IntelliHelper/Intelli\lHelper.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliHelper.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_helper_8h.html",tooltip=" "]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="algorithm",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; +} diff --git a/docs/html/_intelli_helper_8cpp_source.html b/docs/html/_intelli_helper_8cpp_source.html new file mode 100644 index 0000000..9716b9e --- /dev/null +++ b/docs/html/_intelli_helper_8cpp_source.html @@ -0,0 +1,108 @@ + + + + + + + +IntelliPhoto: src/IntelliHelper/IntelliHelper.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliHelper.cpp
+
+
+Go to the documentation of this file.
1 #include"IntelliHelper.h"
+
2 #include<algorithm>
+
+
+ + + + + diff --git a/docs/html/_intelli_helper_8h.html b/docs/html/_intelli_helper_8h.html new file mode 100644 index 0000000..343d087 --- /dev/null +++ b/docs/html/_intelli_helper_8h.html @@ -0,0 +1,126 @@ + + + + + + + +IntelliPhoto: src/IntelliHelper/IntelliHelper.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
IntelliHelper.h File Reference
+
+
+
#include <QPoint>
+
+Include dependency graph for IntelliHelper.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  IntelliHelper
 
+
+
+ + + + diff --git a/docs/html/_intelli_helper_8h__dep__incl.dot b/docs/html/_intelli_helper_8h__dep__incl.dot new file mode 100644 index 0000000..aaed05f --- /dev/null +++ b/docs/html/_intelli_helper_8h__dep__incl.dot @@ -0,0 +1,11 @@ +digraph "src/IntelliHelper/IntelliHelper.h" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/IntelliHelper/Intelli\lHelper.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="src/Image/IntelliShapedImage.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_shaped_image_8cpp.html",tooltip=" "]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="src/IntelliHelper/Intelli\lHelper.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_helper_8cpp.html",tooltip=" "]; +} diff --git a/docs/html/_intelli_helper_8h__incl.dot b/docs/html/_intelli_helper_8h__incl.dot new file mode 100644 index 0000000..da6d923 --- /dev/null +++ b/docs/html/_intelli_helper_8h__incl.dot @@ -0,0 +1,9 @@ +digraph "src/IntelliHelper/IntelliHelper.h" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/IntelliHelper/Intelli\lHelper.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; +} diff --git a/docs/html/_intelli_helper_8h_source.html b/docs/html/_intelli_helper_8h_source.html new file mode 100644 index 0000000..db4cca8 --- /dev/null +++ b/docs/html/_intelli_helper_8h_source.html @@ -0,0 +1,138 @@ + + + + + + + +IntelliPhoto: src/IntelliHelper/IntelliHelper.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliHelper.h
+
+
+Go to the documentation of this file.
1 #ifndef INTELLIHELPER_H
+
2 #define INTELLIHELPER_H
+
3 
+
4 #include<QPoint>
+
5 
+
6 
+ +
8 
+
9 public:
+
10 
+
11  static inline float sign(QPoint& p1, QPoint& p2, QPoint& p3){
+
12  return (p1.x()-p3.x())*(p2.y()-p3.y())-(p2.x()-p3.x())*(p1.y()-p3.y());
+
13  }
+
14 
+
15  static inline bool isInTriangle(QPoint& A, QPoint& B, QPoint& C, QPoint& P){
+
16  float val1, val2, val3;
+
17  bool neg, pos;
+
18 
+
19  val1 = IntelliHelper::sign(P,A,B);
+
20  val2 = IntelliHelper::sign(P,B,C);
+
21  val3 = IntelliHelper::sign(P,C,A);
+
22 
+
23  neg = (val1<0.f) || (val2<0.f) || (val3<0.f);
+
24  pos = (val1>0.f) || (val2>0.f) || (val3>0.f);
+
25 
+
26  return !(neg && pos);
+
27  }
+
28 };
+
29 
+
30 #endif
+
+
+
static bool isInTriangle(QPoint &A, QPoint &B, QPoint &C, QPoint &P)
Definition: IntelliHelper.h:15
+
static float sign(QPoint &p1, QPoint &p2, QPoint &p3)
Definition: IntelliHelper.h:11
+ + + + + diff --git a/docs/html/_intelli_image_8cpp.html b/docs/html/_intelli_image_8cpp.html new file mode 100644 index 0000000..8bdf8b0 --- /dev/null +++ b/docs/html/_intelli_image_8cpp.html @@ -0,0 +1,115 @@ + + + + + + + +IntelliPhoto: src/Image/IntelliImage.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliImage.cpp File Reference
+
+
+
#include "Image/IntelliImage.h"
+#include <QSize>
+#include <QPainter>
+
+Include dependency graph for IntelliImage.cpp:
+
+
+
+
+

Go to the source code of this file.

+
+
+ + + + diff --git a/docs/html/_intelli_image_8cpp__incl.dot b/docs/html/_intelli_image_8cpp__incl.dot new file mode 100644 index 0000000..5fee696 --- /dev/null +++ b/docs/html/_intelli_image_8cpp__incl.dot @@ -0,0 +1,24 @@ +digraph "src/Image/IntelliImage.cpp" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/Image/IntelliImage.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="Image/IntelliImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_image_8h.html",tooltip=" "]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="QImage",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="QColor",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="QSize",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="vector",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="QPainter",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; +} diff --git a/docs/html/_intelli_image_8cpp_source.html b/docs/html/_intelli_image_8cpp_source.html new file mode 100644 index 0000000..f2b6d70 --- /dev/null +++ b/docs/html/_intelli_image_8cpp_source.html @@ -0,0 +1,183 @@ + + + + + + + +IntelliPhoto: src/Image/IntelliImage.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliImage.cpp
+
+
+Go to the documentation of this file.
1 #include"Image/IntelliImage.h"
+
2 #include<QSize>
+
3 #include<QPainter>
+
4 
+
5 IntelliImage::IntelliImage(int weight, int height)
+
6  :imageData(QSize(weight, height), QImage::Format_ARGB32){
+
7  imageData.fill(QColor(255,255,255,255));
+
8 }
+
9 
+ +
11 
+
12 }
+
13 
+
14 bool IntelliImage::loadImage(const QString &fileName){
+
15  // Holds the image
+
16  QImage loadedImage;
+
17 
+
18  // If the image wasn't loaded leave this function
+
19  if (!loadedImage.load(fileName))
+
20  return false;
+
21 
+
22  // scaled Image to size of Layer
+
23  loadedImage = loadedImage.scaled(imageData.size(),Qt::IgnoreAspectRatio);
+
24 
+
25  imageData = loadedImage.convertToFormat(QImage::Format_ARGB32);
+
26  return true;
+
27 }
+
28 
+
29 void IntelliImage::resizeImage(QImage *image, const QSize &newSize){
+
30  // Check if we need to redraw the image
+
31  if (image->size() == newSize)
+
32  return;
+
33 
+
34  // Create a new image to display and fill it with white
+
35  QImage newImage(newSize, QImage::Format_ARGB32);
+
36  newImage.fill(qRgb(255, 255, 255));
+
37 
+
38  // Draw the image
+
39  QPainter painter(&newImage);
+
40  painter.drawImage(QPoint(0, 0), *image);
+
41  *image = newImage;
+
42 }
+
43 
+
44 void IntelliImage::drawPixel(const QPoint &p1, const QColor& color){
+
45  // Used to draw on the widget
+
46  QPainter painter(&imageData);
+
47 
+
48  // Set the current settings for the pen
+
49  painter.setPen(QPen(color, 1, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
+
50 
+
51  // Draw a line from the last registered point to the current
+
52  painter.drawPoint(p1);
+
53 }
+
54 
+
55 void IntelliImage::drawLine(const QPoint &p1, const QPoint& p2, const QColor& color, const int& penWidth){
+
56  // Used to draw on the widget
+
57  QPainter painter(&imageData);
+
58 
+
59  // Set the current settings for the pen
+
60  painter.setPen(QPen(color, penWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
+
61 
+
62  // Draw a line from the last registered point to the current
+
63  painter.drawLine(p1, p2);
+
64 
+
65 }
+
66 
+
67 void IntelliImage::drawPlain(const QColor& color){
+
68  imageData.fill(color);
+
69 }
+
+
+
virtual void drawLine(const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth)
+ +
virtual ~IntelliImage()=0
+
virtual void drawPixel(const QPoint &p1, const QColor &color)
+
virtual bool loadImage(const QString &fileName)
+
IntelliImage(int weight, int height)
Definition: IntelliImage.cpp:5
+
void resizeImage(QImage *image, const QSize &newSize)
+
QImage imageData
Definition: IntelliImage.h:23
+
virtual void drawPlain(const QColor &color)
+ + + + diff --git a/docs/html/_intelli_image_8h.html b/docs/html/_intelli_image_8h.html new file mode 100644 index 0000000..4da6870 --- /dev/null +++ b/docs/html/_intelli_image_8h.html @@ -0,0 +1,168 @@ + + + + + + + +IntelliPhoto: src/Image/IntelliImage.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
IntelliImage.h File Reference
+
+
+
#include <QImage>
+#include <QPoint>
+#include <QColor>
+#include <QSize>
+#include <QWidget>
+#include <vector>
+
+Include dependency graph for IntelliImage.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  IntelliImage
 
+ + + +

+Enumerations

enum  ImageType { ImageType::Raster_Image, +ImageType::Shaped_Image + }
 
+

Enumeration Type Documentation

+ +

◆ ImageType

+ +
+
+ + + + + +
+ + + + +
enum ImageType
+
+strong
+
+ + + +
Enumerator
Raster_Image 
Shaped_Image 
+ +

Definition at line 11 of file IntelliImage.h.

+ +
+
+
+
+ + + + diff --git a/docs/html/_intelli_image_8h.js b/docs/html/_intelli_image_8h.js new file mode 100644 index 0000000..dc61b3e --- /dev/null +++ b/docs/html/_intelli_image_8h.js @@ -0,0 +1,8 @@ +var _intelli_image_8h = +[ + [ "IntelliImage", "class_intelli_image.html", "class_intelli_image" ], + [ "ImageType", "_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0", [ + [ "Raster_Image", "_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0a80e1612d2117f2b25530317279ffe7b3", null ], + [ "Shaped_Image", "_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0ab7e2d2c1c171e5a0e0b6b548449df79d", null ] + ] ] +]; \ No newline at end of file diff --git a/docs/html/_intelli_image_8h__dep__incl.dot b/docs/html/_intelli_image_8h__dep__incl.dot new file mode 100644 index 0000000..75d3bc7 --- /dev/null +++ b/docs/html/_intelli_image_8h__dep__incl.dot @@ -0,0 +1,35 @@ +digraph "src/Image/IntelliImage.h" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/Image/IntelliImage.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="src/Image/IntelliImage.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_image_8cpp.html",tooltip=" "]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="src/Image/IntelliRasterImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_raster_image_8h.html",tooltip=" "]; + Node3 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="src/Image/IntelliRasterImage.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_raster_image_8cpp.html",tooltip=" "]; + Node3 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="src/Image/IntelliShapedImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_shaped_image_8h.html",tooltip=" "]; + Node5 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="src/Image/IntelliShapedImage.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_shaped_image_8cpp.html",tooltip=" "]; + Node5 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="src/Layer/PaintingArea.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8h.html",tooltip=" "]; + Node7 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="src/GUI/IntelliPhotoGui.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_photo_gui_8cpp.html",tooltip=" "]; + Node7 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="src/Layer/PaintingArea.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8cpp.html",tooltip=" "]; + Node7 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="src/Tool/IntelliTool.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_8cpp.html",tooltip=" "]; + Node7 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="src/Tool/IntelliToolLine.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_line_8cpp.html",tooltip=" "]; + Node7 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="src/Tool/IntelliToolPen.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_pen_8cpp.html",tooltip=" "]; + Node7 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="src/Tool/IntelliToolPlain.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_plain_8cpp.html",tooltip=" "]; + Node5 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/docs/html/_intelli_image_8h__incl.dot b/docs/html/_intelli_image_8h__incl.dot new file mode 100644 index 0000000..1ffcd5e --- /dev/null +++ b/docs/html/_intelli_image_8h__incl.dot @@ -0,0 +1,19 @@ +digraph "src/Image/IntelliImage.h" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/Image/IntelliImage.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="QImage",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="QColor",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="QSize",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="vector",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; +} diff --git a/docs/html/_intelli_image_8h_source.html b/docs/html/_intelli_image_8h_source.html new file mode 100644 index 0000000..bf28f19 --- /dev/null +++ b/docs/html/_intelli_image_8h_source.html @@ -0,0 +1,177 @@ + + + + + + + +IntelliPhoto: src/Image/IntelliImage.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliImage.h
+
+
+Go to the documentation of this file.
1 #ifndef INTELLIIMAGE_H
+
2 #define INTELLIIMAGE_H
+
3 
+
4 #include<QImage>
+
5 #include<QPoint>
+
6 #include<QColor>
+
7 #include<QSize>
+
8 #include<QWidget>
+
9 #include<vector>
+
10 
+
11 enum class ImageType{
+ + +
14 };
+
15 
+
16 class IntelliTool;
+
17 
+ +
19  friend IntelliTool;
+
20 protected:
+
21  void resizeImage(QImage *image, const QSize &newSize);
+
22 
+
23  QImage imageData;
+
24 
+
25  //calculate with polygon
+
26 public:
+
27  IntelliImage(int weight, int height);
+
28  virtual ~IntelliImage() = 0;
+
29 
+
30 
+
31  //start on top left
+
32  virtual void drawPixel(const QPoint &p1, const QColor& color);
+
33  virtual void drawLine(const QPoint &p1, const QPoint& p2, const QColor& color, const int& penWidth);
+
34  virtual void drawPlain(const QColor& color);
+
35 
+
36  //returns the filtered output
+
37  virtual QImage getDisplayable(const QSize& displaySize, int alpha)=0;
+
38  virtual QImage getDisplayable(int alpha=255)=0;
+
39 
+
40  //gets a copy of the image !allocated
+
41  virtual IntelliImage* getDeepCopy()=0;
+
42  virtual void calculateVisiblity()=0;
+
43 
+
44  //returns the filtered output
+
45 
+
46  //sets the data for the visible image
+
47  virtual void setPolygon(const std::vector<QPoint>& polygonData)=0;
+
48  virtual std::vector<QPoint> getPolygonData(){ return std::vector<QPoint>();}
+
49 
+
50  //loads an image to the ColorBuffer
+
51  virtual bool loadImage(const QString &fileName);
+
52 };
+
53 
+
54 #endif
+
+
+
ImageType
Definition: IntelliImage.h:11
+
virtual void drawLine(const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth)
+
virtual ~IntelliImage()=0
+
virtual void drawPixel(const QPoint &p1, const QColor &color)
+
virtual bool loadImage(const QString &fileName)
+
virtual QImage getDisplayable(const QSize &displaySize, int alpha)=0
+ +
virtual std::vector< QPoint > getPolygonData()
Definition: IntelliImage.h:48
+
IntelliImage(int weight, int height)
Definition: IntelliImage.cpp:5
+ + +
void resizeImage(QImage *image, const QSize &newSize)
+
QImage imageData
Definition: IntelliImage.h:23
+ +
virtual IntelliImage * getDeepCopy()=0
+
virtual void calculateVisiblity()=0
+
virtual void drawPlain(const QColor &color)
+
virtual void setPolygon(const std::vector< QPoint > &polygonData)=0
+ + + + diff --git a/docs/html/_intelli_photo_gui_8cpp.html b/docs/html/_intelli_photo_gui_8cpp.html new file mode 100644 index 0000000..948e28c --- /dev/null +++ b/docs/html/_intelli_photo_gui_8cpp.html @@ -0,0 +1,165 @@ + + + + + + + +IntelliPhoto: src/GUI/IntelliPhotoGui.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
IntelliPhotoGui.cpp File Reference
+
+
+
#include <QtWidgets>
+#include <QPixmap>
+#include "IntelliPhotoGui.h"
+#include "Layer/PaintingArea.h"
+
+Include dependency graph for IntelliPhotoGui.cpp:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + +

+Functions

void slotCreatePenTool ()
 
void slotCreateFloodFillTool ()
 
+

Function Documentation

+ +

◆ slotCreateFloodFillTool()

+ +
+
+ + + + + + + +
void slotCreateFloodFillTool ()
+
+ +

Definition at line 111 of file IntelliPhotoGui.cpp.

+ +
+
+ +

◆ slotCreatePenTool()

+ +
+
+ + + + + + + +
void slotCreatePenTool ()
+
+ +

Definition at line 107 of file IntelliPhotoGui.cpp.

+ +
+
+
+
+ + + + diff --git a/docs/html/_intelli_photo_gui_8cpp.js b/docs/html/_intelli_photo_gui_8cpp.js new file mode 100644 index 0000000..ebdbfbd --- /dev/null +++ b/docs/html/_intelli_photo_gui_8cpp.js @@ -0,0 +1,5 @@ +var _intelli_photo_gui_8cpp = +[ + [ "slotCreateFloodFillTool", "_intelli_photo_gui_8cpp.html#ac2f8320173dfaf943bb39e39cb1a23e5", null ], + [ "slotCreatePenTool", "_intelli_photo_gui_8cpp.html#a30169da42b55e0339af0d28dfc8ccd40", null ] +]; \ No newline at end of file diff --git a/docs/html/_intelli_photo_gui_8cpp__incl.dot b/docs/html/_intelli_photo_gui_8cpp__incl.dot new file mode 100644 index 0000000..99cc8d9 --- /dev/null +++ b/docs/html/_intelli_photo_gui_8cpp__incl.dot @@ -0,0 +1,64 @@ +digraph "src/GUI/IntelliPhotoGui.cpp" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/GUI/IntelliPhotoGui.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="QtWidgets",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="QPixmap",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliPhotoGui.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_photo_gui_8h.html",tooltip=" "]; + Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="QList",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node4 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="QMainWindow",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node4 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="QGridLayout",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node4 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="QPushButton",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node4 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="QTextEdit",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node4 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="QLabel",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node4 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="QLineEdit",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="Layer/PaintingArea.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8h.html",tooltip=" "]; + Node12 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="QColor",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node12 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="QImage",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node12 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node12 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node12 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="Image/IntelliImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_image_8h.html",tooltip=" "]; + Node17 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 [label="QSize",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node17 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 [label="vector",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node12 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 [label="Image/IntelliRasterImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_raster_image_8h.html",tooltip=" "]; + Node20 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node21 [label="Image/IntelliShapedImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_shaped_image_8h.html",tooltip=" "]; + Node21 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node22 [label="Tool/IntelliTool.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_8h.html",tooltip=" "]; + Node22 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node23 [label="IntelliHelper/IntelliColor\lPicker.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_color_picker_8h.html",tooltip=" "]; + Node23 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node23 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node23 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node24 [label="QColorDialog",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node22 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/docs/html/_intelli_photo_gui_8cpp_source.html b/docs/html/_intelli_photo_gui_8cpp_source.html new file mode 100644 index 0000000..c2b3701 --- /dev/null +++ b/docs/html/_intelli_photo_gui_8cpp_source.html @@ -0,0 +1,602 @@ + + + + + + + +IntelliPhoto: src/GUI/IntelliPhotoGui.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliPhotoGui.cpp
+
+
+Go to the documentation of this file.
1 // ---------- IntelliPhotoGui.cpp ----------
+
2 
+
3 #include <QtWidgets>
+
4 #include <QPixmap>
+
5 
+
6 #include "IntelliPhotoGui.h"
+
7 #include "Layer/PaintingArea.h"
+
8 
+
9 // IntelliPhotoGui constructor
+ +
11  //create Gui elements and lay them out
+
12  createGui();
+
13  // Create actions
+
14  createActions();
+
15  //create Menus
+
16  createMenus();
+
17  //set style of the gui
+
18  setIntelliStyle();
+
19 
+
20  // Size the app
+
21  showMaximized();
+
22 }
+
23 
+
24 // User tried to close the app
+
25 void IntelliPhotoGui::closeEvent(QCloseEvent *event){
+
26  // If they try to close maybeSave() returns true
+
27  // if no changes have been made and the app closes
+
28  if (maybeSave()) {
+
29  event->accept();
+
30  } else {
+
31 
+
32  // If there have been changes ignore the event
+
33  event->ignore();
+
34  }
+
35 }
+
36 
+
37 // Check if the current image has been changed and then
+
38 // open a dialog to open a file
+
39 void IntelliPhotoGui::slotOpen(){
+
40  // Check if changes have been made since last save
+
41  // maybeSave() returns true if no changes have been made
+
42  if (maybeSave()) {
+
43 
+
44  // Get the file to open from a dialog
+
45  // tr sets the window title to Open File
+
46  // QDir opens the current dirctory
+
47  QString fileName = QFileDialog::getOpenFileName(this,
+
48  tr("Open File"), QDir::currentPath());
+
49 
+
50  // If we have a file name load the image and place
+
51  // it in the paintingArea
+
52  if (!fileName.isEmpty())
+
53  paintingArea->open(fileName);
+
54  }
+
55 }
+
56 
+
57 // Called when the user clicks Save As in the menu
+
58 void IntelliPhotoGui::slotSave(){
+
59  // A QAction represents the action of the user clicking
+
60  QAction *action = qobject_cast<QAction *>(sender());
+
61 
+
62  // Stores the array of bytes of the users data
+
63  QByteArray fileFormat = action->data().toByteArray();
+
64 
+
65  // Pass it to be saved
+
66  saveFile(fileFormat);
+
67 }
+
68 
+
69 // Opens a dialog that allows the user to create a New Layer
+
70 void IntelliPhotoGui::slotCreateNewLayer(){
+
71  // Stores button value
+
72  bool ok1, ok2;
+
73 
+
74  // tr("New Layer") is the title
+
75  // the next tr is the text to display
+
76  // Define the standard Value, min, max, step and ok button
+
77  int width = QInputDialog::getInt(this, tr("New Layer"),
+
78  tr("Width:"),
+
79  200,1, 500, 1, &ok1);
+
80  int height = QInputDialog::getInt(this, tr("New Layer"),
+
81  tr("Height:"),
+
82  200,1, 500, 1, &ok2);
+
83  // Create New Layer
+
84  if (ok1&&ok2)
+
85  {
+
86  int layer = paintingArea->addLayer(width,height,0,0);
+
87  paintingArea->slotActivateLayer(layer);
+
88  }
+
89 }
+
90 
+
91 // Opens a dialog that allows the user to delete a Layer
+
92 void IntelliPhotoGui::slotDeleteLayer(){
+
93  // Stores button value
+
94  bool ok;
+
95 
+
96  // tr("delete Layer") is the title
+
97  // the next tr is the text to display
+
98  // Define the standard Value, min, max, step and ok button
+
99  int layerNumber = QInputDialog::getInt(this, tr("delete Layer"),
+
100  tr("Number:"),
+
101  1,0, 500, 1, &ok);
+
102  // Create New Layer
+
103  if (ok)
+
104  paintingArea->deleteLayer(layerNumber);
+
105 }
+
106 
+ +
108 
+
109 }
+
110 
+ +
112 
+
113 }
+
114 
+
115 void IntelliPhotoGui::slotSetActiveAlpha(){
+
116  // Stores button value
+
117  bool ok1, ok2;
+
118 
+
119  // tr("Layer to set on") is the title
+
120  // the next tr is the text to display
+
121  // Define the standard Value, min, max, step and ok button
+
122  int layer = QInputDialog::getInt(this, tr("Layer to set on"),
+
123  tr("Layer:"),
+
124  -1,-1,100,1, &ok1);
+
125  // tr("New Alpha") is the title
+
126  int alpha = QInputDialog::getInt(this, tr("New Alpha"),
+
127  tr("Alpha:"),
+
128  255,0, 255, 1, &ok2);
+
129  if (ok1&&ok2)
+
130  {
+
131  paintingArea->setAlphaOfLayer(layer,alpha);
+
132  }
+
133 }
+
134 
+
135 void IntelliPhotoGui::slotPositionMoveUp(){
+
136  paintingArea->movePositionActive(0,-20);
+
137  update();
+
138 }
+
139 
+
140 void IntelliPhotoGui::slotPositionMoveDown(){
+
141  paintingArea->movePositionActive(0,20);
+
142  update();
+
143 }
+
144 
+
145 void IntelliPhotoGui::slotPositionMoveLeft(){
+
146  paintingArea->movePositionActive(-20,0);
+
147  update();
+
148 }
+
149 
+
150 void IntelliPhotoGui::slotPositionMoveRight(){
+
151  paintingArea->movePositionActive(20,0);
+
152  update();
+
153 }
+
154 
+
155 void IntelliPhotoGui::slotMoveLayerUp(){
+
156  paintingArea->moveActiveLayer(1);
+
157  update();
+
158 }
+
159 
+
160 void IntelliPhotoGui::slotMoveLayerDown(){
+
161  paintingArea->moveActiveLayer(-1);
+
162  update();
+
163 }
+
164 
+
165 void IntelliPhotoGui::slotClearActiveLayer(){
+
166  // Stores button value
+
167  bool ok1, ok2, ok3, ok4;
+
168 
+
169  // tr("Red Input") is the title
+
170  // the next tr is the text to display
+
171  // Define the standard Value, min, max, step and ok button
+
172  int red = QInputDialog::getInt(this, tr("Red Input"),
+
173  tr("Red:"),
+
174  255,0, 255,1, &ok1);
+
175  // tr("Green Input") is the title
+
176  int green = QInputDialog::getInt(this, tr("Green Input"),
+
177  tr("Green:"),
+
178  255,0, 255, 1, &ok2);
+
179  // tr("Blue Input") is the title
+
180  int blue = QInputDialog::getInt(this, tr("Blue Input"),
+
181  tr("Blue:"),
+
182  255,0, 255, 1, &ok3);
+
183  // tr("Alpha Input") is the title
+
184  int alpha = QInputDialog::getInt(this, tr("Alpha Input"),
+
185  tr("Alpha:"),
+
186  255,0, 255, 1, &ok4);
+
187  if (ok1&&ok2&&ok3&&ok4)
+
188  {
+
189  paintingArea->floodFill(red, green, blue, alpha);
+
190  }
+
191 }
+
192 
+
193 void IntelliPhotoGui::slotSetActiveLayer(){
+
194  // Stores button value
+
195  bool ok1;
+
196 
+
197  // tr("Layer to set on") is the title
+
198  // the next tr is the text to display
+
199  // Define the standard Value, min, max, step and ok button
+
200  int layer = QInputDialog::getInt(this, tr("Layer to set on"),
+
201  tr("Layer:"),
+
202  -1,0,255,1, &ok1);
+
203  if (ok1)
+
204  {
+
205  paintingArea->setLayerToActive(layer);
+
206  }
+
207 };
+
208 
+
209 void IntelliPhotoGui::slotSetFirstColor(){
+
210  paintingArea->colorPickerSetFirstColor();
+
211 }
+
212 
+
213 void IntelliPhotoGui::slotSetSecondColor(){
+
214  paintingArea->colorPickerSetSecondColor();
+
215 }
+
216 
+
217 void IntelliPhotoGui::slotSwitchColor(){
+
218  paintingArea->colorPickerSwitchColor();
+
219 }
+
220 
+
221 void IntelliPhotoGui::slotCreatePenTool(){
+
222  paintingArea->createPenTool();
+
223 }
+
224 
+
225 void IntelliPhotoGui::slotCreatePlainTool(){
+
226  paintingArea->createPlainTool();
+
227 }
+
228 
+
229 void IntelliPhotoGui::slotCreateLineTool(){
+
230  paintingArea->createLineTool();
+
231 }
+
232 
+
233 // Open an about dialog
+
234 void IntelliPhotoGui::slotAboutDialog(){
+
235  // Window title and text to display
+
236  QMessageBox::about(this, tr("About Painting"),
+
237  tr("<p><b>IntelliPhoto</b> Some nice ass looking software</p>"));
+
238 }
+
239 
+
240 // Define menu actions that call functions
+
241 void IntelliPhotoGui::createActions(){
+
242  // Get a list of the supported file formats
+
243  // QImageWriter is used to write images to files
+
244  foreach (QByteArray format, QImageWriter::supportedImageFormats()) {
+
245  QString text = tr("%1...").arg(QString(format).toUpper());
+
246 
+
247  // Create an action for each file format
+
248  QAction *action = new QAction(text, this);
+
249 
+
250  // Set an action for each file format
+
251  action->setData(format);
+
252 
+
253  // When clicked call IntelliPhotoGui::save()
+
254  connect(action, SIGNAL(triggered()), this, SLOT(slotSave()));
+
255 
+
256  // Attach each file format option menu item to Save As
+
257  actionSaveAs.append(action);
+
258  }
+
259 
+
260  //set exporter to actions
+
261  QAction *pngSaveAction = new QAction("PNG-8", this);
+
262  pngSaveAction->setData("PNG");
+
263  // When clicked call IntelliPhotoGui::save()
+
264  connect(pngSaveAction, SIGNAL(triggered()), this, SLOT(slotSave()));
+
265  // Attach each PNG in save Menu
+
266  actionSaveAs.append(pngSaveAction);
+
267 
+
268  // Create exit action and tie to IntelliPhotoGui::close()
+
269  actionExit = new QAction(tr("&Exit"), this);
+
270  actionExit->setShortcuts(QKeySequence::Quit);
+
271  connect(actionExit, SIGNAL(triggered()), this, SLOT(close()));
+
272 
+
273  actionOpen = new QAction(tr("&Open"), this);
+
274  actionOpen->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_O));
+
275  connect(actionOpen, SIGNAL(triggered()), this, SLOT(slotOpen()));
+
276 
+
277  // Create New Layer action and tie to IntelliPhotoGui::newLayer()
+
278  actionCreateNewLayer = new QAction(tr("&New Layer..."), this);
+
279  connect(actionCreateNewLayer, SIGNAL(triggered()), this, SLOT(slotCreateNewLayer()));
+
280 
+
281  // Delete New Layer action and tie to IntelliPhotoGui::deleteLayer()
+
282  actionDeleteLayer = new QAction(tr("&Delete Layer..."), this);
+
283  connect(actionDeleteLayer, SIGNAL(triggered()), this, SLOT(slotDeleteLayer()));
+
284 
+
285  actionSetActiveLayer = new QAction(tr("&set Active"), this);
+
286  connect(actionSetActiveLayer, SIGNAL(triggered()), this, SLOT(slotSetActiveLayer()));
+
287 
+
288  actionSetActiveAlpha = new QAction(tr("&set Alpha"), this);
+
289  connect(actionSetActiveAlpha, SIGNAL(triggered()), this, SLOT(slotSetActiveAlpha()));
+
290 
+
291  actionMovePositionUp = new QAction(tr("&move Up"), this);
+
292  actionMovePositionUp->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Up));
+
293  connect(actionMovePositionUp, SIGNAL(triggered()), this, SLOT(slotPositionMoveUp()));
+
294 
+
295  actionMovePositionDown = new QAction(tr("&move Down"), this);
+
296  actionMovePositionDown->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Down));
+
297  connect(actionMovePositionDown, SIGNAL(triggered()), this, SLOT(slotPositionMoveDown()));
+
298 
+
299  actionMovePositionLeft = new QAction(tr("&move Left"), this);
+
300  actionMovePositionLeft->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Left));
+
301  connect(actionMovePositionLeft, SIGNAL(triggered()), this, SLOT(slotPositionMoveLeft()));
+
302 
+
303  actionMovePositionRight = new QAction(tr("&move Right"), this);
+
304  actionMovePositionRight->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Right));
+
305  connect(actionMovePositionRight, SIGNAL(triggered()), this, SLOT(slotPositionMoveRight()));
+
306 
+
307  actionMoveLayerUp = new QAction(tr("&move Layer Up"), this);
+
308  actionMoveLayerUp->setShortcut(QKeySequence(Qt::CTRL + Qt::ALT + Qt::Key_Up));
+
309  connect(actionMoveLayerUp, SIGNAL(triggered()), this, SLOT(slotMoveLayerUp()));
+
310 
+
311  actionMoveLayerDown= new QAction(tr("&move Layer Down"), this);
+
312  actionMoveLayerDown->setShortcut(QKeySequence(Qt::CTRL + Qt::ALT + Qt::Key_Down));
+
313  connect(actionMoveLayerDown, SIGNAL(triggered()), this, SLOT(slotMoveLayerDown()));
+
314 
+
315  //Create Color Actions here
+
316  actionColorPickerFirstColor = new QAction(tr("&Main"), this);
+
317  connect(actionColorPickerFirstColor, SIGNAL(triggered()), this, SLOT(slotSetFirstColor()));
+
318 
+
319  actionColorPickerSecondColor = new QAction(tr("&Secondary"), this);
+
320  connect(actionColorPickerSecondColor, SIGNAL(triggered()), this, SLOT(slotSetFirstColor()));
+
321 
+
322  actionColorSwitch = new QAction(tr("&Switch"), this);
+
323  actionColorSwitch->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_S));
+
324  connect(actionColorSwitch, SIGNAL(triggered()), this, SLOT(slotSwitchColor()));
+
325 
+
326  //Create Tool actions down here
+
327  actionCreatePlainTool = new QAction(tr("&Plain"), this);
+
328  connect(actionCreatePlainTool, SIGNAL(triggered()), this, SLOT(slotCreatePlainTool()));
+
329 
+
330  actionCreatePenTool = new QAction(tr("&Pen"),this);
+
331  connect(actionCreatePenTool, SIGNAL(triggered()), this, SLOT(slotCreatePenTool()));
+
332 
+
333  actionCreateLineTool = new QAction(tr("&Line"), this);
+
334  connect(actionCreateLineTool, SIGNAL(triggered()), this, SLOT(slotCreateLineTool()));
+
335 
+
336  // Create about action and tie to IntelliPhotoGui::about()
+
337  actionAboutDialog = new QAction(tr("&About"), this);
+
338  connect(actionAboutDialog, SIGNAL(triggered()), this, SLOT(slotAboutDialog()));
+
339 
+
340  // Create about Qt action and tie to IntelliPhotoGui::aboutQt()
+
341  actionAboutQtDialog = new QAction(tr("About &Qt"), this);
+
342  connect(actionAboutQtDialog, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
+
343 }
+
344 
+
345 // Create the menubar
+
346 void IntelliPhotoGui::createMenus(){
+
347  // Create Save As option and the list of file types
+
348  saveAsMenu = new QMenu(tr("&Save As"), this);
+
349  foreach (QAction *action, actionSaveAs)
+
350  saveAsMenu->addAction(action);
+
351 
+
352 
+
353  // Attach all actions to File
+
354  fileMenu = new QMenu(tr("&File"), this);
+
355  fileMenu->addAction(actionOpen);
+
356  fileMenu->addMenu(saveAsMenu);
+
357  fileMenu->addSeparator();
+
358  fileMenu->addAction(actionExit);
+
359 
+
360  // Attach all actions to Options
+
361  optionMenu = new QMenu(tr("&Options"), this);
+
362  optionMenu->addAction(actionSetActiveLayer);
+
363  optionMenu->addAction(actionSetActiveAlpha);
+
364  optionMenu->addAction(actionMovePositionUp);
+
365  optionMenu->addAction(actionMovePositionDown);
+
366  optionMenu->addAction(actionMovePositionLeft);
+
367  optionMenu->addAction(actionMovePositionRight);
+
368  optionMenu->addAction(actionMoveLayerUp);
+
369  optionMenu->addAction(actionMoveLayerDown);
+
370 
+
371  // Attach all actions to Layer
+
372  layerMenu = new QMenu(tr("&Layer"), this);
+
373  layerMenu->addAction(actionCreateNewLayer);
+
374  layerMenu->addAction(actionDeleteLayer);
+
375 
+
376  //Attach all Color Options
+
377  colorMenu = new QMenu(tr("&Color"), this);
+
378  colorMenu->addAction(actionColorPickerFirstColor);
+
379  colorMenu->addAction(actionColorPickerSecondColor);
+
380  colorMenu->addAction(actionColorSwitch);
+
381 
+
382  //Attach all Tool Options
+
383  toolMenu = new QMenu(tr("&Tools"), this);
+
384  toolMenu->addAction(actionCreatePenTool);
+
385  toolMenu->addAction(actionCreatePlainTool);
+
386  toolMenu->addAction(actionCreateLineTool);
+
387  toolMenu->addSeparator();
+
388  toolMenu->addMenu(colorMenu);
+
389 
+
390  // Attach all actions to Help
+
391  helpMenu = new QMenu(tr("&Help"), this);
+
392  helpMenu->addAction(actionAboutDialog);
+
393  helpMenu->addAction(actionAboutQtDialog);
+
394 
+
395  // Add menu items to the menubar
+
396  menuBar()->addMenu(fileMenu);
+
397  menuBar()->addMenu(optionMenu);
+
398  menuBar()->addMenu(layerMenu);
+
399  menuBar()->addMenu(toolMenu);
+
400  menuBar()->addMenu(helpMenu);
+
401 }
+
402 
+
403 void IntelliPhotoGui::createGui(){
+
404  //create a central widget to work on
+
405  centralGuiWidget = new QWidget(this);
+
406  setCentralWidget(centralGuiWidget);
+
407 
+
408  //create the grid for the layout
+
409  mainLayout = new QGridLayout(centralGuiWidget);
+
410  centralGuiWidget->setLayout(mainLayout);
+
411 
+
412  //create Gui elements
+
413  paintingArea = new PaintingArea();
+
414 
+
415  //set gui elements
+
416  mainLayout->addWidget(paintingArea);
+
417 }
+
418 
+
419 void IntelliPhotoGui::setIntelliStyle(){
+
420  // Set the title
+
421  setWindowTitle("IntelliPhoto Prototype");
+
422  //set style sheet
+
423  this->setStyleSheet("background-color:rgb(64,64,64)");
+
424  this->centralGuiWidget->setStyleSheet("color:rgb(255,255,255)");
+
425  this->menuBar()->setStyleSheet("color:rgb(255,255,255)");
+
426 }
+
427 
+
428 bool IntelliPhotoGui::maybeSave(){
+
429  // Check for changes since last save
+
430 
+
431  //TODO insert variable for modified status here to make an save exit message
+
432  if (false) {
+
433  QMessageBox::StandardButton ret;
+
434 
+
435  // Painting is the title
+
436  // Add text and the buttons
+
437  ret = QMessageBox::warning(this, tr("Painting"),
+
438  tr("The image has been modified.\n"
+
439  "Do you want to save your changes?"),
+
440  QMessageBox::Save | QMessageBox::Discard
+
441  | QMessageBox::Cancel);
+
442 
+
443  // If save button clicked call for file to be saved
+
444  if (ret == QMessageBox::Save) {
+
445  return saveFile("png");
+
446 
+
447  // If cancel do nothing
+
448  } else if (ret == QMessageBox::Cancel) {
+
449  return false;
+
450  }
+
451  }
+
452  return true;
+
453 }
+
454 
+
455 bool IntelliPhotoGui::saveFile(const QByteArray &fileFormat){
+
456  // Define path, name and default file type
+
457  QString initialPath = QDir::currentPath() + "/untitled." + fileFormat;
+
458 
+
459  // Get selected file from dialog
+
460  // Add the proper file formats and extensions
+
461  QString fileName = QFileDialog::getSaveFileName(this, tr("Save As"),
+
462  initialPath,
+
463  tr("%1 Files (*.%2);;All Files (*)")
+
464  .arg(QString::fromLatin1(fileFormat.toUpper()))
+
465  .arg(QString::fromLatin1(fileFormat)));
+
466 
+
467  // If no file do nothing
+
468  if (fileName.isEmpty()) {
+
469  return false;
+
470  } else {
+
471  // Call for the file to be saved
+
472  return paintingArea->save(fileName, fileFormat.constData());
+
473  }
+
474 }
+
+
+
int addLayer(int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
+
void slotCreateFloodFillTool()
+
bool open(const QString &fileName)
+
void setLayerToActive(int index)
+
void floodFill(int r, int g, int b, int a)
+
bool save(const QString &fileName, const char *fileFormat)
+
void createPlainTool()
+ + +
void slotCreatePenTool()
+
void deleteLayer(int index)
+
void createPenTool()
+
void createLineTool()
+
void colorPickerSetSecondColor()
+
void colorPickerSetFirstColor()
+
void colorPickerSwitchColor()
+ +
void closeEvent(QCloseEvent *event) override
+
void moveActiveLayer(int idx)
+ +
void slotActivateLayer(int a)
+
void setAlphaOfLayer(int index, int alpha)
+
void movePositionActive(int x, int y)
+ + + + diff --git a/docs/html/_intelli_photo_gui_8h.html b/docs/html/_intelli_photo_gui_8h.html new file mode 100644 index 0000000..d5e1af3 --- /dev/null +++ b/docs/html/_intelli_photo_gui_8h.html @@ -0,0 +1,132 @@ + + + + + + + +IntelliPhoto: src/GUI/IntelliPhotoGui.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
IntelliPhotoGui.h File Reference
+
+
+
#include <QList>
+#include <QMainWindow>
+#include <QGridLayout>
+#include <QPushButton>
+#include <QTextEdit>
+#include <QLabel>
+#include <QLineEdit>
+
+Include dependency graph for IntelliPhotoGui.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  IntelliPhotoGui
 
+
+
+ + + + diff --git a/docs/html/_intelli_photo_gui_8h__dep__incl.dot b/docs/html/_intelli_photo_gui_8h__dep__incl.dot new file mode 100644 index 0000000..c7ed9e0 --- /dev/null +++ b/docs/html/_intelli_photo_gui_8h__dep__incl.dot @@ -0,0 +1,11 @@ +digraph "src/GUI/IntelliPhotoGui.h" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/GUI/IntelliPhotoGui.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="src/GUI/IntelliPhotoGui.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_photo_gui_8cpp.html",tooltip=" "]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="src/main.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$main_8cpp.html",tooltip=" "]; +} diff --git a/docs/html/_intelli_photo_gui_8h__incl.dot b/docs/html/_intelli_photo_gui_8h__incl.dot new file mode 100644 index 0000000..4551ef3 --- /dev/null +++ b/docs/html/_intelli_photo_gui_8h__incl.dot @@ -0,0 +1,21 @@ +digraph "src/GUI/IntelliPhotoGui.h" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/GUI/IntelliPhotoGui.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="QList",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="QMainWindow",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="QGridLayout",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="QPushButton",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="QTextEdit",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="QLabel",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="QLineEdit",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; +} diff --git a/docs/html/_intelli_photo_gui_8h_source.html b/docs/html/_intelli_photo_gui_8h_source.html new file mode 100644 index 0000000..4f45ca2 --- /dev/null +++ b/docs/html/_intelli_photo_gui_8h_source.html @@ -0,0 +1,241 @@ + + + + + + + +IntelliPhoto: src/GUI/IntelliPhotoGui.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliPhotoGui.h
+
+
+Go to the documentation of this file.
1 #ifndef IntelliPhotoGui_H
+
2 #define IntelliPhotoGui_H
+
3 
+
4 #include <QList>
+
5 #include <QMainWindow>
+
6 #include <QGridLayout>
+
7 #include <QPushButton>
+
8 #include <QTextEdit>
+
9 #include <QLabel>
+
10 #include <QLineEdit>
+
11 
+
12 // PaintingArea used to paint the image
+
13 class PaintingArea;
+
14 
+
15 class IntelliTool;
+
16 
+
17 class IntelliColorPicker;
+
18 
+
19 class IntelliPhotoGui : public QMainWindow{
+
20  // Declares our class as a QObject which is the base class
+
21  // for all Qt objects
+
22  // QObjects handle events
+
23  Q_OBJECT
+
24 public:
+ +
26 
+
27 protected:
+
28  // Function used to close an event
+
29  void closeEvent(QCloseEvent *event) override;
+
30 
+
31 private slots:
+
32  //meta slots here (need further )
+
33  void slotOpen();
+
34  void slotSave();
+
35 
+
36  //layer slots here
+
37  void slotCreateNewLayer();
+
38  void slotDeleteLayer();
+
39  void slotClearActiveLayer();
+
40  void slotSetActiveLayer();
+
41  void slotSetActiveAlpha();
+
42  void slotPositionMoveUp();
+
43  void slotPositionMoveDown();
+
44  void slotPositionMoveLeft();
+
45  void slotPositionMoveRight();
+
46  void slotMoveLayerUp();
+
47  void slotMoveLayerDown();
+
48 
+
49  //color Picker slots here
+
50  void slotSetFirstColor();
+
51  void slotSetSecondColor();
+
52  void slotSwitchColor();
+
53 
+
54  //tool slots here
+
55  void slotCreatePenTool();
+
56  void slotCreatePlainTool();
+
57  void slotCreateLineTool();
+
58 
+
59  //slots for dialogs
+
60  void slotAboutDialog();
+
61 
+
62 private:
+
63  // Will tie user actions to functions
+
64  void createActions();
+
65  void createMenus();
+
66  //setup GUI elements
+
67  void createGui();
+
68  //set style of the GUI
+
69  void setIntelliStyle();
+
70 
+
71 
+
72  // Will check if changes have occurred since last save
+
73  bool maybeSave();
+
74  // Opens the Save dialog and saves
+
75  bool saveFile(const QByteArray &fileFormat);
+
76 
+
77  // What we'll draw on
+
78  PaintingArea* paintingArea;
+
79 
+
80  // The menu widgets
+
81  QMenu *saveAsMenu;
+
82  QMenu *fileMenu;
+
83  QMenu *optionMenu;
+
84  QMenu *layerMenu;
+
85  QMenu *colorMenu;
+
86  QMenu *toolMenu;
+
87  QMenu *helpMenu;
+
88 
+
89  // All the actions that can occur
+
90 
+
91  //meta image actions (need further modularisation)
+
92  QAction *actionOpen;
+
93  QAction *actionExit;
+
94 
+
95  //color Picker actions
+
96  QAction *actionColorPickerFirstColor;
+
97  QAction *actionColorPickerSecondColor;
+
98  QAction *actionColorSwitch;
+
99 
+
100  //tool actions
+
101  QAction *actionCreatePenTool;
+
102  QAction *actionCreatePlainTool;
+
103  QAction *actionCreateLineTool;
+
104 
+
105  //dialog actions
+
106  QAction *actionAboutDialog;
+
107  QAction *actionAboutQtDialog;
+
108 
+
109  //layer change actions
+
110  QAction *actionCreateNewLayer;
+
111  QAction *actionDeleteLayer;
+
112  QAction* actionSetActiveLayer;
+
113  QAction* actionSetActiveAlpha;
+
114  QAction* actionMovePositionUp;
+
115  QAction* actionMovePositionDown;
+
116  QAction* actionMovePositionLeft;
+
117  QAction* actionMovePositionRight;
+
118  QAction* actionMoveLayerUp;
+
119  QAction* actionMoveLayerDown;
+
120 
+
121  // Actions tied to specific file formats
+
122  QList<QAction *> actionSaveAs;
+
123 
+
124  //main GUI elements
+
125  QWidget* centralGuiWidget;
+
126  QGridLayout *mainLayout;
+
127 
+
128 };
+
129 
+
130 #endif
+
+
+ + + + +
void closeEvent(QCloseEvent *event) override
+ + + + + diff --git a/docs/html/_intelli_raster_image_8cpp.html b/docs/html/_intelli_raster_image_8cpp.html new file mode 100644 index 0000000..fadac2b --- /dev/null +++ b/docs/html/_intelli_raster_image_8cpp.html @@ -0,0 +1,116 @@ + + + + + + + +IntelliPhoto: src/Image/IntelliRasterImage.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliRasterImage.cpp File Reference
+
+
+
#include "Image/IntelliRasterImage.h"
+#include <QPainter>
+#include <QRect>
+#include <QDebug>
+
+Include dependency graph for IntelliRasterImage.cpp:
+
+
+
+
+

Go to the source code of this file.

+
+
+ + + + diff --git a/docs/html/_intelli_raster_image_8cpp__incl.dot b/docs/html/_intelli_raster_image_8cpp__incl.dot new file mode 100644 index 0000000..a47027e --- /dev/null +++ b/docs/html/_intelli_raster_image_8cpp__incl.dot @@ -0,0 +1,29 @@ +digraph "src/Image/IntelliRasterImage.cpp" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/Image/IntelliRasterImage.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="Image/IntelliRasterImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_raster_image_8h.html",tooltip=" "]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="Image/IntelliImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_image_8h.html",tooltip=" "]; + Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="QImage",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="QColor",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node3 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="QSize",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node3 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node3 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="vector",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="QPainter",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="QRect",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="QDebug",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; +} diff --git a/docs/html/_intelli_raster_image_8cpp_source.html b/docs/html/_intelli_raster_image_8cpp_source.html new file mode 100644 index 0000000..c632a99 --- /dev/null +++ b/docs/html/_intelli_raster_image_8cpp_source.html @@ -0,0 +1,159 @@ + + + + + + + +IntelliPhoto: src/Image/IntelliRasterImage.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliRasterImage.cpp
+
+
+Go to the documentation of this file.
+
2 #include<QPainter>
+
3 #include<QRect>
+
4 #include<QDebug>
+
5 
+ +
7  :IntelliImage(weight, height){
+
8 
+
9 }
+
10 
+ +
12 
+
13 }
+
14 
+ +
16  IntelliRasterImage* raster = new IntelliRasterImage(imageData.width(), imageData.height());
+
17  raster->imageData.fill(Qt::transparent);
+
18  return raster;
+
19 }
+
20 
+ +
22  //not used in raster image
+
23 }
+
24 
+ +
26  return getDisplayable(imageData.size(), alpha);
+
27 }
+
28 
+
29 QImage IntelliRasterImage::getDisplayable(const QSize& displaySize, int alpha){
+
30  QImage copy = imageData;
+
31  for(int y = 0; y<copy.height(); y++){
+
32  for(int x = 0; x<copy.width(); x++){
+
33  QColor clr = copy.pixelColor(x,y);
+
34  clr.setAlpha(std::min(alpha, clr.alpha()));
+
35  copy.setPixelColor(x,y, clr);
+
36  }
+
37  }
+
38  return copy.scaled(displaySize,Qt::IgnoreAspectRatio);
+
39 }
+
40 
+
41 void IntelliRasterImage::setPolygon(const std::vector<QPoint>& polygonData){
+
42  qDebug() << "Raster Image has no polygon data " << polygonData.size() <<"\n";
+
43  return;
+
44 }
+
+
+
virtual ~IntelliRasterImage() override
+ +
virtual QImage getDisplayable(const QSize &displaySize, int alpha) override
+
QImage imageData
Definition: IntelliImage.h:23
+ +
virtual IntelliImage * getDeepCopy() override
+
virtual void calculateVisiblity() override
+
virtual void setPolygon(const std::vector< QPoint > &polygonData) override
+
IntelliRasterImage(int weight, int height)
+ + + + + diff --git a/docs/html/_intelli_raster_image_8h.html b/docs/html/_intelli_raster_image_8h.html new file mode 100644 index 0000000..f1a445c --- /dev/null +++ b/docs/html/_intelli_raster_image_8h.html @@ -0,0 +1,126 @@ + + + + + + + +IntelliPhoto: src/Image/IntelliRasterImage.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
IntelliRasterImage.h File Reference
+
+
+
+Include dependency graph for IntelliRasterImage.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  IntelliRasterImage
 
+
+
+ + + + diff --git a/docs/html/_intelli_raster_image_8h__dep__incl.dot b/docs/html/_intelli_raster_image_8h__dep__incl.dot new file mode 100644 index 0000000..3cd3782 --- /dev/null +++ b/docs/html/_intelli_raster_image_8h__dep__incl.dot @@ -0,0 +1,30 @@ +digraph "src/Image/IntelliRasterImage.h" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/Image/IntelliRasterImage.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="src/Image/IntelliRasterImage.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_raster_image_8cpp.html",tooltip=" "]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="src/Image/IntelliShapedImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_shaped_image_8h.html",tooltip=" "]; + Node3 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="src/Image/IntelliShapedImage.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_shaped_image_8cpp.html",tooltip=" "]; + Node3 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="src/Layer/PaintingArea.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8h.html",tooltip=" "]; + Node5 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="src/GUI/IntelliPhotoGui.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_photo_gui_8cpp.html",tooltip=" "]; + Node5 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="src/Layer/PaintingArea.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8cpp.html",tooltip=" "]; + Node5 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="src/Tool/IntelliTool.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_8cpp.html",tooltip=" "]; + Node5 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="src/Tool/IntelliToolLine.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_line_8cpp.html",tooltip=" "]; + Node5 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="src/Tool/IntelliToolPen.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_pen_8cpp.html",tooltip=" "]; + Node5 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="src/Tool/IntelliToolPlain.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_plain_8cpp.html",tooltip=" "]; + Node3 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/docs/html/_intelli_raster_image_8h__incl.dot b/docs/html/_intelli_raster_image_8h__incl.dot new file mode 100644 index 0000000..0da2ca7 --- /dev/null +++ b/docs/html/_intelli_raster_image_8h__incl.dot @@ -0,0 +1,21 @@ +digraph "src/Image/IntelliRasterImage.h" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/Image/IntelliRasterImage.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="Image/IntelliImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_image_8h.html",tooltip=" "]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="QImage",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="QColor",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="QSize",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="vector",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; +} diff --git a/docs/html/_intelli_raster_image_8h_source.html b/docs/html/_intelli_raster_image_8h_source.html new file mode 100644 index 0000000..7574575 --- /dev/null +++ b/docs/html/_intelli_raster_image_8h_source.html @@ -0,0 +1,140 @@ + + + + + + + +IntelliPhoto: src/Image/IntelliRasterImage.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliRasterImage.h
+
+
+Go to the documentation of this file.
1 #ifndef INTELLIRASTER_H
+
2 #define INTELLIRASTER_H
+
3 
+
4 #include"Image/IntelliImage.h"
+
5 
+ +
7  friend IntelliTool;
+
8 protected:
+
9  virtual void calculateVisiblity() override;
+
10 public:
+
11  IntelliRasterImage(int weight, int height);
+
12  virtual ~IntelliRasterImage() override;
+
13 
+
14  //returns the filtered output
+
15  virtual QImage getDisplayable(const QSize& displaySize,int alpha) override;
+
16  virtual QImage getDisplayable(int alpha=255) override;
+
17 
+
18  //gets a copy of the image !allocated
+
19  virtual IntelliImage* getDeepCopy() override;
+
20 
+
21  //sets the data for the visible image
+
22  virtual void setPolygon(const std::vector<QPoint>& polygonData) override;
+
23 };
+
24 
+
25 #endif
+
+
+ +
virtual ~IntelliRasterImage() override
+ +
virtual QImage getDisplayable(const QSize &displaySize, int alpha) override
+ +
virtual IntelliImage * getDeepCopy() override
+
virtual void calculateVisiblity() override
+
virtual void setPolygon(const std::vector< QPoint > &polygonData) override
+
IntelliRasterImage(int weight, int height)
+ + + + + diff --git a/docs/html/_intelli_shaped_image_8cpp.html b/docs/html/_intelli_shaped_image_8cpp.html new file mode 100644 index 0000000..47bb89d --- /dev/null +++ b/docs/html/_intelli_shaped_image_8cpp.html @@ -0,0 +1,117 @@ + + + + + + + +IntelliPhoto: src/Image/IntelliShapedImage.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliShapedImage.cpp File Reference
+
+
+
#include "Image/IntelliShapedImage.h"
+#include "IntelliHelper/IntelliHelper.h"
+#include <QPainter>
+#include <QRect>
+#include <QDebug>
+
+Include dependency graph for IntelliShapedImage.cpp:
+
+
+
+
+

Go to the source code of this file.

+
+
+ + + + diff --git a/docs/html/_intelli_shaped_image_8cpp__incl.dot b/docs/html/_intelli_shaped_image_8cpp__incl.dot new file mode 100644 index 0000000..ddb8981 --- /dev/null +++ b/docs/html/_intelli_shaped_image_8cpp__incl.dot @@ -0,0 +1,34 @@ +digraph "src/Image/IntelliShapedImage.cpp" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/Image/IntelliShapedImage.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="Image/IntelliShapedImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_shaped_image_8h.html",tooltip=" "]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="Image/IntelliRasterImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_raster_image_8h.html",tooltip=" "]; + Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="Image/IntelliImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_image_8h.html",tooltip=" "]; + Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="QImage",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node4 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node4 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="QColor",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node4 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="QSize",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node4 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node4 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="vector",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="IntelliHelper/IntelliHelper.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_helper_8h.html",tooltip=" "]; + Node11 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="QPainter",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="QRect",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="QDebug",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; +} diff --git a/docs/html/_intelli_shaped_image_8cpp_source.html b/docs/html/_intelli_shaped_image_8cpp_source.html new file mode 100644 index 0000000..525aab1 --- /dev/null +++ b/docs/html/_intelli_shaped_image_8cpp_source.html @@ -0,0 +1,204 @@ + + + + + + + +IntelliPhoto: src/Image/IntelliShapedImage.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliShapedImage.cpp
+
+
+Go to the documentation of this file.
+ +
3 #include<QPainter>
+
4 #include<QRect>
+
5 #include<QDebug>
+
6 
+ +
8  :IntelliRasterImage(weight, height){
+
9 }
+
10 
+ +
12 
+
13 }
+
14 
+ +
16  return getDisplayable(imageData.size(),alpha);
+
17 }
+
18 
+ +
20  IntelliShapedImage* shaped = new IntelliShapedImage(imageData.width(), imageData.height());
+
21  shaped->setPolygon(this->polygonData);
+
22  shaped->imageData.fill(Qt::transparent);
+
23  return shaped;
+
24 }
+
25 
+ +
27  if(polygonData.size()<=2){
+
28  QColor clr;
+
29  for(int y=0; y<imageData.height(); y++){
+
30  for(int x=0; x<imageData.width(); x++){
+
31  clr = imageData.pixel(x,y);
+
32  clr.setAlpha(255);
+
33  imageData.setPixelColor(x,y,clr);
+
34  }
+
35  }
+
36  return;
+
37  }
+
38  QPoint A = polygonData[0];
+
39  QColor clr;
+
40  for(int y=0; y<imageData.height(); y++){
+
41  for(int x=0; x<imageData.width(); x++){
+
42  int cutNumeber=0;
+
43  for(int i=1; i<static_cast<int>(polygonData.size()-1); i++){
+
44  QPoint B = polygonData[static_cast<size_t>(i)];
+
45  QPoint C = polygonData[static_cast<size_t>(i+1)];
+
46  QPoint P(x,y);
+
47  cutNumeber+=IntelliHelper::isInTriangle(A,B,C,P);
+
48  }
+
49  if(cutNumeber%2==0){
+
50  clr = imageData.pixelColor(x,y);
+
51  clr.setAlpha(0);
+
52  imageData.setPixelColor(x,y,clr);
+
53  }else{
+
54  clr = imageData.pixelColor(x,y);
+
55  clr.setAlpha(std::min(255, clr.alpha()));
+
56  imageData.setPixelColor(x,y,clr);
+
57  }
+
58  }
+
59  }
+
60 }
+
61 
+
62 QImage IntelliShapedImage::getDisplayable(const QSize& displaySize, int alpha){
+
63  QImage copy = imageData;
+
64  for(int y = 0; y<copy.height(); y++){
+
65  for(int x = 0; x<copy.width(); x++){
+
66  QColor clr = copy.pixelColor(x,y);
+
67  clr.setAlpha(std::min(alpha,clr.alpha()));
+
68  copy.setPixelColor(x,y, clr);
+
69  }
+
70  }
+
71  return copy.scaled(displaySize,Qt::IgnoreAspectRatio);
+
72 }
+
73 
+
74 void IntelliShapedImage::setPolygon(const std::vector<QPoint>& polygonData){
+
75  if(polygonData.size()<3){
+
76  this->polygonData.clear();
+
77  }else{
+
78  this->polygonData.clear();
+
79  for(auto element:polygonData){
+
80  this->polygonData.push_back(QPoint(element.x(), element.y()));
+
81  }
+
82  }
+ +
84  return;
+
85 }
+
+
+
virtual QImage getDisplayable(const QSize &displaySize, int alpha=255) override
+ +
static bool isInTriangle(QPoint &A, QPoint &B, QPoint &C, QPoint &P)
Definition: IntelliHelper.h:15
+ + +
virtual IntelliImage * getDeepCopy() override
+
QImage imageData
Definition: IntelliImage.h:23
+ +
std::vector< QPoint > polygonData
+
IntelliShapedImage(int weight, int height)
+
virtual ~IntelliShapedImage() override
+ +
virtual void calculateVisiblity() override
+
virtual void setPolygon(const std::vector< QPoint > &polygonData) override
+ + + + diff --git a/docs/html/_intelli_shaped_image_8h.html b/docs/html/_intelli_shaped_image_8h.html new file mode 100644 index 0000000..608720c --- /dev/null +++ b/docs/html/_intelli_shaped_image_8h.html @@ -0,0 +1,126 @@ + + + + + + + +IntelliPhoto: src/Image/IntelliShapedImage.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
IntelliShapedImage.h File Reference
+
+
+
+Include dependency graph for IntelliShapedImage.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  IntelliShapedImage
 
+
+
+ + + + diff --git a/docs/html/_intelli_shaped_image_8h__dep__incl.dot b/docs/html/_intelli_shaped_image_8h__dep__incl.dot new file mode 100644 index 0000000..88f0ba4 --- /dev/null +++ b/docs/html/_intelli_shaped_image_8h__dep__incl.dot @@ -0,0 +1,24 @@ +digraph "src/Image/IntelliShapedImage.h" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/Image/IntelliShapedImage.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="src/Image/IntelliShapedImage.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_shaped_image_8cpp.html",tooltip=" "]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="src/Layer/PaintingArea.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8h.html",tooltip=" "]; + Node3 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="src/GUI/IntelliPhotoGui.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_photo_gui_8cpp.html",tooltip=" "]; + Node3 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="src/Layer/PaintingArea.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8cpp.html",tooltip=" "]; + Node3 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="src/Tool/IntelliTool.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_8cpp.html",tooltip=" "]; + Node3 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="src/Tool/IntelliToolLine.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_line_8cpp.html",tooltip=" "]; + Node3 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="src/Tool/IntelliToolPen.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_pen_8cpp.html",tooltip=" "]; + Node3 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="src/Tool/IntelliToolPlain.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_plain_8cpp.html",tooltip=" "]; + Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/docs/html/_intelli_shaped_image_8h__incl.dot b/docs/html/_intelli_shaped_image_8h__incl.dot new file mode 100644 index 0000000..9b56281 --- /dev/null +++ b/docs/html/_intelli_shaped_image_8h__incl.dot @@ -0,0 +1,23 @@ +digraph "src/Image/IntelliShapedImage.h" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/Image/IntelliShapedImage.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="Image/IntelliRasterImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_raster_image_8h.html",tooltip=" "]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="Image/IntelliImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_image_8h.html",tooltip=" "]; + Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="QImage",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="QColor",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node3 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="QSize",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node3 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node3 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="vector",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; +} diff --git a/docs/html/_intelli_shaped_image_8h_source.html b/docs/html/_intelli_shaped_image_8h_source.html new file mode 100644 index 0000000..1708dc8 --- /dev/null +++ b/docs/html/_intelli_shaped_image_8h_source.html @@ -0,0 +1,147 @@ + + + + + + + +IntelliPhoto: src/Image/IntelliShapedImage.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliShapedImage.h
+
+
+Go to the documentation of this file.
1 #ifndef INTELLISHAPE_H
+
2 #define INTELLISHAPE_H
+
3 
+ +
5 
+ +
7  friend IntelliTool;
+
8 protected:
+
9 
+
10  std::vector<QPoint> polygonData;
+
11 public:
+
12  IntelliShapedImage(int weight, int height);
+
13  virtual ~IntelliShapedImage() override;
+
14 
+
15  virtual void calculateVisiblity() override;
+
16 
+
17  //returns the filtered output
+
18  virtual QImage getDisplayable(const QSize& displaySize, int alpha=255) override;
+
19  virtual QImage getDisplayable(int alpha=255) override;
+
20 
+
21  //gets a copy of the image !allocated
+
22  virtual IntelliImage* getDeepCopy() override;
+
23  virtual std::vector<QPoint> getPolygonData() override{return polygonData;}
+
24 
+
25  //sets the data for the visible image
+
26  virtual void setPolygon(const std::vector<QPoint>& polygonData) override;
+
27 };
+
28 
+
29 #endif
+
+
+
virtual QImage getDisplayable(const QSize &displaySize, int alpha=255) override
+ +
virtual IntelliImage * getDeepCopy() override
+ + +
virtual std::vector< QPoint > getPolygonData() override
+ +
std::vector< QPoint > polygonData
+
IntelliShapedImage(int weight, int height)
+
virtual ~IntelliShapedImage() override
+ +
virtual void calculateVisiblity() override
+
virtual void setPolygon(const std::vector< QPoint > &polygonData) override
+ + + + diff --git a/docs/html/_intelli_tool_8cpp.html b/docs/html/_intelli_tool_8cpp.html new file mode 100644 index 0000000..ffd9dd6 --- /dev/null +++ b/docs/html/_intelli_tool_8cpp.html @@ -0,0 +1,114 @@ + + + + + + + +IntelliPhoto: src/Tool/IntelliTool.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliTool.cpp File Reference
+
+
+
#include "IntelliTool.h"
+#include "Layer/PaintingArea.h"
+
+Include dependency graph for IntelliTool.cpp:
+
+
+
+
+

Go to the source code of this file.

+
+
+ + + + diff --git a/docs/html/_intelli_tool_8cpp__incl.dot b/docs/html/_intelli_tool_8cpp__incl.dot new file mode 100644 index 0000000..38e0494 --- /dev/null +++ b/docs/html/_intelli_tool_8cpp__incl.dot @@ -0,0 +1,46 @@ +digraph "src/Tool/IntelliTool.cpp" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/Tool/IntelliTool.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_8h.html",tooltip=" "]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliHelper/IntelliColor\lPicker.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_color_picker_8h.html",tooltip=" "]; + Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="QColor",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="QColorDialog",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="vector",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="Layer/PaintingArea.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8h.html",tooltip=" "]; + Node8 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="QImage",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node8 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node8 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="QList",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node8 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="Image/IntelliImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_image_8h.html",tooltip=" "]; + Node12 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="QSize",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node12 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="Image/IntelliRasterImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_raster_image_8h.html",tooltip=" "]; + Node14 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="Image/IntelliShapedImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_shaped_image_8h.html",tooltip=" "]; + Node15 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/docs/html/_intelli_tool_8cpp_source.html b/docs/html/_intelli_tool_8cpp_source.html new file mode 100644 index 0000000..750b138 --- /dev/null +++ b/docs/html/_intelli_tool_8cpp_source.html @@ -0,0 +1,204 @@ + + + + + + + +IntelliPhoto: src/Tool/IntelliTool.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliTool.cpp
+
+
+Go to the documentation of this file.
1 #include"IntelliTool.h"
+
2 #include"Layer/PaintingArea.h"
+
3 
+ +
5  this->Area=Area;
+
6  this->colorPicker=colorPicker;
+
7 }
+
8 
+
9 
+ +
11 
+
12 }
+
13 
+ +
15  if(drawing){
+
16  drawing=false;
+
17  this->deleteToolLayer();
+
18  }
+
19 }
+
20 
+ +
22  //optional for tool
+
23 }
+
24 
+ +
26  this->drawing=true;
+
27  //create drawing layer
+
28  this->createToolLayer();
+ +
30 }
+
31 
+ +
33  if(drawing){
+
34  drawing=false;
+
35  this->mergeToolLayer();
+
36  this->deleteToolLayer();
+ +
38  }
+
39 }
+
40 
+
41 void IntelliTool::onMouseMoved(int x, int y){
+
42  if(drawing)
+ +
44 }
+
45 
+
46 void IntelliTool::createToolLayer(){
+
47  Area->createTempLayerAfter(Area->activeLayer);
+
48  this->Active=&Area->layerBundle[Area->activeLayer];
+
49  this->Canvas=&Area->layerBundle[Area->activeLayer+1];
+
50 }
+
51 
+
52 void IntelliTool::mergeToolLayer(){
+
53  QColor clr_0;
+
54  QColor clr_1;
+
55  for(int y=0; y<Active->hight; y++){
+
56  for(int x=0; x<Active->width; x++){
+
57  clr_0=Active->image->imageData.pixelColor(x,y);
+
58  clr_1=Canvas->image->imageData.pixelColor(x,y);
+
59  float t = static_cast<float>(clr_1.alpha())/255.f;
+
60  int r =static_cast<int>(static_cast<float>(clr_1.red())*(t)+static_cast<float>(clr_0.red())*(1.f-t)+0.5f);
+
61  int g =static_cast<int>(static_cast<float>(clr_1.green())*(t)+static_cast<float>(clr_0.green())*(1.f-t)+0.5f);
+
62  int b =static_cast<int>(static_cast<float>(clr_1.blue())*(t)+static_cast<float>(clr_0.blue()*(1.f-t))+0.5f);
+
63  int a =std::min(clr_0.alpha()+clr_1.alpha(), 255);
+
64  clr_0.setRed(r);
+
65  clr_0.setGreen(g);
+
66  clr_0.setBlue(b);
+
67  clr_0.setAlpha(a);
+
68 
+
69  Active->image->imageData.setPixelColor(x, y, clr_0);
+
70  }
+
71  }
+
72 }
+
73 
+
74 void IntelliTool::deleteToolLayer(){
+
75  Area->deleteLayer(Area->activeLayer+1);
+
76  this->Canvas=nullptr;
+
77 }
+
+
+
virtual void onMouseRightPressed(int x, int y)
Definition: IntelliTool.cpp:14
+
virtual void onMouseLeftReleased(int x, int y)
Definition: IntelliTool.cpp:32
+
IntelliColorPicker * colorPicker
Definition: IntelliTool.h:17
+ +
virtual void onMouseLeftPressed(int x, int y)
Definition: IntelliTool.cpp:25
+
IntelliTool(PaintingArea *Area, IntelliColorPicker *colorPicker)
Definition: IntelliTool.cpp:4
+
PaintingArea * Area
Definition: IntelliTool.h:16
+ +
void deleteLayer(int index)
+
virtual void onMouseRightReleased(int x, int y)
Definition: IntelliTool.cpp:21
+
LayerObject * Canvas
Definition: IntelliTool.h:20
+ +
bool drawing
Definition: IntelliTool.h:21
+ + + +
QImage imageData
Definition: IntelliImage.h:23
+
IntelliImage * image
Definition: PaintingArea.h:18
+
LayerObject * Active
Definition: IntelliTool.h:19
+
virtual void onMouseMoved(int x, int y)
Definition: IntelliTool.cpp:41
+
virtual void calculateVisiblity()=0
+
virtual ~IntelliTool()=0
Definition: IntelliTool.cpp:10
+ + + + diff --git a/docs/html/_intelli_tool_8h.html b/docs/html/_intelli_tool_8h.html new file mode 100644 index 0000000..f4a1387 --- /dev/null +++ b/docs/html/_intelli_tool_8h.html @@ -0,0 +1,127 @@ + + + + + + + +IntelliPhoto: src/Tool/IntelliTool.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
IntelliTool.h File Reference
+
+
+
#include "IntelliHelper/IntelliColorPicker.h"
+#include <vector>
+
+Include dependency graph for IntelliTool.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  IntelliTool
 
+
+
+ + + + diff --git a/docs/html/_intelli_tool_8h__dep__incl.dot b/docs/html/_intelli_tool_8h__dep__incl.dot new file mode 100644 index 0000000..e4b5463 --- /dev/null +++ b/docs/html/_intelli_tool_8h__dep__incl.dot @@ -0,0 +1,34 @@ +digraph "src/Tool/IntelliTool.h" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/Tool/IntelliTool.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="src/Layer/PaintingArea.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8h.html",tooltip=" "]; + Node2 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="src/GUI/IntelliPhotoGui.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_photo_gui_8cpp.html",tooltip=" "]; + Node2 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="src/Layer/PaintingArea.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8cpp.html",tooltip=" "]; + Node2 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="src/Tool/IntelliTool.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_8cpp.html",tooltip=" "]; + Node2 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="src/Tool/IntelliToolLine.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_line_8cpp.html",tooltip=" "]; + Node2 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="src/Tool/IntelliToolPen.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_pen_8cpp.html",tooltip=" "]; + Node2 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="src/Tool/IntelliToolPlain.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_plain_8cpp.html",tooltip=" "]; + Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="src/Tool/IntelliToolLine.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_line_8h.html",tooltip=" "]; + Node9 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="src/Tool/IntelliToolPen.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_pen_8h.html",tooltip=" "]; + Node10 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="src/Tool/IntelliToolPlain.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_plain_8h.html",tooltip=" "]; + Node11 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/docs/html/_intelli_tool_8h__incl.dot b/docs/html/_intelli_tool_8h__incl.dot new file mode 100644 index 0000000..be9dd28 --- /dev/null +++ b/docs/html/_intelli_tool_8h__incl.dot @@ -0,0 +1,17 @@ +digraph "src/Tool/IntelliTool.h" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/Tool/IntelliTool.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliHelper/IntelliColor\lPicker.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_color_picker_8h.html",tooltip=" "]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="QColor",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="QColorDialog",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="vector",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; +} diff --git a/docs/html/_intelli_tool_8h_source.html b/docs/html/_intelli_tool_8h_source.html new file mode 100644 index 0000000..168d2df --- /dev/null +++ b/docs/html/_intelli_tool_8h_source.html @@ -0,0 +1,156 @@ + + + + + + + +IntelliPhoto: src/Tool/IntelliTool.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliTool.h
+
+
+Go to the documentation of this file.
1 #ifndef Intelli_Tool_H
+
2 #define Intelli_Tool_H
+
3 
+ +
5 #include <vector>
+
6 
+
7 class LayerObject;
+
8 class PaintingArea;
+
9 
+ +
11 private:
+
12  void createToolLayer();
+
13  void mergeToolLayer();
+
14  void deleteToolLayer();
+
15 protected:
+ + +
18 
+ + +
21  bool drawing = false;
+
22 
+
23 public:
+ +
25  virtual ~IntelliTool() = 0;
+
26 
+
27  virtual void onMouseRightPressed(int x, int y);
+
28  virtual void onMouseRightReleased(int x, int y);
+
29  virtual void onMouseLeftPressed(int x, int y);
+
30  virtual void onMouseLeftReleased(int x, int y);
+
31 
+
32  virtual void onMouseMoved(int x, int y);
+
33 };
+
34 #endif
+
+
+
virtual void onMouseRightPressed(int x, int y)
Definition: IntelliTool.cpp:14
+
virtual void onMouseLeftReleased(int x, int y)
Definition: IntelliTool.cpp:32
+
IntelliColorPicker * colorPicker
Definition: IntelliTool.h:17
+
virtual void onMouseLeftPressed(int x, int y)
Definition: IntelliTool.cpp:25
+
IntelliTool(PaintingArea *Area, IntelliColorPicker *colorPicker)
Definition: IntelliTool.cpp:4
+
PaintingArea * Area
Definition: IntelliTool.h:16
+ + +
virtual void onMouseRightReleased(int x, int y)
Definition: IntelliTool.cpp:21
+ +
LayerObject * Canvas
Definition: IntelliTool.h:20
+
bool drawing
Definition: IntelliTool.h:21
+ + +
LayerObject * Active
Definition: IntelliTool.h:19
+
virtual void onMouseMoved(int x, int y)
Definition: IntelliTool.cpp:41
+
virtual ~IntelliTool()=0
Definition: IntelliTool.cpp:10
+ + + + diff --git a/docs/html/_intelli_tool_line_8cpp.html b/docs/html/_intelli_tool_line_8cpp.html new file mode 100644 index 0000000..19a483a --- /dev/null +++ b/docs/html/_intelli_tool_line_8cpp.html @@ -0,0 +1,116 @@ + + + + + + + +IntelliPhoto: src/Tool/IntelliToolLine.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliToolLine.cpp File Reference
+
+
+
#include "IntelliToolLine.h"
+#include "Layer/PaintingArea.h"
+#include "QColorDialog"
+#include "QInputDialog"
+
+Include dependency graph for IntelliToolLine.cpp:
+
+
+
+
+

Go to the source code of this file.

+
+
+ + + + diff --git a/docs/html/_intelli_tool_line_8cpp__incl.dot b/docs/html/_intelli_tool_line_8cpp__incl.dot new file mode 100644 index 0000000..9f6e6c5 --- /dev/null +++ b/docs/html/_intelli_tool_line_8cpp__incl.dot @@ -0,0 +1,53 @@ +digraph "src/Tool/IntelliToolLine.cpp" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/Tool/IntelliToolLine.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliToolLine.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_line_8h.html",tooltip=" "]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliTool.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_8h.html",tooltip=" "]; + Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliHelper/IntelliColor\lPicker.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_color_picker_8h.html",tooltip=" "]; + Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="QColor",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node4 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node4 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="QColorDialog",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node3 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="vector",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="Layer/PaintingArea.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8h.html",tooltip=" "]; + Node9 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="QImage",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node9 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node9 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="QList",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node9 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="Image/IntelliImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_image_8h.html",tooltip=" "]; + Node13 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="QSize",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node13 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="Image/IntelliRasterImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_raster_image_8h.html",tooltip=" "]; + Node15 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="Image/IntelliShapedImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_shaped_image_8h.html",tooltip=" "]; + Node16 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="QInputDialog",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; +} diff --git a/docs/html/_intelli_tool_line_8cpp_source.html b/docs/html/_intelli_tool_line_8cpp_source.html new file mode 100644 index 0000000..53ff819 --- /dev/null +++ b/docs/html/_intelli_tool_line_8cpp_source.html @@ -0,0 +1,188 @@ + + + + + + + +IntelliPhoto: src/Tool/IntelliToolLine.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliToolLine.cpp
+
+
+Go to the documentation of this file.
1 #include "IntelliToolLine.h"
+
2 #include "Layer/PaintingArea.h"
+
3 #include "QColorDialog"
+
4 #include "QInputDialog"
+
5 
+ +
7  :IntelliTool(Area, colorPicker){
+
8  this->lineWidth = QInputDialog::getInt(nullptr,"Line Width Input", "Width",1,1,50,1);
+
9  //create checkbox or scroll dialog to get line style
+
10  this->lineStyle = LineStyle::SOLID_LINE;
+
11 }
+
12 
+ +
14 
+
15 }
+
16 
+
17 
+ + +
20 }
+
21 
+ + +
24 }
+
25 
+ + +
28  this->start=QPoint(x,y);
+
29  this->Canvas->image->drawLine(start, start, colorPicker->getFirstColor(),lineWidth);
+ +
31 }
+
32 
+ + +
35 }
+
36 
+
37 void IntelliToolLine::onMouseMoved(int x, int y){
+ +
39  if(this->drawing){
+
40  this->Canvas->image->drawPlain(Qt::transparent);
+
41  QPoint next(x,y);
+
42  switch(lineStyle){
+ +
44  this->Canvas->image->drawLine(start,next,colorPicker->getFirstColor(),lineWidth);
+
45  break;
+ +
47  QPoint p1 =start.x() <= next.x() ? start : next;
+
48  QPoint p2 =start.x() < next.x() ? next : start;
+
49  int m = (float)(p2.y()-p1.y())/(float)(p2.x()-p1.x())+0.5f;
+
50  int c = start.y()-start.x()*m;
+
51 
+
52  break;
+
53  }
+
54  }
+ +
56 }
+
+
+
virtual void onMouseRightPressed(int x, int y)
Definition: IntelliTool.cpp:14
+
virtual void onMouseLeftReleased(int x, int y)
Definition: IntelliTool.cpp:32
+
IntelliColorPicker * colorPicker
Definition: IntelliTool.h:17
+
virtual void drawLine(const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth)
+ +
virtual void onMouseLeftPressed(int x, int y)
Definition: IntelliTool.cpp:25
+
virtual void onMouseMoved(int x, int y) override
+
virtual void onMouseRightReleased(int x, int y) override
+
IntelliToolLine(PaintingArea *Area, IntelliColorPicker *colorPicker)
+ + + +
virtual ~IntelliToolLine() override
+
virtual void onMouseLeftReleased(int x, int y) override
+
virtual void onMouseRightPressed(int x, int y) override
+
virtual void onMouseRightReleased(int x, int y)
Definition: IntelliTool.cpp:21
+
LayerObject * Canvas
Definition: IntelliTool.h:20
+
bool drawing
Definition: IntelliTool.h:21
+ + + + +
IntelliImage * image
Definition: PaintingArea.h:18
+
virtual void onMouseLeftPressed(int x, int y) override
+
virtual void onMouseMoved(int x, int y)
Definition: IntelliTool.cpp:41
+
virtual void calculateVisiblity()=0
+
virtual void drawPlain(const QColor &color)
+ + + + diff --git a/docs/html/_intelli_tool_line_8h.html b/docs/html/_intelli_tool_line_8h.html new file mode 100644 index 0000000..7ce65bf --- /dev/null +++ b/docs/html/_intelli_tool_line_8h.html @@ -0,0 +1,165 @@ + + + + + + + +IntelliPhoto: src/Tool/IntelliToolLine.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
IntelliToolLine.h File Reference
+
+
+
#include "IntelliTool.h"
+#include "QColor"
+#include "QPoint"
+
+Include dependency graph for IntelliToolLine.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  IntelliToolLine
 
+ + + +

+Enumerations

enum  LineStyle { LineStyle::SOLID_LINE, +LineStyle::DOTTED_LINE + }
 
+

Enumeration Type Documentation

+ +

◆ LineStyle

+ +
+
+ + + + + +
+ + + + +
enum LineStyle
+
+strong
+
+ + + +
Enumerator
SOLID_LINE 
DOTTED_LINE 
+ +

Definition at line 8 of file IntelliToolLine.h.

+ +
+
+
+
+ + + + diff --git a/docs/html/_intelli_tool_line_8h.js b/docs/html/_intelli_tool_line_8h.js new file mode 100644 index 0000000..dde1f78 --- /dev/null +++ b/docs/html/_intelli_tool_line_8h.js @@ -0,0 +1,8 @@ +var _intelli_tool_line_8h = +[ + [ "IntelliToolLine", "class_intelli_tool_line.html", "class_intelli_tool_line" ], + [ "LineStyle", "_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7", [ + [ "SOLID_LINE", "_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7ae45e1e6b2e6dde14829d057a4ef44199", null ], + [ "DOTTED_LINE", "_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7a7660f396543c877e45d443f99d02bd0e", null ] + ] ] +]; \ No newline at end of file diff --git a/docs/html/_intelli_tool_line_8h__dep__incl.dot b/docs/html/_intelli_tool_line_8h__dep__incl.dot new file mode 100644 index 0000000..9b08539 --- /dev/null +++ b/docs/html/_intelli_tool_line_8h__dep__incl.dot @@ -0,0 +1,11 @@ +digraph "src/Tool/IntelliToolLine.h" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/Tool/IntelliToolLine.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="src/Layer/PaintingArea.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8cpp.html",tooltip=" "]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="src/Tool/IntelliToolLine.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_line_8cpp.html",tooltip=" "]; +} diff --git a/docs/html/_intelli_tool_line_8h__incl.dot b/docs/html/_intelli_tool_line_8h__incl.dot new file mode 100644 index 0000000..7abfcd1 --- /dev/null +++ b/docs/html/_intelli_tool_line_8h__incl.dot @@ -0,0 +1,21 @@ +digraph "src/Tool/IntelliToolLine.h" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/Tool/IntelliToolLine.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_8h.html",tooltip=" "]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliHelper/IntelliColor\lPicker.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_color_picker_8h.html",tooltip=" "]; + Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="QColor",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="QColorDialog",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="vector",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/docs/html/_intelli_tool_line_8h_source.html b/docs/html/_intelli_tool_line_8h_source.html new file mode 100644 index 0000000..4b067e1 --- /dev/null +++ b/docs/html/_intelli_tool_line_8h_source.html @@ -0,0 +1,152 @@ + + + + + + + +IntelliPhoto: src/Tool/IntelliToolLine.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliToolLine.h
+
+
+Go to the documentation of this file.
1 #ifndef INTELLITOOLLINE_H
+
2 #define INTELLITOOLLINE_H
+
3 #include "IntelliTool.h"
+
4 
+
5 #include "QColor"
+
6 #include "QPoint"
+
7 
+
8 enum class LineStyle{
+ + +
11 };
+
12 
+ +
14  QPoint start;
+
15  int lineWidth;
+
16  LineStyle lineStyle;
+
17 public:
+ +
19  virtual ~IntelliToolLine() override;
+
20 
+
21 
+
22  virtual void onMouseRightPressed(int x, int y) override;
+
23  virtual void onMouseRightReleased(int x, int y) override;
+
24  virtual void onMouseLeftPressed(int x, int y) override;
+
25  virtual void onMouseLeftReleased(int x, int y) override;
+
26 
+
27  virtual void onMouseMoved(int x, int y) override;
+
28 };
+
29 
+
30 #endif // INTELLITOOLLINE_H
+
+
+
IntelliColorPicker * colorPicker
Definition: IntelliTool.h:17
+ + +
LineStyle
+
virtual void onMouseMoved(int x, int y) override
+
virtual void onMouseRightReleased(int x, int y) override
+
PaintingArea * Area
Definition: IntelliTool.h:16
+
IntelliToolLine(PaintingArea *Area, IntelliColorPicker *colorPicker)
+ + +
virtual ~IntelliToolLine() override
+
virtual void onMouseLeftReleased(int x, int y) override
+
virtual void onMouseRightPressed(int x, int y) override
+ + +
virtual void onMouseLeftPressed(int x, int y) override
+ + + + + diff --git a/docs/html/_intelli_tool_pen_8cpp.html b/docs/html/_intelli_tool_pen_8cpp.html new file mode 100644 index 0000000..04eb133 --- /dev/null +++ b/docs/html/_intelli_tool_pen_8cpp.html @@ -0,0 +1,117 @@ + + + + + + + +IntelliPhoto: src/Tool/IntelliToolPen.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliToolPen.cpp File Reference
+
+
+
#include "IntelliToolPen.h"
+#include "Layer/PaintingArea.h"
+#include "QDebug"
+#include "QColorDialog"
+#include "QInputDialog"
+
+Include dependency graph for IntelliToolPen.cpp:
+
+
+
+
+

Go to the source code of this file.

+
+
+ + + + diff --git a/docs/html/_intelli_tool_pen_8cpp__incl.dot b/docs/html/_intelli_tool_pen_8cpp__incl.dot new file mode 100644 index 0000000..ef527b0 --- /dev/null +++ b/docs/html/_intelli_tool_pen_8cpp__incl.dot @@ -0,0 +1,55 @@ +digraph "src/Tool/IntelliToolPen.cpp" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/Tool/IntelliToolPen.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliToolPen.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_pen_8h.html",tooltip=" "]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliTool.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_8h.html",tooltip=" "]; + Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliHelper/IntelliColor\lPicker.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_color_picker_8h.html",tooltip=" "]; + Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="QColor",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node4 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node4 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="QColorDialog",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node3 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="vector",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="Layer/PaintingArea.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8h.html",tooltip=" "]; + Node9 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="QImage",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node9 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node9 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="QList",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node9 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="Image/IntelliImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_image_8h.html",tooltip=" "]; + Node13 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="QSize",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node13 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="Image/IntelliRasterImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_raster_image_8h.html",tooltip=" "]; + Node15 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="Image/IntelliShapedImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_shaped_image_8h.html",tooltip=" "]; + Node16 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="QDebug",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 [label="QInputDialog",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; +} diff --git a/docs/html/_intelli_tool_pen_8cpp_source.html b/docs/html/_intelli_tool_pen_8cpp_source.html new file mode 100644 index 0000000..52c92af --- /dev/null +++ b/docs/html/_intelli_tool_pen_8cpp_source.html @@ -0,0 +1,172 @@ + + + + + + + +IntelliPhoto: src/Tool/IntelliToolPen.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliToolPen.cpp
+
+
+Go to the documentation of this file.
1 #include "IntelliToolPen.h"
+
2 #include "Layer/PaintingArea.h"
+
3 #include "QDebug"
+
4 #include "QColorDialog"
+
5 #include "QInputDialog"
+
6 
+ +
8  :IntelliTool(Area, colorPicker){
+
9  this->penWidth = QInputDialog::getInt(nullptr, "Pen width", "Width:", 1,0, 50, 1);
+
10 }
+
11 
+ +
13 
+
14 }
+
15 
+ + +
18 }
+
19 
+ + +
22 }
+
23 
+ + +
26  this->point=QPoint(x,y);
+
27  this->Canvas->image->drawPixel(point, colorPicker->getFirstColor());
+ +
29 }
+
30 
+ + +
33 }
+
34 
+
35 void IntelliToolPen::onMouseMoved(int x, int y){
+
36  if(this->drawing){
+
37  QPoint newPoint(x,y);
+
38  this->Canvas->image->drawLine(this->point, newPoint, colorPicker->getFirstColor(), penWidth);
+
39  this->point=newPoint;
+
40  }
+ +
42 }
+
+
+
virtual void onMouseRightPressed(int x, int y)
Definition: IntelliTool.cpp:14
+
virtual void onMouseLeftReleased(int x, int y)
Definition: IntelliTool.cpp:32
+
IntelliColorPicker * colorPicker
Definition: IntelliTool.h:17
+
virtual void drawLine(const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth)
+
virtual void onMouseLeftPressed(int x, int y)
Definition: IntelliTool.cpp:25
+
virtual ~IntelliToolPen() override
+
virtual void drawPixel(const QPoint &p1, const QColor &color)
+
virtual void onMouseMoved(int x, int y) override
+
virtual void onMouseRightPressed(int x, int y) override
+
virtual void onMouseRightReleased(int x, int y) override
+ +
virtual void onMouseRightReleased(int x, int y)
Definition: IntelliTool.cpp:21
+
LayerObject * Canvas
Definition: IntelliTool.h:20
+
bool drawing
Definition: IntelliTool.h:21
+ +
virtual void onMouseLeftReleased(int x, int y) override
+ + + +
IntelliImage * image
Definition: PaintingArea.h:18
+ +
virtual void onMouseMoved(int x, int y)
Definition: IntelliTool.cpp:41
+
virtual void onMouseLeftPressed(int x, int y) override
+
virtual void calculateVisiblity()=0
+
IntelliToolPen(PaintingArea *Area, IntelliColorPicker *colorPicker)
+ + + + diff --git a/docs/html/_intelli_tool_pen_8h.html b/docs/html/_intelli_tool_pen_8h.html new file mode 100644 index 0000000..e41a2f7 --- /dev/null +++ b/docs/html/_intelli_tool_pen_8h.html @@ -0,0 +1,128 @@ + + + + + + + +IntelliPhoto: src/Tool/IntelliToolPen.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
IntelliToolPen.h File Reference
+
+
+
#include "IntelliTool.h"
+#include "QColor"
+#include "QPoint"
+
+Include dependency graph for IntelliToolPen.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  IntelliToolPen
 
+
+
+ + + + diff --git a/docs/html/_intelli_tool_pen_8h__dep__incl.dot b/docs/html/_intelli_tool_pen_8h__dep__incl.dot new file mode 100644 index 0000000..6c1bae6 --- /dev/null +++ b/docs/html/_intelli_tool_pen_8h__dep__incl.dot @@ -0,0 +1,11 @@ +digraph "src/Tool/IntelliToolPen.h" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/Tool/IntelliToolPen.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="src/Layer/PaintingArea.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8cpp.html",tooltip=" "]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="src/Tool/IntelliToolPen.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_pen_8cpp.html",tooltip=" "]; +} diff --git a/docs/html/_intelli_tool_pen_8h__incl.dot b/docs/html/_intelli_tool_pen_8h__incl.dot new file mode 100644 index 0000000..d32c4e8 --- /dev/null +++ b/docs/html/_intelli_tool_pen_8h__incl.dot @@ -0,0 +1,21 @@ +digraph "src/Tool/IntelliToolPen.h" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/Tool/IntelliToolPen.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_8h.html",tooltip=" "]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliHelper/IntelliColor\lPicker.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_color_picker_8h.html",tooltip=" "]; + Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="QColor",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="QColorDialog",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="vector",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/docs/html/_intelli_tool_pen_8h_source.html b/docs/html/_intelli_tool_pen_8h_source.html new file mode 100644 index 0000000..10a17c3 --- /dev/null +++ b/docs/html/_intelli_tool_pen_8h_source.html @@ -0,0 +1,142 @@ + + + + + + + +IntelliPhoto: src/Tool/IntelliToolPen.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliToolPen.h
+
+
+Go to the documentation of this file.
1 #ifndef INTELLITOOLPEN_H
+
2 #define INTELLITOOLPEN_H
+
3 
+
4 #include"IntelliTool.h"
+
5 #include"QColor"
+
6 #include"QPoint"
+
7 
+
8 class IntelliToolPen : public IntelliTool{
+
9  int penWidth;
+
10  QPoint point;
+
11 public:
+ +
13  virtual ~IntelliToolPen() override;
+
14 
+
15  virtual void onMouseRightPressed(int x, int y) override;
+
16  virtual void onMouseRightReleased(int x, int y) override;
+
17  virtual void onMouseLeftPressed(int x, int y) override;
+
18  virtual void onMouseLeftReleased(int x, int y) override;
+
19 
+
20  virtual void onMouseMoved(int x, int y) override;
+
21 };
+
22 
+
23 #endif // INTELLITOOLPEN_H
+
+
+
IntelliColorPicker * colorPicker
Definition: IntelliTool.h:17
+ +
virtual ~IntelliToolPen() override
+
PaintingArea * Area
Definition: IntelliTool.h:16
+
virtual void onMouseMoved(int x, int y) override
+
virtual void onMouseRightPressed(int x, int y) override
+
virtual void onMouseRightReleased(int x, int y) override
+ + + +
virtual void onMouseLeftReleased(int x, int y) override
+ +
virtual void onMouseLeftPressed(int x, int y) override
+
IntelliToolPen(PaintingArea *Area, IntelliColorPicker *colorPicker)
+ + + + diff --git a/docs/html/_intelli_tool_plain_8cpp.html b/docs/html/_intelli_tool_plain_8cpp.html new file mode 100644 index 0000000..df72ab0 --- /dev/null +++ b/docs/html/_intelli_tool_plain_8cpp.html @@ -0,0 +1,115 @@ + + + + + + + +IntelliPhoto: src/Tool/IntelliToolPlain.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliToolPlain.cpp File Reference
+
+
+
#include "IntelliToolPlain.h"
+#include "Layer/PaintingArea.h"
+#include "QColorDialog"
+
+Include dependency graph for IntelliToolPlain.cpp:
+
+
+
+
+

Go to the source code of this file.

+
+
+ + + + diff --git a/docs/html/_intelli_tool_plain_8cpp__incl.dot b/docs/html/_intelli_tool_plain_8cpp__incl.dot new file mode 100644 index 0000000..8cee8ea --- /dev/null +++ b/docs/html/_intelli_tool_plain_8cpp__incl.dot @@ -0,0 +1,50 @@ +digraph "src/Tool/IntelliToolPlain.cpp" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/Tool/IntelliToolPlain.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliToolPlain.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_plain_8h.html",tooltip=" "]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliTool.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_8h.html",tooltip=" "]; + Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliHelper/IntelliColor\lPicker.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_color_picker_8h.html",tooltip=" "]; + Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="QColor",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node4 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node4 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="QColorDialog",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node3 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="vector",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="Layer/PaintingArea.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8h.html",tooltip=" "]; + Node9 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="QImage",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node9 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node9 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="QList",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node9 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="Image/IntelliImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_image_8h.html",tooltip=" "]; + Node13 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="QSize",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node13 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="Image/IntelliRasterImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_raster_image_8h.html",tooltip=" "]; + Node15 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="Image/IntelliShapedImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_shaped_image_8h.html",tooltip=" "]; + Node16 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/docs/html/_intelli_tool_plain_8cpp_source.html b/docs/html/_intelli_tool_plain_8cpp_source.html new file mode 100644 index 0000000..3c3bcfb --- /dev/null +++ b/docs/html/_intelli_tool_plain_8cpp_source.html @@ -0,0 +1,157 @@ + + + + + + + +IntelliPhoto: src/Tool/IntelliToolPlain.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliToolPlain.cpp
+
+
+Go to the documentation of this file.
1 #include "IntelliToolPlain.h"
+
2 #include "Layer/PaintingArea.h"
+
3 #include "QColorDialog"
+
4 
+ +
6  :IntelliTool(Area, colorPicker){
+
7 }
+
8 
+ + + + +
13 }
+
14 
+ + +
17 }
+
18 
+ + +
21 }
+
22 
+ + +
25 }
+
26 
+
27 
+ + +
30 }
+
+
+
virtual void onMouseRightPressed(int x, int y)
Definition: IntelliTool.cpp:14
+
virtual void onMouseLeftReleased(int x, int y)
Definition: IntelliTool.cpp:32
+
IntelliColorPicker * colorPicker
Definition: IntelliTool.h:17
+
virtual void onMouseLeftPressed(int x, int y)
Definition: IntelliTool.cpp:25
+
void onMouseLeftReleased(int x, int y) override
+
void onMouseRightReleased(int x, int y) override
+ + +
IntelliToolPlainTool(PaintingArea *Area, IntelliColorPicker *colorPicker)
+
virtual void onMouseRightReleased(int x, int y)
Definition: IntelliTool.cpp:21
+
void onMouseLeftPressed(int x, int y) override
+
LayerObject * Canvas
Definition: IntelliTool.h:20
+ + + + +
void onMouseRightPressed(int x, int y) override
+
IntelliImage * image
Definition: PaintingArea.h:18
+
void onMouseMoved(int x, int y) override
+
virtual void onMouseMoved(int x, int y)
Definition: IntelliTool.cpp:41
+
virtual void calculateVisiblity()=0
+
virtual void drawPlain(const QColor &color)
+ + + + diff --git a/docs/html/_intelli_tool_plain_8h.html b/docs/html/_intelli_tool_plain_8h.html new file mode 100644 index 0000000..bb03de9 --- /dev/null +++ b/docs/html/_intelli_tool_plain_8h.html @@ -0,0 +1,127 @@ + + + + + + + +IntelliPhoto: src/Tool/IntelliToolPlain.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
IntelliToolPlain.h File Reference
+
+
+
#include "IntelliTool.h"
+#include "QColor"
+
+Include dependency graph for IntelliToolPlain.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  IntelliToolPlainTool
 
+
+
+ + + + diff --git a/docs/html/_intelli_tool_plain_8h__dep__incl.dot b/docs/html/_intelli_tool_plain_8h__dep__incl.dot new file mode 100644 index 0000000..2448c18 --- /dev/null +++ b/docs/html/_intelli_tool_plain_8h__dep__incl.dot @@ -0,0 +1,11 @@ +digraph "src/Tool/IntelliToolPlain.h" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/Tool/IntelliToolPlain.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="src/Layer/PaintingArea.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8cpp.html",tooltip=" "]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="src/Tool/IntelliToolPlain.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_plain_8cpp.html",tooltip=" "]; +} diff --git a/docs/html/_intelli_tool_plain_8h__incl.dot b/docs/html/_intelli_tool_plain_8h__incl.dot new file mode 100644 index 0000000..901de4f --- /dev/null +++ b/docs/html/_intelli_tool_plain_8h__incl.dot @@ -0,0 +1,20 @@ +digraph "src/Tool/IntelliToolPlain.h" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/Tool/IntelliToolPlain.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_8h.html",tooltip=" "]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliHelper/IntelliColor\lPicker.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_color_picker_8h.html",tooltip=" "]; + Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="QColor",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="QColorDialog",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="vector",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/docs/html/_intelli_tool_plain_8h_source.html b/docs/html/_intelli_tool_plain_8h_source.html new file mode 100644 index 0000000..87f7df6 --- /dev/null +++ b/docs/html/_intelli_tool_plain_8h_source.html @@ -0,0 +1,137 @@ + + + + + + + +IntelliPhoto: src/Tool/IntelliToolPlain.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliToolPlain.h
+
+
+Go to the documentation of this file.
1 #ifndef INTELLITOOLFLOODFILLTOOL_H
+
2 #define INTELLITOOLFLOODFILLTOOL_H
+
3 
+
4 #include "IntelliTool.h"
+
5 #include "QColor"
+
6 
+ +
8 public:
+ +
10 
+
11  void onMouseLeftPressed(int x, int y) override;
+
12  void onMouseLeftReleased(int x, int y) override;
+
13  void onMouseRightPressed(int x, int y) override;
+
14  void onMouseRightReleased(int x, int y) override;
+
15  void onMouseMoved(int x, int y) override;
+
16 
+
17 };
+
18 
+
19 #endif // INTELLITOOLFLOODFILLTOOL_H
+
+
+
IntelliColorPicker * colorPicker
Definition: IntelliTool.h:17
+ +
void onMouseLeftReleased(int x, int y) override
+
PaintingArea * Area
Definition: IntelliTool.h:16
+ +
void onMouseRightReleased(int x, int y) override
+ +
IntelliToolPlainTool(PaintingArea *Area, IntelliColorPicker *colorPicker)
+
void onMouseLeftPressed(int x, int y) override
+ + +
void onMouseRightPressed(int x, int y) override
+
void onMouseMoved(int x, int y) override
+ + + + diff --git a/docs/html/_painting_area_8cpp.html b/docs/html/_painting_area_8cpp.html new file mode 100644 index 0000000..18cf28a --- /dev/null +++ b/docs/html/_painting_area_8cpp.html @@ -0,0 +1,123 @@ + + + + + + + +IntelliPhoto: src/Layer/PaintingArea.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
PaintingArea.cpp File Reference
+
+
+
#include "string.h"
+#include <vector>
+#include <QtWidgets>
+#include <QPoint>
+#include <QRect>
+#include "PaintingArea.h"
+#include "Image/IntelliRasterImage.h"
+#include "Image/IntelliShapedImage.h"
+#include "Tool/IntelliToolPen.h"
+#include "Tool/IntelliToolPlain.h"
+#include "Tool/IntelliToolLine.h"
+
+Include dependency graph for PaintingArea.cpp:
+
+
+
+
+

Go to the source code of this file.

+
+
+ + + + diff --git a/docs/html/_painting_area_8cpp__incl.dot b/docs/html/_painting_area_8cpp__incl.dot new file mode 100644 index 0000000..1081034 --- /dev/null +++ b/docs/html/_painting_area_8cpp__incl.dot @@ -0,0 +1,69 @@ +digraph "src/Layer/PaintingArea.cpp" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/Layer/PaintingArea.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="string.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="vector",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="QtWidgets",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="QRect",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="PaintingArea.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8h.html",tooltip=" "]; + Node7 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="QColor",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node7 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="QImage",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node7 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node7 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="QList",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node7 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="Image/IntelliImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_image_8h.html",tooltip=" "]; + Node12 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="QSize",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node12 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="Image/IntelliRasterImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_raster_image_8h.html",tooltip=" "]; + Node14 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="Image/IntelliShapedImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_shaped_image_8h.html",tooltip=" "]; + Node15 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="Tool/IntelliTool.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_8h.html",tooltip=" "]; + Node16 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="IntelliHelper/IntelliColor\lPicker.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_color_picker_8h.html",tooltip=" "]; + Node17 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 [label="QColorDialog",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node16 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 [label="Tool/IntelliToolPen.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_pen_8h.html",tooltip=" "]; + Node19 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 [label="Tool/IntelliToolPlain.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_plain_8h.html",tooltip=" "]; + Node20 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node21 [label="Tool/IntelliToolLine.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_line_8h.html",tooltip=" "]; + Node21 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node21 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node21 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/docs/html/_painting_area_8cpp_source.html b/docs/html/_painting_area_8cpp_source.html new file mode 100644 index 0000000..069e0ac --- /dev/null +++ b/docs/html/_painting_area_8cpp_source.html @@ -0,0 +1,482 @@ + + + + + + + +IntelliPhoto: src/Layer/PaintingArea.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
PaintingArea.cpp
+
+
+Go to the documentation of this file.
1 // ---------- PaintingArea.cpp ----------
+
2 #include "string.h"
+
3 
+
4 #include <vector>
+
5 
+
6 #include <QtWidgets>
+
7 #include <QPoint>
+
8 #include <QRect>
+
9 
+
10 #include "PaintingArea.h"
+ + +
13 #include "Tool/IntelliToolPen.h"
+
14 #include "Tool/IntelliToolPlain.h"
+
15 #include "Tool/IntelliToolLine.h"
+
16 
+
17 PaintingArea::PaintingArea(int maxWidth, int maxHeight, QWidget *parent)
+
18  :QWidget(parent){
+
19  this->Tool = nullptr;
+
20  this->setUp(maxWidth, maxHeight);
+
21  //tetsing
+
22  this->addLayer(200,200,0,0,ImageType::Shaped_Image);
+
23  layerBundle[0].image->drawPlain(QColor(255,0,0,255));
+
24  std::vector<QPoint> polygon;
+
25  polygon.push_back(QPoint(100,000));
+
26  polygon.push_back(QPoint(200,100));
+
27  polygon.push_back(QPoint(100,200));
+
28  polygon.push_back(QPoint(000,100));
+
29  layerBundle[0].image->setPolygon(polygon);
+
30 
+
31  this->addLayer(200,200,150,150);
+
32  layerBundle[1].image->drawPlain(QColor(0,255,0,255));
+
33  layerBundle[1].alpha=200;
+
34 
+
35  activeLayer=0;
+
36 }
+
37 
+ +
39  delete Tool;
+
40 }
+
41 
+
42 void PaintingArea::setUp(int maxWidth, int maxHeight){
+
43  //set standart parameter
+
44  this->maxWidth = maxWidth;
+
45  this->maxHeight = maxHeight;
+
46  Canvas = new QImage(maxWidth,maxHeight, QImage::Format_ARGB32);
+
47 
+
48  // Roots the widget to the top left even if resized
+
49  setAttribute(Qt::WA_StaticContents);
+
50 
+
51 }
+
52 
+
53 int PaintingArea::addLayer(int width, int height, int widthOffset, int heightOffset, ImageType type){
+
54  LayerObject newLayer;
+
55  newLayer.width = width;
+
56  newLayer.hight = height;
+
57  newLayer.widthOffset = widthOffset;
+
58  newLayer.hightOffset = heightOffset;
+
59  if(type==ImageType::Raster_Image){
+
60  newLayer.image = new IntelliRasterImage(width,height);
+
61  }else if(type==ImageType::Shaped_Image){
+
62  newLayer.image = new IntelliShapedImage(width, height);
+
63  }
+
64  newLayer.alpha = 255;
+
65  this->layerBundle.push_back(newLayer);
+
66  return static_cast<int>(layerBundle.size())-1;
+
67 }
+
68 
+
69 
+
70 void PaintingArea::deleteLayer(int index){
+
71  if(index<static_cast<int>(layerBundle.size())){
+
72  this->layerBundle.erase(layerBundle.begin()+index);
+
73  if(activeLayer>=index){
+
74  activeLayer--;
+
75  }
+
76  }
+
77 }
+
78 
+ +
80  if(activeLayer>=0 && activeLayer < static_cast<int>(layerBundle.size())){
+
81  this->layerBundle.erase(layerBundle.begin()+activeLayer);
+
82  activeLayer--;
+
83  }
+
84 }
+
85 
+ +
87  if(index>=0&&index<static_cast<int>(layerBundle.size())){
+
88  this->activeLayer=index;
+
89  }
+
90 }
+
91 
+
92 void PaintingArea::setAlphaOfLayer(int index, int alpha){
+
93  if(index>=0&&index<static_cast<int>(layerBundle.size())){
+
94  layerBundle[static_cast<size_t>(index)].alpha=alpha;
+
95  }
+
96 }
+
97 
+
98 // Used to load the image and place it in the widget
+
99 bool PaintingArea::open(const QString &fileName){
+
100  if(this->activeLayer==-1){
+
101  return false;
+
102  }
+
103  IntelliImage* active = layerBundle[static_cast<size_t>(activeLayer)].image;
+
104  bool open = active->loadImage(fileName);
+
105  active->calculateVisiblity();
+
106  update();
+
107  return open;
+
108 }
+
109 
+
110 // Save the current image
+
111 bool PaintingArea::save(const QString &fileName, const char *fileFormat){
+
112  if(layerBundle.size()==0){
+
113  return false;
+
114  }
+
115  this->assembleLayers(true);
+
116 
+
117  if(!strcmp(fileFormat,"PNG")){
+
118  QImage visibleImage = Canvas->convertToFormat(QImage::Format_Indexed8);
+
119  fileFormat = "png";
+
120  if (visibleImage.save(fileName, fileFormat)) {
+
121  return true;
+
122  } else {
+
123  return false;
+
124  }
+
125  }
+
126 
+
127  if (Canvas->save(fileName, fileFormat)) {
+
128  return true;
+
129  } else {
+
130  return false;
+
131  }
+
132 }
+
133 
+
134 // Color the image area with white
+
135 void PaintingArea::floodFill(int r, int g, int b, int a){
+
136  if(this->activeLayer==-1){
+
137  return;
+
138  }
+
139  IntelliImage* active = layerBundle[static_cast<size_t>(activeLayer)].image;
+
140  active->drawPlain(QColor(r, g, b, a));
+
141  update();
+
142 }
+
143 
+ +
145  layerBundle[static_cast<size_t>(activeLayer)].widthOffset += x;
+
146  layerBundle[static_cast<size_t>(activeLayer)].hightOffset += y;
+
147 }
+
148 
+ +
150  if(idx==1){
+
151  this->activateUpperLayer();
+
152  }else if(idx==-1){
+
153  this->activateLowerLayer();
+
154  }
+
155 }
+
156 
+ +
158  if(a>=0 && a < static_cast<int>(layerBundle.size())){
+
159  this->setLayerToActive(a);
+
160  }
+
161 }
+
162 
+ +
164  QColor clr = QColorDialog::getColor(colorPicker.getFirstColor(), nullptr, "Main Color");
+
165  this->colorPicker.setFirstColor(clr);
+
166 }
+
167 
+ +
169  QColor clr = QColorDialog::getColor(colorPicker.getSecondColor(), nullptr, "Secondary Color");
+
170  this->colorPicker.setSecondColor(clr);
+
171 }
+
172 
+ +
174  this->colorPicker.switchColors();
+
175 }
+
176 
+ +
178  delete this->Tool;
+
179  Tool = new IntelliToolPen(this, &colorPicker);
+
180 }
+
181 
+ +
183  delete this->Tool;
+
184  Tool = new IntelliToolPlainTool(this, &colorPicker);
+
185 }
+
186 
+ +
188  delete this->Tool;
+
189  Tool = new IntelliToolLine(this, &colorPicker);
+
190 }
+
191 
+
192 // If a mouse button is pressed check if it was the
+
193 // left button and if so store the current position
+
194 // Set that we are currently drawing
+
195 void PaintingArea::mousePressEvent(QMouseEvent *event){
+
196  if(Tool == nullptr)
+
197  return;
+
198  int x = event->x()-layerBundle[activeLayer].widthOffset;
+
199  int y = event->y()-layerBundle[activeLayer].hightOffset;
+
200  if(event->button() == Qt::LeftButton){
+
201  Tool->onMouseLeftPressed(x, y);
+
202  }else if(event->button() == Qt::RightButton){
+
203  Tool->onMouseRightPressed(x, y);
+
204  }
+
205  update();
+
206 }
+
207 
+
208 // When the mouse moves if the left button is clicked
+
209 // we call the drawline function which draws a line
+
210 // from the last position to the current
+
211 void PaintingArea::mouseMoveEvent(QMouseEvent *event){
+
212  if(Tool == nullptr)
+
213  return;
+
214  int x = event->x()-layerBundle[activeLayer].widthOffset;
+
215  int y = event->y()-layerBundle[activeLayer].hightOffset;
+
216  Tool->onMouseMoved(x, y);
+
217  update();
+
218 }
+
219 
+
220 // If the button is released we set variables to stop drawing
+
221 void PaintingArea::mouseReleaseEvent(QMouseEvent *event){
+
222  if(Tool == nullptr)
+
223  return;
+
224  int x = event->x()-layerBundle[activeLayer].widthOffset;
+
225  int y = event->y()-layerBundle[activeLayer].hightOffset;
+
226  if(event->button() == Qt::LeftButton){
+
227  Tool->onMouseLeftReleased(x, y);
+
228  }else if(event->button() == Qt::RightButton){
+
229  Tool->onMouseRightReleased(x, y);
+
230  }
+
231  update();
+
232 }
+
233 
+
234 // QPainter provides functions to draw on the widget
+
235 // The QPaintEvent is sent to widgets that need to
+
236 // update themselves
+
237 void PaintingArea::paintEvent(QPaintEvent *event){
+
238  this->assembleLayers();
+
239 
+
240  QPainter painter(this);
+
241  QRect dirtyRec = event->rect();
+
242  painter.drawImage(dirtyRec, *Canvas, dirtyRec);
+
243  update();
+
244 }
+
245 
+
246 // Resize the image to slightly larger then the main window
+
247 // to cut down on the need to resize the image
+
248 void PaintingArea::resizeEvent(QResizeEvent *event){
+
249  //TODO wait till tool works
+
250  update();
+
251 }
+
252 
+
253 void PaintingArea::resizeImage(QImage *image_res, const QSize &newSize){
+
254  //TODO implement
+
255 }
+
256 
+
257 void PaintingArea::activateUpperLayer(){
+
258  if(activeLayer!=-1 && activeLayer<layerBundle.size()-1){
+
259  std::swap(layerBundle[activeLayer], layerBundle[activeLayer+1]);
+
260  activeLayer++;
+
261  }
+
262 }
+
263 
+
264 void PaintingArea::activateLowerLayer(){
+
265  if(activeLayer!=-1 && activeLayer>0){
+
266  std::swap(layerBundle[activeLayer], layerBundle[activeLayer-1]);
+
267  activeLayer--;
+
268  }
+
269 }
+
270 
+
271 void PaintingArea::assembleLayers(bool forSaving){
+
272  if(forSaving){
+
273  Canvas->fill(Qt::GlobalColor::transparent);
+
274  }else{
+
275  Canvas->fill(Qt::GlobalColor::black);
+
276  }
+
277  for(size_t i=0; i<layerBundle.size(); i++){
+
278  LayerObject layer = layerBundle[i];
+
279  QImage cpy = layer.image->getDisplayable(layer.alpha);
+
280  QColor clr_0;
+
281  QColor clr_1;
+
282  for(int y=0; y<layer.hight; y++){
+
283  if(layer.hightOffset+y<0) continue;
+
284  if(layer.hightOffset+y>=maxHeight) break;
+
285  for(int x=0; x<layer.width; x++){
+
286  if(layer.widthOffset+x<0) continue;
+
287  if(layer.widthOffset+x>=maxWidth) break;
+
288  clr_0=Canvas->pixelColor(layer.widthOffset+x, layer.hightOffset+y);
+
289  clr_1=cpy.pixelColor(x,y);
+
290  float t = static_cast<float>(clr_1.alpha())/255.f;
+
291  int r =static_cast<int>(static_cast<float>(clr_1.red())*(t)+static_cast<float>(clr_0.red())*(1.f-t)+0.5f);
+
292  int g =static_cast<int>(static_cast<float>(clr_1.green())*(t)+static_cast<float>(clr_0.green())*(1.f-t)+0.5f);
+
293  int b =static_cast<int>(static_cast<float>(clr_1.blue())*(t)+static_cast<float>(clr_0.blue()*(1.f-t))+0.5f);
+
294  int a =std::min(clr_0.alpha()+clr_1.alpha(), 255);
+
295  clr_0.setRed(r);
+
296  clr_0.setGreen(g);
+
297  clr_0.setBlue(b);
+
298  clr_0.setAlpha(a);
+
299 
+
300  Canvas->setPixelColor(layer.widthOffset+x, layer.hightOffset+y, clr_0);
+
301  }
+
302  }
+
303  }
+
304 }
+
305 
+
306 void PaintingArea::createTempLayerAfter(int idx){
+
307  if(idx>=0){
+
308  LayerObject newLayer;
+
309  newLayer.alpha = 255;
+
310  newLayer.hight = layerBundle[idx].hight;
+
311  newLayer.width = layerBundle[idx].width;
+
312  newLayer.hightOffset = layerBundle[idx].hightOffset;
+
313  newLayer.widthOffset = layerBundle[idx].widthOffset;
+
314  newLayer.image = layerBundle[idx].image->getDeepCopy();
+
315  layerBundle.insert(layerBundle.begin()+idx+1,newLayer);
+
316  }
+
317 }
+
+
+
virtual void onMouseRightPressed(int x, int y)
Definition: IntelliTool.cpp:14
+
virtual void onMouseLeftReleased(int x, int y)
Definition: IntelliTool.cpp:32
+
ImageType
Definition: IntelliImage.h:11
+
int addLayer(int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
+
void mouseReleaseEvent(QMouseEvent *event) override
+
virtual void onMouseLeftPressed(int x, int y)
Definition: IntelliTool.cpp:25
+ +
bool open(const QString &fileName)
+ +
virtual bool loadImage(const QString &fileName)
+
void setLayerToActive(int index)
+
void floodFill(int r, int g, int b, int a)
+ +
void setSecondColor(QColor Color)
+ + +
bool save(const QString &fileName, const char *fileFormat)
+ +
virtual QImage getDisplayable(const QSize &displaySize, int alpha)=0
+
void createPlainTool()
+ +
void deleteLayer(int index)
+
void createPenTool()
+ +
void mousePressEvent(QMouseEvent *event) override
+ + + +
void createLineTool()
+ + +
void colorPickerSetSecondColor()
+
virtual void onMouseRightReleased(int x, int y)
Definition: IntelliTool.cpp:21
+
void colorPickerSetFirstColor()
+
void colorPickerSwitchColor()
+ +
void mouseMoveEvent(QMouseEvent *event) override
+
void setFirstColor(QColor Color)
+
void slotDeleteActiveLayer()
+ +
void moveActiveLayer(int idx)
+ +
PaintingArea(int maxWidth=600, int maxHeight=600, QWidget *parent=nullptr)
+ + + +
void slotActivateLayer(int a)
+
void paintEvent(QPaintEvent *event) override
+
void setAlphaOfLayer(int index, int alpha)
+
IntelliImage * image
Definition: PaintingArea.h:18
+
void resizeEvent(QResizeEvent *event) override
+ +
void movePositionActive(int x, int y)
+ +
virtual void onMouseMoved(int x, int y)
Definition: IntelliTool.cpp:41
+ +
virtual void calculateVisiblity()=0
+ +
virtual void drawPlain(const QColor &color)
+ + + + + diff --git a/docs/html/_painting_area_8h.html b/docs/html/_painting_area_8h.html new file mode 100644 index 0000000..ca5a6dc --- /dev/null +++ b/docs/html/_painting_area_8h.html @@ -0,0 +1,137 @@ + + + + + + + +IntelliPhoto: src/Layer/PaintingArea.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
PaintingArea.h File Reference
+
+
+
#include <QColor>
+#include <QImage>
+#include <QPoint>
+#include <QWidget>
+#include <QList>
+#include "Image/IntelliImage.h"
+#include "Image/IntelliRasterImage.h"
+#include "Image/IntelliShapedImage.h"
+#include "Tool/IntelliTool.h"
+#include "IntelliHelper/IntelliColorPicker.h"
+
+Include dependency graph for PaintingArea.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + +

+Classes

struct  LayerObject
 
class  PaintingArea
 
+
+
+ + + + diff --git a/docs/html/_painting_area_8h__dep__incl.dot b/docs/html/_painting_area_8h__dep__incl.dot new file mode 100644 index 0000000..8705dbb --- /dev/null +++ b/docs/html/_painting_area_8h__dep__incl.dot @@ -0,0 +1,19 @@ +digraph "src/Layer/PaintingArea.h" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/Layer/PaintingArea.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="src/GUI/IntelliPhotoGui.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_photo_gui_8cpp.html",tooltip=" "]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="src/Layer/PaintingArea.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8cpp.html",tooltip=" "]; + Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="src/Tool/IntelliTool.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_8cpp.html",tooltip=" "]; + Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="src/Tool/IntelliToolLine.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_line_8cpp.html",tooltip=" "]; + Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="src/Tool/IntelliToolPen.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_pen_8cpp.html",tooltip=" "]; + Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="src/Tool/IntelliToolPlain.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_plain_8cpp.html",tooltip=" "]; +} diff --git a/docs/html/_painting_area_8h__incl.dot b/docs/html/_painting_area_8h__incl.dot new file mode 100644 index 0000000..df02de9 --- /dev/null +++ b/docs/html/_painting_area_8h__incl.dot @@ -0,0 +1,43 @@ +digraph "src/Layer/PaintingArea.h" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/Layer/PaintingArea.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="QColor",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="QImage",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="QList",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="Image/IntelliImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_image_8h.html",tooltip=" "]; + Node7 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="QSize",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node7 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="vector",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="Image/IntelliRasterImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_raster_image_8h.html",tooltip=" "]; + Node10 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="Image/IntelliShapedImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_shaped_image_8h.html",tooltip=" "]; + Node11 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="Tool/IntelliTool.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_8h.html",tooltip=" "]; + Node12 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="IntelliHelper/IntelliColor\lPicker.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_color_picker_8h.html",tooltip=" "]; + Node13 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="QColorDialog",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node12 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/docs/html/_painting_area_8h_source.html b/docs/html/_painting_area_8h_source.html new file mode 100644 index 0000000..e70bd0e --- /dev/null +++ b/docs/html/_painting_area_8h_source.html @@ -0,0 +1,254 @@ + + + + + + + +IntelliPhoto: src/Layer/PaintingArea.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
PaintingArea.h
+
+
+Go to the documentation of this file.
1 
+
2 #ifndef PaintingArea_H
+
3 #define PaintingArea_H
+
4 
+
5 #include <QColor>
+
6 #include <QImage>
+
7 #include <QPoint>
+
8 #include <QWidget>
+
9 #include <QList>
+
10 #include "Image/IntelliImage.h"
+ + +
13 #include "Tool/IntelliTool.h"
+ +
15 
+
16 
+
17 struct LayerObject{
+ +
19  int width;
+
20  int hight;
+ + +
23  int alpha=255;
+
24 
+
25 
+
26 };
+
27 
+
28 class PaintingArea : public QWidget
+
29 {
+
30  // Declares our class as a QObject which is the base class
+
31  // for all Qt objects
+
32  // QObjects handle events
+
33  Q_OBJECT
+
34  friend IntelliTool;
+
35 public:
+
36  PaintingArea(int maxWidth=600, int maxHeight=600, QWidget *parent = nullptr);
+
37  ~PaintingArea();
+
38 
+
39  // Handles all events
+
40  bool open(const QString &fileName);
+
41  bool save(const QString &fileName, const char *fileFormat);
+
42 
+
43  int addLayer(int width, int height, int widthOffset=0, int heightOffset=0, ImageType type = ImageType::Raster_Image);
+
44  int addLayerAt(int idx, int width, int height, int widthOffset=0, int heightOffset=0, ImageType type = ImageType::Raster_Image);
+
45  void deleteLayer(int index);
+
46  void setLayerToActive(int index);
+
47  void setAlphaOfLayer(int index, int alpha);
+
48  void floodFill(int r, int g, int b, int a);
+
49  void movePositionActive(int x, int y);
+
50  void moveActiveLayer(int idx);
+
51 
+
52  //change properties of colorPicker
+ + + +
56 
+
57  //create tools
+
58  void createPenTool();
+
59  void createPlainTool();
+
60  void createLineTool();
+
61 
+
62 public slots:
+
63 
+
64  // Events to handle
+
65  void slotActivateLayer(int a);
+
66  void slotDeleteActiveLayer();
+
67 
+
68 protected:
+
69  void mousePressEvent(QMouseEvent *event) override;
+
70  void mouseMoveEvent(QMouseEvent *event) override;
+
71  void mouseReleaseEvent(QMouseEvent *event) override;
+
72 
+
73  // Updates the painting area where we are painting
+
74  void paintEvent(QPaintEvent *event) override;
+
75 
+
76  // Makes sure the area we are drawing on remains
+
77  // as large as the widget
+
78  void resizeEvent(QResizeEvent *event) override;
+
79 
+
80 private:
+
81  void setUp(int maxWidth, int maxHeight);
+
82  void activateUpperLayer();
+
83  void activateLowerLayer();
+
84 
+
85 
+
86  QImage* Canvas;
+
87  int maxWidth;
+
88  int maxHeight;
+
89 
+
90  IntelliTool* Tool;
+
91  IntelliColorPicker colorPicker;
+
92 
+
93  std::vector<LayerObject> layerBundle;
+
94  int activeLayer=-1;
+
95 
+
96  void assembleLayers(bool forSaving=false);
+
97 
+
98  void resizeImage(QImage *image_res, const QSize &newSize);
+
99 
+
100 
+
101  //Helper for Tool
+
102  void createTempLayerAfter(int idx);
+
103 };
+
104 
+
105 #endif
+
106 
+
+
+
ImageType
Definition: IntelliImage.h:11
+
int addLayer(int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
+
void mouseReleaseEvent(QMouseEvent *event) override
+ + + +
bool open(const QString &fileName)
+ +
void setLayerToActive(int index)
+
void floodFill(int r, int g, int b, int a)
+
bool save(const QString &fileName, const char *fileFormat)
+
void createPlainTool()
+ + +
void deleteLayer(int index)
+
void createPenTool()
+
void mousePressEvent(QMouseEvent *event) override
+ + + +
void createLineTool()
+
void colorPickerSetSecondColor()
+
void colorPickerSetFirstColor()
+
void colorPickerSwitchColor()
+ + +
void mouseMoveEvent(QMouseEvent *event) override
+ +
void slotDeleteActiveLayer()
+
int addLayerAt(int idx, int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
+
void moveActiveLayer(int idx)
+ +
PaintingArea(int maxWidth=600, int maxHeight=600, QWidget *parent=nullptr)
+ +
void slotActivateLayer(int a)
+ +
void paintEvent(QPaintEvent *event) override
+
void setAlphaOfLayer(int index, int alpha)
+
IntelliImage * image
Definition: PaintingArea.h:18
+
void resizeEvent(QResizeEvent *event) override
+
void movePositionActive(int x, int y)
+ + + + + + diff --git a/docs/html/_tool_2_intelli_color_picker_8cpp.html b/docs/html/_tool_2_intelli_color_picker_8cpp.html new file mode 100644 index 0000000..1470e1a --- /dev/null +++ b/docs/html/_tool_2_intelli_color_picker_8cpp.html @@ -0,0 +1,114 @@ + + + + + + + +IntelliPhoto: src/Tool/IntelliColorPicker.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliColorPicker.cpp File Reference
+
+
+
#include "IntelliColorPicker.h"
+#include "QDebug"
+
+Include dependency graph for IntelliColorPicker.cpp:
+
+
+
+
+

Go to the source code of this file.

+
+
+ + + + diff --git a/docs/html/_tool_2_intelli_color_picker_8cpp__incl.dot b/docs/html/_tool_2_intelli_color_picker_8cpp__incl.dot new file mode 100644 index 0000000..25c6684 --- /dev/null +++ b/docs/html/_tool_2_intelli_color_picker_8cpp__incl.dot @@ -0,0 +1,17 @@ +digraph "src/Tool/IntelliColorPicker.cpp" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/Tool/IntelliColorPicker.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliColorPicker.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_color_picker_8h.html",tooltip=" "]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="QColor",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="QColorDialog",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="QDebug",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; +} diff --git a/docs/html/_tool_2_intelli_color_picker_8cpp_source.html b/docs/html/_tool_2_intelli_color_picker_8cpp_source.html new file mode 100644 index 0000000..2edebbd --- /dev/null +++ b/docs/html/_tool_2_intelli_color_picker_8cpp_source.html @@ -0,0 +1,148 @@ + + + + + + + +IntelliPhoto: src/Tool/IntelliColorPicker.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliColorPicker.cpp
+
+
+Go to the documentation of this file.
1 #include "IntelliColorPicker.h"
+
2 #include "QDebug"
+
3 
+ +
5  :IntelliTool(Area){
+
6  firstColor = {255,0,0,255};
+
7  secondColor = {0,0,255,255};
+
8 }
+
9 
+ +
11 
+
12 }
+
13 
+
14 void IntelliColorPicker::getColorbar(int firstOrSecondColor = 1){
+
15  QString Titel;
+
16  QColor newColor;
+
17  if(firstOrSecondColor == 1){
+
18  Titel = "Choose first Color";
+
19  newColor = QColorDialog::getColor(this->firstColor,nullptr,Titel);
+
20  this->firstColor = newColor;
+
21  qDebug() << "Firstcolor" << this->firstColor;
+
22  }
+
23  else{
+
24  Titel = "Choose second Color";
+
25  newColor = QColorDialog::getColor(this->secondColor,nullptr,Titel);
+
26  this->secondColor = newColor;
+
27  }
+
28 }
+
29 
+ +
31  return firstColor;
+
32 }
+
33 
+ +
35  return secondColor;
+
36 }
+
+
+ + + + + + + + + + + diff --git a/docs/html/annotated.html b/docs/html/annotated.html new file mode 100644 index 0000000..f8cc75c --- /dev/null +++ b/docs/html/annotated.html @@ -0,0 +1,120 @@ + + + + + + + +IntelliPhoto: Class List + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
+
+ + + + diff --git a/docs/html/annotated_dup.js b/docs/html/annotated_dup.js new file mode 100644 index 0000000..0de58da --- /dev/null +++ b/docs/html/annotated_dup.js @@ -0,0 +1,15 @@ +var annotated_dup = +[ + [ "IntelliColorPicker", "class_intelli_color_picker.html", "class_intelli_color_picker" ], + [ "IntelliHelper", "class_intelli_helper.html", null ], + [ "IntelliImage", "class_intelli_image.html", "class_intelli_image" ], + [ "IntelliPhotoGui", "class_intelli_photo_gui.html", "class_intelli_photo_gui" ], + [ "IntelliRasterImage", "class_intelli_raster_image.html", "class_intelli_raster_image" ], + [ "IntelliShapedImage", "class_intelli_shaped_image.html", "class_intelli_shaped_image" ], + [ "IntelliTool", "class_intelli_tool.html", "class_intelli_tool" ], + [ "IntelliToolLine", "class_intelli_tool_line.html", "class_intelli_tool_line" ], + [ "IntelliToolPen", "class_intelli_tool_pen.html", "class_intelli_tool_pen" ], + [ "IntelliToolPlainTool", "class_intelli_tool_plain_tool.html", "class_intelli_tool_plain_tool" ], + [ "LayerObject", "struct_layer_object.html", "struct_layer_object" ], + [ "PaintingArea", "class_painting_area.html", "class_painting_area" ] +]; \ No newline at end of file diff --git a/docs/html/bc_s.png b/docs/html/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..c8f3a921ce9f497ad2f097f6f7fe16e389db6fff GIT binary patch literal 659 zcmV;E0&M+>P)3#Nwb?M7QwT45>nF?At>5Iy?7F&p!LVC;>FO|dXQKfD~YYO zNeumQ)srWoD781ig9_E%nBAO&rhBRgR%aIzGNJ#%<2$@J^FGY%ym@;^YisLPB9Q=M z$23j*2>_Jv#j&vyq9Cv=$FZ$eYYPAbmy11C+}SVB1VE7(DCs zdbf35zu5s+R?6*o5M$dK|Ii44Qtkv4 tn$4zjcWQ@`k@SSeBkhu87671k`~wlpwNqXX_E7);002ovPDHLkV1n5yIm7?} literal 0 HcmV?d00001 diff --git a/docs/html/bdwn.png b/docs/html/bdwn.png new file mode 100644 index 0000000000000000000000000000000000000000..2f5233e037441b30ff2eef5fe837efde092e7165 GIT binary patch literal 140 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZU{4pvkP61PbGvyP6nI?bZ<0_h zVVMbpW})X6n5pb?(yzUK{w%|u&}{2H@r?Vv?0*wzeL&~z*O||o9~K*Ib~UKlQyVU5 mGyUDpC0k-Qa+rMJKFHasDQ$Jo*sug>JcFmJpUXO@geCw1S1)b= literal 0 HcmV?d00001 diff --git a/docs/html/class_intelli_color_picker-members.html b/docs/html/class_intelli_color_picker-members.html new file mode 100644 index 0000000..45f31dc --- /dev/null +++ b/docs/html/class_intelli_color_picker-members.html @@ -0,0 +1,114 @@ + + + + + + + +IntelliPhoto: Member List + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliColorPicker Member List
+
+ +
+ + + + diff --git a/docs/html/class_intelli_color_picker.html b/docs/html/class_intelli_color_picker.html new file mode 100644 index 0000000..b5dcaf5 --- /dev/null +++ b/docs/html/class_intelli_color_picker.html @@ -0,0 +1,305 @@ + + + + + + + +IntelliPhoto: IntelliColorPicker Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
IntelliColorPicker Class Reference
+
+
+ +

#include <IntelliColorPicker.h>

+ + + + + + + + + + + + + + + + +

+Public Member Functions

 IntelliColorPicker ()
 
virtual ~IntelliColorPicker ()
 
void switchColors ()
 
QColor getFirstColor ()
 
QColor getSecondColor ()
 
void setFirstColor (QColor Color)
 
void setSecondColor (QColor Color)
 
+

Detailed Description

+
+

Definition at line 8 of file IntelliColorPicker.h.

+

Constructor & Destructor Documentation

+ +

◆ IntelliColorPicker()

+ +
+
+ + + + + + + +
IntelliColorPicker::IntelliColorPicker ()
+
+ +

Definition at line 3 of file IntelliColorPicker.cpp.

+ +
+
+ +

◆ ~IntelliColorPicker()

+ +
+
+ + + + + +
+ + + + + + + +
IntelliColorPicker::~IntelliColorPicker ()
+
+virtual
+
+ +

Definition at line 8 of file IntelliColorPicker.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ getFirstColor()

+ +
+
+ + + + + + + +
QColor IntelliColorPicker::getFirstColor ()
+
+ +

Definition at line 16 of file IntelliColorPicker.cpp.

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ getSecondColor()

+ +
+
+ + + + + + + +
QColor IntelliColorPicker::getSecondColor ()
+
+ +

Definition at line 20 of file IntelliColorPicker.cpp.

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ setFirstColor()

+ +
+
+ + + + + + + + +
void IntelliColorPicker::setFirstColor (QColor Color)
+
+ +

Definition at line 24 of file IntelliColorPicker.cpp.

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ setSecondColor()

+ +
+
+ + + + + + + + +
void IntelliColorPicker::setSecondColor (QColor Color)
+
+ +

Definition at line 28 of file IntelliColorPicker.cpp.

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ switchColors()

+ +
+
+ + + + + + + +
void IntelliColorPicker::switchColors ()
+
+ +

Definition at line 12 of file IntelliColorPicker.cpp.

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/html/class_intelli_color_picker.js b/docs/html/class_intelli_color_picker.js new file mode 100644 index 0000000..efec690 --- /dev/null +++ b/docs/html/class_intelli_color_picker.js @@ -0,0 +1,10 @@ +var class_intelli_color_picker = +[ + [ "IntelliColorPicker", "class_intelli_color_picker.html#a0d1247bdd87add1396ea5d9acaad79ae", null ], + [ "~IntelliColorPicker", "class_intelli_color_picker.html#a40b975268a1f05249e8a49dde9a862ff", null ], + [ "getFirstColor", "class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7", null ], + [ "getSecondColor", "class_intelli_color_picker.html#a55568fbf5dc783f06284b7031ffe9415", null ], + [ "setFirstColor", "class_intelli_color_picker.html#a7e2ddbbbfbed383f06b24e5bf6b27ae8", null ], + [ "setSecondColor", "class_intelli_color_picker.html#a86bf4a940e4a0e465e30cbdf28748931", null ], + [ "switchColors", "class_intelli_color_picker.html#a437a6f20bf2fc0a4cbaf4c030c2a26d9", null ] +]; \ No newline at end of file diff --git a/docs/html/class_intelli_color_picker_a437a6f20bf2fc0a4cbaf4c030c2a26d9_icgraph.dot b/docs/html/class_intelli_color_picker_a437a6f20bf2fc0a4cbaf4c030c2a26d9_icgraph.dot new file mode 100644 index 0000000..d7bd4cd --- /dev/null +++ b/docs/html/class_intelli_color_picker_a437a6f20bf2fc0a4cbaf4c030c2a26d9_icgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliColorPicker::switchColors" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="IntelliColorPicker\l::switchColors",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="PaintingArea::colorPicker\lSwitchColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a66115307ff4a99cd7ca16423c5c8ecfb",tooltip=" "]; +} diff --git a/docs/html/class_intelli_color_picker_a55568fbf5dc783f06284b7031ffe9415_icgraph.dot b/docs/html/class_intelli_color_picker_a55568fbf5dc783f06284b7031ffe9415_icgraph.dot new file mode 100644 index 0000000..432e4bd --- /dev/null +++ b/docs/html/class_intelli_color_picker_a55568fbf5dc783f06284b7031ffe9415_icgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliColorPicker::getSecondColor" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="IntelliColorPicker\l::getSecondColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="PaintingArea::colorPicker\lSetSecondColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#ae261acaaa346610dfed489dbac17e789",tooltip=" "]; +} diff --git a/docs/html/class_intelli_color_picker_a7e2ddbbbfbed383f06b24e5bf6b27ae8_icgraph.dot b/docs/html/class_intelli_color_picker_a7e2ddbbbfbed383f06b24e5bf6b27ae8_icgraph.dot new file mode 100644 index 0000000..af597e5 --- /dev/null +++ b/docs/html/class_intelli_color_picker_a7e2ddbbbfbed383f06b24e5bf6b27ae8_icgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliColorPicker::setFirstColor" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="IntelliColorPicker\l::setFirstColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="PaintingArea::colorPicker\lSetFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a4735d4cf1dc58a9096d904e74c39c4df",tooltip=" "]; +} diff --git a/docs/html/class_intelli_color_picker_a86bf4a940e4a0e465e30cbdf28748931_icgraph.dot b/docs/html/class_intelli_color_picker_a86bf4a940e4a0e465e30cbdf28748931_icgraph.dot new file mode 100644 index 0000000..11c4ff1 --- /dev/null +++ b/docs/html/class_intelli_color_picker_a86bf4a940e4a0e465e30cbdf28748931_icgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliColorPicker::setSecondColor" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="IntelliColorPicker\l::setSecondColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="PaintingArea::colorPicker\lSetSecondColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#ae261acaaa346610dfed489dbac17e789",tooltip=" "]; +} diff --git a/docs/html/class_intelli_color_picker_aae2eb27b928fe9388b9398b0556303b7_icgraph.dot b/docs/html/class_intelli_color_picker_aae2eb27b928fe9388b9398b0556303b7_icgraph.dot new file mode 100644 index 0000000..e617ccf --- /dev/null +++ b/docs/html/class_intelli_color_picker_aae2eb27b928fe9388b9398b0556303b7_icgraph.dot @@ -0,0 +1,20 @@ +digraph "IntelliColorPicker::getFirstColor" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="PaintingArea::colorPicker\lSetFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a4735d4cf1dc58a9096d904e74c39c4df",tooltip=" "]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9",tooltip=" "]; + Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205",tooltip=" "]; + Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="IntelliToolLine::onMouse\lLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846",tooltip=" "]; + Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="IntelliToolPen::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2",tooltip=" "]; + Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip=" "]; +} diff --git a/docs/html/class_intelli_helper-members.html b/docs/html/class_intelli_helper-members.html new file mode 100644 index 0000000..363478b --- /dev/null +++ b/docs/html/class_intelli_helper-members.html @@ -0,0 +1,109 @@ + + + + + + + +IntelliPhoto: Member List + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliHelper Member List
+
+
+ +

This is the complete list of members for IntelliHelper, including all inherited members.

+ + + +
isInTriangle(QPoint &A, QPoint &B, QPoint &C, QPoint &P)IntelliHelperinlinestatic
sign(QPoint &p1, QPoint &p2, QPoint &p3)IntelliHelperinlinestatic
+
+ + + + diff --git a/docs/html/class_intelli_helper.html b/docs/html/class_intelli_helper.html new file mode 100644 index 0000000..1160554 --- /dev/null +++ b/docs/html/class_intelli_helper.html @@ -0,0 +1,234 @@ + + + + + + + +IntelliPhoto: IntelliHelper Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
IntelliHelper Class Reference
+
+
+ +

#include <IntelliHelper.h>

+ + + + + + +

+Static Public Member Functions

static float sign (QPoint &p1, QPoint &p2, QPoint &p3)
 
static bool isInTriangle (QPoint &A, QPoint &B, QPoint &C, QPoint &P)
 
+

Detailed Description

+
+

Definition at line 7 of file IntelliHelper.h.

+

Member Function Documentation

+ +

◆ isInTriangle()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
static bool IntelliHelper::isInTriangle (QPoint & A,
QPoint & B,
QPoint & C,
QPoint & P 
)
+
+inlinestatic
+
+ +

Definition at line 15 of file IntelliHelper.h.

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ sign()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static float IntelliHelper::sign (QPoint & p1,
QPoint & p2,
QPoint & p3 
)
+
+inlinestatic
+
+ +

Definition at line 11 of file IntelliHelper.h.

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/docs/html/class_intelli_helper_a04bdb4f53b89dded693ba6e896f4c63f_cgraph.dot b/docs/html/class_intelli_helper_a04bdb4f53b89dded693ba6e896f4c63f_cgraph.dot new file mode 100644 index 0000000..7be3942 --- /dev/null +++ b/docs/html/class_intelli_helper_a04bdb4f53b89dded693ba6e896f4c63f_cgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliHelper::isInTriangle" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliHelper::isInTriangle",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliHelper::sign",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_helper.html#a67fc007dda64187f6cef7fba3fcd9e40",tooltip=" "]; +} diff --git a/docs/html/class_intelli_helper_a04bdb4f53b89dded693ba6e896f4c63f_icgraph.dot b/docs/html/class_intelli_helper_a04bdb4f53b89dded693ba6e896f4c63f_icgraph.dot new file mode 100644 index 0000000..54d1362 --- /dev/null +++ b/docs/html/class_intelli_helper_a04bdb4f53b89dded693ba6e896f4c63f_icgraph.dot @@ -0,0 +1,14 @@ +digraph "IntelliHelper::isInTriangle" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="IntelliHelper::isInTriangle",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliShapedImage\l::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#a0221d93c3c8990f7dab332454cc21f50",tooltip=" "]; + Node2 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliShapedImage\l::setPolygon",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#a4b69d75de7a3b85032482982f249458e",tooltip=" "]; + Node3 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliShapedImage\l::getDeepCopy",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#aed0b31e0fa771104399d1f5ff39a0337",tooltip=" "]; +} diff --git a/docs/html/class_intelli_helper_a67fc007dda64187f6cef7fba3fcd9e40_icgraph.dot b/docs/html/class_intelli_helper_a67fc007dda64187f6cef7fba3fcd9e40_icgraph.dot new file mode 100644 index 0000000..617951d --- /dev/null +++ b/docs/html/class_intelli_helper_a67fc007dda64187f6cef7fba3fcd9e40_icgraph.dot @@ -0,0 +1,16 @@ +digraph "IntelliHelper::sign" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="IntelliHelper::sign",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliHelper::isInTriangle",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_helper.html#a04bdb4f53b89dded693ba6e896f4c63f",tooltip=" "]; + Node2 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliShapedImage\l::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#a0221d93c3c8990f7dab332454cc21f50",tooltip=" "]; + Node3 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliShapedImage\l::setPolygon",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#a4b69d75de7a3b85032482982f249458e",tooltip=" "]; + Node4 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="IntelliShapedImage\l::getDeepCopy",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#aed0b31e0fa771104399d1f5ff39a0337",tooltip=" "]; +} diff --git a/docs/html/class_intelli_image-members.html b/docs/html/class_intelli_image-members.html new file mode 100644 index 0000000..727a7c4 --- /dev/null +++ b/docs/html/class_intelli_image-members.html @@ -0,0 +1,121 @@ + + + + + + + +IntelliPhoto: Member List + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliImage Member List
+
+
+ +

This is the complete list of members for IntelliImage, including all inherited members.

+ + + + + + + + + + + + + + + +
calculateVisiblity()=0IntelliImagepure virtual
drawLine(const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth)IntelliImagevirtual
drawPixel(const QPoint &p1, const QColor &color)IntelliImagevirtual
drawPlain(const QColor &color)IntelliImagevirtual
getDeepCopy()=0IntelliImagepure virtual
getDisplayable(const QSize &displaySize, int alpha)=0IntelliImagepure virtual
getDisplayable(int alpha=255)=0IntelliImagepure virtual
getPolygonData()IntelliImageinlinevirtual
imageDataIntelliImageprotected
IntelliImage(int weight, int height)IntelliImage
loadImage(const QString &fileName)IntelliImagevirtual
resizeImage(QImage *image, const QSize &newSize)IntelliImageprotected
setPolygon(const std::vector< QPoint > &polygonData)=0IntelliImagepure virtual
~IntelliImage()=0IntelliImagepure virtual
+
+ + + + diff --git a/docs/html/class_intelli_image.html b/docs/html/class_intelli_image.html new file mode 100644 index 0000000..80ca125 --- /dev/null +++ b/docs/html/class_intelli_image.html @@ -0,0 +1,630 @@ + + + + + + + +IntelliPhoto: IntelliImage Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ + +
+ +

#include <IntelliImage.h>

+
+Inheritance diagram for IntelliImage:
+
+
Inheritance graph
+
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 IntelliImage (int weight, int height)
 
virtual ~IntelliImage ()=0
 
virtual void drawPixel (const QPoint &p1, const QColor &color)
 
virtual void drawLine (const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth)
 
virtual void drawPlain (const QColor &color)
 
virtual QImage getDisplayable (const QSize &displaySize, int alpha)=0
 
virtual QImage getDisplayable (int alpha=255)=0
 
virtual IntelliImagegetDeepCopy ()=0
 
virtual void calculateVisiblity ()=0
 
virtual void setPolygon (const std::vector< QPoint > &polygonData)=0
 
virtual std::vector< QPoint > getPolygonData ()
 
virtual bool loadImage (const QString &fileName)
 
+ + + +

+Protected Member Functions

void resizeImage (QImage *image, const QSize &newSize)
 
+ + + +

+Protected Attributes

QImage imageData
 
+

Detailed Description

+
+

Definition at line 18 of file IntelliImage.h.

+

Constructor & Destructor Documentation

+ +

◆ IntelliImage()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IntelliImage::IntelliImage (int weight,
int height 
)
+
+ +

Definition at line 5 of file IntelliImage.cpp.

+ +
+
+ +

◆ ~IntelliImage()

+ +
+
+ + + + + +
+ + + + + + + +
IntelliImage::~IntelliImage ()
+
+pure virtual
+
+ +

Definition at line 10 of file IntelliImage.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ calculateVisiblity()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void IntelliImage::calculateVisiblity ()
+
+pure virtual
+
+ +

Implemented in IntelliShapedImage, and IntelliRasterImage.

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ drawLine()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void IntelliImage::drawLine (const QPoint & p1,
const QPoint & p2,
const QColor & color,
const int & penWidth 
)
+
+virtual
+
+ +

Definition at line 55 of file IntelliImage.cpp.

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ drawPixel()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void IntelliImage::drawPixel (const QPoint & p1,
const QColor & color 
)
+
+virtual
+
+ +

Definition at line 44 of file IntelliImage.cpp.

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ drawPlain()

+ +
+
+ + + + + +
+ + + + + + + + +
void IntelliImage::drawPlain (const QColor & color)
+
+virtual
+
+ +

Definition at line 67 of file IntelliImage.cpp.

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ getDeepCopy()

+ +
+
+ + + + + +
+ + + + + + + +
virtual IntelliImage* IntelliImage::getDeepCopy ()
+
+pure virtual
+
+ +

Implemented in IntelliShapedImage, and IntelliRasterImage.

+ +
+
+ +

◆ getDisplayable() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual QImage IntelliImage::getDisplayable (const QSize & displaySize,
int alpha 
)
+
+pure virtual
+
+ +

Implemented in IntelliShapedImage, and IntelliRasterImage.

+ +
+
+ +

◆ getDisplayable() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
virtual QImage IntelliImage::getDisplayable (int alpha = 255)
+
+pure virtual
+
+ +

Implemented in IntelliShapedImage, and IntelliRasterImage.

+ +
+
+ +

◆ getPolygonData()

+ +
+
+ + + + + +
+ + + + + + + +
virtual std::vector<QPoint> IntelliImage::getPolygonData ()
+
+inlinevirtual
+
+ +

Reimplemented in IntelliShapedImage.

+ +

Definition at line 48 of file IntelliImage.h.

+ +
+
+ +

◆ loadImage()

+ +
+
+ + + + + +
+ + + + + + + + +
bool IntelliImage::loadImage (const QString & fileName)
+
+virtual
+
+ +

Definition at line 14 of file IntelliImage.cpp.

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ resizeImage()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void IntelliImage::resizeImage (QImage * image,
const QSize & newSize 
)
+
+protected
+
+ +

Definition at line 29 of file IntelliImage.cpp.

+ +
+
+ +

◆ setPolygon()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void IntelliImage::setPolygon (const std::vector< QPoint > & polygonData)
+
+pure virtual
+
+ +

Implemented in IntelliShapedImage, and IntelliRasterImage.

+ +
+
+

Member Data Documentation

+ +

◆ imageData

+ +
+
+ + + + + +
+ + + + +
QImage IntelliImage::imageData
+
+protected
+
+ +

Definition at line 23 of file IntelliImage.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/html/class_intelli_image.js b/docs/html/class_intelli_image.js new file mode 100644 index 0000000..eb99be1 --- /dev/null +++ b/docs/html/class_intelli_image.js @@ -0,0 +1,17 @@ +var class_intelli_image = +[ + [ "IntelliImage", "class_intelli_image.html#a47084f1cb668ea0242ab95162cf9e902", null ], + [ "~IntelliImage", "class_intelli_image.html#ac398bfa9ddd3185508a1e36ee15d80cc", null ], + [ "calculateVisiblity", "class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2", null ], + [ "drawLine", "class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31", null ], + [ "drawPixel", "class_intelli_image.html#af3c859f5c409e37051edfd9e9fbca056", null ], + [ "drawPlain", "class_intelli_image.html#a6be622810dc2bc756054bb5769becb06", null ], + [ "getDeepCopy", "class_intelli_image.html#af6381067bdf565669f856bb589008ae9", null ], + [ "getDisplayable", "class_intelli_image.html#a21c7e65b59a26db45aac3880133ef21d", null ], + [ "getDisplayable", "class_intelli_image.html#a9d4daf3c48c64695105689f61c21bae0", null ], + [ "getPolygonData", "class_intelli_image.html#aaf9f3e8db8666850024bee9aad9966ba", null ], + [ "loadImage", "class_intelli_image.html#aec0e9c8184d89dee33fd9adefbd2f8aa", null ], + [ "resizeImage", "class_intelli_image.html#a177403ab9585d4ba31984a644c54d310", null ], + [ "setPolygon", "class_intelli_image.html#aa4b3f4631bd972456917275afb9fd309", null ], + [ "imageData", "class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2", null ] +]; \ No newline at end of file diff --git a/docs/html/class_intelli_image__inherit__graph.dot b/docs/html/class_intelli_image__inherit__graph.dot new file mode 100644 index 0000000..9768313 --- /dev/null +++ b/docs/html/class_intelli_image__inherit__graph.dot @@ -0,0 +1,11 @@ +digraph "IntelliImage" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliRasterImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_raster_image.html",tooltip=" "]; + Node2 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliShapedImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html",tooltip=" "]; +} diff --git a/docs/html/class_intelli_image_a6be622810dc2bc756054bb5769becb06_icgraph.dot b/docs/html/class_intelli_image_a6be622810dc2bc756054bb5769becb06_icgraph.dot new file mode 100644 index 0000000..c5fa1e8 --- /dev/null +++ b/docs/html/class_intelli_image_a6be622810dc2bc756054bb5769becb06_icgraph.dot @@ -0,0 +1,14 @@ +digraph "IntelliImage::drawPlain" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="IntelliImage::drawPlain",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="PaintingArea::floodFill",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#aeb5eb394b979ea90f2be9849fdda1774",tooltip=" "]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9",tooltip=" "]; + Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip=" "]; +} diff --git a/docs/html/class_intelli_image_aebbced93f4744fad81b7f141b21f4ab2_icgraph.dot b/docs/html/class_intelli_image_aebbced93f4744fad81b7f141b21f4ab2_icgraph.dot new file mode 100644 index 0000000..231b05d --- /dev/null +++ b/docs/html/class_intelli_image_aebbced93f4744fad81b7f141b21f4ab2_icgraph.dot @@ -0,0 +1,43 @@ +digraph "IntelliImage::calculateVisiblity" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9",tooltip=" "]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205",tooltip=" "]; + Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliToolLine::onMouse\lLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846",tooltip=" "]; + Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="IntelliTool::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c",tooltip=" "]; + Node5 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="PaintingArea::mousePress\lEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15",tooltip=" "]; + Node5 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip=" "]; + Node7 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="PaintingArea::mouseRelease\lEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a35b5df914acb608cc29717659793359c",tooltip=" "]; + Node7 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="IntelliToolPlainTool\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ac23f5d0f07e42fd7c2ea3fc1347da400",tooltip=" "]; + Node7 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="IntelliToolPen::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#abda7a22b9766fa4ad254324a53cab94d",tooltip=" "]; + Node7 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="IntelliToolLine::onMouse\lLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#ac93f76ff20a1c111a403b298bab02482",tooltip=" "]; + Node1 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639",tooltip=" "]; + Node12 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="PaintingArea::mouseMoveEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#aa22e274b6094a9619f196cd7b49526b5",tooltip=" "]; + Node12 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="IntelliToolPlainTool\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ad7546a6335bb3bb4cbf0e1883788d41c",tooltip=" "]; + Node12 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="IntelliToolPen::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2",tooltip=" "]; + Node12 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip=" "]; + Node1 -> Node17 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="PaintingArea::open",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a1f597740b4d7b4bc2e24c51f8cb0b6eb",tooltip=" "]; +} diff --git a/docs/html/class_intelli_image_aec0e9c8184d89dee33fd9adefbd2f8aa_icgraph.dot b/docs/html/class_intelli_image_aec0e9c8184d89dee33fd9adefbd2f8aa_icgraph.dot new file mode 100644 index 0000000..b806096 --- /dev/null +++ b/docs/html/class_intelli_image_aec0e9c8184d89dee33fd9adefbd2f8aa_icgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliImage::loadImage" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="IntelliImage::loadImage",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="PaintingArea::open",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a1f597740b4d7b4bc2e24c51f8cb0b6eb",tooltip=" "]; +} diff --git a/docs/html/class_intelli_image_af3c859f5c409e37051edfd9e9fbca056_icgraph.dot b/docs/html/class_intelli_image_af3c859f5c409e37051edfd9e9fbca056_icgraph.dot new file mode 100644 index 0000000..75112f2 --- /dev/null +++ b/docs/html/class_intelli_image_af3c859f5c409e37051edfd9e9fbca056_icgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliImage::drawPixel" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="IntelliImage::drawPixel",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205",tooltip=" "]; +} diff --git a/docs/html/class_intelli_image_af8eddbd9aa54c8d37590d1d4bf8dce31_icgraph.dot b/docs/html/class_intelli_image_af8eddbd9aa54c8d37590d1d4bf8dce31_icgraph.dot new file mode 100644 index 0000000..0e4ef14 --- /dev/null +++ b/docs/html/class_intelli_image_af8eddbd9aa54c8d37590d1d4bf8dce31_icgraph.dot @@ -0,0 +1,14 @@ +digraph "IntelliImage::drawLine" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="IntelliImage::drawLine",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliToolLine::onMouse\lLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846",tooltip=" "]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliToolPen::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2",tooltip=" "]; + Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip=" "]; +} diff --git a/docs/html/class_intelli_photo_gui-members.html b/docs/html/class_intelli_photo_gui-members.html new file mode 100644 index 0000000..7034aba --- /dev/null +++ b/docs/html/class_intelli_photo_gui-members.html @@ -0,0 +1,109 @@ + + + + + + + +IntelliPhoto: Member List + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliPhotoGui Member List
+
+
+ +

This is the complete list of members for IntelliPhotoGui, including all inherited members.

+ + + +
closeEvent(QCloseEvent *event) overrideIntelliPhotoGuiprotected
IntelliPhotoGui()IntelliPhotoGui
+
+ + + + diff --git a/docs/html/class_intelli_photo_gui.html b/docs/html/class_intelli_photo_gui.html new file mode 100644 index 0000000..d45808a --- /dev/null +++ b/docs/html/class_intelli_photo_gui.html @@ -0,0 +1,188 @@ + + + + + + + +IntelliPhoto: IntelliPhotoGui Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
IntelliPhotoGui Class Reference
+
+
+ +

#include <IntelliPhotoGui.h>

+
+Inheritance diagram for IntelliPhotoGui:
+
+
Inheritance graph
+
[legend]
+
+Collaboration diagram for IntelliPhotoGui:
+
+
Collaboration graph
+
[legend]
+ + + + +

+Public Member Functions

 IntelliPhotoGui ()
 
+ + + +

+Protected Member Functions

void closeEvent (QCloseEvent *event) override
 
+

Detailed Description

+
+

Definition at line 19 of file IntelliPhotoGui.h.

+

Constructor & Destructor Documentation

+ +

◆ IntelliPhotoGui()

+ +
+
+ + + + + + + +
IntelliPhotoGui::IntelliPhotoGui ()
+
+ +

Definition at line 10 of file IntelliPhotoGui.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ closeEvent()

+ +
+
+ + + + + +
+ + + + + + + + +
void IntelliPhotoGui::closeEvent (QCloseEvent * event)
+
+overrideprotected
+
+ +

Definition at line 25 of file IntelliPhotoGui.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/html/class_intelli_photo_gui.js b/docs/html/class_intelli_photo_gui.js new file mode 100644 index 0000000..2c41940 --- /dev/null +++ b/docs/html/class_intelli_photo_gui.js @@ -0,0 +1,5 @@ +var class_intelli_photo_gui = +[ + [ "IntelliPhotoGui", "class_intelli_photo_gui.html#ad2aaec3c1517a9aaa461b54e341b97e0", null ], + [ "closeEvent", "class_intelli_photo_gui.html#a2cf48070236ae8b35245e7f30482ef13", null ] +]; \ No newline at end of file diff --git a/docs/html/class_intelli_photo_gui__coll__graph.dot b/docs/html/class_intelli_photo_gui__coll__graph.dot new file mode 100644 index 0000000..524d737 --- /dev/null +++ b/docs/html/class_intelli_photo_gui__coll__graph.dot @@ -0,0 +1,9 @@ +digraph "IntelliPhotoGui" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="IntelliPhotoGui",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="QMainWindow",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; +} diff --git a/docs/html/class_intelli_photo_gui__inherit__graph.dot b/docs/html/class_intelli_photo_gui__inherit__graph.dot new file mode 100644 index 0000000..524d737 --- /dev/null +++ b/docs/html/class_intelli_photo_gui__inherit__graph.dot @@ -0,0 +1,9 @@ +digraph "IntelliPhotoGui" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="IntelliPhotoGui",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="QMainWindow",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; +} diff --git a/docs/html/class_intelli_raster_image-members.html b/docs/html/class_intelli_raster_image-members.html new file mode 100644 index 0000000..1587196 --- /dev/null +++ b/docs/html/class_intelli_raster_image-members.html @@ -0,0 +1,123 @@ + + + + + + + +IntelliPhoto: Member List + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliRasterImage Member List
+
+
+ +

This is the complete list of members for IntelliRasterImage, including all inherited members.

+ + + + + + + + + + + + + + + + + +
calculateVisiblity() overrideIntelliRasterImageprotectedvirtual
drawLine(const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth)IntelliImagevirtual
drawPixel(const QPoint &p1, const QColor &color)IntelliImagevirtual
drawPlain(const QColor &color)IntelliImagevirtual
getDeepCopy() overrideIntelliRasterImagevirtual
getDisplayable(const QSize &displaySize, int alpha) overrideIntelliRasterImagevirtual
getDisplayable(int alpha=255) overrideIntelliRasterImagevirtual
getPolygonData()IntelliImageinlinevirtual
imageDataIntelliImageprotected
IntelliImage(int weight, int height)IntelliImage
IntelliRasterImage(int weight, int height)IntelliRasterImage
loadImage(const QString &fileName)IntelliImagevirtual
resizeImage(QImage *image, const QSize &newSize)IntelliImageprotected
setPolygon(const std::vector< QPoint > &polygonData) overrideIntelliRasterImagevirtual
~IntelliImage()=0IntelliImagepure virtual
~IntelliRasterImage() overrideIntelliRasterImagevirtual
+
+ + + + diff --git a/docs/html/class_intelli_raster_image.html b/docs/html/class_intelli_raster_image.html new file mode 100644 index 0000000..0b99501 --- /dev/null +++ b/docs/html/class_intelli_raster_image.html @@ -0,0 +1,420 @@ + + + + + + + +IntelliPhoto: IntelliRasterImage Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
IntelliRasterImage Class Reference
+
+
+ +

#include <IntelliRasterImage.h>

+
+Inheritance diagram for IntelliRasterImage:
+
+
Inheritance graph
+
[legend]
+
+Collaboration diagram for IntelliRasterImage:
+
+
Collaboration graph
+
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 IntelliRasterImage (int weight, int height)
 
virtual ~IntelliRasterImage () override
 
virtual QImage getDisplayable (const QSize &displaySize, int alpha) override
 
virtual QImage getDisplayable (int alpha=255) override
 
virtual IntelliImagegetDeepCopy () override
 
virtual void setPolygon (const std::vector< QPoint > &polygonData) override
 
- Public Member Functions inherited from IntelliImage
 IntelliImage (int weight, int height)
 
virtual ~IntelliImage ()=0
 
virtual void drawPixel (const QPoint &p1, const QColor &color)
 
virtual void drawLine (const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth)
 
virtual void drawPlain (const QColor &color)
 
virtual std::vector< QPoint > getPolygonData ()
 
virtual bool loadImage (const QString &fileName)
 
+ + + + + + +

+Protected Member Functions

virtual void calculateVisiblity () override
 
- Protected Member Functions inherited from IntelliImage
void resizeImage (QImage *image, const QSize &newSize)
 
+ + + + +

+Additional Inherited Members

- Protected Attributes inherited from IntelliImage
QImage imageData
 
+

Detailed Description

+
+

Definition at line 6 of file IntelliRasterImage.h.

+

Constructor & Destructor Documentation

+ +

◆ IntelliRasterImage()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IntelliRasterImage::IntelliRasterImage (int weight,
int height 
)
+
+ +

Definition at line 6 of file IntelliRasterImage.cpp.

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ ~IntelliRasterImage()

+ +
+
+ + + + + +
+ + + + + + + +
IntelliRasterImage::~IntelliRasterImage ()
+
+overridevirtual
+
+ +

Definition at line 11 of file IntelliRasterImage.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ calculateVisiblity()

+ +
+
+ + + + + +
+ + + + + + + +
void IntelliRasterImage::calculateVisiblity ()
+
+overrideprotectedvirtual
+
+ +

Implements IntelliImage.

+ +

Reimplemented in IntelliShapedImage.

+ +

Definition at line 21 of file IntelliRasterImage.cpp.

+ +
+
+ +

◆ getDeepCopy()

+ +
+
+ + + + + +
+ + + + + + + +
IntelliImage * IntelliRasterImage::getDeepCopy ()
+
+overridevirtual
+
+ +

Implements IntelliImage.

+ +

Reimplemented in IntelliShapedImage.

+ +

Definition at line 15 of file IntelliRasterImage.cpp.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ getDisplayable() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
QImage IntelliRasterImage::getDisplayable (const QSize & displaySize,
int alpha 
)
+
+overridevirtual
+
+ +

Implements IntelliImage.

+ +

Reimplemented in IntelliShapedImage.

+ +

Definition at line 29 of file IntelliRasterImage.cpp.

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ getDisplayable() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
QImage IntelliRasterImage::getDisplayable (int alpha = 255)
+
+overridevirtual
+
+ +

Implements IntelliImage.

+ +

Reimplemented in IntelliShapedImage.

+ +

Definition at line 25 of file IntelliRasterImage.cpp.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ setPolygon()

+ +
+
+ + + + + +
+ + + + + + + + +
void IntelliRasterImage::setPolygon (const std::vector< QPoint > & polygonData)
+
+overridevirtual
+
+ +

Implements IntelliImage.

+ +

Reimplemented in IntelliShapedImage.

+ +

Definition at line 41 of file IntelliRasterImage.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/html/class_intelli_raster_image.js b/docs/html/class_intelli_raster_image.js new file mode 100644 index 0000000..10b0061 --- /dev/null +++ b/docs/html/class_intelli_raster_image.js @@ -0,0 +1,10 @@ +var class_intelli_raster_image = +[ + [ "IntelliRasterImage", "class_intelli_raster_image.html#aad9b561fe499a4da3c6ef98971aa3468", null ], + [ "~IntelliRasterImage", "class_intelli_raster_image.html#a844a2b58c43f7e01f2ca116286371bc8", null ], + [ "calculateVisiblity", "class_intelli_raster_image.html#a87cf2d360c129d64a5db0db85818eb60", null ], + [ "getDeepCopy", "class_intelli_raster_image.html#a8f901301b106504de3c27308ade897dc", null ], + [ "getDisplayable", "class_intelli_raster_image.html#ae43393397b0141a8033fe34d3a1b1884", null ], + [ "getDisplayable", "class_intelli_raster_image.html#a612d79124f0e2c158a4f0abbe4b5f97f", null ], + [ "setPolygon", "class_intelli_raster_image.html#a6462fa5f94c5e64e9e1f0c4658e0507b", null ] +]; \ No newline at end of file diff --git a/docs/html/class_intelli_raster_image__coll__graph.dot b/docs/html/class_intelli_raster_image__coll__graph.dot new file mode 100644 index 0000000..ba86a0b --- /dev/null +++ b/docs/html/class_intelli_raster_image__coll__graph.dot @@ -0,0 +1,9 @@ +digraph "IntelliRasterImage" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="IntelliRasterImage",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip=" "]; +} diff --git a/docs/html/class_intelli_raster_image__inherit__graph.dot b/docs/html/class_intelli_raster_image__inherit__graph.dot new file mode 100644 index 0000000..e19d045 --- /dev/null +++ b/docs/html/class_intelli_raster_image__inherit__graph.dot @@ -0,0 +1,11 @@ +digraph "IntelliRasterImage" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="IntelliRasterImage",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip=" "]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliShapedImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html",tooltip=" "]; +} diff --git a/docs/html/class_intelli_raster_image_a612d79124f0e2c158a4f0abbe4b5f97f_cgraph.dot b/docs/html/class_intelli_raster_image_a612d79124f0e2c158a4f0abbe4b5f97f_cgraph.dot new file mode 100644 index 0000000..c3853e6 --- /dev/null +++ b/docs/html/class_intelli_raster_image_a612d79124f0e2c158a4f0abbe4b5f97f_cgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliRasterImage::getDisplayable" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliRasterImage\l::getDisplayable",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliRasterImage\l::getDisplayable",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_raster_image.html#ae43393397b0141a8033fe34d3a1b1884",tooltip=" "]; +} diff --git a/docs/html/class_intelli_raster_image_a8f901301b106504de3c27308ade897dc_cgraph.dot b/docs/html/class_intelli_raster_image_a8f901301b106504de3c27308ade897dc_cgraph.dot new file mode 100644 index 0000000..fec0b04 --- /dev/null +++ b/docs/html/class_intelli_raster_image_a8f901301b106504de3c27308ade897dc_cgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliRasterImage::getDeepCopy" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliRasterImage\l::getDeepCopy",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliRasterImage\l::IntelliRasterImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_raster_image.html#aad9b561fe499a4da3c6ef98971aa3468",tooltip=" "]; +} diff --git a/docs/html/class_intelli_raster_image_aad9b561fe499a4da3c6ef98971aa3468_icgraph.dot b/docs/html/class_intelli_raster_image_aad9b561fe499a4da3c6ef98971aa3468_icgraph.dot new file mode 100644 index 0000000..132fb89 --- /dev/null +++ b/docs/html/class_intelli_raster_image_aad9b561fe499a4da3c6ef98971aa3468_icgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliRasterImage::IntelliRasterImage" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="IntelliRasterImage\l::IntelliRasterImage",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliRasterImage\l::getDeepCopy",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_raster_image.html#a8f901301b106504de3c27308ade897dc",tooltip=" "]; +} diff --git a/docs/html/class_intelli_raster_image_ae43393397b0141a8033fe34d3a1b1884_icgraph.dot b/docs/html/class_intelli_raster_image_ae43393397b0141a8033fe34d3a1b1884_icgraph.dot new file mode 100644 index 0000000..552556b --- /dev/null +++ b/docs/html/class_intelli_raster_image_ae43393397b0141a8033fe34d3a1b1884_icgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliRasterImage::getDisplayable" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="IntelliRasterImage\l::getDisplayable",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliRasterImage\l::getDisplayable",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_raster_image.html#a612d79124f0e2c158a4f0abbe4b5f97f",tooltip=" "]; +} diff --git a/docs/html/class_intelli_shaped_image-members.html b/docs/html/class_intelli_shaped_image-members.html new file mode 100644 index 0000000..316feb3 --- /dev/null +++ b/docs/html/class_intelli_shaped_image-members.html @@ -0,0 +1,126 @@ + + + + + + + +IntelliPhoto: Member List + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliShapedImage Member List
+
+
+ +

This is the complete list of members for IntelliShapedImage, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + +
calculateVisiblity() overrideIntelliShapedImagevirtual
drawLine(const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth)IntelliImagevirtual
drawPixel(const QPoint &p1, const QColor &color)IntelliImagevirtual
drawPlain(const QColor &color)IntelliImagevirtual
getDeepCopy() overrideIntelliShapedImagevirtual
getDisplayable(const QSize &displaySize, int alpha=255) overrideIntelliShapedImagevirtual
getDisplayable(int alpha=255) overrideIntelliShapedImagevirtual
getPolygonData() overrideIntelliShapedImageinlinevirtual
imageDataIntelliImageprotected
IntelliImage(int weight, int height)IntelliImage
IntelliRasterImage(int weight, int height)IntelliRasterImage
IntelliShapedImage(int weight, int height)IntelliShapedImage
loadImage(const QString &fileName)IntelliImagevirtual
polygonDataIntelliShapedImageprotected
resizeImage(QImage *image, const QSize &newSize)IntelliImageprotected
setPolygon(const std::vector< QPoint > &polygonData) overrideIntelliShapedImagevirtual
~IntelliImage()=0IntelliImagepure virtual
~IntelliRasterImage() overrideIntelliRasterImagevirtual
~IntelliShapedImage() overrideIntelliShapedImagevirtual
+
+ + + + diff --git a/docs/html/class_intelli_shaped_image.html b/docs/html/class_intelli_shaped_image.html new file mode 100644 index 0000000..01d9726 --- /dev/null +++ b/docs/html/class_intelli_shaped_image.html @@ -0,0 +1,491 @@ + + + + + + + +IntelliPhoto: IntelliShapedImage Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
IntelliShapedImage Class Reference
+
+
+ +

#include <IntelliShapedImage.h>

+
+Inheritance diagram for IntelliShapedImage:
+
+
Inheritance graph
+
[legend]
+
+Collaboration diagram for IntelliShapedImage:
+
+
Collaboration graph
+
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 IntelliShapedImage (int weight, int height)
 
virtual ~IntelliShapedImage () override
 
virtual void calculateVisiblity () override
 
virtual QImage getDisplayable (const QSize &displaySize, int alpha=255) override
 
virtual QImage getDisplayable (int alpha=255) override
 
virtual IntelliImagegetDeepCopy () override
 
virtual std::vector< QPoint > getPolygonData () override
 
virtual void setPolygon (const std::vector< QPoint > &polygonData) override
 
- Public Member Functions inherited from IntelliRasterImage
 IntelliRasterImage (int weight, int height)
 
virtual ~IntelliRasterImage () override
 
- Public Member Functions inherited from IntelliImage
 IntelliImage (int weight, int height)
 
virtual ~IntelliImage ()=0
 
virtual void drawPixel (const QPoint &p1, const QColor &color)
 
virtual void drawLine (const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth)
 
virtual void drawPlain (const QColor &color)
 
virtual bool loadImage (const QString &fileName)
 
+ + + + + + +

+Protected Attributes

std::vector< QPoint > polygonData
 
- Protected Attributes inherited from IntelliImage
QImage imageData
 
+ + + + +

+Additional Inherited Members

- Protected Member Functions inherited from IntelliImage
void resizeImage (QImage *image, const QSize &newSize)
 
+

Detailed Description

+
+

Definition at line 6 of file IntelliShapedImage.h.

+

Constructor & Destructor Documentation

+ +

◆ IntelliShapedImage()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IntelliShapedImage::IntelliShapedImage (int weight,
int height 
)
+
+ +

Definition at line 7 of file IntelliShapedImage.cpp.

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ ~IntelliShapedImage()

+ +
+
+ + + + + +
+ + + + + + + +
IntelliShapedImage::~IntelliShapedImage ()
+
+overridevirtual
+
+ +

Definition at line 11 of file IntelliShapedImage.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ calculateVisiblity()

+ +
+
+ + + + + +
+ + + + + + + +
void IntelliShapedImage::calculateVisiblity ()
+
+overridevirtual
+
+ +

Reimplemented from IntelliRasterImage.

+ +

Definition at line 26 of file IntelliShapedImage.cpp.

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ getDeepCopy()

+ +
+
+ + + + + +
+ + + + + + + +
IntelliImage * IntelliShapedImage::getDeepCopy ()
+
+overridevirtual
+
+ +

Reimplemented from IntelliRasterImage.

+ +

Definition at line 19 of file IntelliShapedImage.cpp.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ getDisplayable() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
QImage IntelliShapedImage::getDisplayable (const QSize & displaySize,
int alpha = 255 
)
+
+overridevirtual
+
+ +

Reimplemented from IntelliRasterImage.

+ +

Definition at line 62 of file IntelliShapedImage.cpp.

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ getDisplayable() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
QImage IntelliShapedImage::getDisplayable (int alpha = 255)
+
+overridevirtual
+
+ +

Reimplemented from IntelliRasterImage.

+ +

Definition at line 15 of file IntelliShapedImage.cpp.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ getPolygonData()

+ +
+
+ + + + + +
+ + + + + + + +
virtual std::vector<QPoint> IntelliShapedImage::getPolygonData ()
+
+inlineoverridevirtual
+
+ +

Reimplemented from IntelliImage.

+ +

Definition at line 23 of file IntelliShapedImage.h.

+ +
+
+ +

◆ setPolygon()

+ +
+
+ + + + + +
+ + + + + + + + +
void IntelliShapedImage::setPolygon (const std::vector< QPoint > & polygonData)
+
+overridevirtual
+
+ +

Reimplemented from IntelliRasterImage.

+ +

Definition at line 74 of file IntelliShapedImage.cpp.

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Member Data Documentation

+ +

◆ polygonData

+ +
+
+ + + + + +
+ + + + +
std::vector<QPoint> IntelliShapedImage::polygonData
+
+protected
+
+ +

Definition at line 10 of file IntelliShapedImage.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/html/class_intelli_shaped_image.js b/docs/html/class_intelli_shaped_image.js new file mode 100644 index 0000000..3b03638 --- /dev/null +++ b/docs/html/class_intelli_shaped_image.js @@ -0,0 +1,12 @@ +var class_intelli_shaped_image = +[ + [ "IntelliShapedImage", "class_intelli_shaped_image.html#a0f834c3f255baeb50c98ef335a6d0ea9", null ], + [ "~IntelliShapedImage", "class_intelli_shaped_image.html#a43d63d8a814852d377ee2030658fbab9", null ], + [ "calculateVisiblity", "class_intelli_shaped_image.html#a0221d93c3c8990f7dab332454cc21f50", null ], + [ "getDeepCopy", "class_intelli_shaped_image.html#aed0b31e0fa771104399d1f5ff39a0337", null ], + [ "getDisplayable", "class_intelli_shaped_image.html#a68cf374247c16f07fd84d50e4cd05630", null ], + [ "getDisplayable", "class_intelli_shaped_image.html#ac6a99e1a96134073bceea252b37636cc", null ], + [ "getPolygonData", "class_intelli_shaped_image.html#ae4518c7f5a105cc4f33fabb60c794a93", null ], + [ "setPolygon", "class_intelli_shaped_image.html#a4b69d75de7a3b85032482982f249458e", null ], + [ "polygonData", "class_intelli_shaped_image.html#a727d19ce314c0874be6b0633a3a603c8", null ] +]; \ No newline at end of file diff --git a/docs/html/class_intelli_shaped_image__coll__graph.dot b/docs/html/class_intelli_shaped_image__coll__graph.dot new file mode 100644 index 0000000..e3f9034 --- /dev/null +++ b/docs/html/class_intelli_shaped_image__coll__graph.dot @@ -0,0 +1,11 @@ +digraph "IntelliShapedImage" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="IntelliShapedImage",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliRasterImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_raster_image.html",tooltip=" "]; + Node3 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip=" "]; +} diff --git a/docs/html/class_intelli_shaped_image__inherit__graph.dot b/docs/html/class_intelli_shaped_image__inherit__graph.dot new file mode 100644 index 0000000..e3f9034 --- /dev/null +++ b/docs/html/class_intelli_shaped_image__inherit__graph.dot @@ -0,0 +1,11 @@ +digraph "IntelliShapedImage" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="IntelliShapedImage",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliRasterImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_raster_image.html",tooltip=" "]; + Node3 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip=" "]; +} diff --git a/docs/html/class_intelli_shaped_image_a0221d93c3c8990f7dab332454cc21f50_cgraph.dot b/docs/html/class_intelli_shaped_image_a0221d93c3c8990f7dab332454cc21f50_cgraph.dot new file mode 100644 index 0000000..553d9f3 --- /dev/null +++ b/docs/html/class_intelli_shaped_image_a0221d93c3c8990f7dab332454cc21f50_cgraph.dot @@ -0,0 +1,12 @@ +digraph "IntelliShapedImage::calculateVisiblity" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliShapedImage\l::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliHelper::isInTriangle",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_helper.html#a04bdb4f53b89dded693ba6e896f4c63f",tooltip=" "]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliHelper::sign",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_helper.html#a67fc007dda64187f6cef7fba3fcd9e40",tooltip=" "]; +} diff --git a/docs/html/class_intelli_shaped_image_a0221d93c3c8990f7dab332454cc21f50_icgraph.dot b/docs/html/class_intelli_shaped_image_a0221d93c3c8990f7dab332454cc21f50_icgraph.dot new file mode 100644 index 0000000..e5e7eb6 --- /dev/null +++ b/docs/html/class_intelli_shaped_image_a0221d93c3c8990f7dab332454cc21f50_icgraph.dot @@ -0,0 +1,12 @@ +digraph "IntelliShapedImage::calculateVisiblity" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="IntelliShapedImage\l::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliShapedImage\l::setPolygon",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#a4b69d75de7a3b85032482982f249458e",tooltip=" "]; + Node2 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliShapedImage\l::getDeepCopy",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#aed0b31e0fa771104399d1f5ff39a0337",tooltip=" "]; +} diff --git a/docs/html/class_intelli_shaped_image_a0f834c3f255baeb50c98ef335a6d0ea9_icgraph.dot b/docs/html/class_intelli_shaped_image_a0f834c3f255baeb50c98ef335a6d0ea9_icgraph.dot new file mode 100644 index 0000000..54d9f25 --- /dev/null +++ b/docs/html/class_intelli_shaped_image_a0f834c3f255baeb50c98ef335a6d0ea9_icgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliShapedImage::IntelliShapedImage" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="IntelliShapedImage\l::IntelliShapedImage",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliShapedImage\l::getDeepCopy",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#aed0b31e0fa771104399d1f5ff39a0337",tooltip=" "]; +} diff --git a/docs/html/class_intelli_shaped_image_a4b69d75de7a3b85032482982f249458e_cgraph.dot b/docs/html/class_intelli_shaped_image_a4b69d75de7a3b85032482982f249458e_cgraph.dot new file mode 100644 index 0000000..8c4b4fd --- /dev/null +++ b/docs/html/class_intelli_shaped_image_a4b69d75de7a3b85032482982f249458e_cgraph.dot @@ -0,0 +1,14 @@ +digraph "IntelliShapedImage::setPolygon" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliShapedImage\l::setPolygon",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliShapedImage\l::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#a0221d93c3c8990f7dab332454cc21f50",tooltip=" "]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliHelper::isInTriangle",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_helper.html#a04bdb4f53b89dded693ba6e896f4c63f",tooltip=" "]; + Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliHelper::sign",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_helper.html#a67fc007dda64187f6cef7fba3fcd9e40",tooltip=" "]; +} diff --git a/docs/html/class_intelli_shaped_image_a4b69d75de7a3b85032482982f249458e_icgraph.dot b/docs/html/class_intelli_shaped_image_a4b69d75de7a3b85032482982f249458e_icgraph.dot new file mode 100644 index 0000000..29119d0 --- /dev/null +++ b/docs/html/class_intelli_shaped_image_a4b69d75de7a3b85032482982f249458e_icgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliShapedImage::setPolygon" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="IntelliShapedImage\l::setPolygon",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliShapedImage\l::getDeepCopy",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#aed0b31e0fa771104399d1f5ff39a0337",tooltip=" "]; +} diff --git a/docs/html/class_intelli_shaped_image_a68cf374247c16f07fd84d50e4cd05630_icgraph.dot b/docs/html/class_intelli_shaped_image_a68cf374247c16f07fd84d50e4cd05630_icgraph.dot new file mode 100644 index 0000000..d0a98bf --- /dev/null +++ b/docs/html/class_intelli_shaped_image_a68cf374247c16f07fd84d50e4cd05630_icgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliShapedImage::getDisplayable" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="IntelliShapedImage\l::getDisplayable",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliShapedImage\l::getDisplayable",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#ac6a99e1a96134073bceea252b37636cc",tooltip=" "]; +} diff --git a/docs/html/class_intelli_shaped_image_ac6a99e1a96134073bceea252b37636cc_cgraph.dot b/docs/html/class_intelli_shaped_image_ac6a99e1a96134073bceea252b37636cc_cgraph.dot new file mode 100644 index 0000000..5c5c773 --- /dev/null +++ b/docs/html/class_intelli_shaped_image_ac6a99e1a96134073bceea252b37636cc_cgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliShapedImage::getDisplayable" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliShapedImage\l::getDisplayable",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliShapedImage\l::getDisplayable",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#a68cf374247c16f07fd84d50e4cd05630",tooltip=" "]; +} diff --git a/docs/html/class_intelli_shaped_image_aed0b31e0fa771104399d1f5ff39a0337_cgraph.dot b/docs/html/class_intelli_shaped_image_aed0b31e0fa771104399d1f5ff39a0337_cgraph.dot new file mode 100644 index 0000000..fb8406f --- /dev/null +++ b/docs/html/class_intelli_shaped_image_aed0b31e0fa771104399d1f5ff39a0337_cgraph.dot @@ -0,0 +1,18 @@ +digraph "IntelliShapedImage::getDeepCopy" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliShapedImage\l::getDeepCopy",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliShapedImage\l::IntelliShapedImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#a0f834c3f255baeb50c98ef335a6d0ea9",tooltip=" "]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliShapedImage\l::setPolygon",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#a4b69d75de7a3b85032482982f249458e",tooltip=" "]; + Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliShapedImage\l::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#a0221d93c3c8990f7dab332454cc21f50",tooltip=" "]; + Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="IntelliHelper::isInTriangle",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_helper.html#a04bdb4f53b89dded693ba6e896f4c63f",tooltip=" "]; + Node5 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="IntelliHelper::sign",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_helper.html#a67fc007dda64187f6cef7fba3fcd9e40",tooltip=" "]; +} diff --git a/docs/html/class_intelli_tool-members.html b/docs/html/class_intelli_tool-members.html new file mode 100644 index 0000000..7bd0fbd --- /dev/null +++ b/docs/html/class_intelli_tool-members.html @@ -0,0 +1,119 @@ + + + + + + + +IntelliPhoto: Member List + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliTool Member List
+
+
+ +

This is the complete list of members for IntelliTool, including all inherited members.

+ + + + + + + + + + + + + +
ActiveIntelliToolprotected
AreaIntelliToolprotected
CanvasIntelliToolprotected
colorPickerIntelliToolprotected
drawingIntelliToolprotected
IntelliTool(PaintingArea *Area, IntelliColorPicker *colorPicker)IntelliTool
onMouseLeftPressed(int x, int y)IntelliToolvirtual
onMouseLeftReleased(int x, int y)IntelliToolvirtual
onMouseMoved(int x, int y)IntelliToolvirtual
onMouseRightPressed(int x, int y)IntelliToolvirtual
onMouseRightReleased(int x, int y)IntelliToolvirtual
~IntelliTool()=0IntelliToolpure virtual
+
+ + + + diff --git a/docs/html/class_intelli_tool.html b/docs/html/class_intelli_tool.html new file mode 100644 index 0000000..36301a4 --- /dev/null +++ b/docs/html/class_intelli_tool.html @@ -0,0 +1,579 @@ + + + + + + + +IntelliPhoto: IntelliTool Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
IntelliTool Class Referenceabstract
+
+
+ +

#include <IntelliTool.h>

+
+Inheritance diagram for IntelliTool:
+
+
Inheritance graph
+
[legend]
+
+Collaboration diagram for IntelliTool:
+
+
Collaboration graph
+
[legend]
+ + + + + + + + + + + + + + + + +

+Public Member Functions

 IntelliTool (PaintingArea *Area, IntelliColorPicker *colorPicker)
 
virtual ~IntelliTool ()=0
 
virtual void onMouseRightPressed (int x, int y)
 
virtual void onMouseRightReleased (int x, int y)
 
virtual void onMouseLeftPressed (int x, int y)
 
virtual void onMouseLeftReleased (int x, int y)
 
virtual void onMouseMoved (int x, int y)
 
+ + + + + + + + + + + +

+Protected Attributes

PaintingAreaArea
 
IntelliColorPickercolorPicker
 
LayerObjectActive
 
LayerObjectCanvas
 
bool drawing = false
 
+

Detailed Description

+
+

Definition at line 10 of file IntelliTool.h.

+

Constructor & Destructor Documentation

+ +

◆ IntelliTool()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IntelliTool::IntelliTool (PaintingAreaArea,
IntelliColorPickercolorPicker 
)
+
+ +

Definition at line 4 of file IntelliTool.cpp.

+ +
+
+ +

◆ ~IntelliTool()

+ +
+
+ + + + + +
+ + + + + + + +
IntelliTool::~IntelliTool ()
+
+pure virtual
+
+ +

Definition at line 10 of file IntelliTool.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ onMouseLeftPressed()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void IntelliTool::onMouseLeftPressed (int x,
int y 
)
+
+virtual
+
+ +

Reimplemented in IntelliToolLine, IntelliToolPen, and IntelliToolPlainTool.

+ +

Definition at line 25 of file IntelliTool.cpp.

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ onMouseLeftReleased()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void IntelliTool::onMouseLeftReleased (int x,
int y 
)
+
+virtual
+
+ +

Reimplemented in IntelliToolLine, IntelliToolPen, and IntelliToolPlainTool.

+ +

Definition at line 32 of file IntelliTool.cpp.

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ onMouseMoved()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void IntelliTool::onMouseMoved (int x,
int y 
)
+
+virtual
+
+ +

Reimplemented in IntelliToolLine, IntelliToolPen, and IntelliToolPlainTool.

+ +

Definition at line 41 of file IntelliTool.cpp.

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ onMouseRightPressed()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void IntelliTool::onMouseRightPressed (int x,
int y 
)
+
+virtual
+
+ +

Reimplemented in IntelliToolLine, IntelliToolPen, and IntelliToolPlainTool.

+ +

Definition at line 14 of file IntelliTool.cpp.

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ onMouseRightReleased()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void IntelliTool::onMouseRightReleased (int x,
int y 
)
+
+virtual
+
+ +

Reimplemented in IntelliToolLine, IntelliToolPen, and IntelliToolPlainTool.

+ +

Definition at line 21 of file IntelliTool.cpp.

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Member Data Documentation

+ +

◆ Active

+ +
+
+ + + + + +
+ + + + +
LayerObject* IntelliTool::Active
+
+protected
+
+ +

Definition at line 19 of file IntelliTool.h.

+ +
+
+ +

◆ Area

+ +
+
+ + + + + +
+ + + + +
PaintingArea* IntelliTool::Area
+
+protected
+
+ +

Definition at line 16 of file IntelliTool.h.

+ +
+
+ +

◆ Canvas

+ +
+
+ + + + + +
+ + + + +
LayerObject* IntelliTool::Canvas
+
+protected
+
+ +

Definition at line 20 of file IntelliTool.h.

+ +
+
+ +

◆ colorPicker

+ +
+
+ + + + + +
+ + + + +
IntelliColorPicker* IntelliTool::colorPicker
+
+protected
+
+ +

Definition at line 17 of file IntelliTool.h.

+ +
+
+ +

◆ drawing

+ +
+
+ + + + + +
+ + + + +
bool IntelliTool::drawing = false
+
+protected
+
+ +

Definition at line 21 of file IntelliTool.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/html/class_intelli_tool.js b/docs/html/class_intelli_tool.js new file mode 100644 index 0000000..a16ad6d --- /dev/null +++ b/docs/html/class_intelli_tool.js @@ -0,0 +1,15 @@ +var class_intelli_tool = +[ + [ "IntelliTool", "class_intelli_tool.html#a346dd55d489fced38e7bb46f9168af91", null ], + [ "~IntelliTool", "class_intelli_tool.html#a57fb1b27d364c9e3696eb928b75fa9f2", null ], + [ "onMouseLeftPressed", "class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c", null ], + [ "onMouseLeftReleased", "class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b", null ], + [ "onMouseMoved", "class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639", null ], + [ "onMouseRightPressed", "class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966", null ], + [ "onMouseRightReleased", "class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0", null ], + [ "Active", "class_intelli_tool.html#a13512e95d21a9934ecb36d73b118c25f", null ], + [ "Area", "class_intelli_tool.html#ab4c2698a0f9f25fb6639ec760d2d0289", null ], + [ "Canvas", "class_intelli_tool.html#a144d469cc03584f501194529a1b53c77", null ], + [ "colorPicker", "class_intelli_tool.html#ae2e0ac394611a361ab4ef2fe55c03fef", null ], + [ "drawing", "class_intelli_tool.html#af256de16e9825922d20a23d11617b51b", null ] +]; \ No newline at end of file diff --git a/docs/html/class_intelli_tool__coll__graph.dot b/docs/html/class_intelli_tool__coll__graph.dot new file mode 100644 index 0000000..4c2d980 --- /dev/null +++ b/docs/html/class_intelli_tool__coll__graph.dot @@ -0,0 +1,17 @@ +digraph "IntelliTool" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node2 -> Node1 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Area" ,fontname="Helvetica"]; + Node2 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip=" "]; + Node3 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node4 -> Node1 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" colorPicker" ,fontname="Helvetica"]; + Node4 [label="IntelliColorPicker",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html",tooltip=" "]; + Node5 -> Node1 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Canvas\nActive" ,fontname="Helvetica"]; + Node5 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip=" "]; + Node6 -> Node5 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" image" ,fontname="Helvetica"]; + Node6 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip=" "]; +} diff --git a/docs/html/class_intelli_tool__inherit__graph.dot b/docs/html/class_intelli_tool__inherit__graph.dot new file mode 100644 index 0000000..b364efc --- /dev/null +++ b/docs/html/class_intelli_tool__inherit__graph.dot @@ -0,0 +1,13 @@ +digraph "IntelliTool" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliToolLine",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html",tooltip=" "]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliToolPen",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html",tooltip=" "]; + Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliToolPlainTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html",tooltip=" "]; +} diff --git a/docs/html/class_intelli_tool_a16189b00307c6d7e89f28198f54404b0_icgraph.dot b/docs/html/class_intelli_tool_a16189b00307c6d7e89f28198f54404b0_icgraph.dot new file mode 100644 index 0000000..34cc64e --- /dev/null +++ b/docs/html/class_intelli_tool_a16189b00307c6d7e89f28198f54404b0_icgraph.dot @@ -0,0 +1,16 @@ +digraph "IntelliTool::onMouseRightReleased" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="IntelliTool::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="PaintingArea::mouseRelease\lEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a35b5df914acb608cc29717659793359c",tooltip=" "]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliToolPlainTool\l::onMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#a2ae458f1b04eb77a47f6dca5e91e33b8",tooltip=" "]; + Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliToolPen::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#abf8562e8cd2da586afdf4d47b3a4ff13",tooltip=" "]; + Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="IntelliToolLine::onMouse\lRightReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a6214918cba5753f89d97de4559a2b9b2",tooltip=" "]; +} diff --git a/docs/html/class_intelli_tool_a1e6aa68ac5f3c2ca02319e5ef3f0c966_icgraph.dot b/docs/html/class_intelli_tool_a1e6aa68ac5f3c2ca02319e5ef3f0c966_icgraph.dot new file mode 100644 index 0000000..7fcd304 --- /dev/null +++ b/docs/html/class_intelli_tool_a1e6aa68ac5f3c2ca02319e5ef3f0c966_icgraph.dot @@ -0,0 +1,16 @@ +digraph "IntelliTool::onMouseRightPressed" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="IntelliTool::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="PaintingArea::mousePress\lEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15",tooltip=" "]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliToolPlainTool\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#acb0c46e16d2c09370a2244a936de38b1",tooltip=" "]; + Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliToolPen::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a1751e3864a0d36ef42ca55021cae73ce",tooltip=" "]; + Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="IntelliToolLine::onMouse\lRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a6cce59f3017936214b10b47252a898a3",tooltip=" "]; +} diff --git a/docs/html/class_intelli_tool_a34b7ef1dde96b94a0ce450a25ae1778c_cgraph.dot b/docs/html/class_intelli_tool_a34b7ef1dde96b94a0ce450a25ae1778c_cgraph.dot new file mode 100644 index 0000000..460edce --- /dev/null +++ b/docs/html/class_intelli_tool_a34b7ef1dde96b94a0ce450a25ae1778c_cgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliTool::onMouseLeftPressed" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliTool::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; +} diff --git a/docs/html/class_intelli_tool_a34b7ef1dde96b94a0ce450a25ae1778c_icgraph.dot b/docs/html/class_intelli_tool_a34b7ef1dde96b94a0ce450a25ae1778c_icgraph.dot new file mode 100644 index 0000000..998ce10 --- /dev/null +++ b/docs/html/class_intelli_tool_a34b7ef1dde96b94a0ce450a25ae1778c_icgraph.dot @@ -0,0 +1,16 @@ +digraph "IntelliTool::onMouseLeftPressed" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="IntelliTool::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="PaintingArea::mousePress\lEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15",tooltip=" "]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9",tooltip=" "]; + Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205",tooltip=" "]; + Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="IntelliToolLine::onMouse\lLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846",tooltip=" "]; +} diff --git a/docs/html/class_intelli_tool_a906a2575c16c8a33cb2a5197f8d8cc5b_cgraph.dot b/docs/html/class_intelli_tool_a906a2575c16c8a33cb2a5197f8d8cc5b_cgraph.dot new file mode 100644 index 0000000..09d1db7 --- /dev/null +++ b/docs/html/class_intelli_tool_a906a2575c16c8a33cb2a5197f8d8cc5b_cgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliTool::onMouseLeftReleased" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; +} diff --git a/docs/html/class_intelli_tool_a906a2575c16c8a33cb2a5197f8d8cc5b_icgraph.dot b/docs/html/class_intelli_tool_a906a2575c16c8a33cb2a5197f8d8cc5b_icgraph.dot new file mode 100644 index 0000000..03ee315 --- /dev/null +++ b/docs/html/class_intelli_tool_a906a2575c16c8a33cb2a5197f8d8cc5b_icgraph.dot @@ -0,0 +1,16 @@ +digraph "IntelliTool::onMouseLeftReleased" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="PaintingArea::mouseRelease\lEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a35b5df914acb608cc29717659793359c",tooltip=" "]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliToolPlainTool\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ac23f5d0f07e42fd7c2ea3fc1347da400",tooltip=" "]; + Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliToolPen::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#abda7a22b9766fa4ad254324a53cab94d",tooltip=" "]; + Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="IntelliToolLine::onMouse\lLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#ac93f76ff20a1c111a403b298bab02482",tooltip=" "]; +} diff --git a/docs/html/class_intelli_tool_ac10e20414cd8855a2f9b103fb6408639_cgraph.dot b/docs/html/class_intelli_tool_ac10e20414cd8855a2f9b103fb6408639_cgraph.dot new file mode 100644 index 0000000..030bed6 --- /dev/null +++ b/docs/html/class_intelli_tool_ac10e20414cd8855a2f9b103fb6408639_cgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliTool::onMouseMoved" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; +} diff --git a/docs/html/class_intelli_tool_ac10e20414cd8855a2f9b103fb6408639_icgraph.dot b/docs/html/class_intelli_tool_ac10e20414cd8855a2f9b103fb6408639_icgraph.dot new file mode 100644 index 0000000..6c4d15a --- /dev/null +++ b/docs/html/class_intelli_tool_ac10e20414cd8855a2f9b103fb6408639_icgraph.dot @@ -0,0 +1,16 @@ +digraph "IntelliTool::onMouseMoved" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="PaintingArea::mouseMoveEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#aa22e274b6094a9619f196cd7b49526b5",tooltip=" "]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliToolPlainTool\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ad7546a6335bb3bb4cbf0e1883788d41c",tooltip=" "]; + Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliToolPen::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2",tooltip=" "]; + Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip=" "]; +} diff --git a/docs/html/class_intelli_tool_line-members.html b/docs/html/class_intelli_tool_line-members.html new file mode 100644 index 0000000..8794f3f --- /dev/null +++ b/docs/html/class_intelli_tool_line-members.html @@ -0,0 +1,121 @@ + + + + + + + +IntelliPhoto: Member List + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliToolLine Member List
+
+
+ +

This is the complete list of members for IntelliToolLine, including all inherited members.

+ + + + + + + + + + + + + + + +
ActiveIntelliToolprotected
AreaIntelliToolprotected
CanvasIntelliToolprotected
colorPickerIntelliToolprotected
drawingIntelliToolprotected
IntelliTool(PaintingArea *Area, IntelliColorPicker *colorPicker)IntelliTool
IntelliToolLine(PaintingArea *Area, IntelliColorPicker *colorPicker)IntelliToolLine
onMouseLeftPressed(int x, int y) overrideIntelliToolLinevirtual
onMouseLeftReleased(int x, int y) overrideIntelliToolLinevirtual
onMouseMoved(int x, int y) overrideIntelliToolLinevirtual
onMouseRightPressed(int x, int y) overrideIntelliToolLinevirtual
onMouseRightReleased(int x, int y) overrideIntelliToolLinevirtual
~IntelliTool()=0IntelliToolpure virtual
~IntelliToolLine() overrideIntelliToolLinevirtual
+
+ + + + diff --git a/docs/html/class_intelli_tool_line.html b/docs/html/class_intelli_tool_line.html new file mode 100644 index 0000000..cea0984 --- /dev/null +++ b/docs/html/class_intelli_tool_line.html @@ -0,0 +1,448 @@ + + + + + + + +IntelliPhoto: IntelliToolLine Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
IntelliToolLine Class Reference
+
+
+ +

#include <IntelliToolLine.h>

+
+Inheritance diagram for IntelliToolLine:
+
+
Inheritance graph
+
[legend]
+
+Collaboration diagram for IntelliToolLine:
+
+
Collaboration graph
+
[legend]
+ + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 IntelliToolLine (PaintingArea *Area, IntelliColorPicker *colorPicker)
 
virtual ~IntelliToolLine () override
 
virtual void onMouseRightPressed (int x, int y) override
 
virtual void onMouseRightReleased (int x, int y) override
 
virtual void onMouseLeftPressed (int x, int y) override
 
virtual void onMouseLeftReleased (int x, int y) override
 
virtual void onMouseMoved (int x, int y) override
 
- Public Member Functions inherited from IntelliTool
 IntelliTool (PaintingArea *Area, IntelliColorPicker *colorPicker)
 
virtual ~IntelliTool ()=0
 
+ + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from IntelliTool
PaintingAreaArea
 
IntelliColorPickercolorPicker
 
LayerObjectActive
 
LayerObjectCanvas
 
bool drawing = false
 
+

Detailed Description

+
+

Definition at line 13 of file IntelliToolLine.h.

+

Constructor & Destructor Documentation

+ +

◆ IntelliToolLine()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IntelliToolLine::IntelliToolLine (PaintingAreaArea,
IntelliColorPickercolorPicker 
)
+
+ +

Definition at line 6 of file IntelliToolLine.cpp.

+ +
+
+ +

◆ ~IntelliToolLine()

+ +
+
+ + + + + +
+ + + + + + + +
IntelliToolLine::~IntelliToolLine ()
+
+overridevirtual
+
+ +

Definition at line 13 of file IntelliToolLine.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ onMouseLeftPressed()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void IntelliToolLine::onMouseLeftPressed (int x,
int y 
)
+
+overridevirtual
+
+ +

Reimplemented from IntelliTool.

+ +

Definition at line 26 of file IntelliToolLine.cpp.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ onMouseLeftReleased()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void IntelliToolLine::onMouseLeftReleased (int x,
int y 
)
+
+overridevirtual
+
+ +

Reimplemented from IntelliTool.

+ +

Definition at line 33 of file IntelliToolLine.cpp.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ onMouseMoved()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void IntelliToolLine::onMouseMoved (int x,
int y 
)
+
+overridevirtual
+
+ +

Reimplemented from IntelliTool.

+ +

Definition at line 37 of file IntelliToolLine.cpp.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ onMouseRightPressed()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void IntelliToolLine::onMouseRightPressed (int x,
int y 
)
+
+overridevirtual
+
+ +

Reimplemented from IntelliTool.

+ +

Definition at line 18 of file IntelliToolLine.cpp.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ onMouseRightReleased()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void IntelliToolLine::onMouseRightReleased (int x,
int y 
)
+
+overridevirtual
+
+ +

Reimplemented from IntelliTool.

+ +

Definition at line 22 of file IntelliToolLine.cpp.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/html/class_intelli_tool_line.js b/docs/html/class_intelli_tool_line.js new file mode 100644 index 0000000..b729a43 --- /dev/null +++ b/docs/html/class_intelli_tool_line.js @@ -0,0 +1,10 @@ +var class_intelli_tool_line = +[ + [ "IntelliToolLine", "class_intelli_tool_line.html#a9b2d4bcd69409a21f6080edfea4ae2a2", null ], + [ "~IntelliToolLine", "class_intelli_tool_line.html#acb600b0f4e9225ebce2937c2b7abb4c2", null ], + [ "onMouseLeftPressed", "class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846", null ], + [ "onMouseLeftReleased", "class_intelli_tool_line.html#ac93f76ff20a1c111a403b298bab02482", null ], + [ "onMouseMoved", "class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b", null ], + [ "onMouseRightPressed", "class_intelli_tool_line.html#a6cce59f3017936214b10b47252a898a3", null ], + [ "onMouseRightReleased", "class_intelli_tool_line.html#a6214918cba5753f89d97de4559a2b9b2", null ] +]; \ No newline at end of file diff --git a/docs/html/class_intelli_tool_line__coll__graph.dot b/docs/html/class_intelli_tool_line__coll__graph.dot new file mode 100644 index 0000000..98b0f30 --- /dev/null +++ b/docs/html/class_intelli_tool_line__coll__graph.dot @@ -0,0 +1,19 @@ +digraph "IntelliToolLine" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="IntelliToolLine",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip=" "]; + Node3 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Area" ,fontname="Helvetica"]; + Node3 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip=" "]; + Node4 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node5 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" colorPicker" ,fontname="Helvetica"]; + Node5 [label="IntelliColorPicker",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html",tooltip=" "]; + Node6 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Canvas\nActive" ,fontname="Helvetica"]; + Node6 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip=" "]; + Node7 -> Node6 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" image" ,fontname="Helvetica"]; + Node7 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip=" "]; +} diff --git a/docs/html/class_intelli_tool_line__inherit__graph.dot b/docs/html/class_intelli_tool_line__inherit__graph.dot new file mode 100644 index 0000000..fe126d1 --- /dev/null +++ b/docs/html/class_intelli_tool_line__inherit__graph.dot @@ -0,0 +1,9 @@ +digraph "IntelliToolLine" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="IntelliToolLine",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip=" "]; +} diff --git a/docs/html/class_intelli_tool_line_a155d676a5f98311217eb095be4759846_cgraph.dot b/docs/html/class_intelli_tool_line_a155d676a5f98311217eb095be4759846_cgraph.dot new file mode 100644 index 0000000..d00e9c4 --- /dev/null +++ b/docs/html/class_intelli_tool_line_a155d676a5f98311217eb095be4759846_cgraph.dot @@ -0,0 +1,17 @@ +digraph "IntelliToolLine::onMouseLeftPressed" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolLine::onMouse\lLeftPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliImage::drawLine",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31",tooltip=" "]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7",tooltip=" "]; + Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="IntelliTool::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c",tooltip=" "]; + Node5 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/docs/html/class_intelli_tool_line_a6214918cba5753f89d97de4559a2b9b2_cgraph.dot b/docs/html/class_intelli_tool_line_a6214918cba5753f89d97de4559a2b9b2_cgraph.dot new file mode 100644 index 0000000..8be8e3a --- /dev/null +++ b/docs/html/class_intelli_tool_line_a6214918cba5753f89d97de4559a2b9b2_cgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliToolLine::onMouseRightReleased" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolLine::onMouse\lRightReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0",tooltip=" "]; +} diff --git a/docs/html/class_intelli_tool_line_a6cce59f3017936214b10b47252a898a3_cgraph.dot b/docs/html/class_intelli_tool_line_a6cce59f3017936214b10b47252a898a3_cgraph.dot new file mode 100644 index 0000000..79b5fd2 --- /dev/null +++ b/docs/html/class_intelli_tool_line_a6cce59f3017936214b10b47252a898a3_cgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliToolLine::onMouseRightPressed" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolLine::onMouse\lRightPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966",tooltip=" "]; +} diff --git a/docs/html/class_intelli_tool_line_abc6324ef0778823fe7e35aef8ae37f9b_cgraph.dot b/docs/html/class_intelli_tool_line_abc6324ef0778823fe7e35aef8ae37f9b_cgraph.dot new file mode 100644 index 0000000..c9d16f5 --- /dev/null +++ b/docs/html/class_intelli_tool_line_abc6324ef0778823fe7e35aef8ae37f9b_cgraph.dot @@ -0,0 +1,18 @@ +digraph "IntelliToolLine::onMouseMoved" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliImage::drawLine",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31",tooltip=" "]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliImage::drawPlain",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#a6be622810dc2bc756054bb5769becb06",tooltip=" "]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7",tooltip=" "]; + Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639",tooltip=" "]; + Node5 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; +} diff --git a/docs/html/class_intelli_tool_line_ac93f76ff20a1c111a403b298bab02482_cgraph.dot b/docs/html/class_intelli_tool_line_ac93f76ff20a1c111a403b298bab02482_cgraph.dot new file mode 100644 index 0000000..d8b49a5 --- /dev/null +++ b/docs/html/class_intelli_tool_line_ac93f76ff20a1c111a403b298bab02482_cgraph.dot @@ -0,0 +1,12 @@ +digraph "IntelliToolLine::onMouseLeftReleased" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolLine::onMouse\lLeftReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip=" "]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; +} diff --git a/docs/html/class_intelli_tool_pen-members.html b/docs/html/class_intelli_tool_pen-members.html new file mode 100644 index 0000000..e2496aa --- /dev/null +++ b/docs/html/class_intelli_tool_pen-members.html @@ -0,0 +1,121 @@ + + + + + + + +IntelliPhoto: Member List + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliToolPen Member List
+
+
+ +

This is the complete list of members for IntelliToolPen, including all inherited members.

+ + + + + + + + + + + + + + + +
ActiveIntelliToolprotected
AreaIntelliToolprotected
CanvasIntelliToolprotected
colorPickerIntelliToolprotected
drawingIntelliToolprotected
IntelliTool(PaintingArea *Area, IntelliColorPicker *colorPicker)IntelliTool
IntelliToolPen(PaintingArea *Area, IntelliColorPicker *colorPicker)IntelliToolPen
onMouseLeftPressed(int x, int y) overrideIntelliToolPenvirtual
onMouseLeftReleased(int x, int y) overrideIntelliToolPenvirtual
onMouseMoved(int x, int y) overrideIntelliToolPenvirtual
onMouseRightPressed(int x, int y) overrideIntelliToolPenvirtual
onMouseRightReleased(int x, int y) overrideIntelliToolPenvirtual
~IntelliTool()=0IntelliToolpure virtual
~IntelliToolPen() overrideIntelliToolPenvirtual
+
+ + + + diff --git a/docs/html/class_intelli_tool_pen.html b/docs/html/class_intelli_tool_pen.html new file mode 100644 index 0000000..59f686c --- /dev/null +++ b/docs/html/class_intelli_tool_pen.html @@ -0,0 +1,448 @@ + + + + + + + +IntelliPhoto: IntelliToolPen Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
IntelliToolPen Class Reference
+
+
+ +

#include <IntelliToolPen.h>

+
+Inheritance diagram for IntelliToolPen:
+
+
Inheritance graph
+
[legend]
+
+Collaboration diagram for IntelliToolPen:
+
+
Collaboration graph
+
[legend]
+ + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 IntelliToolPen (PaintingArea *Area, IntelliColorPicker *colorPicker)
 
virtual ~IntelliToolPen () override
 
virtual void onMouseRightPressed (int x, int y) override
 
virtual void onMouseRightReleased (int x, int y) override
 
virtual void onMouseLeftPressed (int x, int y) override
 
virtual void onMouseLeftReleased (int x, int y) override
 
virtual void onMouseMoved (int x, int y) override
 
- Public Member Functions inherited from IntelliTool
 IntelliTool (PaintingArea *Area, IntelliColorPicker *colorPicker)
 
virtual ~IntelliTool ()=0
 
+ + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from IntelliTool
PaintingAreaArea
 
IntelliColorPickercolorPicker
 
LayerObjectActive
 
LayerObjectCanvas
 
bool drawing = false
 
+

Detailed Description

+
+

Definition at line 8 of file IntelliToolPen.h.

+

Constructor & Destructor Documentation

+ +

◆ IntelliToolPen()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IntelliToolPen::IntelliToolPen (PaintingAreaArea,
IntelliColorPickercolorPicker 
)
+
+ +

Definition at line 7 of file IntelliToolPen.cpp.

+ +
+
+ +

◆ ~IntelliToolPen()

+ +
+
+ + + + + +
+ + + + + + + +
IntelliToolPen::~IntelliToolPen ()
+
+overridevirtual
+
+ +

Definition at line 12 of file IntelliToolPen.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ onMouseLeftPressed()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void IntelliToolPen::onMouseLeftPressed (int x,
int y 
)
+
+overridevirtual
+
+ +

Reimplemented from IntelliTool.

+ +

Definition at line 24 of file IntelliToolPen.cpp.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ onMouseLeftReleased()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void IntelliToolPen::onMouseLeftReleased (int x,
int y 
)
+
+overridevirtual
+
+ +

Reimplemented from IntelliTool.

+ +

Definition at line 31 of file IntelliToolPen.cpp.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ onMouseMoved()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void IntelliToolPen::onMouseMoved (int x,
int y 
)
+
+overridevirtual
+
+ +

Reimplemented from IntelliTool.

+ +

Definition at line 35 of file IntelliToolPen.cpp.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ onMouseRightPressed()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void IntelliToolPen::onMouseRightPressed (int x,
int y 
)
+
+overridevirtual
+
+ +

Reimplemented from IntelliTool.

+ +

Definition at line 16 of file IntelliToolPen.cpp.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ onMouseRightReleased()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void IntelliToolPen::onMouseRightReleased (int x,
int y 
)
+
+overridevirtual
+
+ +

Reimplemented from IntelliTool.

+ +

Definition at line 20 of file IntelliToolPen.cpp.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/html/class_intelli_tool_pen.js b/docs/html/class_intelli_tool_pen.js new file mode 100644 index 0000000..497d89c --- /dev/null +++ b/docs/html/class_intelli_tool_pen.js @@ -0,0 +1,10 @@ +var class_intelli_tool_pen = +[ + [ "IntelliToolPen", "class_intelli_tool_pen.html#a889891b3ae7cdefb881aed2e7fff9b47", null ], + [ "~IntelliToolPen", "class_intelli_tool_pen.html#ac77a025515d0fed6954556fe2b444818", null ], + [ "onMouseLeftPressed", "class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205", null ], + [ "onMouseLeftReleased", "class_intelli_tool_pen.html#abda7a22b9766fa4ad254324a53cab94d", null ], + [ "onMouseMoved", "class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2", null ], + [ "onMouseRightPressed", "class_intelli_tool_pen.html#a1751e3864a0d36ef42ca55021cae73ce", null ], + [ "onMouseRightReleased", "class_intelli_tool_pen.html#abf8562e8cd2da586afdf4d47b3a4ff13", null ] +]; \ No newline at end of file diff --git a/docs/html/class_intelli_tool_pen__coll__graph.dot b/docs/html/class_intelli_tool_pen__coll__graph.dot new file mode 100644 index 0000000..4f26697 --- /dev/null +++ b/docs/html/class_intelli_tool_pen__coll__graph.dot @@ -0,0 +1,19 @@ +digraph "IntelliToolPen" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="IntelliToolPen",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip=" "]; + Node3 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Area" ,fontname="Helvetica"]; + Node3 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip=" "]; + Node4 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node5 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" colorPicker" ,fontname="Helvetica"]; + Node5 [label="IntelliColorPicker",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html",tooltip=" "]; + Node6 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Canvas\nActive" ,fontname="Helvetica"]; + Node6 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip=" "]; + Node7 -> Node6 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" image" ,fontname="Helvetica"]; + Node7 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip=" "]; +} diff --git a/docs/html/class_intelli_tool_pen__inherit__graph.dot b/docs/html/class_intelli_tool_pen__inherit__graph.dot new file mode 100644 index 0000000..3dd70c4 --- /dev/null +++ b/docs/html/class_intelli_tool_pen__inherit__graph.dot @@ -0,0 +1,9 @@ +digraph "IntelliToolPen" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="IntelliToolPen",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip=" "]; +} diff --git a/docs/html/class_intelli_tool_pen_a1751e3864a0d36ef42ca55021cae73ce_cgraph.dot b/docs/html/class_intelli_tool_pen_a1751e3864a0d36ef42ca55021cae73ce_cgraph.dot new file mode 100644 index 0000000..cf9b1b3 --- /dev/null +++ b/docs/html/class_intelli_tool_pen_a1751e3864a0d36ef42ca55021cae73ce_cgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliToolPen::onMouseRightPressed" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolPen::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966",tooltip=" "]; +} diff --git a/docs/html/class_intelli_tool_pen_a58d1d636497b630647ce0c4d652737c2_cgraph.dot b/docs/html/class_intelli_tool_pen_a58d1d636497b630647ce0c4d652737c2_cgraph.dot new file mode 100644 index 0000000..2ad31f6 --- /dev/null +++ b/docs/html/class_intelli_tool_pen_a58d1d636497b630647ce0c4d652737c2_cgraph.dot @@ -0,0 +1,16 @@ +digraph "IntelliToolPen::onMouseMoved" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolPen::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliImage::drawLine",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31",tooltip=" "]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7",tooltip=" "]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639",tooltip=" "]; + Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; +} diff --git a/docs/html/class_intelli_tool_pen_a8ff40aef6d38eb55af31a19322429205_cgraph.dot b/docs/html/class_intelli_tool_pen_a8ff40aef6d38eb55af31a19322429205_cgraph.dot new file mode 100644 index 0000000..bcee5e9 --- /dev/null +++ b/docs/html/class_intelli_tool_pen_a8ff40aef6d38eb55af31a19322429205_cgraph.dot @@ -0,0 +1,17 @@ +digraph "IntelliToolPen::onMouseLeftPressed" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliImage::drawPixel",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#af3c859f5c409e37051edfd9e9fbca056",tooltip=" "]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7",tooltip=" "]; + Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="IntelliTool::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c",tooltip=" "]; + Node5 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/docs/html/class_intelli_tool_pen_abda7a22b9766fa4ad254324a53cab94d_cgraph.dot b/docs/html/class_intelli_tool_pen_abda7a22b9766fa4ad254324a53cab94d_cgraph.dot new file mode 100644 index 0000000..465e4f8 --- /dev/null +++ b/docs/html/class_intelli_tool_pen_abda7a22b9766fa4ad254324a53cab94d_cgraph.dot @@ -0,0 +1,12 @@ +digraph "IntelliToolPen::onMouseLeftReleased" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolPen::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip=" "]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; +} diff --git a/docs/html/class_intelli_tool_pen_abf8562e8cd2da586afdf4d47b3a4ff13_cgraph.dot b/docs/html/class_intelli_tool_pen_abf8562e8cd2da586afdf4d47b3a4ff13_cgraph.dot new file mode 100644 index 0000000..f40b2ec --- /dev/null +++ b/docs/html/class_intelli_tool_pen_abf8562e8cd2da586afdf4d47b3a4ff13_cgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliToolPen::onMouseRightReleased" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolPen::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0",tooltip=" "]; +} diff --git a/docs/html/class_intelli_tool_plain_tool-members.html b/docs/html/class_intelli_tool_plain_tool-members.html new file mode 100644 index 0000000..a044165 --- /dev/null +++ b/docs/html/class_intelli_tool_plain_tool-members.html @@ -0,0 +1,120 @@ + + + + + + + +IntelliPhoto: Member List + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliToolPlainTool Member List
+
+
+ +

This is the complete list of members for IntelliToolPlainTool, including all inherited members.

+ + + + + + + + + + + + + + +
ActiveIntelliToolprotected
AreaIntelliToolprotected
CanvasIntelliToolprotected
colorPickerIntelliToolprotected
drawingIntelliToolprotected
IntelliTool(PaintingArea *Area, IntelliColorPicker *colorPicker)IntelliTool
IntelliToolPlainTool(PaintingArea *Area, IntelliColorPicker *colorPicker)IntelliToolPlainTool
onMouseLeftPressed(int x, int y) overrideIntelliToolPlainToolvirtual
onMouseLeftReleased(int x, int y) overrideIntelliToolPlainToolvirtual
onMouseMoved(int x, int y) overrideIntelliToolPlainToolvirtual
onMouseRightPressed(int x, int y) overrideIntelliToolPlainToolvirtual
onMouseRightReleased(int x, int y) overrideIntelliToolPlainToolvirtual
~IntelliTool()=0IntelliToolpure virtual
+
+ + + + diff --git a/docs/html/class_intelli_tool_plain_tool.html b/docs/html/class_intelli_tool_plain_tool.html new file mode 100644 index 0000000..312872b --- /dev/null +++ b/docs/html/class_intelli_tool_plain_tool.html @@ -0,0 +1,419 @@ + + + + + + + +IntelliPhoto: IntelliToolPlainTool Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
IntelliToolPlainTool Class Reference
+
+
+ +

#include <IntelliToolPlain.h>

+
+Inheritance diagram for IntelliToolPlainTool:
+
+
Inheritance graph
+
[legend]
+
+Collaboration diagram for IntelliToolPlainTool:
+
+
Collaboration graph
+
[legend]
+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 IntelliToolPlainTool (PaintingArea *Area, IntelliColorPicker *colorPicker)
 
void onMouseLeftPressed (int x, int y) override
 
void onMouseLeftReleased (int x, int y) override
 
void onMouseRightPressed (int x, int y) override
 
void onMouseRightReleased (int x, int y) override
 
void onMouseMoved (int x, int y) override
 
- Public Member Functions inherited from IntelliTool
 IntelliTool (PaintingArea *Area, IntelliColorPicker *colorPicker)
 
virtual ~IntelliTool ()=0
 
+ + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from IntelliTool
PaintingAreaArea
 
IntelliColorPickercolorPicker
 
LayerObjectActive
 
LayerObjectCanvas
 
bool drawing = false
 
+

Detailed Description

+
+

Definition at line 7 of file IntelliToolPlain.h.

+

Constructor & Destructor Documentation

+ +

◆ IntelliToolPlainTool()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IntelliToolPlainTool::IntelliToolPlainTool (PaintingAreaArea,
IntelliColorPickercolorPicker 
)
+
+ +

Definition at line 5 of file IntelliToolPlain.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ onMouseLeftPressed()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void IntelliToolPlainTool::onMouseLeftPressed (int x,
int y 
)
+
+overridevirtual
+
+ +

Reimplemented from IntelliTool.

+ +

Definition at line 9 of file IntelliToolPlain.cpp.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ onMouseLeftReleased()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void IntelliToolPlainTool::onMouseLeftReleased (int x,
int y 
)
+
+overridevirtual
+
+ +

Reimplemented from IntelliTool.

+ +

Definition at line 15 of file IntelliToolPlain.cpp.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ onMouseMoved()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void IntelliToolPlainTool::onMouseMoved (int x,
int y 
)
+
+overridevirtual
+
+ +

Reimplemented from IntelliTool.

+ +

Definition at line 28 of file IntelliToolPlain.cpp.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ onMouseRightPressed()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void IntelliToolPlainTool::onMouseRightPressed (int x,
int y 
)
+
+overridevirtual
+
+ +

Reimplemented from IntelliTool.

+ +

Definition at line 19 of file IntelliToolPlain.cpp.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ onMouseRightReleased()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void IntelliToolPlainTool::onMouseRightReleased (int x,
int y 
)
+
+overridevirtual
+
+ +

Reimplemented from IntelliTool.

+ +

Definition at line 23 of file IntelliToolPlain.cpp.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/html/class_intelli_tool_plain_tool.js b/docs/html/class_intelli_tool_plain_tool.js new file mode 100644 index 0000000..3e7a594 --- /dev/null +++ b/docs/html/class_intelli_tool_plain_tool.js @@ -0,0 +1,9 @@ +var class_intelli_tool_plain_tool = +[ + [ "IntelliToolPlainTool", "class_intelli_tool_plain_tool.html#a0ff0b9f7b78b763683076e4417236859", null ], + [ "onMouseLeftPressed", "class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9", null ], + [ "onMouseLeftReleased", "class_intelli_tool_plain_tool.html#ac23f5d0f07e42fd7c2ea3fc1347da400", null ], + [ "onMouseMoved", "class_intelli_tool_plain_tool.html#ad7546a6335bb3bb4cbf0e1883788d41c", null ], + [ "onMouseRightPressed", "class_intelli_tool_plain_tool.html#acb0c46e16d2c09370a2244a936de38b1", null ], + [ "onMouseRightReleased", "class_intelli_tool_plain_tool.html#a2ae458f1b04eb77a47f6dca5e91e33b8", null ] +]; \ No newline at end of file diff --git a/docs/html/class_intelli_tool_plain_tool__coll__graph.dot b/docs/html/class_intelli_tool_plain_tool__coll__graph.dot new file mode 100644 index 0000000..f4b0a6a --- /dev/null +++ b/docs/html/class_intelli_tool_plain_tool__coll__graph.dot @@ -0,0 +1,19 @@ +digraph "IntelliToolPlainTool" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="IntelliToolPlainTool",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip=" "]; + Node3 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Area" ,fontname="Helvetica"]; + Node3 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip=" "]; + Node4 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node5 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" colorPicker" ,fontname="Helvetica"]; + Node5 [label="IntelliColorPicker",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html",tooltip=" "]; + Node6 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Canvas\nActive" ,fontname="Helvetica"]; + Node6 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip=" "]; + Node7 -> Node6 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" image" ,fontname="Helvetica"]; + Node7 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip=" "]; +} diff --git a/docs/html/class_intelli_tool_plain_tool__inherit__graph.dot b/docs/html/class_intelli_tool_plain_tool__inherit__graph.dot new file mode 100644 index 0000000..30fa977 --- /dev/null +++ b/docs/html/class_intelli_tool_plain_tool__inherit__graph.dot @@ -0,0 +1,9 @@ +digraph "IntelliToolPlainTool" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="IntelliToolPlainTool",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip=" "]; +} diff --git a/docs/html/class_intelli_tool_plain_tool_a2ae458f1b04eb77a47f6dca5e91e33b8_cgraph.dot b/docs/html/class_intelli_tool_plain_tool_a2ae458f1b04eb77a47f6dca5e91e33b8_cgraph.dot new file mode 100644 index 0000000..afce574 --- /dev/null +++ b/docs/html/class_intelli_tool_plain_tool_a2ae458f1b04eb77a47f6dca5e91e33b8_cgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliToolPlainTool::onMouseRightReleased" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolPlainTool\l::onMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0",tooltip=" "]; +} diff --git a/docs/html/class_intelli_tool_plain_tool_ab786dd5fa80af863246013d43c4b7ac9_cgraph.dot b/docs/html/class_intelli_tool_plain_tool_ab786dd5fa80af863246013d43c4b7ac9_cgraph.dot new file mode 100644 index 0000000..69ec81f --- /dev/null +++ b/docs/html/class_intelli_tool_plain_tool_ab786dd5fa80af863246013d43c4b7ac9_cgraph.dot @@ -0,0 +1,17 @@ +digraph "IntelliToolPlainTool::onMouseLeftPressed" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliImage::drawPlain",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#a6be622810dc2bc756054bb5769becb06",tooltip=" "]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7",tooltip=" "]; + Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="IntelliTool::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c",tooltip=" "]; + Node5 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/docs/html/class_intelli_tool_plain_tool_ac23f5d0f07e42fd7c2ea3fc1347da400_cgraph.dot b/docs/html/class_intelli_tool_plain_tool_ac23f5d0f07e42fd7c2ea3fc1347da400_cgraph.dot new file mode 100644 index 0000000..85b8131 --- /dev/null +++ b/docs/html/class_intelli_tool_plain_tool_ac23f5d0f07e42fd7c2ea3fc1347da400_cgraph.dot @@ -0,0 +1,12 @@ +digraph "IntelliToolPlainTool::onMouseLeftReleased" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolPlainTool\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip=" "]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; +} diff --git a/docs/html/class_intelli_tool_plain_tool_acb0c46e16d2c09370a2244a936de38b1_cgraph.dot b/docs/html/class_intelli_tool_plain_tool_acb0c46e16d2c09370a2244a936de38b1_cgraph.dot new file mode 100644 index 0000000..c53471f --- /dev/null +++ b/docs/html/class_intelli_tool_plain_tool_acb0c46e16d2c09370a2244a936de38b1_cgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliToolPlainTool::onMouseRightPressed" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolPlainTool\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966",tooltip=" "]; +} diff --git a/docs/html/class_intelli_tool_plain_tool_ad7546a6335bb3bb4cbf0e1883788d41c_cgraph.dot b/docs/html/class_intelli_tool_plain_tool_ad7546a6335bb3bb4cbf0e1883788d41c_cgraph.dot new file mode 100644 index 0000000..78ee13e --- /dev/null +++ b/docs/html/class_intelli_tool_plain_tool_ad7546a6335bb3bb4cbf0e1883788d41c_cgraph.dot @@ -0,0 +1,12 @@ +digraph "IntelliToolPlainTool::onMouseMoved" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolPlainTool\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639",tooltip=" "]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; +} diff --git a/docs/html/class_painting_area-members.html b/docs/html/class_painting_area-members.html new file mode 100644 index 0000000..acad039 --- /dev/null +++ b/docs/html/class_painting_area-members.html @@ -0,0 +1,132 @@ + + + + + + + +IntelliPhoto: Member List + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
PaintingArea Member List
+
+
+ +

This is the complete list of members for PaintingArea, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
addLayer(int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)PaintingArea
addLayerAt(int idx, int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)PaintingArea
colorPickerSetFirstColor()PaintingArea
colorPickerSetSecondColor()PaintingArea
colorPickerSwitchColor()PaintingArea
createLineTool()PaintingArea
createPenTool()PaintingArea
createPlainTool()PaintingArea
deleteLayer(int index)PaintingArea
floodFill(int r, int g, int b, int a)PaintingArea
mouseMoveEvent(QMouseEvent *event) overridePaintingAreaprotected
mousePressEvent(QMouseEvent *event) overridePaintingAreaprotected
mouseReleaseEvent(QMouseEvent *event) overridePaintingAreaprotected
moveActiveLayer(int idx)PaintingArea
movePositionActive(int x, int y)PaintingArea
open(const QString &fileName)PaintingArea
paintEvent(QPaintEvent *event) overridePaintingAreaprotected
PaintingArea(int maxWidth=600, int maxHeight=600, QWidget *parent=nullptr)PaintingArea
resizeEvent(QResizeEvent *event) overridePaintingAreaprotected
save(const QString &fileName, const char *fileFormat)PaintingArea
setAlphaOfLayer(int index, int alpha)PaintingArea
setLayerToActive(int index)PaintingArea
slotActivateLayer(int a)PaintingAreaslot
slotDeleteActiveLayer()PaintingAreaslot
~PaintingArea()PaintingArea
+
+ + + + diff --git a/docs/html/class_painting_area.html b/docs/html/class_painting_area.html new file mode 100644 index 0000000..b2bbf49 --- /dev/null +++ b/docs/html/class_painting_area.html @@ -0,0 +1,927 @@ + + + + + + + +IntelliPhoto: PaintingArea Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ + +
+ +

#include <PaintingArea.h>

+
+Inheritance diagram for PaintingArea:
+
+
Inheritance graph
+
[legend]
+
+Collaboration diagram for PaintingArea:
+
+
Collaboration graph
+
[legend]
+ + + + + + +

+Public Slots

void slotActivateLayer (int a)
 
void slotDeleteActiveLayer ()
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 PaintingArea (int maxWidth=600, int maxHeight=600, QWidget *parent=nullptr)
 
 ~PaintingArea ()
 
bool open (const QString &fileName)
 
bool save (const QString &fileName, const char *fileFormat)
 
int addLayer (int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
 
int addLayerAt (int idx, int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
 
void deleteLayer (int index)
 
void setLayerToActive (int index)
 
void setAlphaOfLayer (int index, int alpha)
 
void floodFill (int r, int g, int b, int a)
 
void movePositionActive (int x, int y)
 
void moveActiveLayer (int idx)
 
void colorPickerSetFirstColor ()
 
void colorPickerSetSecondColor ()
 
void colorPickerSwitchColor ()
 
void createPenTool ()
 
void createPlainTool ()
 
void createLineTool ()
 
+ + + + + + + + + + + +

+Protected Member Functions

void mousePressEvent (QMouseEvent *event) override
 
void mouseMoveEvent (QMouseEvent *event) override
 
void mouseReleaseEvent (QMouseEvent *event) override
 
void paintEvent (QPaintEvent *event) override
 
void resizeEvent (QResizeEvent *event) override
 
+

Detailed Description

+
+

Definition at line 28 of file PaintingArea.h.

+

Constructor & Destructor Documentation

+ +

◆ PaintingArea()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
PaintingArea::PaintingArea (int maxWidth = 600,
int maxHeight = 600,
QWidget * parent = nullptr 
)
+
+ +

Definition at line 17 of file PaintingArea.cpp.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ ~PaintingArea()

+ +
+
+ + + + + + + +
PaintingArea::~PaintingArea ()
+
+ +

Definition at line 38 of file PaintingArea.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ addLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int PaintingArea::addLayer (int width,
int height,
int widthOffset = 0,
int heightOffset = 0,
ImageType type = ImageType::Raster_Image 
)
+
+ +

Definition at line 53 of file PaintingArea.cpp.

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ addLayerAt()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int PaintingArea::addLayerAt (int idx,
int width,
int height,
int widthOffset = 0,
int heightOffset = 0,
ImageType type = ImageType::Raster_Image 
)
+
+ +
+
+ +

◆ colorPickerSetFirstColor()

+ +
+
+ + + + + + + +
void PaintingArea::colorPickerSetFirstColor ()
+
+ +

Definition at line 163 of file PaintingArea.cpp.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ colorPickerSetSecondColor()

+ +
+
+ + + + + + + +
void PaintingArea::colorPickerSetSecondColor ()
+
+ +

Definition at line 168 of file PaintingArea.cpp.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ colorPickerSwitchColor()

+ +
+
+ + + + + + + +
void PaintingArea::colorPickerSwitchColor ()
+
+ +

Definition at line 173 of file PaintingArea.cpp.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ createLineTool()

+ +
+
+ + + + + + + +
void PaintingArea::createLineTool ()
+
+ +

Definition at line 187 of file PaintingArea.cpp.

+ +
+
+ +

◆ createPenTool()

+ +
+
+ + + + + + + +
void PaintingArea::createPenTool ()
+
+ +

Definition at line 177 of file PaintingArea.cpp.

+ +
+
+ +

◆ createPlainTool()

+ +
+
+ + + + + + + +
void PaintingArea::createPlainTool ()
+
+ +

Definition at line 182 of file PaintingArea.cpp.

+ +
+
+ +

◆ deleteLayer()

+ +
+
+ + + + + + + + +
void PaintingArea::deleteLayer (int index)
+
+ +

Definition at line 70 of file PaintingArea.cpp.

+ +
+
+ +

◆ floodFill()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void PaintingArea::floodFill (int r,
int g,
int b,
int a 
)
+
+ +

Definition at line 135 of file PaintingArea.cpp.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ mouseMoveEvent()

+ +
+
+ + + + + +
+ + + + + + + + +
void PaintingArea::mouseMoveEvent (QMouseEvent * event)
+
+overrideprotected
+
+ +

Definition at line 211 of file PaintingArea.cpp.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ mousePressEvent()

+ +
+
+ + + + + +
+ + + + + + + + +
void PaintingArea::mousePressEvent (QMouseEvent * event)
+
+overrideprotected
+
+ +

Definition at line 195 of file PaintingArea.cpp.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ mouseReleaseEvent()

+ +
+
+ + + + + +
+ + + + + + + + +
void PaintingArea::mouseReleaseEvent (QMouseEvent * event)
+
+overrideprotected
+
+ +

Definition at line 221 of file PaintingArea.cpp.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ moveActiveLayer()

+ +
+
+ + + + + + + + +
void PaintingArea::moveActiveLayer (int idx)
+
+ +

Definition at line 149 of file PaintingArea.cpp.

+ +
+
+ +

◆ movePositionActive()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void PaintingArea::movePositionActive (int x,
int y 
)
+
+ +

Definition at line 144 of file PaintingArea.cpp.

+ +
+
+ +

◆ open()

+ +
+
+ + + + + + + + +
bool PaintingArea::open (const QString & fileName)
+
+ +

Definition at line 99 of file PaintingArea.cpp.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ paintEvent()

+ +
+
+ + + + + +
+ + + + + + + + +
void PaintingArea::paintEvent (QPaintEvent * event)
+
+overrideprotected
+
+ +

Definition at line 237 of file PaintingArea.cpp.

+ +
+
+ +

◆ resizeEvent()

+ +
+
+ + + + + +
+ + + + + + + + +
void PaintingArea::resizeEvent (QResizeEvent * event)
+
+overrideprotected
+
+ +

Definition at line 248 of file PaintingArea.cpp.

+ +
+
+ +

◆ save()

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool PaintingArea::save (const QString & fileName,
const char * fileFormat 
)
+
+ +

Definition at line 111 of file PaintingArea.cpp.

+ +
+
+ +

◆ setAlphaOfLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void PaintingArea::setAlphaOfLayer (int index,
int alpha 
)
+
+ +

Definition at line 92 of file PaintingArea.cpp.

+ +
+
+ +

◆ setLayerToActive()

+ +
+
+ + + + + + + + +
void PaintingArea::setLayerToActive (int index)
+
+ +

Definition at line 86 of file PaintingArea.cpp.

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ slotActivateLayer

+ +
+
+ + + + + +
+ + + + + + + + +
void PaintingArea::slotActivateLayer (int a)
+
+slot
+
+ +

Definition at line 157 of file PaintingArea.cpp.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ slotDeleteActiveLayer

+ +
+
+ + + + + +
+ + + + + + + +
void PaintingArea::slotDeleteActiveLayer ()
+
+slot
+
+ +

Definition at line 79 of file PaintingArea.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/html/class_painting_area.js b/docs/html/class_painting_area.js new file mode 100644 index 0000000..a61b66a --- /dev/null +++ b/docs/html/class_painting_area.js @@ -0,0 +1,28 @@ +var class_painting_area = +[ + [ "PaintingArea", "class_painting_area.html#a4fa0ec23e78cc59f28c823584c721460", null ], + [ "~PaintingArea", "class_painting_area.html#a5654e04fb8e8c5595a2aae76e9163e0e", null ], + [ "addLayer", "class_painting_area.html#a39ad76e1319659bfa38eee88ef33d395", null ], + [ "addLayerAt", "class_painting_area.html#ae756003b49aead863b49616ea7a44cc0", null ], + [ "colorPickerSetFirstColor", "class_painting_area.html#a4735d4cf1dc58a9096d904e74c39c4df", null ], + [ "colorPickerSetSecondColor", "class_painting_area.html#ae261acaaa346610dfed489dbac17e789", null ], + [ "colorPickerSwitchColor", "class_painting_area.html#a66115307ff4a99cd7ca16423c5c8ecfb", null ], + [ "createLineTool", "class_painting_area.html#a240c33a7875addac86080cdfb0db036a", null ], + [ "createPenTool", "class_painting_area.html#a96c6248e343e44b61cf2625cb6d21353", null ], + [ "createPlainTool", "class_painting_area.html#a3de83443d2d5cf460ff48d0602070938", null ], + [ "deleteLayer", "class_painting_area.html#a6efad6f8ea060674b157b42b431cd173", null ], + [ "floodFill", "class_painting_area.html#aeb5eb394b979ea90f2be9849fdda1774", null ], + [ "mouseMoveEvent", "class_painting_area.html#aa22e274b6094a9619f196cd7b49526b5", null ], + [ "mousePressEvent", "class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15", null ], + [ "mouseReleaseEvent", "class_painting_area.html#a35b5df914acb608cc29717659793359c", null ], + [ "moveActiveLayer", "class_painting_area.html#ae05f6893fb44bfcb34018573a609cd1a", null ], + [ "movePositionActive", "class_painting_area.html#ac6d089f4357b22d9a9906fd4771de3e7", null ], + [ "open", "class_painting_area.html#a1f597740b4d7b4bc2e24c51f8cb0b6eb", null ], + [ "paintEvent", "class_painting_area.html#a4a8138b9508ee4ec87a7fca9160368a7", null ], + [ "resizeEvent", "class_painting_area.html#ab57e8ccda60fff7187463a90e65c5335", null ], + [ "save", "class_painting_area.html#a612176cc9d629d22fd3fe1a746cce564", null ], + [ "setAlphaOfLayer", "class_painting_area.html#aec59be20f1c27135700754882dd6383d", null ], + [ "setLayerToActive", "class_painting_area.html#a1d6d86c25efdce9fe9031a9cd01c74c8", null ], + [ "slotActivateLayer", "class_painting_area.html#a71ac281e0de263208d4a3b9de74258ec", null ], + [ "slotDeleteActiveLayer", "class_painting_area.html#a1ff0b9c1227531943c9cec2c546fae5e", null ] +]; \ No newline at end of file diff --git a/docs/html/class_painting_area__coll__graph.dot b/docs/html/class_painting_area__coll__graph.dot new file mode 100644 index 0000000..bbbc79f --- /dev/null +++ b/docs/html/class_painting_area__coll__graph.dot @@ -0,0 +1,9 @@ +digraph "PaintingArea" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; +} diff --git a/docs/html/class_painting_area__inherit__graph.dot b/docs/html/class_painting_area__inherit__graph.dot new file mode 100644 index 0000000..bbbc79f --- /dev/null +++ b/docs/html/class_painting_area__inherit__graph.dot @@ -0,0 +1,9 @@ +digraph "PaintingArea" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; +} diff --git a/docs/html/class_painting_area_a1d6d86c25efdce9fe9031a9cd01c74c8_icgraph.dot b/docs/html/class_painting_area_a1d6d86c25efdce9fe9031a9cd01c74c8_icgraph.dot new file mode 100644 index 0000000..4954290 --- /dev/null +++ b/docs/html/class_painting_area_a1d6d86c25efdce9fe9031a9cd01c74c8_icgraph.dot @@ -0,0 +1,10 @@ +digraph "PaintingArea::setLayerToActive" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="PaintingArea::setLayerTo\lActive",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="PaintingArea::slotActivate\lLayer",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a71ac281e0de263208d4a3b9de74258ec",tooltip=" "]; +} diff --git a/docs/html/class_painting_area_a1f597740b4d7b4bc2e24c51f8cb0b6eb_cgraph.dot b/docs/html/class_painting_area_a1f597740b4d7b4bc2e24c51f8cb0b6eb_cgraph.dot new file mode 100644 index 0000000..13c4fcf --- /dev/null +++ b/docs/html/class_painting_area_a1f597740b4d7b4bc2e24c51f8cb0b6eb_cgraph.dot @@ -0,0 +1,12 @@ +digraph "PaintingArea::open" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="PaintingArea::open",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliImage::loadImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aec0e9c8184d89dee33fd9adefbd2f8aa",tooltip=" "]; +} diff --git a/docs/html/class_painting_area_a35b5df914acb608cc29717659793359c_cgraph.dot b/docs/html/class_painting_area_a35b5df914acb608cc29717659793359c_cgraph.dot new file mode 100644 index 0000000..b51a889 --- /dev/null +++ b/docs/html/class_painting_area_a35b5df914acb608cc29717659793359c_cgraph.dot @@ -0,0 +1,14 @@ +digraph "PaintingArea::mouseReleaseEvent" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="PaintingArea::mouseRelease\lEvent",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip=" "]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliTool::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0",tooltip=" "]; +} diff --git a/docs/html/class_painting_area_a39ad76e1319659bfa38eee88ef33d395_icgraph.dot b/docs/html/class_painting_area_a39ad76e1319659bfa38eee88ef33d395_icgraph.dot new file mode 100644 index 0000000..1f5dc6b --- /dev/null +++ b/docs/html/class_painting_area_a39ad76e1319659bfa38eee88ef33d395_icgraph.dot @@ -0,0 +1,10 @@ +digraph "PaintingArea::addLayer" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="PaintingArea::addLayer",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="PaintingArea::PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a4fa0ec23e78cc59f28c823584c721460",tooltip=" "]; +} diff --git a/docs/html/class_painting_area_a4735d4cf1dc58a9096d904e74c39c4df_cgraph.dot b/docs/html/class_painting_area_a4735d4cf1dc58a9096d904e74c39c4df_cgraph.dot new file mode 100644 index 0000000..5e93f3d --- /dev/null +++ b/docs/html/class_painting_area_a4735d4cf1dc58a9096d904e74c39c4df_cgraph.dot @@ -0,0 +1,12 @@ +digraph "PaintingArea::colorPickerSetFirstColor" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="PaintingArea::colorPicker\lSetFirstColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7",tooltip=" "]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliColorPicker\l::setFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#a7e2ddbbbfbed383f06b24e5bf6b27ae8",tooltip=" "]; +} diff --git a/docs/html/class_painting_area_a4fa0ec23e78cc59f28c823584c721460_cgraph.dot b/docs/html/class_painting_area_a4fa0ec23e78cc59f28c823584c721460_cgraph.dot new file mode 100644 index 0000000..565e40e --- /dev/null +++ b/docs/html/class_painting_area_a4fa0ec23e78cc59f28c823584c721460_cgraph.dot @@ -0,0 +1,10 @@ +digraph "PaintingArea::PaintingArea" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="PaintingArea::PaintingArea",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="PaintingArea::addLayer",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a39ad76e1319659bfa38eee88ef33d395",tooltip=" "]; +} diff --git a/docs/html/class_painting_area_a66115307ff4a99cd7ca16423c5c8ecfb_cgraph.dot b/docs/html/class_painting_area_a66115307ff4a99cd7ca16423c5c8ecfb_cgraph.dot new file mode 100644 index 0000000..1b4d1e4 --- /dev/null +++ b/docs/html/class_painting_area_a66115307ff4a99cd7ca16423c5c8ecfb_cgraph.dot @@ -0,0 +1,10 @@ +digraph "PaintingArea::colorPickerSwitchColor" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="PaintingArea::colorPicker\lSwitchColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliColorPicker\l::switchColors",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#a437a6f20bf2fc0a4cbaf4c030c2a26d9",tooltip=" "]; +} diff --git a/docs/html/class_painting_area_a71ac281e0de263208d4a3b9de74258ec_cgraph.dot b/docs/html/class_painting_area_a71ac281e0de263208d4a3b9de74258ec_cgraph.dot new file mode 100644 index 0000000..fe57809 --- /dev/null +++ b/docs/html/class_painting_area_a71ac281e0de263208d4a3b9de74258ec_cgraph.dot @@ -0,0 +1,10 @@ +digraph "PaintingArea::slotActivateLayer" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="PaintingArea::slotActivate\lLayer",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="PaintingArea::setLayerTo\lActive",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a1d6d86c25efdce9fe9031a9cd01c74c8",tooltip=" "]; +} diff --git a/docs/html/class_painting_area_aa22e274b6094a9619f196cd7b49526b5_cgraph.dot b/docs/html/class_painting_area_aa22e274b6094a9619f196cd7b49526b5_cgraph.dot new file mode 100644 index 0000000..ec74f07 --- /dev/null +++ b/docs/html/class_painting_area_aa22e274b6094a9619f196cd7b49526b5_cgraph.dot @@ -0,0 +1,12 @@ +digraph "PaintingArea::mouseMoveEvent" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="PaintingArea::mouseMoveEvent",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639",tooltip=" "]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; +} diff --git a/docs/html/class_painting_area_abfe445f8d9b70ae42bfeda874127dd15_cgraph.dot b/docs/html/class_painting_area_abfe445f8d9b70ae42bfeda874127dd15_cgraph.dot new file mode 100644 index 0000000..4cc4e86 --- /dev/null +++ b/docs/html/class_painting_area_abfe445f8d9b70ae42bfeda874127dd15_cgraph.dot @@ -0,0 +1,14 @@ +digraph "PaintingArea::mousePressEvent" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="PaintingArea::mousePress\lEvent",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c",tooltip=" "]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliTool::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966",tooltip=" "]; +} diff --git a/docs/html/class_painting_area_ae261acaaa346610dfed489dbac17e789_cgraph.dot b/docs/html/class_painting_area_ae261acaaa346610dfed489dbac17e789_cgraph.dot new file mode 100644 index 0000000..920ebf9 --- /dev/null +++ b/docs/html/class_painting_area_ae261acaaa346610dfed489dbac17e789_cgraph.dot @@ -0,0 +1,12 @@ +digraph "PaintingArea::colorPickerSetSecondColor" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="PaintingArea::colorPicker\lSetSecondColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliColorPicker\l::getSecondColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#a55568fbf5dc783f06284b7031ffe9415",tooltip=" "]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliColorPicker\l::setSecondColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#a86bf4a940e4a0e465e30cbdf28748931",tooltip=" "]; +} diff --git a/docs/html/class_painting_area_aeb5eb394b979ea90f2be9849fdda1774_cgraph.dot b/docs/html/class_painting_area_aeb5eb394b979ea90f2be9849fdda1774_cgraph.dot new file mode 100644 index 0000000..3549afb --- /dev/null +++ b/docs/html/class_painting_area_aeb5eb394b979ea90f2be9849fdda1774_cgraph.dot @@ -0,0 +1,10 @@ +digraph "PaintingArea::floodFill" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="PaintingArea::floodFill",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliImage::drawPlain",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#a6be622810dc2bc756054bb5769becb06",tooltip=" "]; +} diff --git a/docs/html/classes.html b/docs/html/classes.html new file mode 100644 index 0000000..9a2a8a6 --- /dev/null +++ b/docs/html/classes.html @@ -0,0 +1,133 @@ + + + + + + + +IntelliPhoto: Class Index + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class Index
+
+
+
i | l | p
+ + + + + + + + + + + + + + + + + + + + + + + +
  i  
+
IntelliImage   IntelliTool   
  l  
+
IntelliPhotoGui   IntelliToolLine   
IntelliColorPicker   IntelliRasterImage   IntelliToolPen   LayerObject   
IntelliHelper   IntelliShapedImage   IntelliToolPlainTool   
  p  
+
PaintingArea   
+
i | l | p
+
+
+ + + + diff --git a/docs/html/closed.png b/docs/html/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..fdc04acee8c95ea87ee86c17cb47b250a842cce3 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{VZk{fVAr*{o@80BPP~>pExO%Er zs?Tyi14YJ1L5&Y + + + + + + +IntelliPhoto: src -> GUI Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+

src → GUI Relation

File in srcIncludes file in src/GUI
main.cppIntelliPhotoGui.h
+
+ + + + diff --git a/docs/html/dir_000001_000005.html b/docs/html/dir_000001_000005.html new file mode 100644 index 0000000..ca025a1 --- /dev/null +++ b/docs/html/dir_000001_000005.html @@ -0,0 +1,101 @@ + + + + + + + +IntelliPhoto: src/GUI -> Layer Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+

GUI → Layer Relation

File in src/GUIIncludes file in src/Layer
IntelliPhotoGui.cppPaintingArea.h
+
+ + + + diff --git a/docs/html/dir_000002_000003.html b/docs/html/dir_000002_000003.html new file mode 100644 index 0000000..a5fe18e --- /dev/null +++ b/docs/html/dir_000002_000003.html @@ -0,0 +1,101 @@ + + + + + + + +IntelliPhoto: src/Image -> IntelliHelper Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+

Image → IntelliHelper Relation

File in src/ImageIncludes file in src/IntelliHelper
IntelliShapedImage.cppIntelliHelper.h
+
+ + + + diff --git a/docs/html/dir_000004_000003.html b/docs/html/dir_000004_000003.html new file mode 100644 index 0000000..d810518 --- /dev/null +++ b/docs/html/dir_000004_000003.html @@ -0,0 +1,101 @@ + + + + + + + +IntelliPhoto: src/Tool -> IntelliHelper Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+

Tool → IntelliHelper Relation

File in src/ToolIncludes file in src/IntelliHelper
IntelliColorPicker.cppIntelliColorPicker.h
IntelliTool.hIntelliColorPicker.h
+
+ + + + diff --git a/docs/html/dir_000004_000005.html b/docs/html/dir_000004_000005.html new file mode 100644 index 0000000..eeb3369 --- /dev/null +++ b/docs/html/dir_000004_000005.html @@ -0,0 +1,101 @@ + + + + + + + +IntelliPhoto: src/Tool -> Layer Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ + +
+ + + + diff --git a/docs/html/dir_000005_000002.html b/docs/html/dir_000005_000002.html new file mode 100644 index 0000000..47fa0a6 --- /dev/null +++ b/docs/html/dir_000005_000002.html @@ -0,0 +1,101 @@ + + + + + + + +IntelliPhoto: src/Layer -> Image Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/dir_000005_000003.html b/docs/html/dir_000005_000003.html new file mode 100644 index 0000000..69be38a --- /dev/null +++ b/docs/html/dir_000005_000003.html @@ -0,0 +1,101 @@ + + + + + + + +IntelliPhoto: src/Layer -> IntelliHelper Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+

Layer → IntelliHelper Relation

File in src/LayerIncludes file in src/IntelliHelper
PaintingArea.hIntelliColorPicker.h
+
+ + + + diff --git a/docs/html/dir_000005_000004.html b/docs/html/dir_000005_000004.html new file mode 100644 index 0000000..f3d0721 --- /dev/null +++ b/docs/html/dir_000005_000004.html @@ -0,0 +1,101 @@ + + + + + + + +IntelliPhoto: src/Layer -> Tool Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ + +
+ + + + diff --git a/docs/html/dir_13830bfc3dd6736fe878600c9081919f.html b/docs/html/dir_13830bfc3dd6736fe878600c9081919f.html new file mode 100644 index 0000000..58957e7 --- /dev/null +++ b/docs/html/dir_13830bfc3dd6736fe878600c9081919f.html @@ -0,0 +1,118 @@ + + + + + + + +IntelliPhoto: src/Layer Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Layer Directory Reference
+
+
+
+Directory dependency graph for Layer:
+
+
src/Layer
+
+ + + + + + +

+Files

file  PaintingArea.cpp [code]
 
file  PaintingArea.h [code]
 
+
+
+ + + + diff --git a/docs/html/dir_13830bfc3dd6736fe878600c9081919f.js b/docs/html/dir_13830bfc3dd6736fe878600c9081919f.js new file mode 100644 index 0000000..d438ee7 --- /dev/null +++ b/docs/html/dir_13830bfc3dd6736fe878600c9081919f.js @@ -0,0 +1,8 @@ +var dir_13830bfc3dd6736fe878600c9081919f = +[ + [ "PaintingArea.cpp", "_painting_area_8cpp.html", null ], + [ "PaintingArea.h", "_painting_area_8h.html", [ + [ "LayerObject", "struct_layer_object.html", "struct_layer_object" ], + [ "PaintingArea", "class_painting_area.html", "class_painting_area" ] + ] ] +]; \ No newline at end of file diff --git a/docs/html/dir_13830bfc3dd6736fe878600c9081919f_dep.dot b/docs/html/dir_13830bfc3dd6736fe878600c9081919f_dep.dot new file mode 100644 index 0000000..1ae7e6b --- /dev/null +++ b/docs/html/dir_13830bfc3dd6736fe878600c9081919f_dep.dot @@ -0,0 +1,18 @@ +digraph "src/Layer" { + compound=true + node [ fontsize="10", fontname="Helvetica"]; + edge [ labelfontsize="10", labelfontname="Helvetica"]; + subgraph clusterdir_68267d1309a1af8e8297ef4c3efbcdba { + graph [ bgcolor="#ddddee", pencolor="black", label="src" fontname="Helvetica", fontsize="10", URL="dir_68267d1309a1af8e8297ef4c3efbcdba.html"] + dir_13830bfc3dd6736fe878600c9081919f [shape=box, label="Layer", style="filled", fillcolor="#eeeeff", pencolor="black", URL="dir_13830bfc3dd6736fe878600c9081919f.html"]; + } + dir_fdbdd9841f9a730f284bb666ff3d8cfe [shape=box label="Image" URL="dir_fdbdd9841f9a730f284bb666ff3d8cfe.html"]; + dir_858355f3357c73763e566ff49d1e6a7a [shape=box label="Tool" URL="dir_858355f3357c73763e566ff49d1e6a7a.html"]; + dir_8de6078cba2a961961818cf80b28fd4f [shape=box label="IntelliHelper" URL="dir_8de6078cba2a961961818cf80b28fd4f.html"]; + dir_fdbdd9841f9a730f284bb666ff3d8cfe->dir_8de6078cba2a961961818cf80b28fd4f [headlabel="1", labeldistance=1.5 headhref="dir_000002_000003.html"]; + dir_13830bfc3dd6736fe878600c9081919f->dir_fdbdd9841f9a730f284bb666ff3d8cfe [headlabel="5", labeldistance=1.5 headhref="dir_000005_000002.html"]; + dir_13830bfc3dd6736fe878600c9081919f->dir_858355f3357c73763e566ff49d1e6a7a [headlabel="4", labeldistance=1.5 headhref="dir_000005_000004.html"]; + dir_13830bfc3dd6736fe878600c9081919f->dir_8de6078cba2a961961818cf80b28fd4f [headlabel="1", labeldistance=1.5 headhref="dir_000005_000003.html"]; + dir_858355f3357c73763e566ff49d1e6a7a->dir_13830bfc3dd6736fe878600c9081919f [headlabel="4", labeldistance=1.5 headhref="dir_000004_000005.html"]; + dir_858355f3357c73763e566ff49d1e6a7a->dir_8de6078cba2a961961818cf80b28fd4f [headlabel="2", labeldistance=1.5 headhref="dir_000004_000003.html"]; +} diff --git a/docs/html/dir_4e4e2e75df7fa6971448b424c011c8b5.html b/docs/html/dir_4e4e2e75df7fa6971448b424c011c8b5.html new file mode 100644 index 0000000..95fda27 --- /dev/null +++ b/docs/html/dir_4e4e2e75df7fa6971448b424c011c8b5.html @@ -0,0 +1,118 @@ + + + + + + + +IntelliPhoto: src/GUI Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
GUI Directory Reference
+
+
+
+Directory dependency graph for GUI:
+
+
src/GUI
+
+ + + + + + +

+Files

file  IntelliPhotoGui.cpp [code]
 
file  IntelliPhotoGui.h [code]
 
+
+
+ + + + diff --git a/docs/html/dir_4e4e2e75df7fa6971448b424c011c8b5.js b/docs/html/dir_4e4e2e75df7fa6971448b424c011c8b5.js new file mode 100644 index 0000000..004f844 --- /dev/null +++ b/docs/html/dir_4e4e2e75df7fa6971448b424c011c8b5.js @@ -0,0 +1,7 @@ +var dir_4e4e2e75df7fa6971448b424c011c8b5 = +[ + [ "IntelliPhotoGui.cpp", "_intelli_photo_gui_8cpp.html", "_intelli_photo_gui_8cpp" ], + [ "IntelliPhotoGui.h", "_intelli_photo_gui_8h.html", [ + [ "IntelliPhotoGui", "class_intelli_photo_gui.html", "class_intelli_photo_gui" ] + ] ] +]; \ No newline at end of file diff --git a/docs/html/dir_4e4e2e75df7fa6971448b424c011c8b5_dep.dot b/docs/html/dir_4e4e2e75df7fa6971448b424c011c8b5_dep.dot new file mode 100644 index 0000000..ba0fbf9 --- /dev/null +++ b/docs/html/dir_4e4e2e75df7fa6971448b424c011c8b5_dep.dot @@ -0,0 +1,11 @@ +digraph "src/GUI" { + compound=true + node [ fontsize="10", fontname="Helvetica"]; + edge [ labelfontsize="10", labelfontname="Helvetica"]; + subgraph clusterdir_68267d1309a1af8e8297ef4c3efbcdba { + graph [ bgcolor="#ddddee", pencolor="black", label="src" fontname="Helvetica", fontsize="10", URL="dir_68267d1309a1af8e8297ef4c3efbcdba.html"] + dir_4e4e2e75df7fa6971448b424c011c8b5 [shape=box, label="GUI", style="filled", fillcolor="#eeeeff", pencolor="black", URL="dir_4e4e2e75df7fa6971448b424c011c8b5.html"]; + } + dir_13830bfc3dd6736fe878600c9081919f [shape=box label="Layer" URL="dir_13830bfc3dd6736fe878600c9081919f.html"]; + dir_4e4e2e75df7fa6971448b424c011c8b5->dir_13830bfc3dd6736fe878600c9081919f [headlabel="1", labeldistance=1.5 headhref="dir_000001_000005.html"]; +} diff --git a/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html new file mode 100644 index 0000000..da78dd7 --- /dev/null +++ b/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -0,0 +1,129 @@ + + + + + + + +IntelliPhoto: src Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
src Directory Reference
+
+
+
+Directory dependency graph for src:
+
+
src
+
+ + + + + + + + + + + + +

+Directories

directory  GUI
 
directory  Image
 
directory  IntelliHelper
 
directory  Layer
 
directory  Tool
 
+ + + +

+Files

file  main.cpp [code]
 
+
+
+ + + + diff --git a/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.js b/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.js new file mode 100644 index 0000000..eee6b10 --- /dev/null +++ b/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.js @@ -0,0 +1,9 @@ +var dir_68267d1309a1af8e8297ef4c3efbcdba = +[ + [ "GUI", "dir_4e4e2e75df7fa6971448b424c011c8b5.html", "dir_4e4e2e75df7fa6971448b424c011c8b5" ], + [ "Image", "dir_fdbdd9841f9a730f284bb666ff3d8cfe.html", "dir_fdbdd9841f9a730f284bb666ff3d8cfe" ], + [ "IntelliHelper", "dir_8de6078cba2a961961818cf80b28fd4f.html", "dir_8de6078cba2a961961818cf80b28fd4f" ], + [ "Layer", "dir_13830bfc3dd6736fe878600c9081919f.html", "dir_13830bfc3dd6736fe878600c9081919f" ], + [ "Tool", "dir_858355f3357c73763e566ff49d1e6a7a.html", "dir_858355f3357c73763e566ff49d1e6a7a" ], + [ "main.cpp", "main_8cpp.html", "main_8cpp" ] +]; \ No newline at end of file diff --git a/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.dot b/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.dot new file mode 100644 index 0000000..7a39786 --- /dev/null +++ b/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.dot @@ -0,0 +1,22 @@ +digraph "src" { + compound=true + node [ fontsize="10", fontname="Helvetica"]; + edge [ labelfontsize="10", labelfontname="Helvetica"]; + subgraph clusterdir_68267d1309a1af8e8297ef4c3efbcdba { + graph [ bgcolor="#eeeeff", pencolor="black", label="" URL="dir_68267d1309a1af8e8297ef4c3efbcdba.html"]; + dir_68267d1309a1af8e8297ef4c3efbcdba [shape=plaintext label="src"]; + dir_4e4e2e75df7fa6971448b424c011c8b5 [shape=box label="GUI" color="black" fillcolor="white" style="filled" URL="dir_4e4e2e75df7fa6971448b424c011c8b5.html"]; + dir_fdbdd9841f9a730f284bb666ff3d8cfe [shape=box label="Image" color="black" fillcolor="white" style="filled" URL="dir_fdbdd9841f9a730f284bb666ff3d8cfe.html"]; + dir_8de6078cba2a961961818cf80b28fd4f [shape=box label="IntelliHelper" color="black" fillcolor="white" style="filled" URL="dir_8de6078cba2a961961818cf80b28fd4f.html"]; + dir_13830bfc3dd6736fe878600c9081919f [shape=box label="Layer" color="black" fillcolor="white" style="filled" URL="dir_13830bfc3dd6736fe878600c9081919f.html"]; + dir_858355f3357c73763e566ff49d1e6a7a [shape=box label="Tool" color="black" fillcolor="white" style="filled" URL="dir_858355f3357c73763e566ff49d1e6a7a.html"]; + } + dir_68267d1309a1af8e8297ef4c3efbcdba->dir_4e4e2e75df7fa6971448b424c011c8b5 [headlabel="1", labeldistance=1.5 headhref="dir_000000_000001.html"]; + dir_fdbdd9841f9a730f284bb666ff3d8cfe->dir_8de6078cba2a961961818cf80b28fd4f [headlabel="1", labeldistance=1.5 headhref="dir_000002_000003.html"]; + dir_13830bfc3dd6736fe878600c9081919f->dir_fdbdd9841f9a730f284bb666ff3d8cfe [headlabel="5", labeldistance=1.5 headhref="dir_000005_000002.html"]; + dir_13830bfc3dd6736fe878600c9081919f->dir_858355f3357c73763e566ff49d1e6a7a [headlabel="4", labeldistance=1.5 headhref="dir_000005_000004.html"]; + dir_13830bfc3dd6736fe878600c9081919f->dir_8de6078cba2a961961818cf80b28fd4f [headlabel="1", labeldistance=1.5 headhref="dir_000005_000003.html"]; + dir_858355f3357c73763e566ff49d1e6a7a->dir_13830bfc3dd6736fe878600c9081919f [headlabel="4", labeldistance=1.5 headhref="dir_000004_000005.html"]; + dir_858355f3357c73763e566ff49d1e6a7a->dir_8de6078cba2a961961818cf80b28fd4f [headlabel="2", labeldistance=1.5 headhref="dir_000004_000003.html"]; + dir_4e4e2e75df7fa6971448b424c011c8b5->dir_13830bfc3dd6736fe878600c9081919f [headlabel="1", labeldistance=1.5 headhref="dir_000001_000005.html"]; +} diff --git a/docs/html/dir_858355f3357c73763e566ff49d1e6a7a.html b/docs/html/dir_858355f3357c73763e566ff49d1e6a7a.html new file mode 100644 index 0000000..736c158 --- /dev/null +++ b/docs/html/dir_858355f3357c73763e566ff49d1e6a7a.html @@ -0,0 +1,132 @@ + + + + + + + +IntelliPhoto: src/Tool Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Tool Directory Reference
+
+
+
+Directory dependency graph for Tool:
+
+
src/Tool
+
+ + + + + + + + + + + + + + + + + + + + +

+Files

file  IntelliColorPicker.cpp [code]
 
file  IntelliTool.cpp [code]
 
file  IntelliTool.h [code]
 
file  IntelliToolLine.cpp [code]
 
file  IntelliToolLine.h [code]
 
file  IntelliToolPen.cpp [code]
 
file  IntelliToolPen.h [code]
 
file  IntelliToolPlain.cpp [code]
 
file  IntelliToolPlain.h [code]
 
+
+
+ + + + diff --git a/docs/html/dir_858355f3357c73763e566ff49d1e6a7a.js b/docs/html/dir_858355f3357c73763e566ff49d1e6a7a.js new file mode 100644 index 0000000..0d86815 --- /dev/null +++ b/docs/html/dir_858355f3357c73763e566ff49d1e6a7a.js @@ -0,0 +1,18 @@ +var dir_858355f3357c73763e566ff49d1e6a7a = +[ + [ "IntelliColorPicker.cpp", "_tool_2_intelli_color_picker_8cpp.html", null ], + [ "IntelliTool.cpp", "_intelli_tool_8cpp.html", null ], + [ "IntelliTool.h", "_intelli_tool_8h.html", [ + [ "IntelliTool", "class_intelli_tool.html", "class_intelli_tool" ] + ] ], + [ "IntelliToolLine.cpp", "_intelli_tool_line_8cpp.html", null ], + [ "IntelliToolLine.h", "_intelli_tool_line_8h.html", "_intelli_tool_line_8h" ], + [ "IntelliToolPen.cpp", "_intelli_tool_pen_8cpp.html", null ], + [ "IntelliToolPen.h", "_intelli_tool_pen_8h.html", [ + [ "IntelliToolPen", "class_intelli_tool_pen.html", "class_intelli_tool_pen" ] + ] ], + [ "IntelliToolPlain.cpp", "_intelli_tool_plain_8cpp.html", null ], + [ "IntelliToolPlain.h", "_intelli_tool_plain_8h.html", [ + [ "IntelliToolPlainTool", "class_intelli_tool_plain_tool.html", "class_intelli_tool_plain_tool" ] + ] ] +]; \ No newline at end of file diff --git a/docs/html/dir_858355f3357c73763e566ff49d1e6a7a_dep.dot b/docs/html/dir_858355f3357c73763e566ff49d1e6a7a_dep.dot new file mode 100644 index 0000000..7b3fd36 --- /dev/null +++ b/docs/html/dir_858355f3357c73763e566ff49d1e6a7a_dep.dot @@ -0,0 +1,15 @@ +digraph "src/Tool" { + compound=true + node [ fontsize="10", fontname="Helvetica"]; + edge [ labelfontsize="10", labelfontname="Helvetica"]; + subgraph clusterdir_68267d1309a1af8e8297ef4c3efbcdba { + graph [ bgcolor="#ddddee", pencolor="black", label="src" fontname="Helvetica", fontsize="10", URL="dir_68267d1309a1af8e8297ef4c3efbcdba.html"] + dir_858355f3357c73763e566ff49d1e6a7a [shape=box, label="Tool", style="filled", fillcolor="#eeeeff", pencolor="black", URL="dir_858355f3357c73763e566ff49d1e6a7a.html"]; + } + dir_13830bfc3dd6736fe878600c9081919f [shape=box label="Layer" URL="dir_13830bfc3dd6736fe878600c9081919f.html"]; + dir_8de6078cba2a961961818cf80b28fd4f [shape=box label="IntelliHelper" URL="dir_8de6078cba2a961961818cf80b28fd4f.html"]; + dir_13830bfc3dd6736fe878600c9081919f->dir_858355f3357c73763e566ff49d1e6a7a [headlabel="4", labeldistance=1.5 headhref="dir_000005_000004.html"]; + dir_13830bfc3dd6736fe878600c9081919f->dir_8de6078cba2a961961818cf80b28fd4f [headlabel="1", labeldistance=1.5 headhref="dir_000005_000003.html"]; + dir_858355f3357c73763e566ff49d1e6a7a->dir_13830bfc3dd6736fe878600c9081919f [headlabel="4", labeldistance=1.5 headhref="dir_000004_000005.html"]; + dir_858355f3357c73763e566ff49d1e6a7a->dir_8de6078cba2a961961818cf80b28fd4f [headlabel="2", labeldistance=1.5 headhref="dir_000004_000003.html"]; +} diff --git a/docs/html/dir_8de6078cba2a961961818cf80b28fd4f.html b/docs/html/dir_8de6078cba2a961961818cf80b28fd4f.html new file mode 100644 index 0000000..b7d0117 --- /dev/null +++ b/docs/html/dir_8de6078cba2a961961818cf80b28fd4f.html @@ -0,0 +1,117 @@ + + + + + + + +IntelliPhoto: src/IntelliHelper Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliHelper Directory Reference
+
+
+ + + + + + + + + + +

+Files

file  IntelliColorPicker.cpp [code]
 
file  IntelliColorPicker.h [code]
 
file  IntelliHelper.cpp [code]
 
file  IntelliHelper.h [code]
 
+
+
+ + + + diff --git a/docs/html/dir_8de6078cba2a961961818cf80b28fd4f.js b/docs/html/dir_8de6078cba2a961961818cf80b28fd4f.js new file mode 100644 index 0000000..6cabcb9 --- /dev/null +++ b/docs/html/dir_8de6078cba2a961961818cf80b28fd4f.js @@ -0,0 +1,11 @@ +var dir_8de6078cba2a961961818cf80b28fd4f = +[ + [ "IntelliColorPicker.cpp", "_intelli_helper_2_intelli_color_picker_8cpp.html", null ], + [ "IntelliColorPicker.h", "_intelli_color_picker_8h.html", [ + [ "IntelliColorPicker", "class_intelli_color_picker.html", "class_intelli_color_picker" ] + ] ], + [ "IntelliHelper.cpp", "_intelli_helper_8cpp.html", null ], + [ "IntelliHelper.h", "_intelli_helper_8h.html", [ + [ "IntelliHelper", "class_intelli_helper.html", null ] + ] ] +]; \ No newline at end of file diff --git a/docs/html/dir_fdbdd9841f9a730f284bb666ff3d8cfe.html b/docs/html/dir_fdbdd9841f9a730f284bb666ff3d8cfe.html new file mode 100644 index 0000000..538b969 --- /dev/null +++ b/docs/html/dir_fdbdd9841f9a730f284bb666ff3d8cfe.html @@ -0,0 +1,126 @@ + + + + + + + +IntelliPhoto: src/Image Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Image Directory Reference
+
+
+
+Directory dependency graph for Image:
+
+
src/Image
+
+ + + + + + + + + + + + + + +

+Files

file  IntelliImage.cpp [code]
 
file  IntelliImage.h [code]
 
file  IntelliRasterImage.cpp [code]
 
file  IntelliRasterImage.h [code]
 
file  IntelliShapedImage.cpp [code]
 
file  IntelliShapedImage.h [code]
 
+
+
+ + + + diff --git a/docs/html/dir_fdbdd9841f9a730f284bb666ff3d8cfe.js b/docs/html/dir_fdbdd9841f9a730f284bb666ff3d8cfe.js new file mode 100644 index 0000000..fe8f755 --- /dev/null +++ b/docs/html/dir_fdbdd9841f9a730f284bb666ff3d8cfe.js @@ -0,0 +1,13 @@ +var dir_fdbdd9841f9a730f284bb666ff3d8cfe = +[ + [ "IntelliImage.cpp", "_intelli_image_8cpp.html", null ], + [ "IntelliImage.h", "_intelli_image_8h.html", "_intelli_image_8h" ], + [ "IntelliRasterImage.cpp", "_intelli_raster_image_8cpp.html", null ], + [ "IntelliRasterImage.h", "_intelli_raster_image_8h.html", [ + [ "IntelliRasterImage", "class_intelli_raster_image.html", "class_intelli_raster_image" ] + ] ], + [ "IntelliShapedImage.cpp", "_intelli_shaped_image_8cpp.html", null ], + [ "IntelliShapedImage.h", "_intelli_shaped_image_8h.html", [ + [ "IntelliShapedImage", "class_intelli_shaped_image.html", "class_intelli_shaped_image" ] + ] ] +]; \ No newline at end of file diff --git a/docs/html/dir_fdbdd9841f9a730f284bb666ff3d8cfe_dep.dot b/docs/html/dir_fdbdd9841f9a730f284bb666ff3d8cfe_dep.dot new file mode 100644 index 0000000..8331018 --- /dev/null +++ b/docs/html/dir_fdbdd9841f9a730f284bb666ff3d8cfe_dep.dot @@ -0,0 +1,11 @@ +digraph "src/Image" { + compound=true + node [ fontsize="10", fontname="Helvetica"]; + edge [ labelfontsize="10", labelfontname="Helvetica"]; + subgraph clusterdir_68267d1309a1af8e8297ef4c3efbcdba { + graph [ bgcolor="#ddddee", pencolor="black", label="src" fontname="Helvetica", fontsize="10", URL="dir_68267d1309a1af8e8297ef4c3efbcdba.html"] + dir_fdbdd9841f9a730f284bb666ff3d8cfe [shape=box, label="Image", style="filled", fillcolor="#eeeeff", pencolor="black", URL="dir_fdbdd9841f9a730f284bb666ff3d8cfe.html"]; + } + dir_8de6078cba2a961961818cf80b28fd4f [shape=box label="IntelliHelper" URL="dir_8de6078cba2a961961818cf80b28fd4f.html"]; + dir_fdbdd9841f9a730f284bb666ff3d8cfe->dir_8de6078cba2a961961818cf80b28fd4f [headlabel="1", labeldistance=1.5 headhref="dir_000002_000003.html"]; +} diff --git a/docs/html/doc.png b/docs/html/doc.png new file mode 100644 index 0000000000000000000000000000000000000000..e84122d7fad85f2d761039a8c021bbbd27db987c GIT binary patch literal 707 zcmV;!0zCbRP)Y!m1{9QR|9LeG2;k(}!_o;)A%ii6syfVuH0% z6of?n^nSOYiE_s-8W&wmIAO@#`<;8fbG~6~^?E&k7lRG(l6Y|f7vL$*&dz(CPMe2^ z2mQO#>Ck92Xx!fu85v=Cc$i2eLM#>|9*$;jq2t6;x)zwe^Jv%$A4pZXd z;vz69fgaelql;UXkl30;6bQ-XWmT^clDWBgX(`v&*G7^+0>`nn64!O~y{H))8X}~W zc%H}M;UW9``y3q|(P}lR)oK6(FnUm}R{e>I39UdjN^xmXyHubuG;($k=z!u5rm zIz@87v9ZD8;-VtVFgZC%G#W(`*KV5$0u@McxsH#&Q7)g8OeU4NKeW-Rg)A(jb@A!x zX}aC6B4`5);MqwQ6|1Xn$mMdZtgNuP`Ch45Wq0>8nM{U6BB2R|2*89u1-~O|sneG! zs;swKE$Vl5ytqd)k)%?oaC39R_V!2JJ^&K}6-e%-O;b}-r03J*vRSsaKJa#Zotc?e zWV7$s+4=NmAOTDWRM7W9dr&EpQXW*RmjfQ8)9Ggk{+c4~fja&2^0LtbiLi7+kf$?x2Mpn0gLK^>noK#08e3TQMcP8pU-o0@?8}U0|cVkY^gTQv$yvJ pU;st})duU}-~iyC@&Es2{sIPK!!F9gJO2Ox002ovPDHLkV1nz^Nxc97 literal 0 HcmV?d00001 diff --git a/docs/html/doxygen.css b/docs/html/doxygen.css new file mode 100644 index 0000000..8d4bca1 --- /dev/null +++ b/docs/html/doxygen.css @@ -0,0 +1,1766 @@ +/* The standard CSS for doxygen 1.8.16 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +p.reference, p.definition { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #A9A9A9; + color: #585858; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #F1F1F1; + border: 1px solid #BDBDBD; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #646465; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #747475; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #B8B8B8; + color: #FFFFFF; + border: 1px double #A8A8A8; +} + +.contents a.qindexHL:visited { + color: #FFFFFF; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #747475; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #747475; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid #D5D5D5; + background-color: #FCFCFC; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + background-color: #FCFCFC; + border: 1px solid #D5D5D5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #FFFFFF; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #F1F1F1; + font-weight: bold; + border: 1px solid #D5D5D5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #F1F1F1; + border: 1px solid #D5D5D5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #F2F2F2; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F9F9F9; + border-left: 2px solid #B8B8B8; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +blockquote.DocNodeRTL { + border-left: 0; + border-right: 2px solid #B8B8B8; + margin: 0 4px 0 24px; + padding: 0 16px 0 12px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #BDBDBD; +} + +th.dirtab { + background: #F1F1F1; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #7A7A7A; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #FAFAFB; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #E7E7E7; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #747475; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid #C0C0C1; + border-left: 1px solid #C0C0C1; + border-right: 1px solid #C0C0C1; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #EAEAEA; + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: #747475; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #F1F1F1; + border: 1px solid #BDBDBD; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #C0C0C1; + border-left: 1px solid #C0C0C1; + border-right: 1px solid #C0C0C1; + padding: 6px 0px 6px 0px; + color: #3D3D3D; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-color: #E8E8E8; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + +} + +.overload { + font-family: "courier new",courier,monospace; + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #C0C0C1; + border-left: 1px solid #C0C0C1; + border-right: 1px solid #C0C0C1; + padding: 6px 10px 2px 10px; + background-color: #FCFCFC; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #999A9A; + border-top:1px solid #838384; + border-left:1px solid #838384; + border-right:1px solid #D5D5D5; + border-bottom:1px solid #D5D5D5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #B8B8B8; + border-bottom: 1px solid #B8B8B8; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F9F9F9; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #646465; +} + +.arrow { + color: #B8B8B8; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #999A9A; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #464646; +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #4A4A4B; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #5B5B5C; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #C0C0C1; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #C0C0C1; + border-bottom: 1px solid #C0C0C1; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #C0C0C1; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #EAEAEA; + font-size: 90%; + color: #3D3D3D; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #C0C0C1; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#AAABAB; + border:solid 1px #D3D3D3; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#595959; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #424243; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#929293; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#595959; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #FAFAFB; + margin: 0px; + border-bottom: 1px solid #D5D5D5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.section.DocNodeRTL { + margin-right: 0px; + padding-right: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.note.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.deprecated.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.todo.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.test.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.bug.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #838384; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #AFAFAF; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#545454; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F7F7F7; + border: 1px solid #E3E3E3; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +.PageDocRTL-title div.toc { + float: left !important; + text-align: right; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +.PageDocRTL-title div.toc li { + background-position-x: right !important; + padding-left: 0 !important; + padding-right: 10px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #747475; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.PageDocRTL-title div.toc li.level1 { + margin-left: 0 !important; + margin-right: 0; +} + +.PageDocRTL-title div.toc li.level2 { + margin-left: 0 !important; + margin-right: 15px; +} + +.PageDocRTL-title div.toc li.level3 { + margin-left: 0 !important; + margin-right: 30px; +} + +.PageDocRTL-title div.toc li.level4 { + margin-left: 0 !important; + margin-right: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +/* +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #4A4A4B; + padding: 3px 7px 2px; +} + +table.markdownTableHead tr { +} + +table.markdownTableBodyLeft td, table.markdownTable th { + border: 1px solid #4A4A4B; + padding: 3px 7px 2px; +} + +th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone { + background-color: #5B5B5C; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft { + text-align: left +} + +th.markdownTableHeadRight { + text-align: right +} + +th.markdownTableHeadCenter { + text-align: center +} +*/ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #4A4A4B; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #5B5B5C; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +.DocNodeRTL { + text-align: right; + direction: rtl; +} + +.DocNodeLTR { + text-align: left; + direction: ltr; +} + +table.DocNodeRTL { + width: auto; + margin-right: 0; + margin-left: auto; +} + +table.DocNodeLTR { + width: auto; + margin-right: auto; + margin-left: 0; +} + +tt, code, kbd, samp +{ + display: inline-block; + direction:ltr; +} +/* @end */ + +u { + text-decoration: underline; +} + diff --git a/docs/html/doxygen.png b/docs/html/doxygen.png new file mode 100644 index 0000000000000000000000000000000000000000..0fbd8cc92f2698ce9d412b7935836ca3e0a3d396 GIT binary patch literal 3778 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 + + + + + + +IntelliPhoto: File List + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/files_dup.js b/docs/html/files_dup.js new file mode 100644 index 0000000..c3b39c4 --- /dev/null +++ b/docs/html/files_dup.js @@ -0,0 +1,4 @@ +var files_dup = +[ + [ "src", "dir_68267d1309a1af8e8297ef4c3efbcdba.html", "dir_68267d1309a1af8e8297ef4c3efbcdba" ] +]; \ No newline at end of file diff --git a/docs/html/folderclosed.png b/docs/html/folderclosed.png new file mode 100644 index 0000000000000000000000000000000000000000..5a4dbc68cd321cfe967b09d56fe05f469f84eb57 GIT binary patch literal 554 zcmV+_0@eMAP){9#6#gvO>WR2h0aMbt{G@Pr2bShp@(|>u$}==xSVPE=uFUC4j3wt@*)kHSO><5e zI>`EtWXbuy`{`bkH7JS#08R!00H?&s1)2bGh}CLU+-)`h_WjfOIcBq2003`+SAfZT zaa_L#L4eKuJqrN9n-Cl(dAVE`+wB%{+^fm?n}?qd&O48GRXQQ!LECB5L zkDHstd_G4MMT9f7S}i^A_xsw_$6k-bV|3bWbUGchKhQ|?Znulu^)05;>Gi8e^!WIT zW2z%FQSb5`0X+phlIGkLtt%g};B>F7Qc9DV zV`c)5T2HEdle#hh7WY@Y*8!7DxsS-WC>_`$`vMVyLZCGOPCpi)kIWI-$77tRLe+Vw zZB*jETgT%7$aXs|WJK)Jl#&DvO0+Cr={WkW04MAD=}8}fAu^+#R9l1Jg<$bA`L8B9 z&!x@*6SI&I!ufIOIjsS(dgJdLaLcj`vMNRI!LqALw5Asg062oTiq>~)=N__&Y!`=D zNBAxT00&1`MI3kEPbZV~>%~Pn9*xq`aF`AWg8}19nj{I0gLFuHygwd~^|urHnqj}GYGxdMQHh5!FQ+Q|i80Mni*P&^b6l>h($07*qoM6N<$f?|vSEdT%j literal 0 HcmV?d00001 diff --git a/docs/html/folderopen.png b/docs/html/folderopen.png new file mode 100644 index 0000000000000000000000000000000000000000..4e3bff82d528431d76773e05a51df8927791eab4 GIT binary patch literal 571 zcmV-B0>u4^P)W{a6#fziwNgR?YRi-i5NNaK2GjNQ8q?(*BE3iF8s!Q_J^@m@K}@Bxno4xTPcrWr z3<(Jgi|L|LiJzWrIp6m_`*YYDNs<7-yM+k=?-?JTzyg4x7>~!vXf#3`Clm`T7BPI^ zM-a3O05~*u5-@nRT1BZ;f)GN@4F&@|Jv}N{usICFfN7ePO`0<$a&p69`JT?!A5W5c#>9336w?QMcir*jJc+hJ_mwAbq;lgUJZ>PnXxv{kXH zTF=Kxtg>EndUA^E>+cyQIRy{>e$;MvRJD~#MP<+9%$2*VT!vG2;Fc+q3diQYi z(N`fyz%R__Gs;B3`<*%qRrLx`E6_!7VMSk^yaHM^o6SgpwE>_<_ZbL4rp1bUV~D*j zy1V<8u>aZLX%}tx)tDY8*IV@Z=M^_MKQb;VRIt3c^Nb~Re|wy!Jm?J8(o%ps!Bc?g zHUA{|{rn7I(=@0CEb4RS`v4%*au#-{O1k>86$G;JwIQ30hOGO(^y_tb{^gvq zFI&wfMN78ZfxNu9kYO0gCe77qwfnsa2>d4i{IB@@M+1Pp@fQ{17wcX>`EmdN002ov JPDHLkV1hAW`;Gtr literal 0 HcmV?d00001 diff --git a/docs/html/functions.html b/docs/html/functions.html new file mode 100644 index 0000000..3432b93 --- /dev/null +++ b/docs/html/functions.html @@ -0,0 +1,415 @@ + + + + + + + +IntelliPhoto: Class Members + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all class members with links to the classes they belong to:
+ +

- a -

+ + +

- c -

+ + +

- d -

+ + +

- f -

+ + +

- g -

+ + +

- h -

+ + +

- i -

+ + +

- l -

+ + +

- m -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- w -

+ + +

- ~ -

+
+
+ + + + diff --git a/docs/html/functions_func.html b/docs/html/functions_func.html new file mode 100644 index 0000000..e3aab9f --- /dev/null +++ b/docs/html/functions_func.html @@ -0,0 +1,368 @@ + + + + + + + +IntelliPhoto: Class Members - Functions + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- a -

+ + +

- c -

+ + +

- d -

+ + +

- f -

+ + +

- g -

+ + +

- i -

+ + +

- l -

+ + +

- m -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- ~ -

+
+
+ + + + diff --git a/docs/html/functions_vars.html b/docs/html/functions_vars.html new file mode 100644 index 0000000..14bed22 --- /dev/null +++ b/docs/html/functions_vars.html @@ -0,0 +1,141 @@ + + + + + + + +IntelliPhoto: Class Members - Variables + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/docs/html/globals.html b/docs/html/globals.html new file mode 100644 index 0000000..06d0c39 --- /dev/null +++ b/docs/html/globals.html @@ -0,0 +1,117 @@ + + + + + + + +IntelliPhoto: File Members + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all file members with links to the files they belong to:
+
+
+ + + + diff --git a/docs/html/globals_enum.html b/docs/html/globals_enum.html new file mode 100644 index 0000000..a5751ae --- /dev/null +++ b/docs/html/globals_enum.html @@ -0,0 +1,108 @@ + + + + + + + +IntelliPhoto: File Members + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/docs/html/globals_func.html b/docs/html/globals_func.html new file mode 100644 index 0000000..5bbf5e0 --- /dev/null +++ b/docs/html/globals_func.html @@ -0,0 +1,111 @@ + + + + + + + +IntelliPhoto: File Members + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/docs/html/graph_legend.dot b/docs/html/graph_legend.dot new file mode 100644 index 0000000..3b0e746 --- /dev/null +++ b/docs/html/graph_legend.dot @@ -0,0 +1,23 @@ +digraph "Graph Legend" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node9 [shape="box",label="Inherited",fontsize="10",height=0.2,width=0.4,fontname="Helvetica",fillcolor="grey75",style="filled" fontcolor="black"]; + Node10 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [shape="box",label="PublicBase",fontsize="10",height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classPublicBase.html"]; + Node11 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [shape="box",label="Truncated",fontsize="10",height=0.2,width=0.4,fontname="Helvetica",color="red",URL="$classTruncated.html"]; + Node13 -> Node9 [dir="back",color="darkgreen",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [shape="box",label="ProtectedBase",fontsize="10",height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classProtectedBase.html"]; + Node14 -> Node9 [dir="back",color="firebrick4",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [shape="box",label="PrivateBase",fontsize="10",height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classPrivateBase.html"]; + Node15 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [shape="box",label="Undocumented",fontsize="10",height=0.2,width=0.4,fontname="Helvetica",color="grey75"]; + Node16 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [shape="box",label="Templ< int >",fontsize="10",height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classTempl.html"]; + Node17 -> Node16 [dir="back",color="orange",fontsize="10",style="dashed",label="< int >",fontname="Helvetica"]; + Node17 [shape="box",label="Templ< T >",fontsize="10",height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classTempl.html"]; + Node18 -> Node9 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label="m_usedClass",fontname="Helvetica"]; + Node18 [shape="box",label="Used",fontsize="10",height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classUsed.html"]; +} diff --git a/docs/html/graph_legend.html b/docs/html/graph_legend.html new file mode 100644 index 0000000..f131b74 --- /dev/null +++ b/docs/html/graph_legend.html @@ -0,0 +1,164 @@ + + + + + + + +IntelliPhoto: Graph Legend + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Graph Legend
+
+
+

This page explains how to interpret the graphs that are generated by doxygen.

+

Consider the following example:

/*! Invisible class because of truncation */
+
class Invisible { };
+
+
/*! Truncated class, inheritance relation is hidden */
+
class Truncated : public Invisible { };
+
+
/* Class not documented with doxygen comments */
+
class Undocumented { };
+
+
/*! Class that is inherited using public inheritance */
+
class PublicBase : public Truncated { };
+
+
/*! A template class */
+
template<class T> class Templ { };
+
+
/*! Class that is inherited using protected inheritance */
+
class ProtectedBase { };
+
+
/*! Class that is inherited using private inheritance */
+
class PrivateBase { };
+
+
/*! Class that is used by the Inherited class */
+
class Used { };
+
+
/*! Super class that inherits a number of other classes */
+
class Inherited : public PublicBase,
+
protected ProtectedBase,
+
private PrivateBase,
+
public Undocumented,
+
public Templ<int>
+
{
+
private:
+
Used *m_usedClass;
+
};
+

This will result in the following graph:

+

The boxes in the above graph have the following meaning:

+
    +
  • +A filled gray box represents the struct or class for which the graph is generated.
  • +
  • +A box with a black border denotes a documented struct or class.
  • +
  • +A box with a gray border denotes an undocumented struct or class.
  • +
  • +A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
  • +
+

The arrows have the following meaning:

+
    +
  • +A dark blue arrow is used to visualize a public inheritance relation between two classes.
  • +
  • +A dark green arrow is used for protected inheritance.
  • +
  • +A dark red arrow is used for private inheritance.
  • +
  • +A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible.
  • +
  • +A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance.
  • +
+
+
+ + + + diff --git a/docs/html/hierarchy.html b/docs/html/hierarchy.html new file mode 100644 index 0000000..8610004 --- /dev/null +++ b/docs/html/hierarchy.html @@ -0,0 +1,124 @@ + + + + + + + +IntelliPhoto: Class Hierarchy + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class Hierarchy
+
+
+
+

Go to the graphical class hierarchy

+This inheritance list is sorted roughly, but not completely, alphabetically:
+
[detail level 123]
+ + + + + + + + + + + + + + +
 CIntelliColorPicker
 CIntelliHelper
 CIntelliImage
 CIntelliRasterImage
 CIntelliShapedImage
 CIntelliTool
 CIntelliToolLine
 CIntelliToolPen
 CIntelliToolPlainTool
 CLayerObject
 CQMainWindow
 CIntelliPhotoGui
 CQWidget
 CPaintingArea
+
+
+
+ + + + diff --git a/docs/html/hierarchy.js b/docs/html/hierarchy.js new file mode 100644 index 0000000..50c5815 --- /dev/null +++ b/docs/html/hierarchy.js @@ -0,0 +1,22 @@ +var hierarchy = +[ + [ "IntelliColorPicker", "class_intelli_color_picker.html", null ], + [ "IntelliHelper", "class_intelli_helper.html", null ], + [ "IntelliImage", "class_intelli_image.html", [ + [ "IntelliRasterImage", "class_intelli_raster_image.html", [ + [ "IntelliShapedImage", "class_intelli_shaped_image.html", null ] + ] ] + ] ], + [ "IntelliTool", "class_intelli_tool.html", [ + [ "IntelliToolLine", "class_intelli_tool_line.html", null ], + [ "IntelliToolPen", "class_intelli_tool_pen.html", null ], + [ "IntelliToolPlainTool", "class_intelli_tool_plain_tool.html", null ] + ] ], + [ "LayerObject", "struct_layer_object.html", null ], + [ "QMainWindow", null, [ + [ "IntelliPhotoGui", "class_intelli_photo_gui.html", null ] + ] ], + [ "QWidget", null, [ + [ "PaintingArea", "class_painting_area.html", null ] + ] ] +]; \ No newline at end of file diff --git a/docs/html/index.html b/docs/html/index.html new file mode 100644 index 0000000..1bf53be --- /dev/null +++ b/docs/html/index.html @@ -0,0 +1,104 @@ + + + + + + + +IntelliPhoto: Main Page + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntelliPhoto Documentation
+
+
+
+
+ + + + diff --git a/docs/html/inherit_graph_0.dot b/docs/html/inherit_graph_0.dot new file mode 100644 index 0000000..1c2bd28 --- /dev/null +++ b/docs/html/inherit_graph_0.dot @@ -0,0 +1,8 @@ +digraph "Graphical Class Hierarchy" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node0 [label="IntelliColorPicker",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html",tooltip=" "]; +} diff --git a/docs/html/inherit_graph_1.dot b/docs/html/inherit_graph_1.dot new file mode 100644 index 0000000..f66c074 --- /dev/null +++ b/docs/html/inherit_graph_1.dot @@ -0,0 +1,8 @@ +digraph "Graphical Class Hierarchy" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node0 [label="IntelliHelper",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_helper.html",tooltip=" "]; +} diff --git a/docs/html/inherit_graph_2.dot b/docs/html/inherit_graph_2.dot new file mode 100644 index 0000000..9e68731 --- /dev/null +++ b/docs/html/inherit_graph_2.dot @@ -0,0 +1,12 @@ +digraph "Graphical Class Hierarchy" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node0 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip=" "]; + Node0 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 [label="IntelliRasterImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_raster_image.html",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliShapedImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html",tooltip=" "]; +} diff --git a/docs/html/inherit_graph_3.dot b/docs/html/inherit_graph_3.dot new file mode 100644 index 0000000..3a9219b --- /dev/null +++ b/docs/html/inherit_graph_3.dot @@ -0,0 +1,10 @@ +digraph "Graphical Class Hierarchy" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node3 [label="QMainWindow",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node3 -> Node0 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node0 [label="IntelliPhotoGui",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_photo_gui.html",tooltip=" "]; +} diff --git a/docs/html/inherit_graph_4.dot b/docs/html/inherit_graph_4.dot new file mode 100644 index 0000000..5af63c2 --- /dev/null +++ b/docs/html/inherit_graph_4.dot @@ -0,0 +1,14 @@ +digraph "Graphical Class Hierarchy" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node0 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip=" "]; + Node0 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 [label="IntelliToolLine",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html",tooltip=" "]; + Node0 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliToolPen",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html",tooltip=" "]; + Node0 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliToolPlainTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html",tooltip=" "]; +} diff --git a/docs/html/inherit_graph_5.dot b/docs/html/inherit_graph_5.dot new file mode 100644 index 0000000..6da9d0d --- /dev/null +++ b/docs/html/inherit_graph_5.dot @@ -0,0 +1,8 @@ +digraph "Graphical Class Hierarchy" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node0 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip=" "]; +} diff --git a/docs/html/inherit_graph_6.dot b/docs/html/inherit_graph_6.dot new file mode 100644 index 0000000..c50c05b --- /dev/null +++ b/docs/html/inherit_graph_6.dot @@ -0,0 +1,10 @@ +digraph "Graphical Class Hierarchy" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node0 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node0 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip=" "]; +} diff --git a/docs/html/inherits.html b/docs/html/inherits.html new file mode 100644 index 0000000..a6a3e76 --- /dev/null +++ b/docs/html/inherits.html @@ -0,0 +1,122 @@ + + + + + + + +IntelliPhoto: Class Hierarchy + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class Hierarchy
+
+
+ + + + + + + + +
+
+
+
+
+
+
+
+
+
+ + + + diff --git a/docs/html/jquery.js b/docs/html/jquery.js new file mode 100644 index 0000000..103c32d --- /dev/null +++ b/docs/html/jquery.js @@ -0,0 +1,35 @@ +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element +},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** + * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler + * Licensed under MIT + * @author Ariel Flesler + * @version 2.1.2 + */ +;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/docs/html/main_8cpp.html b/docs/html/main_8cpp.html new file mode 100644 index 0000000..7afc301 --- /dev/null +++ b/docs/html/main_8cpp.html @@ -0,0 +1,154 @@ + + + + + + + +IntelliPhoto: src/main.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
main.cpp File Reference
+
+
+
#include "GUI/IntelliPhotoGui.h"
+#include <QApplication>
+#include <QDebug>
+
+Include dependency graph for main.cpp:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

int main (int argc, char *argv[])
 
+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int main (int argc,
char * argv[] 
)
+
+ +

Definition at line 5 of file main.cpp.

+ +
+
+
+
+ + + + diff --git a/docs/html/main_8cpp.js b/docs/html/main_8cpp.js new file mode 100644 index 0000000..783c492 --- /dev/null +++ b/docs/html/main_8cpp.js @@ -0,0 +1,4 @@ +var main_8cpp = +[ + [ "main", "main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97", null ] +]; \ No newline at end of file diff --git a/docs/html/main_8cpp__incl.dot b/docs/html/main_8cpp__incl.dot new file mode 100644 index 0000000..6686080 --- /dev/null +++ b/docs/html/main_8cpp__incl.dot @@ -0,0 +1,27 @@ +digraph "src/main.cpp" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="src/main.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="GUI/IntelliPhotoGui.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_photo_gui_8h.html",tooltip=" "]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="QList",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="QMainWindow",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="QGridLayout",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="QPushButton",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="QTextEdit",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="QLabel",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="QLineEdit",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="QApplication",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="QDebug",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; +} diff --git a/docs/html/main_8cpp_source.html b/docs/html/main_8cpp_source.html new file mode 100644 index 0000000..d628b36 --- /dev/null +++ b/docs/html/main_8cpp_source.html @@ -0,0 +1,123 @@ + + + + + + + +IntelliPhoto: src/main.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
IntelliPhoto +  0.4 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
main.cpp
+
+
+Go to the documentation of this file.
1 #include "GUI/IntelliPhotoGui.h"
+
2 #include <QApplication>
+
3 #include <QDebug>
+
4 
+
5 int main(int argc, char *argv[]){
+
6  // The main application
+
7  QApplication app(argc, argv);
+
8 
+
9  //some nice ass looking comment
+
10  // Create and open the main window
+
11  IntelliPhotoGui window;
+
12  window.show();
+
13 
+
14  return app.exec();
+
15 }
+
+
+ + +
int main(int argc, char *argv[])
Definition: main.cpp:5
+ + + + diff --git a/docs/html/menu.js b/docs/html/menu.js new file mode 100644 index 0000000..433c15b --- /dev/null +++ b/docs/html/menu.js @@ -0,0 +1,50 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + var result=''; + if ('children' in data) { + result+=''; + } + return result; + } + + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchEnabled) { + if (serverSide) { + $('#main-menu').append('
  • '); + } else { + $('#main-menu').append('
  • '); + } + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/docs/html/menudata.js b/docs/html/menudata.js new file mode 100644 index 0000000..0466909 --- /dev/null +++ b/docs/html/menudata.js @@ -0,0 +1,66 @@ +/* +@licstart The following is the entire license notice for the +JavaScript code in this file. + +Copyright (C) 1997-2019 by Dimitri van Heesch + +This program is free software; you can redistribute it and/or modify +it under the terms of version 2 of the GNU General Public License as published by +the Free Software Foundation + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +@licend The above is the entire license notice +for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Classes",url:"annotated.html",children:[ +{text:"Class List",url:"annotated.html"}, +{text:"Class Index",url:"classes.html"}, +{text:"Class Hierarchy",url:"inherits.html"}, +{text:"Class Members",url:"functions.html",children:[ +{text:"All",url:"functions.html",children:[ +{text:"a",url:"functions.html#index_a"}, +{text:"c",url:"functions.html#index_c"}, +{text:"d",url:"functions.html#index_d"}, +{text:"f",url:"functions.html#index_f"}, +{text:"g",url:"functions.html#index_g"}, +{text:"h",url:"functions.html#index_h"}, +{text:"i",url:"functions.html#index_i"}, +{text:"l",url:"functions.html#index_l"}, +{text:"m",url:"functions.html#index_m"}, +{text:"o",url:"functions.html#index_o"}, +{text:"p",url:"functions.html#index_p"}, +{text:"r",url:"functions.html#index_r"}, +{text:"s",url:"functions.html#index_s"}, +{text:"w",url:"functions.html#index_w"}, +{text:"~",url:"functions.html#index__7E"}]}, +{text:"Functions",url:"functions_func.html",children:[ +{text:"a",url:"functions_func.html#index_a"}, +{text:"c",url:"functions_func.html#index_c"}, +{text:"d",url:"functions_func.html#index_d"}, +{text:"f",url:"functions_func.html#index_f"}, +{text:"g",url:"functions_func.html#index_g"}, +{text:"i",url:"functions_func.html#index_i"}, +{text:"l",url:"functions_func.html#index_l"}, +{text:"m",url:"functions_func.html#index_m"}, +{text:"o",url:"functions_func.html#index_o"}, +{text:"p",url:"functions_func.html#index_p"}, +{text:"r",url:"functions_func.html#index_r"}, +{text:"s",url:"functions_func.html#index_s"}, +{text:"~",url:"functions_func.html#index__7E"}]}, +{text:"Variables",url:"functions_vars.html"}]}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}, +{text:"File Members",url:"globals.html",children:[ +{text:"All",url:"globals.html"}, +{text:"Functions",url:"globals_func.html"}, +{text:"Enumerations",url:"globals_enum.html"}]}]}]} diff --git a/docs/html/nav_f.png b/docs/html/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..3a8f6ca8cce4c401df698a41aad331a653074d8f GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQemDhjv*C{Z|_rt_qsUP*8zd3VerDURCSg4rb^hq}R sC$E>_JfQ#ZjG{op+1=LftN-QX`<#*Ut}Ea55oiO0r>mdKI;Vst02Zt>I{*Lx literal 0 HcmV?d00001 diff --git a/docs/html/nav_g.png b/docs/html/nav_g.png new file mode 100644 index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KgTe~DWM4fU$GZ( literal 0 HcmV?d00001 diff --git a/docs/html/navtree.css b/docs/html/navtree.css new file mode 100644 index 0000000..46329ea --- /dev/null +++ b/docs/html/navtree.css @@ -0,0 +1,146 @@ +#nav-tree .children_ul { + margin:0; + padding:4px; +} + +#nav-tree ul { + list-style:none outside none; + margin:0px; + padding:0px; +} + +#nav-tree li { + white-space:nowrap; + margin:0px; + padding:0px; +} + +#nav-tree .plus { + margin:0px; +} + +#nav-tree .selected { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +#nav-tree img { + margin:0px; + padding:0px; + border:0px; + vertical-align: middle; +} + +#nav-tree a { + text-decoration:none; + padding:0px; + margin:0px; + outline:none; +} + +#nav-tree .label { + margin:0px; + padding:0px; + font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +} + +#nav-tree .label a { + padding:2px; +} + +#nav-tree .selected a { + text-decoration:none; + color:#fff; +} + +#nav-tree .children_ul { + margin:0px; + padding:0px; +} + +#nav-tree .item { + margin:0px; + padding:0px; +} + +#nav-tree { + padding: 0px 0px; + background-color: #FAFAFF; + font-size:14px; + overflow:auto; +} + +#doc-content { + overflow:auto; + display:block; + padding:0px; + margin:0px; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#side-nav { + padding:0 6px 0 0; + margin: 0px; + display:block; + position: absolute; + left: 0px; + width: 250px; +} + +.ui-resizable .ui-resizable-handle { + display:block; +} + +.ui-resizable-e { + background-image:url("splitbar.png"); + background-size:100%; + background-repeat:repeat-y; + background-attachment: scroll; + cursor:ew-resize; + height:100%; + right:0; + top:0; + width:6px; +} + +.ui-resizable-handle { + display:none; + font-size:0.1px; + position:absolute; + z-index:1; +} + +#nav-tree-contents { + margin: 6px 0px 0px 0px; +} + +#nav-tree { + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #FAFAFB; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#nav-sync { + position:absolute; + top:5px; + right:24px; + z-index:0; +} + +#nav-sync img { + opacity:0.3; +} + +#nav-sync img:hover { + opacity:0.9; +} + +@media print +{ + #nav-tree { display: none; } + div.ui-resizable-handle { display: none; position: relative; } +} + diff --git a/docs/html/navtree.js b/docs/html/navtree.js new file mode 100644 index 0000000..edc31ef --- /dev/null +++ b/docs/html/navtree.js @@ -0,0 +1,544 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2019 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of version 2 of the GNU General Public License as + published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +var navTreeSubIndices = new Array(); +var arrowDown = '▼'; +var arrowRight = '►'; + +function getData(varName) +{ + var i = varName.lastIndexOf('/'); + var n = i>=0 ? varName.substring(i+1) : varName; + return eval(n.replace(/\-/g,'_')); +} + +function stripPath(uri) +{ + return uri.substring(uri.lastIndexOf('/')+1); +} + +function stripPath2(uri) +{ + var i = uri.lastIndexOf('/'); + var s = uri.substring(i+1); + var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; +} + +function hashValue() +{ + return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,''); +} + +function hashUrl() +{ + return '#'+hashValue(); +} + +function pathName() +{ + return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, ''); +} + +function localStorageSupported() +{ + try { + return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem; + } + catch(e) { + return false; + } +} + +function storeLink(link) +{ + if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { + window.localStorage.setItem('navpath',link); + } +} + +function deleteLink() +{ + if (localStorageSupported()) { + window.localStorage.setItem('navpath',''); + } +} + +function cachedLink() +{ + if (localStorageSupported()) { + return window.localStorage.getItem('navpath'); + } else { + return ''; + } +} + +function getScript(scriptName,func,show) +{ + var head = document.getElementsByTagName("head")[0]; + var script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = func; + script.src = scriptName+'.js'; + head.appendChild(script); +} + +function createIndent(o,domNode,node,level) +{ + var level=-1; + var n = node; + while (n.parentNode) { level++; n=n.parentNode; } + if (node.childrenData) { + var imgNode = document.createElement("span"); + imgNode.className = 'arrow'; + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.innerHTML=arrowRight; + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast"); + node.plus_img.innerHTML=arrowRight; + node.expanded = false; + } else { + expandNode(o, node, false, false); + } + } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + } else { + var span = document.createElement("span"); + span.className = 'arrow'; + span.style.width = 16*(level+1)+'px'; + span.innerHTML = ' '; + domNode.appendChild(span); + } +} + +var animationInProgress = false; + +function gotoAnchor(anchor,aname,updateLocation) +{ + var pos, docContent = $('#doc-content'); + var ancParent = $(anchor.parent()); + if (ancParent.hasClass('memItemLeft') || + ancParent.hasClass('memtitle') || + ancParent.hasClass('fieldname') || + ancParent.hasClass('fieldtype') || + ancParent.is(':header')) + { + pos = ancParent.position().top; + } else if (anchor.position()) { + pos = anchor.position().top; + } + if (pos) { + var dist = Math.abs(Math.min( + pos-docContent.offset().top, + docContent[0].scrollHeight- + docContent.height()-docContent.scrollTop())); + animationInProgress=true; + docContent.animate({ + scrollTop: pos + docContent.scrollTop() - docContent.offset().top + },Math.max(50,Math.min(500,dist)),function(){ + if (updateLocation) window.location.href=aname; + animationInProgress=false; + }); + } +} + +function newNode(o, po, text, link, childrenData, lastNode) +{ + var node = new Object(); + node.children = Array(); + node.childrenData = childrenData; + node.depth = po.depth + 1; + node.relpath = po.relpath; + node.isLast = lastNode; + + node.li = document.createElement("li"); + po.getChildrenUL().appendChild(node.li); + node.parentNode = po; + + node.itemDiv = document.createElement("div"); + node.itemDiv.className = "item"; + + node.labelSpan = document.createElement("span"); + node.labelSpan.className = "label"; + + createIndent(o,node.itemDiv,node,0); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + var a = document.createElement("a"); + node.labelSpan.appendChild(a); + node.label = document.createTextNode(text); + node.expanded = false; + a.appendChild(node.label); + if (link) { + var url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + var aname = '#'+link.split('#')[1]; + var srcPage = stripPath(pathName()); + var targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : "javascript:void(0)"; + a.onclick = function(){ + storeLink(link); + if (!$(a).parent().parent().hasClass('selected')) + { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + $(a).parent().parent().addClass('selected'); + $(a).parent().parent().attr('id','selected'); + } + var anchor = $(aname); + gotoAnchor(anchor,aname,true); + }; + } else { + a.href = url; + a.onclick = function() { storeLink(link); } + } + } else { + if (childrenData != null) + { + a.className = "nolink"; + a.href = "javascript:void(0)"; + a.onclick = node.expandToggle.onclick; + } + } + + node.childrenUL = null; + node.getChildrenUL = function() { + if (!node.childrenUL) { + node.childrenUL = document.createElement("ul"); + node.childrenUL.className = "children_ul"; + node.childrenUL.style.display = "none"; + node.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }; + + return node; +} + +function showRoot() +{ + var headerHeight = $("#top").height(); + var footerHeight = $("#nav-path").height(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + (function (){ // retry until we can scroll to the selected item + try { + var navtree=$('#nav-tree'); + navtree.scrollTo('#selected',100,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); +} + +function expandNode(o, node, imm, showRoot) +{ + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + expandNode(o, node, imm, showRoot); + }, showRoot); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).slideDown("fast"); + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + } + } +} + +function glowEffect(n,duration) +{ + n.addClass('glow').delay(duration).queue(function(next){ + $(this).removeClass('glow');next(); + }); +} + +function highlightAnchor() +{ + var aname = hashUrl(); + var anchor = $(aname); + if (anchor.parent().attr('class')=='memItemLeft'){ + var rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parent().attr('class')=='fieldname'){ + glowEffect(anchor.parent().parent(),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype'){ + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } +} + +function selectAndHighlight(hash,n) +{ + var a; + if (hash) { + var link=stripPath(pathName())+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + $('#nav-sync').css('top','30px'); + } else { + $('#nav-sync').css('top','5px'); + } + showRoot(); +} + +function showNode(o, node, index, hash) +{ + if (node && node.childrenData) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + showNode(o,node,index,hash); + },true); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).css({'display':'block'}); + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + var n = node.children[o.breadcrumbs[index]]; + if (index+11) hash = '#'+parts[1].replace(/[^\w\-]/g,''); + else hash=''; + } + if (hash.match(/^#l\d+$/)) { + var anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + } + var url=root+hash; + var i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function(){ + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + },true); + } +} + +function showSyncOff(n,relpath) +{ + n.html(''); +} + +function showSyncOn(n,relpath) +{ + n.html(''); +} + +function toggleSyncButton(relpath) +{ + var navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { + navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2(pathName())+hashUrl()); + } else { + navSync.addClass('sync'); + showSyncOn(navSync,relpath); + deleteLink(); + } +} + +var loadTriggered = false; +var readyTriggered = false; +var loadObject,loadToRoot,loadUrl,loadRelPath; + +$(window).on('load',function(){ + if (readyTriggered) { // ready first + navTo(loadObject,loadToRoot,loadUrl,loadRelPath); + showRoot(); + } + loadTriggered=true; +}); + +function initNavTree(toroot,relpath) +{ + var o = new Object(); + o.toroot = toroot; + o.node = new Object(); + o.node.li = document.getElementById("nav-tree-contents"); + o.node.childrenData = NAVTREE; + o.node.children = new Array(); + o.node.childrenUL = document.createElement("ul"); + o.node.getChildrenUL = function() { return o.node.childrenUL; }; + o.node.li.appendChild(o.node.childrenUL); + o.node.depth = 0; + o.node.relpath = relpath; + o.node.expanded = false; + o.node.isLast = true; + o.node.plus_img = document.createElement("span"); + o.node.plus_img.className = 'arrow'; + o.node.plus_img.innerHTML = arrowRight; + + if (localStorageSupported()) { + var navSync = $('#nav-sync'); + if (cachedLink()) { + showSyncOff(navSync,relpath); + navSync.removeClass('sync'); + } else { + showSyncOn(navSync,relpath); + } + navSync.click(function(){ toggleSyncButton(relpath); }); + } + + if (loadTriggered) { // load before ready + navTo(o,toroot,hashUrl(),relpath); + showRoot(); + } else { // ready before load + loadObject = o; + loadToRoot = toroot; + loadUrl = hashUrl(); + loadRelPath = relpath; + readyTriggered=true; + } + + $(window).bind('hashchange', function(){ + if (window.location.hash && window.location.hash.length>1){ + var a; + if ($(location).attr('hash')){ + var clslink=stripPath(pathName())+':'+hashValue(); + a=$('.item a[class$="'+clslink.replace(/1|%O$WD@{V)}AhoAr*{o?>cfFP~c%XaB=#p z(_fZP6D!iZxcPXaYNW?JhV7ckXIRy@eh*7{e)l@Z2l3DAr-=58Z<3ea+rl&D;MSSB QKw}s@UHx3vIVCg!0F4YM#sB~S literal 0 HcmV?d00001 diff --git a/docs/html/resize.js b/docs/html/resize.js new file mode 100644 index 0000000..f5291d9 --- /dev/null +++ b/docs/html/resize.js @@ -0,0 +1,136 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +function initResizable() +{ + var cookie_namespace = 'doxygen'; + var sidenav,navtree,content,header,collapsed,collapsedWidth=0,barWidth=6,desktop_vp=768,titleHeight; + + function readCookie(cookie) + { + var myCookie = cookie_namespace+"_"+cookie+"="; + if (document.cookie) { + var index = document.cookie.indexOf(myCookie); + if (index != -1) { + var valStart = index + myCookie.length; + var valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) { + valEnd = document.cookie.length; + } + var val = document.cookie.substring(valStart, valEnd); + return val; + } + } + return 0; + } + + function writeCookie(cookie, val, expiration) + { + if (val==undefined) return; + if (expiration == null) { + var date = new Date(); + date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week + expiration = date.toGMTString(); + } + document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/"; + } + + function resizeWidth() + { + var windowWidth = $(window).width() + "px"; + var sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + writeCookie('width',sidenavWidth-barWidth, null); + } + + function restoreWidth(navWidth) + { + var windowWidth = $(window).width() + "px"; + content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + sidenav.css({width:navWidth + "px"}); + } + + function resizeHeight() + { + var headerHeight = header.outerHeight(); + var footerHeight = footer.outerHeight(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + content.css({height:windowHeight + "px"}); + navtree.css({height:windowHeight + "px"}); + sidenav.css({height:windowHeight + "px"}); + var width=$(window).width(); + if (width!=collapsedWidth) { + if (width=desktop_vp) { + if (!collapsed) { + collapseExpand(); + } + } else if (width>desktop_vp && collapsedWidth0) { + restoreWidth(0); + collapsed=true; + } + else { + var width = readCookie('width'); + if (width>200 && width<$(window).width()) { restoreWidth(width); } else { restoreWidth(200); } + collapsed=false; + } + } + + header = $("#top"); + sidenav = $("#side-nav"); + content = $("#doc-content"); + navtree = $("#nav-tree"); + footer = $("#nav-path"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(sidenav).resizable({ minWidth: 0 }); + $(window).resize(function() { resizeHeight(); }); + var device = navigator.userAgent.toLowerCase(); + var touch_device = device.match(/(iphone|ipod|ipad|android)/); + if (touch_device) { /* wider split bar for touch only devices */ + $(sidenav).css({ paddingRight:'20px' }); + $('.ui-resizable-e').css({ width:'20px' }); + $('#nav-sync').css({ right:'34px' }); + barWidth=20; + } + var width = readCookie('width'); + if (width) { restoreWidth(width); } else { resizeWidth(); } + resizeHeight(); + var url = location.href; + var i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + var _preventDefault = function(evt) { evt.preventDefault(); }; + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + $(".ui-resizable-handle").dblclick(collapseExpand); + $(window).on('load',resizeHeight); +} +/* @license-end */ diff --git a/docs/html/search/all_0.html b/docs/html/search/all_0.html new file mode 100644 index 0000000..a52d5f0 --- /dev/null +++ b/docs/html/search/all_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_0.js b/docs/html/search/all_0.js new file mode 100644 index 0000000..709a24d --- /dev/null +++ b/docs/html/search/all_0.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['active_0',['Active',['../class_intelli_tool.html#a13512e95d21a9934ecb36d73b118c25f',1,'IntelliTool']]], + ['addlayer_1',['addLayer',['../class_painting_area.html#a39ad76e1319659bfa38eee88ef33d395',1,'PaintingArea']]], + ['addlayerat_2',['addLayerAt',['../class_painting_area.html#ae756003b49aead863b49616ea7a44cc0',1,'PaintingArea']]], + ['alpha_3',['alpha',['../struct_layer_object.html#a402cb1d9f20436032fe080681b80eb56',1,'LayerObject']]], + ['area_4',['Area',['../class_intelli_tool.html#ab4c2698a0f9f25fb6639ec760d2d0289',1,'IntelliTool']]] +]; diff --git a/docs/html/search/all_1.html b/docs/html/search/all_1.html new file mode 100644 index 0000000..0fcb704 --- /dev/null +++ b/docs/html/search/all_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_1.js b/docs/html/search/all_1.js new file mode 100644 index 0000000..b86b965 --- /dev/null +++ b/docs/html/search/all_1.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['calculatevisiblity_5',['calculateVisiblity',['../class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2',1,'IntelliImage::calculateVisiblity()'],['../class_intelli_raster_image.html#a87cf2d360c129d64a5db0db85818eb60',1,'IntelliRasterImage::calculateVisiblity()'],['../class_intelli_shaped_image.html#a0221d93c3c8990f7dab332454cc21f50',1,'IntelliShapedImage::calculateVisiblity()']]], + ['canvas_6',['Canvas',['../class_intelli_tool.html#a144d469cc03584f501194529a1b53c77',1,'IntelliTool']]], + ['closeevent_7',['closeEvent',['../class_intelli_photo_gui.html#a2cf48070236ae8b35245e7f30482ef13',1,'IntelliPhotoGui']]], + ['colorpicker_8',['colorPicker',['../class_intelli_tool.html#ae2e0ac394611a361ab4ef2fe55c03fef',1,'IntelliTool']]], + ['colorpickersetfirstcolor_9',['colorPickerSetFirstColor',['../class_painting_area.html#a4735d4cf1dc58a9096d904e74c39c4df',1,'PaintingArea']]], + ['colorpickersetsecondcolor_10',['colorPickerSetSecondColor',['../class_painting_area.html#ae261acaaa346610dfed489dbac17e789',1,'PaintingArea']]], + ['colorpickerswitchcolor_11',['colorPickerSwitchColor',['../class_painting_area.html#a66115307ff4a99cd7ca16423c5c8ecfb',1,'PaintingArea']]], + ['createlinetool_12',['createLineTool',['../class_painting_area.html#a240c33a7875addac86080cdfb0db036a',1,'PaintingArea']]], + ['createpentool_13',['createPenTool',['../class_painting_area.html#a96c6248e343e44b61cf2625cb6d21353',1,'PaintingArea']]], + ['createplaintool_14',['createPlainTool',['../class_painting_area.html#a3de83443d2d5cf460ff48d0602070938',1,'PaintingArea']]] +]; diff --git a/docs/html/search/all_2.html b/docs/html/search/all_2.html new file mode 100644 index 0000000..19c530f --- /dev/null +++ b/docs/html/search/all_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_2.js b/docs/html/search/all_2.js new file mode 100644 index 0000000..6d16bbf --- /dev/null +++ b/docs/html/search/all_2.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['deletelayer_15',['deleteLayer',['../class_painting_area.html#a6efad6f8ea060674b157b42b431cd173',1,'PaintingArea']]], + ['dotted_5fline_16',['DOTTED_LINE',['../_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7a7660f396543c877e45d443f99d02bd0e',1,'IntelliToolLine.h']]], + ['drawing_17',['drawing',['../class_intelli_tool.html#af256de16e9825922d20a23d11617b51b',1,'IntelliTool']]], + ['drawline_18',['drawLine',['../class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31',1,'IntelliImage']]], + ['drawpixel_19',['drawPixel',['../class_intelli_image.html#af3c859f5c409e37051edfd9e9fbca056',1,'IntelliImage']]], + ['drawplain_20',['drawPlain',['../class_intelli_image.html#a6be622810dc2bc756054bb5769becb06',1,'IntelliImage']]] +]; diff --git a/docs/html/search/all_3.html b/docs/html/search/all_3.html new file mode 100644 index 0000000..1ae887f --- /dev/null +++ b/docs/html/search/all_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_3.js b/docs/html/search/all_3.js new file mode 100644 index 0000000..ccc29d6 --- /dev/null +++ b/docs/html/search/all_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['floodfill_21',['floodFill',['../class_painting_area.html#aeb5eb394b979ea90f2be9849fdda1774',1,'PaintingArea']]] +]; diff --git a/docs/html/search/all_4.html b/docs/html/search/all_4.html new file mode 100644 index 0000000..14c90ef --- /dev/null +++ b/docs/html/search/all_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_4.js b/docs/html/search/all_4.js new file mode 100644 index 0000000..fc41aa8 --- /dev/null +++ b/docs/html/search/all_4.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['getdeepcopy_22',['getDeepCopy',['../class_intelli_image.html#af6381067bdf565669f856bb589008ae9',1,'IntelliImage::getDeepCopy()'],['../class_intelli_raster_image.html#a8f901301b106504de3c27308ade897dc',1,'IntelliRasterImage::getDeepCopy()'],['../class_intelli_shaped_image.html#aed0b31e0fa771104399d1f5ff39a0337',1,'IntelliShapedImage::getDeepCopy()']]], + ['getdisplayable_23',['getDisplayable',['../class_intelli_image.html#a21c7e65b59a26db45aac3880133ef21d',1,'IntelliImage::getDisplayable(const QSize &displaySize, int alpha)=0'],['../class_intelli_image.html#a9d4daf3c48c64695105689f61c21bae0',1,'IntelliImage::getDisplayable(int alpha=255)=0'],['../class_intelli_raster_image.html#ae43393397b0141a8033fe34d3a1b1884',1,'IntelliRasterImage::getDisplayable(const QSize &displaySize, int alpha) override'],['../class_intelli_raster_image.html#a612d79124f0e2c158a4f0abbe4b5f97f',1,'IntelliRasterImage::getDisplayable(int alpha=255) override'],['../class_intelli_shaped_image.html#a68cf374247c16f07fd84d50e4cd05630',1,'IntelliShapedImage::getDisplayable(const QSize &displaySize, int alpha=255) override'],['../class_intelli_shaped_image.html#ac6a99e1a96134073bceea252b37636cc',1,'IntelliShapedImage::getDisplayable(int alpha=255) override']]], + ['getfirstcolor_24',['getFirstColor',['../class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7',1,'IntelliColorPicker']]], + ['getpolygondata_25',['getPolygonData',['../class_intelli_image.html#aaf9f3e8db8666850024bee9aad9966ba',1,'IntelliImage::getPolygonData()'],['../class_intelli_shaped_image.html#ae4518c7f5a105cc4f33fabb60c794a93',1,'IntelliShapedImage::getPolygonData()']]], + ['getsecondcolor_26',['getSecondColor',['../class_intelli_color_picker.html#a55568fbf5dc783f06284b7031ffe9415',1,'IntelliColorPicker']]] +]; diff --git a/docs/html/search/all_5.html b/docs/html/search/all_5.html new file mode 100644 index 0000000..60fa53e --- /dev/null +++ b/docs/html/search/all_5.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_5.js b/docs/html/search/all_5.js new file mode 100644 index 0000000..47df108 --- /dev/null +++ b/docs/html/search/all_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['hight_27',['hight',['../struct_layer_object.html#a4b1729dbf7d3490e4c2776e29ffef8b0',1,'LayerObject']]], + ['hightoffset_28',['hightOffset',['../struct_layer_object.html#a6256486a76c38baa3f1c664f4d190743',1,'LayerObject']]] +]; diff --git a/docs/html/search/all_6.html b/docs/html/search/all_6.html new file mode 100644 index 0000000..7180363 --- /dev/null +++ b/docs/html/search/all_6.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_6.js b/docs/html/search/all_6.js new file mode 100644 index 0000000..049a7b9 --- /dev/null +++ b/docs/html/search/all_6.js @@ -0,0 +1,37 @@ +var searchData= +[ + ['image_29',['image',['../struct_layer_object.html#af01a139bc8edfdbb338393874e89bd83',1,'LayerObject']]], + ['imagedata_30',['imageData',['../class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2',1,'IntelliImage']]], + ['imagetype_31',['ImageType',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0',1,'IntelliImage.h']]], + ['intellicolorpicker_32',['IntelliColorPicker',['../class_intelli_color_picker.html',1,'IntelliColorPicker'],['../class_intelli_color_picker.html#a0d1247bdd87add1396ea5d9acaad79ae',1,'IntelliColorPicker::IntelliColorPicker()']]], + ['intellicolorpicker_2ecpp_33',['IntelliColorPicker.cpp',['../_intelli_helper_2_intelli_color_picker_8cpp.html',1,'(Global Namespace)'],['../_tool_2_intelli_color_picker_8cpp.html',1,'(Global Namespace)']]], + ['intellicolorpicker_2eh_34',['IntelliColorPicker.h',['../_intelli_color_picker_8h.html',1,'']]], + ['intellihelper_35',['IntelliHelper',['../class_intelli_helper.html',1,'']]], + ['intellihelper_2ecpp_36',['IntelliHelper.cpp',['../_intelli_helper_8cpp.html',1,'']]], + ['intellihelper_2eh_37',['IntelliHelper.h',['../_intelli_helper_8h.html',1,'']]], + ['intelliimage_38',['IntelliImage',['../class_intelli_image.html',1,'IntelliImage'],['../class_intelli_image.html#a47084f1cb668ea0242ab95162cf9e902',1,'IntelliImage::IntelliImage()']]], + ['intelliimage_2ecpp_39',['IntelliImage.cpp',['../_intelli_image_8cpp.html',1,'']]], + ['intelliimage_2eh_40',['IntelliImage.h',['../_intelli_image_8h.html',1,'']]], + ['intelliphotogui_41',['IntelliPhotoGui',['../class_intelli_photo_gui.html',1,'IntelliPhotoGui'],['../class_intelli_photo_gui.html#ad2aaec3c1517a9aaa461b54e341b97e0',1,'IntelliPhotoGui::IntelliPhotoGui()']]], + ['intelliphotogui_2ecpp_42',['IntelliPhotoGui.cpp',['../_intelli_photo_gui_8cpp.html',1,'']]], + ['intelliphotogui_2eh_43',['IntelliPhotoGui.h',['../_intelli_photo_gui_8h.html',1,'']]], + ['intellirasterimage_44',['IntelliRasterImage',['../class_intelli_raster_image.html',1,'IntelliRasterImage'],['../class_intelli_raster_image.html#aad9b561fe499a4da3c6ef98971aa3468',1,'IntelliRasterImage::IntelliRasterImage()']]], + ['intellirasterimage_2ecpp_45',['IntelliRasterImage.cpp',['../_intelli_raster_image_8cpp.html',1,'']]], + ['intellirasterimage_2eh_46',['IntelliRasterImage.h',['../_intelli_raster_image_8h.html',1,'']]], + ['intellishapedimage_47',['IntelliShapedImage',['../class_intelli_shaped_image.html',1,'IntelliShapedImage'],['../class_intelli_shaped_image.html#a0f834c3f255baeb50c98ef335a6d0ea9',1,'IntelliShapedImage::IntelliShapedImage()']]], + ['intellishapedimage_2ecpp_48',['IntelliShapedImage.cpp',['../_intelli_shaped_image_8cpp.html',1,'']]], + ['intellishapedimage_2eh_49',['IntelliShapedImage.h',['../_intelli_shaped_image_8h.html',1,'']]], + ['intellitool_50',['IntelliTool',['../class_intelli_tool.html',1,'IntelliTool'],['../class_intelli_tool.html#a346dd55d489fced38e7bb46f9168af91',1,'IntelliTool::IntelliTool()']]], + ['intellitool_2ecpp_51',['IntelliTool.cpp',['../_intelli_tool_8cpp.html',1,'']]], + ['intellitool_2eh_52',['IntelliTool.h',['../_intelli_tool_8h.html',1,'']]], + ['intellitoolline_53',['IntelliToolLine',['../class_intelli_tool_line.html',1,'IntelliToolLine'],['../class_intelli_tool_line.html#a9b2d4bcd69409a21f6080edfea4ae2a2',1,'IntelliToolLine::IntelliToolLine()']]], + ['intellitoolline_2ecpp_54',['IntelliToolLine.cpp',['../_intelli_tool_line_8cpp.html',1,'']]], + ['intellitoolline_2eh_55',['IntelliToolLine.h',['../_intelli_tool_line_8h.html',1,'']]], + ['intellitoolpen_56',['IntelliToolPen',['../class_intelli_tool_pen.html',1,'IntelliToolPen'],['../class_intelli_tool_pen.html#a889891b3ae7cdefb881aed2e7fff9b47',1,'IntelliToolPen::IntelliToolPen()']]], + ['intellitoolpen_2ecpp_57',['IntelliToolPen.cpp',['../_intelli_tool_pen_8cpp.html',1,'']]], + ['intellitoolpen_2eh_58',['IntelliToolPen.h',['../_intelli_tool_pen_8h.html',1,'']]], + ['intellitoolplain_2ecpp_59',['IntelliToolPlain.cpp',['../_intelli_tool_plain_8cpp.html',1,'']]], + ['intellitoolplain_2eh_60',['IntelliToolPlain.h',['../_intelli_tool_plain_8h.html',1,'']]], + ['intellitoolplaintool_61',['IntelliToolPlainTool',['../class_intelli_tool_plain_tool.html',1,'IntelliToolPlainTool'],['../class_intelli_tool_plain_tool.html#a0ff0b9f7b78b763683076e4417236859',1,'IntelliToolPlainTool::IntelliToolPlainTool()']]], + ['isintriangle_62',['isInTriangle',['../class_intelli_helper.html#a04bdb4f53b89dded693ba6e896f4c63f',1,'IntelliHelper']]] +]; diff --git a/docs/html/search/all_7.html b/docs/html/search/all_7.html new file mode 100644 index 0000000..ee6d2e4 --- /dev/null +++ b/docs/html/search/all_7.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_7.js b/docs/html/search/all_7.js new file mode 100644 index 0000000..b53132f --- /dev/null +++ b/docs/html/search/all_7.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['layerobject_63',['LayerObject',['../struct_layer_object.html',1,'']]], + ['linestyle_64',['LineStyle',['../_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7',1,'IntelliToolLine.h']]], + ['loadimage_65',['loadImage',['../class_intelli_image.html#aec0e9c8184d89dee33fd9adefbd2f8aa',1,'IntelliImage']]] +]; diff --git a/docs/html/search/all_8.html b/docs/html/search/all_8.html new file mode 100644 index 0000000..7829aa4 --- /dev/null +++ b/docs/html/search/all_8.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_8.js b/docs/html/search/all_8.js new file mode 100644 index 0000000..f2d0a55 --- /dev/null +++ b/docs/html/search/all_8.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['main_66',['main',['../main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main.cpp']]], + ['main_2ecpp_67',['main.cpp',['../main_8cpp.html',1,'']]], + ['mousemoveevent_68',['mouseMoveEvent',['../class_painting_area.html#aa22e274b6094a9619f196cd7b49526b5',1,'PaintingArea']]], + ['mousepressevent_69',['mousePressEvent',['../class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15',1,'PaintingArea']]], + ['mousereleaseevent_70',['mouseReleaseEvent',['../class_painting_area.html#a35b5df914acb608cc29717659793359c',1,'PaintingArea']]], + ['moveactivelayer_71',['moveActiveLayer',['../class_painting_area.html#ae05f6893fb44bfcb34018573a609cd1a',1,'PaintingArea']]], + ['movepositionactive_72',['movePositionActive',['../class_painting_area.html#ac6d089f4357b22d9a9906fd4771de3e7',1,'PaintingArea']]] +]; diff --git a/docs/html/search/all_9.html b/docs/html/search/all_9.html new file mode 100644 index 0000000..e4242c7 --- /dev/null +++ b/docs/html/search/all_9.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_9.js b/docs/html/search/all_9.js new file mode 100644 index 0000000..b18fe6b --- /dev/null +++ b/docs/html/search/all_9.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['onmouseleftpressed_73',['onMouseLeftPressed',['../class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c',1,'IntelliTool::onMouseLeftPressed()'],['../class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846',1,'IntelliToolLine::onMouseLeftPressed()'],['../class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205',1,'IntelliToolPen::onMouseLeftPressed()'],['../class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9',1,'IntelliToolPlainTool::onMouseLeftPressed()']]], + ['onmouseleftreleased_74',['onMouseLeftReleased',['../class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b',1,'IntelliTool::onMouseLeftReleased()'],['../class_intelli_tool_line.html#ac93f76ff20a1c111a403b298bab02482',1,'IntelliToolLine::onMouseLeftReleased()'],['../class_intelli_tool_pen.html#abda7a22b9766fa4ad254324a53cab94d',1,'IntelliToolPen::onMouseLeftReleased()'],['../class_intelli_tool_plain_tool.html#ac23f5d0f07e42fd7c2ea3fc1347da400',1,'IntelliToolPlainTool::onMouseLeftReleased()']]], + ['onmousemoved_75',['onMouseMoved',['../class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639',1,'IntelliTool::onMouseMoved()'],['../class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b',1,'IntelliToolLine::onMouseMoved()'],['../class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2',1,'IntelliToolPen::onMouseMoved()'],['../class_intelli_tool_plain_tool.html#ad7546a6335bb3bb4cbf0e1883788d41c',1,'IntelliToolPlainTool::onMouseMoved()']]], + ['onmouserightpressed_76',['onMouseRightPressed',['../class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966',1,'IntelliTool::onMouseRightPressed()'],['../class_intelli_tool_line.html#a6cce59f3017936214b10b47252a898a3',1,'IntelliToolLine::onMouseRightPressed()'],['../class_intelli_tool_pen.html#a1751e3864a0d36ef42ca55021cae73ce',1,'IntelliToolPen::onMouseRightPressed()'],['../class_intelli_tool_plain_tool.html#acb0c46e16d2c09370a2244a936de38b1',1,'IntelliToolPlainTool::onMouseRightPressed()']]], + ['onmouserightreleased_77',['onMouseRightReleased',['../class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0',1,'IntelliTool::onMouseRightReleased()'],['../class_intelli_tool_line.html#a6214918cba5753f89d97de4559a2b9b2',1,'IntelliToolLine::onMouseRightReleased()'],['../class_intelli_tool_pen.html#abf8562e8cd2da586afdf4d47b3a4ff13',1,'IntelliToolPen::onMouseRightReleased()'],['../class_intelli_tool_plain_tool.html#a2ae458f1b04eb77a47f6dca5e91e33b8',1,'IntelliToolPlainTool::onMouseRightReleased()']]], + ['open_78',['open',['../class_painting_area.html#a1f597740b4d7b4bc2e24c51f8cb0b6eb',1,'PaintingArea']]] +]; diff --git a/docs/html/search/all_a.html b/docs/html/search/all_a.html new file mode 100644 index 0000000..47a4a78 --- /dev/null +++ b/docs/html/search/all_a.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_a.js b/docs/html/search/all_a.js new file mode 100644 index 0000000..109a13b --- /dev/null +++ b/docs/html/search/all_a.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['paintevent_79',['paintEvent',['../class_painting_area.html#a4a8138b9508ee4ec87a7fca9160368a7',1,'PaintingArea']]], + ['paintingarea_80',['PaintingArea',['../class_painting_area.html',1,'PaintingArea'],['../class_painting_area.html#a4fa0ec23e78cc59f28c823584c721460',1,'PaintingArea::PaintingArea()']]], + ['paintingarea_2ecpp_81',['PaintingArea.cpp',['../_painting_area_8cpp.html',1,'']]], + ['paintingarea_2eh_82',['PaintingArea.h',['../_painting_area_8h.html',1,'']]], + ['polygondata_83',['polygonData',['../class_intelli_shaped_image.html#a727d19ce314c0874be6b0633a3a603c8',1,'IntelliShapedImage']]] +]; diff --git a/docs/html/search/all_b.html b/docs/html/search/all_b.html new file mode 100644 index 0000000..1320a43 --- /dev/null +++ b/docs/html/search/all_b.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_b.js b/docs/html/search/all_b.js new file mode 100644 index 0000000..e7e870a --- /dev/null +++ b/docs/html/search/all_b.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['raster_5fimage_84',['Raster_Image',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0a80e1612d2117f2b25530317279ffe7b3',1,'IntelliImage.h']]], + ['resizeevent_85',['resizeEvent',['../class_painting_area.html#ab57e8ccda60fff7187463a90e65c5335',1,'PaintingArea']]], + ['resizeimage_86',['resizeImage',['../class_intelli_image.html#a177403ab9585d4ba31984a644c54d310',1,'IntelliImage']]] +]; diff --git a/docs/html/search/all_c.html b/docs/html/search/all_c.html new file mode 100644 index 0000000..32a3a1b --- /dev/null +++ b/docs/html/search/all_c.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_c.js b/docs/html/search/all_c.js new file mode 100644 index 0000000..337aa74 --- /dev/null +++ b/docs/html/search/all_c.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['save_87',['save',['../class_painting_area.html#a612176cc9d629d22fd3fe1a746cce564',1,'PaintingArea']]], + ['setalphaoflayer_88',['setAlphaOfLayer',['../class_painting_area.html#aec59be20f1c27135700754882dd6383d',1,'PaintingArea']]], + ['setfirstcolor_89',['setFirstColor',['../class_intelli_color_picker.html#a7e2ddbbbfbed383f06b24e5bf6b27ae8',1,'IntelliColorPicker']]], + ['setlayertoactive_90',['setLayerToActive',['../class_painting_area.html#a1d6d86c25efdce9fe9031a9cd01c74c8',1,'PaintingArea']]], + ['setpolygon_91',['setPolygon',['../class_intelli_image.html#aa4b3f4631bd972456917275afb9fd309',1,'IntelliImage::setPolygon()'],['../class_intelli_raster_image.html#a6462fa5f94c5e64e9e1f0c4658e0507b',1,'IntelliRasterImage::setPolygon()'],['../class_intelli_shaped_image.html#a4b69d75de7a3b85032482982f249458e',1,'IntelliShapedImage::setPolygon()']]], + ['setsecondcolor_92',['setSecondColor',['../class_intelli_color_picker.html#a86bf4a940e4a0e465e30cbdf28748931',1,'IntelliColorPicker']]], + ['shaped_5fimage_93',['Shaped_Image',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0ab7e2d2c1c171e5a0e0b6b548449df79d',1,'IntelliImage.h']]], + ['sign_94',['sign',['../class_intelli_helper.html#a67fc007dda64187f6cef7fba3fcd9e40',1,'IntelliHelper']]], + ['slotactivatelayer_95',['slotActivateLayer',['../class_painting_area.html#a71ac281e0de263208d4a3b9de74258ec',1,'PaintingArea']]], + ['slotcreatefloodfilltool_96',['slotCreateFloodFillTool',['../_intelli_photo_gui_8cpp.html#ac2f8320173dfaf943bb39e39cb1a23e5',1,'IntelliPhotoGui.cpp']]], + ['slotcreatepentool_97',['slotCreatePenTool',['../_intelli_photo_gui_8cpp.html#a30169da42b55e0339af0d28dfc8ccd40',1,'IntelliPhotoGui.cpp']]], + ['slotdeleteactivelayer_98',['slotDeleteActiveLayer',['../class_painting_area.html#a1ff0b9c1227531943c9cec2c546fae5e',1,'PaintingArea']]], + ['solid_5fline_99',['SOLID_LINE',['../_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7ae45e1e6b2e6dde14829d057a4ef44199',1,'IntelliToolLine.h']]], + ['switchcolors_100',['switchColors',['../class_intelli_color_picker.html#a437a6f20bf2fc0a4cbaf4c030c2a26d9',1,'IntelliColorPicker']]] +]; diff --git a/docs/html/search/all_d.html b/docs/html/search/all_d.html new file mode 100644 index 0000000..a386096 --- /dev/null +++ b/docs/html/search/all_d.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_d.js b/docs/html/search/all_d.js new file mode 100644 index 0000000..2880b28 --- /dev/null +++ b/docs/html/search/all_d.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['width_101',['width',['../struct_layer_object.html#af261813df52ff0b0c82bfa57efeb9897',1,'LayerObject']]], + ['widthoffset_102',['widthOffset',['../struct_layer_object.html#a72b44d27c7bbb60dde14f04ec240ab96',1,'LayerObject']]] +]; diff --git a/docs/html/search/all_e.html b/docs/html/search/all_e.html new file mode 100644 index 0000000..2931618 --- /dev/null +++ b/docs/html/search/all_e.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_e.js b/docs/html/search/all_e.js new file mode 100644 index 0000000..1cb8304 --- /dev/null +++ b/docs/html/search/all_e.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['_7eintellicolorpicker_103',['~IntelliColorPicker',['../class_intelli_color_picker.html#a40b975268a1f05249e8a49dde9a862ff',1,'IntelliColorPicker']]], + ['_7eintelliimage_104',['~IntelliImage',['../class_intelli_image.html#ac398bfa9ddd3185508a1e36ee15d80cc',1,'IntelliImage']]], + ['_7eintellirasterimage_105',['~IntelliRasterImage',['../class_intelli_raster_image.html#a844a2b58c43f7e01f2ca116286371bc8',1,'IntelliRasterImage']]], + ['_7eintellishapedimage_106',['~IntelliShapedImage',['../class_intelli_shaped_image.html#a43d63d8a814852d377ee2030658fbab9',1,'IntelliShapedImage']]], + ['_7eintellitool_107',['~IntelliTool',['../class_intelli_tool.html#a57fb1b27d364c9e3696eb928b75fa9f2',1,'IntelliTool']]], + ['_7eintellitoolline_108',['~IntelliToolLine',['../class_intelli_tool_line.html#acb600b0f4e9225ebce2937c2b7abb4c2',1,'IntelliToolLine']]], + ['_7eintellitoolpen_109',['~IntelliToolPen',['../class_intelli_tool_pen.html#ac77a025515d0fed6954556fe2b444818',1,'IntelliToolPen']]], + ['_7epaintingarea_110',['~PaintingArea',['../class_painting_area.html#a5654e04fb8e8c5595a2aae76e9163e0e',1,'PaintingArea']]] +]; diff --git a/docs/html/search/classes_0.html b/docs/html/search/classes_0.html new file mode 100644 index 0000000..d585e6a --- /dev/null +++ b/docs/html/search/classes_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/classes_0.js b/docs/html/search/classes_0.js new file mode 100644 index 0000000..2c7d4ed --- /dev/null +++ b/docs/html/search/classes_0.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['intellicolorpicker_111',['IntelliColorPicker',['../class_intelli_color_picker.html',1,'']]], + ['intellihelper_112',['IntelliHelper',['../class_intelli_helper.html',1,'']]], + ['intelliimage_113',['IntelliImage',['../class_intelli_image.html',1,'']]], + ['intelliphotogui_114',['IntelliPhotoGui',['../class_intelli_photo_gui.html',1,'']]], + ['intellirasterimage_115',['IntelliRasterImage',['../class_intelli_raster_image.html',1,'']]], + ['intellishapedimage_116',['IntelliShapedImage',['../class_intelli_shaped_image.html',1,'']]], + ['intellitool_117',['IntelliTool',['../class_intelli_tool.html',1,'']]], + ['intellitoolline_118',['IntelliToolLine',['../class_intelli_tool_line.html',1,'']]], + ['intellitoolpen_119',['IntelliToolPen',['../class_intelli_tool_pen.html',1,'']]], + ['intellitoolplaintool_120',['IntelliToolPlainTool',['../class_intelli_tool_plain_tool.html',1,'']]] +]; diff --git a/docs/html/search/classes_1.html b/docs/html/search/classes_1.html new file mode 100644 index 0000000..baeb182 --- /dev/null +++ b/docs/html/search/classes_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/classes_1.js b/docs/html/search/classes_1.js new file mode 100644 index 0000000..40c504d --- /dev/null +++ b/docs/html/search/classes_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['layerobject_121',['LayerObject',['../struct_layer_object.html',1,'']]] +]; diff --git a/docs/html/search/classes_2.html b/docs/html/search/classes_2.html new file mode 100644 index 0000000..d267279 --- /dev/null +++ b/docs/html/search/classes_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/classes_2.js b/docs/html/search/classes_2.js new file mode 100644 index 0000000..af8b139 --- /dev/null +++ b/docs/html/search/classes_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['paintingarea_122',['PaintingArea',['../class_painting_area.html',1,'']]] +]; diff --git a/docs/html/search/close.png b/docs/html/search/close.png new file mode 100644 index 0000000000000000000000000000000000000000..9342d3dfeea7b7c4ee610987e717804b5a42ceb9 GIT binary patch literal 273 zcmV+s0q*{ZP)4(RlMby96)VwnbG{ zbe&}^BDn7x>$<{ck4zAK-=nT;=hHG)kmplIF${xqm8db3oX6wT3bvp`TE@m0cg;b) zBuSL}5?N7O(iZLdAlz@)b)Rd~DnSsSX&P5qC`XwuFwcAYLC+d2>+1(8on;wpt8QIC X2MT$R4iQDd00000NkvXXu0mjfia~GN literal 0 HcmV?d00001 diff --git a/docs/html/search/enums_0.html b/docs/html/search/enums_0.html new file mode 100644 index 0000000..ae7a884 --- /dev/null +++ b/docs/html/search/enums_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/enums_0.js b/docs/html/search/enums_0.js new file mode 100644 index 0000000..4ffe290 --- /dev/null +++ b/docs/html/search/enums_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['imagetype_226',['ImageType',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0',1,'IntelliImage.h']]] +]; diff --git a/docs/html/search/enums_1.html b/docs/html/search/enums_1.html new file mode 100644 index 0000000..dfbb13a --- /dev/null +++ b/docs/html/search/enums_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/enums_1.js b/docs/html/search/enums_1.js new file mode 100644 index 0000000..6e48f9d --- /dev/null +++ b/docs/html/search/enums_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['linestyle_227',['LineStyle',['../_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7',1,'IntelliToolLine.h']]] +]; diff --git a/docs/html/search/enumvalues_0.html b/docs/html/search/enumvalues_0.html new file mode 100644 index 0000000..1c0bbf9 --- /dev/null +++ b/docs/html/search/enumvalues_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/enumvalues_0.js b/docs/html/search/enumvalues_0.js new file mode 100644 index 0000000..aeecac7 --- /dev/null +++ b/docs/html/search/enumvalues_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['dotted_5fline_228',['DOTTED_LINE',['../_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7a7660f396543c877e45d443f99d02bd0e',1,'IntelliToolLine.h']]] +]; diff --git a/docs/html/search/enumvalues_1.html b/docs/html/search/enumvalues_1.html new file mode 100644 index 0000000..070fd0b --- /dev/null +++ b/docs/html/search/enumvalues_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/enumvalues_1.js b/docs/html/search/enumvalues_1.js new file mode 100644 index 0000000..281cdaa --- /dev/null +++ b/docs/html/search/enumvalues_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['raster_5fimage_229',['Raster_Image',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0a80e1612d2117f2b25530317279ffe7b3',1,'IntelliImage.h']]] +]; diff --git a/docs/html/search/enumvalues_2.html b/docs/html/search/enumvalues_2.html new file mode 100644 index 0000000..25e9a37 --- /dev/null +++ b/docs/html/search/enumvalues_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/enumvalues_2.js b/docs/html/search/enumvalues_2.js new file mode 100644 index 0000000..018a379 --- /dev/null +++ b/docs/html/search/enumvalues_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['shaped_5fimage_230',['Shaped_Image',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0ab7e2d2c1c171e5a0e0b6b548449df79d',1,'IntelliImage.h']]], + ['solid_5fline_231',['SOLID_LINE',['../_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7ae45e1e6b2e6dde14829d057a4ef44199',1,'IntelliToolLine.h']]] +]; diff --git a/docs/html/search/files_0.html b/docs/html/search/files_0.html new file mode 100644 index 0000000..de151d5 --- /dev/null +++ b/docs/html/search/files_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/files_0.js b/docs/html/search/files_0.js new file mode 100644 index 0000000..194b39d --- /dev/null +++ b/docs/html/search/files_0.js @@ -0,0 +1,23 @@ +var searchData= +[ + ['intellicolorpicker_2ecpp_123',['IntelliColorPicker.cpp',['../_intelli_helper_2_intelli_color_picker_8cpp.html',1,'(Global Namespace)'],['../_tool_2_intelli_color_picker_8cpp.html',1,'(Global Namespace)']]], + ['intellicolorpicker_2eh_124',['IntelliColorPicker.h',['../_intelli_color_picker_8h.html',1,'']]], + ['intellihelper_2ecpp_125',['IntelliHelper.cpp',['../_intelli_helper_8cpp.html',1,'']]], + ['intellihelper_2eh_126',['IntelliHelper.h',['../_intelli_helper_8h.html',1,'']]], + ['intelliimage_2ecpp_127',['IntelliImage.cpp',['../_intelli_image_8cpp.html',1,'']]], + ['intelliimage_2eh_128',['IntelliImage.h',['../_intelli_image_8h.html',1,'']]], + ['intelliphotogui_2ecpp_129',['IntelliPhotoGui.cpp',['../_intelli_photo_gui_8cpp.html',1,'']]], + ['intelliphotogui_2eh_130',['IntelliPhotoGui.h',['../_intelli_photo_gui_8h.html',1,'']]], + ['intellirasterimage_2ecpp_131',['IntelliRasterImage.cpp',['../_intelli_raster_image_8cpp.html',1,'']]], + ['intellirasterimage_2eh_132',['IntelliRasterImage.h',['../_intelli_raster_image_8h.html',1,'']]], + ['intellishapedimage_2ecpp_133',['IntelliShapedImage.cpp',['../_intelli_shaped_image_8cpp.html',1,'']]], + ['intellishapedimage_2eh_134',['IntelliShapedImage.h',['../_intelli_shaped_image_8h.html',1,'']]], + ['intellitool_2ecpp_135',['IntelliTool.cpp',['../_intelli_tool_8cpp.html',1,'']]], + ['intellitool_2eh_136',['IntelliTool.h',['../_intelli_tool_8h.html',1,'']]], + ['intellitoolline_2ecpp_137',['IntelliToolLine.cpp',['../_intelli_tool_line_8cpp.html',1,'']]], + ['intellitoolline_2eh_138',['IntelliToolLine.h',['../_intelli_tool_line_8h.html',1,'']]], + ['intellitoolpen_2ecpp_139',['IntelliToolPen.cpp',['../_intelli_tool_pen_8cpp.html',1,'']]], + ['intellitoolpen_2eh_140',['IntelliToolPen.h',['../_intelli_tool_pen_8h.html',1,'']]], + ['intellitoolplain_2ecpp_141',['IntelliToolPlain.cpp',['../_intelli_tool_plain_8cpp.html',1,'']]], + ['intellitoolplain_2eh_142',['IntelliToolPlain.h',['../_intelli_tool_plain_8h.html',1,'']]] +]; diff --git a/docs/html/search/files_1.html b/docs/html/search/files_1.html new file mode 100644 index 0000000..73e2c8b --- /dev/null +++ b/docs/html/search/files_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/files_1.js b/docs/html/search/files_1.js new file mode 100644 index 0000000..ab7a20f --- /dev/null +++ b/docs/html/search/files_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['main_2ecpp_143',['main.cpp',['../main_8cpp.html',1,'']]] +]; diff --git a/docs/html/search/files_2.html b/docs/html/search/files_2.html new file mode 100644 index 0000000..24cb541 --- /dev/null +++ b/docs/html/search/files_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/files_2.js b/docs/html/search/files_2.js new file mode 100644 index 0000000..e3f1617 --- /dev/null +++ b/docs/html/search/files_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['paintingarea_2ecpp_144',['PaintingArea.cpp',['../_painting_area_8cpp.html',1,'']]], + ['paintingarea_2eh_145',['PaintingArea.h',['../_painting_area_8h.html',1,'']]] +]; diff --git a/docs/html/search/functions_0.html b/docs/html/search/functions_0.html new file mode 100644 index 0000000..8a729f7 --- /dev/null +++ b/docs/html/search/functions_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_0.js b/docs/html/search/functions_0.js new file mode 100644 index 0000000..d6dd1f2 --- /dev/null +++ b/docs/html/search/functions_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['addlayer_146',['addLayer',['../class_painting_area.html#a39ad76e1319659bfa38eee88ef33d395',1,'PaintingArea']]], + ['addlayerat_147',['addLayerAt',['../class_painting_area.html#ae756003b49aead863b49616ea7a44cc0',1,'PaintingArea']]] +]; diff --git a/docs/html/search/functions_1.html b/docs/html/search/functions_1.html new file mode 100644 index 0000000..d4929aa --- /dev/null +++ b/docs/html/search/functions_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_1.js b/docs/html/search/functions_1.js new file mode 100644 index 0000000..0bf24cc --- /dev/null +++ b/docs/html/search/functions_1.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['calculatevisiblity_148',['calculateVisiblity',['../class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2',1,'IntelliImage::calculateVisiblity()'],['../class_intelli_raster_image.html#a87cf2d360c129d64a5db0db85818eb60',1,'IntelliRasterImage::calculateVisiblity()'],['../class_intelli_shaped_image.html#a0221d93c3c8990f7dab332454cc21f50',1,'IntelliShapedImage::calculateVisiblity()']]], + ['closeevent_149',['closeEvent',['../class_intelli_photo_gui.html#a2cf48070236ae8b35245e7f30482ef13',1,'IntelliPhotoGui']]], + ['colorpickersetfirstcolor_150',['colorPickerSetFirstColor',['../class_painting_area.html#a4735d4cf1dc58a9096d904e74c39c4df',1,'PaintingArea']]], + ['colorpickersetsecondcolor_151',['colorPickerSetSecondColor',['../class_painting_area.html#ae261acaaa346610dfed489dbac17e789',1,'PaintingArea']]], + ['colorpickerswitchcolor_152',['colorPickerSwitchColor',['../class_painting_area.html#a66115307ff4a99cd7ca16423c5c8ecfb',1,'PaintingArea']]], + ['createlinetool_153',['createLineTool',['../class_painting_area.html#a240c33a7875addac86080cdfb0db036a',1,'PaintingArea']]], + ['createpentool_154',['createPenTool',['../class_painting_area.html#a96c6248e343e44b61cf2625cb6d21353',1,'PaintingArea']]], + ['createplaintool_155',['createPlainTool',['../class_painting_area.html#a3de83443d2d5cf460ff48d0602070938',1,'PaintingArea']]] +]; diff --git a/docs/html/search/functions_2.html b/docs/html/search/functions_2.html new file mode 100644 index 0000000..07e3fda --- /dev/null +++ b/docs/html/search/functions_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_2.js b/docs/html/search/functions_2.js new file mode 100644 index 0000000..6389c61 --- /dev/null +++ b/docs/html/search/functions_2.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['deletelayer_156',['deleteLayer',['../class_painting_area.html#a6efad6f8ea060674b157b42b431cd173',1,'PaintingArea']]], + ['drawline_157',['drawLine',['../class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31',1,'IntelliImage']]], + ['drawpixel_158',['drawPixel',['../class_intelli_image.html#af3c859f5c409e37051edfd9e9fbca056',1,'IntelliImage']]], + ['drawplain_159',['drawPlain',['../class_intelli_image.html#a6be622810dc2bc756054bb5769becb06',1,'IntelliImage']]] +]; diff --git a/docs/html/search/functions_3.html b/docs/html/search/functions_3.html new file mode 100644 index 0000000..40bd389 --- /dev/null +++ b/docs/html/search/functions_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_3.js b/docs/html/search/functions_3.js new file mode 100644 index 0000000..fd7e638 --- /dev/null +++ b/docs/html/search/functions_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['floodfill_160',['floodFill',['../class_painting_area.html#aeb5eb394b979ea90f2be9849fdda1774',1,'PaintingArea']]] +]; diff --git a/docs/html/search/functions_4.html b/docs/html/search/functions_4.html new file mode 100644 index 0000000..8a4df4c --- /dev/null +++ b/docs/html/search/functions_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_4.js b/docs/html/search/functions_4.js new file mode 100644 index 0000000..83ae2d0 --- /dev/null +++ b/docs/html/search/functions_4.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['getdeepcopy_161',['getDeepCopy',['../class_intelli_image.html#af6381067bdf565669f856bb589008ae9',1,'IntelliImage::getDeepCopy()'],['../class_intelli_raster_image.html#a8f901301b106504de3c27308ade897dc',1,'IntelliRasterImage::getDeepCopy()'],['../class_intelli_shaped_image.html#aed0b31e0fa771104399d1f5ff39a0337',1,'IntelliShapedImage::getDeepCopy()']]], + ['getdisplayable_162',['getDisplayable',['../class_intelli_image.html#a21c7e65b59a26db45aac3880133ef21d',1,'IntelliImage::getDisplayable(const QSize &displaySize, int alpha)=0'],['../class_intelli_image.html#a9d4daf3c48c64695105689f61c21bae0',1,'IntelliImage::getDisplayable(int alpha=255)=0'],['../class_intelli_raster_image.html#ae43393397b0141a8033fe34d3a1b1884',1,'IntelliRasterImage::getDisplayable(const QSize &displaySize, int alpha) override'],['../class_intelli_raster_image.html#a612d79124f0e2c158a4f0abbe4b5f97f',1,'IntelliRasterImage::getDisplayable(int alpha=255) override'],['../class_intelli_shaped_image.html#a68cf374247c16f07fd84d50e4cd05630',1,'IntelliShapedImage::getDisplayable(const QSize &displaySize, int alpha=255) override'],['../class_intelli_shaped_image.html#ac6a99e1a96134073bceea252b37636cc',1,'IntelliShapedImage::getDisplayable(int alpha=255) override']]], + ['getfirstcolor_163',['getFirstColor',['../class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7',1,'IntelliColorPicker']]], + ['getpolygondata_164',['getPolygonData',['../class_intelli_image.html#aaf9f3e8db8666850024bee9aad9966ba',1,'IntelliImage::getPolygonData()'],['../class_intelli_shaped_image.html#ae4518c7f5a105cc4f33fabb60c794a93',1,'IntelliShapedImage::getPolygonData()']]], + ['getsecondcolor_165',['getSecondColor',['../class_intelli_color_picker.html#a55568fbf5dc783f06284b7031ffe9415',1,'IntelliColorPicker']]] +]; diff --git a/docs/html/search/functions_5.html b/docs/html/search/functions_5.html new file mode 100644 index 0000000..2b983b2 --- /dev/null +++ b/docs/html/search/functions_5.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_5.js b/docs/html/search/functions_5.js new file mode 100644 index 0000000..aa83ce4 --- /dev/null +++ b/docs/html/search/functions_5.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['intellicolorpicker_166',['IntelliColorPicker',['../class_intelli_color_picker.html#a0d1247bdd87add1396ea5d9acaad79ae',1,'IntelliColorPicker']]], + ['intelliimage_167',['IntelliImage',['../class_intelli_image.html#a47084f1cb668ea0242ab95162cf9e902',1,'IntelliImage']]], + ['intelliphotogui_168',['IntelliPhotoGui',['../class_intelli_photo_gui.html#ad2aaec3c1517a9aaa461b54e341b97e0',1,'IntelliPhotoGui']]], + ['intellirasterimage_169',['IntelliRasterImage',['../class_intelli_raster_image.html#aad9b561fe499a4da3c6ef98971aa3468',1,'IntelliRasterImage']]], + ['intellishapedimage_170',['IntelliShapedImage',['../class_intelli_shaped_image.html#a0f834c3f255baeb50c98ef335a6d0ea9',1,'IntelliShapedImage']]], + ['intellitool_171',['IntelliTool',['../class_intelli_tool.html#a346dd55d489fced38e7bb46f9168af91',1,'IntelliTool']]], + ['intellitoolline_172',['IntelliToolLine',['../class_intelli_tool_line.html#a9b2d4bcd69409a21f6080edfea4ae2a2',1,'IntelliToolLine']]], + ['intellitoolpen_173',['IntelliToolPen',['../class_intelli_tool_pen.html#a889891b3ae7cdefb881aed2e7fff9b47',1,'IntelliToolPen']]], + ['intellitoolplaintool_174',['IntelliToolPlainTool',['../class_intelli_tool_plain_tool.html#a0ff0b9f7b78b763683076e4417236859',1,'IntelliToolPlainTool']]], + ['isintriangle_175',['isInTriangle',['../class_intelli_helper.html#a04bdb4f53b89dded693ba6e896f4c63f',1,'IntelliHelper']]] +]; diff --git a/docs/html/search/functions_6.html b/docs/html/search/functions_6.html new file mode 100644 index 0000000..f7d283d --- /dev/null +++ b/docs/html/search/functions_6.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_6.js b/docs/html/search/functions_6.js new file mode 100644 index 0000000..07c3d97 --- /dev/null +++ b/docs/html/search/functions_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['loadimage_176',['loadImage',['../class_intelli_image.html#aec0e9c8184d89dee33fd9adefbd2f8aa',1,'IntelliImage']]] +]; diff --git a/docs/html/search/functions_7.html b/docs/html/search/functions_7.html new file mode 100644 index 0000000..a74fe44 --- /dev/null +++ b/docs/html/search/functions_7.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_7.js b/docs/html/search/functions_7.js new file mode 100644 index 0000000..0b7463b --- /dev/null +++ b/docs/html/search/functions_7.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['main_177',['main',['../main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main.cpp']]], + ['mousemoveevent_178',['mouseMoveEvent',['../class_painting_area.html#aa22e274b6094a9619f196cd7b49526b5',1,'PaintingArea']]], + ['mousepressevent_179',['mousePressEvent',['../class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15',1,'PaintingArea']]], + ['mousereleaseevent_180',['mouseReleaseEvent',['../class_painting_area.html#a35b5df914acb608cc29717659793359c',1,'PaintingArea']]], + ['moveactivelayer_181',['moveActiveLayer',['../class_painting_area.html#ae05f6893fb44bfcb34018573a609cd1a',1,'PaintingArea']]], + ['movepositionactive_182',['movePositionActive',['../class_painting_area.html#ac6d089f4357b22d9a9906fd4771de3e7',1,'PaintingArea']]] +]; diff --git a/docs/html/search/functions_8.html b/docs/html/search/functions_8.html new file mode 100644 index 0000000..75fc0be --- /dev/null +++ b/docs/html/search/functions_8.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_8.js b/docs/html/search/functions_8.js new file mode 100644 index 0000000..5c7b046 --- /dev/null +++ b/docs/html/search/functions_8.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['onmouseleftpressed_183',['onMouseLeftPressed',['../class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c',1,'IntelliTool::onMouseLeftPressed()'],['../class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846',1,'IntelliToolLine::onMouseLeftPressed()'],['../class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205',1,'IntelliToolPen::onMouseLeftPressed()'],['../class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9',1,'IntelliToolPlainTool::onMouseLeftPressed()']]], + ['onmouseleftreleased_184',['onMouseLeftReleased',['../class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b',1,'IntelliTool::onMouseLeftReleased()'],['../class_intelli_tool_line.html#ac93f76ff20a1c111a403b298bab02482',1,'IntelliToolLine::onMouseLeftReleased()'],['../class_intelli_tool_pen.html#abda7a22b9766fa4ad254324a53cab94d',1,'IntelliToolPen::onMouseLeftReleased()'],['../class_intelli_tool_plain_tool.html#ac23f5d0f07e42fd7c2ea3fc1347da400',1,'IntelliToolPlainTool::onMouseLeftReleased()']]], + ['onmousemoved_185',['onMouseMoved',['../class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639',1,'IntelliTool::onMouseMoved()'],['../class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b',1,'IntelliToolLine::onMouseMoved()'],['../class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2',1,'IntelliToolPen::onMouseMoved()'],['../class_intelli_tool_plain_tool.html#ad7546a6335bb3bb4cbf0e1883788d41c',1,'IntelliToolPlainTool::onMouseMoved()']]], + ['onmouserightpressed_186',['onMouseRightPressed',['../class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966',1,'IntelliTool::onMouseRightPressed()'],['../class_intelli_tool_line.html#a6cce59f3017936214b10b47252a898a3',1,'IntelliToolLine::onMouseRightPressed()'],['../class_intelli_tool_pen.html#a1751e3864a0d36ef42ca55021cae73ce',1,'IntelliToolPen::onMouseRightPressed()'],['../class_intelli_tool_plain_tool.html#acb0c46e16d2c09370a2244a936de38b1',1,'IntelliToolPlainTool::onMouseRightPressed()']]], + ['onmouserightreleased_187',['onMouseRightReleased',['../class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0',1,'IntelliTool::onMouseRightReleased()'],['../class_intelli_tool_line.html#a6214918cba5753f89d97de4559a2b9b2',1,'IntelliToolLine::onMouseRightReleased()'],['../class_intelli_tool_pen.html#abf8562e8cd2da586afdf4d47b3a4ff13',1,'IntelliToolPen::onMouseRightReleased()'],['../class_intelli_tool_plain_tool.html#a2ae458f1b04eb77a47f6dca5e91e33b8',1,'IntelliToolPlainTool::onMouseRightReleased()']]], + ['open_188',['open',['../class_painting_area.html#a1f597740b4d7b4bc2e24c51f8cb0b6eb',1,'PaintingArea']]] +]; diff --git a/docs/html/search/functions_9.html b/docs/html/search/functions_9.html new file mode 100644 index 0000000..7541c9e --- /dev/null +++ b/docs/html/search/functions_9.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_9.js b/docs/html/search/functions_9.js new file mode 100644 index 0000000..c01c2ea --- /dev/null +++ b/docs/html/search/functions_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['paintevent_189',['paintEvent',['../class_painting_area.html#a4a8138b9508ee4ec87a7fca9160368a7',1,'PaintingArea']]], + ['paintingarea_190',['PaintingArea',['../class_painting_area.html#a4fa0ec23e78cc59f28c823584c721460',1,'PaintingArea']]] +]; diff --git a/docs/html/search/functions_a.html b/docs/html/search/functions_a.html new file mode 100644 index 0000000..5a5be63 --- /dev/null +++ b/docs/html/search/functions_a.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_a.js b/docs/html/search/functions_a.js new file mode 100644 index 0000000..f6e0f6c --- /dev/null +++ b/docs/html/search/functions_a.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['resizeevent_191',['resizeEvent',['../class_painting_area.html#ab57e8ccda60fff7187463a90e65c5335',1,'PaintingArea']]], + ['resizeimage_192',['resizeImage',['../class_intelli_image.html#a177403ab9585d4ba31984a644c54d310',1,'IntelliImage']]] +]; diff --git a/docs/html/search/functions_b.html b/docs/html/search/functions_b.html new file mode 100644 index 0000000..fc2d5aa --- /dev/null +++ b/docs/html/search/functions_b.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_b.js b/docs/html/search/functions_b.js new file mode 100644 index 0000000..51c40c8 --- /dev/null +++ b/docs/html/search/functions_b.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['save_193',['save',['../class_painting_area.html#a612176cc9d629d22fd3fe1a746cce564',1,'PaintingArea']]], + ['setalphaoflayer_194',['setAlphaOfLayer',['../class_painting_area.html#aec59be20f1c27135700754882dd6383d',1,'PaintingArea']]], + ['setfirstcolor_195',['setFirstColor',['../class_intelli_color_picker.html#a7e2ddbbbfbed383f06b24e5bf6b27ae8',1,'IntelliColorPicker']]], + ['setlayertoactive_196',['setLayerToActive',['../class_painting_area.html#a1d6d86c25efdce9fe9031a9cd01c74c8',1,'PaintingArea']]], + ['setpolygon_197',['setPolygon',['../class_intelli_image.html#aa4b3f4631bd972456917275afb9fd309',1,'IntelliImage::setPolygon()'],['../class_intelli_raster_image.html#a6462fa5f94c5e64e9e1f0c4658e0507b',1,'IntelliRasterImage::setPolygon()'],['../class_intelli_shaped_image.html#a4b69d75de7a3b85032482982f249458e',1,'IntelliShapedImage::setPolygon()']]], + ['setsecondcolor_198',['setSecondColor',['../class_intelli_color_picker.html#a86bf4a940e4a0e465e30cbdf28748931',1,'IntelliColorPicker']]], + ['sign_199',['sign',['../class_intelli_helper.html#a67fc007dda64187f6cef7fba3fcd9e40',1,'IntelliHelper']]], + ['slotactivatelayer_200',['slotActivateLayer',['../class_painting_area.html#a71ac281e0de263208d4a3b9de74258ec',1,'PaintingArea']]], + ['slotcreatefloodfilltool_201',['slotCreateFloodFillTool',['../_intelli_photo_gui_8cpp.html#ac2f8320173dfaf943bb39e39cb1a23e5',1,'IntelliPhotoGui.cpp']]], + ['slotcreatepentool_202',['slotCreatePenTool',['../_intelli_photo_gui_8cpp.html#a30169da42b55e0339af0d28dfc8ccd40',1,'IntelliPhotoGui.cpp']]], + ['slotdeleteactivelayer_203',['slotDeleteActiveLayer',['../class_painting_area.html#a1ff0b9c1227531943c9cec2c546fae5e',1,'PaintingArea']]], + ['switchcolors_204',['switchColors',['../class_intelli_color_picker.html#a437a6f20bf2fc0a4cbaf4c030c2a26d9',1,'IntelliColorPicker']]] +]; diff --git a/docs/html/search/functions_c.html b/docs/html/search/functions_c.html new file mode 100644 index 0000000..a1a1437 --- /dev/null +++ b/docs/html/search/functions_c.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_c.js b/docs/html/search/functions_c.js new file mode 100644 index 0000000..ef0ba49 --- /dev/null +++ b/docs/html/search/functions_c.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['_7eintellicolorpicker_205',['~IntelliColorPicker',['../class_intelli_color_picker.html#a40b975268a1f05249e8a49dde9a862ff',1,'IntelliColorPicker']]], + ['_7eintelliimage_206',['~IntelliImage',['../class_intelli_image.html#ac398bfa9ddd3185508a1e36ee15d80cc',1,'IntelliImage']]], + ['_7eintellirasterimage_207',['~IntelliRasterImage',['../class_intelli_raster_image.html#a844a2b58c43f7e01f2ca116286371bc8',1,'IntelliRasterImage']]], + ['_7eintellishapedimage_208',['~IntelliShapedImage',['../class_intelli_shaped_image.html#a43d63d8a814852d377ee2030658fbab9',1,'IntelliShapedImage']]], + ['_7eintellitool_209',['~IntelliTool',['../class_intelli_tool.html#a57fb1b27d364c9e3696eb928b75fa9f2',1,'IntelliTool']]], + ['_7eintellitoolline_210',['~IntelliToolLine',['../class_intelli_tool_line.html#acb600b0f4e9225ebce2937c2b7abb4c2',1,'IntelliToolLine']]], + ['_7eintellitoolpen_211',['~IntelliToolPen',['../class_intelli_tool_pen.html#ac77a025515d0fed6954556fe2b444818',1,'IntelliToolPen']]], + ['_7epaintingarea_212',['~PaintingArea',['../class_painting_area.html#a5654e04fb8e8c5595a2aae76e9163e0e',1,'PaintingArea']]] +]; diff --git a/docs/html/search/mag_sel.png b/docs/html/search/mag_sel.png new file mode 100644 index 0000000000000000000000000000000000000000..39c0ed52a25dd9d080ee0d42ae6c6042bdfa04d7 GIT binary patch literal 465 zcmeAS@N?(olHy`uVBq!ia0vp^B0wz6!2%?$TA$hhDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~NU84L`?eGCi_EEpJ?t}-xGu`@87+QPtK?83kxQ`TapwHK(CDaqU2h2ejD|C#+j z9%q3^WHAE+w=f7ZGR&GI0Tg5}@$_|Nf5gMiEhFgvHvB$N=!mC_V~EE2vzPXI9ZnEo zd+1zHor@dYLod2Y{ z@R$7$Z!PXTbY$|@#T!bMzm?`b<(R`cbw(gxJHzu zB$lLFB^RXvDF!10LknF)BV7aY5JN*NBMU1-b8Q0yD+2>vd*|CI8glbfGSez?Ylunu RoetE%;OXk;vd$@?2>>CYplSdB literal 0 HcmV?d00001 diff --git a/docs/html/search/nomatches.html b/docs/html/search/nomatches.html new file mode 100644 index 0000000..4377320 --- /dev/null +++ b/docs/html/search/nomatches.html @@ -0,0 +1,12 @@ + + + + + + + +
    +
    No Matches
    +
    + + diff --git a/docs/html/search/search.css b/docs/html/search/search.css new file mode 100644 index 0000000..4114870 --- /dev/null +++ b/docs/html/search/search.css @@ -0,0 +1,271 @@ +/*---------------- Search Box */ + +#FSearchBox { + float: left; +} + +#MSearchBox { + white-space : nowrap; + float: none; + margin-top: 8px; + right: 0px; + width: 170px; + height: 24px; + z-index: 102; +} + +#MSearchBox .left +{ + display:block; + position:absolute; + left:10px; + width:20px; + height:19px; + background:url('search_l.png') no-repeat; + background-position:right; +} + +#MSearchSelect { + display:block; + position:absolute; + width:20px; + height:19px; +} + +.left #MSearchSelect { + left:4px; +} + +.right #MSearchSelect { + right:5px; +} + +#MSearchField { + display:block; + position:absolute; + height:19px; + background:url('search_m.png') repeat-x; + border:none; + width:115px; + margin-left:20px; + padding-left:4px; + color: #909090; + outline: none; + font: 9pt Arial, Verdana, sans-serif; + -webkit-border-radius: 0px; +} + +#FSearchBox #MSearchField { + margin-left:15px; +} + +#MSearchBox .right { + display:block; + position:absolute; + right:10px; + top:8px; + width:20px; + height:19px; + background:url('search_r.png') no-repeat; + background-position:left; +} + +#MSearchClose { + display: none; + position: absolute; + top: 4px; + background : none; + border: none; + margin: 0px 4px 0px 0px; + padding: 0px 0px; + outline: none; +} + +.left #MSearchClose { + left: 6px; +} + +.right #MSearchClose { + right: 2px; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #AFAFAF; + background-color: #FAFAFB; + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #646465; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + width: 60ex; + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #F2F2F2; + z-index:10000; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #6C6C6D; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #6C6C6D; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; +} + +.SRResult { + display: none; +} + +DIV.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.searchresult { + background-color: #F4F4F4; +} + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/docs/html/search/search.js b/docs/html/search/search.js new file mode 100644 index 0000000..a554ab9 --- /dev/null +++ b/docs/html/search/search.js @@ -0,0 +1,814 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches.html'; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName == 'DIV' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName == 'DIV' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; e(R!W8j_r#qQ#gnr4kAxdU#F0+OBry$Z+ z_0PMi;P|#{d%mw(dnw=jM%@$onTJa%@6Nm3`;2S#nwtVFJI#`U@2Q@@JCCctagvF- z8H=anvo~dTmJ2YA%wA6IHRv%{vxvUm|R)kgZeo zmX%Zb;mpflGZdXCTAgit`||AFzkI#z&(3d4(htA?U2FOL4WF6wY&TB#n3n*I4+hl| z*NBpo#FA92vEu822WQ%mvv4FO#qs` BFGc_W literal 0 HcmV?d00001 diff --git a/docs/html/search/search_r.png b/docs/html/search/search_r.png new file mode 100644 index 0000000000000000000000000000000000000000..1af5d21ee13e070d7600f1c4657fde843b953a69 GIT binary patch literal 553 zcmeAS@N?(olHy`uVBq!ia0vp^LO?9c!2%@BXHTsJQY`6?zK#qG8~eHcB(ehe3dtTp zz6=bxGZ+|(`xqD=STHa&U1eaXVrO7DwS|Gf*oA>XrmV$GYcEhOQT(QLuS{~ooZ2P@v=Xc@RKW@Irliv8_;wroU0*)0O?temdsA~70jrdux+`@W7 z-N(<(C)L?hOO?KV{>8(jC{hpKsws)#Fh zvsO>IB+gb@b+rGWaO&!a9Z{!U+fV*s7TS>fdt&j$L%^U@Epd$~Nl7e8wMs5Z1yT$~ z28I^8hDN#u<{^fLRz?<9hUVG^237_Jy7tbuQ8eV{r(~v8;?@w8^gA7>fx*+&&t;uc GLK6VEQpiUD literal 0 HcmV?d00001 diff --git a/docs/html/search/searchdata.js b/docs/html/search/searchdata.js new file mode 100644 index 0000000..26025dc --- /dev/null +++ b/docs/html/search/searchdata.js @@ -0,0 +1,33 @@ +var indexSectionsWithContent = +{ + 0: "acdfghilmoprsw~", + 1: "ilp", + 2: "imp", + 3: "acdfgilmoprs~", + 4: "acdhipw", + 5: "il", + 6: "drs" +}; + +var indexSectionNames = +{ + 0: "all", + 1: "classes", + 2: "files", + 3: "functions", + 4: "variables", + 5: "enums", + 6: "enumvalues" +}; + +var indexSectionLabels = +{ + 0: "All", + 1: "Classes", + 2: "Files", + 3: "Functions", + 4: "Variables", + 5: "Enumerations", + 6: "Enumerator" +}; + diff --git a/docs/html/search/variables_0.html b/docs/html/search/variables_0.html new file mode 100644 index 0000000..a2a3ae6 --- /dev/null +++ b/docs/html/search/variables_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_0.js b/docs/html/search/variables_0.js new file mode 100644 index 0000000..2715cd6 --- /dev/null +++ b/docs/html/search/variables_0.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['active_213',['Active',['../class_intelli_tool.html#a13512e95d21a9934ecb36d73b118c25f',1,'IntelliTool']]], + ['alpha_214',['alpha',['../struct_layer_object.html#a402cb1d9f20436032fe080681b80eb56',1,'LayerObject']]], + ['area_215',['Area',['../class_intelli_tool.html#ab4c2698a0f9f25fb6639ec760d2d0289',1,'IntelliTool']]] +]; diff --git a/docs/html/search/variables_1.html b/docs/html/search/variables_1.html new file mode 100644 index 0000000..b243c42 --- /dev/null +++ b/docs/html/search/variables_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_1.js b/docs/html/search/variables_1.js new file mode 100644 index 0000000..eb35d6f --- /dev/null +++ b/docs/html/search/variables_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['canvas_216',['Canvas',['../class_intelli_tool.html#a144d469cc03584f501194529a1b53c77',1,'IntelliTool']]], + ['colorpicker_217',['colorPicker',['../class_intelli_tool.html#ae2e0ac394611a361ab4ef2fe55c03fef',1,'IntelliTool']]] +]; diff --git a/docs/html/search/variables_2.html b/docs/html/search/variables_2.html new file mode 100644 index 0000000..647df20 --- /dev/null +++ b/docs/html/search/variables_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_2.js b/docs/html/search/variables_2.js new file mode 100644 index 0000000..535acf1 --- /dev/null +++ b/docs/html/search/variables_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['drawing_218',['drawing',['../class_intelli_tool.html#af256de16e9825922d20a23d11617b51b',1,'IntelliTool']]] +]; diff --git a/docs/html/search/variables_3.html b/docs/html/search/variables_3.html new file mode 100644 index 0000000..9dc9b89 --- /dev/null +++ b/docs/html/search/variables_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_3.js b/docs/html/search/variables_3.js new file mode 100644 index 0000000..cb43fe8 --- /dev/null +++ b/docs/html/search/variables_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['hight_219',['hight',['../struct_layer_object.html#a4b1729dbf7d3490e4c2776e29ffef8b0',1,'LayerObject']]], + ['hightoffset_220',['hightOffset',['../struct_layer_object.html#a6256486a76c38baa3f1c664f4d190743',1,'LayerObject']]] +]; diff --git a/docs/html/search/variables_4.html b/docs/html/search/variables_4.html new file mode 100644 index 0000000..78cc2c7 --- /dev/null +++ b/docs/html/search/variables_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_4.js b/docs/html/search/variables_4.js new file mode 100644 index 0000000..5b74f2e --- /dev/null +++ b/docs/html/search/variables_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['image_221',['image',['../struct_layer_object.html#af01a139bc8edfdbb338393874e89bd83',1,'LayerObject']]], + ['imagedata_222',['imageData',['../class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2',1,'IntelliImage']]] +]; diff --git a/docs/html/search/variables_5.html b/docs/html/search/variables_5.html new file mode 100644 index 0000000..dfa3558 --- /dev/null +++ b/docs/html/search/variables_5.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_5.js b/docs/html/search/variables_5.js new file mode 100644 index 0000000..7a10751 --- /dev/null +++ b/docs/html/search/variables_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['polygondata_223',['polygonData',['../class_intelli_shaped_image.html#a727d19ce314c0874be6b0633a3a603c8',1,'IntelliShapedImage']]] +]; diff --git a/docs/html/search/variables_6.html b/docs/html/search/variables_6.html new file mode 100644 index 0000000..cd462bd --- /dev/null +++ b/docs/html/search/variables_6.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_6.js b/docs/html/search/variables_6.js new file mode 100644 index 0000000..54c3053 --- /dev/null +++ b/docs/html/search/variables_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['width_224',['width',['../struct_layer_object.html#af261813df52ff0b0c82bfa57efeb9897',1,'LayerObject']]], + ['widthoffset_225',['widthOffset',['../struct_layer_object.html#a72b44d27c7bbb60dde14f04ec240ab96',1,'LayerObject']]] +]; diff --git a/docs/html/splitbar.png b/docs/html/splitbar.png new file mode 100644 index 0000000000000000000000000000000000000000..343046b612b0bef5191e66080ff3bff2338a121e GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf@Vh3v=57WL!Tw zYfCnYCNSG5Pk3-a=ZFUXdA1Eq$_q4ov(~NreaG|M?nl#~|KqNi9(1iVc3SGZ=b5vP z75-s5q3-FRLMp1A(D%6F`@Z+~t5&Ugy=zs@kf3$>Phsonp+`m)LO(%OI5^=;38 qepfl~ectV77gZD{k%9g#loz>Y`|5vS(>$PO89ZJ6T-G@yGywqTerZbp literal 0 HcmV?d00001 diff --git a/docs/html/struct_layer_object-members.html b/docs/html/struct_layer_object-members.html new file mode 100644 index 0000000..8009fdb --- /dev/null +++ b/docs/html/struct_layer_object-members.html @@ -0,0 +1,113 @@ + + + + + + + +IntelliPhoto: Member List + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    IntelliPhoto +  0.4 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    LayerObject Member List
    +
    +
    + +

    This is the complete list of members for LayerObject, including all inherited members.

    + + + + + + + +
    alphaLayerObject
    hightLayerObject
    hightOffsetLayerObject
    imageLayerObject
    widthLayerObject
    widthOffsetLayerObject
    +
    + + + + diff --git a/docs/html/struct_layer_object.html b/docs/html/struct_layer_object.html new file mode 100644 index 0000000..cace5f7 --- /dev/null +++ b/docs/html/struct_layer_object.html @@ -0,0 +1,234 @@ + + + + + + + +IntelliPhoto: LayerObject Struct Reference + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    IntelliPhoto +  0.4 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    LayerObject Struct Reference
    +
    +
    + +

    #include <PaintingArea.h>

    +
    +Collaboration diagram for LayerObject:
    +
    +
    Collaboration graph
    +
    [legend]
    + + + + + + + + + + + + + + +

    +Public Attributes

    IntelliImageimage
     
    int width
     
    int hight
     
    int widthOffset
     
    int hightOffset
     
    int alpha =255
     
    +

    Detailed Description

    +
    +

    Definition at line 17 of file PaintingArea.h.

    +

    Member Data Documentation

    + +

    ◆ alpha

    + +
    +
    + + + + +
    int LayerObject::alpha =255
    +
    + +

    Definition at line 23 of file PaintingArea.h.

    + +
    +
    + +

    ◆ hight

    + +
    +
    + + + + +
    int LayerObject::hight
    +
    + +

    Definition at line 20 of file PaintingArea.h.

    + +
    +
    + +

    ◆ hightOffset

    + +
    +
    + + + + +
    int LayerObject::hightOffset
    +
    + +

    Definition at line 22 of file PaintingArea.h.

    + +
    +
    + +

    ◆ image

    + +
    +
    + + + + +
    IntelliImage* LayerObject::image
    +
    + +

    Definition at line 18 of file PaintingArea.h.

    + +
    +
    + +

    ◆ width

    + +
    +
    + + + + +
    int LayerObject::width
    +
    + +

    Definition at line 19 of file PaintingArea.h.

    + +
    +
    + +

    ◆ widthOffset

    + +
    +
    + + + + +
    int LayerObject::widthOffset
    +
    + +

    Definition at line 21 of file PaintingArea.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/docs/html/struct_layer_object.js b/docs/html/struct_layer_object.js new file mode 100644 index 0000000..34361c9 --- /dev/null +++ b/docs/html/struct_layer_object.js @@ -0,0 +1,9 @@ +var struct_layer_object = +[ + [ "alpha", "struct_layer_object.html#a402cb1d9f20436032fe080681b80eb56", null ], + [ "hight", "struct_layer_object.html#a4b1729dbf7d3490e4c2776e29ffef8b0", null ], + [ "hightOffset", "struct_layer_object.html#a6256486a76c38baa3f1c664f4d190743", null ], + [ "image", "struct_layer_object.html#af01a139bc8edfdbb338393874e89bd83", null ], + [ "width", "struct_layer_object.html#af261813df52ff0b0c82bfa57efeb9897", null ], + [ "widthOffset", "struct_layer_object.html#a72b44d27c7bbb60dde14f04ec240ab96", null ] +]; \ No newline at end of file diff --git a/docs/html/struct_layer_object__coll__graph.dot b/docs/html/struct_layer_object__coll__graph.dot new file mode 100644 index 0000000..589d624 --- /dev/null +++ b/docs/html/struct_layer_object__coll__graph.dot @@ -0,0 +1,9 @@ +digraph "LayerObject" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node2 -> Node1 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" image" ,fontname="Helvetica"]; + Node2 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip=" "]; +} diff --git a/docs/html/sync_off.png b/docs/html/sync_off.png new file mode 100644 index 0000000000000000000000000000000000000000..05a52f3d75b2dce7379a1af05a26e2ebbf866b54 GIT binary patch literal 843 zcmV-R1GM~!P)`DY>Y!}_liWh3tYEv&PSY7UfB3`su*am6iAZuFoyoZzKoYSPVrMEB7kGwhO@IL2# z&--y}8youxAeU+p5}o3RaEm;#BwmZCcr4xkWRnk&MWy&ojOum36zbX`{r(5>tN2m8 z1x%4GLBIG}d~2TWnJ*$DOp*8>Lw09m=+ zZjK!rz~LwWuo_XlPzeS^sqs!xQ4uFjo*>}&+f%D4fUJ_qB=z<6L?XkKmYJGJmr<3V z+jzxO3ZQG(<^B$;K02pO>z#PI`K} zHR;mb-9>YAv#HmE;V{iDnQLnDs01!m>+L;CFc_2%XCBY}RaG=KHPO(}AaANYs+GpZ zMtnXWkO{lp&gUH+3=W3>Nq=mWz^2uTivhMYKK{G*YwQVtmCU@PajW=Sb!Fm@3EJ9P zX>V@_GO@h8Od^rcW>sd)T`Vpx;&eJGFE0l&5sSr`ntJNd|Nd)}-Sju9oZT36uU8wc z^!$%Tqs+~{0@%duar4EQGg^IBX4}m38Df9NjE}rlJ(xBon4g~~9*+|W^-)n#L4JPL zIj$9l{=HN$Cnq1Vu&@A_Vp{d!fK*CNt)xCF3AuBpbYC)zJ+r_lFvfZZAs*K?g{H^nz14zNRNaeXT;8!zS^KOP25 zF{dA!W%{9EeF*@o`{II7YYNCjt`kG8mUH5;_)_$XO8p>F2@~Qk@l0=28*c!s{{ge` Vqs@mH0$Bh6002ovPDHLkV1nwDiYWj9 literal 0 HcmV?d00001 diff --git a/docs/html/sync_on.png b/docs/html/sync_on.png new file mode 100644 index 0000000000000000000000000000000000000000..051e1cd1bf82bfc57df9b72f17eebc63cf169810 GIT binary patch literal 830 zcmV-E1Ht@>P)<|G^b2U^KFxG6>9Sbrju9Zv}RdT`vC?;Z-+q;9YjGVK@fFh2OULF zMEwIDl>LC5@4+i%zB`FPB0^AzU}^{E%&vPp&$j1rlQK^qt`FYc&-Prq@8`Pj`_wWr zat9!rDiIXzVxMpco0t<*A|hUi4*;3u0Ax@mu83i+4H!c8?a}Uk6OY9W@ewdYrUX6W zuGk6i3$}=J;;6VN9;V;40_kx|JpGM_r(aI-KwQd}pj+HuXW9UM#Vv8hoIqv2w+Ro| zFI72p=?SiiYJg1g^YZ}=a&y=HErsH`u&4yv#c2RDi^cLI&>g_L+Y4aea=AEgpclJ6 z7a)^CH42rWSCjyTC@3i4(BVT?Z(SYn z7#tj+X2%YIb(NQwF%S+@^H&XkS+7dal-}d@)^Vi2pW@=;WS`sPrlX^s&Q5=V-`|1H z=QE79FBHPpll@-0~vr6zp8Yj{}=ytmk)1}vcBobkA@*R*0 zSA~mXLqm!7vQ*jlzvD#zj{=66QmbXmoM3u-npiAGFxZXL=_Ds-ZLQn2_oPPm;>Am5 zW@Z4)#?%PZ^t@HY02soN=b$GTWOjCriHQjy71h;MG&MIf`h1jyg$002T2unnP@7zG zgECb|T*@#2@18kCO z>fz=S?UC9gwEY}lqejHdY$w`n@sEfB{3f-yE{hB4owkDqLx3SBwPSOuc4(M?1c2Ey zaaO1`1*9U|si9WPNwHTP7d@g(J4jSQRZ?HX8||Tq`35li35-{y1*q4jssI2007*qo IM6N<$g0tj=(EtDd literal 0 HcmV?d00001 diff --git a/docs/html/tab_a.png b/docs/html/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..160ff54ac7b46e5b3f29e5d8da5524be10cd0f65 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qf{6ujv*C{Z|5H5JmA2=QhNTk z%byr7LA}4<#YA`&m$bGfP7|$GC~u#cxK?--yNlWk%T9qnq0Y6xZv3v=_HFw7{a=3H bTUW>YrGUx1hC{XoXd;8BtDnm{r-UW|8n!E( literal 0 HcmV?d00001 diff --git a/docs/html/tab_b.png b/docs/html/tab_b.png new file mode 100644 index 0000000000000000000000000000000000000000..9b2c2c5d0ade0379f5102fef4e79dbc7cf5d6a20 GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qt6&9jv*C{Z||PwJ)*$F5^!61 z$rAT(El1*hwDhkqU#XJ4Xlc*Hc{cO3UhK-V?2GL<^Ciz3-Y-)>@6Fdy4EP`cDxGR^En2aCnN>=yx)H&wtLMP-rHu}d;TA~b)NtD87Zyn>!zs!tz__Y L^>bP0l+XkK3yD5d literal 0 HcmV?d00001 diff --git a/docs/html/tab_h.png b/docs/html/tab_h.png new file mode 100644 index 0000000000000000000000000000000000000000..d72f749253d62dd5e44e59fb68b070344bd9d15d GIT binary patch literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qc0dJjv*C{Z|@%DJ)*$l68O0D zLXZ^uw@EVB9U7MU2SxI9P0`Y^{jb@4Y{!kA{L$GLtKGBfLj$v&HJ597XevKnL?W~Kxc$N9YH<}J2CS^ono&^887S3j3^P6)YEV1|`MjYZpd#7#f|QSSY10 z{MbOi$^QlO!q*?}UEVftS?0!b57#VR_rJ$5WAVjM*T{WbiY#85OZM2DmVa!gI%&CK RaTL&I22WQ%mvv4FO#lI3KFt6C literal 0 HcmV?d00001 diff --git a/docs/html/tabs.css b/docs/html/tabs.css new file mode 100644 index 0000000..85a0cd5 --- /dev/null +++ b/docs/html/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file From 3525261e1e578bdc6e60598596e1eec84682e01a Mon Sep 17 00:00:00 2001 From: AshBastian Date: Tue, 17 Dec 2019 17:45:42 +0100 Subject: [PATCH 08/62] Polygon Update --- src/GUI/IntelliPhotoGui.cpp | 3 +- src/GUI/IntelliPhotoGui.h | 1 + src/IntelliPhoto.pro | 2 + src/Layer/PaintingArea.cpp | 3 +- src/Layer/PaintingArea.h | 2 +- src/Tool/IntelliToolPolygon.cpp | 87 +++++++++++++++++++++++++++++++++ src/Tool/IntelliToolPolygon.h | 33 +++++++++++++ 7 files changed, 128 insertions(+), 3 deletions(-) create mode 100644 src/Tool/IntelliToolPolygon.cpp create mode 100644 src/Tool/IntelliToolPolygon.h diff --git a/src/GUI/IntelliPhotoGui.cpp b/src/GUI/IntelliPhotoGui.cpp index a25999b..7611b30 100644 --- a/src/GUI/IntelliPhotoGui.cpp +++ b/src/GUI/IntelliPhotoGui.cpp @@ -18,7 +18,8 @@ IntelliPhotoGui::IntelliPhotoGui(){ setIntelliStyle(); // Size the app - showMaximized(); + resize(600,600); + //showMaximized(); } // User tried to close the app diff --git a/src/GUI/IntelliPhotoGui.h b/src/GUI/IntelliPhotoGui.h index 3865c1f..c074d85 100644 --- a/src/GUI/IntelliPhotoGui.h +++ b/src/GUI/IntelliPhotoGui.h @@ -123,6 +123,7 @@ private: //main GUI elements QWidget* centralGuiWidget; + QPushButton* Toolmanager; QGridLayout *mainLayout; }; diff --git a/src/IntelliPhoto.pro b/src/IntelliPhoto.pro index 47bf20e..d1fe9fa 100644 --- a/src/IntelliPhoto.pro +++ b/src/IntelliPhoto.pro @@ -28,6 +28,7 @@ SOURCES += \ Tool/IntelliToolLine.cpp \ Tool/IntelliToolPen.cpp \ Tool/IntelliToolPlain.cpp \ + Tool/IntelliToolPolygon.cpp \ Tool/IntelliToolRechteck.cpp \ main.cpp @@ -44,6 +45,7 @@ HEADERS += \ Tool/IntelliToolLine.h \ Tool/IntelliToolPen.h \ Tool/IntelliToolPlain.h \ + Tool/IntelliToolPolygon.h \ Tool/IntelliToolRechteck.h \ Tool/intellitoolcircle.h diff --git a/src/Layer/PaintingArea.cpp b/src/Layer/PaintingArea.cpp index 1783a40..dd53f0b 100644 --- a/src/Layer/PaintingArea.cpp +++ b/src/Layer/PaintingArea.cpp @@ -15,11 +15,12 @@ #include "Tool/IntelliToolLine.h" #include "Tool/IntelliToolCircle.h" #include "Tool/IntelliToolRechteck.h" +#include "Tool/IntelliToolPolygon.h" PaintingArea::PaintingArea(int maxWidth, int maxHeight, QWidget *parent) :QWidget(parent){ //test yout tool here and reset after accomplished test - this->Tool = new IntelliToolRechteck(this, &colorPicker); + this->Tool = new IntelliToolPolygon(this, &colorPicker); this->setUp(maxWidth, maxHeight); //tetsing this->addLayer(200,200,0,0,ImageType::Shaped_Image); diff --git a/src/Layer/PaintingArea.h b/src/Layer/PaintingArea.h index fa85425..e598774 100644 --- a/src/Layer/PaintingArea.h +++ b/src/Layer/PaintingArea.h @@ -34,7 +34,7 @@ class PaintingArea : public QWidget friend IntelliTool; public: PaintingArea(int maxWidth=600, int maxHeight=600, QWidget *parent = nullptr); - ~PaintingArea(); + ~PaintingArea() override; // Handles all events bool open(const QString &fileName); diff --git a/src/Tool/IntelliToolPolygon.cpp b/src/Tool/IntelliToolPolygon.cpp new file mode 100644 index 0000000..3c297ac --- /dev/null +++ b/src/Tool/IntelliToolPolygon.cpp @@ -0,0 +1,87 @@ +#include "IntelliToolPolygon.h" +#include "Layer/PaintingArea.h" +#include +#include + +IntelliToolPolygon::IntelliToolPolygon(PaintingArea* Area, IntelliColorPicker* colorPicker) + :IntelliTool(Area, colorPicker){ + lineWidth = 5; + isDrawing = false; + PointIsNearStart = false; + drawingPoint.setX(0); + drawingPoint.setY(0); +} + +void IntelliToolPolygon::onMouseLeftPressed(int x, int y){ + qDebug() << x << y; + if(!isDrawing && x > 0 && y > 0){ + isDrawing = true; + drawingPoint.setX(x); + drawingPoint.setY(y); + QPointList.push_back(drawingPoint); + IntelliTool::onMouseLeftPressed(x,y); + this->Canvas->image->drawPlain(Qt::transparent); + this->Canvas->image->drawPoint(QPointList.back(), colorPicker->getFirstColor(), lineWidth); + } + else if(isDrawing && isNearStart(x,y,QPointList.front())){ + PointIsNearStart = isNearStart(x,y,QPointList.front()); + this->Canvas->image->drawLine(QPointList.back(), QPointList.front(), colorPicker->getFirstColor(), lineWidth);s + } + else if(isDrawing){ + drawingPoint.setX(x); + drawingPoint.setY(y); + QPointList.push_back(drawingPoint); + this->Canvas->image->drawLine(QPointList.operator[](QPointList.size() - 2), QPointList.back(), colorPicker->getFirstColor(), lineWidth); + } +} + +void IntelliToolPolygon::onMouseRightPressed(int x, int y){ + isDrawing = false; + PointIsNearStart = false; + QPointList.clear(); + IntelliTool::onMouseRightPressed(x,y); +} + +void IntelliToolPolygon::onMouseLeftReleased(int x, int y){ + if(PointIsNearStart && QPointList.size() > 1){ + PointIsNearStart = false; + isDrawing = false; + QPointList.clear(); + IntelliTool::onMouseLeftReleased(x,y); + } +} + +void IntelliToolPolygon::onMouseRightReleased(int x, int y){ + +} + +void IntelliToolPolygon::onWheelScrolled(int value){ + if(!isDrawing){ + if(lineWidth + value < 10){ + lineWidth += value; + } + if(lineWidth < 1){ + lineWidth = 1; + } + } +} + +void IntelliToolPolygon::onMouseMoved(int x, int y){ + +} + +bool IntelliToolPolygon::isNearStart(int x, int y, QPoint Startpoint){ + bool isNear = false; + int StartX = Startpoint.x(); + int StartY = Startpoint.y(); + int valueToNear = 10; + + for(int i = StartX - valueToNear; i < StartX + valueToNear; i++){ + for(int j = StartY - valueToNear; j < StartY + valueToNear; j++){ + if((i == x) && (j == y)){ + isNear = true; + } + } + } + return isNear; +} diff --git a/src/Tool/IntelliToolPolygon.h b/src/Tool/IntelliToolPolygon.h new file mode 100644 index 0000000..c8496e9 --- /dev/null +++ b/src/Tool/IntelliToolPolygon.h @@ -0,0 +1,33 @@ +#ifndef INTELLITOOLPOLYGON_H +#define INTELLITOOLPOLYGON_H + +#include "IntelliTool.h" +#include +#include + +class IntelliToolPolygon : public IntelliTool +{ +public: + IntelliToolPolygon(PaintingArea* Area, IntelliColorPicker* colorPicker); + + virtual void onMouseLeftPressed(int x, int y) override; + virtual void onMouseLeftReleased(int x, int y) override; + virtual void onMouseRightPressed(int x, int y) override; + virtual void onMouseRightReleased(int x, int y) override; + + virtual void onWheelScrolled(int value) override; + + virtual void onMouseMoved(int x, int y) override; + +private: + bool isNearStart(int x, int y, QPoint Startpoint); + + int lineWidth; + bool isDrawing; + bool PointIsNearStart; + QPoint drawingPoint; + std::vector QPointList; + +}; + +#endif // INTELLITOOLPOLYGON_H From a025ab5da53c3b51ba69c6afb7a107b06743b06d Mon Sep 17 00:00:00 2001 From: Conrad Date: Wed, 18 Dec 2019 11:41:52 +0100 Subject: [PATCH 09/62] Removed comment cause it ain't --- src/GUI/IntelliPhotoGui.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/GUI/IntelliPhotoGui.cpp b/src/GUI/IntelliPhotoGui.cpp index a25999b..c2cae43 100644 --- a/src/GUI/IntelliPhotoGui.cpp +++ b/src/GUI/IntelliPhotoGui.cpp @@ -16,7 +16,6 @@ IntelliPhotoGui::IntelliPhotoGui(){ createMenus(); //set style of the gui setIntelliStyle(); - // Size the app showMaximized(); } @@ -28,7 +27,6 @@ void IntelliPhotoGui::closeEvent(QCloseEvent *event){ if (maybeSave()) { event->accept(); } else { - // If there have been changes ignore the event event->ignore(); } @@ -234,7 +232,7 @@ void IntelliPhotoGui::slotCreateLineTool(){ void IntelliPhotoGui::slotAboutDialog(){ // Window title and text to display QMessageBox::about(this, tr("About Painting"), - tr("

    IntelliPhoto Some nice ass looking software

    ")); + tr("

    IntelliPhotoPretty basic editor.

    ")); } // Define menu actions that call functions From 9e4cf9a07f21fef3d484d594bd0720030ef3cd30 Mon Sep 17 00:00:00 2001 From: Conrad Date: Wed, 18 Dec 2019 12:44:00 +0100 Subject: [PATCH 10/62] Removed blank lines --- src/Layer/PaintingArea.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/Layer/PaintingArea.h b/src/Layer/PaintingArea.h index fa85425..b6cebc1 100644 --- a/src/Layer/PaintingArea.h +++ b/src/Layer/PaintingArea.h @@ -21,8 +21,6 @@ struct LayerObject{ int widthOffset; int hightOffset; int alpha=255; - - }; class PaintingArea : public QWidget @@ -83,7 +81,6 @@ private: void activateUpperLayer(); void activateLowerLayer(); - QImage* Canvas; int maxWidth; int maxHeight; @@ -104,4 +101,3 @@ private: }; #endif - From a0f1203fb1465ee9a0e6b6d3ef3dd3b524e10a50 Mon Sep 17 00:00:00 2001 From: Conrad Date: Wed, 18 Dec 2019 13:02:25 +0100 Subject: [PATCH 11/62] Fixed a bug where the system dialogs wouldn't show up on linux Thx to @Jan for this contribution and testing --- src/GUI/IntelliPhotoGui.cpp | 2 +- src/Layer/PaintingArea.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/GUI/IntelliPhotoGui.cpp b/src/GUI/IntelliPhotoGui.cpp index c2cae43..4be552e 100644 --- a/src/GUI/IntelliPhotoGui.cpp +++ b/src/GUI/IntelliPhotoGui.cpp @@ -460,7 +460,7 @@ bool IntelliPhotoGui::saveFile(const QByteArray &fileFormat){ initialPath, tr("%1 Files (*.%2);;All Files (*)") .arg(QString::fromLatin1(fileFormat.toUpper())) - .arg(QString::fromLatin1(fileFormat))); + .arg(QString::fromLatin1(fileFormat)), nullptr, QFileDialog::DontUseNativeDialog); // If no file do nothing if (fileName.isEmpty()) { diff --git a/src/Layer/PaintingArea.cpp b/src/Layer/PaintingArea.cpp index 1783a40..2009465 100644 --- a/src/Layer/PaintingArea.cpp +++ b/src/Layer/PaintingArea.cpp @@ -164,12 +164,12 @@ void PaintingArea::slotActivateLayer(int a){ } void PaintingArea::colorPickerSetFirstColor(){ - QColor clr = QColorDialog::getColor(colorPicker.getFirstColor(), nullptr, "Main Color"); + QColor clr = QColorDialog::getColor(colorPicker.getFirstColor(), nullptr, "Main Color", QColorDialog::DontUseNativeDialog); this->colorPicker.setFirstColor(clr); } void PaintingArea::colorPickerSetSecondColor(){ - QColor clr = QColorDialog::getColor(colorPicker.getSecondColor(), nullptr, "Secondary Color"); + QColor clr = QColorDialog::getColor(colorPicker.getSecondColor(), nullptr, "Secondary Color", QColorDialog::DontUseNativeDialog); this->colorPicker.setSecondColor(clr); } From 325d1925aca738b8025c07e05a2b2cfe9ee02037 Mon Sep 17 00:00:00 2001 From: Conrad Date: Wed, 18 Dec 2019 13:08:21 +0100 Subject: [PATCH 12/62] Fixed a bug where the File Dialog wouldn't show up correctly on linux --- src/GUI/IntelliPhotoGui.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GUI/IntelliPhotoGui.cpp b/src/GUI/IntelliPhotoGui.cpp index 4be552e..a5dde2f 100644 --- a/src/GUI/IntelliPhotoGui.cpp +++ b/src/GUI/IntelliPhotoGui.cpp @@ -43,7 +43,7 @@ void IntelliPhotoGui::slotOpen(){ // tr sets the window title to Open File // QDir opens the current dirctory QString fileName = QFileDialog::getOpenFileName(this, - tr("Open File"), QDir::currentPath()); + tr("Open File"), QDir::currentPath(), "", nullptr, QFileDialog::DontUseNativeDialog); // If we have a file name load the image and place // it in the paintingArea From bbc733a8b5733c69e83748a74774cfa95f776eda Mon Sep 17 00:00:00 2001 From: Conrad Date: Wed, 18 Dec 2019 13:11:50 +0100 Subject: [PATCH 13/62] Replaced empty string with nullpointer to dodge warning --- src/GUI/IntelliPhotoGui.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GUI/IntelliPhotoGui.cpp b/src/GUI/IntelliPhotoGui.cpp index a5dde2f..1de336a 100644 --- a/src/GUI/IntelliPhotoGui.cpp +++ b/src/GUI/IntelliPhotoGui.cpp @@ -43,7 +43,7 @@ void IntelliPhotoGui::slotOpen(){ // tr sets the window title to Open File // QDir opens the current dirctory QString fileName = QFileDialog::getOpenFileName(this, - tr("Open File"), QDir::currentPath(), "", nullptr, QFileDialog::DontUseNativeDialog); + tr("Open File"), QDir::currentPath(), nullptr, nullptr, QFileDialog::DontUseNativeDialog); // If we have a file name load the image and place // it in the paintingArea From 56dfdcc5339f87ba9a6e7c751f579052b8348552 Mon Sep 17 00:00:00 2001 From: Jan Schuffenhauer Date: Wed, 18 Dec 2019 12:16:37 +0100 Subject: [PATCH 14/62] Update .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index e431211..a86d544 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ # Build folders +src/build-*/ /build-*/ # QT Creator Files From d193dc3b978e494fde94f3920beae0b5e9a24148 Mon Sep 17 00:00:00 2001 From: Jan Schuffenhauer Date: Wed, 18 Dec 2019 12:31:03 +0100 Subject: [PATCH 15/62] Edited the dialogs to work as intendet on linux and also fixed set second color --- src/GUI/IntelliPhotoGui.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/GUI/IntelliPhotoGui.cpp b/src/GUI/IntelliPhotoGui.cpp index 1de336a..283170c 100644 --- a/src/GUI/IntelliPhotoGui.cpp +++ b/src/GUI/IntelliPhotoGui.cpp @@ -43,7 +43,7 @@ void IntelliPhotoGui::slotOpen(){ // tr sets the window title to Open File // QDir opens the current dirctory QString fileName = QFileDialog::getOpenFileName(this, - tr("Open File"), QDir::currentPath(), nullptr, nullptr, QFileDialog::DontUseNativeDialog); + tr("Open File"), QDir::currentPath(),"", nullptr, QFileDialog::DontUseNativeDialog); // If we have a file name load the image and place // it in the paintingArea @@ -274,6 +274,7 @@ void IntelliPhotoGui::createActions(){ // Create New Layer action and tie to IntelliPhotoGui::newLayer() actionCreateNewLayer = new QAction(tr("&New Layer..."), this); + actionCreateNewLayer->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_N)); connect(actionCreateNewLayer, SIGNAL(triggered()), this, SLOT(slotCreateNewLayer())); // Delete New Layer action and tie to IntelliPhotoGui::deleteLayer() @@ -315,7 +316,7 @@ void IntelliPhotoGui::createActions(){ connect(actionColorPickerFirstColor, SIGNAL(triggered()), this, SLOT(slotSetFirstColor())); actionColorPickerSecondColor = new QAction(tr("&Secondary"), this); - connect(actionColorPickerSecondColor, SIGNAL(triggered()), this, SLOT(slotSetFirstColor())); + connect(actionColorPickerSecondColor, SIGNAL(triggered()), this, SLOT(slotSetSecondColor())); actionColorSwitch = new QAction(tr("&Switch"), this); actionColorSwitch->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_S)); From d1d3599daa74e3b6a2f1f1e786db420c611ebf26 Mon Sep 17 00:00:00 2001 From: Conrad Date: Wed, 18 Dec 2019 13:28:41 +0100 Subject: [PATCH 16/62] Merged gitignore statements --- .gitignore | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index a86d544..e8e6a7e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ # Build folders -src/build-*/ -/build-*/ +build-*/ # QT Creator Files *.creator.user* From 55345224406cc500385c0ed770ad8cc88b9a5b41 Mon Sep 17 00:00:00 2001 From: Conrad Date: Wed, 18 Dec 2019 12:42:10 +0100 Subject: [PATCH 17/62] Refractoring of "Rechteck" to "rectangle" --- src/IntelliPhoto.pro | 4 ++-- src/Layer/PaintingArea.cpp | 4 ++-- ...lRechteck.cpp => IntelliToolRectangle.cpp} | 24 +++++++++---------- ...iToolRechteck.h => IntelliToolRectangle.h} | 14 +++++------ 4 files changed, 23 insertions(+), 23 deletions(-) rename src/Tool/{IntelliToolRechteck.cpp => IntelliToolRectangle.cpp} (73%) rename src/Tool/{IntelliToolRechteck.h => IntelliToolRectangle.h} (61%) diff --git a/src/IntelliPhoto.pro b/src/IntelliPhoto.pro index 47bf20e..9b0956d 100644 --- a/src/IntelliPhoto.pro +++ b/src/IntelliPhoto.pro @@ -28,7 +28,7 @@ SOURCES += \ Tool/IntelliToolLine.cpp \ Tool/IntelliToolPen.cpp \ Tool/IntelliToolPlain.cpp \ - Tool/IntelliToolRechteck.cpp \ + Tool/IntelliToolRectangle.cpp \ main.cpp HEADERS += \ @@ -44,7 +44,7 @@ HEADERS += \ Tool/IntelliToolLine.h \ Tool/IntelliToolPen.h \ Tool/IntelliToolPlain.h \ - Tool/IntelliToolRechteck.h \ + Tool/IntelliToolRectangle.h \ Tool/intellitoolcircle.h FORMS += \ diff --git a/src/Layer/PaintingArea.cpp b/src/Layer/PaintingArea.cpp index 1783a40..95ef554 100644 --- a/src/Layer/PaintingArea.cpp +++ b/src/Layer/PaintingArea.cpp @@ -14,12 +14,12 @@ #include "Tool/IntelliToolPlain.h" #include "Tool/IntelliToolLine.h" #include "Tool/IntelliToolCircle.h" -#include "Tool/IntelliToolRechteck.h" +#include "Tool/IntelliToolRectangle.h" PaintingArea::PaintingArea(int maxWidth, int maxHeight, QWidget *parent) :QWidget(parent){ //test yout tool here and reset after accomplished test - this->Tool = new IntelliToolRechteck(this, &colorPicker); + this->Tool = new IntelliToolRectangle(this, &colorPicker); this->setUp(maxWidth, maxHeight); //tetsing this->addLayer(200,200,0,0,ImageType::Shaped_Image); diff --git a/src/Tool/IntelliToolRechteck.cpp b/src/Tool/IntelliToolRectangle.cpp similarity index 73% rename from src/Tool/IntelliToolRechteck.cpp rename to src/Tool/IntelliToolRectangle.cpp index 05b1e79..0c89762 100644 --- a/src/Tool/IntelliToolRechteck.cpp +++ b/src/Tool/IntelliToolRectangle.cpp @@ -1,18 +1,18 @@ -#include"IntelliToolRechteck.h" +#include"IntelliToolRectangle.h" #include "Layer/PaintingArea.h" #include "QInputDialog" -IntelliToolRechteck::IntelliToolRechteck(PaintingArea* Area, IntelliColorPicker* colorPicker) +IntelliToolRectangle::IntelliToolRectangle(PaintingArea* Area, IntelliColorPicker* colorPicker) :IntelliTool(Area, colorPicker){ this->alphaInner = QInputDialog::getInt(nullptr,"Inner Alpha Value", "Value:", 0,0,255,1); this->edgeWidth = QInputDialog::getInt(nullptr,"Outer edge width", "Value:", 0,1,255,1); } -IntelliToolRechteck::~IntelliToolRechteck(){ +IntelliToolRectangle::~IntelliToolRectangle(){ } -void IntelliToolRechteck::drawRechteck(QPoint otherCornor){ +void IntelliToolRectangle::drawRectangle(QPoint otherCornor){ int xMin = std::min(originCornor.x(), otherCornor.x()); int xMax = std::max(originCornor.x(), otherCornor.x()); @@ -30,36 +30,36 @@ void IntelliToolRechteck::drawRechteck(QPoint otherCornor){ this->Canvas->image->drawLine(QPoint(xMax, yMax),QPoint(xMax, yMin), this->colorPicker->getFirstColor(), edgeWidth); } -void IntelliToolRechteck::onMouseRightPressed(int x, int y){ +void IntelliToolRectangle::onMouseRightPressed(int x, int y){ IntelliTool::onMouseRightPressed(x,y); } -void IntelliToolRechteck::onMouseRightReleased(int x, int y){ +void IntelliToolRectangle::onMouseRightReleased(int x, int y){ IntelliTool::onMouseRightReleased(x,y); } -void IntelliToolRechteck::onMouseLeftPressed(int x, int y){ +void IntelliToolRectangle::onMouseLeftPressed(int x, int y){ IntelliTool::onMouseLeftPressed(x,y); this->originCornor=QPoint(x,y); - drawRechteck(originCornor); + drawRectangle(originCornor); Canvas->image->calculateVisiblity(); } -void IntelliToolRechteck::onMouseLeftReleased(int x, int y){ +void IntelliToolRectangle::onMouseLeftReleased(int x, int y){ IntelliTool::onMouseLeftReleased(x,y); } -void IntelliToolRechteck::onMouseMoved(int x, int y){ +void IntelliToolRectangle::onMouseMoved(int x, int y){ IntelliTool::onMouseMoved(x,y); if(this->drawing){ this->Canvas->image->drawPlain(Qt::transparent); QPoint next(x,y); - drawRechteck(next); + drawRectangle(next); } IntelliTool::onMouseMoved(x,y); } -void IntelliToolRechteck::onWheelScrolled(int value){ +void IntelliToolRectangle::onWheelScrolled(int value){ IntelliTool::onWheelScrolled(value); this->edgeWidth+=value; if(this->edgeWidth<=0){ diff --git a/src/Tool/IntelliToolRechteck.h b/src/Tool/IntelliToolRectangle.h similarity index 61% rename from src/Tool/IntelliToolRechteck.h rename to src/Tool/IntelliToolRectangle.h index f3db883..2b59629 100644 --- a/src/Tool/IntelliToolRechteck.h +++ b/src/Tool/IntelliToolRectangle.h @@ -1,20 +1,20 @@ -#ifndef INTELLIRECHTECKTOOL_H -#define INTELLIRECHTECKTOOL_H +#ifndef INTELLIRECTANGLETOOL_H +#define INTELLIRECTANGLETOOL_H #include "IntelliTool.h" #include "QColor" #include "QPoint" -class IntelliToolRechteck : public IntelliTool{ - void drawRechteck(QPoint otherCornor); +class IntelliToolRectangle : public IntelliTool{ + void drawRectangle(QPoint otherCornor); QPoint originCornor; int alphaInner; int edgeWidth; public: - IntelliToolRechteck(PaintingArea* Area, IntelliColorPicker* colorPicker); - virtual ~IntelliToolRechteck() override; + IntelliToolRectangle(PaintingArea* Area, IntelliColorPicker* colorPicker); + virtual ~IntelliToolRectangle() override; virtual void onMouseRightPressed(int x, int y) override; virtual void onMouseRightReleased(int x, int y) override; @@ -26,4 +26,4 @@ public: virtual void onMouseMoved(int x, int y) override; }; -#endif // INTELLIRECHTECKTOOL_H +#endif // INTELLIRECTANGLETOOL_H From 3ad975a297c84d4d3c00c0af04eea067541deee8 Mon Sep 17 00:00:00 2001 From: Conrad Date: Wed, 18 Dec 2019 13:48:53 +0100 Subject: [PATCH 18/62] Changed empty string to nullpointer for file options --- src/GUI/IntelliPhotoGui.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GUI/IntelliPhotoGui.cpp b/src/GUI/IntelliPhotoGui.cpp index 283170c..16c8074 100644 --- a/src/GUI/IntelliPhotoGui.cpp +++ b/src/GUI/IntelliPhotoGui.cpp @@ -43,7 +43,7 @@ void IntelliPhotoGui::slotOpen(){ // tr sets the window title to Open File // QDir opens the current dirctory QString fileName = QFileDialog::getOpenFileName(this, - tr("Open File"), QDir::currentPath(),"", nullptr, QFileDialog::DontUseNativeDialog); + tr("Open File"), QDir::currentPath(), nullptr, nullptr, QFileDialog::DontUseNativeDialog); // If we have a file name load the image and place // it in the paintingArea From a2a44cefaa5514c32b7b1927ae6df2175d729bd4 Mon Sep 17 00:00:00 2001 From: Conrad Date: Wed, 18 Dec 2019 14:36:59 +0100 Subject: [PATCH 19/62] Minor README update --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 69598fe..e919052 100644 --- a/README.md +++ b/README.md @@ -7,16 +7,17 @@ For the user manual see `docs/manual.pdf` - `src` - Source Code - `docs` - Documentation of the source code and user manual - `Examples` - Temporary folder for example pictures -- `Abgabe` - Files that were submitted +- `Abgabe` - Files that were submitted prior to the development start ## Pesentations -- 0.3 https://prezi.com/view/M593VBJhmfwQzuqt3t6f/ +- since `0.3`: https://prezi.com/view/M593VBJhmfwQzuqt3t6f/ ## Branching - `master` branch: current state of the program, pull requests only by maintainers or developers - `dev` branch: state of development for next week, will be merged every Thursday, pushable for maintainers, pull requests for everyone - `dev-X` branches: feature development branches which will be merged into dev, when tested +- `hotfix-X` branches: braches to fix small but important bugs, will be merged into master and dev -Every Thursday dev and master will be merged and tagged with the current version. +On Thursday the development state (`dev`) will be merged into master and tagged with the current version. From e5e64b984ac47c5c29121a71c6576be91f28ba9b Mon Sep 17 00:00:00 2001 From: Paul Norberger Date: Wed, 18 Dec 2019 15:10:10 +0100 Subject: [PATCH 20/62] Documentation update to current status --- docs/CRC-Karten/CRC-Karten.docx | Bin 0 -> 16055 bytes docs/CRC-Karten/CRC-Karten.pdf | Bin 0 -> 103195 bytes docs/Manual/assets/file-open.png | Bin 0 -> 1318 bytes docs/Manual/assets/file-options.png | Bin 0 -> 1414 bytes docs/Manual/assets/file-save.png | Bin 0 -> 2039 bytes docs/Manual/assets/fill-layer.png | Bin 0 -> 964 bytes docs/Manual/assets/icon.png | Bin 0 -> 115337 bytes docs/Manual/assets/icon.svg | 244 +++++++++++++ docs/Manual/assets/layer-alpha.png | Bin 0 -> 619 bytes docs/Manual/assets/moving-layers.png | Bin 0 -> 1221 bytes docs/Manual/assets/startup.png | Bin 0 -> 5266 bytes docs/Manual/manual.aux | 14 + docs/Manual/manual.log | 510 +++++++++++++++++++++++++++ docs/{ => Manual}/manual.pdf | Bin docs/Manual/manual.synctex.gz | Bin 0 -> 21329 bytes docs/Manual/manual.tex | 102 ++++++ docs/Manual/manual.toc | 12 + docs/Volere Snow Cards/Req_0001.txt | 30 ++ docs/Volere Snow Cards/Req_0002.txt | 78 ++++ docs/Volere Snow Cards/Req_0003.txt | 26 ++ docs/Volere Snow Cards/Req_0004.txt | 34 ++ 21 files changed, 1050 insertions(+) create mode 100644 docs/CRC-Karten/CRC-Karten.docx create mode 100644 docs/CRC-Karten/CRC-Karten.pdf create mode 100644 docs/Manual/assets/file-open.png create mode 100644 docs/Manual/assets/file-options.png create mode 100644 docs/Manual/assets/file-save.png create mode 100644 docs/Manual/assets/fill-layer.png create mode 100644 docs/Manual/assets/icon.png create mode 100644 docs/Manual/assets/icon.svg create mode 100644 docs/Manual/assets/layer-alpha.png create mode 100644 docs/Manual/assets/moving-layers.png create mode 100644 docs/Manual/assets/startup.png create mode 100644 docs/Manual/manual.aux create mode 100644 docs/Manual/manual.log rename docs/{ => Manual}/manual.pdf (100%) create mode 100644 docs/Manual/manual.synctex.gz create mode 100644 docs/Manual/manual.tex create mode 100644 docs/Manual/manual.toc create mode 100644 docs/Volere Snow Cards/Req_0001.txt create mode 100644 docs/Volere Snow Cards/Req_0002.txt create mode 100644 docs/Volere Snow Cards/Req_0003.txt create mode 100644 docs/Volere Snow Cards/Req_0004.txt diff --git a/docs/CRC-Karten/CRC-Karten.docx b/docs/CRC-Karten/CRC-Karten.docx new file mode 100644 index 0000000000000000000000000000000000000000..ae0db5cba7caa9733a092c70a32c3db6dfd7f16c GIT binary patch literal 16055 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 literal 0 HcmV?d00001 diff --git a/docs/CRC-Karten/CRC-Karten.pdf b/docs/CRC-Karten/CRC-Karten.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8cd4e0f7f927111d343acf7e147028a1eb5b875b GIT binary patch literal 103195 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
      Q#1&7VnLWOmro>(7Ci0 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 Cl`@I| literal 0 HcmV?d00001 diff --git a/docs/Manual/assets/file-open.png b/docs/Manual/assets/file-open.png new file mode 100644 index 0000000000000000000000000000000000000000..e7af30c9bedf1ded8d6b23a917f9018fb39527d6 GIT binary patch literal 1318 zcmXX`eKb^Q7=K%RtgmsWVzw*Abj7abW+sfU;hKg)LJg6|$e2D(abi>XC{BhkQ5Z}4 zSSqKfV~=P{Ii(cmMk^orD4}V&#afH4u~xRJyVt4r{XNg`_j{iAyyv{nAMcsqK%ub# zYybc-_VX3&q_~QTxNr5SY+C5=3&0Y~;D8Ws$^t;6Q9*400~$;NFpUPoUkwcgFia&H zLZcx7Mqx@In`sCap#iFd!hllN*48#QHg|)v@*zkIp8p@n;`zVkv^$-nJMbOJa#T>+I(sC`iAR&%iWsjLDO!> z@$uc|p(pxB9|a)zWL`${$H6jt=|#qW6a2owDW$7;F10aDcl%oPT;A1bX}wQS-)d#! znaE&GvtF3MxnVfNLgQT^(ZyM|4CK$!@dss5B-3e@iQzQ1fdNh$IB@VAPZ_TuIBCdP-h!3w4%3305=OBF*bVNEBI!f;= zHSM8`o|e{(D08dpCzRb6B(+JFc|VK?E2<7Z9RFZ6y3UW&SsEYC&c5wqQYkTy3aIxI z8w{3BikaR#p_Dp})m`rG z9MI?9zPf*Vy>U+tbz5!8_62iDRhRu2aeiyVcPiZmpKEjcgJ%5uj`(jmB0eHmgsuU~ zEp&*C-&3YMCvUTn{+V{VSaR3dj#u(in~IaJd@MXX(^dFhc5+kbTvmAHD5UR~6KbYi zd)HxKQIj?R&9|#q_q9bvsbF8 zvsv0z0n95Qbz5TDA5u?NJ$SN1YVT08`E{x@=3_F#tV!k!@jw1N!Q~XW=2;|#DfH9A z?Hl__kk^-D*NWc6h;RJztYCf|a%wfKW4O`>L{rIQR~ikiRx%fn!P4KCr#zCyne_hp zHbh{eI%JSs)XQXcwXe(0oY4FACe${tVQi4GrPbV~Cne!taAi6#3KO3;jKoz|c)U`| zfa`LDqQ!;IC}*3Jize!Q8PjT5Mc(pqs)#6R8EQNj+s_t?J2zcxS=p5TL<}9ZD@_c? zO?H$TO3`v-zYlEA(XAb0d}dls*Ho==g>6Bc;9&X^qBR`ie&*uQt)Bi843XR&puQ3S N{JaANwfwyq{{zb4RcbE&+fM=y5TPPiiSQ5+9!dm3MW|AQVtIWSqEsSE3`PEPaf*sCRHQ@~Y)pxu zs1n7{?lG+U9fo2!$GSDxz!)|>h7D-3VI77)#V}O;4kt>r22*Qsf~ob`lm?s9VN)2s zlsYY@(_=cE;;CP-W=i$J0IcAIxF12 z=;9LJ#*P~bfek(9+(8-mtk=Q#CSNg_mT-)(0AlAUCBpQL-t6e;s*Y>%4IY`{C2T0X zap$D>TzpwHe|}3F)MERnwcgl{zyG{TKxX-T(S>-$EFz_b#7yxmkG7lIeB5-n;pIlZ zhjGb;SuEMa-r_5oQFMIUo0?8)cC%zoO_^$*ywV?&GGXoMUd8NumqE50ESn4Q{Ht+* zY{b2NQBbgG*G6NGe;KXb>w&X4HDctCX`2;iXTtIWuD`!|tZX&O{cV_qSkuf@`#%|O zE~f~q9!O?>HXYCZySFsow6q5{HzPwg4yzNZ8$XV? z_6jA|>9_L3riBL;i^biu>eF_z$e@bTo*%R#Ei5a`PPtPYA{ zzt}$J72DZ<%`+vVK7?S%`C;p2zNErw_0#fj70>4}>LW2%{xeIWLUk06fS(wH+eg`6 z+)N9OJ`NE$A>Fwzt`eP&Gtwf)g32SV$P!^lVB;FXVEc=2@l73CGP)?s*Sw}is*EdS zx;=p|M|L$8y%(nDY>(qIZr^yYzo69FG{>UFfU7l7nVgzQZ}z)6 zF4l;nQW~4iZx$d~*b?#p$bDkdn literal 0 HcmV?d00001 diff --git a/docs/Manual/assets/file-save.png b/docs/Manual/assets/file-save.png new file mode 100644 index 0000000000000000000000000000000000000000..113ee3fa1c899d36c02f2b575e022441c8902ab5 GIT binary patch literal 2039 zcmX|C2UJr@7k+?JR6>y~7)4=u$RZ{p0wEZ}BLPWJ&;h@02hLUEa)WwOaZ_=03ZM$iXe(kFw+lTk#BNW}>9WD< zn(~aUYGUQPfX2ppgQdN!Gy|I1x`ocE@XQv!)`aLL1|XMyz3>`-I)WkDZRY;z@iK*M zHioreW;1Hfvek`%_nY2WRPD8sCnJ{Hi+s^?5a) zd;Ra7(gM1Kx1au{D9zMw{7i!`FOl5SU`>95&3g89)24G9Wk)KlG)PNQ>z#BZ@?*YJ z4h(wuJ=r5!SN4&y*ms971x>nFF~>tD?mT3+(CK!a30rPH;FZR_6V>JHZIeYT#)kTm zUn#@CkHTMSgPKj=&WN@zjVg#G>sTvw9(B<^9&Oy&<5ZkJsm4#{!0PF+`jAE5+KKTE zTB4eJ*C?`1h0w?a`lMil|wb73bLJ7RDgd^ zX`mzjNt!7Qe~m3-MzcR^K;07)q={TW_NeKf{3HDSg<%K7CWTv5e*3vc50-Re3s(MA z7ASwf)0NbFUCn3pn&H-2kFr}3r_KMn#=jO_aHs1ZGvC&Hx zKKk_Q%QRQCDal5gt&+ZX2W?O~JWQ<*u`7#wlWD9!aQ-jaC@0&;$X@A|-HnH45egZ6 z`8G*$Ks@Cd79gHP5+YWZPG6n-Wih_Uq+{yufN<^4D^~Q99oEFhJq}(K4iz3Up0kYB zQ0>XnYChdP3p`lrseYsF4*Tm}+bpMuKTP6cCd*XZsJ=EVJ9@+#mT7B%t^O=M{`W0p z(CC;lyk}-(|8F@tTc|CJ!h7caygcZ1E^CI$_x8PXnATu%`?u&T3emXrVlXkmK~KKz zV|nO^4qEF?AWzM;)Z*V$RxuU#FXmgn*f zK4gPM2t9w>=36ZrVoAz63VY*olNQGrS^~q{CwErA*T(HP*&#GiQ)-yOQZ9QF;ASJk z1D8^E$yxGYCya7*)#{c;;=Xk4Pj&ownK zO12`o)BOX2I!Zn#9v4}{ktJ|`<5A1fO9$chnV4VxS3Cm_fjl|hD!iWsxF7p_rO8G} zg>muXrafex>+15te7q12GL+amH>U1Tt!7i#l^+7wY41_9K5`| z92`dC%+8BW(^xmZm&f znzHoB(zYW<+K&8R3Pg_{Eq(O=|B*Hz{r?eA;K-5xkBhE&{od*^o1Yy%P20CTM^9L*ihcUAg&y?t~4{^t+7B+8T6onc(eu zPpOxFQ8sruo20}d_GVt4Z;Eckyqdc!{;oa96c#Jjqj>EjBdbV&l00Wo?HrC9N9#EJ z9-2RrSi=_FqHw+azUc#rkgqEzz6^}~Et<>oDa>7=k!4@$1NIY>m~<0%vOFr)Yh+o( z_&2UV_VuFe`=>MfnSNl^*Xqob@-I3{k}pWEYpDnS44`&Fk68*Wa1d&qnFq<|JrZME1n zPuJdfQXALH{AIFBgW*DnEQJL+#*D(B-|mZJVyskG1R8(e;)868XJg0tG`+?K|Lq(q z0z4Id%DXZ=vkVq25mY^BQa|hEPrY+y4;;4doqo6|=rH5slgBmF+1X?~ldnneYGk^Y zhkiNe!OJ$qWKn!hl&YzC7E`<^iU&eG+F#bO{o3Q(&2y(WQz#)}tL^exNp^ydu7pT9!F{i>SF6`QIW4)Wgr3fGX`MbnQ7RKD23Y1PrHmHeSKFzt);dy!G zYH+CVJXJ<>HbGH}pwwsrnJB|XgC4;A{pUXO@geCxc{KBgM literal 0 HcmV?d00001 diff --git a/docs/Manual/assets/icon.png b/docs/Manual/assets/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a92b091868657ed1efe650b8120467f42e74b9ee GIT binary patch literal 115337 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

      gLZ^nAgEHuqeDN4SPgI3*(FTZUB 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 + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/Manual/assets/layer-alpha.png b/docs/Manual/assets/layer-alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..3bbc9f194c9a2ef28b7c9e094a264a4d1627ab3f GIT binary patch literal 619 zcmeAS@N?(olHy`uVBq!ia0vp^3xU{!gBeJ!Jd%12NVNy}gt&@|ifU_XJ2*Iad3iZF zq@*}FFjQQ3aAs$fHL`fP()Y9r+K$Fdk6V|3{Dh z0|AIw@J1kwfq`+pr;B4q#=W;U@A@@62(Tt}DV#XJO-UOKhNbM zAt<^o{&JvY_M$5>UYn<+9{ks;@$obJys!8BvV<1?7rXuabncq$t5Z%_hA1xn{9wVG z4N+G+&n~aAz2l?wKFW_E0>@7f1B+ex0oHP$FFS6Tsl7r-lq8H-)LueW!Y)e1V|zE9p7Wh^=KKDC=ASwL{~wqg;H6D5 zq7VoKZ69yXAiP%K(V{`ZGwa;v)p)64`-L#6RH~Jg6#xLfzPa1cHMK`4acz#vqK;J{D>!w^g<#*`=oVPY|gGZexJ zE-O_Kqqr$i6vI$_j}k+bc>K?lxQ1a$+*B#IHth<5K$`OLbPoZ?-`>^#LS5op+ld&(c_dmxn=+4>amVOzPjslVo&Bg z=6F|Oyl+xdt`dePX5m%;r^3oh-2+D?0&f#_>1riUUa*%X?3`=t<-r<0S@pu5d?#u? zGq4O4rQC-vZ@)PdExU2#3gReY7> z?XxtsG+k?ZM5^!rb8}M{)I|$xm7E_h<5eb!7YbDI{h(G@BI0NA)uc8{tQdg zX`&8AgQAgbE$7dZD~76eP2{CgzN2{k+?{qQ<{%&r!%c3IrCq^5e}r&8_!uEUGT02n zf#o|z##!#&+dml+IJAsc+eN8l=Fc$g&FXm?kd!PZt^t8&~p> z#`e|F7va&b6x;JXpn9K)t5ik0E;)zpc^&iH=C5ClJ2EIo&Ep*-&F|RGQW@=Mm~$;% z&NGFbsQc1Td4FGGStUK=K<%ylX|WIPorHx?DT~(+CINbZmut);C$>YR2)G1q)x!_$ zxM6OW!=uX;p5m0_$(Z3C|ipdr9kNASowkfCpRoRyAoUq)+4X|6V=g820HCi^x)&?-hgd zCy4GuGi`N~_m{5vF>Qj2Le1xAv%)`Fj{5NB(J5O$_J+7RO>rYC@9Pn0q}wG=^Lcny zxWRIQ#g7IOl7I2~_+TlhUTXSQT%DPHB)NdS5qe4lPWTnmz(2pL#vf9YCVzv0?U3KR W6riQHivT{C2tLdJ&wD4L^8N)-{cxlJ literal 0 HcmV?d00001 diff --git a/docs/Manual/assets/startup.png b/docs/Manual/assets/startup.png new file mode 100644 index 0000000000000000000000000000000000000000..6702b8f61685e1c57aaf51d92667618c2cee9767 GIT binary patch literal 5266 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 literal 0 HcmV?d00001 diff --git a/docs/Manual/manual.aux b/docs/Manual/manual.aux new file mode 100644 index 0000000..acf802c --- /dev/null +++ b/docs/Manual/manual.aux @@ -0,0 +1,14 @@ +\relax +\providecommand{\transparent@use}[1]{} +\babel@aux{english}{} +\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{1}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2}User Guide}{1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Loading images}{2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Saving images}{2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Setting the active layer}{2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}Setting width and color of the pen}{2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.5}Drawing with the pen tool}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.6}Fill the active layer in one color}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.7}Moving layers}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.8}Transparency and layers}{4}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {3}Next steps}{4}\protected@file@percent } diff --git a/docs/Manual/manual.log b/docs/Manual/manual.log new file mode 100644 index 0000000..e4161f2 --- /dev/null +++ b/docs/Manual/manual.log @@ -0,0 +1,510 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018/W32TeX) (preloaded format=pdflatex 2018.12.21) 6 DEC 2019 08:34 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**manual.tex +(./manual.tex +LaTeX2e <2018-12-01> +(c:/texlive/2018/texmf-dist/tex/latex/base/article.cls +Document Class: article 2018/09/03 v1.4i Standard LaTeX document class +(c:/texlive/2018/texmf-dist/tex/latex/base/size12.clo +File: size12.clo 2018/09/03 v1.4i Standard LaTeX file (size option) +) +\c@part=\count80 +\c@section=\count81 +\c@subsection=\count82 +\c@subsubsection=\count83 +\c@paragraph=\count84 +\c@subparagraph=\count85 +\c@figure=\count86 +\c@table=\count87 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) +(c:/texlive/2018/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2018/08/11 v2.0j Standard LaTeX package + +(c:/texlive/2018/texmf-dist/tex/latex/base/t1enc.def +File: t1enc.def 2018/08/11 v2.0j Standard LaTeX file +LaTeX Font Info: Redeclaring font encoding T1 on input line 48. +)) +(c:/texlive/2018/texmf-dist/tex/latex/base/inputenc.sty +Package: inputenc 2018/08/11 v1.3c Input encoding file +\inpenc@prehook=\toks14 +\inpenc@posthook=\toks15 +) +(c:/texlive/2018/texmf-dist/tex/latex/roboto/roboto.sty +Package: roboto 2017/04/10 (Bob Tennent) Supports Roboto fonts for all LaTeX en +gines. + +(c:/texlive/2018/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) +(c:/texlive/2018/texmf-dist/tex/generic/oberdiek/ifluatex.sty +Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +) +(c:/texlive/2018/texmf-dist/tex/latex/xkeyval/xkeyval.sty +Package: xkeyval 2014/12/03 v2.7a package option processing (HA) + +(c:/texlive/2018/texmf-dist/tex/generic/xkeyval/xkeyval.tex +(c:/texlive/2018/texmf-dist/tex/generic/xkeyval/xkvutils.tex +\XKV@toks=\toks16 +\XKV@tempa@toks=\toks17 + +(c:/texlive/2018/texmf-dist/tex/generic/xkeyval/keyval.tex)) +\XKV@depth=\count88 +File: xkeyval.tex 2014/12/03 v2.7a key=value parser (HA) +)) +(c:/texlive/2018/texmf-dist/tex/latex/base/textcomp.sty +Package: textcomp 2018/08/11 v2.0j Standard LaTeX package +Package textcomp Info: Sub-encoding information: +(textcomp) 5 = only ISO-Adobe without \textcurrency +(textcomp) 4 = 5 + \texteuro +(textcomp) 3 = 4 + \textohm +(textcomp) 2 = 3 + \textestimated + \textcurrency +(textcomp) 1 = TS1 - \textcircled - \t +(textcomp) 0 = TS1 (full) +(textcomp) Font families with sub-encoding setting implement +(textcomp) only a restricted character set as indicated. +(textcomp) Family '?' is the default used for unknown fonts. +(textcomp) See the documentation for details. +Package textcomp Info: Setting ? sub-encoding to TS1/1 on input line 79. + +(c:/texlive/2018/texmf-dist/tex/latex/base/ts1enc.def +File: ts1enc.def 2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file +Now handling font encoding TS1 ... +... processing UTF-8 mapping file for font encoding TS1 + +(c:/texlive/2018/texmf-dist/tex/latex/base/ts1enc.dfu +File: ts1enc.dfu 2018/10/05 v1.2f UTF-8 support for inputenc + defining Unicode char U+00A2 (decimal 162) + defining Unicode char U+00A3 (decimal 163) + defining Unicode char U+00A4 (decimal 164) + defining Unicode char U+00A5 (decimal 165) + defining Unicode char U+00A6 (decimal 166) + defining Unicode char U+00A7 (decimal 167) + defining Unicode char U+00A8 (decimal 168) + defining Unicode char U+00A9 (decimal 169) + defining Unicode char U+00AA (decimal 170) + defining Unicode char U+00AC (decimal 172) + defining Unicode char U+00AE (decimal 174) + defining Unicode char U+00AF (decimal 175) + defining Unicode char U+00B0 (decimal 176) + defining Unicode char U+00B1 (decimal 177) + defining Unicode char U+00B2 (decimal 178) + defining Unicode char U+00B3 (decimal 179) + defining Unicode char U+00B4 (decimal 180) + defining Unicode char U+00B5 (decimal 181) + defining Unicode char U+00B6 (decimal 182) + defining Unicode char U+00B7 (decimal 183) + defining Unicode char U+00B9 (decimal 185) + defining Unicode char U+00BA (decimal 186) + defining Unicode char U+00BC (decimal 188) + defining Unicode char U+00BD (decimal 189) + defining Unicode char U+00BE (decimal 190) + defining Unicode char U+00D7 (decimal 215) + defining Unicode char U+00F7 (decimal 247) + defining Unicode char U+0192 (decimal 402) + defining Unicode char U+02C7 (decimal 711) + defining Unicode char U+02D8 (decimal 728) + defining Unicode char U+02DD (decimal 733) + defining Unicode char U+0E3F (decimal 3647) + defining Unicode char U+2016 (decimal 8214) + defining Unicode char U+2020 (decimal 8224) + defining Unicode char U+2021 (decimal 8225) + defining Unicode char U+2022 (decimal 8226) + defining Unicode char U+2030 (decimal 8240) + defining Unicode char U+2031 (decimal 8241) + defining Unicode char U+203B (decimal 8251) + defining Unicode char U+203D (decimal 8253) + defining Unicode char U+2044 (decimal 8260) + defining Unicode char U+204E (decimal 8270) + defining Unicode char U+2052 (decimal 8274) + defining Unicode char U+20A1 (decimal 8353) + defining Unicode char U+20A4 (decimal 8356) + defining Unicode char U+20A6 (decimal 8358) + defining Unicode char U+20A9 (decimal 8361) + defining Unicode char U+20AB (decimal 8363) + defining Unicode char U+20AC (decimal 8364) + defining Unicode char U+20B1 (decimal 8369) + defining Unicode char U+2103 (decimal 8451) + defining Unicode char U+2116 (decimal 8470) + defining Unicode char U+2117 (decimal 8471) + defining Unicode char U+211E (decimal 8478) + defining Unicode char U+2120 (decimal 8480) + defining Unicode char U+2122 (decimal 8482) + defining Unicode char U+2126 (decimal 8486) + defining Unicode char U+2127 (decimal 8487) + defining Unicode char U+212E (decimal 8494) + defining Unicode char U+2190 (decimal 8592) + defining Unicode char U+2191 (decimal 8593) + defining Unicode char U+2192 (decimal 8594) + defining Unicode char U+2193 (decimal 8595) + defining Unicode char U+2329 (decimal 9001) + defining Unicode char U+232A (decimal 9002) + defining Unicode char U+2422 (decimal 9250) + defining Unicode char U+25E6 (decimal 9702) + defining Unicode char U+25EF (decimal 9711) + defining Unicode char U+266A (decimal 9834) + defining Unicode char U+FEFF (decimal 65279) +)) +LaTeX Info: Redefining \oldstylenums on input line 334. +Package textcomp Info: Setting cmr sub-encoding to TS1/0 on input line 349. +Package textcomp Info: Setting cmss sub-encoding to TS1/0 on input line 350. +Package textcomp Info: Setting cmtt sub-encoding to TS1/0 on input line 351. +Package textcomp Info: Setting cmvtt sub-encoding to TS1/0 on input line 352. +Package textcomp Info: Setting cmbr sub-encoding to TS1/0 on input line 353. +Package textcomp Info: Setting cmtl sub-encoding to TS1/0 on input line 354. +Package textcomp Info: Setting ccr sub-encoding to TS1/0 on input line 355. +Package textcomp Info: Setting ptm sub-encoding to TS1/4 on input line 356. +Package textcomp Info: Setting pcr sub-encoding to TS1/4 on input line 357. +Package textcomp Info: Setting phv sub-encoding to TS1/4 on input line 358. +Package textcomp Info: Setting ppl sub-encoding to TS1/3 on input line 359. +Package textcomp Info: Setting pag sub-encoding to TS1/4 on input line 360. +Package textcomp Info: Setting pbk sub-encoding to TS1/4 on input line 361. +Package textcomp Info: Setting pnc sub-encoding to TS1/4 on input line 362. +Package textcomp Info: Setting pzc sub-encoding to TS1/4 on input line 363. +Package textcomp Info: Setting bch sub-encoding to TS1/4 on input line 364. +Package textcomp Info: Setting put sub-encoding to TS1/5 on input line 365. +Package textcomp Info: Setting uag sub-encoding to TS1/5 on input line 366. +Package textcomp Info: Setting ugq sub-encoding to TS1/5 on input line 367. +Package textcomp Info: Setting ul8 sub-encoding to TS1/4 on input line 368. +Package textcomp Info: Setting ul9 sub-encoding to TS1/4 on input line 369. +Package textcomp Info: Setting augie sub-encoding to TS1/5 on input line 370. +Package textcomp Info: Setting dayrom sub-encoding to TS1/3 on input line 371. +Package textcomp Info: Setting dayroms sub-encoding to TS1/3 on input line 372. + +Package textcomp Info: Setting pxr sub-encoding to TS1/0 on input line 373. +Package textcomp Info: Setting pxss sub-encoding to TS1/0 on input line 374. +Package textcomp Info: Setting pxtt sub-encoding to TS1/0 on input line 375. +Package textcomp Info: Setting txr sub-encoding to TS1/0 on input line 376. +Package textcomp Info: Setting txss sub-encoding to TS1/0 on input line 377. +Package textcomp Info: Setting txtt sub-encoding to TS1/0 on input line 378. +Package textcomp Info: Setting lmr sub-encoding to TS1/0 on input line 379. +Package textcomp Info: Setting lmdh sub-encoding to TS1/0 on input line 380. +Package textcomp Info: Setting lmss sub-encoding to TS1/0 on input line 381. +Package textcomp Info: Setting lmssq sub-encoding to TS1/0 on input line 382. +Package textcomp Info: Setting lmvtt sub-encoding to TS1/0 on input line 383. +Package textcomp Info: Setting lmtt sub-encoding to TS1/0 on input line 384. +Package textcomp Info: Setting qhv sub-encoding to TS1/0 on input line 385. +Package textcomp Info: Setting qag sub-encoding to TS1/0 on input line 386. +Package textcomp Info: Setting qbk sub-encoding to TS1/0 on input line 387. +Package textcomp Info: Setting qcr sub-encoding to TS1/0 on input line 388. +Package textcomp Info: Setting qcs sub-encoding to TS1/0 on input line 389. +Package textcomp Info: Setting qpl sub-encoding to TS1/0 on input line 390. +Package textcomp Info: Setting qtm sub-encoding to TS1/0 on input line 391. +Package textcomp Info: Setting qzc sub-encoding to TS1/0 on input line 392. +Package textcomp Info: Setting qhvc sub-encoding to TS1/0 on input line 393. +Package textcomp Info: Setting futs sub-encoding to TS1/4 on input line 394. +Package textcomp Info: Setting futx sub-encoding to TS1/4 on input line 395. +Package textcomp Info: Setting futj sub-encoding to TS1/4 on input line 396. +Package textcomp Info: Setting hlh sub-encoding to TS1/3 on input line 397. +Package textcomp Info: Setting hls sub-encoding to TS1/3 on input line 398. +Package textcomp Info: Setting hlst sub-encoding to TS1/3 on input line 399. +Package textcomp Info: Setting hlct sub-encoding to TS1/5 on input line 400. +Package textcomp Info: Setting hlx sub-encoding to TS1/5 on input line 401. +Package textcomp Info: Setting hlce sub-encoding to TS1/5 on input line 402. +Package textcomp Info: Setting hlcn sub-encoding to TS1/5 on input line 403. +Package textcomp Info: Setting hlcw sub-encoding to TS1/5 on input line 404. +Package textcomp Info: Setting hlcf sub-encoding to TS1/5 on input line 405. +Package textcomp Info: Setting pplx sub-encoding to TS1/3 on input line 406. +Package textcomp Info: Setting pplj sub-encoding to TS1/3 on input line 407. +Package textcomp Info: Setting ptmx sub-encoding to TS1/4 on input line 408. +Package textcomp Info: Setting ptmj sub-encoding to TS1/4 on input line 409. +) +(c:/texlive/2018/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2018/08/11 v2.0j Standard LaTeX package +) +(c:/texlive/2018/texmf-dist/tex/latex/fontaxes/fontaxes.sty +Package: fontaxes 2014/03/23 v1.0d Font selection axes +LaTeX Info: Redefining \upshape on input line 29. +LaTeX Info: Redefining \itshape on input line 31. +LaTeX Info: Redefining \slshape on input line 33. +LaTeX Info: Redefining \scshape on input line 37. +) +(c:/texlive/2018/texmf-dist/tex/latex/mweights/mweights.sty +Package: mweights 2017/03/30 (Bob Tennent) Support package for multiple-weight +font packages. +LaTeX Info: Redefining \bfseries on input line 22. +LaTeX Info: Redefining \mdseries on input line 30. +LaTeX Info: Redefining \rmfamily on input line 38. +LaTeX Info: Redefining \sffamily on input line 66. +LaTeX Info: Redefining \ttfamily on input line 94. +) +LaTeX Info: Redefining \oldstylenums on input line 189. +) +(c:/texlive/2018/texmf-dist/tex/latex/parskip/parskip.sty +Package: parskip 2018-08-24 v2.0a non-zero parskip adjustments + +(c:/texlive/2018/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO) + +(c:/texlive/2018/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO) +) +(c:/texlive/2018/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty +Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO) + +(c:/texlive/2018/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO) +) +(c:/texlive/2018/texmf-dist/tex/generic/oberdiek/etexcmds.sty +Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO) +Package etexcmds Info: Could not find \expanded. +(etexcmds) That can mean that you are not using pdfTeX 1.50 or +(etexcmds) that some package has redefined \expanded. +(etexcmds) In the latter case, load this package earlier. +))) +(c:/texlive/2018/texmf-dist/tex/latex/etoolbox/etoolbox.sty +Package: etoolbox 2018/08/19 v2.5f e-TeX tools for LaTeX (JAW) +\etb@tempcnta=\count89 +)) +(c:/texlive/2018/texmf-dist/tex/generic/babel/babel.sty +Package: babel 2018/11/13 3.27 The Babel package + +(c:/texlive/2018/texmf-dist/tex/generic/babel/switch.def +File: switch.def 2018/11/13 3.27 Babel switching mechanism +) +(c:/texlive/2018/texmf-dist/tex/generic/babel-english/english.ldf +Language: english 2017/06/06 v3.3r English support from the babel system + +(c:/texlive/2018/texmf-dist/tex/generic/babel/babel.def +File: babel.def 2018/11/13 3.27 Babel common definitions +\babel@savecnt=\count90 +\U@D=\dimen103 + +(c:/texlive/2018/texmf-dist/tex/generic/babel/txtbabel.def) +\bbl@dirlevel=\count91 +) +\l@canadian = a dialect from \language\l@american +\l@australian = a dialect from \language\l@british +\l@newzealand = a dialect from \language\l@british +)) +(c:/texlive/2018/texmf-dist/tex/latex/a4wide/a4wide.sty +Package: a4wide 1994/08/30 + +(c:/texlive/2018/texmf-dist/tex/latex/ntgclass/a4.sty +Package: a4 2004/04/15 v1.2g A4 based page layout +)) +(c:/texlive/2018/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR) + +(c:/texlive/2018/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2017/06/25 v1.2c Standard LaTeX Graphics (DPC,SPQR) + +(c:/texlive/2018/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2016/01/03 v1.10 sin cos tan (DPC) +) +(c:/texlive/2018/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: pdftex.def on input line 99. + +(c:/texlive/2018/texmf-dist/tex/latex/graphics-def/pdftex.def +File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex +)) +\Gin@req@height=\dimen104 +\Gin@req@width=\dimen105 +) +(c:/texlive/2018/texmf-dist/tex/latex/svg/svg.sty +Package: svg 2018/11/12 v2.02b (include SVG pictures) + +(c:/texlive/2018/texmf-dist/tex/latex/koma-script/scrbase.sty +Package: scrbase 2018/03/30 v3.25 KOMA-Script package (KOMA-Script-independent +basics and keyval usage) + +(c:/texlive/2018/texmf-dist/tex/latex/koma-script/scrlfile.sty +Package: scrlfile 2018/03/30 v3.25 KOMA-Script package (loading files) +)) +(c:/texlive/2018/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2018/09/07 v3.3 Provides the ifpdf switch +) +(c:/texlive/2018/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty +Package: pdftexcmds 2018/09/10 v0.29 Utility functions of pdfTeX for LuaTeX (HO +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +) +(c:/texlive/2018/texmf-dist/tex/latex/tools/shellesc.sty +Package: shellesc 2016/06/07 v0.02a unified shell escape interface for LaTeX +Package shellesc Info: Restricted shell escape enabled on input line 69. +) +(c:/texlive/2018/texmf-dist/tex/latex/trimspaces/trimspaces.sty +Package: trimspaces 2009/09/17 v1.1 Trim spaces around a token list +) +\svg@box=\box27 +\c@svg@param@lastpage=\count92 +\c@svg@param@currpage=\count93 +) +(c:/texlive/2018/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK) + +(c:/texlive/2018/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: pdftex.def on input line 225. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352. +Package xcolor Info: Model `RGB' extended on input line 1364. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371. +) +(c:/texlive/2018/texmf-dist/tex/latex/oberdiek/transparent.sty +Package: transparent 2018/11/18 v1.3 Transparency via pdfTeX's color stack (HO) + + +(c:/texlive/2018/texmf-dist/tex/latex/oberdiek/auxhook.sty +Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO) +)) (./manual.aux) +\openout1 = `manual.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 16. +LaTeX Font Info: ... okay on input line 16. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 16. +LaTeX Font Info: ... okay on input line 16. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 16. +LaTeX Font Info: ... okay on input line 16. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 16. +LaTeX Font Info: ... okay on input line 16. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 16. +LaTeX Font Info: ... okay on input line 16. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 16. +LaTeX Font Info: ... okay on input line 16. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 16. +LaTeX Font Info: Try loading font information for TS1+cmr on input line 16. + +(c:/texlive/2018/texmf-dist/tex/latex/base/ts1cmr.fd +File: ts1cmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions +) +LaTeX Font Info: ... okay on input line 16. +\c@mv@tabular=\count94 +\c@mv@boldtabular=\count95 + +(c:/texlive/2018/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count96 +\scratchdimen=\dimen106 +\scratchbox=\box28 +\nofMPsegments=\count97 +\nofMParguments=\count98 +\everyMPshowfont=\toks18 +\MPscratchCnt=\count99 +\MPscratchDim=\dimen107 +\MPnumerator=\count100 +\makeMPintoPDFobject=\count101 +\everyMPtoPDFconversion=\toks19 +) (c:/texlive/2018/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +Package: epstopdf-base 2016/05/15 v2.6 Base part for package epstopdf + +(c:/texlive/2018/texmf-dist/tex/latex/oberdiek/grfext.sty +Package: grfext 2016/05/16 v1.2 Manage graphics extensions (HO) + +(c:/texlive/2018/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty +Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO) +)) +Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 +38. +Package grfext Info: Graphics extension search list: +(grfext) [.pdf,.png,.jpg,.mps,.jpeg,.jbig2,.jb2,.PDF,.PNG,.JPG,.JPE +G,.JBIG2,.JB2,.eps] +(grfext) \AppendGraphicsExtensions on input line 456. + +(c:/texlive/2018/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv +e +)) +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <14.4> on input line 18. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <7> on input line 18. + +File: assets/icon.png Graphic file (type png) + +Package pdftex.def Info: assets/icon.png used on input line 21. +(pdftex.def) Requested size: 207.32315pt x 207.32288pt. + +(./manual.toc +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <12> on input line 4. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <8> on input line 4. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <6> on input line 4. +) +\tf@toc=\write3 +\openout3 = `manual.toc'. + + [1 + +{c:/texlive/2018/texmf-var/fonts/map/pdftex/updmap/pdftex.map} <./assets/icon.p +ng>] + +File: assets/startup.png Graphic file (type png) + +Package pdftex.def Info: assets/startup.png used on input line 40. +(pdftex.def) Requested size: 230.36061pt x 269.06033pt. + [1 <./assets/startup.png>] + +File: assets/file-open.png Graphic file (type png) + +Package pdftex.def Info: assets/file-open.png used on input line 47. +(pdftex.def) Requested size: 138.21777pt x 93.00453pt. + +File: assets/file-save.png Graphic file (type png) + +Package pdftex.def Info: assets/file-save.png used on input line 55. +(pdftex.def) Requested size: 138.21777pt x 95.17917pt. + [2 <./assets/file-open.png> <./assets/file-save.png>] + +File: assets/file-options.png Graphic file (type png) + +Package pdftex.def Info: assets/file-options.png used on input line 67. +(pdftex.def) Requested size: 138.21777pt x 66.47704pt. + +File: assets/fill-layer.png Graphic file (type png) + +Package pdftex.def Info: assets/fill-layer.png used on input line 79. +(pdftex.def) Requested size: 138.21777pt x 138.22112pt. + +File: assets/moving-layers.png Graphic file (type png) + +Package pdftex.def Info: assets/moving-layers.png used on input line 86. +(pdftex.def) Requested size: 138.21777pt x 156.60057pt. + [3 <./assets/file-options.png> <./assets/fill-layer.png>] + +File: assets/layer-alpha.png Graphic file (type png) + +Package pdftex.def Info: assets/layer-alpha.png used on input line 93. +(pdftex.def) Requested size: 138.21777pt x 61.81462pt. + [4 <./assets/moving-layers.png> <./assets/layer-alpha.png>] (./manual.aux) ) +Here is how much of TeX's memory you used: + 4758 strings out of 492616 + 70540 string characters out of 6132767 + 168952 words of memory out of 5000000 + 8550 multiletter control sequences out of 15000+600000 + 13026 words of font info for 34 fonts, out of 8000000 for 9000 + 1141 hyphenation exceptions out of 8191 + 41i,6n,58p,820b,229s stack positions out of 5000i,500n,10000p,200000b,80000s +{c +:/texlive/2018/texmf-dist/fonts/enc/dvips/cm-super/cm-super-t1.enc}{c:/texlive/ +2018/texmf-dist/fonts/enc/dvips/cm-super/cm-super-ts1.enc} +Output written on manual.pdf (5 pages, 202802 bytes). +PDF statistics: + 65 PDF objects out of 1000 (max. 8388607) + 35 compressed objects within 1 object stream + 0 named destinations out of 1000 (max. 500000) + 41 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/docs/manual.pdf b/docs/Manual/manual.pdf similarity index 100% rename from docs/manual.pdf rename to docs/Manual/manual.pdf diff --git a/docs/Manual/manual.synctex.gz b/docs/Manual/manual.synctex.gz new file mode 100644 index 0000000000000000000000000000000000000000..9755c2d4d9a07442f5bb5b2142715f5468dcf433 GIT binary patch literal 21329 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 2^(8)-1 mögliche Farben + Transparenz + -Die Zuordnung der Farben erfolgt automatisch und wird ebenfalls in der exportierten Datei gespeichert + -Die Umsetzung erfolgt mit dem Standart PNG8 +Originator: + Jonas Mucke +Fit Criterion: + -Darstellung von mindestens 250 paarweise verschiedenen Farbstufen + -Darstellung einen transparenten Bits (Alpha Kanal = 1) + -Verarbeitungsmöglichkeit für 2^10 Pixel in unter 0.1 Sekunde beim Einlesen und Speichern +Priority: + 0 +Support Material: + Ubungsblat_01.pdf +Conflicts: +History: + -Erstellt am 30.10.2019, von Jonas Mucke + -Aktualisiert am 17.12.2019, von Paul Norberger + -Vollständig umgesetzt, Stand: 17.12.2019 \ No newline at end of file diff --git a/docs/Volere Snow Cards/Req_0002.txt b/docs/Volere Snow Cards/Req_0002.txt new file mode 100644 index 0000000..c106509 --- /dev/null +++ b/docs/Volere Snow Cards/Req_0002.txt @@ -0,0 +1,78 @@ +Req-ID: + 0002 +Req-Type: + Funktional +Events/UCs: + -Bearbeitung des Bildes mit einer Betriebssystem unterstützen Eingabemöglichkeit, zum Beispiel Maus oder Stift + -Bearbeitung mittels verschiedener Zeichen-Tools + -Freiwählbare Farbe aus dem möglichen Farbbereich +Description: + -Ein Farbwert, auch Transparent, welcher durch die genutzte Codierung (siehe Req_0001) darstellbar sein. Dies soll mittels Tools + gesetzt werden können, wobei diese spezifizieren was "gesetzt" bedeutet. + -Tools: + Pinsel: + -Der Pinsel ist ein Tool, welches um seinen Mittelpunkt alles in einem gewissen Pixelradius einfärbt. + Der Pixelradius geht dabei von 1-Pixel bis zu 10-Pixel. + Forms: + -Kreis: + Das Tool Kreis, soll es ermöglichen einen Kreis in einer gewählten Farbe aufzuspannen. + Dabei wird am Mittelpunkt angesetzt und dann zu einem beliebigen Punkt auf dem Kreis gezogen, die restlichen Punkte werden dann + mit dem selben Radius gefunden. + Das Rechteck besitzt 2 Farbattribute, den Rand und die Füllung. Der Rand kann im Bezug auf Breite und Farbe eingestellt werden. + Die Füllung ist innerhalb der Fläche, welche vom Rand aufgespannt wird, und kann im Bezug auf die Farbe und die Transparenz + eingestellt werden. + -Linie: + Das Tool Formen (Linie), soll es einem ermöglichen eine Linie in der gewählten Farbe zwischen 2 Punkten zu + ziehen. Dabei wird am ersten Punkt angesetzt und zum Zielpunkt gezogen, dabei verändert sich die Linie live. + Sobald das Eingabegerät getogglet wird, so wird die aktuelle Stelle als Endpunkt angenommen. Zwischen + Start und Endpunkt wird die Linie gezeichnet. + Es existieren verschiedene Linien-Formen: + -durchgezogene Linie (eine Linie ohne Lücken) + -gestrichelte Linie (auf der Linie werden nur Striche in regelmäßigen Abständen gezeichnet) + -gepunktete Linie (auf der Linie wird punktweise zwischen Farbig und Transparent alterniert) + Die Linie kann mittels dem Breite-Attribut verändert werden (Breite zwischen 1 und 10 Pixel) + -Rechteck: + Das Tool Formen (Rechteck), soll es einem ermöglichen ein Rechteck in ein einer gewählten Farbe aufzuspannen. + Dabei wird am ersten Punkt angesetzt und zum Zielpunkt gezogen. Dabei verändert sich das Rechteck live. + Sobald das Eingabegerät getogglet wird, so wird die aktuelle Stelle als Endpunkt angenommen. Zwischen Start und Endpunkt + wird das Rechteck aufgespannt. + Das Rechteck besitzt 2 Farbattribute, den Rand und die Füllung. Der Rand ist um das Rechteck gesetzt und kann + im Bezug auf Breite und Farbe eingestellt werden. Die Füllung ist innerhalb der Fläche, welche vom Rand aufgespannt wird, + und kann im Bezug auf die Farbe und die Transparenz eingestellt werden. + FloodFill: + -Das Floodfill Tool, bei diesem wird ein Pixel ausgewählt. Alle Pixel die mit diesem Pixel in einer Äquivalenzklasse + im Bezug auf Farbe und Nachbarschafts-Relation stehen, werden in die gewählte Farbe eingefärbt. + Einfarbig: + -Das Einfarbig Tool färbt das gesamte Bild in die gewählte Farbe ein. + Korrektur: + -Die Korrektur Tool ermöglicht das Anpassen verschiedener Bildwerte + -Helligkeit: + Das Tool Korrektur (Helligkeit), soll es ermöglichen die Helligkeit des Bildes anzupassen + -Farbton: + Das Tool Korrektur (Farbton), soll es ermöglichen den Farbton des Bildes anzupassen + Gradiation: + -Das Gradiations Tool soll es ermöglichen Farbverläufe mit einer Anfangs- und Endfarbe zu erstellen, zwischen welchen linear interpoliert wird. + Selektion: + -Das Selektionstool soll es ermöglichen ein Rechteck an Pixeln auszuwählen welche für die Bearbeitung durch andere Tools + berücksichtigt werden sollen. + Dabei wird am ersten Punkt angesetzt und zum Zielpunkt gezogen. Dabei verändert sich das Rechteck live. + Sobald das Eingabegerät getogglet wird, so wird die aktuelle Stelle als Endpunkt angenommen. Zwischen Start und Endpunkt + wird das Rechteck aufgespannt. + Cut: + -Das Cut Tool ermöglicht das Ausschneiden der selektierten Pixel +Originator: + Jonas Mucke +Fit Criterion: + -Das Setzten eines Pixels, in einer beliebigen Farbe, funktioniert in 99,9% in unter 0.01 Sekundens auf Referenzsystem + -Der Vollständige Farbbreich ist frei wählbar + -Es müssen mindestens 3 Tools benutzbar sein, das bedeutet eine 99,9% richtiges Verhalten in unter 0.1 Sekunden auf Referenzsystem + -Tools besitzen in 100% der Fälle das gewünschte Verhalten +Priority: + 100 +Support Material: + Ubungsblat_01.pdf +Conflicts: + - Keine bekannten Konflikte, Stand: 17.12.2019 +History: + - Erstellt am 30.10.2019 um 22:10, von Jonas Mucke + - Aktualisiert am 17.12.2019, von Paul Norberger \ No newline at end of file diff --git a/docs/Volere Snow Cards/Req_0003.txt b/docs/Volere Snow Cards/Req_0003.txt new file mode 100644 index 0000000..e157f07 --- /dev/null +++ b/docs/Volere Snow Cards/Req_0003.txt @@ -0,0 +1,26 @@ +Req-ID: + 0003 +Req-Type: + Nicht-Funktional +Events/UCs: + - Selbsterklärendes & geordnetes User Interface +Description: + - Verständliches & gewohntes Design der Benutzeroberfläche + - Ähnlichkeit zu bewährten UIs, wie die beliebter Software (Gimp, Photoshop...) + - Toolleiste, die Icons für die einzelnen Tools beinhaltet und logisch in seperate Abschnitte eingeteilt ist + - Toolleiste als Block, der sich je nach Tool ändert auf einer linken Seite des Canvas + - Ein Layer"stack", der kleine Previewbilder der einzelnen Ebenen beinhaltet und das Verändern der Reihenfolge, sowie das Löschen & Erstellen von Layern erlaubt. + - Ein großer, zentraler Canvas, der die Bearbeitung ermöglicht +Originator: + Paul Norberger +Fit Criterion: + -Testgruppe von 3 Personen, die das Programm zuvor noch nie benutzt haben, stellen keine Fragen über die Benutzerobefläche nach einigen Minuten Ausprobieren. + -Kunde, der das neue Interface noch nie benutzt hat, hat keine größeren Schwierigkeiten damit zurecht zu kommen. +Priority: + 20 +Support Material: + Ubungsblat_01.pdf +Conflicts: + -Keine bekannten Konflikte, Stand: 17.12.2019 +History: + -Erstellt am 17.12.2019 diff --git a/docs/Volere Snow Cards/Req_0004.txt b/docs/Volere Snow Cards/Req_0004.txt new file mode 100644 index 0000000..7fd77a2 --- /dev/null +++ b/docs/Volere Snow Cards/Req_0004.txt @@ -0,0 +1,34 @@ +Req-ID: + 0004 +Req-Type: + Funktional +Events/UCs: + -Rückgängigmachen eines vorherigen Fehlers + -Rückgängigmachen einer versehntlichen Korrektur + -Einen rückgängig gemachten Schritt wiederholen +Description: + -Es werden insgesamt 20 Bearbeitungschritte gespeichert + -Die gesamten Pixeldaten der Ebenen werden für jeden Schritt gespeichert + -Wird der Undo aktiviert, wird zunächst bestimmt ob sich die Daten für den Schritt direkt + davor im Speicher befinden. Ist dies der Fall, werden die Daten geladen und der intern + gespeicherte Index des geladenen Statuses verschiebt sich nach vorn, so kann mehrfach + geundoed und redoed werden. Ist dies nicht der Fall, gibt es ein audiovisuelles Feedback, + dass der Schritt nicht geladen werden kann. + -Wird der Undo aktiviert, wird zunächst bestimmt ob sich die Daten für den Schritt direkt + davor im Speicher befinden Ist dies der Fall, werden die Daten geladen und der intern + gespeicherte Index des geladenen Statuses verschiebt sich nach hinten, so kann mehrfach + geundoed und redoed werden. Ist dies nicht der Fall, gibt es ein audiovisuelles Feedback, + dass der Schritt nicht geladen werden kann. +Originator: + Paul Norberger +Fit Criterion: + -Bis zu 20 Schritte können geundoed und redoed werden + -Das Laden der einzelnen Schritte dauert für ein 512x512px Bild nicht länger als 0.2 Sekunden auf Referenzsystem +Priority: + 50 +Support Material: + Ubungsblat_01.pdf +Conflicts: + - Keine bekannten Konflikte, Stand: 18.12.2019 +History: + - Erstellt am 18.12.2019, von Paul Norberger \ No newline at end of file From 89b9e4467739201d5ea8b1ee83b0991a61ce7d16 Mon Sep 17 00:00:00 2001 From: AshBastian Date: Wed, 18 Dec 2019 15:47:23 +0100 Subject: [PATCH 21/62] PolygonTool fertig --- src/GUI/IntelliPhotoGui.cpp | 16 +++++----------- src/GUI/IntelliPhotoGui.h | 2 -- src/IntelliPhoto.pro | 5 ++--- src/Layer/PaintingArea.cpp | 12 ++++++++++-- src/Layer/PaintingArea.h | 4 ++++ src/Tool/IntelliToolLine.cpp | 3 +-- src/Tool/IntelliToolPolygon.cpp | 21 ++++++++++++++++++--- src/Tool/IntelliToolPolygon.h | 2 ++ src/mainwindow.ui | 23 +++++++++++++++++++++++ src/widget.ui | 19 ------------------- 10 files changed, 65 insertions(+), 42 deletions(-) create mode 100644 src/mainwindow.ui delete mode 100644 src/widget.ui diff --git a/src/GUI/IntelliPhotoGui.cpp b/src/GUI/IntelliPhotoGui.cpp index 7611b30..ce6af70 100644 --- a/src/GUI/IntelliPhotoGui.cpp +++ b/src/GUI/IntelliPhotoGui.cpp @@ -8,6 +8,7 @@ // IntelliPhotoGui constructor IntelliPhotoGui::IntelliPhotoGui(){ + //create Gui elements and lay them out createGui(); // Create actions @@ -19,7 +20,8 @@ IntelliPhotoGui::IntelliPhotoGui(){ // Size the app resize(600,600); - //showMaximized(); + showMaximized(); + } // User tried to close the app @@ -105,14 +107,6 @@ void IntelliPhotoGui::slotDeleteLayer(){ paintingArea->deleteLayer(layerNumber); } -void slotCreatePenTool(){ - -} - -void slotCreateFloodFillTool(){ - -} - void IntelliPhotoGui::slotSetActiveAlpha(){ // Stores button value bool ok1, ok2; @@ -205,7 +199,7 @@ void IntelliPhotoGui::slotSetActiveLayer(){ { paintingArea->setLayerToActive(layer); } -}; +} void IntelliPhotoGui::slotSetFirstColor(){ paintingArea->colorPickerSetFirstColor(); @@ -318,7 +312,7 @@ void IntelliPhotoGui::createActions(){ connect(actionColorPickerFirstColor, SIGNAL(triggered()), this, SLOT(slotSetFirstColor())); actionColorPickerSecondColor = new QAction(tr("&Secondary"), this); - connect(actionColorPickerSecondColor, SIGNAL(triggered()), this, SLOT(slotSetFirstColor())); + connect(actionColorPickerSecondColor, SIGNAL(triggered()), this, SLOT(slotSetSecondColor())); actionColorSwitch = new QAction(tr("&Switch"), this); actionColorSwitch->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_S)); diff --git a/src/GUI/IntelliPhotoGui.h b/src/GUI/IntelliPhotoGui.h index c074d85..ad8250a 100644 --- a/src/GUI/IntelliPhotoGui.h +++ b/src/GUI/IntelliPhotoGui.h @@ -68,7 +68,6 @@ private: //set style of the GUI void setIntelliStyle(); - // Will check if changes have occurred since last save bool maybeSave(); // Opens the Save dialog and saves @@ -123,7 +122,6 @@ private: //main GUI elements QWidget* centralGuiWidget; - QPushButton* Toolmanager; QGridLayout *mainLayout; }; diff --git a/src/IntelliPhoto.pro b/src/IntelliPhoto.pro index d1fe9fa..21210e8 100644 --- a/src/IntelliPhoto.pro +++ b/src/IntelliPhoto.pro @@ -46,11 +46,10 @@ HEADERS += \ Tool/IntelliToolPen.h \ Tool/IntelliToolPlain.h \ Tool/IntelliToolPolygon.h \ - Tool/IntelliToolRechteck.h \ - Tool/intellitoolcircle.h + Tool/IntelliToolRechteck.h FORMS += \ - widget.ui + mainwindow.ui QMAKE_CXXFLAGS QMAKE_LFLAGS diff --git a/src/Layer/PaintingArea.cpp b/src/Layer/PaintingArea.cpp index dd53f0b..bca41f0 100644 --- a/src/Layer/PaintingArea.cpp +++ b/src/Layer/PaintingArea.cpp @@ -24,7 +24,7 @@ PaintingArea::PaintingArea(int maxWidth, int maxHeight, QWidget *parent) this->setUp(maxWidth, maxHeight); //tetsing this->addLayer(200,200,0,0,ImageType::Shaped_Image); - layerBundle[0].image->drawPlain(QColor(255,0,0,255)); + layerBundle[0].image->drawPlain(QColor(0,0,255,255)); std::vector polygon; polygon.push_back(QPoint(100,000)); polygon.push_back(QPoint(200,100)); @@ -36,7 +36,7 @@ PaintingArea::PaintingArea(int maxWidth, int maxHeight, QWidget *parent) layerBundle[1].image->drawPlain(QColor(0,255,0,255)); layerBundle[1].alpha=200; - activeLayer=1; + activeLayer=0; } PaintingArea::~PaintingArea(){ @@ -193,6 +193,14 @@ void PaintingArea::createLineTool(){ Tool = new IntelliToolLine(this, &colorPicker); } +int PaintingArea::getWidthActiveLayer(){ + return layerBundle.operator[](activeLayer).width; +} + +int PaintingArea::getHeightActiveLayer(){ + return layerBundle.operator[](activeLayer).hight; +} + // If a mouse button is pressed check if it was the // left button and if so store the current position // Set that we are currently drawing diff --git a/src/Layer/PaintingArea.h b/src/Layer/PaintingArea.h index e598774..547b6f3 100644 --- a/src/Layer/PaintingArea.h +++ b/src/Layer/PaintingArea.h @@ -59,6 +59,10 @@ public: void createPlainTool(); void createLineTool(); + //get Width and Height of active Layer + int getWidthActiveLayer(); + int getHeightActiveLayer(); + public slots: // Events to handle diff --git a/src/Tool/IntelliToolLine.cpp b/src/Tool/IntelliToolLine.cpp index 0b088cd..83ed0c7 100644 --- a/src/Tool/IntelliToolLine.cpp +++ b/src/Tool/IntelliToolLine.cpp @@ -26,7 +26,7 @@ void IntelliToolLine::onMouseRightReleased(int x, int y){ void IntelliToolLine::onMouseLeftPressed(int x, int y){ IntelliTool::onMouseLeftPressed(x,y); this->start=QPoint(x,y); - this->Canvas->image->drawLine(start, start, colorPicker->getFirstColor(),lineWidth); + this->Canvas->image->drawPoint(start, colorPicker->getFirstColor(),lineWidth); Canvas->image->calculateVisiblity(); } @@ -43,7 +43,6 @@ void IntelliToolLine::onWheelScrolled(int value){ } void IntelliToolLine::onMouseMoved(int x, int y){ - IntelliTool::onMouseMoved(x,y); if(this->drawing){ this->Canvas->image->drawPlain(Qt::transparent); QPoint next(x,y); diff --git a/src/Tool/IntelliToolPolygon.cpp b/src/Tool/IntelliToolPolygon.cpp index 3c297ac..8d3e26d 100644 --- a/src/Tool/IntelliToolPolygon.cpp +++ b/src/Tool/IntelliToolPolygon.cpp @@ -13,8 +13,11 @@ IntelliToolPolygon::IntelliToolPolygon(PaintingArea* Area, IntelliColorPicker* c } void IntelliToolPolygon::onMouseLeftPressed(int x, int y){ - qDebug() << x << y; - if(!isDrawing && x > 0 && y > 0){ + if(!isDrawing){ + width = Area->getWidthActiveLayer(); + height = Area->getHeightActiveLayer(); + } + if(!isDrawing && x > 0 && y > 0 && x < width && y < height){ isDrawing = true; drawingPoint.setX(x); drawingPoint.setY(y); @@ -22,16 +25,19 @@ void IntelliToolPolygon::onMouseLeftPressed(int x, int y){ IntelliTool::onMouseLeftPressed(x,y); this->Canvas->image->drawPlain(Qt::transparent); this->Canvas->image->drawPoint(QPointList.back(), colorPicker->getFirstColor(), lineWidth); + this->Canvas->image->calculateVisiblity(); } else if(isDrawing && isNearStart(x,y,QPointList.front())){ PointIsNearStart = isNearStart(x,y,QPointList.front()); - this->Canvas->image->drawLine(QPointList.back(), QPointList.front(), colorPicker->getFirstColor(), lineWidth);s + this->Canvas->image->drawLine(QPointList.back(), QPointList.front(), colorPicker->getFirstColor(), lineWidth); + this->Canvas->image->calculateVisiblity(); } else if(isDrawing){ drawingPoint.setX(x); drawingPoint.setY(y); QPointList.push_back(drawingPoint); this->Canvas->image->drawLine(QPointList.operator[](QPointList.size() - 2), QPointList.back(), colorPicker->getFirstColor(), lineWidth); + this->Canvas->image->calculateVisiblity(); } } @@ -44,8 +50,17 @@ void IntelliToolPolygon::onMouseRightPressed(int x, int y){ void IntelliToolPolygon::onMouseLeftReleased(int x, int y){ if(PointIsNearStart && QPointList.size() > 1){ + this->Canvas->image->calculateVisiblity(); PointIsNearStart = false; isDrawing = false; + for(int i = 0; i < width; i++){ + for(int j = 0; j < height; j++){ + if(/*funktion(QPointList,i,j)*/false){ + this->Canvas->image->drawPixel(QPoint(i,j), colorPicker->getFirstColor()); + continue; + } + } + } QPointList.clear(); IntelliTool::onMouseLeftReleased(x,y); } diff --git a/src/Tool/IntelliToolPolygon.h b/src/Tool/IntelliToolPolygon.h index c8496e9..fc51ec6 100644 --- a/src/Tool/IntelliToolPolygon.h +++ b/src/Tool/IntelliToolPolygon.h @@ -23,6 +23,8 @@ private: bool isNearStart(int x, int y, QPoint Startpoint); int lineWidth; + int width; + int height; bool isDrawing; bool PointIsNearStart; QPoint drawingPoint; diff --git a/src/mainwindow.ui b/src/mainwindow.ui new file mode 100644 index 0000000..433b697 --- /dev/null +++ b/src/mainwindow.ui @@ -0,0 +1,23 @@ + + + MainWindow + + + + 0 + 0 + 542 + 459 + + + + IntelliPhoto + + + true + + + + + + diff --git a/src/widget.ui b/src/widget.ui deleted file mode 100644 index b1d4c7b..0000000 --- a/src/widget.ui +++ /dev/null @@ -1,19 +0,0 @@ - - - Widget - - - - 0 - 0 - 360 - 206 - - - - Widget - - - - - From 4953abc791d1b43b9d82251200228cb439acf797 Mon Sep 17 00:00:00 2001 From: Sonaion Date: Wed, 18 Dec 2019 16:32:11 +0100 Subject: [PATCH 22/62] Integrated Polygon Test Use calculate traingles and the isInPolygon with theese triangles, this is done because of performance reasons --- src/Image/IntelliShapedImage.cpp | 23 ++---- src/Image/IntelliShapedImage.h | 4 + src/IntelliHelper/IntelliHelper.cpp | 121 ++++++++++++++++++++++++++++ src/IntelliHelper/IntelliHelper.h | 22 +++-- src/main.cpp | 2 + 5 files changed, 150 insertions(+), 22 deletions(-) diff --git a/src/Image/IntelliShapedImage.cpp b/src/Image/IntelliShapedImage.cpp index 0dbc807..dbf6e48 100644 --- a/src/Image/IntelliShapedImage.cpp +++ b/src/Image/IntelliShapedImage.cpp @@ -35,26 +35,18 @@ void IntelliShapedImage::calculateVisiblity(){ } return; } - QPoint A = polygonData[0]; QColor clr; for(int y=0; y(polygonData.size()-1); i++){ - QPoint B = polygonData[static_cast(i)]; - QPoint C = polygonData[static_cast(i+1)]; - QPoint P(x,y); - cutNumeber+=IntelliHelper::isInTriangle(A,B,C,P); - } - if(cutNumeber%2==0){ - clr = imageData.pixelColor(x,y); - clr.setAlpha(0); - imageData.setPixelColor(x,y,clr); - }else{ - clr = imageData.pixelColor(x,y); + QPoint ptr(x,y); + clr = imageData.pixelColor(x,y); + bool isInPolygon = IntelliHelper::isInPolygon(triangles, ptr); + if(isInPolygon){ clr.setAlpha(std::min(255, clr.alpha())); - imageData.setPixelColor(x,y,clr); + }else{ + clr.setAlpha(0); } + imageData.setPixelColor(x,y,clr); } } } @@ -79,6 +71,7 @@ void IntelliShapedImage::setPolygon(const std::vector& polygonData){ for(auto element:polygonData){ this->polygonData.push_back(QPoint(element.x(), element.y())); } + triangles = IntelliHelper::calculateTriangles(polygonData); } calculateVisiblity(); return; diff --git a/src/Image/IntelliShapedImage.h b/src/Image/IntelliShapedImage.h index 0a3598e..9e9518f 100644 --- a/src/Image/IntelliShapedImage.h +++ b/src/Image/IntelliShapedImage.h @@ -2,9 +2,13 @@ #define INTELLISHAPE_H #include"Image/IntelliRasterImage.h" +#include +#include"IntelliHelper/IntelliHelper.h" class IntelliShapedImage : public IntelliRasterImage{ friend IntelliTool; +private: + std::vector triangles; protected: std::vector polygonData; diff --git a/src/IntelliHelper/IntelliHelper.cpp b/src/IntelliHelper/IntelliHelper.cpp index cb5d6a8..42b8aab 100644 --- a/src/IntelliHelper/IntelliHelper.cpp +++ b/src/IntelliHelper/IntelliHelper.cpp @@ -1,2 +1,123 @@ #include"IntelliHelper.h" #include +#include +#include + + +std::vector IntelliHelper::calculateTriangles(std::vector polyPoints){ + //helper for managing the triangle vertices and their state + struct TriangleHelper{ + QPoint vertex; + float interiorAngle; + int index; + bool isTip; + }; + + //calculates the inner angle of 'point' + auto calculateInner = [](QPoint& point, QPoint& prev, QPoint& post){ + QPoint AP(point.x()-prev.x(), point.y()-prev.y()); + QPoint BP(point.x()-post.x(), point.y()-post.y()); + + float topSclar = AP.x()*BP.x()+AP.y()*BP.y(); + float absolute = sqrt(pow(AP.x(),2.)+pow(AP.y(),2.))*sqrt(pow(BP.x(),2.)+pow(BP.y(),2.)); + return acos(topSclar/absolute); + }; + + //gets the first element of vec for which element.isTip == true holds + auto getTip= [](const std::vector& vec){ + for(auto element:vec){ + if(element.isTip){ + return element; + } + } + return vec[0]; + }; + + //get the vertex Index bevor index in relation to the container length + auto getPrev = [](int index, int length){ + return (index-1)>0?(index-1):(length-1); + }; + + //get the vertex Index after index in relation to the container lenght + auto getPost = [](int index, int length){ + return (index+1)%length; + }; + + //return if the vertex is a tip + auto isTip = [](float angle){ + return angle<180.f; + }; + + std::vector Vertices; + std::vector Triangles; + + //set up all vertices and calculate intirior angle + for(int i=0; i(polyPoints.size()); i++){ + TriangleHelper helper; + int prev = getPrev(i, static_cast(polyPoints.size())); + int post = getPost(i, static_cast(polyPoints.size())); + + helper.vertex = polyPoints[static_cast(i)]; + helper.index = i; + + helper.interiorAngle = calculateInner(polyPoints[static_cast(i)], + polyPoints[static_cast(prev)], + polyPoints[static_cast(post)]); + helper.isTip = isTip(helper.interiorAngle); + Vertices.push_back(helper); + } + + //search triangles based on the intirior angles of each vertey + while(Triangles.size() != polyPoints.size()-2){ + Triangle tri; + TriangleHelper smallest = getTip(Vertices); + int prev = getPrev(smallest.index, static_cast(Vertices.size())); + int post = getPost(smallest.index, static_cast(Vertices.size())); + + //set triangle and push it + tri.A = Vertices[static_cast(prev)].vertex; + tri.B = Vertices[static_cast(smallest.index)].vertex; + tri.C = Vertices[static_cast(post)].vertex; + Triangles.push_back(tri); + + //update Vertice array + Vertices.erase(Vertices.begin()+smallest.index); + for(size_t i=static_cast(smallest.index); i(Vertices.size())); + int postOfPrev = getPost(prev, static_cast(Vertices.size())); + + int prevOfPost = getPrev(post, static_cast(Vertices.size())); + int postOfPost = getPost(post, static_cast(Vertices.size())); + + //update vertices with interior angles + //updtae prev + Vertices[static_cast(prev)].interiorAngle = calculateInner(Vertices[static_cast(prev)].vertex, + Vertices[static_cast(prevOfPrev)].vertex, + Vertices[static_cast(postOfPrev)].vertex); + Vertices[static_cast(prev)].isTip = isTip(Vertices[static_cast(prev)].interiorAngle); + //update post + Vertices[static_cast(post)].interiorAngle = calculateInner(Vertices[static_cast(post)].vertex, + Vertices[static_cast(prevOfPost)].vertex, + Vertices[static_cast(postOfPost)].vertex); + Vertices[static_cast(post)].isTip = isTip(Vertices[static_cast(post)].interiorAngle); + + } + return Triangles; +} + +bool IntelliHelper::isInPolygon(std::vector &triangles, QPoint &point){ + for(auto triangle : triangles){ + if(IntelliHelper::isInTriangle(triangle.A ,triangle.B, triangle.C, point)){ + return true; + } + } + return false; +} diff --git a/src/IntelliHelper/IntelliHelper.h b/src/IntelliHelper/IntelliHelper.h index 1bad2b9..e01aff9 100644 --- a/src/IntelliHelper/IntelliHelper.h +++ b/src/IntelliHelper/IntelliHelper.h @@ -2,17 +2,20 @@ #define INTELLIHELPER_H #include +#include + +struct Triangle{ + QPoint A,B,C; +}; + +namespace IntelliHelper { -class IntelliHelper{ - -public: - - static inline float sign(QPoint& p1, QPoint& p2, QPoint& p3){ + inline float sign(QPoint& p1, QPoint& p2, QPoint& p3){ return (p1.x()-p3.x())*(p2.y()-p3.y())-(p2.x()-p3.x())*(p1.y()-p3.y()); } - static inline bool isInTriangle(QPoint& A, QPoint& B, QPoint& C, QPoint& P){ + inline bool isInTriangle(QPoint& A, QPoint& B, QPoint& C, QPoint& P){ float val1, val2, val3; bool neg, pos; @@ -25,6 +28,11 @@ public: return !(neg && pos); } -}; + + std::vector calculateTriangles(std::vector polyPoints); + + bool isInPolygon(std::vector &triangles, QPoint &point); + +} #endif diff --git a/src/main.cpp b/src/main.cpp index 771a872..c8e501c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,6 +1,8 @@ #include "GUI/IntelliPhotoGui.h" #include #include +#include "IntelliHelper/IntelliHelper.h" +#include int main(int argc, char *argv[]){ // The main application From 197ac599984b73b381a9a50327b25dfa7c281f32 Mon Sep 17 00:00:00 2001 From: Sonaion Date: Wed, 18 Dec 2019 16:34:17 +0100 Subject: [PATCH 23/62] gitignore update --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index f4c35fb..a9a564c 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ CMakeLists.txt.user* /share/qtcreator/fonts/ /share/qtcreator/generic-highlighter/ /share/qtcreator/qmldesigner/QtProject/ +/build-*/ app_version.h phony.c From 1d65078df07b6cf60d14ddb84e1e687eefad7d65 Mon Sep 17 00:00:00 2001 From: Sonaion Date: Wed, 18 Dec 2019 17:17:23 +0100 Subject: [PATCH 24/62] Image doc --- src/Image/IntelliImage.h | 79 +++++++++++++++++++++++++++++++++++----- 1 file changed, 70 insertions(+), 9 deletions(-) diff --git a/src/Image/IntelliImage.h b/src/Image/IntelliImage.h index 14e9ec2..05d1f09 100644 --- a/src/Image/IntelliImage.h +++ b/src/Image/IntelliImage.h @@ -8,6 +8,9 @@ #include #include +/*! + * \brief The Types, which an Image can be. + */ enum class ImageType{ Raster_Image, Shaped_Image @@ -15,39 +18,97 @@ enum class ImageType{ class IntelliTool; +/*! + * \brief An abstract class which manages the basic IntelliImage operations. + */ class IntelliImage{ friend IntelliTool; protected: void resizeImage(QImage *image, const QSize &newSize); + /*! + * \brief The underlying image data. + */ QImage imageData; - - //calculate with polygon public: + /*! + * \brief The Construcor of the Shaped Image. Given the Image dimensions. + * \param weight The weight of the Image. + * \param height The height of the Image. + */ IntelliImage(int weight, int height); + + /*! + * \brief An Abstract Destructor. + */ virtual ~IntelliImage() = 0; - //start on top left + /*! + * \brief A funtcion used to draw a pixel on the Image with the given Color. + * \param p1 The coordinates of the pixel, which should be drawn. [Top-Left-System] + * \param color The color of the pixel. + */ virtual void drawPixel(const QPoint &p1, const QColor& color); + + /*! + * \brief A function that draws A Line between two given Points in a given color. + * \param p1 The coordinates of the first Point. + * \param p2 The coordinates of the second Point. + * \param color The color of the line. + * \param penWidth The width of the line. + */ virtual void drawLine(const QPoint &p1, const QPoint& p2, const QColor& color, const int& penWidth); + + /*! + * \brief A function that clears the whole image in a given Color. + * \param color The color, in which the image will be filled. + */ virtual void drawPlain(const QColor& color); - //returns the filtered output + /*! + * \brief A function returning the displayable ImageData in a requested transparence and size. + * \param displaySize The size, in whcih the Image should be displayed. + * \param alpha The maximum alpha value, a pixel can have. + * \return A QImage which is ready to be displayed. + */ virtual QImage getDisplayable(const QSize& displaySize, int alpha)=0; + + /** + * @brief A function returning the displayable ImageData in a requested transparence and it's standart size. + * @param alpha The maximum alpha value, a pixel can have. + * @return A QImage which is ready to be displayed. + */ virtual QImage getDisplayable(int alpha=255)=0; - //gets a copy of the image !allocated + /*! + * \brief A function that copys all that returns a [allocated] Image + * \return A [allocated] Image with all the properties of the instance. + */ virtual IntelliImage* getDeepCopy()=0; + + /*! + * \brief An abstract function that calculates the visiblity of the Image data if needed. + */ virtual void calculateVisiblity()=0; - //returns the filtered output - - //sets the data for the visible image + /*! + * \brief An abstract function that sets the data of the visible Polygon, if needed. + * \param polygonData The Vertices of the Polygon. Just Planar Polygons are allowed. + */ virtual void setPolygon(const std::vector& polygonData)=0; + + /*! + * \brief An function that returns the Polygondata if existent. + * \return The Polygondata if existent. + */ virtual std::vector getPolygonData(){ return std::vector();} - //loads an image to the ColorBuffer + /*! + * \brief Loads and Sclaes an Image to the fitting dimensions. + * \param fileName The path+name of the image which to loaded. + * \return True if the image could be loaded, false otherwise. + */ virtual bool loadImage(const QString &fileName); }; From 30c6d0badd683091711bf0ee1aa8ef5e2e11082f Mon Sep 17 00:00:00 2001 From: Sonaion Date: Wed, 18 Dec 2019 17:49:09 +0100 Subject: [PATCH 25/62] Comments --- src/Image/IntelliImage.h | 28 ++++++++++++++-------------- src/Image/IntelliRasterImage.h | 3 +++ 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/src/Image/IntelliImage.h b/src/Image/IntelliImage.h index 05d1f09..c098549 100644 --- a/src/Image/IntelliImage.h +++ b/src/Image/IntelliImage.h @@ -33,8 +33,8 @@ protected: public: /*! * \brief The Construcor of the Shaped Image. Given the Image dimensions. - * \param weight The weight of the Image. - * \param height The height of the Image. + * \param weight - The weight of the Image. + * \param height - The height of the Image. */ IntelliImage(int weight, int height); @@ -46,37 +46,37 @@ public: /*! * \brief A funtcion used to draw a pixel on the Image with the given Color. - * \param p1 The coordinates of the pixel, which should be drawn. [Top-Left-System] - * \param color The color of the pixel. + * \param p1 - The coordinates of the pixel, which should be drawn. [Top-Left-System] + * \param color - The color of the pixel. */ virtual void drawPixel(const QPoint &p1, const QColor& color); /*! * \brief A function that draws A Line between two given Points in a given color. - * \param p1 The coordinates of the first Point. - * \param p2 The coordinates of the second Point. - * \param color The color of the line. - * \param penWidth The width of the line. + * \param p1 - The coordinates of the first Point. + * \param p2 - The coordinates of the second Point. + * \param color - The color of the line. + * \param penWidth - The width of the line. */ virtual void drawLine(const QPoint &p1, const QPoint& p2, const QColor& color, const int& penWidth); /*! * \brief A function that clears the whole image in a given Color. - * \param color The color, in which the image will be filled. + * \param color - The color, in which the image will be filled. */ virtual void drawPlain(const QColor& color); /*! * \brief A function returning the displayable ImageData in a requested transparence and size. - * \param displaySize The size, in whcih the Image should be displayed. - * \param alpha The maximum alpha value, a pixel can have. + * \param displaySize - The size, in whcih the Image should be displayed. + * \param alpha - The maximum alpha value, a pixel can have. * \return A QImage which is ready to be displayed. */ virtual QImage getDisplayable(const QSize& displaySize, int alpha)=0; /** * @brief A function returning the displayable ImageData in a requested transparence and it's standart size. - * @param alpha The maximum alpha value, a pixel can have. + * @param alpha - The maximum alpha value, a pixel can have. * @return A QImage which is ready to be displayed. */ virtual QImage getDisplayable(int alpha=255)=0; @@ -94,7 +94,7 @@ public: /*! * \brief An abstract function that sets the data of the visible Polygon, if needed. - * \param polygonData The Vertices of the Polygon. Just Planar Polygons are allowed. + * \param polygonData - The Vertices of the Polygon. Just Planar Polygons are allowed. */ virtual void setPolygon(const std::vector& polygonData)=0; @@ -106,7 +106,7 @@ public: /*! * \brief Loads and Sclaes an Image to the fitting dimensions. - * \param fileName The path+name of the image which to loaded. + * \param fileName - The path+name of the image which to loaded. * \return True if the image could be loaded, false otherwise. */ virtual bool loadImage(const QString &fileName); diff --git a/src/Image/IntelliRasterImage.h b/src/Image/IntelliRasterImage.h index bf709e6..31b5b2a 100644 --- a/src/Image/IntelliRasterImage.h +++ b/src/Image/IntelliRasterImage.h @@ -3,6 +3,9 @@ #include"Image/IntelliImage.h" +/*! + * \brief The IntelliRasterImage manages a simple Rasterimage + */ class IntelliRasterImage : public IntelliImage{ friend IntelliTool; protected: From 4f808620b83f31ac742c4b6347e317811c48a91a Mon Sep 17 00:00:00 2001 From: Mienek Date: Wed, 18 Dec 2019 17:49:24 +0100 Subject: [PATCH 26/62] Halbfertig MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit weil Mucke es so wollte, keiner weiß warum --- src/Image/IntelliImage.cpp | 4 ++ src/Image/IntelliImage.h.autosave | 57 +++++++++++++++ src/IntelliPhoto.pro | 2 + src/Tool/IntelliTool.cpp.autosave | 82 ++++++++++++++++++++++ src/Tool/IntelliTool.h.autosave | 38 ++++++++++ src/Tool/IntelliToolFloodFill.cpp | 64 +++++++++++++++++ src/Tool/IntelliToolFloodFill.cpp.autosave | 66 +++++++++++++++++ src/Tool/IntelliToolFloodFill.h | 23 ++++++ src/Tool/IntelliToolLine.h | 1 - 9 files changed, 336 insertions(+), 1 deletion(-) create mode 100644 src/Image/IntelliImage.h.autosave create mode 100644 src/Tool/IntelliTool.cpp.autosave create mode 100644 src/Tool/IntelliTool.h.autosave create mode 100644 src/Tool/IntelliToolFloodFill.cpp create mode 100644 src/Tool/IntelliToolFloodFill.cpp.autosave create mode 100644 src/Tool/IntelliToolFloodFill.h diff --git a/src/Image/IntelliImage.cpp b/src/Image/IntelliImage.cpp index f5ae7a1..36fce1f 100644 --- a/src/Image/IntelliImage.cpp +++ b/src/Image/IntelliImage.cpp @@ -77,3 +77,7 @@ void IntelliImage::drawLine(const QPoint &p1, const QPoint& p2, const QColor& co void IntelliImage::drawPlain(const QColor& color){ imageData.fill(color); } + +QColor IntelliImage::getPixelColor(int x, int y){ + return imageData.pixelColor(x,y); +} diff --git a/src/Image/IntelliImage.h.autosave b/src/Image/IntelliImage.h.autosave new file mode 100644 index 0000000..9eca63a --- /dev/null +++ b/src/Image/IntelliImage.h.autosave @@ -0,0 +1,57 @@ +#ifndef INTELLIIMAGE_H +#define INTELLIIMAGE_H + +#include +#include +#include +#include +#include +#include + +enum class ImageType{ + Raster_Image, + Shaped_Image +}; + +class IntelliTool; + +class IntelliImage{ + friend IntelliTool; +protected: + void resizeImage(QImage *image, const QSize &newSize); + + QImage imageData; + + //calculate with polygon +public: + IntelliImage(int weight, int height); + virtual ~IntelliImage() = 0; + + + //start on top left + virtual void drawPixel(const QPoint &p1, const QColor& color); + virtual void drawPoint(const QPoint &p1, const QColor& color, const int& penWidth); + virtual void drawLine(const QPoint &p1, const QPoint& p2, const QColor& color, const int& penWidth); + virtual void drawPlain(const QColor& color); + + //returns the filtered output + virtual QImage getDisplayable(const QSize& displaySize, int alpha)=0; + virtual QImage getDisplayable(int alpha=255)=0; + + //gets a copy of the image !allocated + virtual IntelliImage* getDeepCopy()=0; + virtual void calculateVisiblity()=0; + + //returns the filtered output + + //sets the data for the visible image + virtual void setPolygon(const std::vector& polygonData)=0; + virtual std::vector getPolygonData(){ return std::vector();} + + //loads an image to the ColorBuffer + virtual bool loadImage(const QString &fileName); + + virtual QColor getPixelColor(int x, int y); +}; + +#endif diff --git a/src/IntelliPhoto.pro b/src/IntelliPhoto.pro index 9b0956d..f10c416 100644 --- a/src/IntelliPhoto.pro +++ b/src/IntelliPhoto.pro @@ -25,6 +25,7 @@ SOURCES += \ Layer/PaintingArea.cpp \ Tool/IntelliTool.cpp \ Tool/IntelliToolCircle.cpp \ + Tool/IntelliToolFloodFill.cpp \ Tool/IntelliToolLine.cpp \ Tool/IntelliToolPen.cpp \ Tool/IntelliToolPlain.cpp \ @@ -41,6 +42,7 @@ HEADERS += \ Layer/PaintingArea.h \ Tool/IntelliTool.h \ Tool/IntelliToolCircle.h \ + Tool/IntelliToolFloodFill.h \ Tool/IntelliToolLine.h \ Tool/IntelliToolPen.h \ Tool/IntelliToolPlain.h \ diff --git a/src/Tool/IntelliTool.cpp.autosave b/src/Tool/IntelliTool.cpp.autosave new file mode 100644 index 0000000..4d085ea --- /dev/null +++ b/src/Tool/IntelliTool.cpp.autosave @@ -0,0 +1,82 @@ +#include"IntelliTool.h" +#include"Layer/PaintingArea.h" + +IntelliTool::IntelliTool(PaintingArea* Area, IntelliColorPicker* colorPicker){ + this->Area=Area; + this->colorPicker=colorPicker; +} + + +IntelliTool::~IntelliTool(){ + +} + +void IntelliTool::onMouseRightPressed(int x, int y){ + if(drawing){ + drawing=false; + this->deleteToolLayer(); + } +} + +void IntelliTool::onMouseRightReleased(int x, int y){ + //optional for tool +} + +void IntelliTool::onMouseLeftPressed(int x, int y){ + this->drawing=true; + //create drawing layer + this->createToolLayer(); + Canvas->image->calculateVisiblity(); +} + +void IntelliTool::onMouseLeftReleased(int x, int y){ + if(drawing){ + drawing=false; + this->mergeToolLayer(); + this->deleteToolLayer(); + Active->image->calculateVisiblity(); + } +} + +void IntelliTool::onMouseMoved(int x, int y){ + if(drawing) + Canvas->image->calculateVisiblity(); +} + +void IntelliTool::onWheelScrolled(int value){ + //if needed for future general tasks implement in here +} + +void IntelliTool::createToolLayer(){ + Area->createTempLayerAfter(Area->activeLayer); + this->Active=&Area->layerBundle[Area->activeLayer]; + this->Canvas=&Area->layerBundle[Area->activeLayer+1]; +} + +void IntelliTool::mergeToolLayer(){ + QColor clr_0; + QColor clr_1; + for(int y=0; yhight; y++){ + for(int x=0; xwidth; x++){ + clr_0=Active->image->imageData.pixelColor(x,y); + clr_1=Canvas->image->imageData.pixelColor(x,y); + float t = static_cast(clr_1.alpha())/255.f; + int r =static_cast(static_cast(clr_1.red())*(t)+static_cast(clr_0.red())*(1.f-t)+0.5f); + int g =static_cast(static_cast(clr_1.green())*(t)+static_cast(clr_0.green())*(1.f-t)+0.5f); + int b =static_cast(static_cast(clr_1.blue())*(t)+static_cast(clr_0.blue()*(1.f-t))+0.5f); + int a =std::min(clr_0.alpha()+clr_1.alpha(), 255); + clr_0.setRed(r); + clr_0.setGreen(g); + clr_0.setBlue(b); + clr_0.setAlpha(a); + + Active->image->imageData.setPixelColor(x, y, clr_0); + } + } +} + +void IntelliTool::deleteToolLayer(){ + Area->deleteLayer(Area->activeLayer+1); + this->Canvas=nullptr; +} + diff --git a/src/Tool/IntelliTool.h.autosave b/src/Tool/IntelliTool.h.autosave new file mode 100644 index 0000000..c8bfee7 --- /dev/null +++ b/src/Tool/IntelliTool.h.autosave @@ -0,0 +1,38 @@ +#ifndef Intelli_Tool_H +#define Intelli_Tool_H + +#include "IntelliHelper/IntelliColorPicker.h" +#include + +class LayerObject; +class PaintingArea; + +class IntelliTool{ +private: + void createToolLayer(); + void mergeToolLayer(); + void deleteToolLayer(); +protected: + PaintingArea* Area; + IntelliColorPicker* colorPicker; + + LayerObject* Active; + LayerObject* Canvas; + bool drawing = false; + +public: + IntelliTool(PaintingArea* Area, IntelliColorPicker* colorPicker); + virtual ~IntelliTool() = 0; + + virtual void onMouseRightPressed(int x, int y); + virtual void onMouseRightReleased(int x, int y); + virtual void onMouseLeftPressed(int x, int y); + virtual void onMouseLeftReleased(int x, int y); + + virtual void onWheelScrolled(int value); + + virtual void onMouseMoved(int x, int y); + + +}; +#endif diff --git a/src/Tool/IntelliToolFloodFill.cpp b/src/Tool/IntelliToolFloodFill.cpp new file mode 100644 index 0000000..78316a7 --- /dev/null +++ b/src/Tool/IntelliToolFloodFill.cpp @@ -0,0 +1,64 @@ +#include "IntelliToolFloodFill.h" +#include "Layer/PaintingArea.h" +#include "QColorDialog" +#include "QInputDialog" + +IntelliToolLine::IntelliToolLine(PaintingArea* Area, IntelliColorPicker* colorPicker) + :IntelliTool(Area, colorPicker){ + this->lineWidth = QInputDialog::getInt(nullptr,"Line Width Input", "Width",1,1,50,1); + //create checkbox or scroll dialog to get line style + this->lineStyle = LineStyle::SOLID_LINE; +} + +IntelliToolLine::~IntelliToolLine(){ + +} + + +void IntelliToolLine::onMouseRightPressed(int x, int y){ + IntelliTool::onMouseRightPressed(x,y); +} + +void IntelliToolLine::onMouseRightReleased(int x, int y){ + IntelliTool::onMouseRightReleased(x,y); +} + +void IntelliToolLine::onMouseLeftPressed(int x, int y){ + IntelliTool::onMouseLeftPressed(x,y); + this->start=QPoint(x,y); + this->Canvas->image->drawLine(start, start, colorPicker->getFirstColor(),lineWidth); + Canvas->image->calculateVisiblity(); +} + +void IntelliToolLine::onMouseLeftReleased(int x, int y){ + IntelliTool::onMouseLeftReleased(x,y); +} + +void IntelliToolLine::onWheelScrolled(int value){ + IntelliTool::onWheelScrolled(value); + this->lineWidth+=value; + if(this->lineWidth<=0){ + this->lineWidth=1; + } +} + +void IntelliToolLine::onMouseMoved(int x, int y){ + IntelliTool::onMouseMoved(x,y); + if(this->drawing){ + this->Canvas->image->drawPlain(Qt::transparent); + QPoint next(x,y); + switch(lineStyle){ + case LineStyle::SOLID_LINE: + this->Canvas->image->drawLine(start,next,colorPicker->getFirstColor(),lineWidth); + break; + case LineStyle::DOTTED_LINE: + QPoint p1 =start.x() <= next.x() ? start : next; + QPoint p2 =start.x() < next.x() ? next : start; + int m = (float)(p2.y()-p1.y())/(float)(p2.x()-p1.x())+0.5f; + int c = start.y()-start.x()*m; + + break; + } + } + IntelliTool::onMouseMoved(x,y); +} diff --git a/src/Tool/IntelliToolFloodFill.cpp.autosave b/src/Tool/IntelliToolFloodFill.cpp.autosave new file mode 100644 index 0000000..b9598fd --- /dev/null +++ b/src/Tool/IntelliToolFloodFill.cpp.autosave @@ -0,0 +1,66 @@ +#include "IntelliToolFloodFill.h" +#include "Layer/PaintingArea.h" +#include "QColorDialog" +#include "QInputDialog" + +IntelliToolFloodFill::IntelliToolFloodFill(PaintingArea* Area, IntelliColorPicker* colorPicker) + :IntelliTool(Area, colorPicker){ +} + +IntelliToolFloodFill::~IntelliToolFloodFill(){ + +} + + +void IntelliToolFloodFill::onMouseRightPressed(int x, int y){ + IntelliTool::onMouseRightPressed(x,y); +} + +void IntelliToolFloodFill::onMouseRightReleased(int x, int y){ + IntelliTool::onMouseRightReleased(x,y); +} + +void IntelliToolFloodFill::onMouseLeftPressed(int x, int y){ + IntelliTool::onMouseLeftPressed(x,y); + this->Canvas->image->get + auto depthsearch = [](int x, int y, LayerObject* Canvas){ + + }; + + Canvas->image->calculateVisiblity(); + + +} + +void IntelliToolFloodFill::onMouseLeftReleased(int x, int y){ + IntelliTool::onMouseLeftReleased(x,y); +} + +void IntelliToolFloodFill::onWheelScrolled(int value){ + IntelliTool::onWheelScrolled(value); + this->lineWidth+=value; + if(this->lineWidth<=0){ + this->lineWidth=1; + } +} + +void IntelliToolFloodFill::onMouseMoved(int x, int y){ + IntelliTool::onMouseMoved(x,y); + if(this->drawing){ + this->Canvas->image->drawPlain(Qt::transparent); + QPoint next(x,y); + switch(lineStyle){ + case LineStyle::SOLID_LINE: + this->Canvas->image->drawLine(start,next,colorPicker->getFirstColor(),lineWidth); + break; + case LineStyle::DOTTED_LINE: + QPoint p1 =start.x() <= next.x() ? start : next; + QPoint p2 =start.x() < next.x() ? next : start; + int m = (float)(p2.y()-p1.y())/(float)(p2.x()-p1.x())+0.5f; + int c = start.y()-start.x()*m; + + break; + } + } + IntelliTool::onMouseMoved(x,y); +} diff --git a/src/Tool/IntelliToolFloodFill.h b/src/Tool/IntelliToolFloodFill.h new file mode 100644 index 0000000..0aa298f --- /dev/null +++ b/src/Tool/IntelliToolFloodFill.h @@ -0,0 +1,23 @@ +#ifndef INTELLITOOLFLOODFILL_H +#define INTELLITOOLFLOODFILL_H +#include "IntelliTool.h" + +#include "QColor" + +class IntelliToolFloodFill : public IntelliTool{ +public: + IntelliToolFloodFill(PaintingArea* Area, IntelliColorPicker* colorPicker); + virtual ~IntelliToolFloodFill() override; + + + virtual void onMouseRightPressed(int x, int y) override; + virtual void onMouseRightReleased(int x, int y) override; + virtual void onMouseLeftPressed(int x, int y) override; + virtual void onMouseLeftReleased(int x, int y) override; + + virtual void onWheelScrolled(int value) override; + + virtual void onMouseMoved(int x, int y) override; +}; + +#endif // INTELLITOOLFLOODFILL_H diff --git a/src/Tool/IntelliToolLine.h b/src/Tool/IntelliToolLine.h index af1f874..0d5d289 100644 --- a/src/Tool/IntelliToolLine.h +++ b/src/Tool/IntelliToolLine.h @@ -2,7 +2,6 @@ #define INTELLITOOLLINE_H #include "IntelliTool.h" -#include "QColor" #include "QPoint" enum class LineStyle{ From fa4a8ddad203247b8f3fbdc4e8612e56da4e551d Mon Sep 17 00:00:00 2001 From: Mienek Date: Wed, 18 Dec 2019 17:50:10 +0100 Subject: [PATCH 27/62] nochmal --- src/Image/IntelliImage.h | 2 + src/Image/IntelliImage.h.autosave | 57 --------------- src/Tool/IntelliTool.cpp | 1 + src/Tool/IntelliTool.cpp.autosave | 82 ---------------------- src/Tool/IntelliTool.h | 2 + src/Tool/IntelliTool.h.autosave | 38 ---------- src/Tool/IntelliToolFloodFill.cpp | 28 ++++---- src/Tool/IntelliToolFloodFill.cpp.autosave | 66 ----------------- 8 files changed, 20 insertions(+), 256 deletions(-) delete mode 100644 src/Image/IntelliImage.h.autosave delete mode 100644 src/Tool/IntelliTool.cpp.autosave delete mode 100644 src/Tool/IntelliTool.h.autosave delete mode 100644 src/Tool/IntelliToolFloodFill.cpp.autosave diff --git a/src/Image/IntelliImage.h b/src/Image/IntelliImage.h index 347cae6..9d37a31 100644 --- a/src/Image/IntelliImage.h +++ b/src/Image/IntelliImage.h @@ -50,6 +50,8 @@ public: //loads an image to the ColorBuffer virtual bool loadImage(const QString &fileName); + + virtual QColor getPixelColor(int x, int y); }; #endif diff --git a/src/Image/IntelliImage.h.autosave b/src/Image/IntelliImage.h.autosave deleted file mode 100644 index 9eca63a..0000000 --- a/src/Image/IntelliImage.h.autosave +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef INTELLIIMAGE_H -#define INTELLIIMAGE_H - -#include -#include -#include -#include -#include -#include - -enum class ImageType{ - Raster_Image, - Shaped_Image -}; - -class IntelliTool; - -class IntelliImage{ - friend IntelliTool; -protected: - void resizeImage(QImage *image, const QSize &newSize); - - QImage imageData; - - //calculate with polygon -public: - IntelliImage(int weight, int height); - virtual ~IntelliImage() = 0; - - - //start on top left - virtual void drawPixel(const QPoint &p1, const QColor& color); - virtual void drawPoint(const QPoint &p1, const QColor& color, const int& penWidth); - virtual void drawLine(const QPoint &p1, const QPoint& p2, const QColor& color, const int& penWidth); - virtual void drawPlain(const QColor& color); - - //returns the filtered output - virtual QImage getDisplayable(const QSize& displaySize, int alpha)=0; - virtual QImage getDisplayable(int alpha=255)=0; - - //gets a copy of the image !allocated - virtual IntelliImage* getDeepCopy()=0; - virtual void calculateVisiblity()=0; - - //returns the filtered output - - //sets the data for the visible image - virtual void setPolygon(const std::vector& polygonData)=0; - virtual std::vector getPolygonData(){ return std::vector();} - - //loads an image to the ColorBuffer - virtual bool loadImage(const QString &fileName); - - virtual QColor getPixelColor(int x, int y); -}; - -#endif diff --git a/src/Tool/IntelliTool.cpp b/src/Tool/IntelliTool.cpp index 608770e..4d085ea 100644 --- a/src/Tool/IntelliTool.cpp +++ b/src/Tool/IntelliTool.cpp @@ -79,3 +79,4 @@ void IntelliTool::deleteToolLayer(){ Area->deleteLayer(Area->activeLayer+1); this->Canvas=nullptr; } + diff --git a/src/Tool/IntelliTool.cpp.autosave b/src/Tool/IntelliTool.cpp.autosave deleted file mode 100644 index 4d085ea..0000000 --- a/src/Tool/IntelliTool.cpp.autosave +++ /dev/null @@ -1,82 +0,0 @@ -#include"IntelliTool.h" -#include"Layer/PaintingArea.h" - -IntelliTool::IntelliTool(PaintingArea* Area, IntelliColorPicker* colorPicker){ - this->Area=Area; - this->colorPicker=colorPicker; -} - - -IntelliTool::~IntelliTool(){ - -} - -void IntelliTool::onMouseRightPressed(int x, int y){ - if(drawing){ - drawing=false; - this->deleteToolLayer(); - } -} - -void IntelliTool::onMouseRightReleased(int x, int y){ - //optional for tool -} - -void IntelliTool::onMouseLeftPressed(int x, int y){ - this->drawing=true; - //create drawing layer - this->createToolLayer(); - Canvas->image->calculateVisiblity(); -} - -void IntelliTool::onMouseLeftReleased(int x, int y){ - if(drawing){ - drawing=false; - this->mergeToolLayer(); - this->deleteToolLayer(); - Active->image->calculateVisiblity(); - } -} - -void IntelliTool::onMouseMoved(int x, int y){ - if(drawing) - Canvas->image->calculateVisiblity(); -} - -void IntelliTool::onWheelScrolled(int value){ - //if needed for future general tasks implement in here -} - -void IntelliTool::createToolLayer(){ - Area->createTempLayerAfter(Area->activeLayer); - this->Active=&Area->layerBundle[Area->activeLayer]; - this->Canvas=&Area->layerBundle[Area->activeLayer+1]; -} - -void IntelliTool::mergeToolLayer(){ - QColor clr_0; - QColor clr_1; - for(int y=0; yhight; y++){ - for(int x=0; xwidth; x++){ - clr_0=Active->image->imageData.pixelColor(x,y); - clr_1=Canvas->image->imageData.pixelColor(x,y); - float t = static_cast(clr_1.alpha())/255.f; - int r =static_cast(static_cast(clr_1.red())*(t)+static_cast(clr_0.red())*(1.f-t)+0.5f); - int g =static_cast(static_cast(clr_1.green())*(t)+static_cast(clr_0.green())*(1.f-t)+0.5f); - int b =static_cast(static_cast(clr_1.blue())*(t)+static_cast(clr_0.blue()*(1.f-t))+0.5f); - int a =std::min(clr_0.alpha()+clr_1.alpha(), 255); - clr_0.setRed(r); - clr_0.setGreen(g); - clr_0.setBlue(b); - clr_0.setAlpha(a); - - Active->image->imageData.setPixelColor(x, y, clr_0); - } - } -} - -void IntelliTool::deleteToolLayer(){ - Area->deleteLayer(Area->activeLayer+1); - this->Canvas=nullptr; -} - diff --git a/src/Tool/IntelliTool.h b/src/Tool/IntelliTool.h index 2531a55..b66a6b0 100644 --- a/src/Tool/IntelliTool.h +++ b/src/Tool/IntelliTool.h @@ -32,5 +32,7 @@ public: virtual void onWheelScrolled(int value); virtual void onMouseMoved(int x, int y); + + }; #endif diff --git a/src/Tool/IntelliTool.h.autosave b/src/Tool/IntelliTool.h.autosave deleted file mode 100644 index c8bfee7..0000000 --- a/src/Tool/IntelliTool.h.autosave +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef Intelli_Tool_H -#define Intelli_Tool_H - -#include "IntelliHelper/IntelliColorPicker.h" -#include - -class LayerObject; -class PaintingArea; - -class IntelliTool{ -private: - void createToolLayer(); - void mergeToolLayer(); - void deleteToolLayer(); -protected: - PaintingArea* Area; - IntelliColorPicker* colorPicker; - - LayerObject* Active; - LayerObject* Canvas; - bool drawing = false; - -public: - IntelliTool(PaintingArea* Area, IntelliColorPicker* colorPicker); - virtual ~IntelliTool() = 0; - - virtual void onMouseRightPressed(int x, int y); - virtual void onMouseRightReleased(int x, int y); - virtual void onMouseLeftPressed(int x, int y); - virtual void onMouseLeftReleased(int x, int y); - - virtual void onWheelScrolled(int value); - - virtual void onMouseMoved(int x, int y); - - -}; -#endif diff --git a/src/Tool/IntelliToolFloodFill.cpp b/src/Tool/IntelliToolFloodFill.cpp index 78316a7..7712f90 100644 --- a/src/Tool/IntelliToolFloodFill.cpp +++ b/src/Tool/IntelliToolFloodFill.cpp @@ -3,38 +3,40 @@ #include "QColorDialog" #include "QInputDialog" -IntelliToolLine::IntelliToolLine(PaintingArea* Area, IntelliColorPicker* colorPicker) +IntelliToolFloodFill::IntelliToolFloodFill(PaintingArea* Area, IntelliColorPicker* colorPicker) :IntelliTool(Area, colorPicker){ - this->lineWidth = QInputDialog::getInt(nullptr,"Line Width Input", "Width",1,1,50,1); - //create checkbox or scroll dialog to get line style - this->lineStyle = LineStyle::SOLID_LINE; } -IntelliToolLine::~IntelliToolLine(){ +IntelliToolFloodFill::~IntelliToolFloodFill(){ } -void IntelliToolLine::onMouseRightPressed(int x, int y){ +void IntelliToolFloodFill::onMouseRightPressed(int x, int y){ IntelliTool::onMouseRightPressed(x,y); } -void IntelliToolLine::onMouseRightReleased(int x, int y){ +void IntelliToolFloodFill::onMouseRightReleased(int x, int y){ IntelliTool::onMouseRightReleased(x,y); } -void IntelliToolLine::onMouseLeftPressed(int x, int y){ +void IntelliToolFloodFill::onMouseLeftPressed(int x, int y){ IntelliTool::onMouseLeftPressed(x,y); - this->start=QPoint(x,y); - this->Canvas->image->drawLine(start, start, colorPicker->getFirstColor(),lineWidth); + this->Canvas->image->get + auto depthsearch = [](int x, int y, LayerObject* Canvas){ + + }; + Canvas->image->calculateVisiblity(); + + } -void IntelliToolLine::onMouseLeftReleased(int x, int y){ +void IntelliToolFloodFill::onMouseLeftReleased(int x, int y){ IntelliTool::onMouseLeftReleased(x,y); } -void IntelliToolLine::onWheelScrolled(int value){ +void IntelliToolFloodFill::onWheelScrolled(int value){ IntelliTool::onWheelScrolled(value); this->lineWidth+=value; if(this->lineWidth<=0){ @@ -42,7 +44,7 @@ void IntelliToolLine::onWheelScrolled(int value){ } } -void IntelliToolLine::onMouseMoved(int x, int y){ +void IntelliToolFloodFill::onMouseMoved(int x, int y){ IntelliTool::onMouseMoved(x,y); if(this->drawing){ this->Canvas->image->drawPlain(Qt::transparent); diff --git a/src/Tool/IntelliToolFloodFill.cpp.autosave b/src/Tool/IntelliToolFloodFill.cpp.autosave deleted file mode 100644 index b9598fd..0000000 --- a/src/Tool/IntelliToolFloodFill.cpp.autosave +++ /dev/null @@ -1,66 +0,0 @@ -#include "IntelliToolFloodFill.h" -#include "Layer/PaintingArea.h" -#include "QColorDialog" -#include "QInputDialog" - -IntelliToolFloodFill::IntelliToolFloodFill(PaintingArea* Area, IntelliColorPicker* colorPicker) - :IntelliTool(Area, colorPicker){ -} - -IntelliToolFloodFill::~IntelliToolFloodFill(){ - -} - - -void IntelliToolFloodFill::onMouseRightPressed(int x, int y){ - IntelliTool::onMouseRightPressed(x,y); -} - -void IntelliToolFloodFill::onMouseRightReleased(int x, int y){ - IntelliTool::onMouseRightReleased(x,y); -} - -void IntelliToolFloodFill::onMouseLeftPressed(int x, int y){ - IntelliTool::onMouseLeftPressed(x,y); - this->Canvas->image->get - auto depthsearch = [](int x, int y, LayerObject* Canvas){ - - }; - - Canvas->image->calculateVisiblity(); - - -} - -void IntelliToolFloodFill::onMouseLeftReleased(int x, int y){ - IntelliTool::onMouseLeftReleased(x,y); -} - -void IntelliToolFloodFill::onWheelScrolled(int value){ - IntelliTool::onWheelScrolled(value); - this->lineWidth+=value; - if(this->lineWidth<=0){ - this->lineWidth=1; - } -} - -void IntelliToolFloodFill::onMouseMoved(int x, int y){ - IntelliTool::onMouseMoved(x,y); - if(this->drawing){ - this->Canvas->image->drawPlain(Qt::transparent); - QPoint next(x,y); - switch(lineStyle){ - case LineStyle::SOLID_LINE: - this->Canvas->image->drawLine(start,next,colorPicker->getFirstColor(),lineWidth); - break; - case LineStyle::DOTTED_LINE: - QPoint p1 =start.x() <= next.x() ? start : next; - QPoint p2 =start.x() < next.x() ? next : start; - int m = (float)(p2.y()-p1.y())/(float)(p2.x()-p1.x())+0.5f; - int c = start.y()-start.x()*m; - - break; - } - } - IntelliTool::onMouseMoved(x,y); -} From 978ba61061040ddc2f0a54b81422b3ab799ba8ab Mon Sep 17 00:00:00 2001 From: Sonaion Date: Wed, 18 Dec 2019 17:57:49 +0100 Subject: [PATCH 28/62] updated Image --- src/Image/IntelliImage.h | 10 ++++- src/IntelliPhoto.pro | 2 - src/Tool/IntelliToolFloodFill.cpp | 66 ------------------------------- src/Tool/IntelliToolFloodFill.h | 23 ----------- 4 files changed, 8 insertions(+), 93 deletions(-) delete mode 100644 src/Tool/IntelliToolFloodFill.cpp delete mode 100644 src/Tool/IntelliToolFloodFill.h diff --git a/src/Image/IntelliImage.h b/src/Image/IntelliImage.h index 26ec56b..4faf796 100644 --- a/src/Image/IntelliImage.h +++ b/src/Image/IntelliImage.h @@ -99,18 +99,24 @@ public: virtual void setPolygon(const std::vector& polygonData)=0; /*! - * \brief An function that returns the Polygondata if existent. + * \brief A function that returns the Polygondata if existent. * \return The Polygondata if existent. */ virtual std::vector getPolygonData(){ return std::vector();} /*! - * \brief Loads and Sclaes an Image to the fitting dimensions. + * \brief A function that loads and sclaes an image to the fitting dimensions. * \param fileName - The path+name of the image which to loaded. * \return True if the image could be loaded, false otherwise. */ virtual bool loadImage(const QString &fileName); + /*! + * \brief A function that returns the pixelcolor at a certain point + * \param x - The x-coordinate of the point. + * \param y - The y-coordintae of the point. + * \return The color of the Pixel as QColor. + */ virtual QColor getPixelColor(int x, int y); }; diff --git a/src/IntelliPhoto.pro b/src/IntelliPhoto.pro index f10c416..9b0956d 100644 --- a/src/IntelliPhoto.pro +++ b/src/IntelliPhoto.pro @@ -25,7 +25,6 @@ SOURCES += \ Layer/PaintingArea.cpp \ Tool/IntelliTool.cpp \ Tool/IntelliToolCircle.cpp \ - Tool/IntelliToolFloodFill.cpp \ Tool/IntelliToolLine.cpp \ Tool/IntelliToolPen.cpp \ Tool/IntelliToolPlain.cpp \ @@ -42,7 +41,6 @@ HEADERS += \ Layer/PaintingArea.h \ Tool/IntelliTool.h \ Tool/IntelliToolCircle.h \ - Tool/IntelliToolFloodFill.h \ Tool/IntelliToolLine.h \ Tool/IntelliToolPen.h \ Tool/IntelliToolPlain.h \ diff --git a/src/Tool/IntelliToolFloodFill.cpp b/src/Tool/IntelliToolFloodFill.cpp deleted file mode 100644 index 7712f90..0000000 --- a/src/Tool/IntelliToolFloodFill.cpp +++ /dev/null @@ -1,66 +0,0 @@ -#include "IntelliToolFloodFill.h" -#include "Layer/PaintingArea.h" -#include "QColorDialog" -#include "QInputDialog" - -IntelliToolFloodFill::IntelliToolFloodFill(PaintingArea* Area, IntelliColorPicker* colorPicker) - :IntelliTool(Area, colorPicker){ -} - -IntelliToolFloodFill::~IntelliToolFloodFill(){ - -} - - -void IntelliToolFloodFill::onMouseRightPressed(int x, int y){ - IntelliTool::onMouseRightPressed(x,y); -} - -void IntelliToolFloodFill::onMouseRightReleased(int x, int y){ - IntelliTool::onMouseRightReleased(x,y); -} - -void IntelliToolFloodFill::onMouseLeftPressed(int x, int y){ - IntelliTool::onMouseLeftPressed(x,y); - this->Canvas->image->get - auto depthsearch = [](int x, int y, LayerObject* Canvas){ - - }; - - Canvas->image->calculateVisiblity(); - - -} - -void IntelliToolFloodFill::onMouseLeftReleased(int x, int y){ - IntelliTool::onMouseLeftReleased(x,y); -} - -void IntelliToolFloodFill::onWheelScrolled(int value){ - IntelliTool::onWheelScrolled(value); - this->lineWidth+=value; - if(this->lineWidth<=0){ - this->lineWidth=1; - } -} - -void IntelliToolFloodFill::onMouseMoved(int x, int y){ - IntelliTool::onMouseMoved(x,y); - if(this->drawing){ - this->Canvas->image->drawPlain(Qt::transparent); - QPoint next(x,y); - switch(lineStyle){ - case LineStyle::SOLID_LINE: - this->Canvas->image->drawLine(start,next,colorPicker->getFirstColor(),lineWidth); - break; - case LineStyle::DOTTED_LINE: - QPoint p1 =start.x() <= next.x() ? start : next; - QPoint p2 =start.x() < next.x() ? next : start; - int m = (float)(p2.y()-p1.y())/(float)(p2.x()-p1.x())+0.5f; - int c = start.y()-start.x()*m; - - break; - } - } - IntelliTool::onMouseMoved(x,y); -} diff --git a/src/Tool/IntelliToolFloodFill.h b/src/Tool/IntelliToolFloodFill.h deleted file mode 100644 index 0aa298f..0000000 --- a/src/Tool/IntelliToolFloodFill.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef INTELLITOOLFLOODFILL_H -#define INTELLITOOLFLOODFILL_H -#include "IntelliTool.h" - -#include "QColor" - -class IntelliToolFloodFill : public IntelliTool{ -public: - IntelliToolFloodFill(PaintingArea* Area, IntelliColorPicker* colorPicker); - virtual ~IntelliToolFloodFill() override; - - - virtual void onMouseRightPressed(int x, int y) override; - virtual void onMouseRightReleased(int x, int y) override; - virtual void onMouseLeftPressed(int x, int y) override; - virtual void onMouseLeftReleased(int x, int y) override; - - virtual void onWheelScrolled(int value) override; - - virtual void onMouseMoved(int x, int y) override; -}; - -#endif // INTELLITOOLFLOODFILL_H From 0f829646b9eb1fc357813fab618e537b3b8a60f4 Mon Sep 17 00:00:00 2001 From: Sonaion Date: Wed, 18 Dec 2019 18:19:30 +0100 Subject: [PATCH 29/62] Documentation of image --- src/Image/IntelliImage.h | 10 +++++- src/Image/IntelliRasterImage.h | 37 ++++++++++++++++++--- src/Image/IntelliShapedImage.h | 53 ++++++++++++++++++++++++++++--- src/Tool/IntelliToolCircle.cpp | 1 - src/Tool/IntelliToolLine.cpp | 1 - src/Tool/IntelliToolRectangle.cpp | 1 - 6 files changed, 90 insertions(+), 13 deletions(-) diff --git a/src/Image/IntelliImage.h b/src/Image/IntelliImage.h index 4faf796..6eeaa72 100644 --- a/src/Image/IntelliImage.h +++ b/src/Image/IntelliImage.h @@ -32,7 +32,7 @@ protected: QImage imageData; public: /*! - * \brief The Construcor of the Shaped Image. Given the Image dimensions. + * \brief The Construcor of the IntelliImage. Given the Image dimensions. * \param weight - The weight of the Image. * \param height - The height of the Image. */ @@ -60,6 +60,14 @@ public: */ virtual void drawLine(const QPoint &p1, const QPoint& p2, const QColor& color, const int& penWidth); + /*! + * \brief A + * \param p1 + * \param color + * \param penWidth + */ + virtual void drawPoint(const QPoint &p1, const QColor& color, const int& penWidth); + /*! * \brief A function that clears the whole image in a given Color. * \param color - The color, in which the image will be filled. diff --git a/src/Image/IntelliRasterImage.h b/src/Image/IntelliRasterImage.h index 31b5b2a..39f73b3 100644 --- a/src/Image/IntelliRasterImage.h +++ b/src/Image/IntelliRasterImage.h @@ -4,24 +4,53 @@ #include"Image/IntelliImage.h" /*! - * \brief The IntelliRasterImage manages a simple Rasterimage + * \brief The IntelliRasterImage manages a Rasterimage. */ class IntelliRasterImage : public IntelliImage{ friend IntelliTool; protected: + /*! + * \brief A function that calculates the visibility of the image if a polygon is given. [does nothing in Rasterimage] + */ virtual void calculateVisiblity() override; public: + /*! + * \brief The Construcor of the IntelliRasterImage. Given the Image dimensions. + * \param weight - The weight of the Image. + * \param height - The height of the Image. + */ IntelliRasterImage(int weight, int height); + + /*! + * \brief An Destructor. + */ virtual ~IntelliRasterImage() override; - //returns the filtered output + /*! + * \brief A function returning the displayable ImageData in a requested transparence and size. + * \param displaySize - The size, in whcih the Image should be displayed. + * \param alpha - The maximum alpha value, a pixel can have. + * \return A QImage which is ready to be displayed. + */ virtual QImage getDisplayable(const QSize& displaySize,int alpha) override; + + /** + * @brief A function returning the displayable ImageData in a requested transparence and it's standart size. + * @param alpha - The maximum alpha value, a pixel can have. + * @return A QImage which is ready to be displayed. + */ virtual QImage getDisplayable(int alpha=255) override; - //gets a copy of the image !allocated + /*! + * \brief A function that copys all that returns a [allocated] Image + * \return A [allocated] Image with all the properties of the instance. + */ virtual IntelliImage* getDeepCopy() override; - //sets the data for the visible image + /*! + * \brief An abstract function that sets the data of the visible Polygon, if needed. + * \param polygonData - The Vertices of the Polygon. Nothing happens. + */ virtual void setPolygon(const std::vector& polygonData) override; }; diff --git a/src/Image/IntelliShapedImage.h b/src/Image/IntelliShapedImage.h index 9e9518f..fa45703 100644 --- a/src/Image/IntelliShapedImage.h +++ b/src/Image/IntelliShapedImage.h @@ -5,28 +5,71 @@ #include #include"IntelliHelper/IntelliHelper.h" +/*! + * \brief The IntelliShapedImage manages a Shapedimage. + */ class IntelliShapedImage : public IntelliRasterImage{ friend IntelliTool; private: + /*! + * \brief The Triangulation of the Polygon. Saved here for performance reasons. + */ std::vector triangles; + + /*! + * \brief Calculates the visibility based on the underlying polygon. + */ + virtual void calculateVisiblity() override; protected: + /*! + * \brief The Vertices of The Polygon. Needs to be a planar Polygon. + */ std::vector polygonData; public: + /*! + * \brief The Construcor of the IntelliShapedImage. Given the Image dimensions. + * \param weight - The weight of the Image. + * \param height - The height of the Image. + */ IntelliShapedImage(int weight, int height); + + /*! + * \brief An Destructor. + */ virtual ~IntelliShapedImage() override; - virtual void calculateVisiblity() override; - - //returns the filtered output + /*! + * \brief A function returning the displayable ImageData in a requested transparence and size. + * \param displaySize - The size, in whcih the Image should be displayed. + * \param alpha - The maximum alpha value, a pixel can have. + * \return A QImage which is ready to be displayed. + */ virtual QImage getDisplayable(const QSize& displaySize, int alpha=255) override; + + /** + * @brief A function returning the displayable ImageData in a requested transparence and it's standart size. + * @param alpha - The maximum alpha value, a pixel can have. + * @return A QImage which is ready to be displayed. + */ virtual QImage getDisplayable(int alpha=255) override; - //gets a copy of the image !allocated + /*! + * \brief A function that copys all that returns a [allocated] Image + * \return A [allocated] Image with all the properties of the instance. + */ virtual IntelliImage* getDeepCopy() override; + + /*! + * \brief A function that returns the Polygondata if existent. + * \return The Polygondata if existent. + */ virtual std::vector getPolygonData() override{return polygonData;} - //sets the data for the visible image + /*! + * \brief A function that sets the data of the visible Polygon. + * \param polygonData - The Vertices of the Polygon. Just Planar Polygons are allowed. + */ virtual void setPolygon(const std::vector& polygonData) override; }; diff --git a/src/Tool/IntelliToolCircle.cpp b/src/Tool/IntelliToolCircle.cpp index a129d7d..00fb812 100644 --- a/src/Tool/IntelliToolCircle.cpp +++ b/src/Tool/IntelliToolCircle.cpp @@ -77,7 +77,6 @@ void IntelliToolCircle::onWheelScrolled(int value){ } void IntelliToolCircle::onMouseMoved(int x, int y){ - IntelliTool::onMouseMoved(x,y); if(this->drawing){ this->Canvas->image->drawPlain(Qt::transparent); QPoint next(x,y); diff --git a/src/Tool/IntelliToolLine.cpp b/src/Tool/IntelliToolLine.cpp index 0b088cd..6573687 100644 --- a/src/Tool/IntelliToolLine.cpp +++ b/src/Tool/IntelliToolLine.cpp @@ -43,7 +43,6 @@ void IntelliToolLine::onWheelScrolled(int value){ } void IntelliToolLine::onMouseMoved(int x, int y){ - IntelliTool::onMouseMoved(x,y); if(this->drawing){ this->Canvas->image->drawPlain(Qt::transparent); QPoint next(x,y); diff --git a/src/Tool/IntelliToolRectangle.cpp b/src/Tool/IntelliToolRectangle.cpp index 0c89762..018ff99 100644 --- a/src/Tool/IntelliToolRectangle.cpp +++ b/src/Tool/IntelliToolRectangle.cpp @@ -50,7 +50,6 @@ void IntelliToolRectangle::onMouseLeftReleased(int x, int y){ } void IntelliToolRectangle::onMouseMoved(int x, int y){ - IntelliTool::onMouseMoved(x,y); if(this->drawing){ this->Canvas->image->drawPlain(Qt::transparent); QPoint next(x,y); From 181e954cb9d6a693db5220859736aecb09fbd04a Mon Sep 17 00:00:00 2001 From: Sonaion Date: Wed, 18 Dec 2019 18:59:35 +0100 Subject: [PATCH 30/62] Start of tool commentary --- src/Tool/IntelliTool.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/Tool/IntelliTool.h b/src/Tool/IntelliTool.h index b66a6b0..380a90b 100644 --- a/src/Tool/IntelliTool.h +++ b/src/Tool/IntelliTool.h @@ -7,13 +7,34 @@ class LayerObject; class PaintingArea; +/*! + * \brief An abstract class that manages the basic events, like mouse clicks or scrolls events. + */ class IntelliTool{ private: + /*! + * \brief A function that creates a layer to draw on. + */ void createToolLayer(); + + /*! + * \brief A function that merges the drawing- and the active- layer. + */ void mergeToolLayer(); + + /*! + * \brief A function that deletes the drawinglayer. + */ void deleteToolLayer(); protected: + /*! + * \brief A pointer to the general PaintingArea to interact with. + */ PaintingArea* Area; + + /*! + * \brief A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors. + */ IntelliColorPicker* colorPicker; LayerObject* Active; From c9a88909adcd2f6a6304fb48acd3ed402188b479 Mon Sep 17 00:00:00 2001 From: Mienek Date: Wed, 18 Dec 2019 19:41:11 +0100 Subject: [PATCH 31/62] FloodFill ist fertig --- src/Layer/PaintingArea.cpp | 3 +- src/Tool/IntelliToolFloodFill.cpp | 74 +++++++++++++++++++++---------- 2 files changed, 52 insertions(+), 25 deletions(-) diff --git a/src/Layer/PaintingArea.cpp b/src/Layer/PaintingArea.cpp index af9be56..0275c00 100644 --- a/src/Layer/PaintingArea.cpp +++ b/src/Layer/PaintingArea.cpp @@ -15,11 +15,12 @@ #include "Tool/IntelliToolLine.h" #include "Tool/IntelliToolCircle.h" #include "Tool/IntelliToolRectangle.h" +#include "Tool/IntelliToolFloodFill.h" PaintingArea::PaintingArea(int maxWidth, int maxHeight, QWidget *parent) :QWidget(parent){ //test yout tool here and reset after accomplished test - this->Tool = new IntelliToolRectangle(this, &colorPicker); + this->Tool = new IntelliToolFloodFill(this, &colorPicker); this->setUp(maxWidth, maxHeight); //tetsing this->addLayer(200,200,0,0,ImageType::Shaped_Image); diff --git a/src/Tool/IntelliToolFloodFill.cpp b/src/Tool/IntelliToolFloodFill.cpp index 7712f90..e3b2c3c 100644 --- a/src/Tool/IntelliToolFloodFill.cpp +++ b/src/Tool/IntelliToolFloodFill.cpp @@ -2,6 +2,8 @@ #include "Layer/PaintingArea.h" #include "QColorDialog" #include "QInputDialog" +#include +#include IntelliToolFloodFill::IntelliToolFloodFill(PaintingArea* Area, IntelliColorPicker* colorPicker) :IntelliTool(Area, colorPicker){ @@ -22,11 +24,55 @@ void IntelliToolFloodFill::onMouseRightReleased(int x, int y){ void IntelliToolFloodFill::onMouseLeftPressed(int x, int y){ IntelliTool::onMouseLeftPressed(x,y); - this->Canvas->image->get - auto depthsearch = [](int x, int y, LayerObject* Canvas){ + QColor oldColor = this->Active->image->getPixelColor(x,y); + std::queue Q; + Q.push(QPoint(x,y)); + QColor newColor = this->colorPicker->getFirstColor(); + Canvas->image->drawPixel(QPoint(x,y),newColor); + while(!Q.empty()){ + QPoint Front = Q.front(); + Q.pop(); + if((Front.x()+1 < Canvas->width)&& + (Active->image->getPixelColor(Front.x()+1,Front.y()) == oldColor)&& + (Canvas->image->getPixelColor(Front.x()+1,Front.y()) != newColor)){ + Canvas->image->drawPixel(QPoint(Front.x()+1, Front.y()),newColor); + Q.push(QPoint(Front.x()+1,Front.y())); + } + if((Front.x()-1 >= 0)&& + (Active->image->getPixelColor(Front.x()-1,Front.y()) == oldColor)&& + (Canvas->image->getPixelColor(Front.x()-1,Front.y()) != newColor)){ + Canvas->image->drawPixel(QPoint(Front.x()-1, Front.y()),newColor); + Q.push(QPoint(Front.x()-1,Front.y())); + } + if((Front.y()+1 < Canvas->hight)&& + (Active->image->getPixelColor(Front.x(),Front.y()+1) == oldColor)&& + (Canvas->image->getPixelColor(Front.x(),Front.y()+1) != newColor)){ + Canvas->image->drawPixel(QPoint(Front.x(), Front.y()+1),newColor); + Q.push(QPoint(Front.x(),Front.y()+1)); + } + if((Front.y()-1 >= 0)&& + (Active->image->getPixelColor(Front.x(),Front.y()-1) == oldColor)&& + (Canvas->image->getPixelColor(Front.x(),Front.y()-1) != newColor)){ + Canvas->image->drawPixel(QPoint(Front.x(), Front.y()-1),newColor); + Q.push(QPoint(Front.x(),Front.y()-1)); + } + } - }; + /* std::function depthsearch = + [&depthsearch](int x, int y,LayerObject* Active, LayerObject* Canvas, QColor oldColor, QColor newColor){ + if((x >= 0) && (y >= 0) && (x < Canvas->width) && (y < Canvas->hight)){ + if(Active->image->getPixelColor(x,y) == oldColor){ + Canvas->image->drawPoint(QPoint(x,y),newColor,1); + depthsearch(x-1,y,Active,Canvas,oldColor,newColor); + depthsearch(x,y+1,Active,Canvas,oldColor,newColor); + depthsearch(x+1,y,Active,Canvas,oldColor,newColor); + depthsearch(x,y-1,Active,Canvas,oldColor,newColor); + } + } + }; + depthsearch(x,y,Active,Canvas,oldColor,this->colorPicker->getFirstColor()); + */ Canvas->image->calculateVisiblity(); @@ -38,29 +84,9 @@ void IntelliToolFloodFill::onMouseLeftReleased(int x, int y){ void IntelliToolFloodFill::onWheelScrolled(int value){ IntelliTool::onWheelScrolled(value); - this->lineWidth+=value; - if(this->lineWidth<=0){ - this->lineWidth=1; - } + } void IntelliToolFloodFill::onMouseMoved(int x, int y){ IntelliTool::onMouseMoved(x,y); - if(this->drawing){ - this->Canvas->image->drawPlain(Qt::transparent); - QPoint next(x,y); - switch(lineStyle){ - case LineStyle::SOLID_LINE: - this->Canvas->image->drawLine(start,next,colorPicker->getFirstColor(),lineWidth); - break; - case LineStyle::DOTTED_LINE: - QPoint p1 =start.x() <= next.x() ? start : next; - QPoint p2 =start.x() < next.x() ? next : start; - int m = (float)(p2.y()-p1.y())/(float)(p2.x()-p1.x())+0.5f; - int c = start.y()-start.x()*m; - - break; - } - } - IntelliTool::onMouseMoved(x,y); } From 2ceacff4ef3bf6cc2411c209f44fa556242896b4 Mon Sep 17 00:00:00 2001 From: Sonaion Date: Wed, 18 Dec 2019 20:37:38 +0100 Subject: [PATCH 32/62] Performance Update --- src/Image/IntelliImage.cpp | 4 +- src/Image/IntelliImage.h | 2 +- src/Tool/IntelliToolFloodFill.cpp | 67 ++++++++++++------------------- 3 files changed, 29 insertions(+), 44 deletions(-) diff --git a/src/Image/IntelliImage.cpp b/src/Image/IntelliImage.cpp index 36fce1f..fe1028b 100644 --- a/src/Image/IntelliImage.cpp +++ b/src/Image/IntelliImage.cpp @@ -78,6 +78,6 @@ void IntelliImage::drawPlain(const QColor& color){ imageData.fill(color); } -QColor IntelliImage::getPixelColor(int x, int y){ - return imageData.pixelColor(x,y); +QColor IntelliImage::getPixelColor(QPoint& point){ + return imageData.pixelColor(point); } diff --git a/src/Image/IntelliImage.h b/src/Image/IntelliImage.h index 9d37a31..d90f690 100644 --- a/src/Image/IntelliImage.h +++ b/src/Image/IntelliImage.h @@ -51,7 +51,7 @@ public: //loads an image to the ColorBuffer virtual bool loadImage(const QString &fileName); - virtual QColor getPixelColor(int x, int y); + virtual QColor getPixelColor(QPoint& point); }; #endif diff --git a/src/Tool/IntelliToolFloodFill.cpp b/src/Tool/IntelliToolFloodFill.cpp index e3b2c3c..6d655ea 100644 --- a/src/Tool/IntelliToolFloodFill.cpp +++ b/src/Tool/IntelliToolFloodFill.cpp @@ -24,58 +24,43 @@ void IntelliToolFloodFill::onMouseRightReleased(int x, int y){ void IntelliToolFloodFill::onMouseLeftPressed(int x, int y){ IntelliTool::onMouseLeftPressed(x,y); - QColor oldColor = this->Active->image->getPixelColor(x,y); + + QPoint start(x,y); std::queue Q; - Q.push(QPoint(x,y)); + Q.push(start); + + QColor oldColor = this->Active->image->getPixelColor(start); QColor newColor = this->colorPicker->getFirstColor(); - Canvas->image->drawPixel(QPoint(x,y),newColor); + Canvas->image->drawPixel(start,newColor); + + QPoint left, right, top, down; while(!Q.empty()){ - QPoint Front = Q.front(); + QPoint Current = Q.front(); Q.pop(); - if((Front.x()+1 < Canvas->width)&& - (Active->image->getPixelColor(Front.x()+1,Front.y()) == oldColor)&& - (Canvas->image->getPixelColor(Front.x()+1,Front.y()) != newColor)){ - Canvas->image->drawPixel(QPoint(Front.x()+1, Front.y()),newColor); - Q.push(QPoint(Front.x()+1,Front.y())); + + left = QPoint(Current.x()-1,Current.y() ); + right = QPoint(Current.x()+1,Current.y() ); + top = QPoint(Current.x() ,Current.y()-1); + down = QPoint(Current.x() ,Current.y()+1); + if((right.x() < Canvas->width) && (Canvas->image->getPixelColor(right) != newColor) && (Active->image->getPixelColor(right) == oldColor)){ + Canvas->image->drawPixel(right,newColor); + Q.push(right); } - if((Front.x()-1 >= 0)&& - (Active->image->getPixelColor(Front.x()-1,Front.y()) == oldColor)&& - (Canvas->image->getPixelColor(Front.x()-1,Front.y()) != newColor)){ - Canvas->image->drawPixel(QPoint(Front.x()-1, Front.y()),newColor); - Q.push(QPoint(Front.x()-1,Front.y())); + if((left.x() >= 0) && (Canvas->image->getPixelColor(left) != newColor) && (Active->image->getPixelColor(left) == oldColor)){ + Canvas->image->drawPixel(left,newColor); + Q.push(left); } - if((Front.y()+1 < Canvas->hight)&& - (Active->image->getPixelColor(Front.x(),Front.y()+1) == oldColor)&& - (Canvas->image->getPixelColor(Front.x(),Front.y()+1) != newColor)){ - Canvas->image->drawPixel(QPoint(Front.x(), Front.y()+1),newColor); - Q.push(QPoint(Front.x(),Front.y()+1)); + if((top.y() < Canvas->hight) && (Canvas->image->getPixelColor(top) != newColor) && (Active->image->getPixelColor(top) == oldColor)){ + Canvas->image->drawPixel(top,newColor); + Q.push(top); } - if((Front.y()-1 >= 0)&& - (Active->image->getPixelColor(Front.x(),Front.y()-1) == oldColor)&& - (Canvas->image->getPixelColor(Front.x(),Front.y()-1) != newColor)){ - Canvas->image->drawPixel(QPoint(Front.x(), Front.y()-1),newColor); - Q.push(QPoint(Front.x(),Front.y()-1)); + if((down.y() >= 0) && (Canvas->image->getPixelColor(down) != newColor) && (Active->image->getPixelColor(down) == oldColor)){ + Canvas->image->drawPixel(down,newColor); + Q.push(down); } } - - /* std::function depthsearch = - [&depthsearch](int x, int y,LayerObject* Active, LayerObject* Canvas, QColor oldColor, QColor newColor){ - if((x >= 0) && (y >= 0) && (x < Canvas->width) && (y < Canvas->hight)){ - if(Active->image->getPixelColor(x,y) == oldColor){ - Canvas->image->drawPoint(QPoint(x,y),newColor,1); - depthsearch(x-1,y,Active,Canvas,oldColor,newColor); - depthsearch(x,y+1,Active,Canvas,oldColor,newColor); - depthsearch(x+1,y,Active,Canvas,oldColor,newColor); - depthsearch(x,y-1,Active,Canvas,oldColor,newColor); - } - } - }; - depthsearch(x,y,Active,Canvas,oldColor,this->colorPicker->getFirstColor()); - */ Canvas->image->calculateVisiblity(); - - } void IntelliToolFloodFill::onMouseLeftReleased(int x, int y){ From 486f1a08159fd038f5fa82062f4a15da89ee104a Mon Sep 17 00:00:00 2001 From: Sonaion Date: Thu, 19 Dec 2019 09:15:40 +0100 Subject: [PATCH 33/62] FloodfillTool and more docs --- src/IntelliPhoto.pro | 2 ++ src/Layer/PaintingArea.h | 2 +- src/Tool/IntelliToolFloodFill.h | 23 +++++++++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 src/Tool/IntelliToolFloodFill.h diff --git a/src/IntelliPhoto.pro b/src/IntelliPhoto.pro index 9b0956d..f10c416 100644 --- a/src/IntelliPhoto.pro +++ b/src/IntelliPhoto.pro @@ -25,6 +25,7 @@ SOURCES += \ Layer/PaintingArea.cpp \ Tool/IntelliTool.cpp \ Tool/IntelliToolCircle.cpp \ + Tool/IntelliToolFloodFill.cpp \ Tool/IntelliToolLine.cpp \ Tool/IntelliToolPen.cpp \ Tool/IntelliToolPlain.cpp \ @@ -41,6 +42,7 @@ HEADERS += \ Layer/PaintingArea.h \ Tool/IntelliTool.h \ Tool/IntelliToolCircle.h \ + Tool/IntelliToolFloodFill.h \ Tool/IntelliToolLine.h \ Tool/IntelliToolPen.h \ Tool/IntelliToolPlain.h \ diff --git a/src/Layer/PaintingArea.h b/src/Layer/PaintingArea.h index b6cebc1..afe218e 100644 --- a/src/Layer/PaintingArea.h +++ b/src/Layer/PaintingArea.h @@ -32,7 +32,7 @@ class PaintingArea : public QWidget friend IntelliTool; public: PaintingArea(int maxWidth=600, int maxHeight=600, QWidget *parent = nullptr); - ~PaintingArea(); + ~PaintingArea() override; // Handles all events bool open(const QString &fileName); diff --git a/src/Tool/IntelliToolFloodFill.h b/src/Tool/IntelliToolFloodFill.h new file mode 100644 index 0000000..0aa298f --- /dev/null +++ b/src/Tool/IntelliToolFloodFill.h @@ -0,0 +1,23 @@ +#ifndef INTELLITOOLFLOODFILL_H +#define INTELLITOOLFLOODFILL_H +#include "IntelliTool.h" + +#include "QColor" + +class IntelliToolFloodFill : public IntelliTool{ +public: + IntelliToolFloodFill(PaintingArea* Area, IntelliColorPicker* colorPicker); + virtual ~IntelliToolFloodFill() override; + + + virtual void onMouseRightPressed(int x, int y) override; + virtual void onMouseRightReleased(int x, int y) override; + virtual void onMouseLeftPressed(int x, int y) override; + virtual void onMouseLeftReleased(int x, int y) override; + + virtual void onWheelScrolled(int value) override; + + virtual void onMouseMoved(int x, int y) override; +}; + +#endif // INTELLITOOLFLOODFILL_H From 559f229b7bbe389b676924b14c72fc90ddff160e Mon Sep 17 00:00:00 2001 From: Sonaion Date: Thu, 19 Dec 2019 09:44:48 +0100 Subject: [PATCH 34/62] start of Tool Commentary --- src/IntelliHelper/IntelliColorPicker.h | 38 +++++++++++++++++++ src/IntelliHelper/IntelliHelper.cpp | 2 +- src/IntelliHelper/IntelliHelper.h | 37 +++++++++++++++--- src/Tool/IntelliTool.h | 52 ++++++++++++++++++++++++++ 4 files changed, 123 insertions(+), 6 deletions(-) diff --git a/src/IntelliHelper/IntelliColorPicker.h b/src/IntelliHelper/IntelliColorPicker.h index 64f23e5..f84e54e 100644 --- a/src/IntelliHelper/IntelliColorPicker.h +++ b/src/IntelliHelper/IntelliColorPicker.h @@ -5,21 +5,59 @@ #include"QPoint" #include"QColorDialog" +/*! + * \brief The IntelliColorPicker manages the selected colors for one whole project. + */ class IntelliColorPicker{ public: + /*! + * \brief IntelliColorPicker construktor, setting 2 preset colors, be careful, theese color may change in production. + */ IntelliColorPicker(); + + /*! + * \brief IntelliColorPicker destructor clears up his used memory, if there is some. + */ virtual ~IntelliColorPicker(); + /*! + * \brief A function switching primary and secondary color. + */ void switchColors(); + /*! + * \brief A function to read the primary selected color. + * \return Returns the primary color. + */ QColor getFirstColor(); + + /*! + * \brief A function to read the secondary selected color. + * \return Returns the secondary color. + */ QColor getSecondColor(); + /*! + * \brief A function to set the primary color. + * \param Color - The color to be set as primary. + */ void setFirstColor(QColor Color); + + /*! + * \brief A function to set the secondary color. + * \param Color - The color to be set as secondary. + */ void setSecondColor(QColor Color); private: + /*! + * \brief The primary color. + */ QColor firstColor; + + /*! + * \brief The secondary color. + */ QColor secondColor; }; diff --git a/src/IntelliHelper/IntelliHelper.cpp b/src/IntelliHelper/IntelliHelper.cpp index 42b8aab..d814296 100644 --- a/src/IntelliHelper/IntelliHelper.cpp +++ b/src/IntelliHelper/IntelliHelper.cpp @@ -115,7 +115,7 @@ std::vector IntelliHelper::calculateTriangles(std::vector poly bool IntelliHelper::isInPolygon(std::vector &triangles, QPoint &point){ for(auto triangle : triangles){ - if(IntelliHelper::isInTriangle(triangle.A ,triangle.B, triangle.C, point)){ + if(IntelliHelper::isInTriangle(triangle, point)){ return true; } } diff --git a/src/IntelliHelper/IntelliHelper.h b/src/IntelliHelper/IntelliHelper.h index e01aff9..ca3ec77 100644 --- a/src/IntelliHelper/IntelliHelper.h +++ b/src/IntelliHelper/IntelliHelper.h @@ -4,24 +4,40 @@ #include #include +/*! + * \brief The Triangle struct holds the 3 vertices of a triangle. + */ struct Triangle{ QPoint A,B,C; }; + namespace IntelliHelper { - + /*! + * \brief A function to get the 2*area of a traingle, using its determinat. + * \param p1 - The Point to check its side. + * \param p2 - The first Point of the spanning Line + * \param p3 - The second Point of the spanning line. + * \return Returns the area of the traingle*2 + */ inline float sign(QPoint& p1, QPoint& p2, QPoint& p3){ return (p1.x()-p3.x())*(p2.y()-p3.y())-(p2.x()-p3.x())*(p1.y()-p3.y()); } - inline bool isInTriangle(QPoint& A, QPoint& B, QPoint& C, QPoint& P){ + /*! + * \brief A function to check if a given point is in a triangle. + * \param tri - The triangle to check, if it contains the point. + * \param P - The point to check if it is in the triangle. + * \return Returns true if the point is in the triangle, false otheriwse + */ + inline bool isInTriangle(Triangle& tri, QPoint& P){ float val1, val2, val3; bool neg, pos; - val1 = IntelliHelper::sign(P,A,B); - val2 = IntelliHelper::sign(P,B,C); - val3 = IntelliHelper::sign(P,C,A); + val1 = IntelliHelper::sign(P,tri.A,tri.B); + val2 = IntelliHelper::sign(P,tri.B,tri.C); + val3 = IntelliHelper::sign(P,tri.C,tri.A); neg = (val1<0.f) || (val2<0.f) || (val3<0.f); pos = (val1>0.f) || (val2>0.f) || (val3>0.f); @@ -29,8 +45,19 @@ namespace IntelliHelper { return !(neg && pos); } + /*! + * \brief A function to split a polygon in its spanning traingles by using Meisters Theorem of graph theory by clipping ears of a planar graph. + * \param polyPoints - The Vertices of the polygon. + * \return Returns a Container of disjoint Triangles, which desribe the polygon area. + */ std::vector calculateTriangles(std::vector polyPoints); + /*! + * \brief A function to check if a point lies in a polygon by checking its spanning triangles. + * \param triangles - The spanning triangles of the planar polygon. + * \param point - The point to checl, if it lies in the polygon. + * \return Returns true if the point lies in the üpolygon, otherwise false. + */ bool isInPolygon(std::vector &triangles, QPoint &point); } diff --git a/src/Tool/IntelliTool.h b/src/Tool/IntelliTool.h index 380a90b..5225a7a 100644 --- a/src/Tool/IntelliTool.h +++ b/src/Tool/IntelliTool.h @@ -37,21 +37,73 @@ protected: */ IntelliColorPicker* colorPicker; + /*! + * \brief A pointer to the underlying active Layer, do not work on this. This is used for data grabbing or previews. + */ LayerObject* Active; + + /*! + * \brief A pointer to the drawing canvas of the tool, work on this. + */ LayerObject* Canvas; + + /*! + * \brief A flag checking if the user is currently drawing or not. + */ bool drawing = false; public: + /*! + * \brief A constructor setting the general Painting Area and colorPicker. + * \param Area - The general PaintingArea used by the project. + * \param colorPicker - The general colorPicker used by the project + */ IntelliTool(PaintingArea* Area, IntelliColorPicker* colorPicker); + + /*! + * \brief An abstract Destructor. + */ virtual ~IntelliTool() = 0; + /*! + * \brief A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes! + * \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); + + /*! + * \brief A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes! + * \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); + + /*! + * \brief A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes! + * \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); + + /*! + * \brief A function managing the left click Released of a Mouse. Call this in child classes! + * \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); + /*! + * \brief A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes! + * \param value - The absolute the scroll has changed. + */ virtual void onWheelScrolled(int value); + /*! + * \brief A function managing the mouse moved event. Call this in child classes! + * \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); From 4d68b6ab0a2ab6f30ab8c2cfef2cbce0bed15a6b Mon Sep 17 00:00:00 2001 From: Conrad Date: Thu, 19 Dec 2019 11:29:26 +0100 Subject: [PATCH 35/62] Updated docs --- docs/html/_intelli_color_picker_8h.html | 9 +- .../_intelli_color_picker_8h__dep__incl.dot | 74 +- docs/html/_intelli_color_picker_8h__incl.dot | 4 +- .../html/_intelli_color_picker_8h_source.html | 60 +- ...li_helper_2_intelli_color_picker_8cpp.html | 6 +- ...lper_2_intelli_color_picker_8cpp__incl.dot | 4 +- ...er_2_intelli_color_picker_8cpp_source.html | 18 +- docs/html/_intelli_helper_8cpp.html | 8 +- docs/html/_intelli_helper_8cpp__incl.dot | 14 +- docs/html/_intelli_helper_8cpp_source.html | 132 ++- docs/html/_intelli_helper_8h.html | 36 +- docs/html/_intelli_helper_8h.js | 8 + docs/html/_intelli_helper_8h__dep__incl.dot | 34 +- docs/html/_intelli_helper_8h__incl.dot | 6 +- docs/html/_intelli_helper_8h_source.html | 72 +- docs/html/_intelli_image_8cpp.html | 6 +- docs/html/_intelli_image_8cpp__incl.dot | 4 +- docs/html/_intelli_image_8cpp_source.html | 52 +- docs/html/_intelli_image_8h.html | 14 +- docs/html/_intelli_image_8h__dep__incl.dot | 34 +- docs/html/_intelli_image_8h__incl.dot | 4 +- docs/html/_intelli_image_8h_source.html | 121 +-- docs/html/_intelli_photo_gui_8cpp.html | 10 +- docs/html/_intelli_photo_gui_8cpp__incl.dot | 25 +- docs/html/_intelli_photo_gui_8cpp_source.html | 945 +++++++++--------- docs/html/_intelli_photo_gui_8h.html | 8 +- .../html/_intelli_photo_gui_8h__dep__incl.dot | 8 +- docs/html/_intelli_photo_gui_8h__incl.dot | 4 +- docs/html/_intelli_photo_gui_8h_source.html | 12 +- docs/html/_intelli_raster_image_8cpp.html | 6 +- .../html/_intelli_raster_image_8cpp__incl.dot | 4 +- .../_intelli_raster_image_8cpp_source.html | 22 +- docs/html/_intelli_raster_image_8h.html | 9 +- .../_intelli_raster_image_8h__dep__incl.dot | 30 +- docs/html/_intelli_raster_image_8h__incl.dot | 4 +- .../html/_intelli_raster_image_8h_source.html | 61 +- docs/html/_intelli_shaped_image_8cpp.html | 6 +- .../html/_intelli_shaped_image_8cpp__incl.dot | 9 +- .../_intelli_shaped_image_8cpp_source.html | 117 +-- docs/html/_intelli_shaped_image_8h.html | 11 +- .../_intelli_shaped_image_8h__dep__incl.dot | 26 +- docs/html/_intelli_shaped_image_8h__incl.dot | 9 +- .../html/_intelli_shaped_image_8h_source.html | 80 +- docs/html/_intelli_tool_8cpp.html | 6 +- docs/html/_intelli_tool_8cpp__incl.dot | 9 +- docs/html/_intelli_tool_8cpp_source.html | 108 +- docs/html/_intelli_tool_8h.html | 9 +- docs/html/_intelli_tool_8h__dep__incl.dot | 60 +- docs/html/_intelli_tool_8h__incl.dot | 4 +- docs/html/_intelli_tool_8h_source.html | 98 +- docs/html/_intelli_tool_circle_8cpp.html | 116 +++ docs/html/_intelli_tool_circle_8cpp__incl.dot | 59 ++ .../_intelli_tool_circle_8cpp_source.html | 221 ++++ docs/html/_intelli_tool_circle_8h.html | 128 +++ .../_intelli_tool_circle_8h__dep__incl.dot | 11 + docs/html/_intelli_tool_circle_8h__incl.dot | 21 + docs/html/_intelli_tool_circle_8h_source.html | 148 +++ docs/html/_intelli_tool_flood_fill_8cpp.html | 118 +++ .../_intelli_tool_flood_fill_8cpp__incl.dot | 61 ++ .../_intelli_tool_flood_fill_8cpp_source.html | 211 ++++ docs/html/_intelli_tool_flood_fill_8h.html | 127 +++ ..._intelli_tool_flood_fill_8h__dep__incl.dot | 11 + .../_intelli_tool_flood_fill_8h__incl.dot | 20 + .../_intelli_tool_flood_fill_8h_source.html | 143 +++ docs/html/_intelli_tool_line_8cpp.html | 6 +- docs/html/_intelli_tool_line_8cpp__incl.dot | 14 +- docs/html/_intelli_tool_line_8cpp_source.html | 91 +- docs/html/_intelli_tool_line_8h.html | 11 +- .../html/_intelli_tool_line_8h__dep__incl.dot | 8 +- docs/html/_intelli_tool_line_8h__incl.dot | 5 +- docs/html/_intelli_tool_line_8h_source.html | 80 +- docs/html/_intelli_tool_pen_8cpp.html | 6 +- docs/html/_intelli_tool_pen_8cpp__incl.dot | 17 +- docs/html/_intelli_tool_pen_8cpp_source.html | 54 +- docs/html/_intelli_tool_pen_8h.html | 8 +- docs/html/_intelli_tool_pen_8h__dep__incl.dot | 8 +- docs/html/_intelli_tool_pen_8h__incl.dot | 4 +- docs/html/_intelli_tool_pen_8h_source.html | 35 +- docs/html/_intelli_tool_plain_8cpp.html | 6 +- docs/html/_intelli_tool_plain_8cpp__incl.dot | 9 +- .../html/_intelli_tool_plain_8cpp_source.html | 46 +- docs/html/_intelli_tool_plain_8h.html | 8 +- .../_intelli_tool_plain_8h__dep__incl.dot | 8 +- docs/html/_intelli_tool_plain_8h__incl.dot | 4 +- docs/html/_intelli_tool_plain_8h_source.html | 46 +- docs/html/_intelli_tool_rectangle_8cpp.html | 115 +++ .../_intelli_tool_rectangle_8cpp__incl.dot | 57 ++ .../_intelli_tool_rectangle_8cpp_source.html | 200 ++++ docs/html/_intelli_tool_rectangle_8h.html | 128 +++ .../_intelli_tool_rectangle_8h__dep__incl.dot | 11 + .../html/_intelli_tool_rectangle_8h__incl.dot | 21 + .../_intelli_tool_rectangle_8h_source.html | 149 +++ docs/html/_painting_area_8cpp.html | 9 +- docs/html/_painting_area_8cpp__incl.dot | 58 +- docs/html/_painting_area_8cpp_source.html | 698 ++++++------- docs/html/_painting_area_8h.html | 8 +- docs/html/_painting_area_8h__dep__incl.dot | 22 +- docs/html/_painting_area_8h__incl.dot | 25 +- docs/html/_painting_area_8h_source.html | 218 ++-- .../_tool_2_intelli_color_picker_8cpp.html | 6 +- ...tool_2_intelli_color_picker_8cpp__incl.dot | 4 +- ...ol_2_intelli_color_picker_8cpp_source.html | 16 +- docs/html/annotated.html | 27 +- docs/html/annotated_dup.js | 7 +- docs/html/class_intelli_color_picker.html | 47 +- ...7a6f20bf2fc0a4cbaf4c030c2a26d9_icgraph.dot | 2 +- ...568fbf5dc783f06284b7031ffe9415_icgraph.dot | 2 +- ...2ddbbbfbed383f06b24e5bf6b27ae8_icgraph.dot | 2 +- ...bf4a940e4a0e465e30cbdf28748931_icgraph.dot | 2 +- ...2eb27b928fe9388b9398b0556303b7_icgraph.dot | 14 +- docs/html/class_intelli_image-members.html | 8 +- docs/html/class_intelli_image.html | 222 +++- docs/html/class_intelli_image.js | 2 + .../class_intelli_image__inherit__graph.dot | 6 +- ...76ebb6d863321c816293d7b7f9fd3f_icgraph.dot | 10 + ...e622810dc2bc756054bb5769becb06_icgraph.dot | 10 +- ...bced93f4744fad81b7f141b21f4ab2_icgraph.dot | 83 +- ...0e9c8184d89dee33fd9adefbd2f8aa_icgraph.dot | 2 +- ...c859f5c409e37051edfd9e9fbca056_icgraph.dot | 6 +- ...eddbd9aa54c8d37590d1d4bf8dce31_icgraph.dot | 8 +- docs/html/class_intelli_photo_gui.html | 6 +- .../class_intelli_raster_image-members.html | 8 +- docs/html/class_intelli_raster_image.html | 78 +- ...lass_intelli_raster_image__coll__graph.dot | 4 +- ...s_intelli_raster_image__inherit__graph.dot | 6 +- ...12d79124f0e2c158a4f0abbe4b5f97f_cgraph.dot | 4 +- ...f901301b106504de3c27308ade897dc_cgraph.dot | 4 +- ...9b561fe499a4da3c6ef98971aa3468_icgraph.dot | 4 +- ...3393397b0141a8033fe34d3a1b1884_icgraph.dot | 4 +- .../class_intelli_shaped_image-members.html | 33 +- docs/html/class_intelli_shaped_image.html | 130 ++- docs/html/class_intelli_shaped_image.js | 1 - ...lass_intelli_shaped_image__coll__graph.dot | 6 +- ...s_intelli_shaped_image__inherit__graph.dot | 6 +- ...834c3f255baeb50c98ef335a6d0ea9_icgraph.dot | 4 +- ...b69d75de7a3b85032482982f249458e_cgraph.dot | 8 +- ...69d75de7a3b85032482982f249458e_icgraph.dot | 4 +- ...cf374247c16f07fd84d50e4cd05630_icgraph.dot | 4 +- ...6a99e1a96134073bceea252b37636cc_cgraph.dot | 4 +- ...d0b31e0fa771104399d1f5ff39a0337_cgraph.dot | 12 +- docs/html/class_intelli_tool-members.html | 3 +- docs/html/class_intelli_tool.html | 156 ++- docs/html/class_intelli_tool.js | 1 + docs/html/class_intelli_tool__coll__graph.dot | 6 +- .../class_intelli_tool__inherit__graph.dot | 15 +- ...189b00307c6d7e89f28198f54404b0_icgraph.dot | 14 +- ...6aa68ac5f3c2ca02319e5ef3f0c966_icgraph.dot | 14 +- ...4b7ef1dde96b94a0ce450a25ae1778c_cgraph.dot | 4 +- ...b7ef1dde96b94a0ce450a25ae1778c_icgraph.dot | 14 +- ...ccfd4460255ccb866f336406a33574_icgraph.dot | 22 + ...06a2575c16c8a33cb2a5197f8d8cc5b_cgraph.dot | 4 +- ...6a2575c16c8a33cb2a5197f8d8cc5b_icgraph.dot | 14 +- ...10e20414cd8855a2f9b103fb6408639_cgraph.dot | 4 +- ...0e20414cd8855a2f9b103fb6408639_icgraph.dot | 14 +- .../class_intelli_tool_circle-members.html | 122 +++ docs/html/class_intelli_tool_circle.html | 551 ++++++++++ docs/html/class_intelli_tool_circle.js | 11 + ...class_intelli_tool_circle__coll__graph.dot | 19 + ...ss_intelli_tool_circle__inherit__graph.dot | 9 + ...9d7b9ed4960e6fe1f31ff620363e429_cgraph.dot | 10 + ...0ee58c5390a86afc75c14ca79b91d7b_cgraph.dot | 14 + ...a07540f2f7ccb3d2c0b84890c1afc4c_cgraph.dot | 10 + ...8e438ec997c57262b5efc2db4cee1a3_cgraph.dot | 12 + ...2d9b0fb6695c184c4cb507a5fb75506_cgraph.dot | 10 + ...883b8ae833c78a8867e626c600f9639_cgraph.dot | 13 + ...class_intelli_tool_flood_fill-members.html | 122 +++ docs/html/class_intelli_tool_flood_fill.html | 551 ++++++++++ docs/html/class_intelli_tool_flood_fill.js | 11 + ...s_intelli_tool_flood_fill__coll__graph.dot | 19 + ...ntelli_tool_flood_fill__inherit__graph.dot | 9 + ...9cf49c0ce46f96be3510f0b70c9d892_cgraph.dot | 10 + ...cd42cea99bc7583875abcc0c274c668_cgraph.dot | 12 + ...438ef96c6c36068bce76e2364e8594c_cgraph.dot | 12 + ...85e3cb6233508ff9612833a8d9e3961_cgraph.dot | 19 + ...58cc7c065123beb6b0270f99e99b991_cgraph.dot | 10 + ...a0f7154d119102410a55038763a17e4_cgraph.dot | 10 + .../html/class_intelli_tool_line-members.html | 5 +- docs/html/class_intelli_tool_line.html | 111 +- docs/html/class_intelli_tool_line.js | 3 +- .../class_intelli_tool_line__coll__graph.dot | 6 +- ...lass_intelli_tool_line__inherit__graph.dot | 2 +- ...55d676a5f98311217eb095be4759846_cgraph.dot | 10 +- ...214918cba5753f89d97de4559a2b9b2_cgraph.dot | 4 +- ...cce59f3017936214b10b47252a898a3_cgraph.dot | 4 +- ...f1d686e1ec43f41b5186ccfd806b125_cgraph.dot | 10 + ...c6324ef0778823fe7e35aef8ae37f9b_cgraph.dot | 12 +- ...93f76ff20a1c111a403b298bab02482_cgraph.dot | 6 +- docs/html/class_intelli_tool_pen-members.html | 5 +- docs/html/class_intelli_tool_pen.html | 107 +- docs/html/class_intelli_tool_pen.js | 3 +- .../class_intelli_tool_pen__coll__graph.dot | 6 +- ...class_intelli_tool_pen__inherit__graph.dot | 2 +- ...751e3864a0d36ef42ca55021cae73ce_cgraph.dot | 4 +- ...8d1d636497b630647ce0c4d652737c2_cgraph.dot | 10 +- ...ff40aef6d38eb55af31a19322429205_cgraph.dot | 10 +- ...da7a22b9766fa4ad254324a53cab94d_cgraph.dot | 6 +- ...f8562e8cd2da586afdf4d47b3a4ff13_cgraph.dot | 4 +- ...e3626ddff440ab125f4a2465c45427a_cgraph.dot | 10 + ...class_intelli_tool_plain_tool-members.html | 3 +- docs/html/class_intelli_tool_plain_tool.html | 117 ++- docs/html/class_intelli_tool_plain_tool.js | 3 +- ...s_intelli_tool_plain_tool__coll__graph.dot | 6 +- ...ntelli_tool_plain_tool__inherit__graph.dot | 2 +- ...ae458f1b04eb77a47f6dca5e91e33b8_cgraph.dot | 4 +- ...786dd5fa80af863246013d43c4b7ac9_cgraph.dot | 10 +- ...23f5d0f07e42fd7c2ea3fc1347da400_cgraph.dot | 6 +- ...b0c46e16d2c09370a2244a936de38b1_cgraph.dot | 4 +- ...7546a6335bb3bb4cbf0e1883788d41c_cgraph.dot | 6 +- ...c004ea421e2cc0ac39cc7a6b6d43d0d_cgraph.dot | 10 + .../class_intelli_tool_rectangle-members.html | 122 +++ docs/html/class_intelli_tool_rectangle.html | 551 ++++++++++ docs/html/class_intelli_tool_rectangle.js | 11 + ...ss_intelli_tool_rectangle__coll__graph.dot | 19 + ...intelli_tool_rectangle__inherit__graph.dot | 9 + ...45c53a56e859f970e59f5036e221e0c_cgraph.dot | 10 + ...80c6804a4963c5a1c3f7ef84b63c1a8_cgraph.dot | 10 + ...b5931071e21eb6949ffe357315e408b_cgraph.dot | 14 + ...4460e3ff1c19e80bde922c55f53cc43_cgraph.dot | 12 + ...43f653256a6516b9398f82054be0d7f_cgraph.dot | 10 + ...03c307ccf66cbe3fd59e3657712368d_cgraph.dot | 13 + docs/html/class_painting_area-members.html | 3 +- docs/html/class_painting_area.html | 105 +- docs/html/class_painting_area.js | 5 +- ...f597740b4d7b4bc2e24c51f8cb0b6eb_cgraph.dot | 4 +- ...5b5df914acb608cc29717659793359c_cgraph.dot | 6 +- ...735d4cf1dc58a9096d904e74c39c4df_cgraph.dot | 4 +- ...32848d99f44d33d7da2618fbc6775a4_cgraph.dot | 10 + ...6115307ff4a99cd7ca16423c5c8ecfb_cgraph.dot | 2 +- ...22e274b6094a9619f196cd7b49526b5_cgraph.dot | 4 +- ...fe445f8d9b70ae42bfeda874127dd15_cgraph.dot | 6 +- ...261acaaa346610dfed489dbac17e789_cgraph.dot | 4 +- ...b5eb394b979ea90f2be9849fdda1774_cgraph.dot | 2 +- docs/html/classes.html | 44 +- docs/html/dir_000001_000002.html | 101 ++ docs/html/dir_000002_000006.html | 101 ++ docs/html/dir_000003_000004.html | 101 ++ docs/html/dir_000005_000004.html | 8 +- docs/html/dir_000005_000006.html | 101 ++ docs/html/dir_000006_000003.html | 101 ++ docs/html/dir_000006_000004.html | 101 ++ docs/html/dir_000006_000005.html | 101 ++ .../dir_544f9dcb748f922e4bb3be2540380bf2.html | 126 +++ .../dir_544f9dcb748f922e4bb3be2540380bf2.js | 13 + ...r_544f9dcb748f922e4bb3be2540380bf2_dep.dot | 11 + .../dir_5dabb14988a75c922e285f444641a133.html | 118 +++ .../dir_5dabb14988a75c922e285f444641a133.js | 7 + ...r_5dabb14988a75c922e285f444641a133_dep.dot | 11 + .../dir_83a4347d11f2ba6343d546ab133722d2.html | 129 +++ .../dir_83a4347d11f2ba6343d546ab133722d2.js | 9 + ...r_83a4347d11f2ba6343d546ab133722d2_dep.dot | 25 + .../dir_8db5f55022e7670536cbc9a6a1d6f01c.html | 116 +++ .../dir_8db5f55022e7670536cbc9a6a1d6f01c.js | 4 + ...r_8db5f55022e7670536cbc9a6a1d6f01c_dep.dot | 10 + .../dir_941490de56ac122cf77df9922cbcc750.html | 144 +++ .../dir_941490de56ac122cf77df9922cbcc750.js | 30 + ...r_941490de56ac122cf77df9922cbcc750_dep.dot | 15 + .../dir_e6d96184223881d115efa44ca0dfa844.html | 118 +++ .../dir_e6d96184223881d115efa44ca0dfa844.js | 8 + ...r_e6d96184223881d115efa44ca0dfa844_dep.dot | 18 + .../dir_f50aa5156fe016a259583c412dbf440c.html | 117 +++ .../dir_f50aa5156fe016a259583c412dbf440c.js | 9 + docs/html/files.html | 69 +- docs/html/files_dup.js | 2 +- docs/html/functions.html | 71 +- docs/html/functions_func.html | 62 +- docs/html/functions_vars.html | 9 + docs/html/hierarchy.html | 31 +- docs/html/hierarchy.js | 9 +- docs/html/inherit_graph_0.dot | 2 +- docs/html/inherit_graph_1.dot | 6 +- docs/html/inherit_graph_2.dot | 8 +- docs/html/inherit_graph_3.dot | 16 +- docs/html/inherit_graph_4.dot | 8 +- docs/html/inherit_graph_5.dot | 4 +- docs/html/inherit_graph_6.dot | 4 +- docs/html/inherits.html | 12 +- docs/html/main_8cpp.html | 10 +- docs/html/main_8cpp__incl.dot | 11 +- docs/html/main_8cpp_source.html | 33 +- docs/html/menudata.js | 7 + docs/html/namespace_intelli_helper.html | 321 ++++++ ...4dc3624ba4562a03dc922e3dd7b617_icgraph.dot | 12 + ...4d516b3e619e2a743e9c98dd75cf901_cgraph.dot | 12 + ...fcfe72f00e870be4a8ab9f2e17483c9_cgraph.dot | 10 + ...cfe72f00e870be4a8ab9f2e17483c9_icgraph.dot | 10 + ...d9fe78cc5d21b59642910220768149_icgraph.dot | 12 + docs/html/namespacemembers.html | 114 +++ docs/html/namespacemembers_func.html | 114 +++ docs/html/namespaces.html | 109 ++ docs/html/namespaces_dup.js | 4 + docs/html/navtreedata.js | 7 + docs/html/navtreeindex0.js | 431 ++++---- docs/html/search/all_0.js | 11 +- docs/html/search/all_1.js | 11 +- docs/html/search/all_10.html | 30 + docs/html/search/all_10.js | 14 + docs/html/search/all_2.js | 18 +- docs/html/search/all_3.js | 8 +- docs/html/search/all_4.js | 6 +- docs/html/search/all_5.js | 8 +- docs/html/search/all_6.js | 36 +- docs/html/search/all_7.js | 47 +- docs/html/search/all_8.js | 10 +- docs/html/search/all_9.js | 13 +- docs/html/search/all_a.js | 12 +- docs/html/search/all_b.js | 8 +- docs/html/search/all_c.js | 17 +- docs/html/search/all_d.js | 16 +- docs/html/search/all_e.js | 9 +- docs/html/search/all_f.html | 30 + docs/html/search/all_f.js | 6 + docs/html/search/classes_0.js | 22 +- docs/html/search/classes_1.js | 2 +- docs/html/search/classes_2.js | 2 +- docs/html/search/classes_3.html | 30 + docs/html/search/classes_3.js | 4 + docs/html/search/enums_0.js | 2 +- docs/html/search/enums_1.js | 2 +- docs/html/search/enumvalues_0.js | 2 +- docs/html/search/enumvalues_1.js | 2 +- docs/html/search/enumvalues_2.js | 4 +- docs/html/search/files_0.js | 46 +- docs/html/search/files_1.js | 2 +- docs/html/search/files_2.js | 4 +- docs/html/search/functions_0.js | 4 +- docs/html/search/functions_1.js | 17 +- docs/html/search/functions_2.js | 9 +- docs/html/search/functions_3.js | 2 +- docs/html/search/functions_4.js | 11 +- docs/html/search/functions_5.js | 24 +- docs/html/search/functions_6.js | 2 +- docs/html/search/functions_7.js | 12 +- docs/html/search/functions_8.js | 13 +- docs/html/search/functions_9.js | 4 +- docs/html/search/functions_a.js | 4 +- docs/html/search/functions_b.js | 24 +- docs/html/search/functions_c.js | 9 +- docs/html/search/functions_d.html | 30 + docs/html/search/functions_d.js | 14 + docs/html/search/namespaces_0.html | 30 + docs/html/search/namespaces_0.js | 4 + docs/html/search/searchdata.js | 37 +- docs/html/search/variables_0.js | 7 +- docs/html/search/variables_1.js | 3 +- docs/html/search/variables_2.js | 4 +- docs/html/search/variables_3.js | 3 +- docs/html/search/variables_4.js | 4 +- docs/html/search/variables_5.js | 3 +- docs/html/search/variables_6.js | 3 +- docs/html/search/variables_7.html | 30 + docs/html/search/variables_7.js | 5 + docs/html/struct_layer_object.html | 2 +- .../html/struct_layer_object__coll__graph.dot | 2 +- docs/html/struct_triangle-members.html | 110 ++ docs/html/struct_triangle.html | 179 ++++ docs/html/struct_triangle.js | 6 + 356 files changed, 11771 insertions(+), 2723 deletions(-) create mode 100644 docs/html/_intelli_helper_8h.js create mode 100644 docs/html/_intelli_tool_circle_8cpp.html create mode 100644 docs/html/_intelli_tool_circle_8cpp__incl.dot create mode 100644 docs/html/_intelli_tool_circle_8cpp_source.html create mode 100644 docs/html/_intelli_tool_circle_8h.html create mode 100644 docs/html/_intelli_tool_circle_8h__dep__incl.dot create mode 100644 docs/html/_intelli_tool_circle_8h__incl.dot create mode 100644 docs/html/_intelli_tool_circle_8h_source.html create mode 100644 docs/html/_intelli_tool_flood_fill_8cpp.html create mode 100644 docs/html/_intelli_tool_flood_fill_8cpp__incl.dot create mode 100644 docs/html/_intelli_tool_flood_fill_8cpp_source.html create mode 100644 docs/html/_intelli_tool_flood_fill_8h.html create mode 100644 docs/html/_intelli_tool_flood_fill_8h__dep__incl.dot create mode 100644 docs/html/_intelli_tool_flood_fill_8h__incl.dot create mode 100644 docs/html/_intelli_tool_flood_fill_8h_source.html create mode 100644 docs/html/_intelli_tool_rectangle_8cpp.html create mode 100644 docs/html/_intelli_tool_rectangle_8cpp__incl.dot create mode 100644 docs/html/_intelli_tool_rectangle_8cpp_source.html create mode 100644 docs/html/_intelli_tool_rectangle_8h.html create mode 100644 docs/html/_intelli_tool_rectangle_8h__dep__incl.dot create mode 100644 docs/html/_intelli_tool_rectangle_8h__incl.dot create mode 100644 docs/html/_intelli_tool_rectangle_8h_source.html create mode 100644 docs/html/class_intelli_image_a4576ebb6d863321c816293d7b7f9fd3f_icgraph.dot create mode 100644 docs/html/class_intelli_tool_a4dccfd4460255ccb866f336406a33574_icgraph.dot create mode 100644 docs/html/class_intelli_tool_circle-members.html create mode 100644 docs/html/class_intelli_tool_circle.html create mode 100644 docs/html/class_intelli_tool_circle.js create mode 100644 docs/html/class_intelli_tool_circle__coll__graph.dot create mode 100644 docs/html/class_intelli_tool_circle__inherit__graph.dot create mode 100644 docs/html/class_intelli_tool_circle_a29d7b9ed4960e6fe1f31ff620363e429_cgraph.dot create mode 100644 docs/html/class_intelli_tool_circle_a90ee58c5390a86afc75c14ca79b91d7b_cgraph.dot create mode 100644 docs/html/class_intelli_tool_circle_aca07540f2f7ccb3d2c0b84890c1afc4c_cgraph.dot create mode 100644 docs/html/class_intelli_tool_circle_ad8e438ec997c57262b5efc2db4cee1a3_cgraph.dot create mode 100644 docs/html/class_intelli_tool_circle_ae2d9b0fb6695c184c4cb507a5fb75506_cgraph.dot create mode 100644 docs/html/class_intelli_tool_circle_ae883b8ae833c78a8867e626c600f9639_cgraph.dot create mode 100644 docs/html/class_intelli_tool_flood_fill-members.html create mode 100644 docs/html/class_intelli_tool_flood_fill.html create mode 100644 docs/html/class_intelli_tool_flood_fill.js create mode 100644 docs/html/class_intelli_tool_flood_fill__coll__graph.dot create mode 100644 docs/html/class_intelli_tool_flood_fill__inherit__graph.dot create mode 100644 docs/html/class_intelli_tool_flood_fill_a39cf49c0ce46f96be3510f0b70c9d892_cgraph.dot create mode 100644 docs/html/class_intelli_tool_flood_fill_a3cd42cea99bc7583875abcc0c274c668_cgraph.dot create mode 100644 docs/html/class_intelli_tool_flood_fill_a7438ef96c6c36068bce76e2364e8594c_cgraph.dot create mode 100644 docs/html/class_intelli_tool_flood_fill_ac85e3cb6233508ff9612833a8d9e3961_cgraph.dot create mode 100644 docs/html/class_intelli_tool_flood_fill_ad58cc7c065123beb6b0270f99e99b991_cgraph.dot create mode 100644 docs/html/class_intelli_tool_flood_fill_ada0f7154d119102410a55038763a17e4_cgraph.dot create mode 100644 docs/html/class_intelli_tool_line_aaf1d686e1ec43f41b5186ccfd806b125_cgraph.dot create mode 100644 docs/html/class_intelli_tool_pen_afe3626ddff440ab125f4a2465c45427a_cgraph.dot create mode 100644 docs/html/class_intelli_tool_plain_tool_adc004ea421e2cc0ac39cc7a6b6d43d0d_cgraph.dot create mode 100644 docs/html/class_intelli_tool_rectangle-members.html create mode 100644 docs/html/class_intelli_tool_rectangle.html create mode 100644 docs/html/class_intelli_tool_rectangle.js create mode 100644 docs/html/class_intelli_tool_rectangle__coll__graph.dot create mode 100644 docs/html/class_intelli_tool_rectangle__inherit__graph.dot create mode 100644 docs/html/class_intelli_tool_rectangle_a445c53a56e859f970e59f5036e221e0c_cgraph.dot create mode 100644 docs/html/class_intelli_tool_rectangle_a480c6804a4963c5a1c3f7ef84b63c1a8_cgraph.dot create mode 100644 docs/html/class_intelli_tool_rectangle_a4b5931071e21eb6949ffe357315e408b_cgraph.dot create mode 100644 docs/html/class_intelli_tool_rectangle_a94460e3ff1c19e80bde922c55f53cc43_cgraph.dot create mode 100644 docs/html/class_intelli_tool_rectangle_ad43f653256a6516b9398f82054be0d7f_cgraph.dot create mode 100644 docs/html/class_intelli_tool_rectangle_ae03c307ccf66cbe3fd59e3657712368d_cgraph.dot create mode 100644 docs/html/class_painting_area_a632848d99f44d33d7da2618fbc6775a4_cgraph.dot create mode 100644 docs/html/dir_000001_000002.html create mode 100644 docs/html/dir_000002_000006.html create mode 100644 docs/html/dir_000003_000004.html create mode 100644 docs/html/dir_000005_000006.html create mode 100644 docs/html/dir_000006_000003.html create mode 100644 docs/html/dir_000006_000004.html create mode 100644 docs/html/dir_000006_000005.html create mode 100644 docs/html/dir_544f9dcb748f922e4bb3be2540380bf2.html create mode 100644 docs/html/dir_544f9dcb748f922e4bb3be2540380bf2.js create mode 100644 docs/html/dir_544f9dcb748f922e4bb3be2540380bf2_dep.dot create mode 100644 docs/html/dir_5dabb14988a75c922e285f444641a133.html create mode 100644 docs/html/dir_5dabb14988a75c922e285f444641a133.js create mode 100644 docs/html/dir_5dabb14988a75c922e285f444641a133_dep.dot create mode 100644 docs/html/dir_83a4347d11f2ba6343d546ab133722d2.html create mode 100644 docs/html/dir_83a4347d11f2ba6343d546ab133722d2.js create mode 100644 docs/html/dir_83a4347d11f2ba6343d546ab133722d2_dep.dot create mode 100644 docs/html/dir_8db5f55022e7670536cbc9a6a1d6f01c.html create mode 100644 docs/html/dir_8db5f55022e7670536cbc9a6a1d6f01c.js create mode 100644 docs/html/dir_8db5f55022e7670536cbc9a6a1d6f01c_dep.dot create mode 100644 docs/html/dir_941490de56ac122cf77df9922cbcc750.html create mode 100644 docs/html/dir_941490de56ac122cf77df9922cbcc750.js create mode 100644 docs/html/dir_941490de56ac122cf77df9922cbcc750_dep.dot create mode 100644 docs/html/dir_e6d96184223881d115efa44ca0dfa844.html create mode 100644 docs/html/dir_e6d96184223881d115efa44ca0dfa844.js create mode 100644 docs/html/dir_e6d96184223881d115efa44ca0dfa844_dep.dot create mode 100644 docs/html/dir_f50aa5156fe016a259583c412dbf440c.html create mode 100644 docs/html/dir_f50aa5156fe016a259583c412dbf440c.js create mode 100644 docs/html/namespace_intelli_helper.html create mode 100644 docs/html/namespace_intelli_helper_a214dc3624ba4562a03dc922e3dd7b617_icgraph.dot create mode 100644 docs/html/namespace_intelli_helper_a44d516b3e619e2a743e9c98dd75cf901_cgraph.dot create mode 100644 docs/html/namespace_intelli_helper_a9fcfe72f00e870be4a8ab9f2e17483c9_cgraph.dot create mode 100644 docs/html/namespace_intelli_helper_a9fcfe72f00e870be4a8ab9f2e17483c9_icgraph.dot create mode 100644 docs/html/namespace_intelli_helper_afdd9fe78cc5d21b59642910220768149_icgraph.dot create mode 100644 docs/html/namespacemembers.html create mode 100644 docs/html/namespacemembers_func.html create mode 100644 docs/html/namespaces.html create mode 100644 docs/html/namespaces_dup.js create mode 100644 docs/html/search/all_10.html create mode 100644 docs/html/search/all_10.js create mode 100644 docs/html/search/all_f.html create mode 100644 docs/html/search/all_f.js create mode 100644 docs/html/search/classes_3.html create mode 100644 docs/html/search/classes_3.js create mode 100644 docs/html/search/functions_d.html create mode 100644 docs/html/search/functions_d.js create mode 100644 docs/html/search/namespaces_0.html create mode 100644 docs/html/search/namespaces_0.js create mode 100644 docs/html/search/variables_7.html create mode 100644 docs/html/search/variables_7.js create mode 100644 docs/html/struct_triangle-members.html create mode 100644 docs/html/struct_triangle.html create mode 100644 docs/html/struct_triangle.js diff --git a/docs/html/_intelli_color_picker_8h.html b/docs/html/_intelli_color_picker_8h.html index 0aad814..e1b1b4e 100644 --- a/docs/html/_intelli_color_picker_8h.html +++ b/docs/html/_intelli_color_picker_8h.html @@ -5,7 +5,7 @@ -IntelliPhoto: src/IntelliHelper/IntelliColorPicker.h File Reference +IntelliPhoto: intelliphoto/src/IntelliHelper/IntelliColorPicker.h File Reference @@ -98,12 +98,12 @@ $(document).ready(function(){initNavTree('_intelli_color_picker_8h.html','');});

    Go to the source code of this file.

    @@ -111,6 +111,7 @@ This graph shows which files directly or indirectly include this file:

    Classes

    class  IntelliColorPicker + The IntelliColorPicker manages the selected colors for one whole project. More...
     
    @@ -118,7 +119,7 @@ Classes - -
    void setSecondColor(QColor Color)
    - - -
    void setFirstColor(QColor Color)
    - - - +
    virtual ~IntelliColorPicker()
    IntelliColorPicker destructor clears up his used memory, if there is some.
    +
    void setSecondColor(QColor Color)
    A function to set the secondary color.
    +
    QColor getSecondColor()
    A function to read the secondary selected color.
    +
    void switchColors()
    A function switching primary and secondary color.
    +
    void setFirstColor(QColor Color)
    A function to set the primary color.
    +
    QColor getFirstColor()
    A function to read the primary selected color.
    +
    The IntelliColorPicker manages the selected colors for one whole project.
    +
    IntelliColorPicker()
    IntelliColorPicker construktor, setting 2 preset colors, be careful, theese color may change in produ...
    Include dependency graph for IntelliColorPicker.cpp:
    -
    +

    Go to the source code of this file.

    @@ -103,7 +103,7 @@ Include dependency graph for IntelliColorPicker.cpp: - -
    void setSecondColor(QColor Color)
    - - +
    virtual ~IntelliColorPicker()
    IntelliColorPicker destructor clears up his used memory, if there is some.
    +
    void setSecondColor(QColor Color)
    A function to set the secondary color.
    +
    QColor getSecondColor()
    A function to read the secondary selected color.
    +
    void switchColors()
    A function switching primary and secondary color.
    -
    void setFirstColor(QColor Color)
    - - +
    void setFirstColor(QColor Color)
    A function to set the primary color.
    +
    QColor getFirstColor()
    A function to read the primary selected color.
    +
    IntelliColorPicker()
    IntelliColorPicker construktor, setting 2 preset colors, be careful, theese color may change in produ...
    -
    static bool isInTriangle(QPoint &A, QPoint &B, QPoint &C, QPoint &P)
    Definition: IntelliHelper.h:15
    -
    static float sign(QPoint &p1, QPoint &p2, QPoint &p3)
    Definition: IntelliHelper.h:11
    - +
    bool isInTriangle(Triangle &tri, QPoint &P)
    A function to check if a given point is in a triangle.
    Definition: IntelliHelper.h:34
    +
    QPoint B
    Definition: IntelliHelper.h:11
    +
    QPoint C
    Definition: IntelliHelper.h:11
    + +
    The Triangle struct holds the 3 vertices of a triangle.
    Definition: IntelliHelper.h:10
    +
    bool isInPolygon(std::vector< Triangle > &triangles, QPoint &point)
    A function to check if a point lies in a polygon by checking its spanning triangles.
    +
    QPoint A
    Definition: IntelliHelper.h:11
    +
    std::vector< Triangle > calculateTriangles(std::vector< QPoint > polyPoints)
    A function to split a polygon in its spanning traingles by using Meisters Theorem of graph theory by ...
    +
    float sign(QPoint &p1, QPoint &p2, QPoint &p3)
    A function to get the 2*area of a traingle, using its determinat.
    Definition: IntelliHelper.h:24
    Include dependency graph for IntelliImage.cpp:
    -
    +

    Go to the source code of this file.

    @@ -105,7 +105,7 @@ Include dependency graph for IntelliImage.cpp: -
    virtual void drawLine(const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth)
    +
    virtual void drawLine(const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth)
    A function that draws A Line between two given Points in a given color.
    -
    virtual ~IntelliImage()=0
    -
    virtual void drawPixel(const QPoint &p1, const QColor &color)
    -
    virtual bool loadImage(const QString &fileName)
    -
    IntelliImage(int weight, int height)
    Definition: IntelliImage.cpp:5
    +
    virtual ~IntelliImage()=0
    An Abstract Destructor.
    +
    virtual void drawPixel(const QPoint &p1, const QColor &color)
    A funtcion used to draw a pixel on the Image with the given Color.
    +
    virtual bool loadImage(const QString &fileName)
    A function that loads and sclaes an image to the fitting dimensions.
    +
    virtual void drawPoint(const QPoint &p1, const QColor &color, const int &penWidth)
    A.
    +
    IntelliImage(int weight, int height)
    The Construcor of the IntelliImage. Given the Image dimensions.
    Definition: IntelliImage.cpp:5
    void resizeImage(QImage *image, const QSize &newSize)
    -
    QImage imageData
    Definition: IntelliImage.h:23
    -
    virtual void drawPlain(const QColor &color)
    +
    virtual QColor getPixelColor(QPoint &point)
    A function that returns the pixelcolor at a certain point.
    +
    QImage imageData
    The underlying image data.
    Definition: IntelliImage.h:32
    +
    virtual void drawPlain(const QColor &color)
    A function that clears the whole image in a given Color.
    Include dependency graph for IntelliImage.h:
    -
    +
    This graph shows which files directly or indirectly include this file:
    -
    +

    Go to the source code of this file.

    @@ -115,6 +115,7 @@ This graph shows which files directly or indirectly include this file:

    Classes

    class  IntelliImage + An abstract class which manages the basic IntelliImage operations. More...
      +

    @@ -122,6 +123,7 @@ Enumerations

    enum  ImageType { ImageType::Raster_Image, ImageType::Shaped_Image }
     The Types, which an Image can be. More...
     

    Enumeration Type Documentation

    @@ -144,12 +146,14 @@ Enumerations
    + +

    The Types, which an Image can be.

    Enumerator
    Raster_Image 
    Shaped_Image 
    -

    Definition at line 11 of file IntelliImage.h.

    +

    Definition at line 14 of file IntelliImage.h.

    @@ -158,7 +162,7 @@ Enumerations -
    ImageType
    Definition: IntelliImage.h:11
    -
    virtual void drawLine(const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth)
    -
    virtual ~IntelliImage()=0
    -
    virtual void drawPixel(const QPoint &p1, const QColor &color)
    -
    virtual bool loadImage(const QString &fileName)
    -
    virtual QImage getDisplayable(const QSize &displaySize, int alpha)=0
    +
    ImageType
    The Types, which an Image can be.
    Definition: IntelliImage.h:14
    +
    virtual void drawLine(const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth)
    A function that draws A Line between two given Points in a given color.
    +
    virtual ~IntelliImage()=0
    An Abstract Destructor.
    +
    virtual void drawPixel(const QPoint &p1, const QColor &color)
    A funtcion used to draw a pixel on the Image with the given Color.
    +
    virtual bool loadImage(const QString &fileName)
    A function that loads and sclaes an image to the fitting dimensions.
    +
    virtual QImage getDisplayable(const QSize &displaySize, int alpha)=0
    A function returning the displayable ImageData in a requested transparence and size.
    -
    virtual std::vector< QPoint > getPolygonData()
    Definition: IntelliImage.h:48
    -
    IntelliImage(int weight, int height)
    Definition: IntelliImage.cpp:5
    - +
    virtual std::vector< QPoint > getPolygonData()
    A function that returns the Polygondata if existent.
    Definition: IntelliImage.h:113
    +
    virtual void drawPoint(const QPoint &p1, const QColor &color, const int &penWidth)
    A.
    +
    IntelliImage(int weight, int height)
    The Construcor of the IntelliImage. Given the Image dimensions.
    Definition: IntelliImage.cpp:5
    +
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    void resizeImage(QImage *image, const QSize &newSize)
    -
    QImage imageData
    Definition: IntelliImage.h:23
    - -
    virtual IntelliImage * getDeepCopy()=0
    -
    virtual void calculateVisiblity()=0
    -
    virtual void drawPlain(const QColor &color)
    -
    virtual void setPolygon(const std::vector< QPoint > &polygonData)=0
    +
    virtual QColor getPixelColor(QPoint &point)
    A function that returns the pixelcolor at a certain point.
    +
    QImage imageData
    The underlying image data.
    Definition: IntelliImage.h:32
    +
    An abstract class which manages the basic IntelliImage operations.
    Definition: IntelliImage.h:24
    +
    virtual IntelliImage * getDeepCopy()=0
    A function that copys all that returns a [allocated] Image.
    +
    virtual void calculateVisiblity()=0
    An abstract function that calculates the visiblity of the Image data if needed.
    +
    virtual void drawPlain(const QColor &color)
    A function that clears the whole image in a given Color.
    +
    virtual void setPolygon(const std::vector< QPoint > &polygonData)=0
    An abstract function that sets the data of the visible Polygon, if needed.
    Include dependency graph for IntelliPhotoGui.cpp:
    -
    +

    Go to the source code of this file.

    @@ -127,7 +127,7 @@ Functions
    -

    Definition at line 111 of file IntelliPhotoGui.cpp.

    +

    Definition at line 109 of file IntelliPhotoGui.cpp.

    @@ -146,7 +146,7 @@ Functions
    -

    Definition at line 107 of file IntelliPhotoGui.cpp.

    +

    Definition at line 105 of file IntelliPhotoGui.cpp.

    @@ -155,7 +155,7 @@ Functions -
    int addLayer(int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
    -
    void slotCreateFloodFillTool()
    -
    bool open(const QString &fileName)
    -
    void setLayerToActive(int index)
    -
    void floodFill(int r, int g, int b, int a)
    -
    bool save(const QString &fileName, const char *fileFormat)
    -
    void createPlainTool()
    +
    int addLayer(int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
    +
    void slotCreateFloodFillTool()
    +
    bool open(const QString &fileName)
    +
    void setLayerToActive(int index)
    +
    void floodFill(int r, int g, int b, int a)
    +
    bool save(const QString &fileName, const char *fileFormat)
    +
    void createPlainTool()
    - -
    void slotCreatePenTool()
    -
    void deleteLayer(int index)
    -
    void createPenTool()
    -
    void createLineTool()
    -
    void colorPickerSetSecondColor()
    -
    void colorPickerSetFirstColor()
    -
    void colorPickerSwitchColor()
    + +
    void slotCreatePenTool()
    +
    void deleteLayer(int index)
    +
    void createPenTool()
    +
    void createLineTool()
    +
    void colorPickerSetSecondColor()
    +
    void colorPickerSetFirstColor()
    +
    void colorPickerSwitchColor()
    -
    void closeEvent(QCloseEvent *event) override
    -
    void moveActiveLayer(int idx)
    +
    void closeEvent(QCloseEvent *event) override
    +
    void moveActiveLayer(int idx)
    -
    void slotActivateLayer(int a)
    -
    void setAlphaOfLayer(int index, int alpha)
    -
    void movePositionActive(int x, int y)
    +
    void slotActivateLayer(int a)
    +
    void setAlphaOfLayer(int index, int alpha)
    +
    void movePositionActive(int x, int y)
    Include dependency graph for IntelliPhotoGui.h:
    -
    +
    This graph shows which files directly or indirectly include this file:
    -
    +

    Go to the source code of this file.

    @@ -122,7 +122,7 @@ Classes - - -
    void closeEvent(QCloseEvent *event) override
    - + +
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    +
    void closeEvent(QCloseEvent *event) override
    +
    The IntelliColorPicker manages the selected colors for one whole project.
    Include dependency graph for IntelliRasterImage.cpp:
    -
    +

    Go to the source code of this file.

    @@ -106,7 +106,7 @@ Include dependency graph for IntelliRasterImage.cpp: -
    virtual ~IntelliRasterImage() override
    +
    virtual ~IntelliRasterImage() override
    An Destructor.
    -
    virtual QImage getDisplayable(const QSize &displaySize, int alpha) override
    -
    QImage imageData
    Definition: IntelliImage.h:23
    - -
    virtual IntelliImage * getDeepCopy() override
    -
    virtual void calculateVisiblity() override
    -
    virtual void setPolygon(const std::vector< QPoint > &polygonData) override
    -
    IntelliRasterImage(int weight, int height)
    - +
    virtual QImage getDisplayable(const QSize &displaySize, int alpha) override
    A function returning the displayable ImageData in a requested transparence and size.
    +
    QImage imageData
    The underlying image data.
    Definition: IntelliImage.h:32
    +
    An abstract class which manages the basic IntelliImage operations.
    Definition: IntelliImage.h:24
    +
    virtual IntelliImage * getDeepCopy() override
    A function that copys all that returns a [allocated] Image.
    +
    virtual void calculateVisiblity() override
    A function that calculates the visibility of the image if a polygon is given. [does nothing in Raster...
    +
    virtual void setPolygon(const std::vector< QPoint > &polygonData) override
    An abstract function that sets the data of the visible Polygon, if needed.
    +
    IntelliRasterImage(int weight, int height)
    The Construcor of the IntelliRasterImage. Given the Image dimensions.
    +
    The IntelliRasterImage manages a Rasterimage.
    Include dependency graph for IntelliRasterImage.h:
    -
    +
    This graph shows which files directly or indirectly include this file:
    -
    +

    Go to the source code of this file.

    @@ -109,6 +109,7 @@ This graph shows which files directly or indirectly include this file:

    Classes

    class  IntelliRasterImage + The IntelliRasterImage manages a Rasterimage. More...
      @@ -116,7 +117,7 @@ Classes -
    virtual ~IntelliRasterImage() override
    - -
    virtual QImage getDisplayable(const QSize &displaySize, int alpha) override
    - -
    virtual IntelliImage * getDeepCopy() override
    -
    virtual void calculateVisiblity() override
    -
    virtual void setPolygon(const std::vector< QPoint > &polygonData) override
    -
    IntelliRasterImage(int weight, int height)
    - +
    virtual ~IntelliRasterImage() override
    An Destructor.
    +
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    +
    virtual QImage getDisplayable(const QSize &displaySize, int alpha) override
    A function returning the displayable ImageData in a requested transparence and size.
    +
    An abstract class which manages the basic IntelliImage operations.
    Definition: IntelliImage.h:24
    +
    virtual IntelliImage * getDeepCopy() override
    A function that copys all that returns a [allocated] Image.
    +
    virtual void calculateVisiblity() override
    A function that calculates the visibility of the image if a polygon is given. [does nothing in Raster...
    +
    virtual void setPolygon(const std::vector< QPoint > &polygonData) override
    An abstract function that sets the data of the visible Polygon, if needed.
    +
    IntelliRasterImage(int weight, int height)
    The Construcor of the IntelliRasterImage. Given the Image dimensions.
    +
    The IntelliRasterImage manages a Rasterimage.
    Include dependency graph for IntelliShapedImage.cpp:
    -
    +

    Go to the source code of this file.

    @@ -107,7 +107,7 @@ Include dependency graph for IntelliShapedImage.cpp: -
    virtual QImage getDisplayable(const QSize &displaySize, int alpha=255) override
    +
    virtual QImage getDisplayable(const QSize &displaySize, int alpha=255) override
    A function returning the displayable ImageData in a requested transparence and size.
    -
    static bool isInTriangle(QPoint &A, QPoint &B, QPoint &C, QPoint &P)
    Definition: IntelliHelper.h:15
    - -
    virtual IntelliImage * getDeepCopy() override
    -
    QImage imageData
    Definition: IntelliImage.h:23
    - -
    std::vector< QPoint > polygonData
    -
    IntelliShapedImage(int weight, int height)
    -
    virtual ~IntelliShapedImage() override
    - -
    virtual void calculateVisiblity() override
    -
    virtual void setPolygon(const std::vector< QPoint > &polygonData) override
    +
    The IntelliShapedImage manages a Shapedimage.
    +
    virtual IntelliImage * getDeepCopy() override
    A function that copys all that returns a [allocated] Image.
    +
    bool isInPolygon(std::vector< Triangle > &triangles, QPoint &point)
    A function to check if a point lies in a polygon by checking its spanning triangles.
    +
    std::vector< Triangle > calculateTriangles(std::vector< QPoint > polyPoints)
    A function to split a polygon in its spanning traingles by using Meisters Theorem of graph theory by ...
    +
    QImage imageData
    The underlying image data.
    Definition: IntelliImage.h:32
    +
    An abstract class which manages the basic IntelliImage operations.
    Definition: IntelliImage.h:24
    +
    std::vector< QPoint > polygonData
    The Vertices of The Polygon. Needs to be a planar Polygon.
    +
    IntelliShapedImage(int weight, int height)
    The Construcor of the IntelliShapedImage. Given the Image dimensions.
    +
    virtual ~IntelliShapedImage() override
    An Destructor.
    +
    The IntelliRasterImage manages a Rasterimage.
    +
    virtual void setPolygon(const std::vector< QPoint > &polygonData) override
    A function that sets the data of the visible Polygon.
    #include "Image/IntelliRasterImage.h"
    +#include <vector>
    +#include "IntelliHelper/IntelliHelper.h"
    Include dependency graph for IntelliShapedImage.h:
    -
    +
    This graph shows which files directly or indirectly include this file:
    -
    +

    Go to the source code of this file.

    @@ -109,6 +111,7 @@ This graph shows which files directly or indirectly include this file:

    Classes

    class  IntelliShapedImage + The IntelliShapedImage manages a Shapedimage. More...
      @@ -116,7 +119,7 @@ Classes -
    virtual QImage getDisplayable(const QSize &displaySize, int alpha=255) override
    - -
    virtual IntelliImage * getDeepCopy() override
    +
    virtual QImage getDisplayable(const QSize &displaySize, int alpha=255) override
    A function returning the displayable ImageData in a requested transparence and size.
    + +
    The IntelliShapedImage manages a Shapedimage.
    +
    virtual IntelliImage * getDeepCopy() override
    A function that copys all that returns a [allocated] Image.
    - -
    virtual std::vector< QPoint > getPolygonData() override
    - -
    std::vector< QPoint > polygonData
    -
    IntelliShapedImage(int weight, int height)
    -
    virtual ~IntelliShapedImage() override
    - -
    virtual void calculateVisiblity() override
    -
    virtual void setPolygon(const std::vector< QPoint > &polygonData) override
    +
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    +
    virtual std::vector< QPoint > getPolygonData() override
    A function that returns the Polygondata if existent.
    +
    An abstract class which manages the basic IntelliImage operations.
    Definition: IntelliImage.h:24
    +
    std::vector< QPoint > polygonData
    The Vertices of The Polygon. Needs to be a planar Polygon.
    +
    IntelliShapedImage(int weight, int height)
    The Construcor of the IntelliShapedImage. Given the Image dimensions.
    +
    virtual ~IntelliShapedImage() override
    An Destructor.
    +
    The IntelliRasterImage manages a Rasterimage.
    +
    virtual void setPolygon(const std::vector< QPoint > &polygonData) override
    A function that sets the data of the visible Polygon.
    Include dependency graph for IntelliTool.cpp:
    -
    +

    Go to the source code of this file.

    @@ -104,7 +104,7 @@ Include dependency graph for IntelliTool.cpp: -
    virtual void onMouseRightPressed(int x, int y)
    Definition: IntelliTool.cpp:14
    -
    virtual void onMouseLeftReleased(int x, int y)
    Definition: IntelliTool.cpp:32
    -
    IntelliColorPicker * colorPicker
    Definition: IntelliTool.h:17
    +
    virtual void onMouseRightPressed(int x, int y)
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    Definition: IntelliTool.cpp:14
    +
    virtual void onMouseLeftReleased(int x, int y)
    A function managing the left click Released of a Mouse. Call this in child classes!
    Definition: IntelliTool.cpp:32
    +
    IntelliColorPicker * colorPicker
    A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors.
    Definition: IntelliTool.h:38
    -
    virtual void onMouseLeftPressed(int x, int y)
    Definition: IntelliTool.cpp:25
    -
    IntelliTool(PaintingArea *Area, IntelliColorPicker *colorPicker)
    Definition: IntelliTool.cpp:4
    -
    PaintingArea * Area
    Definition: IntelliTool.h:16
    - -
    void deleteLayer(int index)
    -
    virtual void onMouseRightReleased(int x, int y)
    Definition: IntelliTool.cpp:21
    -
    LayerObject * Canvas
    Definition: IntelliTool.h:20
    +
    virtual void onMouseLeftPressed(int x, int y)
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    Definition: IntelliTool.cpp:25
    +
    IntelliTool(PaintingArea *Area, IntelliColorPicker *colorPicker)
    A constructor setting the general Painting Area and colorPicker.
    Definition: IntelliTool.cpp:4
    +
    PaintingArea * Area
    A pointer to the general PaintingArea to interact with.
    Definition: IntelliTool.h:33
    + +
    void deleteLayer(int index)
    +
    virtual void onMouseRightReleased(int x, int y)
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    Definition: IntelliTool.cpp:21
    +
    LayerObject * Canvas
    A pointer to the drawing canvas of the tool, work on this.
    Definition: IntelliTool.h:48
    -
    bool drawing
    Definition: IntelliTool.h:21
    +
    bool drawing
    A flag checking if the user is currently drawing or not.
    Definition: IntelliTool.h:53
    - -
    QImage imageData
    Definition: IntelliImage.h:23
    +
    The IntelliColorPicker manages the selected colors for one whole project.
    +
    QImage imageData
    The underlying image data.
    Definition: IntelliImage.h:32
    IntelliImage * image
    Definition: PaintingArea.h:18
    -
    LayerObject * Active
    Definition: IntelliTool.h:19
    -
    virtual void onMouseMoved(int x, int y)
    Definition: IntelliTool.cpp:41
    -
    virtual void calculateVisiblity()=0
    -
    virtual ~IntelliTool()=0
    Definition: IntelliTool.cpp:10
    +
    LayerObject * Active
    A pointer to the underlying active Layer, do not work on this. This is used for data grabbing or prev...
    Definition: IntelliTool.h:43
    +
    virtual void onMouseMoved(int x, int y)
    A function managing the mouse moved event. Call this in child classes!
    Definition: IntelliTool.cpp:41
    +
    virtual void calculateVisiblity()=0
    An abstract function that calculates the visiblity of the Image data if needed.
    +
    virtual void onWheelScrolled(int value)
    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c...
    Definition: IntelliTool.cpp:46
    +
    virtual ~IntelliTool()=0
    An abstract Destructor.
    Definition: IntelliTool.cpp:10
    Include dependency graph for IntelliTool.h:
    -
    +
    This graph shows which files directly or indirectly include this file:
    -
    +

    Go to the source code of this file.

    @@ -110,6 +110,7 @@ This graph shows which files directly or indirectly include this file:

    Classes

    class  IntelliTool + An abstract class that manages the basic events, like mouse clicks or scrolls events. More...
      @@ -117,7 +118,7 @@ Classes -
    virtual void onMouseRightPressed(int x, int y)
    Definition: IntelliTool.cpp:14
    -
    virtual void onMouseLeftReleased(int x, int y)
    Definition: IntelliTool.cpp:32
    -
    IntelliColorPicker * colorPicker
    Definition: IntelliTool.h:17
    -
    virtual void onMouseLeftPressed(int x, int y)
    Definition: IntelliTool.cpp:25
    -
    IntelliTool(PaintingArea *Area, IntelliColorPicker *colorPicker)
    Definition: IntelliTool.cpp:4
    -
    PaintingArea * Area
    Definition: IntelliTool.h:16
    - +
    virtual void onMouseRightPressed(int x, int y)
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    Definition: IntelliTool.cpp:14
    +
    virtual void onMouseLeftReleased(int x, int y)
    A function managing the left click Released of a Mouse. Call this in child classes!
    Definition: IntelliTool.cpp:32
    +
    IntelliColorPicker * colorPicker
    A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors.
    Definition: IntelliTool.h:38
    +
    virtual void onMouseLeftPressed(int x, int y)
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    Definition: IntelliTool.cpp:25
    +
    IntelliTool(PaintingArea *Area, IntelliColorPicker *colorPicker)
    A constructor setting the general Painting Area and colorPicker.
    Definition: IntelliTool.cpp:4
    +
    PaintingArea * Area
    A pointer to the general PaintingArea to interact with.
    Definition: IntelliTool.h:33
    + -
    virtual void onMouseRightReleased(int x, int y)
    Definition: IntelliTool.cpp:21
    +
    virtual void onMouseRightReleased(int x, int y)
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    Definition: IntelliTool.cpp:21
    -
    LayerObject * Canvas
    Definition: IntelliTool.h:20
    -
    bool drawing
    Definition: IntelliTool.h:21
    - - -
    LayerObject * Active
    Definition: IntelliTool.h:19
    -
    virtual void onMouseMoved(int x, int y)
    Definition: IntelliTool.cpp:41
    -
    virtual ~IntelliTool()=0
    Definition: IntelliTool.cpp:10
    +
    LayerObject * Canvas
    A pointer to the drawing canvas of the tool, work on this.
    Definition: IntelliTool.h:48
    +
    bool drawing
    A flag checking if the user is currently drawing or not.
    Definition: IntelliTool.h:53
    +
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    +
    The IntelliColorPicker manages the selected colors for one whole project.
    +
    LayerObject * Active
    A pointer to the underlying active Layer, do not work on this. This is used for data grabbing or prev...
    Definition: IntelliTool.h:43
    +
    virtual void onMouseMoved(int x, int y)
    A function managing the mouse moved event. Call this in child classes!
    Definition: IntelliTool.cpp:41
    +
    virtual void onWheelScrolled(int value)
    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c...
    Definition: IntelliTool.cpp:46
    +
    virtual ~IntelliTool()=0
    An abstract Destructor.
    Definition: IntelliTool.cpp:10
    Include dependency graph for IntelliToolLine.cpp:
    -
    +

    Go to the source code of this file.

    @@ -106,7 +106,7 @@ Include dependency graph for IntelliToolLine.cpp: -
    virtual void onMouseRightPressed(int x, int y)
    Definition: IntelliTool.cpp:14
    -
    virtual void onMouseLeftReleased(int x, int y)
    Definition: IntelliTool.cpp:32
    -
    IntelliColorPicker * colorPicker
    Definition: IntelliTool.h:17
    -
    virtual void drawLine(const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth)
    +
    virtual void onMouseRightPressed(int x, int y)
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    Definition: IntelliTool.cpp:14
    +
    virtual void onMouseLeftReleased(int x, int y)
    A function managing the left click Released of a Mouse. Call this in child classes!
    Definition: IntelliTool.cpp:32
    +
    IntelliColorPicker * colorPicker
    A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors.
    Definition: IntelliTool.h:38
    +
    virtual void drawLine(const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth)
    A function that draws A Line between two given Points in a given color.
    -
    virtual void onMouseLeftPressed(int x, int y)
    Definition: IntelliTool.cpp:25
    -
    virtual void onMouseMoved(int x, int y) override
    -
    virtual void onMouseRightReleased(int x, int y) override
    +
    virtual void onMouseLeftPressed(int x, int y)
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    Definition: IntelliTool.cpp:25
    +
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event. Call this in child classes!
    +
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c...
    +
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    IntelliToolLine(PaintingArea *Area, IntelliColorPicker *colorPicker)
    - +
    virtual ~IntelliToolLine() override
    -
    virtual void onMouseLeftReleased(int x, int y) override
    -
    virtual void onMouseRightPressed(int x, int y) override
    -
    virtual void onMouseRightReleased(int x, int y)
    Definition: IntelliTool.cpp:21
    -
    LayerObject * Canvas
    Definition: IntelliTool.h:20
    -
    bool drawing
    Definition: IntelliTool.h:21
    - +
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click Released of a Mouse. Call this in child classes!
    +
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    +
    virtual void onMouseRightReleased(int x, int y)
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    Definition: IntelliTool.cpp:21
    +
    LayerObject * Canvas
    A pointer to the drawing canvas of the tool, work on this.
    Definition: IntelliTool.h:48
    +
    bool drawing
    A flag checking if the user is currently drawing or not.
    Definition: IntelliTool.h:53
    +
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    - - +
    QColor getFirstColor()
    A function to read the primary selected color.
    +
    The IntelliColorPicker manages the selected colors for one whole project.
    IntelliImage * image
    Definition: PaintingArea.h:18
    -
    virtual void onMouseLeftPressed(int x, int y) override
    -
    virtual void onMouseMoved(int x, int y)
    Definition: IntelliTool.cpp:41
    -
    virtual void calculateVisiblity()=0
    -
    virtual void drawPlain(const QColor &color)
    +
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    +
    virtual void onMouseMoved(int x, int y)
    A function managing the mouse moved event. Call this in child classes!
    Definition: IntelliTool.cpp:41
    +
    virtual void calculateVisiblity()=0
    An abstract function that calculates the visiblity of the Image data if needed.
    +
    virtual void onWheelScrolled(int value)
    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c...
    Definition: IntelliTool.cpp:46
    +
    virtual void drawPlain(const QColor &color)
    A function that clears the whole image in a given Color.
    #include "IntelliTool.h"
    -#include "QColor"
    #include "QPoint"
    Include dependency graph for IntelliToolLine.h:
    -
    +
    This graph shows which files directly or indirectly include this file:
    -
    +

    Go to the source code of this file.

    @@ -146,7 +145,7 @@ Enumerations DOTTED_LINE  -

    Definition at line 8 of file IntelliToolLine.h.

    +

    Definition at line 7 of file IntelliToolLine.h.

    @@ -155,7 +154,7 @@ Enumerations -
    IntelliColorPicker * colorPicker
    Definition: IntelliTool.h:17
    +
    IntelliColorPicker * colorPicker
    A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors.
    Definition: IntelliTool.h:38
    -
    LineStyle
    -
    virtual void onMouseMoved(int x, int y) override
    -
    virtual void onMouseRightReleased(int x, int y) override
    -
    PaintingArea * Area
    Definition: IntelliTool.h:16
    +
    LineStyle
    +
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event. Call this in child classes!
    +
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c...
    +
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    +
    PaintingArea * Area
    A pointer to the general PaintingArea to interact with.
    Definition: IntelliTool.h:33
    IntelliToolLine(PaintingArea *Area, IntelliColorPicker *colorPicker)
    - +
    virtual ~IntelliToolLine() override
    -
    virtual void onMouseLeftReleased(int x, int y) override
    -
    virtual void onMouseRightPressed(int x, int y) override
    - - -
    virtual void onMouseLeftPressed(int x, int y) override
    - +
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click Released of a Mouse. Call this in child classes!
    +
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    +
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    +
    The IntelliColorPicker manages the selected colors for one whole project.
    +
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    +
    Include dependency graph for IntelliToolPen.cpp:
    -
    +

    Go to the source code of this file.

    @@ -107,7 +107,7 @@ Include dependency graph for IntelliToolPen.cpp: -
    virtual void onMouseRightPressed(int x, int y)
    Definition: IntelliTool.cpp:14
    -
    virtual void onMouseLeftReleased(int x, int y)
    Definition: IntelliTool.cpp:32
    -
    IntelliColorPicker * colorPicker
    Definition: IntelliTool.h:17
    -
    virtual void drawLine(const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth)
    -
    virtual void onMouseLeftPressed(int x, int y)
    Definition: IntelliTool.cpp:25
    +
    virtual void onMouseRightPressed(int x, int y)
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    Definition: IntelliTool.cpp:14
    +
    virtual void onMouseLeftReleased(int x, int y)
    A function managing the left click Released of a Mouse. Call this in child classes!
    Definition: IntelliTool.cpp:32
    +
    IntelliColorPicker * colorPicker
    A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors.
    Definition: IntelliTool.h:38
    +
    virtual void drawLine(const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth)
    A function that draws A Line between two given Points in a given color.
    +
    virtual void onMouseLeftPressed(int x, int y)
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    Definition: IntelliTool.cpp:25
    virtual ~IntelliToolPen() override
    -
    virtual void drawPixel(const QPoint &p1, const QColor &color)
    -
    virtual void onMouseMoved(int x, int y) override
    -
    virtual void onMouseRightPressed(int x, int y) override
    -
    virtual void onMouseRightReleased(int x, int y) override
    - -
    virtual void onMouseRightReleased(int x, int y)
    Definition: IntelliTool.cpp:21
    -
    LayerObject * Canvas
    Definition: IntelliTool.h:20
    -
    bool drawing
    Definition: IntelliTool.h:21
    - -
    virtual void onMouseLeftReleased(int x, int y) override
    +
    virtual void drawPixel(const QPoint &p1, const QColor &color)
    A funtcion used to draw a pixel on the Image with the given Color.
    +
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event. Call this in child classes!
    +
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    +
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    + +
    virtual void onMouseRightReleased(int x, int y)
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    Definition: IntelliTool.cpp:21
    +
    LayerObject * Canvas
    A pointer to the drawing canvas of the tool, work on this.
    Definition: IntelliTool.h:48
    +
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c...
    +
    bool drawing
    A flag checking if the user is currently drawing or not.
    Definition: IntelliTool.h:53
    +
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    +
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click Released of a Mouse. Call this in child classes!
    - - +
    QColor getFirstColor()
    A function to read the primary selected color.
    +
    The IntelliColorPicker manages the selected colors for one whole project.
    IntelliImage * image
    Definition: PaintingArea.h:18
    -
    virtual void onMouseMoved(int x, int y)
    Definition: IntelliTool.cpp:41
    -
    virtual void onMouseLeftPressed(int x, int y) override
    -
    virtual void calculateVisiblity()=0
    +
    virtual void onMouseMoved(int x, int y)
    A function managing the mouse moved event. Call this in child classes!
    Definition: IntelliTool.cpp:41
    +
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    +
    virtual void calculateVisiblity()=0
    An abstract function that calculates the visiblity of the Image data if needed.
    +
    virtual void onWheelScrolled(int value)
    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c...
    Definition: IntelliTool.cpp:46
    IntelliToolPen(PaintingArea *Area, IntelliColorPicker *colorPicker)
    Include dependency graph for IntelliToolPen.h:
    -
    +
    This graph shows which files directly or indirectly include this file:
    -
    +

    Go to the source code of this file.

    @@ -118,7 +118,7 @@ Classes -
    IntelliColorPicker * colorPicker
    Definition: IntelliTool.h:17
    +
    IntelliColorPicker * colorPicker
    A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors.
    Definition: IntelliTool.h:38
    virtual ~IntelliToolPen() override
    -
    PaintingArea * Area
    Definition: IntelliTool.h:16
    -
    virtual void onMouseMoved(int x, int y) override
    -
    virtual void onMouseRightPressed(int x, int y) override
    -
    virtual void onMouseRightReleased(int x, int y) override
    - +
    PaintingArea * Area
    A pointer to the general PaintingArea to interact with.
    Definition: IntelliTool.h:33
    +
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event. Call this in child classes!
    +
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    +
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    + - -
    virtual void onMouseLeftReleased(int x, int y) override
    - -
    virtual void onMouseLeftPressed(int x, int y) override
    +
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c...
    +
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    +
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click Released of a Mouse. Call this in child classes!
    +
    The IntelliColorPicker manages the selected colors for one whole project.
    +
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    IntelliToolPen(PaintingArea *Area, IntelliColorPicker *colorPicker)
    Include dependency graph for IntelliToolPlain.cpp:
    -
    +

    Go to the source code of this file.

    @@ -105,7 +105,7 @@ Include dependency graph for IntelliToolPlain.cpp: -
    virtual void onMouseRightPressed(int x, int y)
    Definition: IntelliTool.cpp:14
    -
    virtual void onMouseLeftReleased(int x, int y)
    Definition: IntelliTool.cpp:32
    -
    IntelliColorPicker * colorPicker
    Definition: IntelliTool.h:17
    -
    virtual void onMouseLeftPressed(int x, int y)
    Definition: IntelliTool.cpp:25
    -
    void onMouseLeftReleased(int x, int y) override
    -
    void onMouseRightReleased(int x, int y) override
    - +
    virtual void onMouseRightPressed(int x, int y)
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    Definition: IntelliTool.cpp:14
    +
    virtual void onMouseLeftReleased(int x, int y)
    A function managing the left click Released of a Mouse. Call this in child classes!
    Definition: IntelliTool.cpp:32
    +
    IntelliColorPicker * colorPicker
    A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors.
    Definition: IntelliTool.h:38
    +
    virtual void onMouseLeftPressed(int x, int y)
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    Definition: IntelliTool.cpp:25
    +
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click Released of a Mouse. Call this in child classes!
    +
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c...
    +
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    +
    IntelliToolPlainTool(PaintingArea *Area, IntelliColorPicker *colorPicker)
    -
    virtual void onMouseRightReleased(int x, int y)
    Definition: IntelliTool.cpp:21
    -
    void onMouseLeftPressed(int x, int y) override
    -
    LayerObject * Canvas
    Definition: IntelliTool.h:20
    - +
    virtual void onMouseRightReleased(int x, int y)
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    Definition: IntelliTool.cpp:21
    +
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    +
    LayerObject * Canvas
    A pointer to the drawing canvas of the tool, work on this.
    Definition: IntelliTool.h:48
    +
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    - - -
    void onMouseRightPressed(int x, int y) override
    +
    QColor getFirstColor()
    A function to read the primary selected color.
    +
    The IntelliColorPicker manages the selected colors for one whole project.
    +
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    IntelliImage * image
    Definition: PaintingArea.h:18
    -
    void onMouseMoved(int x, int y) override
    -
    virtual void onMouseMoved(int x, int y)
    Definition: IntelliTool.cpp:41
    -
    virtual void calculateVisiblity()=0
    -
    virtual void drawPlain(const QColor &color)
    +
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event. Call this in child classes!
    +
    virtual void onMouseMoved(int x, int y)
    A function managing the mouse moved event. Call this in child classes!
    Definition: IntelliTool.cpp:41
    +
    virtual void calculateVisiblity()=0
    An abstract function that calculates the visiblity of the Image data if needed.
    +
    virtual void onWheelScrolled(int value)
    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c...
    Definition: IntelliTool.cpp:46
    +
    virtual void drawPlain(const QColor &color)
    A function that clears the whole image in a given Color.
    Include dependency graph for IntelliToolPlain.h:
    -
    +
    This graph shows which files directly or indirectly include this file:
    -
    +

    Go to the source code of this file.

    @@ -117,7 +117,7 @@ Classes -
    IntelliColorPicker * colorPicker
    Definition: IntelliTool.h:17
    +
    IntelliColorPicker * colorPicker
    A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors.
    Definition: IntelliTool.h:38
    -
    void onMouseLeftReleased(int x, int y) override
    -
    PaintingArea * Area
    Definition: IntelliTool.h:16
    +
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click Released of a Mouse. Call this in child classes!
    +
    PaintingArea * Area
    A pointer to the general PaintingArea to interact with.
    Definition: IntelliTool.h:33
    -
    void onMouseRightReleased(int x, int y) override
    - +
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c...
    +
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    +
    IntelliToolPlainTool(PaintingArea *Area, IntelliColorPicker *colorPicker)
    -
    void onMouseLeftPressed(int x, int y) override
    - - -
    void onMouseRightPressed(int x, int y) override
    -
    void onMouseMoved(int x, int y) override
    +
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    +
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    +
    The IntelliColorPicker manages the selected colors for one whole project.
    +
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    +
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event. Call this in child classes!
    Include dependency graph for PaintingArea.cpp:
    -
    +

    Go to the source code of this file.

    @@ -113,7 +116,7 @@ Include dependency graph for PaintingArea.cpp: -
    virtual void onMouseRightPressed(int x, int y)
    Definition: IntelliTool.cpp:14
    -
    virtual void onMouseLeftReleased(int x, int y)
    Definition: IntelliTool.cpp:32
    -
    ImageType
    Definition: IntelliImage.h:11
    -
    int addLayer(int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
    -
    void mouseReleaseEvent(QMouseEvent *event) override
    -
    virtual void onMouseLeftPressed(int x, int y)
    Definition: IntelliTool.cpp:25
    +
    virtual void onMouseRightPressed(int x, int y)
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    Definition: IntelliTool.cpp:14
    +
    virtual void onMouseLeftReleased(int x, int y)
    A function managing the left click Released of a Mouse. Call this in child classes!
    Definition: IntelliTool.cpp:32
    +
    ImageType
    The Types, which an Image can be.
    Definition: IntelliImage.h:14
    +
    int addLayer(int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
    +
    void mouseReleaseEvent(QMouseEvent *event) override
    +
    virtual void onMouseLeftPressed(int x, int y)
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    Definition: IntelliTool.cpp:25
    -
    bool open(const QString &fileName)
    +
    bool open(const QString &fileName)
    -
    virtual bool loadImage(const QString &fileName)
    -
    void setLayerToActive(int index)
    -
    void floodFill(int r, int g, int b, int a)
    +
    virtual bool loadImage(const QString &fileName)
    A function that loads and sclaes an image to the fitting dimensions.
    +
    void setLayerToActive(int index)
    +
    void floodFill(int r, int g, int b, int a)
    -
    void setSecondColor(QColor Color)
    - - -
    bool save(const QString &fileName, const char *fileFormat)
    - -
    virtual QImage getDisplayable(const QSize &displaySize, int alpha)=0
    -
    void createPlainTool()
    +
    void setSecondColor(QColor Color)
    A function to set the secondary color.
    +
    The IntelliShapedImage manages a Shapedimage.
    +
    QColor getSecondColor()
    A function to read the secondary selected color.
    +
    bool save(const QString &fileName, const char *fileFormat)
    +
    void switchColors()
    A function switching primary and secondary color.
    + +
    virtual QImage getDisplayable(const QSize &displaySize, int alpha)=0
    A function returning the displayable ImageData in a requested transparence and size.
    +
    void createPlainTool()
    +
    void wheelEvent(QWheelEvent *event) override
    -
    void deleteLayer(int index)
    -
    void createPenTool()
    +
    void deleteLayer(int index)
    +
    void createPenTool()
    -
    void mousePressEvent(QMouseEvent *event) override
    +
    void mousePressEvent(QMouseEvent *event) override
    -
    void createLineTool()
    +
    void createLineTool()
    -
    void colorPickerSetSecondColor()
    -
    virtual void onMouseRightReleased(int x, int y)
    Definition: IntelliTool.cpp:21
    -
    void colorPickerSetFirstColor()
    -
    void colorPickerSwitchColor()
    +
    void colorPickerSetSecondColor()
    +
    virtual void onMouseRightReleased(int x, int y)
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    Definition: IntelliTool.cpp:21
    +
    void colorPickerSetFirstColor()
    +
    void colorPickerSwitchColor()
    -
    void mouseMoveEvent(QMouseEvent *event) override
    -
    void setFirstColor(QColor Color)
    -
    void slotDeleteActiveLayer()
    + +
    ~PaintingArea() override
    +
    void mouseMoveEvent(QMouseEvent *event) override
    +
    void setFirstColor(QColor Color)
    A function to set the primary color.
    +
    void slotDeleteActiveLayer()
    -
    void moveActiveLayer(int idx)
    - -
    PaintingArea(int maxWidth=600, int maxHeight=600, QWidget *parent=nullptr)
    +
    void moveActiveLayer(int idx)
    +
    PaintingArea(int maxWidth=600, int maxHeight=600, QWidget *parent=nullptr)
    - +
    QColor getFirstColor()
    A function to read the primary selected color.
    -
    void slotActivateLayer(int a)
    -
    void paintEvent(QPaintEvent *event) override
    -
    void setAlphaOfLayer(int index, int alpha)
    +
    void slotActivateLayer(int a)
    +
    void paintEvent(QPaintEvent *event) override
    +
    void setAlphaOfLayer(int index, int alpha)
    IntelliImage * image
    Definition: PaintingArea.h:18
    -
    void resizeEvent(QResizeEvent *event) override
    +
    void resizeEvent(QResizeEvent *event) override
    + -
    void movePositionActive(int x, int y)
    - -
    virtual void onMouseMoved(int x, int y)
    Definition: IntelliTool.cpp:41
    +
    void movePositionActive(int x, int y)
    +
    An abstract class which manages the basic IntelliImage operations.
    Definition: IntelliImage.h:24
    +
    virtual void onMouseMoved(int x, int y)
    A function managing the mouse moved event. Call this in child classes!
    Definition: IntelliTool.cpp:41
    -
    virtual void calculateVisiblity()=0
    - -
    virtual void drawPlain(const QColor &color)
    - +
    virtual void calculateVisiblity()=0
    An abstract function that calculates the visiblity of the Image data if needed.
    +
    virtual void onWheelScrolled(int value)
    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c...
    Definition: IntelliTool.cpp:46
    +
    The IntelliRasterImage manages a Rasterimage.
    + +
    virtual void drawPlain(const QColor &color)
    A function that clears the whole image in a given Color.
    +
    Include dependency graph for PaintingArea.h:
    -
    +
    This graph shows which files directly or indirectly include this file:
    -
    +

    Go to the source code of this file.

    @@ -127,7 +127,7 @@ Classes -
    ImageType
    Definition: IntelliImage.h:11
    -
    int addLayer(int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
    -
    void mouseReleaseEvent(QMouseEvent *event) override
    +
    ImageType
    The Types, which an Image can be.
    Definition: IntelliImage.h:14
    +
    int addLayer(int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
    +
    void mouseReleaseEvent(QMouseEvent *event) override
    -
    bool open(const QString &fileName)
    +
    bool open(const QString &fileName)
    -
    void setLayerToActive(int index)
    -
    void floodFill(int r, int g, int b, int a)
    -
    bool save(const QString &fileName, const char *fileFormat)
    -
    void createPlainTool()
    - +
    void setLayerToActive(int index)
    +
    void floodFill(int r, int g, int b, int a)
    +
    bool save(const QString &fileName, const char *fileFormat)
    +
    void createPlainTool()
    +
    void wheelEvent(QWheelEvent *event) override
    + -
    void deleteLayer(int index)
    -
    void createPenTool()
    -
    void mousePressEvent(QMouseEvent *event) override
    +
    void deleteLayer(int index)
    +
    void createPenTool()
    +
    void mousePressEvent(QMouseEvent *event) override
    -
    void createLineTool()
    -
    void colorPickerSetSecondColor()
    -
    void colorPickerSetFirstColor()
    -
    void colorPickerSwitchColor()
    +
    void createLineTool()
    +
    void colorPickerSetSecondColor()
    +
    void colorPickerSetFirstColor()
    +
    void colorPickerSwitchColor()
    -
    void mouseMoveEvent(QMouseEvent *event) override
    - -
    void slotDeleteActiveLayer()
    +
    ~PaintingArea() override
    +
    void mouseMoveEvent(QMouseEvent *event) override
    +
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    +
    void slotDeleteActiveLayer()
    int addLayerAt(int idx, int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
    -
    void moveActiveLayer(int idx)
    - -
    PaintingArea(int maxWidth=600, int maxHeight=600, QWidget *parent=nullptr)
    +
    void moveActiveLayer(int idx)
    +
    PaintingArea(int maxWidth=600, int maxHeight=600, QWidget *parent=nullptr)
    -
    void slotActivateLayer(int a)
    - -
    void paintEvent(QPaintEvent *event) override
    -
    void setAlphaOfLayer(int index, int alpha)
    +
    void slotActivateLayer(int a)
    +
    The IntelliColorPicker manages the selected colors for one whole project.
    +
    void paintEvent(QPaintEvent *event) override
    +
    void setAlphaOfLayer(int index, int alpha)
    IntelliImage * image
    Definition: PaintingArea.h:18
    -
    void resizeEvent(QResizeEvent *event) override
    -
    void movePositionActive(int x, int y)
    - +
    void resizeEvent(QResizeEvent *event) override
    +
    void movePositionActive(int x, int y)
    +
    An abstract class which manages the basic IntelliImage operations.
    Definition: IntelliImage.h:24
    Include dependency graph for IntelliColorPicker.cpp:
    -
    +

    Go to the source code of this file.

    @@ -104,7 +104,7 @@ Include dependency graph for IntelliColorPicker.cpp: - - - +
    virtual ~IntelliColorPicker()
    IntelliColorPicker destructor clears up his used memory, if there is some.
    +
    QColor getSecondColor()
    A function to read the secondary selected color.
    + - - - +
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    +
    QColor getFirstColor()
    A function to read the primary selected color.
    +
    IntelliColorPicker()
    IntelliColorPicker construktor, setting 2 preset colors, be careful, theese color may change in produ...
    +

    The IntelliColorPicker manages the selected colors for one whole project. + More...

    +

    #include <IntelliColorPicker.h>

    + + + + + + +

    Public Member Functions

     IntelliColorPicker ()
     IntelliColorPicker construktor, setting 2 preset colors, be careful, theese color may change in production. More...
     
    virtual ~IntelliColorPicker ()
     IntelliColorPicker destructor clears up his used memory, if there is some. More...
     
    void switchColors ()
     A function switching primary and secondary color. More...
     
    QColor getFirstColor ()
     A function to read the primary selected color. More...
     
    QColor getSecondColor ()
     A function to read the secondary selected color. More...
     
    void setFirstColor (QColor Color)
     A function to set the primary color. More...
     
    void setSecondColor (QColor Color)
     A function to set the secondary color. More...
     

    Detailed Description

    -
    -

    Definition at line 8 of file IntelliColorPicker.h.

    +

    The IntelliColorPicker manages the selected colors for one whole project.

    + +

    Definition at line 11 of file IntelliColorPicker.h.

    Constructor & Destructor Documentation

    ◆ IntelliColorPicker()

    @@ -132,6 +143,8 @@ Public Member Functions
    +

    IntelliColorPicker construktor, setting 2 preset colors, be careful, theese color may change in production.

    +

    Definition at line 3 of file IntelliColorPicker.cpp.

    @@ -159,6 +172,8 @@ Public Member Functions
    +

    IntelliColorPicker destructor clears up his used memory, if there is some.

    +

    Definition at line 8 of file IntelliColorPicker.cpp.

    @@ -179,6 +194,9 @@ Public Member Functions
    +

    A function to read the primary selected color.

    +
    Returns
    Returns the primary color.
    +

    Definition at line 16 of file IntelliColorPicker.cpp.

    Here is the caller graph for this function:
    @@ -203,6 +221,9 @@ Here is the caller graph for this function:
    +

    A function to read the secondary selected color.

    +
    Returns
    Returns the secondary color.
    +

    Definition at line 20 of file IntelliColorPicker.cpp.

    Here is the caller graph for this function:
    @@ -228,6 +249,14 @@ Here is the caller graph for this function:
    +

    A function to set the primary color.

    +
    Parameters
    + + +
    Color- The color to be set as primary.
    +
    +
    +

    Definition at line 24 of file IntelliColorPicker.cpp.

    Here is the caller graph for this function:
    @@ -253,6 +282,14 @@ Here is the caller graph for this function:
    +

    A function to set the secondary color.

    +
    Parameters
    + + +
    Color- The color to be set as secondary.
    +
    +
    +

    Definition at line 28 of file IntelliColorPicker.cpp.

    Here is the caller graph for this function:
    @@ -277,6 +314,8 @@ Here is the caller graph for this function:
    +

    A function switching primary and secondary color.

    +

    Definition at line 12 of file IntelliColorPicker.cpp.

    Here is the caller graph for this function:
    @@ -287,8 +326,8 @@ Here is the caller graph for this function:

    The documentation for this class was generated from the following files: diff --git a/docs/html/class_intelli_color_picker_a437a6f20bf2fc0a4cbaf4c030c2a26d9_icgraph.dot b/docs/html/class_intelli_color_picker_a437a6f20bf2fc0a4cbaf4c030c2a26d9_icgraph.dot index d7bd4cd..6b738d0 100644 --- a/docs/html/class_intelli_color_picker_a437a6f20bf2fc0a4cbaf4c030c2a26d9_icgraph.dot +++ b/docs/html/class_intelli_color_picker_a437a6f20bf2fc0a4cbaf4c030c2a26d9_icgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliColorPicker::switchColors" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="RL"; - Node1 [label="IntelliColorPicker\l::switchColors",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliColorPicker\l::switchColors",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function switching primary and secondary color."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="PaintingArea::colorPicker\lSwitchColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a66115307ff4a99cd7ca16423c5c8ecfb",tooltip=" "]; } diff --git a/docs/html/class_intelli_color_picker_a55568fbf5dc783f06284b7031ffe9415_icgraph.dot b/docs/html/class_intelli_color_picker_a55568fbf5dc783f06284b7031ffe9415_icgraph.dot index 432e4bd..b8eaa57 100644 --- a/docs/html/class_intelli_color_picker_a55568fbf5dc783f06284b7031ffe9415_icgraph.dot +++ b/docs/html/class_intelli_color_picker_a55568fbf5dc783f06284b7031ffe9415_icgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliColorPicker::getSecondColor" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="RL"; - Node1 [label="IntelliColorPicker\l::getSecondColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliColorPicker\l::getSecondColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function to read the secondary selected color."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="PaintingArea::colorPicker\lSetSecondColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#ae261acaaa346610dfed489dbac17e789",tooltip=" "]; } diff --git a/docs/html/class_intelli_color_picker_a7e2ddbbbfbed383f06b24e5bf6b27ae8_icgraph.dot b/docs/html/class_intelli_color_picker_a7e2ddbbbfbed383f06b24e5bf6b27ae8_icgraph.dot index af597e5..92e64b9 100644 --- a/docs/html/class_intelli_color_picker_a7e2ddbbbfbed383f06b24e5bf6b27ae8_icgraph.dot +++ b/docs/html/class_intelli_color_picker_a7e2ddbbbfbed383f06b24e5bf6b27ae8_icgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliColorPicker::setFirstColor" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="RL"; - Node1 [label="IntelliColorPicker\l::setFirstColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliColorPicker\l::setFirstColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function to set the primary color."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="PaintingArea::colorPicker\lSetFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a4735d4cf1dc58a9096d904e74c39c4df",tooltip=" "]; } diff --git a/docs/html/class_intelli_color_picker_a86bf4a940e4a0e465e30cbdf28748931_icgraph.dot b/docs/html/class_intelli_color_picker_a86bf4a940e4a0e465e30cbdf28748931_icgraph.dot index 11c4ff1..0f85c43 100644 --- a/docs/html/class_intelli_color_picker_a86bf4a940e4a0e465e30cbdf28748931_icgraph.dot +++ b/docs/html/class_intelli_color_picker_a86bf4a940e4a0e465e30cbdf28748931_icgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliColorPicker::setSecondColor" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="RL"; - Node1 [label="IntelliColorPicker\l::setSecondColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliColorPicker\l::setSecondColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function to set the secondary color."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="PaintingArea::colorPicker\lSetSecondColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#ae261acaaa346610dfed489dbac17e789",tooltip=" "]; } diff --git a/docs/html/class_intelli_color_picker_aae2eb27b928fe9388b9398b0556303b7_icgraph.dot b/docs/html/class_intelli_color_picker_aae2eb27b928fe9388b9398b0556303b7_icgraph.dot index e617ccf..23bc868 100644 --- a/docs/html/class_intelli_color_picker_aae2eb27b928fe9388b9398b0556303b7_icgraph.dot +++ b/docs/html/class_intelli_color_picker_aae2eb27b928fe9388b9398b0556303b7_icgraph.dot @@ -4,17 +4,19 @@ digraph "IntelliColorPicker::getFirstColor" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="RL"; - Node1 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function to read the primary selected color."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="PaintingArea::colorPicker\lSetFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a4735d4cf1dc58a9096d904e74c39c4df",tooltip=" "]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9",tooltip=" "]; + Node3 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205",tooltip=" "]; + Node4 [label="IntelliToolFloodFill\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliToolLine::onMouse\lLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846",tooltip=" "]; + Node5 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node6 [label="IntelliToolPen::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2",tooltip=" "]; + Node6 [label="IntelliToolLine::onMouse\lLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node7 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip=" "]; + Node7 [label="IntelliToolPen::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip="A function managing the mouse moved event. Call this in child classes!"]; } diff --git a/docs/html/class_intelli_image-members.html b/docs/html/class_intelli_image-members.html index 727a7c4..c3adfde 100644 --- a/docs/html/class_intelli_image-members.html +++ b/docs/html/class_intelli_image-members.html @@ -97,9 +97,11 @@ $(document).ready(function(){initNavTree('class_intelli_image.html','');}); drawLine(const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth)IntelliImagevirtual drawPixel(const QPoint &p1, const QColor &color)IntelliImagevirtual drawPlain(const QColor &color)IntelliImagevirtual - getDeepCopy()=0IntelliImagepure virtual - getDisplayable(const QSize &displaySize, int alpha)=0IntelliImagepure virtual - getDisplayable(int alpha=255)=0IntelliImagepure virtual + drawPoint(const QPoint &p1, const QColor &color, const int &penWidth)IntelliImagevirtual + getDeepCopy()=0IntelliImagepure virtual + getDisplayable(const QSize &displaySize, int alpha)=0IntelliImagepure virtual + getDisplayable(int alpha=255)=0IntelliImagepure virtual + getPixelColor(QPoint &point)IntelliImagevirtual getPolygonData()IntelliImageinlinevirtual imageDataIntelliImageprotected IntelliImage(int weight, int height)IntelliImage diff --git a/docs/html/class_intelli_image.html b/docs/html/class_intelli_image.html index 80ca125..c7a05f1 100644 --- a/docs/html/class_intelli_image.html +++ b/docs/html/class_intelli_image.html @@ -96,6 +96,9 @@ $(document).ready(function(){initNavTree('class_intelli_image.html','');});
    +

    An abstract class which manages the basic IntelliImage operations. + More...

    +

    #include <IntelliImage.h>

    Inheritance diagram for IntelliImage:
    @@ -106,29 +109,47 @@ Inheritance diagram for IntelliImage:

    Public Member Functions

     IntelliImage (int weight, int height) + The Construcor of the IntelliImage. Given the Image dimensions. More...
      virtual ~IntelliImage ()=0 + An Abstract Destructor. More...
      virtual void drawPixel (const QPoint &p1, const QColor &color) + A funtcion used to draw a pixel on the Image with the given Color. More...
      virtual void drawLine (const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth) + A function that draws A Line between two given Points in a given color. More...
      +virtual void drawPoint (const QPoint &p1, const QColor &color, const int &penWidth) + A. More...
    +  virtual void drawPlain (const QColor &color) + A function that clears the whole image in a given Color. More...
      virtual QImage getDisplayable (const QSize &displaySize, int alpha)=0 + A function returning the displayable ImageData in a requested transparence and size. More...
      virtual QImage getDisplayable (int alpha=255)=0 + A function returning the displayable ImageData in a requested transparence and it's standart size. More...
      virtual IntelliImagegetDeepCopy ()=0 + A function that copys all that returns a [allocated] Image. More...
      virtual void calculateVisiblity ()=0 + An abstract function that calculates the visiblity of the Image data if needed. More...
      virtual void setPolygon (const std::vector< QPoint > &polygonData)=0 + An abstract function that sets the data of the visible Polygon, if needed. More...
      virtual std::vector< QPoint > getPolygonData () + A function that returns the Polygondata if existent. More...
      virtual bool loadImage (const QString &fileName) + A function that loads and sclaes an image to the fitting dimensions. More...
      +virtual QColor getPixelColor (QPoint &point) + A function that returns the pixelcolor at a certain point. More...
    +  @@ -138,11 +159,13 @@ Protected Member Functions +

    Protected Member Functions

    Protected Attributes

    QImage imageData
     The underlying image data. More...
     

    Detailed Description

    -
    -

    Definition at line 18 of file IntelliImage.h.

    +

    An abstract class which manages the basic IntelliImage operations.

    + +

    Definition at line 24 of file IntelliImage.h.

    Constructor & Destructor Documentation

    ◆ IntelliImage()

    @@ -170,6 +193,15 @@ Protected Attributes
    +

    The Construcor of the IntelliImage. Given the Image dimensions.

    +
    Parameters
    + + + +
    weight- The weight of the Image.
    height- The height of the Image.
    +
    +
    +

    Definition at line 5 of file IntelliImage.cpp.

    @@ -197,6 +229,8 @@ Protected Attributes
    +

    An Abstract Destructor.

    +

    Definition at line 10 of file IntelliImage.cpp.

    @@ -225,7 +259,9 @@ Protected Attributes
    -

    Implemented in IntelliShapedImage, and IntelliRasterImage.

    +

    An abstract function that calculates the visiblity of the Image data if needed.

    + +

    Implemented in IntelliRasterImage.

    Here is the caller graph for this function:
    @@ -280,7 +316,18 @@ Here is the caller graph for this function:
    -

    Definition at line 55 of file IntelliImage.cpp.

    +

    A function that draws A Line between two given Points in a given color.

    +
    Parameters
    + + + + + +
    p1- The coordinates of the first Point.
    p2- The coordinates of the second Point.
    color- The color of the line.
    penWidth- The width of the line.
    +
    +
    + +

    Definition at line 65 of file IntelliImage.cpp.

    Here is the caller graph for this function:
    @@ -323,6 +370,15 @@ Here is the caller graph for this function:
    +

    A funtcion used to draw a pixel on the Image with the given Color.

    +
    Parameters
    + + + +
    p1- The coordinates of the pixel, which should be drawn. [Top-Left-System]
    color- The color of the pixel.
    +
    +
    +

    Definition at line 44 of file IntelliImage.cpp.

    Here is the caller graph for this function:
    @@ -356,13 +412,75 @@ Here is the caller graph for this function:
    -

    Definition at line 67 of file IntelliImage.cpp.

    +

    A function that clears the whole image in a given Color.

    +
    Parameters
    + + +
    color- The color, in which the image will be filled.
    +
    +
    + +

    Definition at line 77 of file IntelliImage.cpp.

    Here is the caller graph for this function:
    +
    + + +

    ◆ drawPoint()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void IntelliImage::drawPoint (const QPoint & p1,
    const QColor & color,
    const int & penWidth 
    )
    +
    +virtual
    +
    + +

    A.

    +
    Parameters
    + + + + +
    p1
    color
    penWidth
    +
    +
    + +

    Definition at line 55 of file IntelliImage.cpp.

    +
    @@ -388,6 +506,9 @@ Here is the caller graph for this function:
    +

    A function that copys all that returns a [allocated] Image.

    +
    Returns
    A [allocated] Image with all the properties of the instance.
    +

    Implemented in IntelliShapedImage, and IntelliRasterImage.

    @@ -426,6 +547,16 @@ Here is the caller graph for this function:
    +

    A function returning the displayable ImageData in a requested transparence and size.

    +
    Parameters
    + + + +
    displaySize- The size, in whcih the Image should be displayed.
    alpha- The maximum alpha value, a pixel can have.
    +
    +
    +
    Returns
    A QImage which is ready to be displayed.
    +

    Implemented in IntelliShapedImage, and IntelliRasterImage.

    @@ -454,8 +585,59 @@ Here is the caller graph for this function:
    +

    A function returning the displayable ImageData in a requested transparence and it's standart size.

    +
    Parameters
    + + +
    alpha- The maximum alpha value, a pixel can have.
    +
    +
    +
    Returns
    A QImage which is ready to be displayed.
    +

    Implemented in IntelliShapedImage, and IntelliRasterImage.

    +
    + + +

    ◆ getPixelColor()

    + +
    +
    + + + + + +
    + + + + + + + + +
    QColor IntelliImage::getPixelColor (QPoint & point)
    +
    +virtual
    +
    + +

    A function that returns the pixelcolor at a certain point.

    +
    Parameters
    + + +
    point- The point from whcih to get the coordinates.
    +
    +
    +
    Returns
    The color of the Pixel as QColor.
    + +

    Definition at line 81 of file IntelliImage.cpp.

    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    @@ -481,9 +663,12 @@ Here is the caller graph for this function:
    +

    A function that returns the Polygondata if existent.

    +
    Returns
    The Polygondata if existent.
    +

    Reimplemented in IntelliShapedImage.

    -

    Definition at line 48 of file IntelliImage.h.

    +

    Definition at line 113 of file IntelliImage.h.

    @@ -511,6 +696,15 @@ Here is the caller graph for this function:
    +

    A function that loads and sclaes an image to the fitting dimensions.

    +
    Parameters
    + + +
    fileName- The path+name of the image which to loaded.
    +
    +
    +
    Returns
    True if the image could be loaded, false otherwise.
    +

    Definition at line 14 of file IntelliImage.cpp.

    Here is the caller graph for this function:
    @@ -582,6 +776,14 @@ Here is the caller graph for this function:
    +

    An abstract function that sets the data of the visible Polygon, if needed.

    +
    Parameters
    + + +
    polygonData- The Vertices of the Polygon. Just Planar Polygons are allowed.
    +
    +
    +

    Implemented in IntelliShapedImage, and IntelliRasterImage.

    @@ -607,13 +809,15 @@ Here is the caller graph for this function:
    -

    Definition at line 23 of file IntelliImage.h.

    +

    The underlying image data.

    + +

    Definition at line 32 of file IntelliImage.h.


    The documentation for this class was generated from the following files: diff --git a/docs/html/class_intelli_image.js b/docs/html/class_intelli_image.js index eb99be1..2f5a6ea 100644 --- a/docs/html/class_intelli_image.js +++ b/docs/html/class_intelli_image.js @@ -6,9 +6,11 @@ var class_intelli_image = [ "drawLine", "class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31", null ], [ "drawPixel", "class_intelli_image.html#af3c859f5c409e37051edfd9e9fbca056", null ], [ "drawPlain", "class_intelli_image.html#a6be622810dc2bc756054bb5769becb06", null ], + [ "drawPoint", "class_intelli_image.html#a2e787f1b333b59401643936ebb3dcfe1", null ], [ "getDeepCopy", "class_intelli_image.html#af6381067bdf565669f856bb589008ae9", null ], [ "getDisplayable", "class_intelli_image.html#a21c7e65b59a26db45aac3880133ef21d", null ], [ "getDisplayable", "class_intelli_image.html#a9d4daf3c48c64695105689f61c21bae0", null ], + [ "getPixelColor", "class_intelli_image.html#a4576ebb6d863321c816293d7b7f9fd3f", null ], [ "getPolygonData", "class_intelli_image.html#aaf9f3e8db8666850024bee9aad9966ba", null ], [ "loadImage", "class_intelli_image.html#aec0e9c8184d89dee33fd9adefbd2f8aa", null ], [ "resizeImage", "class_intelli_image.html#a177403ab9585d4ba31984a644c54d310", null ], diff --git a/docs/html/class_intelli_image__inherit__graph.dot b/docs/html/class_intelli_image__inherit__graph.dot index 9768313..229af0f 100644 --- a/docs/html/class_intelli_image__inherit__graph.dot +++ b/docs/html/class_intelli_image__inherit__graph.dot @@ -3,9 +3,9 @@ digraph "IntelliImage" // LATEX_PDF_SIZE edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; - Node1 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="An abstract class which manages the basic IntelliImage operations."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliRasterImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_raster_image.html",tooltip=" "]; + Node2 [label="IntelliRasterImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_raster_image.html",tooltip="The IntelliRasterImage manages a Rasterimage."]; Node2 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliShapedImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html",tooltip=" "]; + Node3 [label="IntelliShapedImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html",tooltip="The IntelliShapedImage manages a Shapedimage."]; } diff --git a/docs/html/class_intelli_image_a4576ebb6d863321c816293d7b7f9fd3f_icgraph.dot b/docs/html/class_intelli_image_a4576ebb6d863321c816293d7b7f9fd3f_icgraph.dot new file mode 100644 index 0000000..d61839c --- /dev/null +++ b/docs/html/class_intelli_image_a4576ebb6d863321c816293d7b7f9fd3f_icgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliImage::getPixelColor" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="IntelliImage::getPixelColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function that returns the pixelcolor at a certain point."]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliToolFloodFill\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; +} diff --git a/docs/html/class_intelli_image_a6be622810dc2bc756054bb5769becb06_icgraph.dot b/docs/html/class_intelli_image_a6be622810dc2bc756054bb5769becb06_icgraph.dot index c5fa1e8..fd6442b 100644 --- a/docs/html/class_intelli_image_a6be622810dc2bc756054bb5769becb06_icgraph.dot +++ b/docs/html/class_intelli_image_a6be622810dc2bc756054bb5769becb06_icgraph.dot @@ -4,11 +4,15 @@ digraph "IntelliImage::drawPlain" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="RL"; - Node1 [label="IntelliImage::drawPlain",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliImage::drawPlain",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function that clears the whole image in a given Color."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="PaintingArea::floodFill",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#aeb5eb394b979ea90f2be9849fdda1774",tooltip=" "]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9",tooltip=" "]; + Node3 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip=" "]; + Node4 [label="IntelliToolCircle::\lonMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#a90ee58c5390a86afc75c14ca79b91d7b",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="IntelliToolRectangle\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#a4b5931071e21eb6949ffe357315e408b",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip="A function managing the mouse moved event. Call this in child classes!"]; } diff --git a/docs/html/class_intelli_image_aebbced93f4744fad81b7f141b21f4ab2_icgraph.dot b/docs/html/class_intelli_image_aebbced93f4744fad81b7f141b21f4ab2_icgraph.dot index 231b05d..ceb7594 100644 --- a/docs/html/class_intelli_image_aebbced93f4744fad81b7f141b21f4ab2_icgraph.dot +++ b/docs/html/class_intelli_image_aebbced93f4744fad81b7f141b21f4ab2_icgraph.dot @@ -4,40 +4,61 @@ digraph "IntelliImage::calculateVisiblity" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="RL"; - Node1 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9",tooltip=" "]; + Node2 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205",tooltip=" "]; + Node3 [label="IntelliToolFloodFill\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolLine::onMouse\lLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846",tooltip=" "]; + Node4 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliTool::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c",tooltip=" "]; - Node5 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node6 [label="PaintingArea::mousePress\lEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15",tooltip=" "]; - Node5 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="IntelliToolCircle::\lonMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#ae883b8ae833c78a8867e626c600f9639",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="IntelliToolRectangle\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#ae03c307ccf66cbe3fd59e3657712368d",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node7 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip=" "]; - Node7 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node8 [label="PaintingArea::mouseRelease\lEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a35b5df914acb608cc29717659793359c",tooltip=" "]; - Node7 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node9 [label="IntelliToolPlainTool\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ac23f5d0f07e42fd7c2ea3fc1347da400",tooltip=" "]; - Node7 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node10 [label="IntelliToolPen::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#abda7a22b9766fa4ad254324a53cab94d",tooltip=" "]; - Node7 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node11 [label="IntelliToolLine::onMouse\lLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#ac93f76ff20a1c111a403b298bab02482",tooltip=" "]; - Node1 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node12 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639",tooltip=" "]; - Node12 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node13 [label="PaintingArea::mouseMoveEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#aa22e274b6094a9619f196cd7b49526b5",tooltip=" "]; - Node12 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node14 [label="IntelliToolPlainTool\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ad7546a6335bb3bb4cbf0e1883788d41c",tooltip=" "]; - Node12 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node15 [label="IntelliToolPen::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2",tooltip=" "]; - Node12 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node16 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip=" "]; - Node1 -> Node17 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node17 [label="PaintingArea::open",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a1f597740b4d7b4bc2e24c51f8cb0b6eb",tooltip=" "]; + Node7 [label="IntelliToolLine::onMouse\lLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="IntelliTool::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node8 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="PaintingArea::mousePress\lEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15",tooltip=" "]; + Node8 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node10 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="PaintingArea::mouseRelease\lEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a35b5df914acb608cc29717659793359c",tooltip=" "]; + Node10 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="IntelliToolPlainTool\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ac23f5d0f07e42fd7c2ea3fc1347da400",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node10 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="IntelliToolFloodFill\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#a7438ef96c6c36068bce76e2364e8594c",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node10 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="IntelliToolPen::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#abda7a22b9766fa4ad254324a53cab94d",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node10 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="IntelliToolCircle::\lonMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#ad8e438ec997c57262b5efc2db4cee1a3",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node10 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="IntelliToolRectangle\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#a94460e3ff1c19e80bde922c55f53cc43",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node10 -> Node17 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="IntelliToolLine::onMouse\lLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#ac93f76ff20a1c111a403b298bab02482",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node1 -> Node18 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node18 -> Node19 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 [label="PaintingArea::mouseMoveEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#aa22e274b6094a9619f196cd7b49526b5",tooltip=" "]; + Node18 -> Node20 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 [label="IntelliToolPlainTool\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ad7546a6335bb3bb4cbf0e1883788d41c",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node18 -> Node21 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node21 [label="IntelliToolFloodFill\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#a3cd42cea99bc7583875abcc0c274c668",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node18 -> Node22 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node22 [label="IntelliToolPen::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node18 -> Node23 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node23 [label="IntelliToolCircle::\lonMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#a90ee58c5390a86afc75c14ca79b91d7b",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node18 -> Node24 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node24 [label="IntelliToolRectangle\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#a4b5931071e21eb6949ffe357315e408b",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node18 -> Node25 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node25 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node1 -> Node26 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node26 [label="PaintingArea::open",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a1f597740b4d7b4bc2e24c51f8cb0b6eb",tooltip=" "]; } diff --git a/docs/html/class_intelli_image_aec0e9c8184d89dee33fd9adefbd2f8aa_icgraph.dot b/docs/html/class_intelli_image_aec0e9c8184d89dee33fd9adefbd2f8aa_icgraph.dot index b806096..d4c90ac 100644 --- a/docs/html/class_intelli_image_aec0e9c8184d89dee33fd9adefbd2f8aa_icgraph.dot +++ b/docs/html/class_intelli_image_aec0e9c8184d89dee33fd9adefbd2f8aa_icgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliImage::loadImage" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="RL"; - Node1 [label="IntelliImage::loadImage",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliImage::loadImage",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function that loads and sclaes an image to the fitting dimensions."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="PaintingArea::open",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a1f597740b4d7b4bc2e24c51f8cb0b6eb",tooltip=" "]; } diff --git a/docs/html/class_intelli_image_af3c859f5c409e37051edfd9e9fbca056_icgraph.dot b/docs/html/class_intelli_image_af3c859f5c409e37051edfd9e9fbca056_icgraph.dot index 75112f2..4668f21 100644 --- a/docs/html/class_intelli_image_af3c859f5c409e37051edfd9e9fbca056_icgraph.dot +++ b/docs/html/class_intelli_image_af3c859f5c409e37051edfd9e9fbca056_icgraph.dot @@ -4,7 +4,9 @@ digraph "IntelliImage::drawPixel" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="RL"; - Node1 [label="IntelliImage::drawPixel",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliImage::drawPixel",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A funtcion used to draw a pixel on the Image with the given Color."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205",tooltip=" "]; + Node2 [label="IntelliToolFloodFill\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; } diff --git a/docs/html/class_intelli_image_af8eddbd9aa54c8d37590d1d4bf8dce31_icgraph.dot b/docs/html/class_intelli_image_af8eddbd9aa54c8d37590d1d4bf8dce31_icgraph.dot index 0e4ef14..96319e9 100644 --- a/docs/html/class_intelli_image_af8eddbd9aa54c8d37590d1d4bf8dce31_icgraph.dot +++ b/docs/html/class_intelli_image_af8eddbd9aa54c8d37590d1d4bf8dce31_icgraph.dot @@ -4,11 +4,11 @@ digraph "IntelliImage::drawLine" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="RL"; - Node1 [label="IntelliImage::drawLine",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliImage::drawLine",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function that draws A Line between two given Points in a given color."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliToolLine::onMouse\lLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846",tooltip=" "]; + Node2 [label="IntelliToolLine::onMouse\lLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolPen::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2",tooltip=" "]; + Node3 [label="IntelliToolPen::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2",tooltip="A function managing the mouse moved event. Call this in child classes!"]; Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip=" "]; + Node4 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip="A function managing the mouse moved event. Call this in child classes!"]; } diff --git a/docs/html/class_intelli_photo_gui.html b/docs/html/class_intelli_photo_gui.html index d45808a..b934224 100644 --- a/docs/html/class_intelli_photo_gui.html +++ b/docs/html/class_intelli_photo_gui.html @@ -165,13 +165,13 @@ Protected Member Functions
    -

    Definition at line 25 of file IntelliPhotoGui.cpp.

    +

    Definition at line 24 of file IntelliPhotoGui.cpp.


    The documentation for this class was generated from the following files: diff --git a/docs/html/class_intelli_raster_image-members.html b/docs/html/class_intelli_raster_image-members.html index 1587196..0b7cec4 100644 --- a/docs/html/class_intelli_raster_image-members.html +++ b/docs/html/class_intelli_raster_image-members.html @@ -97,9 +97,11 @@ $(document).ready(function(){initNavTree('class_intelli_raster_image.html','');} drawLine(const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth)IntelliImagevirtual drawPixel(const QPoint &p1, const QColor &color)IntelliImagevirtual drawPlain(const QColor &color)IntelliImagevirtual - getDeepCopy() overrideIntelliRasterImagevirtual - getDisplayable(const QSize &displaySize, int alpha) overrideIntelliRasterImagevirtual - getDisplayable(int alpha=255) overrideIntelliRasterImagevirtual + drawPoint(const QPoint &p1, const QColor &color, const int &penWidth)IntelliImagevirtual + getDeepCopy() overrideIntelliRasterImagevirtual + getDisplayable(const QSize &displaySize, int alpha) overrideIntelliRasterImagevirtual + getDisplayable(int alpha=255) overrideIntelliRasterImagevirtual + getPixelColor(QPoint &point)IntelliImagevirtual getPolygonData()IntelliImageinlinevirtual imageDataIntelliImageprotected IntelliImage(int weight, int height)IntelliImage diff --git a/docs/html/class_intelli_raster_image.html b/docs/html/class_intelli_raster_image.html index 0b99501..b3bd2a1 100644 --- a/docs/html/class_intelli_raster_image.html +++ b/docs/html/class_intelli_raster_image.html @@ -95,6 +95,9 @@ $(document).ready(function(){initNavTree('class_intelli_raster_image.html','');}
    +

    The IntelliRasterImage manages a Rasterimage. + More...

    +

    #include <IntelliRasterImage.h>

    Inheritance diagram for IntelliRasterImage:
    @@ -110,36 +113,56 @@ Collaboration diagram for IntelliRasterImage:

    Public Member Functions

     IntelliRasterImage (int weight, int height) + The Construcor of the IntelliRasterImage. Given the Image dimensions. More...
      virtual ~IntelliRasterImage () override + An Destructor. More...
      virtual QImage getDisplayable (const QSize &displaySize, int alpha) override + A function returning the displayable ImageData in a requested transparence and size. More...
      virtual QImage getDisplayable (int alpha=255) override + A function returning the displayable ImageData in a requested transparence and it's standart size. More...
      virtual IntelliImagegetDeepCopy () override + A function that copys all that returns a [allocated] Image. More...
      virtual void setPolygon (const std::vector< QPoint > &polygonData) override + An abstract function that sets the data of the visible Polygon, if needed. More...
      - Public Member Functions inherited from IntelliImage  IntelliImage (int weight, int height) + The Construcor of the IntelliImage. Given the Image dimensions. More...
      virtual ~IntelliImage ()=0 + An Abstract Destructor. More...
      virtual void drawPixel (const QPoint &p1, const QColor &color) + A funtcion used to draw a pixel on the Image with the given Color. More...
      virtual void drawLine (const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth) + A function that draws A Line between two given Points in a given color. More...
      +virtual void drawPoint (const QPoint &p1, const QColor &color, const int &penWidth) + A. More...
    +  virtual void drawPlain (const QColor &color) + A function that clears the whole image in a given Color. More...
      virtual std::vector< QPoint > getPolygonData () + A function that returns the Polygondata if existent. More...
      virtual bool loadImage (const QString &fileName) + A function that loads and sclaes an image to the fitting dimensions. More...
      +virtual QColor getPixelColor (QPoint &point) + A function that returns the pixelcolor at a certain point. More...
    +  + @@ -149,11 +172,13 @@ Protected Member Functions Additional Inherited Members +

    Protected Member Functions

    virtual void calculateVisiblity () override
     A function that calculates the visibility of the image if a polygon is given. [does nothing in Rasterimage]. More...
     
    - Protected Member Functions inherited from IntelliImage
    void resizeImage (QImage *image, const QSize &newSize)
    - Protected Attributes inherited from IntelliImage
    QImage imageData
     The underlying image data. More...
     

    Detailed Description

    -
    -

    Definition at line 6 of file IntelliRasterImage.h.

    +

    The IntelliRasterImage manages a Rasterimage.

    + +

    Definition at line 9 of file IntelliRasterImage.h.

    Constructor & Destructor Documentation

    ◆ IntelliRasterImage()

    @@ -181,6 +206,15 @@ Additional Inherited Members
    +

    The Construcor of the IntelliRasterImage. Given the Image dimensions.

    +
    Parameters
    + + + +
    weight- The weight of the Image.
    height- The height of the Image.
    +
    +
    +

    Definition at line 6 of file IntelliRasterImage.cpp.

    Here is the caller graph for this function:
    @@ -213,6 +247,8 @@ Here is the caller graph for this function:
    +

    An Destructor.

    +

    Definition at line 11 of file IntelliRasterImage.cpp.

    @@ -241,9 +277,9 @@ Here is the caller graph for this function:
    -

    Implements IntelliImage.

    +

    A function that calculates the visibility of the image if a polygon is given. [does nothing in Rasterimage].

    -

    Reimplemented in IntelliShapedImage.

    +

    Implements IntelliImage.

    Definition at line 21 of file IntelliRasterImage.cpp.

    @@ -272,6 +308,9 @@ Here is the caller graph for this function:
    +

    A function that copys all that returns a [allocated] Image.

    +
    Returns
    A [allocated] Image with all the properties of the instance.
    +

    Implements IntelliImage.

    Reimplemented in IntelliShapedImage.

    @@ -319,6 +358,16 @@ Here is the call graph for this function:
    +

    A function returning the displayable ImageData in a requested transparence and size.

    +
    Parameters
    + + + +
    displaySize- The size, in whcih the Image should be displayed.
    alpha- The maximum alpha value, a pixel can have.
    +
    +
    +
    Returns
    A QImage which is ready to be displayed.
    +

    Implements IntelliImage.

    Reimplemented in IntelliShapedImage.

    @@ -356,6 +405,15 @@ Here is the caller graph for this function:
    +

    A function returning the displayable ImageData in a requested transparence and it's standart size.

    +
    Parameters
    + + +
    alpha- The maximum alpha value, a pixel can have.
    +
    +
    +
    Returns
    A QImage which is ready to be displayed.
    +

    Implements IntelliImage.

    Reimplemented in IntelliShapedImage.

    @@ -393,6 +451,14 @@ Here is the call graph for this function:
    +

    An abstract function that sets the data of the visible Polygon, if needed.

    +
    Parameters
    + + +
    polygonData- The Vertices of the Polygon. Nothing happens.
    +
    +
    +

    Implements IntelliImage.

    Reimplemented in IntelliShapedImage.

    @@ -402,8 +468,8 @@ Here is the call graph for this function:

    The documentation for this class was generated from the following files: diff --git a/docs/html/class_intelli_raster_image__coll__graph.dot b/docs/html/class_intelli_raster_image__coll__graph.dot index ba86a0b..2a1af2b 100644 --- a/docs/html/class_intelli_raster_image__coll__graph.dot +++ b/docs/html/class_intelli_raster_image__coll__graph.dot @@ -3,7 +3,7 @@ digraph "IntelliRasterImage" // LATEX_PDF_SIZE edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; - Node1 [label="IntelliRasterImage",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliRasterImage",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The IntelliRasterImage manages a Rasterimage."]; Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip=" "]; + Node2 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip="An abstract class which manages the basic IntelliImage operations."]; } diff --git a/docs/html/class_intelli_raster_image__inherit__graph.dot b/docs/html/class_intelli_raster_image__inherit__graph.dot index e19d045..c758aae 100644 --- a/docs/html/class_intelli_raster_image__inherit__graph.dot +++ b/docs/html/class_intelli_raster_image__inherit__graph.dot @@ -3,9 +3,9 @@ digraph "IntelliRasterImage" // LATEX_PDF_SIZE edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; - Node1 [label="IntelliRasterImage",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliRasterImage",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The IntelliRasterImage manages a Rasterimage."]; Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip=" "]; + Node2 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip="An abstract class which manages the basic IntelliImage operations."]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliShapedImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html",tooltip=" "]; + Node3 [label="IntelliShapedImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html",tooltip="The IntelliShapedImage manages a Shapedimage."]; } diff --git a/docs/html/class_intelli_raster_image_a612d79124f0e2c158a4f0abbe4b5f97f_cgraph.dot b/docs/html/class_intelli_raster_image_a612d79124f0e2c158a4f0abbe4b5f97f_cgraph.dot index c3853e6..6e31bb0 100644 --- a/docs/html/class_intelli_raster_image_a612d79124f0e2c158a4f0abbe4b5f97f_cgraph.dot +++ b/docs/html/class_intelli_raster_image_a612d79124f0e2c158a4f0abbe4b5f97f_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliRasterImage::getDisplayable" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliRasterImage\l::getDisplayable",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliRasterImage\l::getDisplayable",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function returning the displayable ImageData in a requested transparence and it's standart size."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliRasterImage\l::getDisplayable",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_raster_image.html#ae43393397b0141a8033fe34d3a1b1884",tooltip=" "]; + Node2 [label="IntelliRasterImage\l::getDisplayable",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_raster_image.html#ae43393397b0141a8033fe34d3a1b1884",tooltip="A function returning the displayable ImageData in a requested transparence and size."]; } diff --git a/docs/html/class_intelli_raster_image_a8f901301b106504de3c27308ade897dc_cgraph.dot b/docs/html/class_intelli_raster_image_a8f901301b106504de3c27308ade897dc_cgraph.dot index fec0b04..72001d8 100644 --- a/docs/html/class_intelli_raster_image_a8f901301b106504de3c27308ade897dc_cgraph.dot +++ b/docs/html/class_intelli_raster_image_a8f901301b106504de3c27308ade897dc_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliRasterImage::getDeepCopy" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliRasterImage\l::getDeepCopy",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliRasterImage\l::getDeepCopy",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function that copys all that returns a [allocated] Image."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliRasterImage\l::IntelliRasterImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_raster_image.html#aad9b561fe499a4da3c6ef98971aa3468",tooltip=" "]; + Node2 [label="IntelliRasterImage\l::IntelliRasterImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_raster_image.html#aad9b561fe499a4da3c6ef98971aa3468",tooltip="The Construcor of the IntelliRasterImage. Given the Image dimensions."]; } diff --git a/docs/html/class_intelli_raster_image_aad9b561fe499a4da3c6ef98971aa3468_icgraph.dot b/docs/html/class_intelli_raster_image_aad9b561fe499a4da3c6ef98971aa3468_icgraph.dot index 132fb89..0fdfdea 100644 --- a/docs/html/class_intelli_raster_image_aad9b561fe499a4da3c6ef98971aa3468_icgraph.dot +++ b/docs/html/class_intelli_raster_image_aad9b561fe499a4da3c6ef98971aa3468_icgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliRasterImage::IntelliRasterImage" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="RL"; - Node1 [label="IntelliRasterImage\l::IntelliRasterImage",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliRasterImage\l::IntelliRasterImage",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The Construcor of the IntelliRasterImage. Given the Image dimensions."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliRasterImage\l::getDeepCopy",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_raster_image.html#a8f901301b106504de3c27308ade897dc",tooltip=" "]; + Node2 [label="IntelliRasterImage\l::getDeepCopy",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_raster_image.html#a8f901301b106504de3c27308ade897dc",tooltip="A function that copys all that returns a [allocated] Image."]; } diff --git a/docs/html/class_intelli_raster_image_ae43393397b0141a8033fe34d3a1b1884_icgraph.dot b/docs/html/class_intelli_raster_image_ae43393397b0141a8033fe34d3a1b1884_icgraph.dot index 552556b..ab3c96f 100644 --- a/docs/html/class_intelli_raster_image_ae43393397b0141a8033fe34d3a1b1884_icgraph.dot +++ b/docs/html/class_intelli_raster_image_ae43393397b0141a8033fe34d3a1b1884_icgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliRasterImage::getDisplayable" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="RL"; - Node1 [label="IntelliRasterImage\l::getDisplayable",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliRasterImage\l::getDisplayable",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function returning the displayable ImageData in a requested transparence and size."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliRasterImage\l::getDisplayable",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_raster_image.html#a612d79124f0e2c158a4f0abbe4b5f97f",tooltip=" "]; + Node2 [label="IntelliRasterImage\l::getDisplayable",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_raster_image.html#a612d79124f0e2c158a4f0abbe4b5f97f",tooltip="A function returning the displayable ImageData in a requested transparence and it's standart size."]; } diff --git a/docs/html/class_intelli_shaped_image-members.html b/docs/html/class_intelli_shaped_image-members.html index 316feb3..4098b26 100644 --- a/docs/html/class_intelli_shaped_image-members.html +++ b/docs/html/class_intelli_shaped_image-members.html @@ -93,25 +93,26 @@ $(document).ready(function(){initNavTree('class_intelli_shaped_image.html','');}

    This is the complete list of members for IntelliShapedImage, including all inherited members.

    - - - - + + + + - - - - - - - - - - - - + + + + + + + + + + + + +
    calculateVisiblity() overrideIntelliShapedImagevirtual
    drawLine(const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth)IntelliImagevirtual
    drawPixel(const QPoint &p1, const QColor &color)IntelliImagevirtual
    drawPlain(const QColor &color)IntelliImagevirtual
    drawLine(const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth)IntelliImagevirtual
    drawPixel(const QPoint &p1, const QColor &color)IntelliImagevirtual
    drawPlain(const QColor &color)IntelliImagevirtual
    drawPoint(const QPoint &p1, const QColor &color, const int &penWidth)IntelliImagevirtual
    getDeepCopy() overrideIntelliShapedImagevirtual
    getDisplayable(const QSize &displaySize, int alpha=255) overrideIntelliShapedImagevirtual
    getDisplayable(int alpha=255) overrideIntelliShapedImagevirtual
    getPolygonData() overrideIntelliShapedImageinlinevirtual
    imageDataIntelliImageprotected
    IntelliImage(int weight, int height)IntelliImage
    IntelliRasterImage(int weight, int height)IntelliRasterImage
    IntelliShapedImage(int weight, int height)IntelliShapedImage
    loadImage(const QString &fileName)IntelliImagevirtual
    polygonDataIntelliShapedImageprotected
    resizeImage(QImage *image, const QSize &newSize)IntelliImageprotected
    setPolygon(const std::vector< QPoint > &polygonData) overrideIntelliShapedImagevirtual
    ~IntelliImage()=0IntelliImagepure virtual
    ~IntelliRasterImage() overrideIntelliRasterImagevirtual
    ~IntelliShapedImage() overrideIntelliShapedImagevirtual
    getPixelColor(QPoint &point)IntelliImagevirtual
    getPolygonData() overrideIntelliShapedImageinlinevirtual
    imageDataIntelliImageprotected
    IntelliImage(int weight, int height)IntelliImage
    IntelliRasterImage(int weight, int height)IntelliRasterImage
    IntelliShapedImage(int weight, int height)IntelliShapedImage
    loadImage(const QString &fileName)IntelliImagevirtual
    polygonDataIntelliShapedImageprotected
    resizeImage(QImage *image, const QSize &newSize)IntelliImageprotected
    setPolygon(const std::vector< QPoint > &polygonData) overrideIntelliShapedImagevirtual
    ~IntelliImage()=0IntelliImagepure virtual
    ~IntelliRasterImage() overrideIntelliRasterImagevirtual
    ~IntelliShapedImage() overrideIntelliShapedImagevirtual
    diff --git a/docs/html/class_intelli_shaped_image.html b/docs/html/class_intelli_shaped_image.html index 01d9726..4a2806e 100644 --- a/docs/html/class_intelli_shaped_image.html +++ b/docs/html/class_intelli_shaped_image.html @@ -95,6 +95,9 @@ $(document).ready(function(){initNavTree('class_intelli_shaped_image.html','');}
    +

    The IntelliShapedImage manages a Shapedimage. + More...

    +

    #include <IntelliShapedImage.h>

    Inheritance diagram for IntelliShapedImage:
    @@ -110,46 +113,67 @@ Collaboration diagram for IntelliShapedImage:

    Public Member Functions

     IntelliShapedImage (int weight, int height) + The Construcor of the IntelliShapedImage. Given the Image dimensions. More...
      virtual ~IntelliShapedImage () override + An Destructor. More...
      -virtual void calculateVisiblity () override -  virtual QImage getDisplayable (const QSize &displaySize, int alpha=255) override + A function returning the displayable ImageData in a requested transparence and size. More...
      virtual QImage getDisplayable (int alpha=255) override + A function returning the displayable ImageData in a requested transparence and it's standart size. More...
      virtual IntelliImagegetDeepCopy () override + A function that copys all that returns a [allocated] Image. More...
      virtual std::vector< QPoint > getPolygonData () override + A function that returns the Polygondata if existent. More...
      virtual void setPolygon (const std::vector< QPoint > &polygonData) override + A function that sets the data of the visible Polygon. More...
      - Public Member Functions inherited from IntelliRasterImage  IntelliRasterImage (int weight, int height) + The Construcor of the IntelliRasterImage. Given the Image dimensions. More...
      virtual ~IntelliRasterImage () override + An Destructor. More...
      - Public Member Functions inherited from IntelliImage  IntelliImage (int weight, int height) + The Construcor of the IntelliImage. Given the Image dimensions. More...
      virtual ~IntelliImage ()=0 + An Abstract Destructor. More...
      virtual void drawPixel (const QPoint &p1, const QColor &color) + A funtcion used to draw a pixel on the Image with the given Color. More...
      virtual void drawLine (const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth) + A function that draws A Line between two given Points in a given color. More...
      +virtual void drawPoint (const QPoint &p1, const QColor &color, const int &penWidth) + A. More...
    +  virtual void drawPlain (const QColor &color) + A function that clears the whole image in a given Color. More...
      virtual bool loadImage (const QString &fileName) + A function that loads and sclaes an image to the fitting dimensions. More...
      +virtual QColor getPixelColor (QPoint &point) + A function that returns the pixelcolor at a certain point. More...
    +  + +

    Protected Attributes

    std::vector< QPoint > polygonData
     The Vertices of The Polygon. Needs to be a planar Polygon. More...
     
    - Protected Attributes inherited from IntelliImage
    QImage imageData
     The underlying image data. More...
     

    @@ -159,8 +183,9 @@ Additional Inherited Members

     

    Detailed Description

    -
    -

    Definition at line 6 of file IntelliShapedImage.h.

    +

    The IntelliShapedImage manages a Shapedimage.

    + +

    Definition at line 11 of file IntelliShapedImage.h.

    Constructor & Destructor Documentation

    ◆ IntelliShapedImage()

    @@ -188,6 +213,15 @@ Additional Inherited Members
    +

    The Construcor of the IntelliShapedImage. Given the Image dimensions.

    +
    Parameters
    + + + +
    weight- The weight of the Image.
    height- The height of the Image.
    +
    +
    +

    Definition at line 7 of file IntelliShapedImage.cpp.

    Here is the caller graph for this function:
    @@ -220,50 +254,13 @@ Here is the caller graph for this function:
    +

    An Destructor.

    +

    Definition at line 11 of file IntelliShapedImage.cpp.

    Member Function Documentation

    - -

    ◆ calculateVisiblity()

    - -
    -
    - - - - - -
    - - - - - - - -
    void IntelliShapedImage::calculateVisiblity ()
    -
    -overridevirtual
    -
    - -

    Reimplemented from IntelliRasterImage.

    - -

    Definition at line 26 of file IntelliShapedImage.cpp.

    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    -Here is the caller graph for this function:
    -
    -
    -
    - -
    -

    ◆ getDeepCopy()

    @@ -287,6 +284,9 @@ Here is the caller graph for this function:
    +

    A function that copys all that returns a [allocated] Image.

    +
    Returns
    A [allocated] Image with all the properties of the instance.
    +

    Reimplemented from IntelliRasterImage.

    Definition at line 19 of file IntelliShapedImage.cpp.

    @@ -332,9 +332,19 @@ Here is the call graph for this function:
    +

    A function returning the displayable ImageData in a requested transparence and size.

    +
    Parameters
    + + + +
    displaySize- The size, in whcih the Image should be displayed.
    alpha- The maximum alpha value, a pixel can have.
    +
    +
    +
    Returns
    A QImage which is ready to be displayed.
    +

    Reimplemented from IntelliRasterImage.

    -

    Definition at line 62 of file IntelliShapedImage.cpp.

    +

    Definition at line 54 of file IntelliShapedImage.cpp.

    Here is the caller graph for this function:
    @@ -367,6 +377,15 @@ Here is the caller graph for this function:
    +

    A function returning the displayable ImageData in a requested transparence and it's standart size.

    +
    Parameters
    + + +
    alpha- The maximum alpha value, a pixel can have.
    +
    +
    +
    Returns
    A QImage which is ready to be displayed.
    +

    Reimplemented from IntelliRasterImage.

    Definition at line 15 of file IntelliShapedImage.cpp.

    @@ -401,9 +420,12 @@ Here is the call graph for this function:
    +

    A function that returns the Polygondata if existent.

    +
    Returns
    The Polygondata if existent.
    +

    Reimplemented from IntelliImage.

    -

    Definition at line 23 of file IntelliShapedImage.h.

    +

    Definition at line 67 of file IntelliShapedImage.h.

    @@ -431,9 +453,17 @@ Here is the call graph for this function:
    +

    A function that sets the data of the visible Polygon.

    +
    Parameters
    + + +
    polygonData- The Vertices of the Polygon. Just Planar Polygons are allowed.
    +
    +
    +

    Reimplemented from IntelliRasterImage.

    -

    Definition at line 74 of file IntelliShapedImage.cpp.

    +

    Definition at line 66 of file IntelliShapedImage.cpp.

    Here is the call graph for this function:
    @@ -468,13 +498,15 @@ Here is the caller graph for this function:
    -

    Definition at line 10 of file IntelliShapedImage.h.

    +

    The Vertices of The Polygon. Needs to be a planar Polygon.

    + +

    Definition at line 28 of file IntelliShapedImage.h.


    The documentation for this class was generated from the following files: diff --git a/docs/html/class_intelli_shaped_image.js b/docs/html/class_intelli_shaped_image.js index 3b03638..dead858 100644 --- a/docs/html/class_intelli_shaped_image.js +++ b/docs/html/class_intelli_shaped_image.js @@ -2,7 +2,6 @@ var class_intelli_shaped_image = [ [ "IntelliShapedImage", "class_intelli_shaped_image.html#a0f834c3f255baeb50c98ef335a6d0ea9", null ], [ "~IntelliShapedImage", "class_intelli_shaped_image.html#a43d63d8a814852d377ee2030658fbab9", null ], - [ "calculateVisiblity", "class_intelli_shaped_image.html#a0221d93c3c8990f7dab332454cc21f50", null ], [ "getDeepCopy", "class_intelli_shaped_image.html#aed0b31e0fa771104399d1f5ff39a0337", null ], [ "getDisplayable", "class_intelli_shaped_image.html#a68cf374247c16f07fd84d50e4cd05630", null ], [ "getDisplayable", "class_intelli_shaped_image.html#ac6a99e1a96134073bceea252b37636cc", null ], diff --git a/docs/html/class_intelli_shaped_image__coll__graph.dot b/docs/html/class_intelli_shaped_image__coll__graph.dot index e3f9034..580bcac 100644 --- a/docs/html/class_intelli_shaped_image__coll__graph.dot +++ b/docs/html/class_intelli_shaped_image__coll__graph.dot @@ -3,9 +3,9 @@ digraph "IntelliShapedImage" // LATEX_PDF_SIZE edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; - Node1 [label="IntelliShapedImage",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliShapedImage",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The IntelliShapedImage manages a Shapedimage."]; Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliRasterImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_raster_image.html",tooltip=" "]; + Node2 [label="IntelliRasterImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_raster_image.html",tooltip="The IntelliRasterImage manages a Rasterimage."]; Node3 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip=" "]; + Node3 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip="An abstract class which manages the basic IntelliImage operations."]; } diff --git a/docs/html/class_intelli_shaped_image__inherit__graph.dot b/docs/html/class_intelli_shaped_image__inherit__graph.dot index e3f9034..580bcac 100644 --- a/docs/html/class_intelli_shaped_image__inherit__graph.dot +++ b/docs/html/class_intelli_shaped_image__inherit__graph.dot @@ -3,9 +3,9 @@ digraph "IntelliShapedImage" // LATEX_PDF_SIZE edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; - Node1 [label="IntelliShapedImage",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliShapedImage",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The IntelliShapedImage manages a Shapedimage."]; Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliRasterImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_raster_image.html",tooltip=" "]; + Node2 [label="IntelliRasterImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_raster_image.html",tooltip="The IntelliRasterImage manages a Rasterimage."]; Node3 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip=" "]; + Node3 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip="An abstract class which manages the basic IntelliImage operations."]; } diff --git a/docs/html/class_intelli_shaped_image_a0f834c3f255baeb50c98ef335a6d0ea9_icgraph.dot b/docs/html/class_intelli_shaped_image_a0f834c3f255baeb50c98ef335a6d0ea9_icgraph.dot index 54d9f25..8d5448d 100644 --- a/docs/html/class_intelli_shaped_image_a0f834c3f255baeb50c98ef335a6d0ea9_icgraph.dot +++ b/docs/html/class_intelli_shaped_image_a0f834c3f255baeb50c98ef335a6d0ea9_icgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliShapedImage::IntelliShapedImage" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="RL"; - Node1 [label="IntelliShapedImage\l::IntelliShapedImage",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliShapedImage\l::IntelliShapedImage",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The Construcor of the IntelliShapedImage. Given the Image dimensions."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliShapedImage\l::getDeepCopy",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#aed0b31e0fa771104399d1f5ff39a0337",tooltip=" "]; + Node2 [label="IntelliShapedImage\l::getDeepCopy",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#aed0b31e0fa771104399d1f5ff39a0337",tooltip="A function that copys all that returns a [allocated] Image."]; } diff --git a/docs/html/class_intelli_shaped_image_a4b69d75de7a3b85032482982f249458e_cgraph.dot b/docs/html/class_intelli_shaped_image_a4b69d75de7a3b85032482982f249458e_cgraph.dot index 8c4b4fd..2523308 100644 --- a/docs/html/class_intelli_shaped_image_a4b69d75de7a3b85032482982f249458e_cgraph.dot +++ b/docs/html/class_intelli_shaped_image_a4b69d75de7a3b85032482982f249458e_cgraph.dot @@ -4,11 +4,7 @@ digraph "IntelliShapedImage::setPolygon" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliShapedImage\l::setPolygon",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliShapedImage\l::setPolygon",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function that sets the data of the visible Polygon."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliShapedImage\l::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#a0221d93c3c8990f7dab332454cc21f50",tooltip=" "]; - Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliHelper::isInTriangle",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_helper.html#a04bdb4f53b89dded693ba6e896f4c63f",tooltip=" "]; - Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliHelper::sign",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_helper.html#a67fc007dda64187f6cef7fba3fcd9e40",tooltip=" "]; + Node2 [label="IntelliHelper::calculate\lTriangles",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$namespace_intelli_helper.html#a214dc3624ba4562a03dc922e3dd7b617",tooltip="A function to split a polygon in its spanning traingles by using Meisters Theorem of graph theory by ..."]; } diff --git a/docs/html/class_intelli_shaped_image_a4b69d75de7a3b85032482982f249458e_icgraph.dot b/docs/html/class_intelli_shaped_image_a4b69d75de7a3b85032482982f249458e_icgraph.dot index 29119d0..d26d6f0 100644 --- a/docs/html/class_intelli_shaped_image_a4b69d75de7a3b85032482982f249458e_icgraph.dot +++ b/docs/html/class_intelli_shaped_image_a4b69d75de7a3b85032482982f249458e_icgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliShapedImage::setPolygon" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="RL"; - Node1 [label="IntelliShapedImage\l::setPolygon",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliShapedImage\l::setPolygon",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function that sets the data of the visible Polygon."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliShapedImage\l::getDeepCopy",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#aed0b31e0fa771104399d1f5ff39a0337",tooltip=" "]; + Node2 [label="IntelliShapedImage\l::getDeepCopy",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#aed0b31e0fa771104399d1f5ff39a0337",tooltip="A function that copys all that returns a [allocated] Image."]; } diff --git a/docs/html/class_intelli_shaped_image_a68cf374247c16f07fd84d50e4cd05630_icgraph.dot b/docs/html/class_intelli_shaped_image_a68cf374247c16f07fd84d50e4cd05630_icgraph.dot index d0a98bf..9992e60 100644 --- a/docs/html/class_intelli_shaped_image_a68cf374247c16f07fd84d50e4cd05630_icgraph.dot +++ b/docs/html/class_intelli_shaped_image_a68cf374247c16f07fd84d50e4cd05630_icgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliShapedImage::getDisplayable" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="RL"; - Node1 [label="IntelliShapedImage\l::getDisplayable",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliShapedImage\l::getDisplayable",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function returning the displayable ImageData in a requested transparence and size."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliShapedImage\l::getDisplayable",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#ac6a99e1a96134073bceea252b37636cc",tooltip=" "]; + Node2 [label="IntelliShapedImage\l::getDisplayable",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#ac6a99e1a96134073bceea252b37636cc",tooltip="A function returning the displayable ImageData in a requested transparence and it's standart size."]; } diff --git a/docs/html/class_intelli_shaped_image_ac6a99e1a96134073bceea252b37636cc_cgraph.dot b/docs/html/class_intelli_shaped_image_ac6a99e1a96134073bceea252b37636cc_cgraph.dot index 5c5c773..fedf662 100644 --- a/docs/html/class_intelli_shaped_image_ac6a99e1a96134073bceea252b37636cc_cgraph.dot +++ b/docs/html/class_intelli_shaped_image_ac6a99e1a96134073bceea252b37636cc_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliShapedImage::getDisplayable" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliShapedImage\l::getDisplayable",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliShapedImage\l::getDisplayable",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function returning the displayable ImageData in a requested transparence and it's standart size."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliShapedImage\l::getDisplayable",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#a68cf374247c16f07fd84d50e4cd05630",tooltip=" "]; + Node2 [label="IntelliShapedImage\l::getDisplayable",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#a68cf374247c16f07fd84d50e4cd05630",tooltip="A function returning the displayable ImageData in a requested transparence and size."]; } diff --git a/docs/html/class_intelli_shaped_image_aed0b31e0fa771104399d1f5ff39a0337_cgraph.dot b/docs/html/class_intelli_shaped_image_aed0b31e0fa771104399d1f5ff39a0337_cgraph.dot index fb8406f..37121ac 100644 --- a/docs/html/class_intelli_shaped_image_aed0b31e0fa771104399d1f5ff39a0337_cgraph.dot +++ b/docs/html/class_intelli_shaped_image_aed0b31e0fa771104399d1f5ff39a0337_cgraph.dot @@ -4,15 +4,11 @@ digraph "IntelliShapedImage::getDeepCopy" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliShapedImage\l::getDeepCopy",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliShapedImage\l::getDeepCopy",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function that copys all that returns a [allocated] Image."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliShapedImage\l::IntelliShapedImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#a0f834c3f255baeb50c98ef335a6d0ea9",tooltip=" "]; + Node2 [label="IntelliShapedImage\l::IntelliShapedImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#a0f834c3f255baeb50c98ef335a6d0ea9",tooltip="The Construcor of the IntelliShapedImage. Given the Image dimensions."]; Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliShapedImage\l::setPolygon",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#a4b69d75de7a3b85032482982f249458e",tooltip=" "]; + Node3 [label="IntelliShapedImage\l::setPolygon",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#a4b69d75de7a3b85032482982f249458e",tooltip="A function that sets the data of the visible Polygon."]; Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliShapedImage\l::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#a0221d93c3c8990f7dab332454cc21f50",tooltip=" "]; - Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliHelper::isInTriangle",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_helper.html#a04bdb4f53b89dded693ba6e896f4c63f",tooltip=" "]; - Node5 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node6 [label="IntelliHelper::sign",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_helper.html#a67fc007dda64187f6cef7fba3fcd9e40",tooltip=" "]; + Node4 [label="IntelliHelper::calculate\lTriangles",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$namespace_intelli_helper.html#a214dc3624ba4562a03dc922e3dd7b617",tooltip="A function to split a polygon in its spanning traingles by using Meisters Theorem of graph theory by ..."]; } diff --git a/docs/html/class_intelli_tool-members.html b/docs/html/class_intelli_tool-members.html index 7bd0fbd..989d5e1 100644 --- a/docs/html/class_intelli_tool-members.html +++ b/docs/html/class_intelli_tool-members.html @@ -104,7 +104,8 @@ $(document).ready(function(){initNavTree('class_intelli_tool.html','');}); onMouseMoved(int x, int y)IntelliToolvirtual onMouseRightPressed(int x, int y)IntelliToolvirtual onMouseRightReleased(int x, int y)IntelliToolvirtual - ~IntelliTool()=0IntelliToolpure virtual + onWheelScrolled(int value)IntelliToolvirtual + ~IntelliTool()=0IntelliToolpure virtual diff --git a/docs/html/class_intelli_tool.html b/docs/html/class_intelli_tool.html index 36301a4..ac45dbf 100644 --- a/docs/html/class_intelli_tool.html +++ b/docs/html/class_intelli_tool.html @@ -95,6 +95,9 @@ $(document).ready(function(){initNavTree('class_intelli_tool.html','');});
    +

    An abstract class that manages the basic events, like mouse clicks or scrolls events. + More...

    +

    #include <IntelliTool.h>

    Inheritance diagram for IntelliTool:
    @@ -110,36 +113,52 @@ Collaboration diagram for IntelliTool:

    Public Member Functions

     IntelliTool (PaintingArea *Area, IntelliColorPicker *colorPicker) + A constructor setting the general Painting Area and colorPicker. More...
      virtual ~IntelliTool ()=0 + An abstract Destructor. More...
      virtual void onMouseRightPressed (int x, int y) + A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes! More...
      virtual void onMouseRightReleased (int x, int y) + A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes! More...
      virtual void onMouseLeftPressed (int x, int y) + A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes! More...
      virtual void onMouseLeftReleased (int x, int y) + A function managing the left click Released of a Mouse. Call this in child classes! More...
      +virtual void onWheelScrolled (int value) + A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes! More...
    +  virtual void onMouseMoved (int x, int y) + A function managing the mouse moved event. Call this in child classes! More...
      + + + + +

    Protected Attributes

    PaintingAreaArea
     A pointer to the general PaintingArea to interact with. More...
     
    IntelliColorPickercolorPicker
     A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors. More...
     
    LayerObjectActive
     A pointer to the underlying active Layer, do not work on this. This is used for data grabbing or previews. More...
     
    LayerObjectCanvas
     A pointer to the drawing canvas of the tool, work on this. More...
     
    bool drawing = false
     A flag checking if the user is currently drawing or not. More...
     

    Detailed Description

    -
    -

    Definition at line 10 of file IntelliTool.h.

    +

    An abstract class that manages the basic events, like mouse clicks or scrolls events.

    + +

    Definition at line 13 of file IntelliTool.h.

    Constructor & Destructor Documentation

    ◆ IntelliTool()

    @@ -167,6 +186,15 @@ Protected Attributes
    +

    A constructor setting the general Painting Area and colorPicker.

    +
    Parameters
    + + + +
    Area- The general PaintingArea used by the project.
    colorPicker- The general colorPicker used by the project
    +
    +
    +

    Definition at line 4 of file IntelliTool.cpp.

    @@ -194,6 +222,8 @@ Protected Attributes
    +

    An abstract Destructor.

    +

    Definition at line 10 of file IntelliTool.cpp.

    @@ -233,7 +263,16 @@ Protected Attributes
    -

    Reimplemented in IntelliToolLine, IntelliToolPen, and IntelliToolPlainTool.

    +

    A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    +
    +
    + +

    Reimplemented in IntelliToolLine, IntelliToolRectangle, IntelliToolCircle, IntelliToolPen, IntelliToolFloodFill, and IntelliToolPlainTool.

    Definition at line 25 of file IntelliTool.cpp.

    @@ -283,7 +322,16 @@ Here is the caller graph for this function:
    -

    Reimplemented in IntelliToolLine, IntelliToolPen, and IntelliToolPlainTool.

    +

    A function managing the left click Released of a Mouse. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    +
    +
    + +

    Reimplemented in IntelliToolLine, IntelliToolRectangle, IntelliToolCircle, IntelliToolPen, IntelliToolFloodFill, and IntelliToolPlainTool.

    Definition at line 32 of file IntelliTool.cpp.

    @@ -333,7 +381,16 @@ Here is the caller graph for this function:
    -

    Reimplemented in IntelliToolLine, IntelliToolPen, and IntelliToolPlainTool.

    +

    A function managing the mouse moved event. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate of the new Mouse Position.
    y- The y coordinate of the new Mouse Position.
    +
    +
    + +

    Reimplemented in IntelliToolLine, IntelliToolRectangle, IntelliToolCircle, IntelliToolPen, IntelliToolFloodFill, and IntelliToolPlainTool.

    Definition at line 41 of file IntelliTool.cpp.

    @@ -383,7 +440,16 @@ Here is the caller graph for this function:
    -

    Reimplemented in IntelliToolLine, IntelliToolPen, and IntelliToolPlainTool.

    +

    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    +
    +
    + +

    Reimplemented in IntelliToolLine, IntelliToolRectangle, IntelliToolCircle, IntelliToolPen, IntelliToolFloodFill, and IntelliToolPlainTool.

    Definition at line 14 of file IntelliTool.cpp.

    @@ -428,7 +494,16 @@ Here is the caller graph for this function:
    -

    Reimplemented in IntelliToolLine, IntelliToolPen, and IntelliToolPlainTool.

    +

    A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    +
    +
    + +

    Reimplemented in IntelliToolLine, IntelliToolRectangle, IntelliToolCircle, IntelliToolPen, IntelliToolFloodFill, and IntelliToolPlainTool.

    Definition at line 21 of file IntelliTool.cpp.

    @@ -437,6 +512,49 @@ Here is the caller graph for this function:
    + + + +

    ◆ onWheelScrolled()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void IntelliTool::onWheelScrolled (int value)
    +
    +virtual
    +
    + +

    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes!

    +
    Parameters
    + + +
    value- The absolute the scroll has changed.
    +
    +
    + +

    Reimplemented in IntelliToolLine, IntelliToolRectangle, IntelliToolCircle, IntelliToolPen, IntelliToolFloodFill, and IntelliToolPlainTool.

    + +

    Definition at line 46 of file IntelliTool.cpp.

    +
    +Here is the caller graph for this function:
    +
    +
    +
    +

    Member Data Documentation

    @@ -460,7 +578,9 @@ Here is the caller graph for this function:
    -

    Definition at line 19 of file IntelliTool.h.

    +

    A pointer to the underlying active Layer, do not work on this. This is used for data grabbing or previews.

    + +

    Definition at line 43 of file IntelliTool.h.

    @@ -484,7 +604,9 @@ Here is the caller graph for this function:
    -

    Definition at line 16 of file IntelliTool.h.

    +

    A pointer to the general PaintingArea to interact with.

    + +

    Definition at line 33 of file IntelliTool.h.

    @@ -508,7 +630,9 @@ Here is the caller graph for this function:
    -

    Definition at line 20 of file IntelliTool.h.

    +

    A pointer to the drawing canvas of the tool, work on this.

    + +

    Definition at line 48 of file IntelliTool.h.

    @@ -532,7 +656,9 @@ Here is the caller graph for this function:
    -

    Definition at line 17 of file IntelliTool.h.

    +

    A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors.

    + +

    Definition at line 38 of file IntelliTool.h.

    @@ -556,13 +682,15 @@ Here is the caller graph for this function:
    -

    Definition at line 21 of file IntelliTool.h.

    +

    A flag checking if the user is currently drawing or not.

    + +

    Definition at line 53 of file IntelliTool.h.


    The documentation for this class was generated from the following files: diff --git a/docs/html/class_intelli_tool.js b/docs/html/class_intelli_tool.js index a16ad6d..66bfe15 100644 --- a/docs/html/class_intelli_tool.js +++ b/docs/html/class_intelli_tool.js @@ -7,6 +7,7 @@ var class_intelli_tool = [ "onMouseMoved", "class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639", null ], [ "onMouseRightPressed", "class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966", null ], [ "onMouseRightReleased", "class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0", null ], + [ "onWheelScrolled", "class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574", null ], [ "Active", "class_intelli_tool.html#a13512e95d21a9934ecb36d73b118c25f", null ], [ "Area", "class_intelli_tool.html#ab4c2698a0f9f25fb6639ec760d2d0289", null ], [ "Canvas", "class_intelli_tool.html#a144d469cc03584f501194529a1b53c77", null ], diff --git a/docs/html/class_intelli_tool__coll__graph.dot b/docs/html/class_intelli_tool__coll__graph.dot index 4c2d980..f5165d5 100644 --- a/docs/html/class_intelli_tool__coll__graph.dot +++ b/docs/html/class_intelli_tool__coll__graph.dot @@ -3,15 +3,15 @@ digraph "IntelliTool" // LATEX_PDF_SIZE edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; - Node1 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; Node2 -> Node1 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Area" ,fontname="Helvetica"]; Node2 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip=" "]; Node3 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node3 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; Node4 -> Node1 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" colorPicker" ,fontname="Helvetica"]; - Node4 [label="IntelliColorPicker",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html",tooltip=" "]; + Node4 [label="IntelliColorPicker",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html",tooltip="The IntelliColorPicker manages the selected colors for one whole project."]; Node5 -> Node1 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Canvas\nActive" ,fontname="Helvetica"]; Node5 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip=" "]; Node6 -> Node5 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" image" ,fontname="Helvetica"]; - Node6 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip=" "]; + Node6 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip="An abstract class which manages the basic IntelliImage operations."]; } diff --git a/docs/html/class_intelli_tool__inherit__graph.dot b/docs/html/class_intelli_tool__inherit__graph.dot index b364efc..30ebbe1 100644 --- a/docs/html/class_intelli_tool__inherit__graph.dot +++ b/docs/html/class_intelli_tool__inherit__graph.dot @@ -3,11 +3,18 @@ digraph "IntelliTool" // LATEX_PDF_SIZE edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; - Node1 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + rankdir="LR"; + Node1 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliToolLine",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html",tooltip=" "]; + Node2 [label="IntelliToolCircle",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html",tooltip=" "]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolPen",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html",tooltip=" "]; + Node3 [label="IntelliToolFloodFill",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html",tooltip=" "]; Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolPlainTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html",tooltip=" "]; + Node4 [label="IntelliToolLine",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html",tooltip=" "]; + Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="IntelliToolPen",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html",tooltip=" "]; + Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="IntelliToolPlainTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html",tooltip=" "]; + Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="IntelliToolRectangle",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html",tooltip=" "]; } diff --git a/docs/html/class_intelli_tool_a16189b00307c6d7e89f28198f54404b0_icgraph.dot b/docs/html/class_intelli_tool_a16189b00307c6d7e89f28198f54404b0_icgraph.dot index 34cc64e..e81b809 100644 --- a/docs/html/class_intelli_tool_a16189b00307c6d7e89f28198f54404b0_icgraph.dot +++ b/docs/html/class_intelli_tool_a16189b00307c6d7e89f28198f54404b0_icgraph.dot @@ -4,13 +4,19 @@ digraph "IntelliTool::onMouseRightReleased" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="RL"; - Node1 [label="IntelliTool::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliTool::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="PaintingArea::mouseRelease\lEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a35b5df914acb608cc29717659793359c",tooltip=" "]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolPlainTool\l::onMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#a2ae458f1b04eb77a47f6dca5e91e33b8",tooltip=" "]; + Node3 [label="IntelliToolFloodFill\l::onMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#a39cf49c0ce46f96be3510f0b70c9d892",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolPen::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#abf8562e8cd2da586afdf4d47b3a4ff13",tooltip=" "]; + Node4 [label="IntelliToolPlainTool\l::onMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#a2ae458f1b04eb77a47f6dca5e91e33b8",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliToolLine::onMouse\lRightReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a6214918cba5753f89d97de4559a2b9b2",tooltip=" "]; + Node5 [label="IntelliToolPen::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#abf8562e8cd2da586afdf4d47b3a4ff13",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; + Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="IntelliToolCircle::\lonMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#aca07540f2f7ccb3d2c0b84890c1afc4c",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; + Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="IntelliToolRectangle\l::onMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#ad43f653256a6516b9398f82054be0d7f",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; + Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="IntelliToolLine::onMouse\lRightReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a6214918cba5753f89d97de4559a2b9b2",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; } diff --git a/docs/html/class_intelli_tool_a1e6aa68ac5f3c2ca02319e5ef3f0c966_icgraph.dot b/docs/html/class_intelli_tool_a1e6aa68ac5f3c2ca02319e5ef3f0c966_icgraph.dot index 7fcd304..c8156d8 100644 --- a/docs/html/class_intelli_tool_a1e6aa68ac5f3c2ca02319e5ef3f0c966_icgraph.dot +++ b/docs/html/class_intelli_tool_a1e6aa68ac5f3c2ca02319e5ef3f0c966_icgraph.dot @@ -4,13 +4,19 @@ digraph "IntelliTool::onMouseRightPressed" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="RL"; - Node1 [label="IntelliTool::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliTool::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="PaintingArea::mousePress\lEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15",tooltip=" "]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolPlainTool\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#acb0c46e16d2c09370a2244a936de38b1",tooltip=" "]; + Node3 [label="IntelliToolFloodFill\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#ada0f7154d119102410a55038763a17e4",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolPen::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a1751e3864a0d36ef42ca55021cae73ce",tooltip=" "]; + Node4 [label="IntelliToolPlainTool\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#acb0c46e16d2c09370a2244a936de38b1",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliToolLine::onMouse\lRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a6cce59f3017936214b10b47252a898a3",tooltip=" "]; + Node5 [label="IntelliToolPen::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a1751e3864a0d36ef42ca55021cae73ce",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; + Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="IntelliToolCircle::\lonMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#a29d7b9ed4960e6fe1f31ff620363e429",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; + Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="IntelliToolRectangle\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#a480c6804a4963c5a1c3f7ef84b63c1a8",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; + Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="IntelliToolLine::onMouse\lRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a6cce59f3017936214b10b47252a898a3",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; } diff --git a/docs/html/class_intelli_tool_a34b7ef1dde96b94a0ce450a25ae1778c_cgraph.dot b/docs/html/class_intelli_tool_a34b7ef1dde96b94a0ce450a25ae1778c_cgraph.dot index 460edce..fdaba4f 100644 --- a/docs/html/class_intelli_tool_a34b7ef1dde96b94a0ce450a25ae1778c_cgraph.dot +++ b/docs/html/class_intelli_tool_a34b7ef1dde96b94a0ce450a25ae1778c_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliTool::onMouseLeftPressed" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliTool::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliTool::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; + Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; } diff --git a/docs/html/class_intelli_tool_a34b7ef1dde96b94a0ce450a25ae1778c_icgraph.dot b/docs/html/class_intelli_tool_a34b7ef1dde96b94a0ce450a25ae1778c_icgraph.dot index 998ce10..5011127 100644 --- a/docs/html/class_intelli_tool_a34b7ef1dde96b94a0ce450a25ae1778c_icgraph.dot +++ b/docs/html/class_intelli_tool_a34b7ef1dde96b94a0ce450a25ae1778c_icgraph.dot @@ -4,13 +4,19 @@ digraph "IntelliTool::onMouseLeftPressed" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="RL"; - Node1 [label="IntelliTool::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliTool::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="PaintingArea::mousePress\lEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15",tooltip=" "]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9",tooltip=" "]; + Node3 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205",tooltip=" "]; + Node4 [label="IntelliToolFloodFill\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliToolLine::onMouse\lLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846",tooltip=" "]; + Node5 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="IntelliToolCircle::\lonMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#ae883b8ae833c78a8867e626c600f9639",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="IntelliToolRectangle\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#ae03c307ccf66cbe3fd59e3657712368d",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="IntelliToolLine::onMouse\lLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; } diff --git a/docs/html/class_intelli_tool_a4dccfd4460255ccb866f336406a33574_icgraph.dot b/docs/html/class_intelli_tool_a4dccfd4460255ccb866f336406a33574_icgraph.dot new file mode 100644 index 0000000..987ac96 --- /dev/null +++ b/docs/html/class_intelli_tool_a4dccfd4460255ccb866f336406a33574_icgraph.dot @@ -0,0 +1,22 @@ +digraph "IntelliTool::onWheelScrolled" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="IntelliTool::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliToolPlainTool\l::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#adc004ea421e2cc0ac39cc7a6b6d43d0d",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliToolFloodFill\l::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#ad58cc7c065123beb6b0270f99e99b991",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliToolPen::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#afe3626ddff440ab125f4a2465c45427a",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="IntelliToolCircle::\lonWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#ae2d9b0fb6695c184c4cb507a5fb75506",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="IntelliToolRectangle\l::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#a445c53a56e859f970e59f5036e221e0c",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="IntelliToolLine::onWheel\lScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#aaf1d686e1ec43f41b5186ccfd806b125",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="PaintingArea::wheelEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a632848d99f44d33d7da2618fbc6775a4",tooltip=" "]; +} diff --git a/docs/html/class_intelli_tool_a906a2575c16c8a33cb2a5197f8d8cc5b_cgraph.dot b/docs/html/class_intelli_tool_a906a2575c16c8a33cb2a5197f8d8cc5b_cgraph.dot index 09d1db7..6ede39e 100644 --- a/docs/html/class_intelli_tool_a906a2575c16c8a33cb2a5197f8d8cc5b_cgraph.dot +++ b/docs/html/class_intelli_tool_a906a2575c16c8a33cb2a5197f8d8cc5b_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliTool::onMouseLeftReleased" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; + Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; } diff --git a/docs/html/class_intelli_tool_a906a2575c16c8a33cb2a5197f8d8cc5b_icgraph.dot b/docs/html/class_intelli_tool_a906a2575c16c8a33cb2a5197f8d8cc5b_icgraph.dot index 03ee315..8b3287f 100644 --- a/docs/html/class_intelli_tool_a906a2575c16c8a33cb2a5197f8d8cc5b_icgraph.dot +++ b/docs/html/class_intelli_tool_a906a2575c16c8a33cb2a5197f8d8cc5b_icgraph.dot @@ -4,13 +4,19 @@ digraph "IntelliTool::onMouseLeftReleased" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="RL"; - Node1 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="PaintingArea::mouseRelease\lEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a35b5df914acb608cc29717659793359c",tooltip=" "]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolPlainTool\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ac23f5d0f07e42fd7c2ea3fc1347da400",tooltip=" "]; + Node3 [label="IntelliToolPlainTool\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ac23f5d0f07e42fd7c2ea3fc1347da400",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolPen::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#abda7a22b9766fa4ad254324a53cab94d",tooltip=" "]; + Node4 [label="IntelliToolFloodFill\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#a7438ef96c6c36068bce76e2364e8594c",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliToolLine::onMouse\lLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#ac93f76ff20a1c111a403b298bab02482",tooltip=" "]; + Node5 [label="IntelliToolPen::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#abda7a22b9766fa4ad254324a53cab94d",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="IntelliToolCircle::\lonMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#ad8e438ec997c57262b5efc2db4cee1a3",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="IntelliToolRectangle\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#a94460e3ff1c19e80bde922c55f53cc43",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="IntelliToolLine::onMouse\lLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#ac93f76ff20a1c111a403b298bab02482",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; } diff --git a/docs/html/class_intelli_tool_ac10e20414cd8855a2f9b103fb6408639_cgraph.dot b/docs/html/class_intelli_tool_ac10e20414cd8855a2f9b103fb6408639_cgraph.dot index 030bed6..15d8a44 100644 --- a/docs/html/class_intelli_tool_ac10e20414cd8855a2f9b103fb6408639_cgraph.dot +++ b/docs/html/class_intelli_tool_ac10e20414cd8855a2f9b103fb6408639_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliTool::onMouseMoved" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the mouse moved event. Call this in child classes!"]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; + Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; } diff --git a/docs/html/class_intelli_tool_ac10e20414cd8855a2f9b103fb6408639_icgraph.dot b/docs/html/class_intelli_tool_ac10e20414cd8855a2f9b103fb6408639_icgraph.dot index 6c4d15a..048f5a8 100644 --- a/docs/html/class_intelli_tool_ac10e20414cd8855a2f9b103fb6408639_icgraph.dot +++ b/docs/html/class_intelli_tool_ac10e20414cd8855a2f9b103fb6408639_icgraph.dot @@ -4,13 +4,19 @@ digraph "IntelliTool::onMouseMoved" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="RL"; - Node1 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the mouse moved event. Call this in child classes!"]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="PaintingArea::mouseMoveEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#aa22e274b6094a9619f196cd7b49526b5",tooltip=" "]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolPlainTool\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ad7546a6335bb3bb4cbf0e1883788d41c",tooltip=" "]; + Node3 [label="IntelliToolPlainTool\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ad7546a6335bb3bb4cbf0e1883788d41c",tooltip="A function managing the mouse moved event. Call this in child classes!"]; Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolPen::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2",tooltip=" "]; + Node4 [label="IntelliToolFloodFill\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#a3cd42cea99bc7583875abcc0c274c668",tooltip="A function managing the mouse moved event. Call this in child classes!"]; Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip=" "]; + Node5 [label="IntelliToolPen::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="IntelliToolCircle::\lonMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#a90ee58c5390a86afc75c14ca79b91d7b",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="IntelliToolRectangle\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#a4b5931071e21eb6949ffe357315e408b",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip="A function managing the mouse moved event. Call this in child classes!"]; } diff --git a/docs/html/class_intelli_tool_circle-members.html b/docs/html/class_intelli_tool_circle-members.html new file mode 100644 index 0000000..e74c856 --- /dev/null +++ b/docs/html/class_intelli_tool_circle-members.html @@ -0,0 +1,122 @@ + + + + + + + +IntelliPhoto: Member List + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    IntelliPhoto +  0.4 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    IntelliToolCircle Member List
    +
    +
    + +

    This is the complete list of members for IntelliToolCircle, including all inherited members.

    + + + + + + + + + + + + + + + + +
    ActiveIntelliToolprotected
    AreaIntelliToolprotected
    CanvasIntelliToolprotected
    colorPickerIntelliToolprotected
    drawingIntelliToolprotected
    IntelliTool(PaintingArea *Area, IntelliColorPicker *colorPicker)IntelliTool
    IntelliToolCircle(PaintingArea *Area, IntelliColorPicker *colorPicker)IntelliToolCircle
    onMouseLeftPressed(int x, int y) overrideIntelliToolCirclevirtual
    onMouseLeftReleased(int x, int y) overrideIntelliToolCirclevirtual
    onMouseMoved(int x, int y) overrideIntelliToolCirclevirtual
    onMouseRightPressed(int x, int y) overrideIntelliToolCirclevirtual
    onMouseRightReleased(int x, int y) overrideIntelliToolCirclevirtual
    onWheelScrolled(int value) overrideIntelliToolCirclevirtual
    ~IntelliTool()=0IntelliToolpure virtual
    ~IntelliToolCircle() overrideIntelliToolCirclevirtual
    +
    + + + + diff --git a/docs/html/class_intelli_tool_circle.html b/docs/html/class_intelli_tool_circle.html new file mode 100644 index 0000000..d855005 --- /dev/null +++ b/docs/html/class_intelli_tool_circle.html @@ -0,0 +1,551 @@ + + + + + + + +IntelliPhoto: IntelliToolCircle Class Reference + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    IntelliPhoto +  0.4 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    IntelliToolCircle Class Reference
    +
    +
    + +

    #include <IntelliToolCircle.h>

    +
    +Inheritance diagram for IntelliToolCircle:
    +
    +
    Inheritance graph
    +
    [legend]
    +
    +Collaboration diagram for IntelliToolCircle:
    +
    +
    Collaboration graph
    +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     IntelliToolCircle (PaintingArea *Area, IntelliColorPicker *colorPicker)
     
    virtual ~IntelliToolCircle () override
     
    virtual void onMouseRightPressed (int x, int y) override
     A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes! More...
     
    virtual void onMouseRightReleased (int x, int y) override
     A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes! More...
     
    virtual void onMouseLeftPressed (int x, int y) override
     A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes! More...
     
    virtual void onMouseLeftReleased (int x, int y) override
     A function managing the left click Released of a Mouse. Call this in child classes! More...
     
    virtual void onWheelScrolled (int value) override
     A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes! More...
     
    virtual void onMouseMoved (int x, int y) override
     A function managing the mouse moved event. Call this in child classes! More...
     
    - Public Member Functions inherited from IntelliTool
     IntelliTool (PaintingArea *Area, IntelliColorPicker *colorPicker)
     A constructor setting the general Painting Area and colorPicker. More...
     
    virtual ~IntelliTool ()=0
     An abstract Destructor. More...
     
    + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Attributes inherited from IntelliTool
    PaintingAreaArea
     A pointer to the general PaintingArea to interact with. More...
     
    IntelliColorPickercolorPicker
     A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors. More...
     
    LayerObjectActive
     A pointer to the underlying active Layer, do not work on this. This is used for data grabbing or previews. More...
     
    LayerObjectCanvas
     A pointer to the drawing canvas of the tool, work on this. More...
     
    bool drawing = false
     A flag checking if the user is currently drawing or not. More...
     
    +

    Detailed Description

    +
    +

    Definition at line 8 of file IntelliToolCircle.h.

    +

    Constructor & Destructor Documentation

    + +

    ◆ IntelliToolCircle()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    IntelliToolCircle::IntelliToolCircle (PaintingAreaArea,
    IntelliColorPickercolorPicker 
    )
    +
    + +

    Definition at line 6 of file IntelliToolCircle.cpp.

    + +
    +
    + +

    ◆ ~IntelliToolCircle()

    + +
    +
    + + + + + +
    + + + + + + + +
    IntelliToolCircle::~IntelliToolCircle ()
    +
    +overridevirtual
    +
    + +

    Definition at line 12 of file IntelliToolCircle.cpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ onMouseLeftPressed()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void IntelliToolCircle::onMouseLeftPressed (int x,
    int y 
    )
    +
    +overridevirtual
    +
    + +

    A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    +
    +
    + +

    Reimplemented from IntelliTool.

    + +

    Definition at line 59 of file IntelliToolCircle.cpp.

    +
    +Here is the call graph for this function:
    +
    +
    +
    + +
    +
    + +

    ◆ onMouseLeftReleased()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void IntelliToolCircle::onMouseLeftReleased (int x,
    int y 
    )
    +
    +overridevirtual
    +
    + +

    A function managing the left click Released of a Mouse. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    +
    +
    + +

    Reimplemented from IntelliTool.

    + +

    Definition at line 67 of file IntelliToolCircle.cpp.

    +
    +Here is the call graph for this function:
    +
    +
    +
    + +
    +
    + +

    ◆ onMouseMoved()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void IntelliToolCircle::onMouseMoved (int x,
    int y 
    )
    +
    +overridevirtual
    +
    + +

    A function managing the mouse moved event. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate of the new Mouse Position.
    y- The y coordinate of the new Mouse Position.
    +
    +
    + +

    Reimplemented from IntelliTool.

    + +

    Definition at line 79 of file IntelliToolCircle.cpp.

    +
    +Here is the call graph for this function:
    +
    +
    +
    + +
    +
    + +

    ◆ onMouseRightPressed()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void IntelliToolCircle::onMouseRightPressed (int x,
    int y 
    )
    +
    +overridevirtual
    +
    + +

    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    +
    +
    + +

    Reimplemented from IntelliTool.

    + +

    Definition at line 51 of file IntelliToolCircle.cpp.

    +
    +Here is the call graph for this function:
    +
    +
    +
    + +
    +
    + +

    ◆ onMouseRightReleased()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void IntelliToolCircle::onMouseRightReleased (int x,
    int y 
    )
    +
    +overridevirtual
    +
    + +

    A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    +
    +
    + +

    Reimplemented from IntelliTool.

    + +

    Definition at line 55 of file IntelliToolCircle.cpp.

    +
    +Here is the call graph for this function:
    +
    +
    +
    + +
    +
    + +

    ◆ onWheelScrolled()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void IntelliToolCircle::onWheelScrolled (int value)
    +
    +overridevirtual
    +
    + +

    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes!

    +
    Parameters
    + + +
    value- The absolute the scroll has changed.
    +
    +
    + +

    Reimplemented from IntelliTool.

    + +

    Definition at line 71 of file IntelliToolCircle.cpp.

    +
    +Here is the call graph for this function:
    +
    +
    +
    + +
    +
    +
    The documentation for this class was generated from the following files: +
    +
    + + + + diff --git a/docs/html/class_intelli_tool_circle.js b/docs/html/class_intelli_tool_circle.js new file mode 100644 index 0000000..bf59fab --- /dev/null +++ b/docs/html/class_intelli_tool_circle.js @@ -0,0 +1,11 @@ +var class_intelli_tool_circle = +[ + [ "IntelliToolCircle", "class_intelli_tool_circle.html#a9b185b9d327f8602d0b7f667b8d1d32a", null ], + [ "~IntelliToolCircle", "class_intelli_tool_circle.html#a7a03b65b95d7b5d72e6a92c95f068954", null ], + [ "onMouseLeftPressed", "class_intelli_tool_circle.html#ae883b8ae833c78a8867e626c600f9639", null ], + [ "onMouseLeftReleased", "class_intelli_tool_circle.html#ad8e438ec997c57262b5efc2db4cee1a3", null ], + [ "onMouseMoved", "class_intelli_tool_circle.html#a90ee58c5390a86afc75c14ca79b91d7b", null ], + [ "onMouseRightPressed", "class_intelli_tool_circle.html#a29d7b9ed4960e6fe1f31ff620363e429", null ], + [ "onMouseRightReleased", "class_intelli_tool_circle.html#aca07540f2f7ccb3d2c0b84890c1afc4c", null ], + [ "onWheelScrolled", "class_intelli_tool_circle.html#ae2d9b0fb6695c184c4cb507a5fb75506", null ] +]; \ No newline at end of file diff --git a/docs/html/class_intelli_tool_circle__coll__graph.dot b/docs/html/class_intelli_tool_circle__coll__graph.dot new file mode 100644 index 0000000..5fa60b6 --- /dev/null +++ b/docs/html/class_intelli_tool_circle__coll__graph.dot @@ -0,0 +1,19 @@ +digraph "IntelliToolCircle" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="IntelliToolCircle",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; + Node3 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Area" ,fontname="Helvetica"]; + Node3 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip=" "]; + Node4 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node5 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" colorPicker" ,fontname="Helvetica"]; + Node5 [label="IntelliColorPicker",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html",tooltip="The IntelliColorPicker manages the selected colors for one whole project."]; + Node6 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Canvas\nActive" ,fontname="Helvetica"]; + Node6 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip=" "]; + Node7 -> Node6 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" image" ,fontname="Helvetica"]; + Node7 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip="An abstract class which manages the basic IntelliImage operations."]; +} diff --git a/docs/html/class_intelli_tool_circle__inherit__graph.dot b/docs/html/class_intelli_tool_circle__inherit__graph.dot new file mode 100644 index 0000000..2a77ab5 --- /dev/null +++ b/docs/html/class_intelli_tool_circle__inherit__graph.dot @@ -0,0 +1,9 @@ +digraph "IntelliToolCircle" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="IntelliToolCircle",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; +} diff --git a/docs/html/class_intelli_tool_circle_a29d7b9ed4960e6fe1f31ff620363e429_cgraph.dot b/docs/html/class_intelli_tool_circle_a29d7b9ed4960e6fe1f31ff620363e429_cgraph.dot new file mode 100644 index 0000000..6ce40e1 --- /dev/null +++ b/docs/html/class_intelli_tool_circle_a29d7b9ed4960e6fe1f31ff620363e429_cgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliToolCircle::onMouseRightPressed" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolCircle::\lonMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; +} diff --git a/docs/html/class_intelli_tool_circle_a90ee58c5390a86afc75c14ca79b91d7b_cgraph.dot b/docs/html/class_intelli_tool_circle_a90ee58c5390a86afc75c14ca79b91d7b_cgraph.dot new file mode 100644 index 0000000..e7eae3c --- /dev/null +++ b/docs/html/class_intelli_tool_circle_a90ee58c5390a86afc75c14ca79b91d7b_cgraph.dot @@ -0,0 +1,14 @@ +digraph "IntelliToolCircle::onMouseMoved" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolCircle::\lonMouseMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliImage::drawPlain",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#a6be622810dc2bc756054bb5769becb06",tooltip="A function that clears the whole image in a given Color."]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; +} diff --git a/docs/html/class_intelli_tool_circle_aca07540f2f7ccb3d2c0b84890c1afc4c_cgraph.dot b/docs/html/class_intelli_tool_circle_aca07540f2f7ccb3d2c0b84890c1afc4c_cgraph.dot new file mode 100644 index 0000000..fd9558f --- /dev/null +++ b/docs/html/class_intelli_tool_circle_aca07540f2f7ccb3d2c0b84890c1afc4c_cgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliToolCircle::onMouseRightReleased" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolCircle::\lonMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; +} diff --git a/docs/html/class_intelli_tool_circle_ad8e438ec997c57262b5efc2db4cee1a3_cgraph.dot b/docs/html/class_intelli_tool_circle_ad8e438ec997c57262b5efc2db4cee1a3_cgraph.dot new file mode 100644 index 0000000..c8ebbbe --- /dev/null +++ b/docs/html/class_intelli_tool_circle_ad8e438ec997c57262b5efc2db4cee1a3_cgraph.dot @@ -0,0 +1,12 @@ +digraph "IntelliToolCircle::onMouseLeftReleased" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolCircle::\lonMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; +} diff --git a/docs/html/class_intelli_tool_circle_ae2d9b0fb6695c184c4cb507a5fb75506_cgraph.dot b/docs/html/class_intelli_tool_circle_ae2d9b0fb6695c184c4cb507a5fb75506_cgraph.dot new file mode 100644 index 0000000..ced76a5 --- /dev/null +++ b/docs/html/class_intelli_tool_circle_ae2d9b0fb6695c184c4cb507a5fb75506_cgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliToolCircle::onWheelScrolled" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolCircle::\lonWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; +} diff --git a/docs/html/class_intelli_tool_circle_ae883b8ae833c78a8867e626c600f9639_cgraph.dot b/docs/html/class_intelli_tool_circle_ae883b8ae833c78a8867e626c600f9639_cgraph.dot new file mode 100644 index 0000000..f614a25 --- /dev/null +++ b/docs/html/class_intelli_tool_circle_ae883b8ae833c78a8867e626c600f9639_cgraph.dot @@ -0,0 +1,13 @@ +digraph "IntelliToolCircle::onMouseLeftPressed" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolCircle::\lonMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliTool::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node3 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/docs/html/class_intelli_tool_flood_fill-members.html b/docs/html/class_intelli_tool_flood_fill-members.html new file mode 100644 index 0000000..3004cf0 --- /dev/null +++ b/docs/html/class_intelli_tool_flood_fill-members.html @@ -0,0 +1,122 @@ + + + + + + + +IntelliPhoto: Member List + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    IntelliPhoto +  0.4 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    IntelliToolFloodFill Member List
    +
    +
    + +

    This is the complete list of members for IntelliToolFloodFill, including all inherited members.

    + + + + + + + + + + + + + + + + +
    ActiveIntelliToolprotected
    AreaIntelliToolprotected
    CanvasIntelliToolprotected
    colorPickerIntelliToolprotected
    drawingIntelliToolprotected
    IntelliTool(PaintingArea *Area, IntelliColorPicker *colorPicker)IntelliTool
    IntelliToolFloodFill(PaintingArea *Area, IntelliColorPicker *colorPicker)IntelliToolFloodFill
    onMouseLeftPressed(int x, int y) overrideIntelliToolFloodFillvirtual
    onMouseLeftReleased(int x, int y) overrideIntelliToolFloodFillvirtual
    onMouseMoved(int x, int y) overrideIntelliToolFloodFillvirtual
    onMouseRightPressed(int x, int y) overrideIntelliToolFloodFillvirtual
    onMouseRightReleased(int x, int y) overrideIntelliToolFloodFillvirtual
    onWheelScrolled(int value) overrideIntelliToolFloodFillvirtual
    ~IntelliTool()=0IntelliToolpure virtual
    ~IntelliToolFloodFill() overrideIntelliToolFloodFillvirtual
    +
    + + + + diff --git a/docs/html/class_intelli_tool_flood_fill.html b/docs/html/class_intelli_tool_flood_fill.html new file mode 100644 index 0000000..af82765 --- /dev/null +++ b/docs/html/class_intelli_tool_flood_fill.html @@ -0,0 +1,551 @@ + + + + + + + +IntelliPhoto: IntelliToolFloodFill Class Reference + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    IntelliPhoto +  0.4 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    IntelliToolFloodFill Class Reference
    +
    +
    + +

    #include <IntelliToolFloodFill.h>

    +
    +Inheritance diagram for IntelliToolFloodFill:
    +
    +
    Inheritance graph
    +
    [legend]
    +
    +Collaboration diagram for IntelliToolFloodFill:
    +
    +
    Collaboration graph
    +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     IntelliToolFloodFill (PaintingArea *Area, IntelliColorPicker *colorPicker)
     
    virtual ~IntelliToolFloodFill () override
     
    virtual void onMouseRightPressed (int x, int y) override
     A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes! More...
     
    virtual void onMouseRightReleased (int x, int y) override
     A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes! More...
     
    virtual void onMouseLeftPressed (int x, int y) override
     A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes! More...
     
    virtual void onMouseLeftReleased (int x, int y) override
     A function managing the left click Released of a Mouse. Call this in child classes! More...
     
    virtual void onWheelScrolled (int value) override
     A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes! More...
     
    virtual void onMouseMoved (int x, int y) override
     A function managing the mouse moved event. Call this in child classes! More...
     
    - Public Member Functions inherited from IntelliTool
     IntelliTool (PaintingArea *Area, IntelliColorPicker *colorPicker)
     A constructor setting the general Painting Area and colorPicker. More...
     
    virtual ~IntelliTool ()=0
     An abstract Destructor. More...
     
    + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Attributes inherited from IntelliTool
    PaintingAreaArea
     A pointer to the general PaintingArea to interact with. More...
     
    IntelliColorPickercolorPicker
     A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors. More...
     
    LayerObjectActive
     A pointer to the underlying active Layer, do not work on this. This is used for data grabbing or previews. More...
     
    LayerObjectCanvas
     A pointer to the drawing canvas of the tool, work on this. More...
     
    bool drawing = false
     A flag checking if the user is currently drawing or not. More...
     
    +

    Detailed Description

    +
    +

    Definition at line 7 of file IntelliToolFloodFill.h.

    +

    Constructor & Destructor Documentation

    + +

    ◆ IntelliToolFloodFill()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    IntelliToolFloodFill::IntelliToolFloodFill (PaintingAreaArea,
    IntelliColorPickercolorPicker 
    )
    +
    + +

    Definition at line 8 of file IntelliToolFloodFill.cpp.

    + +
    +
    + +

    ◆ ~IntelliToolFloodFill()

    + +
    +
    + + + + + +
    + + + + + + + +
    IntelliToolFloodFill::~IntelliToolFloodFill ()
    +
    +overridevirtual
    +
    + +

    Definition at line 12 of file IntelliToolFloodFill.cpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ onMouseLeftPressed()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void IntelliToolFloodFill::onMouseLeftPressed (int x,
    int y 
    )
    +
    +overridevirtual
    +
    + +

    A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    +
    +
    + +

    Reimplemented from IntelliTool.

    + +

    Definition at line 25 of file IntelliToolFloodFill.cpp.

    +
    +Here is the call graph for this function:
    +
    +
    +
    + +
    +
    + +

    ◆ onMouseLeftReleased()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void IntelliToolFloodFill::onMouseLeftReleased (int x,
    int y 
    )
    +
    +overridevirtual
    +
    + +

    A function managing the left click Released of a Mouse. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    +
    +
    + +

    Reimplemented from IntelliTool.

    + +

    Definition at line 66 of file IntelliToolFloodFill.cpp.

    +
    +Here is the call graph for this function:
    +
    +
    +
    + +
    +
    + +

    ◆ onMouseMoved()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void IntelliToolFloodFill::onMouseMoved (int x,
    int y 
    )
    +
    +overridevirtual
    +
    + +

    A function managing the mouse moved event. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate of the new Mouse Position.
    y- The y coordinate of the new Mouse Position.
    +
    +
    + +

    Reimplemented from IntelliTool.

    + +

    Definition at line 75 of file IntelliToolFloodFill.cpp.

    +
    +Here is the call graph for this function:
    +
    +
    +
    + +
    +
    + +

    ◆ onMouseRightPressed()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void IntelliToolFloodFill::onMouseRightPressed (int x,
    int y 
    )
    +
    +overridevirtual
    +
    + +

    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    +
    +
    + +

    Reimplemented from IntelliTool.

    + +

    Definition at line 17 of file IntelliToolFloodFill.cpp.

    +
    +Here is the call graph for this function:
    +
    +
    +
    + +
    +
    + +

    ◆ onMouseRightReleased()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void IntelliToolFloodFill::onMouseRightReleased (int x,
    int y 
    )
    +
    +overridevirtual
    +
    + +

    A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    +
    +
    + +

    Reimplemented from IntelliTool.

    + +

    Definition at line 21 of file IntelliToolFloodFill.cpp.

    +
    +Here is the call graph for this function:
    +
    +
    +
    + +
    +
    + +

    ◆ onWheelScrolled()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void IntelliToolFloodFill::onWheelScrolled (int value)
    +
    +overridevirtual
    +
    + +

    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes!

    +
    Parameters
    + + +
    value- The absolute the scroll has changed.
    +
    +
    + +

    Reimplemented from IntelliTool.

    + +

    Definition at line 70 of file IntelliToolFloodFill.cpp.

    +
    +Here is the call graph for this function:
    +
    +
    +
    + +
    +
    +
    The documentation for this class was generated from the following files: +
    +
    + + + + diff --git a/docs/html/class_intelli_tool_flood_fill.js b/docs/html/class_intelli_tool_flood_fill.js new file mode 100644 index 0000000..b410d56 --- /dev/null +++ b/docs/html/class_intelli_tool_flood_fill.js @@ -0,0 +1,11 @@ +var class_intelli_tool_flood_fill = +[ + [ "IntelliToolFloodFill", "class_intelli_tool_flood_fill.html#a83b51838da304e274bf866cf2fd5407a", null ], + [ "~IntelliToolFloodFill", "class_intelli_tool_flood_fill.html#a83b1bd8be0cbb32cdf61a9597ec849ba", null ], + [ "onMouseLeftPressed", "class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961", null ], + [ "onMouseLeftReleased", "class_intelli_tool_flood_fill.html#a7438ef96c6c36068bce76e2364e8594c", null ], + [ "onMouseMoved", "class_intelli_tool_flood_fill.html#a3cd42cea99bc7583875abcc0c274c668", null ], + [ "onMouseRightPressed", "class_intelli_tool_flood_fill.html#ada0f7154d119102410a55038763a17e4", null ], + [ "onMouseRightReleased", "class_intelli_tool_flood_fill.html#a39cf49c0ce46f96be3510f0b70c9d892", null ], + [ "onWheelScrolled", "class_intelli_tool_flood_fill.html#ad58cc7c065123beb6b0270f99e99b991", null ] +]; \ No newline at end of file diff --git a/docs/html/class_intelli_tool_flood_fill__coll__graph.dot b/docs/html/class_intelli_tool_flood_fill__coll__graph.dot new file mode 100644 index 0000000..f548fef --- /dev/null +++ b/docs/html/class_intelli_tool_flood_fill__coll__graph.dot @@ -0,0 +1,19 @@ +digraph "IntelliToolFloodFill" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="IntelliToolFloodFill",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; + Node3 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Area" ,fontname="Helvetica"]; + Node3 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip=" "]; + Node4 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node5 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" colorPicker" ,fontname="Helvetica"]; + Node5 [label="IntelliColorPicker",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html",tooltip="The IntelliColorPicker manages the selected colors for one whole project."]; + Node6 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Canvas\nActive" ,fontname="Helvetica"]; + Node6 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip=" "]; + Node7 -> Node6 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" image" ,fontname="Helvetica"]; + Node7 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip="An abstract class which manages the basic IntelliImage operations."]; +} diff --git a/docs/html/class_intelli_tool_flood_fill__inherit__graph.dot b/docs/html/class_intelli_tool_flood_fill__inherit__graph.dot new file mode 100644 index 0000000..d6b8ccf --- /dev/null +++ b/docs/html/class_intelli_tool_flood_fill__inherit__graph.dot @@ -0,0 +1,9 @@ +digraph "IntelliToolFloodFill" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="IntelliToolFloodFill",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; +} diff --git a/docs/html/class_intelli_tool_flood_fill_a39cf49c0ce46f96be3510f0b70c9d892_cgraph.dot b/docs/html/class_intelli_tool_flood_fill_a39cf49c0ce46f96be3510f0b70c9d892_cgraph.dot new file mode 100644 index 0000000..885e974 --- /dev/null +++ b/docs/html/class_intelli_tool_flood_fill_a39cf49c0ce46f96be3510f0b70c9d892_cgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliToolFloodFill::onMouseRightReleased" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolFloodFill\l::onMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; +} diff --git a/docs/html/class_intelli_tool_flood_fill_a3cd42cea99bc7583875abcc0c274c668_cgraph.dot b/docs/html/class_intelli_tool_flood_fill_a3cd42cea99bc7583875abcc0c274c668_cgraph.dot new file mode 100644 index 0000000..ce3700c --- /dev/null +++ b/docs/html/class_intelli_tool_flood_fill_a3cd42cea99bc7583875abcc0c274c668_cgraph.dot @@ -0,0 +1,12 @@ +digraph "IntelliToolFloodFill::onMouseMoved" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolFloodFill\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; +} diff --git a/docs/html/class_intelli_tool_flood_fill_a7438ef96c6c36068bce76e2364e8594c_cgraph.dot b/docs/html/class_intelli_tool_flood_fill_a7438ef96c6c36068bce76e2364e8594c_cgraph.dot new file mode 100644 index 0000000..c45d9dd --- /dev/null +++ b/docs/html/class_intelli_tool_flood_fill_a7438ef96c6c36068bce76e2364e8594c_cgraph.dot @@ -0,0 +1,12 @@ +digraph "IntelliToolFloodFill::onMouseLeftReleased" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolFloodFill\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; +} diff --git a/docs/html/class_intelli_tool_flood_fill_ac85e3cb6233508ff9612833a8d9e3961_cgraph.dot b/docs/html/class_intelli_tool_flood_fill_ac85e3cb6233508ff9612833a8d9e3961_cgraph.dot new file mode 100644 index 0000000..da678d3 --- /dev/null +++ b/docs/html/class_intelli_tool_flood_fill_ac85e3cb6233508ff9612833a8d9e3961_cgraph.dot @@ -0,0 +1,19 @@ +digraph "IntelliToolFloodFill::onMouseLeftPressed" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolFloodFill\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliImage::drawPixel",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#af3c859f5c409e37051edfd9e9fbca056",tooltip="A funtcion used to draw a pixel on the Image with the given Color."]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7",tooltip="A function to read the primary selected color."]; + Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="IntelliImage::getPixelColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#a4576ebb6d863321c816293d7b7f9fd3f",tooltip="A function that returns the pixelcolor at a certain point."]; + Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="IntelliTool::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node6 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/docs/html/class_intelli_tool_flood_fill_ad58cc7c065123beb6b0270f99e99b991_cgraph.dot b/docs/html/class_intelli_tool_flood_fill_ad58cc7c065123beb6b0270f99e99b991_cgraph.dot new file mode 100644 index 0000000..df939b8 --- /dev/null +++ b/docs/html/class_intelli_tool_flood_fill_ad58cc7c065123beb6b0270f99e99b991_cgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliToolFloodFill::onWheelScrolled" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolFloodFill\l::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; +} diff --git a/docs/html/class_intelli_tool_flood_fill_ada0f7154d119102410a55038763a17e4_cgraph.dot b/docs/html/class_intelli_tool_flood_fill_ada0f7154d119102410a55038763a17e4_cgraph.dot new file mode 100644 index 0000000..b13affc --- /dev/null +++ b/docs/html/class_intelli_tool_flood_fill_ada0f7154d119102410a55038763a17e4_cgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliToolFloodFill::onMouseRightPressed" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolFloodFill\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; +} diff --git a/docs/html/class_intelli_tool_line-members.html b/docs/html/class_intelli_tool_line-members.html index 8794f3f..b7d7265 100644 --- a/docs/html/class_intelli_tool_line-members.html +++ b/docs/html/class_intelli_tool_line-members.html @@ -105,8 +105,9 @@ $(document).ready(function(){initNavTree('class_intelli_tool_line.html','');}); onMouseMoved(int x, int y) overrideIntelliToolLinevirtual onMouseRightPressed(int x, int y) overrideIntelliToolLinevirtual onMouseRightReleased(int x, int y) overrideIntelliToolLinevirtual - ~IntelliTool()=0IntelliToolpure virtual - ~IntelliToolLine() overrideIntelliToolLinevirtual + onWheelScrolled(int value) overrideIntelliToolLinevirtual + ~IntelliTool()=0IntelliToolpure virtual + ~IntelliToolLine() overrideIntelliToolLinevirtual diff --git a/docs/html/class_intelli_tool_line.html b/docs/html/class_intelli_tool_line.html index cea0984..e955110 100644 --- a/docs/html/class_intelli_tool_line.html +++ b/docs/html/class_intelli_tool_line.html @@ -113,38 +113,53 @@ Public Member Functions virtual ~IntelliToolLine () override   virtual void onMouseRightPressed (int x, int y) override + A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes! More...
      virtual void onMouseRightReleased (int x, int y) override + A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes! More...
      virtual void onMouseLeftPressed (int x, int y) override + A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes! More...
      virtual void onMouseLeftReleased (int x, int y) override + A function managing the left click Released of a Mouse. Call this in child classes! More...
      +virtual void onWheelScrolled (int value) override + A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes! More...
    +  virtual void onMouseMoved (int x, int y) override + A function managing the mouse moved event. Call this in child classes! More...
      - Public Member Functions inherited from IntelliTool  IntelliTool (PaintingArea *Area, IntelliColorPicker *colorPicker) + A constructor setting the general Painting Area and colorPicker. More...
      virtual ~IntelliTool ()=0 + An abstract Destructor. More...
      + + + + +

    Additional Inherited Members

    - Protected Attributes inherited from IntelliTool
    PaintingAreaArea
     A pointer to the general PaintingArea to interact with. More...
     
    IntelliColorPickercolorPicker
     A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors. More...
     
    LayerObjectActive
     A pointer to the underlying active Layer, do not work on this. This is used for data grabbing or previews. More...
     
    LayerObjectCanvas
     A pointer to the drawing canvas of the tool, work on this. More...
     
    bool drawing = false
     A flag checking if the user is currently drawing or not. More...
     

    Detailed Description

    -

    Definition at line 13 of file IntelliToolLine.h.

    +

    Definition at line 12 of file IntelliToolLine.h.

    Constructor & Destructor Documentation

    ◆ IntelliToolLine()

    @@ -238,6 +253,15 @@ Additional Inherited Members
    +

    A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    +
    +
    +

    Reimplemented from IntelliTool.

    Definition at line 26 of file IntelliToolLine.cpp.

    @@ -283,6 +307,15 @@ Here is the call graph for this function:
    +

    A function managing the left click Released of a Mouse. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    +
    +
    +

    Reimplemented from IntelliTool.

    Definition at line 33 of file IntelliToolLine.cpp.

    @@ -328,9 +361,18 @@ Here is the call graph for this function:
    +

    A function managing the mouse moved event. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate of the new Mouse Position.
    y- The y coordinate of the new Mouse Position.
    +
    +
    +

    Reimplemented from IntelliTool.

    -

    Definition at line 37 of file IntelliToolLine.cpp.

    +

    Definition at line 45 of file IntelliToolLine.cpp.

    Here is the call graph for this function:
    @@ -373,6 +415,15 @@ Here is the call graph for this function:
    +

    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    +
    +
    +

    Reimplemented from IntelliTool.

    Definition at line 18 of file IntelliToolLine.cpp.

    @@ -418,6 +469,15 @@ Here is the call graph for this function:
    +

    A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    +
    +
    +

    Reimplemented from IntelliTool.

    Definition at line 22 of file IntelliToolLine.cpp.

    @@ -427,11 +487,54 @@ Here is the call graph for this function:
    + + + +

    ◆ onWheelScrolled()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void IntelliToolLine::onWheelScrolled (int value)
    +
    +overridevirtual
    +
    + +

    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes!

    +
    Parameters
    + + +
    value- The absolute the scroll has changed.
    +
    +
    + +

    Reimplemented from IntelliTool.

    + +

    Definition at line 37 of file IntelliToolLine.cpp.

    +
    +Here is the call graph for this function:
    +
    +
    +
    +

    The documentation for this class was generated from the following files: diff --git a/docs/html/class_intelli_tool_line.js b/docs/html/class_intelli_tool_line.js index b729a43..30bab7f 100644 --- a/docs/html/class_intelli_tool_line.js +++ b/docs/html/class_intelli_tool_line.js @@ -6,5 +6,6 @@ var class_intelli_tool_line = [ "onMouseLeftReleased", "class_intelli_tool_line.html#ac93f76ff20a1c111a403b298bab02482", null ], [ "onMouseMoved", "class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b", null ], [ "onMouseRightPressed", "class_intelli_tool_line.html#a6cce59f3017936214b10b47252a898a3", null ], - [ "onMouseRightReleased", "class_intelli_tool_line.html#a6214918cba5753f89d97de4559a2b9b2", null ] + [ "onMouseRightReleased", "class_intelli_tool_line.html#a6214918cba5753f89d97de4559a2b9b2", null ], + [ "onWheelScrolled", "class_intelli_tool_line.html#aaf1d686e1ec43f41b5186ccfd806b125", null ] ]; \ No newline at end of file diff --git a/docs/html/class_intelli_tool_line__coll__graph.dot b/docs/html/class_intelli_tool_line__coll__graph.dot index 98b0f30..cdf5d6d 100644 --- a/docs/html/class_intelli_tool_line__coll__graph.dot +++ b/docs/html/class_intelli_tool_line__coll__graph.dot @@ -5,15 +5,15 @@ digraph "IntelliToolLine" node [fontname="Helvetica",fontsize="10",shape=record]; Node1 [label="IntelliToolLine",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip=" "]; + Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; Node3 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Area" ,fontname="Helvetica"]; Node3 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip=" "]; Node4 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node4 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; Node5 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" colorPicker" ,fontname="Helvetica"]; - Node5 [label="IntelliColorPicker",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html",tooltip=" "]; + Node5 [label="IntelliColorPicker",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html",tooltip="The IntelliColorPicker manages the selected colors for one whole project."]; Node6 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Canvas\nActive" ,fontname="Helvetica"]; Node6 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip=" "]; Node7 -> Node6 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" image" ,fontname="Helvetica"]; - Node7 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip=" "]; + Node7 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip="An abstract class which manages the basic IntelliImage operations."]; } diff --git a/docs/html/class_intelli_tool_line__inherit__graph.dot b/docs/html/class_intelli_tool_line__inherit__graph.dot index fe126d1..acffa2b 100644 --- a/docs/html/class_intelli_tool_line__inherit__graph.dot +++ b/docs/html/class_intelli_tool_line__inherit__graph.dot @@ -5,5 +5,5 @@ digraph "IntelliToolLine" node [fontname="Helvetica",fontsize="10",shape=record]; Node1 [label="IntelliToolLine",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip=" "]; + Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; } diff --git a/docs/html/class_intelli_tool_line_a155d676a5f98311217eb095be4759846_cgraph.dot b/docs/html/class_intelli_tool_line_a155d676a5f98311217eb095be4759846_cgraph.dot index d00e9c4..8d2cb7c 100644 --- a/docs/html/class_intelli_tool_line_a155d676a5f98311217eb095be4759846_cgraph.dot +++ b/docs/html/class_intelli_tool_line_a155d676a5f98311217eb095be4759846_cgraph.dot @@ -4,14 +4,14 @@ digraph "IntelliToolLine::onMouseLeftPressed" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolLine::onMouse\lLeftPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliToolLine::onMouse\lLeftPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; + Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliImage::drawLine",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31",tooltip=" "]; + Node3 [label="IntelliImage::drawLine",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31",tooltip="A function that draws A Line between two given Points in a given color."]; Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7",tooltip=" "]; + Node4 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7",tooltip="A function to read the primary selected color."]; Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliTool::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c",tooltip=" "]; + Node5 [label="IntelliTool::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; Node5 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; } diff --git a/docs/html/class_intelli_tool_line_a6214918cba5753f89d97de4559a2b9b2_cgraph.dot b/docs/html/class_intelli_tool_line_a6214918cba5753f89d97de4559a2b9b2_cgraph.dot index 8be8e3a..56d5bba 100644 --- a/docs/html/class_intelli_tool_line_a6214918cba5753f89d97de4559a2b9b2_cgraph.dot +++ b/docs/html/class_intelli_tool_line_a6214918cba5753f89d97de4559a2b9b2_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolLine::onMouseRightReleased" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolLine::onMouse\lRightReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliToolLine::onMouse\lRightReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliTool::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0",tooltip=" "]; + Node2 [label="IntelliTool::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; } diff --git a/docs/html/class_intelli_tool_line_a6cce59f3017936214b10b47252a898a3_cgraph.dot b/docs/html/class_intelli_tool_line_a6cce59f3017936214b10b47252a898a3_cgraph.dot index 79b5fd2..c7bbc7b 100644 --- a/docs/html/class_intelli_tool_line_a6cce59f3017936214b10b47252a898a3_cgraph.dot +++ b/docs/html/class_intelli_tool_line_a6cce59f3017936214b10b47252a898a3_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolLine::onMouseRightPressed" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolLine::onMouse\lRightPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliToolLine::onMouse\lRightPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliTool::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966",tooltip=" "]; + Node2 [label="IntelliTool::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; } diff --git a/docs/html/class_intelli_tool_line_aaf1d686e1ec43f41b5186ccfd806b125_cgraph.dot b/docs/html/class_intelli_tool_line_aaf1d686e1ec43f41b5186ccfd806b125_cgraph.dot new file mode 100644 index 0000000..1c21026 --- /dev/null +++ b/docs/html/class_intelli_tool_line_aaf1d686e1ec43f41b5186ccfd806b125_cgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliToolLine::onWheelScrolled" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolLine::onWheel\lScrolled",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; +} diff --git a/docs/html/class_intelli_tool_line_abc6324ef0778823fe7e35aef8ae37f9b_cgraph.dot b/docs/html/class_intelli_tool_line_abc6324ef0778823fe7e35aef8ae37f9b_cgraph.dot index c9d16f5..87ff36c 100644 --- a/docs/html/class_intelli_tool_line_abc6324ef0778823fe7e35aef8ae37f9b_cgraph.dot +++ b/docs/html/class_intelli_tool_line_abc6324ef0778823fe7e35aef8ae37f9b_cgraph.dot @@ -4,15 +4,15 @@ digraph "IntelliToolLine::onMouseMoved" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the mouse moved event. Call this in child classes!"]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliImage::drawLine",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31",tooltip=" "]; + Node2 [label="IntelliImage::drawLine",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31",tooltip="A function that draws A Line between two given Points in a given color."]; Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliImage::drawPlain",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#a6be622810dc2bc756054bb5769becb06",tooltip=" "]; + Node3 [label="IntelliImage::drawPlain",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#a6be622810dc2bc756054bb5769becb06",tooltip="A function that clears the whole image in a given Color."]; Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7",tooltip=" "]; + Node4 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7",tooltip="A function to read the primary selected color."]; Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639",tooltip=" "]; + Node5 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639",tooltip="A function managing the mouse moved event. Call this in child classes!"]; Node5 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node6 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; + Node6 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; } diff --git a/docs/html/class_intelli_tool_line_ac93f76ff20a1c111a403b298bab02482_cgraph.dot b/docs/html/class_intelli_tool_line_ac93f76ff20a1c111a403b298bab02482_cgraph.dot index d8b49a5..d43fb7d 100644 --- a/docs/html/class_intelli_tool_line_ac93f76ff20a1c111a403b298bab02482_cgraph.dot +++ b/docs/html/class_intelli_tool_line_ac93f76ff20a1c111a403b298bab02482_cgraph.dot @@ -4,9 +4,9 @@ digraph "IntelliToolLine::onMouseLeftReleased" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolLine::onMouse\lLeftReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliToolLine::onMouse\lLeftReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip=" "]; + Node2 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; + Node3 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; } diff --git a/docs/html/class_intelli_tool_pen-members.html b/docs/html/class_intelli_tool_pen-members.html index e2496aa..bb9b3eb 100644 --- a/docs/html/class_intelli_tool_pen-members.html +++ b/docs/html/class_intelli_tool_pen-members.html @@ -105,8 +105,9 @@ $(document).ready(function(){initNavTree('class_intelli_tool_pen.html','');}); onMouseMoved(int x, int y) overrideIntelliToolPenvirtual onMouseRightPressed(int x, int y) overrideIntelliToolPenvirtual onMouseRightReleased(int x, int y) overrideIntelliToolPenvirtual - ~IntelliTool()=0IntelliToolpure virtual - ~IntelliToolPen() overrideIntelliToolPenvirtual + onWheelScrolled(int value) overrideIntelliToolPenvirtual + ~IntelliTool()=0IntelliToolpure virtual + ~IntelliToolPen() overrideIntelliToolPenvirtual diff --git a/docs/html/class_intelli_tool_pen.html b/docs/html/class_intelli_tool_pen.html index 59f686c..c497b4e 100644 --- a/docs/html/class_intelli_tool_pen.html +++ b/docs/html/class_intelli_tool_pen.html @@ -113,33 +113,48 @@ Public Member Functions virtual ~IntelliToolPen () override   virtual void onMouseRightPressed (int x, int y) override + A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes! More...
      virtual void onMouseRightReleased (int x, int y) override + A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes! More...
      virtual void onMouseLeftPressed (int x, int y) override + A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes! More...
      virtual void onMouseLeftReleased (int x, int y) override + A function managing the left click Released of a Mouse. Call this in child classes! More...
      +virtual void onWheelScrolled (int value) override + A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes! More...
    +  virtual void onMouseMoved (int x, int y) override + A function managing the mouse moved event. Call this in child classes! More...
      - Public Member Functions inherited from IntelliTool  IntelliTool (PaintingArea *Area, IntelliColorPicker *colorPicker) + A constructor setting the general Painting Area and colorPicker. More...
      virtual ~IntelliTool ()=0 + An abstract Destructor. More...
      + + + + +

    Additional Inherited Members

    - Protected Attributes inherited from IntelliTool
    PaintingAreaArea
     A pointer to the general PaintingArea to interact with. More...
     
    IntelliColorPickercolorPicker
     A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors. More...
     
    LayerObjectActive
     A pointer to the underlying active Layer, do not work on this. This is used for data grabbing or previews. More...
     
    LayerObjectCanvas
     A pointer to the drawing canvas of the tool, work on this. More...
     
    bool drawing = false
     A flag checking if the user is currently drawing or not. More...
     

    Detailed Description

    @@ -238,6 +253,15 @@ Additional Inherited Members
    +

    A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    +
    +
    +

    Reimplemented from IntelliTool.

    Definition at line 24 of file IntelliToolPen.cpp.

    @@ -283,6 +307,15 @@ Here is the call graph for this function:
    +

    A function managing the left click Released of a Mouse. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    +
    +
    +

    Reimplemented from IntelliTool.

    Definition at line 31 of file IntelliToolPen.cpp.

    @@ -328,6 +361,15 @@ Here is the call graph for this function:
    +

    A function managing the mouse moved event. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate of the new Mouse Position.
    y- The y coordinate of the new Mouse Position.
    +
    +
    +

    Reimplemented from IntelliTool.

    Definition at line 35 of file IntelliToolPen.cpp.

    @@ -373,6 +415,15 @@ Here is the call graph for this function:
    +

    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    +
    +
    +

    Reimplemented from IntelliTool.

    Definition at line 16 of file IntelliToolPen.cpp.

    @@ -418,6 +469,15 @@ Here is the call graph for this function:
    +

    A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    +
    +
    +

    Reimplemented from IntelliTool.

    Definition at line 20 of file IntelliToolPen.cpp.

    @@ -427,11 +487,54 @@ Here is the call graph for this function:
    + + + +

    ◆ onWheelScrolled()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void IntelliToolPen::onWheelScrolled (int value)
    +
    +overridevirtual
    +
    + +

    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes!

    +
    Parameters
    + + +
    value- The absolute the scroll has changed.
    +
    +
    + +

    Reimplemented from IntelliTool.

    + +

    Definition at line 44 of file IntelliToolPen.cpp.

    +
    +Here is the call graph for this function:
    +
    +
    +
    +

    The documentation for this class was generated from the following files: diff --git a/docs/html/class_intelli_tool_pen.js b/docs/html/class_intelli_tool_pen.js index 497d89c..011662d 100644 --- a/docs/html/class_intelli_tool_pen.js +++ b/docs/html/class_intelli_tool_pen.js @@ -6,5 +6,6 @@ var class_intelli_tool_pen = [ "onMouseLeftReleased", "class_intelli_tool_pen.html#abda7a22b9766fa4ad254324a53cab94d", null ], [ "onMouseMoved", "class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2", null ], [ "onMouseRightPressed", "class_intelli_tool_pen.html#a1751e3864a0d36ef42ca55021cae73ce", null ], - [ "onMouseRightReleased", "class_intelli_tool_pen.html#abf8562e8cd2da586afdf4d47b3a4ff13", null ] + [ "onMouseRightReleased", "class_intelli_tool_pen.html#abf8562e8cd2da586afdf4d47b3a4ff13", null ], + [ "onWheelScrolled", "class_intelli_tool_pen.html#afe3626ddff440ab125f4a2465c45427a", null ] ]; \ No newline at end of file diff --git a/docs/html/class_intelli_tool_pen__coll__graph.dot b/docs/html/class_intelli_tool_pen__coll__graph.dot index 4f26697..dbf4c50 100644 --- a/docs/html/class_intelli_tool_pen__coll__graph.dot +++ b/docs/html/class_intelli_tool_pen__coll__graph.dot @@ -5,15 +5,15 @@ digraph "IntelliToolPen" node [fontname="Helvetica",fontsize="10",shape=record]; Node1 [label="IntelliToolPen",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip=" "]; + Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; Node3 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Area" ,fontname="Helvetica"]; Node3 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip=" "]; Node4 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node4 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; Node5 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" colorPicker" ,fontname="Helvetica"]; - Node5 [label="IntelliColorPicker",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html",tooltip=" "]; + Node5 [label="IntelliColorPicker",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html",tooltip="The IntelliColorPicker manages the selected colors for one whole project."]; Node6 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Canvas\nActive" ,fontname="Helvetica"]; Node6 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip=" "]; Node7 -> Node6 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" image" ,fontname="Helvetica"]; - Node7 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip=" "]; + Node7 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip="An abstract class which manages the basic IntelliImage operations."]; } diff --git a/docs/html/class_intelli_tool_pen__inherit__graph.dot b/docs/html/class_intelli_tool_pen__inherit__graph.dot index 3dd70c4..8409809 100644 --- a/docs/html/class_intelli_tool_pen__inherit__graph.dot +++ b/docs/html/class_intelli_tool_pen__inherit__graph.dot @@ -5,5 +5,5 @@ digraph "IntelliToolPen" node [fontname="Helvetica",fontsize="10",shape=record]; Node1 [label="IntelliToolPen",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip=" "]; + Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; } diff --git a/docs/html/class_intelli_tool_pen_a1751e3864a0d36ef42ca55021cae73ce_cgraph.dot b/docs/html/class_intelli_tool_pen_a1751e3864a0d36ef42ca55021cae73ce_cgraph.dot index cf9b1b3..ca8b608 100644 --- a/docs/html/class_intelli_tool_pen_a1751e3864a0d36ef42ca55021cae73ce_cgraph.dot +++ b/docs/html/class_intelli_tool_pen_a1751e3864a0d36ef42ca55021cae73ce_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolPen::onMouseRightPressed" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolPen::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliToolPen::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliTool::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966",tooltip=" "]; + Node2 [label="IntelliTool::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; } diff --git a/docs/html/class_intelli_tool_pen_a58d1d636497b630647ce0c4d652737c2_cgraph.dot b/docs/html/class_intelli_tool_pen_a58d1d636497b630647ce0c4d652737c2_cgraph.dot index 2ad31f6..9926407 100644 --- a/docs/html/class_intelli_tool_pen_a58d1d636497b630647ce0c4d652737c2_cgraph.dot +++ b/docs/html/class_intelli_tool_pen_a58d1d636497b630647ce0c4d652737c2_cgraph.dot @@ -4,13 +4,13 @@ digraph "IntelliToolPen::onMouseMoved" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolPen::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliToolPen::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the mouse moved event. Call this in child classes!"]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliImage::drawLine",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31",tooltip=" "]; + Node2 [label="IntelliImage::drawLine",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31",tooltip="A function that draws A Line between two given Points in a given color."]; Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7",tooltip=" "]; + Node3 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7",tooltip="A function to read the primary selected color."]; Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639",tooltip=" "]; + Node4 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639",tooltip="A function managing the mouse moved event. Call this in child classes!"]; Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; + Node5 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; } diff --git a/docs/html/class_intelli_tool_pen_a8ff40aef6d38eb55af31a19322429205_cgraph.dot b/docs/html/class_intelli_tool_pen_a8ff40aef6d38eb55af31a19322429205_cgraph.dot index bcee5e9..af5e836 100644 --- a/docs/html/class_intelli_tool_pen_a8ff40aef6d38eb55af31a19322429205_cgraph.dot +++ b/docs/html/class_intelli_tool_pen_a8ff40aef6d38eb55af31a19322429205_cgraph.dot @@ -4,14 +4,14 @@ digraph "IntelliToolPen::onMouseLeftPressed" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; + Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliImage::drawPixel",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#af3c859f5c409e37051edfd9e9fbca056",tooltip=" "]; + Node3 [label="IntelliImage::drawPixel",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#af3c859f5c409e37051edfd9e9fbca056",tooltip="A funtcion used to draw a pixel on the Image with the given Color."]; Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7",tooltip=" "]; + Node4 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7",tooltip="A function to read the primary selected color."]; Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliTool::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c",tooltip=" "]; + Node5 [label="IntelliTool::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; Node5 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; } diff --git a/docs/html/class_intelli_tool_pen_abda7a22b9766fa4ad254324a53cab94d_cgraph.dot b/docs/html/class_intelli_tool_pen_abda7a22b9766fa4ad254324a53cab94d_cgraph.dot index 465e4f8..ae2da6a 100644 --- a/docs/html/class_intelli_tool_pen_abda7a22b9766fa4ad254324a53cab94d_cgraph.dot +++ b/docs/html/class_intelli_tool_pen_abda7a22b9766fa4ad254324a53cab94d_cgraph.dot @@ -4,9 +4,9 @@ digraph "IntelliToolPen::onMouseLeftReleased" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolPen::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliToolPen::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip=" "]; + Node2 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; + Node3 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; } diff --git a/docs/html/class_intelli_tool_pen_abf8562e8cd2da586afdf4d47b3a4ff13_cgraph.dot b/docs/html/class_intelli_tool_pen_abf8562e8cd2da586afdf4d47b3a4ff13_cgraph.dot index f40b2ec..b2d6237 100644 --- a/docs/html/class_intelli_tool_pen_abf8562e8cd2da586afdf4d47b3a4ff13_cgraph.dot +++ b/docs/html/class_intelli_tool_pen_abf8562e8cd2da586afdf4d47b3a4ff13_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolPen::onMouseRightReleased" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolPen::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliToolPen::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliTool::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0",tooltip=" "]; + Node2 [label="IntelliTool::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; } diff --git a/docs/html/class_intelli_tool_pen_afe3626ddff440ab125f4a2465c45427a_cgraph.dot b/docs/html/class_intelli_tool_pen_afe3626ddff440ab125f4a2465c45427a_cgraph.dot new file mode 100644 index 0000000..653a036 --- /dev/null +++ b/docs/html/class_intelli_tool_pen_afe3626ddff440ab125f4a2465c45427a_cgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliToolPen::onWheelScrolled" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolPen::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; +} diff --git a/docs/html/class_intelli_tool_plain_tool-members.html b/docs/html/class_intelli_tool_plain_tool-members.html index a044165..020d562 100644 --- a/docs/html/class_intelli_tool_plain_tool-members.html +++ b/docs/html/class_intelli_tool_plain_tool-members.html @@ -105,7 +105,8 @@ $(document).ready(function(){initNavTree('class_intelli_tool_plain_tool.html','' onMouseMoved(int x, int y) overrideIntelliToolPlainToolvirtual onMouseRightPressed(int x, int y) overrideIntelliToolPlainToolvirtual onMouseRightReleased(int x, int y) overrideIntelliToolPlainToolvirtual - ~IntelliTool()=0IntelliToolpure virtual + onWheelScrolled(int value) overrideIntelliToolPlainToolvirtual + ~IntelliTool()=0IntelliToolpure virtual diff --git a/docs/html/class_intelli_tool_plain_tool.html b/docs/html/class_intelli_tool_plain_tool.html index 312872b..d524eef 100644 --- a/docs/html/class_intelli_tool_plain_tool.html +++ b/docs/html/class_intelli_tool_plain_tool.html @@ -110,34 +110,49 @@ Collaboration diagram for IntelliToolPlainTool: Public Member Functions  IntelliToolPlainTool (PaintingArea *Area, IntelliColorPicker *colorPicker)   -void onMouseLeftPressed (int x, int y) override +virtual void onMouseLeftPressed (int x, int y) override + A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes! More...
      -void onMouseLeftReleased (int x, int y) override +virtual void onMouseLeftReleased (int x, int y) override + A function managing the left click Released of a Mouse. Call this in child classes! More...
      -void onMouseRightPressed (int x, int y) override +virtual void onMouseRightPressed (int x, int y) override + A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes! More...
      -void onMouseRightReleased (int x, int y) override +virtual void onMouseRightReleased (int x, int y) override + A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes! More...
      -void onMouseMoved (int x, int y) override +virtual void onWheelScrolled (int value) override + A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes! More...
    +  +virtual void onMouseMoved (int x, int y) override + A function managing the mouse moved event. Call this in child classes! More...
      - Public Member Functions inherited from IntelliTool  IntelliTool (PaintingArea *Area, IntelliColorPicker *colorPicker) + A constructor setting the general Painting Area and colorPicker. More...
      virtual ~IntelliTool ()=0 + An abstract Destructor. More...
      + + + + +

    Additional Inherited Members

    - Protected Attributes inherited from IntelliTool
    PaintingAreaArea
     A pointer to the general PaintingArea to interact with. More...
     
    IntelliColorPickercolorPicker
     A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors. More...
     
    LayerObjectActive
     A pointer to the underlying active Layer, do not work on this. This is used for data grabbing or previews. More...
     
    LayerObjectCanvas
     A pointer to the drawing canvas of the tool, work on this. More...
     
    bool drawing = false
     A flag checking if the user is currently drawing or not. More...
     

    Detailed Description

    @@ -209,6 +224,15 @@ Additional Inherited Members
    +

    A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    +
    +
    +

    Reimplemented from IntelliTool.

    Definition at line 9 of file IntelliToolPlain.cpp.

    @@ -254,6 +278,15 @@ Here is the call graph for this function:
    +

    A function managing the left click Released of a Mouse. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    +
    +
    +

    Reimplemented from IntelliTool.

    Definition at line 15 of file IntelliToolPlain.cpp.

    @@ -299,6 +332,15 @@ Here is the call graph for this function:
    +

    A function managing the mouse moved event. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate of the new Mouse Position.
    y- The y coordinate of the new Mouse Position.
    +
    +
    +

    Reimplemented from IntelliTool.

    Definition at line 28 of file IntelliToolPlain.cpp.

    @@ -344,6 +386,15 @@ Here is the call graph for this function:
    +

    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    +
    +
    +

    Reimplemented from IntelliTool.

    Definition at line 19 of file IntelliToolPlain.cpp.

    @@ -389,6 +440,15 @@ Here is the call graph for this function:
    +

    A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    +
    +
    +

    Reimplemented from IntelliTool.

    Definition at line 23 of file IntelliToolPlain.cpp.

    @@ -398,11 +458,54 @@ Here is the call graph for this function:
    + + + +

    ◆ onWheelScrolled()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void IntelliToolPlainTool::onWheelScrolled (int value)
    +
    +overridevirtual
    +
    + +

    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes!

    +
    Parameters
    + + +
    value- The absolute the scroll has changed.
    +
    +
    + +

    Reimplemented from IntelliTool.

    + +

    Definition at line 32 of file IntelliToolPlain.cpp.

    +
    +Here is the call graph for this function:
    +
    +
    +
    +

    The documentation for this class was generated from the following files: diff --git a/docs/html/class_intelli_tool_plain_tool.js b/docs/html/class_intelli_tool_plain_tool.js index 3e7a594..34b01e4 100644 --- a/docs/html/class_intelli_tool_plain_tool.js +++ b/docs/html/class_intelli_tool_plain_tool.js @@ -5,5 +5,6 @@ var class_intelli_tool_plain_tool = [ "onMouseLeftReleased", "class_intelli_tool_plain_tool.html#ac23f5d0f07e42fd7c2ea3fc1347da400", null ], [ "onMouseMoved", "class_intelli_tool_plain_tool.html#ad7546a6335bb3bb4cbf0e1883788d41c", null ], [ "onMouseRightPressed", "class_intelli_tool_plain_tool.html#acb0c46e16d2c09370a2244a936de38b1", null ], - [ "onMouseRightReleased", "class_intelli_tool_plain_tool.html#a2ae458f1b04eb77a47f6dca5e91e33b8", null ] + [ "onMouseRightReleased", "class_intelli_tool_plain_tool.html#a2ae458f1b04eb77a47f6dca5e91e33b8", null ], + [ "onWheelScrolled", "class_intelli_tool_plain_tool.html#adc004ea421e2cc0ac39cc7a6b6d43d0d", null ] ]; \ No newline at end of file diff --git a/docs/html/class_intelli_tool_plain_tool__coll__graph.dot b/docs/html/class_intelli_tool_plain_tool__coll__graph.dot index f4b0a6a..410f863 100644 --- a/docs/html/class_intelli_tool_plain_tool__coll__graph.dot +++ b/docs/html/class_intelli_tool_plain_tool__coll__graph.dot @@ -5,15 +5,15 @@ digraph "IntelliToolPlainTool" node [fontname="Helvetica",fontsize="10",shape=record]; Node1 [label="IntelliToolPlainTool",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip=" "]; + Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; Node3 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Area" ,fontname="Helvetica"]; Node3 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip=" "]; Node4 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node4 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; Node5 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" colorPicker" ,fontname="Helvetica"]; - Node5 [label="IntelliColorPicker",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html",tooltip=" "]; + Node5 [label="IntelliColorPicker",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html",tooltip="The IntelliColorPicker manages the selected colors for one whole project."]; Node6 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Canvas\nActive" ,fontname="Helvetica"]; Node6 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip=" "]; Node7 -> Node6 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" image" ,fontname="Helvetica"]; - Node7 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip=" "]; + Node7 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip="An abstract class which manages the basic IntelliImage operations."]; } diff --git a/docs/html/class_intelli_tool_plain_tool__inherit__graph.dot b/docs/html/class_intelli_tool_plain_tool__inherit__graph.dot index 30fa977..516f045 100644 --- a/docs/html/class_intelli_tool_plain_tool__inherit__graph.dot +++ b/docs/html/class_intelli_tool_plain_tool__inherit__graph.dot @@ -5,5 +5,5 @@ digraph "IntelliToolPlainTool" node [fontname="Helvetica",fontsize="10",shape=record]; Node1 [label="IntelliToolPlainTool",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip=" "]; + Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; } diff --git a/docs/html/class_intelli_tool_plain_tool_a2ae458f1b04eb77a47f6dca5e91e33b8_cgraph.dot b/docs/html/class_intelli_tool_plain_tool_a2ae458f1b04eb77a47f6dca5e91e33b8_cgraph.dot index afce574..f708adb 100644 --- a/docs/html/class_intelli_tool_plain_tool_a2ae458f1b04eb77a47f6dca5e91e33b8_cgraph.dot +++ b/docs/html/class_intelli_tool_plain_tool_a2ae458f1b04eb77a47f6dca5e91e33b8_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolPlainTool::onMouseRightReleased" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolPlainTool\l::onMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliToolPlainTool\l::onMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliTool::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0",tooltip=" "]; + Node2 [label="IntelliTool::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; } diff --git a/docs/html/class_intelli_tool_plain_tool_ab786dd5fa80af863246013d43c4b7ac9_cgraph.dot b/docs/html/class_intelli_tool_plain_tool_ab786dd5fa80af863246013d43c4b7ac9_cgraph.dot index 69ec81f..acc5c5d 100644 --- a/docs/html/class_intelli_tool_plain_tool_ab786dd5fa80af863246013d43c4b7ac9_cgraph.dot +++ b/docs/html/class_intelli_tool_plain_tool_ab786dd5fa80af863246013d43c4b7ac9_cgraph.dot @@ -4,14 +4,14 @@ digraph "IntelliToolPlainTool::onMouseLeftPressed" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; + Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliImage::drawPlain",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#a6be622810dc2bc756054bb5769becb06",tooltip=" "]; + Node3 [label="IntelliImage::drawPlain",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#a6be622810dc2bc756054bb5769becb06",tooltip="A function that clears the whole image in a given Color."]; Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7",tooltip=" "]; + Node4 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7",tooltip="A function to read the primary selected color."]; Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliTool::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c",tooltip=" "]; + Node5 [label="IntelliTool::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; Node5 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; } diff --git a/docs/html/class_intelli_tool_plain_tool_ac23f5d0f07e42fd7c2ea3fc1347da400_cgraph.dot b/docs/html/class_intelli_tool_plain_tool_ac23f5d0f07e42fd7c2ea3fc1347da400_cgraph.dot index 85b8131..61cc955 100644 --- a/docs/html/class_intelli_tool_plain_tool_ac23f5d0f07e42fd7c2ea3fc1347da400_cgraph.dot +++ b/docs/html/class_intelli_tool_plain_tool_ac23f5d0f07e42fd7c2ea3fc1347da400_cgraph.dot @@ -4,9 +4,9 @@ digraph "IntelliToolPlainTool::onMouseLeftReleased" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolPlainTool\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliToolPlainTool\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip=" "]; + Node2 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; + Node3 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; } diff --git a/docs/html/class_intelli_tool_plain_tool_acb0c46e16d2c09370a2244a936de38b1_cgraph.dot b/docs/html/class_intelli_tool_plain_tool_acb0c46e16d2c09370a2244a936de38b1_cgraph.dot index c53471f..bd95eaa 100644 --- a/docs/html/class_intelli_tool_plain_tool_acb0c46e16d2c09370a2244a936de38b1_cgraph.dot +++ b/docs/html/class_intelli_tool_plain_tool_acb0c46e16d2c09370a2244a936de38b1_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolPlainTool::onMouseRightPressed" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolPlainTool\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliToolPlainTool\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliTool::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966",tooltip=" "]; + Node2 [label="IntelliTool::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; } diff --git a/docs/html/class_intelli_tool_plain_tool_ad7546a6335bb3bb4cbf0e1883788d41c_cgraph.dot b/docs/html/class_intelli_tool_plain_tool_ad7546a6335bb3bb4cbf0e1883788d41c_cgraph.dot index 78ee13e..482697f 100644 --- a/docs/html/class_intelli_tool_plain_tool_ad7546a6335bb3bb4cbf0e1883788d41c_cgraph.dot +++ b/docs/html/class_intelli_tool_plain_tool_ad7546a6335bb3bb4cbf0e1883788d41c_cgraph.dot @@ -4,9 +4,9 @@ digraph "IntelliToolPlainTool::onMouseMoved" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolPlainTool\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliToolPlainTool\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the mouse moved event. Call this in child classes!"]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639",tooltip=" "]; + Node2 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639",tooltip="A function managing the mouse moved event. Call this in child classes!"]; Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; + Node3 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; } diff --git a/docs/html/class_intelli_tool_plain_tool_adc004ea421e2cc0ac39cc7a6b6d43d0d_cgraph.dot b/docs/html/class_intelli_tool_plain_tool_adc004ea421e2cc0ac39cc7a6b6d43d0d_cgraph.dot new file mode 100644 index 0000000..a7d505f --- /dev/null +++ b/docs/html/class_intelli_tool_plain_tool_adc004ea421e2cc0ac39cc7a6b6d43d0d_cgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliToolPlainTool::onWheelScrolled" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolPlainTool\l::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; +} diff --git a/docs/html/class_intelli_tool_rectangle-members.html b/docs/html/class_intelli_tool_rectangle-members.html new file mode 100644 index 0000000..f442df9 --- /dev/null +++ b/docs/html/class_intelli_tool_rectangle-members.html @@ -0,0 +1,122 @@ + + + + + + + +IntelliPhoto: Member List + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    IntelliPhoto +  0.4 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    IntelliToolRectangle Member List
    +
    +
    + +

    This is the complete list of members for IntelliToolRectangle, including all inherited members.

    + + + + + + + + + + + + + + + + +
    ActiveIntelliToolprotected
    AreaIntelliToolprotected
    CanvasIntelliToolprotected
    colorPickerIntelliToolprotected
    drawingIntelliToolprotected
    IntelliTool(PaintingArea *Area, IntelliColorPicker *colorPicker)IntelliTool
    IntelliToolRectangle(PaintingArea *Area, IntelliColorPicker *colorPicker)IntelliToolRectangle
    onMouseLeftPressed(int x, int y) overrideIntelliToolRectanglevirtual
    onMouseLeftReleased(int x, int y) overrideIntelliToolRectanglevirtual
    onMouseMoved(int x, int y) overrideIntelliToolRectanglevirtual
    onMouseRightPressed(int x, int y) overrideIntelliToolRectanglevirtual
    onMouseRightReleased(int x, int y) overrideIntelliToolRectanglevirtual
    onWheelScrolled(int value) overrideIntelliToolRectanglevirtual
    ~IntelliTool()=0IntelliToolpure virtual
    ~IntelliToolRectangle() overrideIntelliToolRectanglevirtual
    +
    + + + + diff --git a/docs/html/class_intelli_tool_rectangle.html b/docs/html/class_intelli_tool_rectangle.html new file mode 100644 index 0000000..e55cc41 --- /dev/null +++ b/docs/html/class_intelli_tool_rectangle.html @@ -0,0 +1,551 @@ + + + + + + + +IntelliPhoto: IntelliToolRectangle Class Reference + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    IntelliPhoto +  0.4 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    IntelliToolRectangle Class Reference
    +
    +
    + +

    #include <IntelliToolRectangle.h>

    +
    +Inheritance diagram for IntelliToolRectangle:
    +
    +
    Inheritance graph
    +
    [legend]
    +
    +Collaboration diagram for IntelliToolRectangle:
    +
    +
    Collaboration graph
    +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     IntelliToolRectangle (PaintingArea *Area, IntelliColorPicker *colorPicker)
     
    virtual ~IntelliToolRectangle () override
     
    virtual void onMouseRightPressed (int x, int y) override
     A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes! More...
     
    virtual void onMouseRightReleased (int x, int y) override
     A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes! More...
     
    virtual void onMouseLeftPressed (int x, int y) override
     A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes! More...
     
    virtual void onMouseLeftReleased (int x, int y) override
     A function managing the left click Released of a Mouse. Call this in child classes! More...
     
    virtual void onWheelScrolled (int value) override
     A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes! More...
     
    virtual void onMouseMoved (int x, int y) override
     A function managing the mouse moved event. Call this in child classes! More...
     
    - Public Member Functions inherited from IntelliTool
     IntelliTool (PaintingArea *Area, IntelliColorPicker *colorPicker)
     A constructor setting the general Painting Area and colorPicker. More...
     
    virtual ~IntelliTool ()=0
     An abstract Destructor. More...
     
    + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Attributes inherited from IntelliTool
    PaintingAreaArea
     A pointer to the general PaintingArea to interact with. More...
     
    IntelliColorPickercolorPicker
     A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors. More...
     
    LayerObjectActive
     A pointer to the underlying active Layer, do not work on this. This is used for data grabbing or previews. More...
     
    LayerObjectCanvas
     A pointer to the drawing canvas of the tool, work on this. More...
     
    bool drawing = false
     A flag checking if the user is currently drawing or not. More...
     
    +

    Detailed Description

    +
    +

    Definition at line 9 of file IntelliToolRectangle.h.

    +

    Constructor & Destructor Documentation

    + +

    ◆ IntelliToolRectangle()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    IntelliToolRectangle::IntelliToolRectangle (PaintingAreaArea,
    IntelliColorPickercolorPicker 
    )
    +
    + +

    Definition at line 5 of file IntelliToolRectangle.cpp.

    + +
    +
    + +

    ◆ ~IntelliToolRectangle()

    + +
    +
    + + + + + +
    + + + + + + + +
    IntelliToolRectangle::~IntelliToolRectangle ()
    +
    +overridevirtual
    +
    + +

    Definition at line 11 of file IntelliToolRectangle.cpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ onMouseLeftPressed()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void IntelliToolRectangle::onMouseLeftPressed (int x,
    int y 
    )
    +
    +overridevirtual
    +
    + +

    A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    +
    +
    + +

    Reimplemented from IntelliTool.

    + +

    Definition at line 41 of file IntelliToolRectangle.cpp.

    +
    +Here is the call graph for this function:
    +
    +
    +
    + +
    +
    + +

    ◆ onMouseLeftReleased()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void IntelliToolRectangle::onMouseLeftReleased (int x,
    int y 
    )
    +
    +overridevirtual
    +
    + +

    A function managing the left click Released of a Mouse. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    +
    +
    + +

    Reimplemented from IntelliTool.

    + +

    Definition at line 48 of file IntelliToolRectangle.cpp.

    +
    +Here is the call graph for this function:
    +
    +
    +
    + +
    +
    + +

    ◆ onMouseMoved()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void IntelliToolRectangle::onMouseMoved (int x,
    int y 
    )
    +
    +overridevirtual
    +
    + +

    A function managing the mouse moved event. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate of the new Mouse Position.
    y- The y coordinate of the new Mouse Position.
    +
    +
    + +

    Reimplemented from IntelliTool.

    + +

    Definition at line 52 of file IntelliToolRectangle.cpp.

    +
    +Here is the call graph for this function:
    +
    +
    +
    + +
    +
    + +

    ◆ onMouseRightPressed()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void IntelliToolRectangle::onMouseRightPressed (int x,
    int y 
    )
    +
    +overridevirtual
    +
    + +

    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    +
    +
    + +

    Reimplemented from IntelliTool.

    + +

    Definition at line 33 of file IntelliToolRectangle.cpp.

    +
    +Here is the call graph for this function:
    +
    +
    +
    + +
    +
    + +

    ◆ onMouseRightReleased()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void IntelliToolRectangle::onMouseRightReleased (int x,
    int y 
    )
    +
    +overridevirtual
    +
    + +

    A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    +
    +
    + +

    Reimplemented from IntelliTool.

    + +

    Definition at line 37 of file IntelliToolRectangle.cpp.

    +
    +Here is the call graph for this function:
    +
    +
    +
    + +
    +
    + +

    ◆ onWheelScrolled()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void IntelliToolRectangle::onWheelScrolled (int value)
    +
    +overridevirtual
    +
    + +

    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes!

    +
    Parameters
    + + +
    value- The absolute the scroll has changed.
    +
    +
    + +

    Reimplemented from IntelliTool.

    + +

    Definition at line 61 of file IntelliToolRectangle.cpp.

    +
    +Here is the call graph for this function:
    +
    +
    +
    + +
    +
    +
    The documentation for this class was generated from the following files: +
    +
    + + + + diff --git a/docs/html/class_intelli_tool_rectangle.js b/docs/html/class_intelli_tool_rectangle.js new file mode 100644 index 0000000..591c3aa --- /dev/null +++ b/docs/html/class_intelli_tool_rectangle.js @@ -0,0 +1,11 @@ +var class_intelli_tool_rectangle = +[ + [ "IntelliToolRectangle", "class_intelli_tool_rectangle.html#aa9823939a8b8924520a2943cf6335c11", null ], + [ "~IntelliToolRectangle", "class_intelli_tool_rectangle.html#a7dc1463e726a21255e6297241dc71fb1", null ], + [ "onMouseLeftPressed", "class_intelli_tool_rectangle.html#ae03c307ccf66cbe3fd59e3657712368d", null ], + [ "onMouseLeftReleased", "class_intelli_tool_rectangle.html#a94460e3ff1c19e80bde922c55f53cc43", null ], + [ "onMouseMoved", "class_intelli_tool_rectangle.html#a4b5931071e21eb6949ffe357315e408b", null ], + [ "onMouseRightPressed", "class_intelli_tool_rectangle.html#a480c6804a4963c5a1c3f7ef84b63c1a8", null ], + [ "onMouseRightReleased", "class_intelli_tool_rectangle.html#ad43f653256a6516b9398f82054be0d7f", null ], + [ "onWheelScrolled", "class_intelli_tool_rectangle.html#a445c53a56e859f970e59f5036e221e0c", null ] +]; \ No newline at end of file diff --git a/docs/html/class_intelli_tool_rectangle__coll__graph.dot b/docs/html/class_intelli_tool_rectangle__coll__graph.dot new file mode 100644 index 0000000..5fe015b --- /dev/null +++ b/docs/html/class_intelli_tool_rectangle__coll__graph.dot @@ -0,0 +1,19 @@ +digraph "IntelliToolRectangle" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="IntelliToolRectangle",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; + Node3 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Area" ,fontname="Helvetica"]; + Node3 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip=" "]; + Node4 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node5 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" colorPicker" ,fontname="Helvetica"]; + Node5 [label="IntelliColorPicker",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html",tooltip="The IntelliColorPicker manages the selected colors for one whole project."]; + Node6 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Canvas\nActive" ,fontname="Helvetica"]; + Node6 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip=" "]; + Node7 -> Node6 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" image" ,fontname="Helvetica"]; + Node7 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip="An abstract class which manages the basic IntelliImage operations."]; +} diff --git a/docs/html/class_intelli_tool_rectangle__inherit__graph.dot b/docs/html/class_intelli_tool_rectangle__inherit__graph.dot new file mode 100644 index 0000000..1e0e08e --- /dev/null +++ b/docs/html/class_intelli_tool_rectangle__inherit__graph.dot @@ -0,0 +1,9 @@ +digraph "IntelliToolRectangle" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="IntelliToolRectangle",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; +} diff --git a/docs/html/class_intelli_tool_rectangle_a445c53a56e859f970e59f5036e221e0c_cgraph.dot b/docs/html/class_intelli_tool_rectangle_a445c53a56e859f970e59f5036e221e0c_cgraph.dot new file mode 100644 index 0000000..dcd0680 --- /dev/null +++ b/docs/html/class_intelli_tool_rectangle_a445c53a56e859f970e59f5036e221e0c_cgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliToolRectangle::onWheelScrolled" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolRectangle\l::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; +} diff --git a/docs/html/class_intelli_tool_rectangle_a480c6804a4963c5a1c3f7ef84b63c1a8_cgraph.dot b/docs/html/class_intelli_tool_rectangle_a480c6804a4963c5a1c3f7ef84b63c1a8_cgraph.dot new file mode 100644 index 0000000..d2f4ef0 --- /dev/null +++ b/docs/html/class_intelli_tool_rectangle_a480c6804a4963c5a1c3f7ef84b63c1a8_cgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliToolRectangle::onMouseRightPressed" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolRectangle\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; +} diff --git a/docs/html/class_intelli_tool_rectangle_a4b5931071e21eb6949ffe357315e408b_cgraph.dot b/docs/html/class_intelli_tool_rectangle_a4b5931071e21eb6949ffe357315e408b_cgraph.dot new file mode 100644 index 0000000..3d561d1 --- /dev/null +++ b/docs/html/class_intelli_tool_rectangle_a4b5931071e21eb6949ffe357315e408b_cgraph.dot @@ -0,0 +1,14 @@ +digraph "IntelliToolRectangle::onMouseMoved" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolRectangle\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliImage::drawPlain",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#a6be622810dc2bc756054bb5769becb06",tooltip="A function that clears the whole image in a given Color."]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; +} diff --git a/docs/html/class_intelli_tool_rectangle_a94460e3ff1c19e80bde922c55f53cc43_cgraph.dot b/docs/html/class_intelli_tool_rectangle_a94460e3ff1c19e80bde922c55f53cc43_cgraph.dot new file mode 100644 index 0000000..6dcce2b --- /dev/null +++ b/docs/html/class_intelli_tool_rectangle_a94460e3ff1c19e80bde922c55f53cc43_cgraph.dot @@ -0,0 +1,12 @@ +digraph "IntelliToolRectangle::onMouseLeftReleased" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolRectangle\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; +} diff --git a/docs/html/class_intelli_tool_rectangle_ad43f653256a6516b9398f82054be0d7f_cgraph.dot b/docs/html/class_intelli_tool_rectangle_ad43f653256a6516b9398f82054be0d7f_cgraph.dot new file mode 100644 index 0000000..1d287d7 --- /dev/null +++ b/docs/html/class_intelli_tool_rectangle_ad43f653256a6516b9398f82054be0d7f_cgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliToolRectangle::onMouseRightReleased" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolRectangle\l::onMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; +} diff --git a/docs/html/class_intelli_tool_rectangle_ae03c307ccf66cbe3fd59e3657712368d_cgraph.dot b/docs/html/class_intelli_tool_rectangle_ae03c307ccf66cbe3fd59e3657712368d_cgraph.dot new file mode 100644 index 0000000..a63f48b --- /dev/null +++ b/docs/html/class_intelli_tool_rectangle_ae03c307ccf66cbe3fd59e3657712368d_cgraph.dot @@ -0,0 +1,13 @@ +digraph "IntelliToolRectangle::onMouseLeftPressed" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolRectangle\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliTool::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node3 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/docs/html/class_painting_area-members.html b/docs/html/class_painting_area-members.html index acad039..bbeeed2 100644 --- a/docs/html/class_painting_area-members.html +++ b/docs/html/class_painting_area-members.html @@ -117,7 +117,8 @@ $(document).ready(function(){initNavTree('class_painting_area.html','');}); setLayerToActive(int index)PaintingArea slotActivateLayer(int a)PaintingAreaslot slotDeleteActiveLayer()PaintingAreaslot - ~PaintingArea()PaintingArea + wheelEvent(QWheelEvent *event) overridePaintingAreaprotected + ~PaintingArea() overridePaintingArea diff --git a/docs/html/class_painting_area.html b/docs/html/class_painting_area.html index b2bbf49..4eab62c 100644 --- a/docs/html/class_painting_area.html +++ b/docs/html/class_painting_area.html @@ -119,8 +119,8 @@ Public Slots Public Member Functions  PaintingArea (int maxWidth=600, int maxHeight=600, QWidget *parent=nullptr)   - ~PaintingArea () -  + ~PaintingArea () override +  bool open (const QString &fileName)   bool save (const QString &fileName, const char *fileFormat) @@ -162,6 +162,8 @@ Protected Member Functions   void mouseReleaseEvent (QMouseEvent *event) override   +void wheelEvent (QWheelEvent *event) override +  void paintEvent (QPaintEvent *event) override   void resizeEvent (QResizeEvent *event) override @@ -169,7 +171,7 @@ Protected Member Functions

    Detailed Description

    -

    Definition at line 28 of file PaintingArea.h.

    +

    Definition at line 26 of file PaintingArea.h.

    Constructor & Destructor Documentation

    ◆ PaintingArea()

    @@ -203,7 +205,7 @@ Protected Member Functions
    -

    Definition at line 17 of file PaintingArea.cpp.

    +

    Definition at line 20 of file PaintingArea.cpp.

    Here is the call graph for this function:
    @@ -212,11 +214,14 @@ Here is the call graph for this function:
    - -

    ◆ ~PaintingArea()

    + +

    ◆ ~PaintingArea()

    + + + + + +
    @@ -225,9 +230,14 @@ Here is the call graph for this function:
    PaintingArea::~PaintingArea
    +
    +override
    -

    Definition at line 38 of file PaintingArea.cpp.

    +

    Definition at line 42 of file PaintingArea.cpp.

    @@ -276,7 +286,7 @@ Here is the call graph for this function:
    -

    Definition at line 53 of file PaintingArea.cpp.

    +

    Definition at line 57 of file PaintingArea.cpp.

    Here is the caller graph for this function:
    @@ -352,7 +362,7 @@ Here is the caller graph for this function:
    -

    Definition at line 163 of file PaintingArea.cpp.

    +

    Definition at line 167 of file PaintingArea.cpp.

    Here is the call graph for this function:
    @@ -376,7 +386,7 @@ Here is the call graph for this function:
    -

    Definition at line 168 of file PaintingArea.cpp.

    +

    Definition at line 172 of file PaintingArea.cpp.

    Here is the call graph for this function:
    @@ -400,7 +410,7 @@ Here is the call graph for this function:
    -

    Definition at line 173 of file PaintingArea.cpp.

    +

    Definition at line 177 of file PaintingArea.cpp.

    Here is the call graph for this function:
    @@ -424,7 +434,7 @@ Here is the call graph for this function:
    -

    Definition at line 187 of file PaintingArea.cpp.

    +

    Definition at line 191 of file PaintingArea.cpp.

    @@ -443,7 +453,7 @@ Here is the call graph for this function:
    -

    Definition at line 177 of file PaintingArea.cpp.

    +

    Definition at line 181 of file PaintingArea.cpp.

    @@ -462,7 +472,7 @@ Here is the call graph for this function:
    -

    Definition at line 182 of file PaintingArea.cpp.

    +

    Definition at line 186 of file PaintingArea.cpp.

    @@ -482,7 +492,7 @@ Here is the call graph for this function:
    -

    Definition at line 70 of file PaintingArea.cpp.

    +

    Definition at line 74 of file PaintingArea.cpp.

    @@ -524,7 +534,7 @@ Here is the call graph for this function:
    -

    Definition at line 135 of file PaintingArea.cpp.

    +

    Definition at line 139 of file PaintingArea.cpp.

    Here is the call graph for this function:
    @@ -557,7 +567,7 @@ Here is the call graph for this function:
    -

    Definition at line 211 of file PaintingArea.cpp.

    +

    Definition at line 215 of file PaintingArea.cpp.

    Here is the call graph for this function:
    @@ -590,7 +600,7 @@ Here is the call graph for this function:
    -

    Definition at line 195 of file PaintingArea.cpp.

    +

    Definition at line 199 of file PaintingArea.cpp.

    Here is the call graph for this function:
    @@ -623,7 +633,7 @@ Here is the call graph for this function:
    -

    Definition at line 221 of file PaintingArea.cpp.

    +

    Definition at line 225 of file PaintingArea.cpp.

    Here is the call graph for this function:
    @@ -648,7 +658,7 @@ Here is the call graph for this function:
    -

    Definition at line 149 of file PaintingArea.cpp.

    +

    Definition at line 153 of file PaintingArea.cpp.

    @@ -678,7 +688,7 @@ Here is the call graph for this function:
    -

    Definition at line 144 of file PaintingArea.cpp.

    +

    Definition at line 148 of file PaintingArea.cpp.

    @@ -698,7 +708,7 @@ Here is the call graph for this function:
    -

    Definition at line 99 of file PaintingArea.cpp.

    +

    Definition at line 103 of file PaintingArea.cpp.

    Here is the call graph for this function:
    @@ -731,7 +741,7 @@ Here is the call graph for this function:
    -

    Definition at line 237 of file PaintingArea.cpp.

    +

    Definition at line 249 of file PaintingArea.cpp.

    @@ -759,7 +769,7 @@ Here is the call graph for this function:
    -

    Definition at line 248 of file PaintingArea.cpp.

    +

    Definition at line 260 of file PaintingArea.cpp.

    @@ -789,7 +799,7 @@ Here is the call graph for this function:
    -

    Definition at line 111 of file PaintingArea.cpp.

    +

    Definition at line 115 of file PaintingArea.cpp.

    @@ -819,7 +829,7 @@ Here is the call graph for this function:
    -

    Definition at line 92 of file PaintingArea.cpp.

    +

    Definition at line 96 of file PaintingArea.cpp.

    @@ -839,7 +849,7 @@ Here is the call graph for this function:
    -

    Definition at line 86 of file PaintingArea.cpp.

    +

    Definition at line 90 of file PaintingArea.cpp.

    Here is the caller graph for this function:
    @@ -872,7 +882,7 @@ Here is the caller graph for this function:
    -

    Definition at line 157 of file PaintingArea.cpp.

    +

    Definition at line 161 of file PaintingArea.cpp.

    Here is the call graph for this function:
    @@ -904,13 +914,46 @@ Here is the call graph for this function:
    -

    Definition at line 79 of file PaintingArea.cpp.

    +

    Definition at line 83 of file PaintingArea.cpp.

    + +
    + + +

    ◆ wheelEvent()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void PaintingArea::wheelEvent (QWheelEvent * event)
    +
    +overrideprotected
    +
    + +

    Definition at line 238 of file PaintingArea.cpp.

    +
    +Here is the call graph for this function:
    +
    +
    +

    The documentation for this class was generated from the following files: diff --git a/docs/html/class_painting_area.js b/docs/html/class_painting_area.js index a61b66a..35ae835 100644 --- a/docs/html/class_painting_area.js +++ b/docs/html/class_painting_area.js @@ -1,7 +1,7 @@ var class_painting_area = [ [ "PaintingArea", "class_painting_area.html#a4fa0ec23e78cc59f28c823584c721460", null ], - [ "~PaintingArea", "class_painting_area.html#a5654e04fb8e8c5595a2aae76e9163e0e", null ], + [ "~PaintingArea", "class_painting_area.html#aa32adc113f77031945f73e33051931e8", null ], [ "addLayer", "class_painting_area.html#a39ad76e1319659bfa38eee88ef33d395", null ], [ "addLayerAt", "class_painting_area.html#ae756003b49aead863b49616ea7a44cc0", null ], [ "colorPickerSetFirstColor", "class_painting_area.html#a4735d4cf1dc58a9096d904e74c39c4df", null ], @@ -24,5 +24,6 @@ var class_painting_area = [ "setAlphaOfLayer", "class_painting_area.html#aec59be20f1c27135700754882dd6383d", null ], [ "setLayerToActive", "class_painting_area.html#a1d6d86c25efdce9fe9031a9cd01c74c8", null ], [ "slotActivateLayer", "class_painting_area.html#a71ac281e0de263208d4a3b9de74258ec", null ], - [ "slotDeleteActiveLayer", "class_painting_area.html#a1ff0b9c1227531943c9cec2c546fae5e", null ] + [ "slotDeleteActiveLayer", "class_painting_area.html#a1ff0b9c1227531943c9cec2c546fae5e", null ], + [ "wheelEvent", "class_painting_area.html#a632848d99f44d33d7da2618fbc6775a4", null ] ]; \ No newline at end of file diff --git a/docs/html/class_painting_area_a1f597740b4d7b4bc2e24c51f8cb0b6eb_cgraph.dot b/docs/html/class_painting_area_a1f597740b4d7b4bc2e24c51f8cb0b6eb_cgraph.dot index 13c4fcf..e2bd596 100644 --- a/docs/html/class_painting_area_a1f597740b4d7b4bc2e24c51f8cb0b6eb_cgraph.dot +++ b/docs/html/class_painting_area_a1f597740b4d7b4bc2e24c51f8cb0b6eb_cgraph.dot @@ -6,7 +6,7 @@ digraph "PaintingArea::open" rankdir="LR"; Node1 [label="PaintingArea::open",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; + Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliImage::loadImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aec0e9c8184d89dee33fd9adefbd2f8aa",tooltip=" "]; + Node3 [label="IntelliImage::loadImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aec0e9c8184d89dee33fd9adefbd2f8aa",tooltip="A function that loads and sclaes an image to the fitting dimensions."]; } diff --git a/docs/html/class_painting_area_a35b5df914acb608cc29717659793359c_cgraph.dot b/docs/html/class_painting_area_a35b5df914acb608cc29717659793359c_cgraph.dot index b51a889..38440e6 100644 --- a/docs/html/class_painting_area_a35b5df914acb608cc29717659793359c_cgraph.dot +++ b/docs/html/class_painting_area_a35b5df914acb608cc29717659793359c_cgraph.dot @@ -6,9 +6,9 @@ digraph "PaintingArea::mouseReleaseEvent" rankdir="LR"; Node1 [label="PaintingArea::mouseRelease\lEvent",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip=" "]; + Node2 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; + Node3 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliTool::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0",tooltip=" "]; + Node4 [label="IntelliTool::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; } diff --git a/docs/html/class_painting_area_a4735d4cf1dc58a9096d904e74c39c4df_cgraph.dot b/docs/html/class_painting_area_a4735d4cf1dc58a9096d904e74c39c4df_cgraph.dot index 5e93f3d..8b56d93 100644 --- a/docs/html/class_painting_area_a4735d4cf1dc58a9096d904e74c39c4df_cgraph.dot +++ b/docs/html/class_painting_area_a4735d4cf1dc58a9096d904e74c39c4df_cgraph.dot @@ -6,7 +6,7 @@ digraph "PaintingArea::colorPickerSetFirstColor" rankdir="LR"; Node1 [label="PaintingArea::colorPicker\lSetFirstColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7",tooltip=" "]; + Node2 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7",tooltip="A function to read the primary selected color."]; Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliColorPicker\l::setFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#a7e2ddbbbfbed383f06b24e5bf6b27ae8",tooltip=" "]; + Node3 [label="IntelliColorPicker\l::setFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#a7e2ddbbbfbed383f06b24e5bf6b27ae8",tooltip="A function to set the primary color."]; } diff --git a/docs/html/class_painting_area_a632848d99f44d33d7da2618fbc6775a4_cgraph.dot b/docs/html/class_painting_area_a632848d99f44d33d7da2618fbc6775a4_cgraph.dot new file mode 100644 index 0000000..6a98c15 --- /dev/null +++ b/docs/html/class_painting_area_a632848d99f44d33d7da2618fbc6775a4_cgraph.dot @@ -0,0 +1,10 @@ +digraph "PaintingArea::wheelEvent" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="PaintingArea::wheelEvent",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; +} diff --git a/docs/html/class_painting_area_a66115307ff4a99cd7ca16423c5c8ecfb_cgraph.dot b/docs/html/class_painting_area_a66115307ff4a99cd7ca16423c5c8ecfb_cgraph.dot index 1b4d1e4..f798aff 100644 --- a/docs/html/class_painting_area_a66115307ff4a99cd7ca16423c5c8ecfb_cgraph.dot +++ b/docs/html/class_painting_area_a66115307ff4a99cd7ca16423c5c8ecfb_cgraph.dot @@ -6,5 +6,5 @@ digraph "PaintingArea::colorPickerSwitchColor" rankdir="LR"; Node1 [label="PaintingArea::colorPicker\lSwitchColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliColorPicker\l::switchColors",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#a437a6f20bf2fc0a4cbaf4c030c2a26d9",tooltip=" "]; + Node2 [label="IntelliColorPicker\l::switchColors",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#a437a6f20bf2fc0a4cbaf4c030c2a26d9",tooltip="A function switching primary and secondary color."]; } diff --git a/docs/html/class_painting_area_aa22e274b6094a9619f196cd7b49526b5_cgraph.dot b/docs/html/class_painting_area_aa22e274b6094a9619f196cd7b49526b5_cgraph.dot index ec74f07..343ab56 100644 --- a/docs/html/class_painting_area_aa22e274b6094a9619f196cd7b49526b5_cgraph.dot +++ b/docs/html/class_painting_area_aa22e274b6094a9619f196cd7b49526b5_cgraph.dot @@ -6,7 +6,7 @@ digraph "PaintingArea::mouseMoveEvent" rankdir="LR"; Node1 [label="PaintingArea::mouseMoveEvent",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639",tooltip=" "]; + Node2 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639",tooltip="A function managing the mouse moved event. Call this in child classes!"]; Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; + Node3 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; } diff --git a/docs/html/class_painting_area_abfe445f8d9b70ae42bfeda874127dd15_cgraph.dot b/docs/html/class_painting_area_abfe445f8d9b70ae42bfeda874127dd15_cgraph.dot index 4cc4e86..a9f63bd 100644 --- a/docs/html/class_painting_area_abfe445f8d9b70ae42bfeda874127dd15_cgraph.dot +++ b/docs/html/class_painting_area_abfe445f8d9b70ae42bfeda874127dd15_cgraph.dot @@ -6,9 +6,9 @@ digraph "PaintingArea::mousePressEvent" rankdir="LR"; Node1 [label="PaintingArea::mousePress\lEvent",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliTool::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c",tooltip=" "]; + Node2 [label="IntelliTool::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip=" "]; + Node3 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliTool::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966",tooltip=" "]; + Node4 [label="IntelliTool::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; } diff --git a/docs/html/class_painting_area_ae261acaaa346610dfed489dbac17e789_cgraph.dot b/docs/html/class_painting_area_ae261acaaa346610dfed489dbac17e789_cgraph.dot index 920ebf9..41ee9e5 100644 --- a/docs/html/class_painting_area_ae261acaaa346610dfed489dbac17e789_cgraph.dot +++ b/docs/html/class_painting_area_ae261acaaa346610dfed489dbac17e789_cgraph.dot @@ -6,7 +6,7 @@ digraph "PaintingArea::colorPickerSetSecondColor" rankdir="LR"; Node1 [label="PaintingArea::colorPicker\lSetSecondColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliColorPicker\l::getSecondColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#a55568fbf5dc783f06284b7031ffe9415",tooltip=" "]; + Node2 [label="IntelliColorPicker\l::getSecondColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#a55568fbf5dc783f06284b7031ffe9415",tooltip="A function to read the secondary selected color."]; Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliColorPicker\l::setSecondColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#a86bf4a940e4a0e465e30cbdf28748931",tooltip=" "]; + Node3 [label="IntelliColorPicker\l::setSecondColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#a86bf4a940e4a0e465e30cbdf28748931",tooltip="A function to set the secondary color."]; } diff --git a/docs/html/class_painting_area_aeb5eb394b979ea90f2be9849fdda1774_cgraph.dot b/docs/html/class_painting_area_aeb5eb394b979ea90f2be9849fdda1774_cgraph.dot index 3549afb..47b25d5 100644 --- a/docs/html/class_painting_area_aeb5eb394b979ea90f2be9849fdda1774_cgraph.dot +++ b/docs/html/class_painting_area_aeb5eb394b979ea90f2be9849fdda1774_cgraph.dot @@ -6,5 +6,5 @@ digraph "PaintingArea::floodFill" rankdir="LR"; Node1 [label="PaintingArea::floodFill",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliImage::drawPlain",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#a6be622810dc2bc756054bb5769becb06",tooltip=" "]; + Node2 [label="IntelliImage::drawPlain",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#a6be622810dc2bc756054bb5769becb06",tooltip="A function that clears the whole image in a given Color."]; } diff --git a/docs/html/classes.html b/docs/html/classes.html index 9a2a8a6..61a7d42 100644 --- a/docs/html/classes.html +++ b/docs/html/classes.html @@ -90,35 +90,41 @@ $(document).ready(function(){initNavTree('classes.html','');});
    Class Index
    -
    i | l | p
    +
    i | l | p | t
    - - - - - - - - - - - - - - + - - + + + + + + + + + + + + + + + + + + + +
      i  
    IntelliImage   IntelliTool   
      l  
    -
    IntelliPhotoGui   IntelliToolLine   
    IntelliColorPicker    IntelliRasterImage   IntelliToolPen   LayerObject   
    IntelliHelper   IntelliShapedImage   IntelliToolPlainTool   IntelliToolLine   
      p  
    PaintingArea   
    IntelliShapedImage   IntelliToolPen   
    IntelliColorPicker   IntelliTool   IntelliToolPlainTool   PaintingArea   
    IntelliImage   IntelliToolCircle   IntelliToolRectangle   
      t  
    +
    IntelliPhotoGui   IntelliToolFloodFill   
      l  
    +
    Triangle   
    LayerObject   
    -
    i | l | p
    +
    i | l | p | t
    diff --git a/docs/html/dir_000001_000002.html b/docs/html/dir_000001_000002.html new file mode 100644 index 0000000..cb9561a --- /dev/null +++ b/docs/html/dir_000001_000002.html @@ -0,0 +1,101 @@ + + + + + + + +IntelliPhoto: intelliphoto/src -> GUI Relation + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    IntelliPhoto +  0.4 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +

    src → GUI Relation

    File in intelliphoto/srcIncludes file in intelliphoto/src/GUI
    main.cppIntelliPhotoGui.h
    +
    + + + + diff --git a/docs/html/dir_000002_000006.html b/docs/html/dir_000002_000006.html new file mode 100644 index 0000000..374d590 --- /dev/null +++ b/docs/html/dir_000002_000006.html @@ -0,0 +1,101 @@ + + + + + + + +IntelliPhoto: intelliphoto/src/GUI -> Layer Relation + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    IntelliPhoto +  0.4 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +

    GUI → Layer Relation

    File in intelliphoto/src/GUIIncludes file in intelliphoto/src/Layer
    IntelliPhotoGui.cppPaintingArea.h
    +
    + + + + diff --git a/docs/html/dir_000003_000004.html b/docs/html/dir_000003_000004.html new file mode 100644 index 0000000..fd0926b --- /dev/null +++ b/docs/html/dir_000003_000004.html @@ -0,0 +1,101 @@ + + + + + + + +IntelliPhoto: intelliphoto/src/Image -> IntelliHelper Relation + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    IntelliPhoto +  0.4 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +

    Image → IntelliHelper Relation

    File in intelliphoto/src/ImageIncludes file in intelliphoto/src/IntelliHelper
    IntelliShapedImage.cppIntelliHelper.h
    IntelliShapedImage.hIntelliHelper.h
    +
    + + + + diff --git a/docs/html/dir_000005_000004.html b/docs/html/dir_000005_000004.html index f3d0721..ee7ddc6 100644 --- a/docs/html/dir_000005_000004.html +++ b/docs/html/dir_000005_000004.html @@ -5,7 +5,7 @@ -IntelliPhoto: src/Layer -> Tool Relation +IntelliPhoto: intelliphoto/src/Tool -> IntelliHelper Relation @@ -67,7 +67,7 @@ $(function() {
    @@ -86,12 +86,12 @@ $(document).ready(function(){initNavTree('dir_13830bfc3dd6736fe878600c9081919f.h
    +

    Tool → IntelliHelper Relation

    File in intelliphoto/src/ToolIncludes file in intelliphoto/src/IntelliHelper
    IntelliColorPicker.cppIntelliColorPicker.h
    IntelliTool.hIntelliColorPicker.h
    diff --git a/docs/html/files_dup.js b/docs/html/files_dup.js index c3b39c4..60f71b9 100644 --- a/docs/html/files_dup.js +++ b/docs/html/files_dup.js @@ -1,4 +1,4 @@ var files_dup = [ - [ "src", "dir_68267d1309a1af8e8297ef4c3efbcdba.html", "dir_68267d1309a1af8e8297ef4c3efbcdba" ] + [ "intelliphoto", "dir_8db5f55022e7670536cbc9a6a1d6f01c.html", "dir_8db5f55022e7670536cbc9a6a1d6f01c" ] ]; \ No newline at end of file diff --git a/docs/html/functions.html b/docs/html/functions.html index 3432b93..5b5f712 100644 --- a/docs/html/functions.html +++ b/docs/html/functions.html @@ -89,6 +89,9 @@ $(document).ready(function(){initNavTree('functions.html','');});
    Here is a list of all class members with links to the classes they belong to:

    - a -

      +
    • A +: Triangle +
    • Active : IntelliTool
    • @@ -107,11 +110,20 @@ $(document).ready(function(){initNavTree('functions.html','');});
    +

    - b -

    + +

    - c -

    @@ -183,6 +198,9 @@ $(document).ready(function(){initNavTree('functions.html','');});
  • getFirstColor() : IntelliColorPicker
  • +
  • getPixelColor() +: IntelliImage +
  • getPolygonData() : IntelliImage , IntelliShapedImage @@ -228,6 +246,12 @@ $(document).ready(function(){initNavTree('functions.html','');});
  • IntelliTool() : IntelliTool
  • +
  • IntelliToolCircle() +: IntelliToolCircle +
  • +
  • IntelliToolFloodFill() +: IntelliToolFloodFill +
  • IntelliToolLine() : IntelliToolLine
  • @@ -237,8 +261,8 @@ $(document).ready(function(){initNavTree('functions.html','');});
  • IntelliToolPlainTool() : IntelliToolPlainTool
  • -
  • isInTriangle() -: IntelliHelper +
  • IntelliToolRectangle() +: IntelliToolRectangle
  • @@ -272,33 +296,57 @@ $(document).ready(function(){initNavTree('functions.html','');});

    - o -

    @@ -165,6 +167,9 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
  • getFirstColor() : IntelliColorPicker
  • +
  • getPixelColor() +: IntelliImage +
  • getPolygonData() : IntelliImage , IntelliShapedImage @@ -194,6 +199,12 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
  • IntelliTool() : IntelliTool
  • +
  • IntelliToolCircle() +: IntelliToolCircle +
  • +
  • IntelliToolFloodFill() +: IntelliToolFloodFill +
  • IntelliToolLine() : IntelliToolLine
  • @@ -203,8 +214,8 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
  • IntelliToolPlainTool() : IntelliToolPlainTool
  • -
  • isInTriangle() -: IntelliHelper +
  • IntelliToolRectangle() +: IntelliToolRectangle
  • @@ -238,33 +249,57 @@ $(document).ready(function(){initNavTree('functions_func.html','');});

    - o -

    +

    - w -

    + +

    - ~ -

    diff --git a/docs/html/functions_vars.html b/docs/html/functions_vars.html index 14bed22..1842639 100644 --- a/docs/html/functions_vars.html +++ b/docs/html/functions_vars.html @@ -87,6 +87,9 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
     
      +
    • A +: Triangle +
    • Active : IntelliTool
    • @@ -96,6 +99,12 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
    • Area : IntelliTool
    • +
    • B +: Triangle +
    • +
    • C +: Triangle +
    • Canvas : IntelliTool
    • diff --git a/docs/html/hierarchy.html b/docs/html/hierarchy.html index 8610004..8cf0f2f 100644 --- a/docs/html/hierarchy.html +++ b/docs/html/hierarchy.html @@ -94,20 +94,23 @@ $(document).ready(function(){initNavTree('hierarchy.html','');});

      Go to the graphical class hierarchy

      This inheritance list is sorted roughly, but not completely, alphabetically:
    [detail level 123]
    - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + +
     CIntelliColorPicker
     CIntelliHelper
     CIntelliImage
     CIntelliRasterImage
     CIntelliShapedImage
     CIntelliTool
     CIntelliToolLine
     CIntelliToolPen
     CIntelliToolPlainTool
     CLayerObject
     CQMainWindow
     CIntelliPhotoGui
     CQWidget
     CPaintingArea
     CIntelliColorPickerThe IntelliColorPicker manages the selected colors for one whole project
     CIntelliImageAn abstract class which manages the basic IntelliImage operations
     CIntelliRasterImageThe IntelliRasterImage manages a Rasterimage
     CIntelliShapedImageThe IntelliShapedImage manages a Shapedimage
     CIntelliToolAn abstract class that manages the basic events, like mouse clicks or scrolls events
     CIntelliToolCircle
     CIntelliToolFloodFill
     CIntelliToolLine
     CIntelliToolPen
     CIntelliToolPlainTool
     CIntelliToolRectangle
     CLayerObject
     CQMainWindow
     CIntelliPhotoGui
     CQWidget
     CPaintingArea
     CTriangleThe Triangle struct holds the 3 vertices of a triangle
    diff --git a/docs/html/hierarchy.js b/docs/html/hierarchy.js index 50c5815..dade86a 100644 --- a/docs/html/hierarchy.js +++ b/docs/html/hierarchy.js @@ -1,16 +1,18 @@ var hierarchy = [ [ "IntelliColorPicker", "class_intelli_color_picker.html", null ], - [ "IntelliHelper", "class_intelli_helper.html", null ], [ "IntelliImage", "class_intelli_image.html", [ [ "IntelliRasterImage", "class_intelli_raster_image.html", [ [ "IntelliShapedImage", "class_intelli_shaped_image.html", null ] ] ] ] ], [ "IntelliTool", "class_intelli_tool.html", [ + [ "IntelliToolCircle", "class_intelli_tool_circle.html", null ], + [ "IntelliToolFloodFill", "class_intelli_tool_flood_fill.html", null ], [ "IntelliToolLine", "class_intelli_tool_line.html", null ], [ "IntelliToolPen", "class_intelli_tool_pen.html", null ], - [ "IntelliToolPlainTool", "class_intelli_tool_plain_tool.html", null ] + [ "IntelliToolPlainTool", "class_intelli_tool_plain_tool.html", null ], + [ "IntelliToolRectangle", "class_intelli_tool_rectangle.html", null ] ] ], [ "LayerObject", "struct_layer_object.html", null ], [ "QMainWindow", null, [ @@ -18,5 +20,6 @@ var hierarchy = ] ], [ "QWidget", null, [ [ "PaintingArea", "class_painting_area.html", null ] - ] ] + ] ], + [ "Triangle", "struct_triangle.html", null ] ]; \ No newline at end of file diff --git a/docs/html/inherit_graph_0.dot b/docs/html/inherit_graph_0.dot index 1c2bd28..d4d9922 100644 --- a/docs/html/inherit_graph_0.dot +++ b/docs/html/inherit_graph_0.dot @@ -4,5 +4,5 @@ digraph "Graphical Class Hierarchy" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node0 [label="IntelliColorPicker",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html",tooltip=" "]; + Node0 [label="IntelliColorPicker",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html",tooltip="The IntelliColorPicker manages the selected colors for one whole project."]; } diff --git a/docs/html/inherit_graph_1.dot b/docs/html/inherit_graph_1.dot index f66c074..8e9fe2c 100644 --- a/docs/html/inherit_graph_1.dot +++ b/docs/html/inherit_graph_1.dot @@ -4,5 +4,9 @@ digraph "Graphical Class Hierarchy" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node0 [label="IntelliHelper",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_helper.html",tooltip=" "]; + Node0 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip="An abstract class which manages the basic IntelliImage operations."]; + Node0 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 [label="IntelliRasterImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_raster_image.html",tooltip="The IntelliRasterImage manages a Rasterimage."]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliShapedImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html",tooltip="The IntelliShapedImage manages a Shapedimage."]; } diff --git a/docs/html/inherit_graph_2.dot b/docs/html/inherit_graph_2.dot index 9e68731..3dc081c 100644 --- a/docs/html/inherit_graph_2.dot +++ b/docs/html/inherit_graph_2.dot @@ -4,9 +4,7 @@ digraph "Graphical Class Hierarchy" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node0 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip=" "]; - Node0 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node1 [label="IntelliRasterImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_raster_image.html",tooltip=" "]; - Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliShapedImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html",tooltip=" "]; + Node4 [label="QMainWindow",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node4 -> Node0 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node0 [label="IntelliPhotoGui",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_photo_gui.html",tooltip=" "]; } diff --git a/docs/html/inherit_graph_3.dot b/docs/html/inherit_graph_3.dot index 3a9219b..3e1129e 100644 --- a/docs/html/inherit_graph_3.dot +++ b/docs/html/inherit_graph_3.dot @@ -4,7 +4,17 @@ digraph "Graphical Class Hierarchy" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node3 [label="QMainWindow",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; - Node3 -> Node0 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node0 [label="IntelliPhotoGui",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_photo_gui.html",tooltip=" "]; + Node0 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; + Node0 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 [label="IntelliToolCircle",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html",tooltip=" "]; + Node0 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliToolFloodFill",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html",tooltip=" "]; + Node0 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliToolLine",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html",tooltip=" "]; + Node0 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliToolPen",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html",tooltip=" "]; + Node0 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="IntelliToolPlainTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html",tooltip=" "]; + Node0 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="IntelliToolRectangle",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html",tooltip=" "]; } diff --git a/docs/html/inherit_graph_4.dot b/docs/html/inherit_graph_4.dot index 5af63c2..6da9d0d 100644 --- a/docs/html/inherit_graph_4.dot +++ b/docs/html/inherit_graph_4.dot @@ -4,11 +4,5 @@ digraph "Graphical Class Hierarchy" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node0 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip=" "]; - Node0 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node1 [label="IntelliToolLine",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html",tooltip=" "]; - Node0 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliToolPen",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html",tooltip=" "]; - Node0 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolPlainTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html",tooltip=" "]; + Node0 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip=" "]; } diff --git a/docs/html/inherit_graph_5.dot b/docs/html/inherit_graph_5.dot index 6da9d0d..e4093fd 100644 --- a/docs/html/inherit_graph_5.dot +++ b/docs/html/inherit_graph_5.dot @@ -4,5 +4,7 @@ digraph "Graphical Class Hierarchy" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node0 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip=" "]; + Node2 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node2 -> Node0 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node0 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip=" "]; } diff --git a/docs/html/inherit_graph_6.dot b/docs/html/inherit_graph_6.dot index c50c05b..98844bc 100644 --- a/docs/html/inherit_graph_6.dot +++ b/docs/html/inherit_graph_6.dot @@ -4,7 +4,5 @@ digraph "Graphical Class Hierarchy" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; - Node1 -> Node0 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node0 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip=" "]; + Node0 [label="Triangle",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_triangle.html",tooltip="The Triangle struct holds the 3 vertices of a triangle."]; } diff --git a/docs/html/inherits.html b/docs/html/inherits.html index a6a3e76..ea2edc0 100644 --- a/docs/html/inherits.html +++ b/docs/html/inherits.html @@ -95,17 +95,17 @@ $(document).ready(function(){initNavTree('hierarchy.html','');}); - - - - - -
    +
    +
    +
    +
    +
    +
    diff --git a/docs/html/main_8cpp.html b/docs/html/main_8cpp.html index 7afc301..a44d423 100644 --- a/docs/html/main_8cpp.html +++ b/docs/html/main_8cpp.html @@ -5,7 +5,7 @@ -IntelliPhoto: src/main.cpp File Reference +IntelliPhoto: intelliphoto/src/main.cpp File Reference @@ -95,10 +95,12 @@ $(document).ready(function(){initNavTree('main_8cpp.html','');});
    #include "GUI/IntelliPhotoGui.h"
    #include <QApplication>
    #include <QDebug>
    +#include "IntelliHelper/IntelliHelper.h"
    +#include <vector>
    Include dependency graph for main.cpp:
    -
    +

    Go to the source code of this file.

    @@ -135,7 +137,7 @@ Functions
    -

    Definition at line 5 of file main.cpp.

    +

    Definition at line 7 of file main.cpp.

    @@ -144,7 +146,7 @@ Functions + -
    int main(int argc, char *argv[])
    Definition: main.cpp:5
    +
    int main(int argc, char *argv[])
    Definition: main.cpp:7

    The documentation for this struct was generated from the following file: diff --git a/docs/html/struct_layer_object__coll__graph.dot b/docs/html/struct_layer_object__coll__graph.dot index 589d624..16b2ac5 100644 --- a/docs/html/struct_layer_object__coll__graph.dot +++ b/docs/html/struct_layer_object__coll__graph.dot @@ -5,5 +5,5 @@ digraph "LayerObject" node [fontname="Helvetica",fontsize="10",shape=record]; Node1 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; Node2 -> Node1 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" image" ,fontname="Helvetica"]; - Node2 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip=" "]; + Node2 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip="An abstract class which manages the basic IntelliImage operations."]; } diff --git a/docs/html/struct_triangle-members.html b/docs/html/struct_triangle-members.html new file mode 100644 index 0000000..713afee --- /dev/null +++ b/docs/html/struct_triangle-members.html @@ -0,0 +1,110 @@ + + + + + + + +IntelliPhoto: Member List + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    IntelliPhoto +  0.4 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Triangle Member List
    +
    +
    + +

    This is the complete list of members for Triangle, including all inherited members.

    + + + + +
    ATriangle
    BTriangle
    CTriangle
    +
    + + + + diff --git a/docs/html/struct_triangle.html b/docs/html/struct_triangle.html new file mode 100644 index 0000000..446a4b0 --- /dev/null +++ b/docs/html/struct_triangle.html @@ -0,0 +1,179 @@ + + + + + + + +IntelliPhoto: Triangle Struct Reference + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    IntelliPhoto +  0.4 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    Triangle Struct Reference
    +
    +
    + +

    The Triangle struct holds the 3 vertices of a triangle. + More...

    + +

    #include <IntelliHelper.h>

    + + + + + + + + +

    +Public Attributes

    QPoint A
     
    QPoint B
     
    QPoint C
     
    +

    Detailed Description

    +

    The Triangle struct holds the 3 vertices of a triangle.

    + +

    Definition at line 10 of file IntelliHelper.h.

    +

    Member Data Documentation

    + +

    ◆ A

    + +
    +
    + + + + +
    QPoint Triangle::A
    +
    + +

    Definition at line 11 of file IntelliHelper.h.

    + +
    +
    + +

    ◆ B

    + +
    +
    + + + + +
    QPoint Triangle::B
    +
    + +

    Definition at line 11 of file IntelliHelper.h.

    + +
    +
    + +

    ◆ C

    + +
    +
    + + + + +
    QPoint Triangle::C
    +
    + +

    Definition at line 11 of file IntelliHelper.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/docs/html/struct_triangle.js b/docs/html/struct_triangle.js new file mode 100644 index 0000000..5248a2d --- /dev/null +++ b/docs/html/struct_triangle.js @@ -0,0 +1,6 @@ +var struct_triangle = +[ + [ "A", "struct_triangle.html#a4fe8b39e0144ebff908b7718c2f2751b", null ], + [ "B", "struct_triangle.html#a64fa6a90a6131f12a1a3054bf86647d7", null ], + [ "C", "struct_triangle.html#addb8aaab314d79f3617acca01e12872a", null ] +]; \ No newline at end of file From 0516b0b921c68aa8e1bb730379fbe8386822631c Mon Sep 17 00:00:00 2001 From: Sonaion Date: Thu, 19 Dec 2019 11:43:52 +0100 Subject: [PATCH 36/62] circle docs --- src/Tool/IntelliTool.h.autosave | 111 ++++++++++++++++++++++++++++++++ src/Tool/IntelliToolCircle.h | 60 ++++++++++++++++- 2 files changed, 170 insertions(+), 1 deletion(-) create mode 100644 src/Tool/IntelliTool.h.autosave diff --git a/src/Tool/IntelliTool.h.autosave b/src/Tool/IntelliTool.h.autosave new file mode 100644 index 0000000..6ef8631 --- /dev/null +++ b/src/Tool/IntelliTool.h.autosave @@ -0,0 +1,111 @@ +#ifndef Intelli_Tool_H +#define Intelli_Tool_H + +#include "IntelliHelper/IntelliColorPicker.h" +#include + +class LayerObject; +class PaintingArea; + +/*! + * \brief An abstract class that manages the basic events, like mouse clicks or scrolls events. + */ +class IntelliTool{ +private: + /*! + * \brief A function that creates a layer to draw on. + */ + void createToolLayer(); + + /*! + * \brief A function that merges the drawing- and the active- layer. + */ + void mergeToolLayer(); + + /*! + * \brief A function that deletes the drawinglayer. + */ + void deleteToolLayer(); +protected: + /*! + * \brief A pointer to the general PaintingArea to interact with. + */ + PaintingArea* Area; + + /*! + * \brief A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors. + */ + IntelliColorPicker* colorPicker; + + /*! + * \brief A pointer to the underlying active Layer, do not work on this. This is used for data grabbing or previews. + */ + LayerObject* Active; + + /*! + * \brief A pointer to the drawing canvas of the tool, work on this. + */ + LayerObject* Canvas; + + /*! + * \brief A flag checking if the user is currently drawing or not. + */ + bool drawing = false; + +public: + /*! + * \brief A constructor setting the general Painting Area and colorPicker. + * \param Area - The general PaintingArea used by the project. + * \param colorPicker - The general colorPicker used by the project. + */ + IntelliTool(PaintingArea* Area, IntelliColorPicker* colorPicker); + + /*! + * \brief An abstract Destructor. + */ + virtual ~IntelliTool() = 0; + + /*! + * \brief A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes! + * \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); + + /*! + * \brief A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes! + * \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); + + /*! + * \brief A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes! + * \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); + + /*! + * \brief A function managing the left click Released of a Mouse. Call this in child classes! + * \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); + + /*! + * \brief A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes! + * \param value - The absolute the scroll has changed. + */ + virtual void onWheelScrolled(int value); + + /*! + * \brief A function managing the mouse moved event. Call this in child classes! + * \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); + + +}; +#endif diff --git a/src/Tool/IntelliToolCircle.h b/src/Tool/IntelliToolCircle.h index 488bdb4..9d779e9 100644 --- a/src/Tool/IntelliToolCircle.h +++ b/src/Tool/IntelliToolCircle.h @@ -4,24 +4,82 @@ #include "QColor" #include "QPoint" - +/*! + * \brief The IntelliToolCircle class representing 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 Painting Area and colorPicker. And reading in the 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 An Destructor. + */ 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. + */ 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. 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 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; }; From c6151b1bbf04fc798d3ae057cf90f3797b4e0595 Mon Sep 17 00:00:00 2001 From: Mienek Date: Thu, 19 Dec 2019 11:47:33 +0100 Subject: [PATCH 37/62] Update IntelliToolPolygon.cpp --- src/Tool/IntelliToolPolygon.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Tool/IntelliToolPolygon.cpp b/src/Tool/IntelliToolPolygon.cpp index 8d3e26d..9088d31 100644 --- a/src/Tool/IntelliToolPolygon.cpp +++ b/src/Tool/IntelliToolPolygon.cpp @@ -1,5 +1,6 @@ #include "IntelliToolPolygon.h" #include "Layer/PaintingArea.h" +#include "IntelliHelper/IntelliHelper.h" #include #include @@ -53,11 +54,14 @@ void IntelliToolPolygon::onMouseLeftReleased(int x, int y){ this->Canvas->image->calculateVisiblity(); PointIsNearStart = false; isDrawing = false; + std::vector Triangles = IntelliHelper::calculateTriangles(QPointList); + QPoint Point(0,0); for(int i = 0; i < width; i++){ for(int j = 0; j < height; j++){ - if(/*funktion(QPointList,i,j)*/false){ + Point.setX(i); + Point.setY(j); + if(IntelliHelper::isInPolygon(Triangles,Point)){ this->Canvas->image->drawPixel(QPoint(i,j), colorPicker->getFirstColor()); - continue; } } } From 2da9e15d3624ff964ce263b68ba18ed4d757b9ae Mon Sep 17 00:00:00 2001 From: Conrad Date: Thu, 19 Dec 2019 12:03:21 +0100 Subject: [PATCH 38/62] Minor Code Style Update + Documentation Spelling Fix --- src/GUI/IntelliPhotoGui.cpp | 38 +++++++++++++------------- src/GUI/IntelliPhotoGui.h | 28 +++++++++---------- src/Image/IntelliImage.cpp | 1 - src/Image/IntelliRasterImage.cpp | 2 +- src/IntelliHelper/IntelliColorPicker.h | 2 +- src/IntelliHelper/IntelliHelper.cpp | 31 ++++++++++----------- src/IntelliHelper/IntelliHelper.h | 2 -- src/Layer/PaintingArea.cpp | 4 +-- src/Layer/PaintingArea.h | 3 -- 9 files changed, 51 insertions(+), 60 deletions(-) diff --git a/src/GUI/IntelliPhotoGui.cpp b/src/GUI/IntelliPhotoGui.cpp index 16c8074..3429864 100644 --- a/src/GUI/IntelliPhotoGui.cpp +++ b/src/GUI/IntelliPhotoGui.cpp @@ -8,13 +8,13 @@ // IntelliPhotoGui constructor IntelliPhotoGui::IntelliPhotoGui(){ - //create Gui elements and lay them out + // create Gui elements and lay them out createGui(); // Create actions createActions(); - //create Menus + // create Menus createMenus(); - //set style of the gui + // set style of the gui setIntelliStyle(); // Size the app showMaximized(); @@ -69,7 +69,7 @@ void IntelliPhotoGui::slotCreateNewLayer(){ // Stores button value bool ok1, ok2; - // tr("New Layer") is the title + // "New Layer" is the title of the window // the next tr is the text to display // Define the standard Value, min, max, step and ok button int width = QInputDialog::getInt(this, tr("New Layer"), @@ -91,7 +91,7 @@ void IntelliPhotoGui::slotDeleteLayer(){ // Stores button value bool ok; - // tr("delete Layer") is the title + // "delete Layer" is the title of the window // the next tr is the text to display // Define the standard Value, min, max, step and ok button int layerNumber = QInputDialog::getInt(this, tr("delete Layer"), @@ -114,13 +114,13 @@ void IntelliPhotoGui::slotSetActiveAlpha(){ // Stores button value bool ok1, ok2; - // tr("Layer to set on") is the title + // "Layer to set on" is the title of the window // the next tr is the text to display // Define the standard Value, min, max, step and ok button int layer = QInputDialog::getInt(this, tr("Layer to set on"), tr("Layer:"), -1,-1,100,1, &ok1); - // tr("New Alpha") is the title + // "New Alpha" is the title of the window int alpha = QInputDialog::getInt(this, tr("New Alpha"), tr("Alpha:"), 255,0, 255, 1, &ok2); @@ -164,21 +164,21 @@ void IntelliPhotoGui::slotClearActiveLayer(){ // Stores button value bool ok1, ok2, ok3, ok4; - // tr("Red Input") is the title + // "Red Input" is the title of the window // the next tr is the text to display // Define the standard Value, min, max, step and ok button int red = QInputDialog::getInt(this, tr("Red Input"), tr("Red:"), 255,0, 255,1, &ok1); - // tr("Green Input") is the title + // "Green Input" is the title of the window int green = QInputDialog::getInt(this, tr("Green Input"), tr("Green:"), 255,0, 255, 1, &ok2); - // tr("Blue Input") is the title + // "Blue Input" is the title of the window int blue = QInputDialog::getInt(this, tr("Blue Input"), tr("Blue:"), 255,0, 255, 1, &ok3); - // tr("Alpha Input") is the title + // "Alpha Input" is the title of the window int alpha = QInputDialog::getInt(this, tr("Alpha Input"), tr("Alpha:"), 255,0, 255, 1, &ok4); @@ -192,7 +192,7 @@ void IntelliPhotoGui::slotSetActiveLayer(){ // Stores button value bool ok1; - // tr("Layer to set on") is the title + // "Layer to set on" is the title of the window // the next tr is the text to display // Define the standard Value, min, max, step and ok button int layer = QInputDialog::getInt(this, tr("Layer to set on"), @@ -400,25 +400,25 @@ void IntelliPhotoGui::createMenus(){ } void IntelliPhotoGui::createGui(){ - //create a central widget to work on + // create a central widget to work on centralGuiWidget = new QWidget(this); setCentralWidget(centralGuiWidget); - //create the grid for the layout + // create the grid for the layout mainLayout = new QGridLayout(centralGuiWidget); centralGuiWidget->setLayout(mainLayout); - //create Gui elements + // create Gui elements paintingArea = new PaintingArea(); - //set gui elements + // set gui elements mainLayout->addWidget(paintingArea); } void IntelliPhotoGui::setIntelliStyle(){ // Set the title setWindowTitle("IntelliPhoto Prototype"); - //set style sheet + // Set style sheet this->setStyleSheet("background-color:rgb(64,64,64)"); this->centralGuiWidget->setStyleSheet("color:rgb(255,255,255)"); this->menuBar()->setStyleSheet("color:rgb(255,255,255)"); @@ -427,11 +427,11 @@ void IntelliPhotoGui::setIntelliStyle(){ bool IntelliPhotoGui::maybeSave(){ // Check for changes since last save - //TODO insert variable for modified status here to make an save exit message + // TODO insert variable for modified status here to make an save exit message if (false) { QMessageBox::StandardButton ret; - // Painting is the title + // Painting is the title of the window // Add text and the buttons ret = QMessageBox::warning(this, tr("Painting"), tr("The image has been modified.\n" diff --git a/src/GUI/IntelliPhotoGui.h b/src/GUI/IntelliPhotoGui.h index 3865c1f..0e3e1c6 100644 --- a/src/GUI/IntelliPhotoGui.h +++ b/src/GUI/IntelliPhotoGui.h @@ -29,11 +29,11 @@ protected: void closeEvent(QCloseEvent *event) override; private slots: - //meta slots here (need further ) + // meta slots here (need further ) void slotOpen(); void slotSave(); - //layer slots here + // layer slots here void slotCreateNewLayer(); void slotDeleteLayer(); void slotClearActiveLayer(); @@ -46,26 +46,26 @@ private slots: void slotMoveLayerUp(); void slotMoveLayerDown(); - //color Picker slots here + // color Picker slots here void slotSetFirstColor(); void slotSetSecondColor(); void slotSwitchColor(); - //tool slots here + // tool slots here void slotCreatePenTool(); void slotCreatePlainTool(); void slotCreateLineTool(); - //slots for dialogs + // slots for dialogs void slotAboutDialog(); private: // Will tie user actions to functions void createActions(); void createMenus(); - //setup GUI elements + // setup GUI elements void createGui(); - //set style of the GUI + // set style of the GUI void setIntelliStyle(); @@ -87,26 +87,25 @@ private: QMenu *helpMenu; // All the actions that can occur - - //meta image actions (need further modularisation) + // meta image actions (need further modularisation) QAction *actionOpen; QAction *actionExit; - //color Picker actions + // color Picker actions QAction *actionColorPickerFirstColor; QAction *actionColorPickerSecondColor; QAction *actionColorSwitch; - //tool actions + // tool actions QAction *actionCreatePenTool; QAction *actionCreatePlainTool; QAction *actionCreateLineTool; - //dialog actions + // dialog actions QAction *actionAboutDialog; QAction *actionAboutQtDialog; - //layer change actions + // layer change actions QAction *actionCreateNewLayer; QAction *actionDeleteLayer; QAction* actionSetActiveLayer; @@ -121,10 +120,9 @@ private: // Actions tied to specific file formats QList actionSaveAs; - //main GUI elements + // main GUI elements QWidget* centralGuiWidget; QGridLayout *mainLayout; - }; #endif diff --git a/src/Image/IntelliImage.cpp b/src/Image/IntelliImage.cpp index fe1028b..e2f8a7b 100644 --- a/src/Image/IntelliImage.cpp +++ b/src/Image/IntelliImage.cpp @@ -71,7 +71,6 @@ void IntelliImage::drawLine(const QPoint &p1, const QPoint& p2, const QColor& co // Draw a line from the last registered point to the current painter.drawLine(p1, p2); - } void IntelliImage::drawPlain(const QColor& color){ diff --git a/src/Image/IntelliRasterImage.cpp b/src/Image/IntelliRasterImage.cpp index d92260f..977947c 100644 --- a/src/Image/IntelliRasterImage.cpp +++ b/src/Image/IntelliRasterImage.cpp @@ -19,7 +19,7 @@ IntelliImage* IntelliRasterImage::getDeepCopy(){ } void IntelliRasterImage::calculateVisiblity(){ - //not used in raster image + // not used in raster image } QImage IntelliRasterImage::getDisplayable(int alpha){ diff --git a/src/IntelliHelper/IntelliColorPicker.h b/src/IntelliHelper/IntelliColorPicker.h index f84e54e..be26d24 100644 --- a/src/IntelliHelper/IntelliColorPicker.h +++ b/src/IntelliHelper/IntelliColorPicker.h @@ -11,7 +11,7 @@ class IntelliColorPicker{ public: /*! - * \brief IntelliColorPicker construktor, setting 2 preset colors, be careful, theese color may change in production. + * \brief IntelliColorPicker constructor, setting 2 preset colors, be careful, theese color may change in production. */ IntelliColorPicker(); diff --git a/src/IntelliHelper/IntelliHelper.cpp b/src/IntelliHelper/IntelliHelper.cpp index d814296..2979bc5 100644 --- a/src/IntelliHelper/IntelliHelper.cpp +++ b/src/IntelliHelper/IntelliHelper.cpp @@ -5,7 +5,7 @@ std::vector IntelliHelper::calculateTriangles(std::vector polyPoints){ - //helper for managing the triangle vertices and their state + // helper for managing the triangle vertices and their state struct TriangleHelper{ QPoint vertex; float interiorAngle; @@ -13,7 +13,7 @@ std::vector IntelliHelper::calculateTriangles(std::vector poly bool isTip; }; - //calculates the inner angle of 'point' + // calculates the inner angle of 'point' auto calculateInner = [](QPoint& point, QPoint& prev, QPoint& post){ QPoint AP(point.x()-prev.x(), point.y()-prev.y()); QPoint BP(point.x()-post.x(), point.y()-post.y()); @@ -23,7 +23,7 @@ std::vector IntelliHelper::calculateTriangles(std::vector poly return acos(topSclar/absolute); }; - //gets the first element of vec for which element.isTip == true holds + // gets the first element of vec for which element.isTip == true holds auto getTip= [](const std::vector& vec){ for(auto element:vec){ if(element.isTip){ @@ -33,17 +33,17 @@ std::vector IntelliHelper::calculateTriangles(std::vector poly return vec[0]; }; - //get the vertex Index bevor index in relation to the container length + // get the vertex Index bevor index in relation to the container length auto getPrev = [](int index, int length){ return (index-1)>0?(index-1):(length-1); }; - //get the vertex Index after index in relation to the container lenght + // get the vertex Index after index in relation to the container lenght auto getPost = [](int index, int length){ return (index+1)%length; }; - //return if the vertex is a tip + // return if the vertex is a tip auto isTip = [](float angle){ return angle<180.f; }; @@ -51,7 +51,7 @@ std::vector IntelliHelper::calculateTriangles(std::vector poly std::vector Vertices; std::vector Triangles; - //set up all vertices and calculate intirior angle + // set up all vertices and calculate intirior angle for(int i=0; i(polyPoints.size()); i++){ TriangleHelper helper; int prev = getPrev(i, static_cast(polyPoints.size())); @@ -67,48 +67,47 @@ std::vector IntelliHelper::calculateTriangles(std::vector poly Vertices.push_back(helper); } - //search triangles based on the intirior angles of each vertey + // search triangles based on the intirior angles of each vertey while(Triangles.size() != polyPoints.size()-2){ Triangle tri; TriangleHelper smallest = getTip(Vertices); int prev = getPrev(smallest.index, static_cast(Vertices.size())); int post = getPost(smallest.index, static_cast(Vertices.size())); - //set triangle and push it + // set triangle and push it tri.A = Vertices[static_cast(prev)].vertex; tri.B = Vertices[static_cast(smallest.index)].vertex; tri.C = Vertices[static_cast(post)].vertex; Triangles.push_back(tri); - //update Vertice array + // update Vertice array Vertices.erase(Vertices.begin()+smallest.index); for(size_t i=static_cast(smallest.index); i(Vertices.size())); int postOfPrev = getPost(prev, static_cast(Vertices.size())); int prevOfPost = getPrev(post, static_cast(Vertices.size())); int postOfPost = getPost(post, static_cast(Vertices.size())); - //update vertices with interior angles - //updtae prev + // update vertices with interior angles + // updtae prev Vertices[static_cast(prev)].interiorAngle = calculateInner(Vertices[static_cast(prev)].vertex, Vertices[static_cast(prevOfPrev)].vertex, Vertices[static_cast(postOfPrev)].vertex); Vertices[static_cast(prev)].isTip = isTip(Vertices[static_cast(prev)].interiorAngle); - //update post + // update post Vertices[static_cast(post)].interiorAngle = calculateInner(Vertices[static_cast(post)].vertex, Vertices[static_cast(prevOfPost)].vertex, Vertices[static_cast(postOfPost)].vertex); Vertices[static_cast(post)].isTip = isTip(Vertices[static_cast(post)].interiorAngle); - } return Triangles; } diff --git a/src/IntelliHelper/IntelliHelper.h b/src/IntelliHelper/IntelliHelper.h index ca3ec77..0e511a7 100644 --- a/src/IntelliHelper/IntelliHelper.h +++ b/src/IntelliHelper/IntelliHelper.h @@ -11,7 +11,6 @@ struct Triangle{ QPoint A,B,C; }; - namespace IntelliHelper { /*! @@ -59,7 +58,6 @@ namespace IntelliHelper { * \return Returns true if the point lies in the üpolygon, otherwise false. */ bool isInPolygon(std::vector &triangles, QPoint &point); - } #endif diff --git a/src/Layer/PaintingArea.cpp b/src/Layer/PaintingArea.cpp index 0275c00..294127f 100644 --- a/src/Layer/PaintingArea.cpp +++ b/src/Layer/PaintingArea.cpp @@ -19,10 +19,10 @@ PaintingArea::PaintingArea(int maxWidth, int maxHeight, QWidget *parent) :QWidget(parent){ - //test yout tool here and reset after accomplished test + // Testing Area + // test yout tool here and reset after accomplished test this->Tool = new IntelliToolFloodFill(this, &colorPicker); this->setUp(maxWidth, maxHeight); - //tetsing this->addLayer(200,200,0,0,ImageType::Shaped_Image); layerBundle[0].image->drawPlain(QColor(255,0,0,255)); std::vector polygon; diff --git a/src/Layer/PaintingArea.h b/src/Layer/PaintingArea.h index afe218e..d7e0083 100644 --- a/src/Layer/PaintingArea.h +++ b/src/Layer/PaintingArea.h @@ -13,7 +13,6 @@ #include "Tool/IntelliTool.h" #include "IntelliHelper/IntelliColorPicker.h" - struct LayerObject{ IntelliImage* image; int width; @@ -58,7 +57,6 @@ public: void createLineTool(); public slots: - // Events to handle void slotActivateLayer(int a); void slotDeleteActiveLayer(); @@ -95,7 +93,6 @@ private: void resizeImage(QImage *image_res, const QSize &newSize); - //Helper for Tool void createTempLayerAfter(int idx); }; From 22eb067c7a656dce79c9dcfb5a1f1df4403747ce Mon Sep 17 00:00:00 2001 From: deranonymos Date: Thu, 19 Dec 2019 12:04:54 +0100 Subject: [PATCH 39/62] Added doc for PenTool --- src/Tool/IntelliToolPen.h | 47 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/src/Tool/IntelliToolPen.h b/src/Tool/IntelliToolPen.h index c923ddd..4bee026 100644 --- a/src/Tool/IntelliToolPen.h +++ b/src/Tool/IntelliToolPen.h @@ -4,21 +4,66 @@ #include"IntelliTool.h" #include"QColor" #include"QPoint" - +/*! + * \brief The IntelliToolPen class represents a tool to draw a line. + */ class IntelliToolPen : public IntelliTool{ + /*! + * \brief penWidth - The width of the Pen while drawing. + */ int penWidth; + /*! + * \brief point - Represents the previous point to help drawing a line. + */ QPoint point; public: + /*! + * \brief A constructor setting the general paintingArea and colorPicker. Reading the penWidth. + * \param Area - The general PaintingArea used by the project. + * \param colorPicker - The general colorPicker used by the project. + */ IntelliToolPen(PaintingArea* Area, IntelliColorPicker* colorPicker); virtual ~IntelliToolPen() override; + /*! + * \brief A function managing the right click pressed of a mouse.Resetting the current draw. + * \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. Starting the drawing procedure. + * \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. Merging the drawing to the active 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 onMouseLeftReleased(int x, int y) override; + /*! + * \brief A function managing the scroll event. Changing penWidth relativ to value. + * \param value - The absolute the scroll has changed. + */ virtual void onWheelScrolled(int value) override; + /*! + * \brief A function managing the mouse moved event. To draw the line. + * \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; }; From 1de2f55e856e4963f91375e2312e1a6fb8e875c9 Mon Sep 17 00:00:00 2001 From: Mienek Date: Thu, 19 Dec 2019 12:05:31 +0100 Subject: [PATCH 40/62] Documentation --- src/Tool/IntelliToolPolygon.cpp | 6 ++--- src/Tool/IntelliToolPolygon.h | 46 ++++++++++++++++++++++++++++++++- 2 files changed, 48 insertions(+), 4 deletions(-) diff --git a/src/Tool/IntelliToolPolygon.cpp b/src/Tool/IntelliToolPolygon.cpp index 9088d31..d075529 100644 --- a/src/Tool/IntelliToolPolygon.cpp +++ b/src/Tool/IntelliToolPolygon.cpp @@ -1,6 +1,5 @@ #include "IntelliToolPolygon.h" #include "Layer/PaintingArea.h" -#include "IntelliHelper/IntelliHelper.h" #include #include @@ -11,6 +10,8 @@ IntelliToolPolygon::IntelliToolPolygon(PaintingArea* Area, IntelliColorPicker* c PointIsNearStart = false; drawingPoint.setX(0); drawingPoint.setY(0); + Point.setX(0); + Point.setY(0); } void IntelliToolPolygon::onMouseLeftPressed(int x, int y){ @@ -54,8 +55,7 @@ void IntelliToolPolygon::onMouseLeftReleased(int x, int y){ this->Canvas->image->calculateVisiblity(); PointIsNearStart = false; isDrawing = false; - std::vector Triangles = IntelliHelper::calculateTriangles(QPointList); - QPoint Point(0,0); + Triangles = IntelliHelper::calculateTriangles(QPointList); for(int i = 0; i < width; i++){ for(int j = 0; j < height; j++){ Point.setX(i); diff --git a/src/Tool/IntelliToolPolygon.h b/src/Tool/IntelliToolPolygon.h index fc51ec6..da9fa7c 100644 --- a/src/Tool/IntelliToolPolygon.h +++ b/src/Tool/IntelliToolPolygon.h @@ -2,12 +2,20 @@ #define INTELLITOOLPOLYGON_H #include "IntelliTool.h" +#include "IntelliHelper/IntelliHelper.h" #include #include - +/*! + * \brief The IntelliToolPolygon managed the Drawing of Polygonforms + */ class IntelliToolPolygon : public IntelliTool { public: + /*! + * \brief IntelliToolPolygon Constructor Define the Tool-intern Parameters + * \param Area + * \param colorPicker + */ IntelliToolPolygon(PaintingArea* Area, IntelliColorPicker* colorPicker); virtual void onMouseLeftPressed(int x, int y) override; @@ -20,15 +28,51 @@ public: virtual void onMouseMoved(int x, int y) override; private: + /*! + * \brief isNearStart + * \param x + * \param y + * \param Startpoint + * \return true : Near Startpoint, else false + */ bool isNearStart(int x, int y, QPoint Startpoint); + /*! + * \brief lineWidth of the Drawing Polygon + */ int lineWidth; + /*! + * \brief width of the active Layer + */ int width; + /*! + * \brief height of the active Layer + */ int height; + /*! + * \brief isDrawing true while drawing, else false + */ bool isDrawing; + /*! + * \brief PointIsNearStart true, when last click near Startpoint, else false + */ bool PointIsNearStart; + /*! + * \brief drawingPoint Current Point after Left-Click + */ QPoint drawingPoint; + /*! + * \brief Point Needed to look, if Point is in Polygon + */ + QPoint Point; + /*! + * \brief QPointList List of all Points of the Polygon + */ std::vector QPointList; + /*! + * \brief Triangles Transformed QPointList into triangulated Form of the Polygon + */ + std::vector Triangles; }; From f24dfe5d3328f571b24b5c3c41e811c7a3a90aea Mon Sep 17 00:00:00 2001 From: deranonymos Date: Thu, 19 Dec 2019 12:28:56 +0100 Subject: [PATCH 41/62] Adding doc for Plain/Rectangle/Pen Tool, and also some update to Plaintool --- src/Tool/IntelliTool.h | 2 +- src/Tool/IntelliTool.h.autosave | 111 -------------------------------- src/Tool/IntelliToolPen.h | 21 +++--- src/Tool/IntelliToolPlain.cpp | 4 ++ src/Tool/IntelliToolPlain.h | 49 +++++++++++++- src/Tool/IntelliToolRectangle.h | 57 +++++++++++++++- 6 files changed, 119 insertions(+), 125 deletions(-) delete mode 100644 src/Tool/IntelliTool.h.autosave diff --git a/src/Tool/IntelliTool.h b/src/Tool/IntelliTool.h index 5225a7a..6ef8631 100644 --- a/src/Tool/IntelliTool.h +++ b/src/Tool/IntelliTool.h @@ -56,7 +56,7 @@ public: /*! * \brief A constructor setting the general Painting Area and colorPicker. * \param Area - The general PaintingArea used by the project. - * \param colorPicker - The general colorPicker used by the project + * \param colorPicker - The general colorPicker used by the project. */ IntelliTool(PaintingArea* Area, IntelliColorPicker* colorPicker); diff --git a/src/Tool/IntelliTool.h.autosave b/src/Tool/IntelliTool.h.autosave deleted file mode 100644 index 6ef8631..0000000 --- a/src/Tool/IntelliTool.h.autosave +++ /dev/null @@ -1,111 +0,0 @@ -#ifndef Intelli_Tool_H -#define Intelli_Tool_H - -#include "IntelliHelper/IntelliColorPicker.h" -#include - -class LayerObject; -class PaintingArea; - -/*! - * \brief An abstract class that manages the basic events, like mouse clicks or scrolls events. - */ -class IntelliTool{ -private: - /*! - * \brief A function that creates a layer to draw on. - */ - void createToolLayer(); - - /*! - * \brief A function that merges the drawing- and the active- layer. - */ - void mergeToolLayer(); - - /*! - * \brief A function that deletes the drawinglayer. - */ - void deleteToolLayer(); -protected: - /*! - * \brief A pointer to the general PaintingArea to interact with. - */ - PaintingArea* Area; - - /*! - * \brief A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors. - */ - IntelliColorPicker* colorPicker; - - /*! - * \brief A pointer to the underlying active Layer, do not work on this. This is used for data grabbing or previews. - */ - LayerObject* Active; - - /*! - * \brief A pointer to the drawing canvas of the tool, work on this. - */ - LayerObject* Canvas; - - /*! - * \brief A flag checking if the user is currently drawing or not. - */ - bool drawing = false; - -public: - /*! - * \brief A constructor setting the general Painting Area and colorPicker. - * \param Area - The general PaintingArea used by the project. - * \param colorPicker - The general colorPicker used by the project. - */ - IntelliTool(PaintingArea* Area, IntelliColorPicker* colorPicker); - - /*! - * \brief An abstract Destructor. - */ - virtual ~IntelliTool() = 0; - - /*! - * \brief A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes! - * \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); - - /*! - * \brief A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes! - * \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); - - /*! - * \brief A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes! - * \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); - - /*! - * \brief A function managing the left click Released of a Mouse. Call this in child classes! - * \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); - - /*! - * \brief A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes! - * \param value - The absolute the scroll has changed. - */ - virtual void onWheelScrolled(int value); - - /*! - * \brief A function managing the mouse moved event. Call this in child classes! - * \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); - - -}; -#endif diff --git a/src/Tool/IntelliToolPen.h b/src/Tool/IntelliToolPen.h index 4bee026..25bc4d4 100644 --- a/src/Tool/IntelliToolPen.h +++ b/src/Tool/IntelliToolPen.h @@ -23,33 +23,36 @@ public: * \param colorPicker - The general colorPicker used by the project. */ IntelliToolPen(PaintingArea* Area, IntelliColorPicker* colorPicker); + /*! + * \brief A Destructor. + */ virtual ~IntelliToolPen() override; /*! * \brief A function managing the right click pressed of a mouse.Resetting the current draw. - * \param x - The x coordinate relative to the active/canvas Layer. - * \param y - The y coordinate relative to the active/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. + * \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. Starting the drawing procedure. - * \param x - The x coordinate relative to the active/canvas Layer. - * \param y - The y coordinate relative to the active/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 onMouseLeftPressed(int x, int y) override; /*! - * \brief A function managing the left click released of a mouse. Merging the drawing to the active 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 released of a mouse. Merging the drawing to the active 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 onMouseLeftReleased(int x, int y) override; diff --git a/src/Tool/IntelliToolPlain.cpp b/src/Tool/IntelliToolPlain.cpp index 34e3c5f..b501386 100644 --- a/src/Tool/IntelliToolPlain.cpp +++ b/src/Tool/IntelliToolPlain.cpp @@ -6,6 +6,10 @@ IntelliToolPlainTool::IntelliToolPlainTool(PaintingArea* Area, IntelliColorPicke :IntelliTool(Area, colorPicker){ } +IntelliToolPlainTool::~IntelliToolPlainTool(){ + +} + void IntelliToolPlainTool::onMouseLeftPressed(int x, int y){ IntelliTool::onMouseLeftPressed(x,y); this->Canvas->image->drawPlain(colorPicker->getFirstColor()); diff --git a/src/Tool/IntelliToolPlain.h b/src/Tool/IntelliToolPlain.h index aad7633..b6380ed 100644 --- a/src/Tool/IntelliToolPlain.h +++ b/src/Tool/IntelliToolPlain.h @@ -3,18 +3,61 @@ #include "IntelliTool.h" #include "QColor" - +/*! + * \brief The IntelliToolPlainTool class represents a tool to fill the whole canvas with one color. + */ class IntelliToolPlainTool : 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. + */ IntelliToolPlainTool(PaintingArea *Area, IntelliColorPicker* colorPicker); + /*! + * \brief A Destructor. + */ + virtual ~IntelliToolPlainTool() override; - virtual void onMouseLeftPressed(int x, int y) override; - virtual void onMouseLeftReleased(int x, int y) override; + /*! + * \brief A function managing the right click pressed of a mouse.Resetting the current fill. + * \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. Filling the whole 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 onMouseLeftPressed(int x, int y) override; + + /*! + * \brief A function managing the left click released of a mouse. Merging the fill to the active 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 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/IntelliToolRectangle.h b/src/Tool/IntelliToolRectangle.h index 2b59629..249e146 100644 --- a/src/Tool/IntelliToolRectangle.h +++ b/src/Tool/IntelliToolRectangle.h @@ -5,24 +5,79 @@ #include "QColor" #include "QPoint" - +/*! + * \brief The IntelliToolRectangle class represents a tool to draw a rectangle. + */ class IntelliToolRectangle : public IntelliTool{ + /*! + * \brief A function that implements a rectagle drawing algorithm. + * \param otherCornor - The second corner point of the rectangle. + */ void drawRectangle(QPoint otherCornor); + /*! + * \brief originCornor - The first corner point of the rectangle. + */ QPoint originCornor; + /*! + * \brief alphaInner- Represents the alpha value of the inside. + */ int alphaInner; + /*! + * \brief edgeWidth - The width of the rectangle edges. + */ int edgeWidth; public: + /*! + * \brief A constructor setting the general paintingArea and colorPicker. And reading in the alphaInner and edgeWidth. + * \param Area - The general paintingArea used by the project. + * \param colorPicker - The general colorPicker used by the project. + */ IntelliToolRectangle(PaintingArea* Area, IntelliColorPicker* colorPicker); + /*! + * \brief A Destructor. + */ virtual ~IntelliToolRectangle() override; + /*! + * \brief A function managing the right click pressed of a mouse.Resetting the current draw. + * \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. Setting the originCorner and draws a rectangle. + * \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. Merging the draw to the active 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 onMouseLeftReleased(int x, int y) override; + /*! + * \brief A function managing the scroll event.Changing edgeWidth relativ 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 rectangle to currrent 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; }; From e965162379ede3fcc4f4671bba224b50799e7acf Mon Sep 17 00:00:00 2001 From: Sonaion Date: Thu, 19 Dec 2019 12:29:58 +0100 Subject: [PATCH 42/62] Tool COmments update --- src/Tool/IntelliToolCircle.h | 34 +++++----- src/Tool/IntelliToolCircle.h.autosave | 86 ++++++++++++++++++++++++ src/Tool/IntelliToolFloodFill.h | 44 ++++++++++++ src/Tool/IntelliToolFloodFill.h.autosave | 67 ++++++++++++++++++ src/Tool/IntelliToolLine.h | 60 ++++++++++++++++- 5 files changed, 273 insertions(+), 18 deletions(-) create mode 100644 src/Tool/IntelliToolCircle.h.autosave create mode 100644 src/Tool/IntelliToolFloodFill.h.autosave 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; }; From 07391b93b1699a61ff1642a9a98c7b38f42d1217 Mon Sep 17 00:00:00 2001 From: Sonaion Date: Thu, 19 Dec 2019 12:32:07 +0100 Subject: [PATCH 43/62] Small changes in grammer --- src/Tool/IntelliTool.h | 22 +++--- src/Tool/IntelliToolCircle.h | 2 +- src/Tool/IntelliToolCircle.h.autosave | 86 ------------------------ src/Tool/IntelliToolFloodFill.h | 2 +- src/Tool/IntelliToolFloodFill.h.autosave | 67 ------------------ 5 files changed, 13 insertions(+), 166 deletions(-) delete mode 100644 src/Tool/IntelliToolCircle.h.autosave delete mode 100644 src/Tool/IntelliToolFloodFill.h.autosave diff --git a/src/Tool/IntelliTool.h b/src/Tool/IntelliTool.h index 6ef8631..a00fbb9 100644 --- a/src/Tool/IntelliTool.h +++ b/src/Tool/IntelliTool.h @@ -67,42 +67,42 @@ public: /*! * \brief A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes! - * \param x - The x coordinate relative to the Active/Canvas Layer. - * \param y - The y coordinate relative to the Active/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); /*! * \brief A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes! - * \param x - The x coordinate relative to the Active/Canvas Layer. - * \param y - The y coordinate relative to the Active/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 onMouseRightReleased(int x, int y); /*! * \brief A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes! - * \param x - The x coordinate relative to the Active/Canvas Layer. - * \param y - The y coordinate relative to the Active/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 onMouseLeftPressed(int x, int y); /*! * \brief A function managing the left click Released of a Mouse. Call this in child classes! - * \param x - The x coordinate relative to the Active/Canvas Layer. - * \param y - The y coordinate relative to the Active/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 onMouseLeftReleased(int x, int y); /*! - * \brief A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes! + * \brief A function managing the scroll event. A positive value means scrolling outwards. Call this in child classes! * \param value - The absolute the scroll has changed. */ virtual void onWheelScrolled(int value); /*! * \brief A function managing the mouse moved event. Call this in child classes! - * \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); diff --git a/src/Tool/IntelliToolCircle.h b/src/Tool/IntelliToolCircle.h index 28e2fac..3ed747c 100644 --- a/src/Tool/IntelliToolCircle.h +++ b/src/Tool/IntelliToolCircle.h @@ -37,7 +37,7 @@ public: IntelliToolCircle(PaintingArea* Area, IntelliColorPicker* colorPicker); /*! - * \brief An Destructor. + * \brief A Destructor. */ virtual ~IntelliToolCircle() override; diff --git a/src/Tool/IntelliToolCircle.h.autosave b/src/Tool/IntelliToolCircle.h.autosave deleted file mode 100644 index 3ed747c..0000000 --- a/src/Tool/IntelliToolCircle.h.autosave +++ /dev/null @@ -1,86 +0,0 @@ -#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 ff40817..4e3eb04 100644 --- a/src/Tool/IntelliToolFloodFill.h +++ b/src/Tool/IntelliToolFloodFill.h @@ -17,7 +17,7 @@ public: IntelliToolFloodFill(PaintingArea* Area, IntelliColorPicker* colorPicker); /*! - * \brief An Destructor. + * \brief A Destructor. */ virtual ~IntelliToolFloodFill() override; diff --git a/src/Tool/IntelliToolFloodFill.h.autosave b/src/Tool/IntelliToolFloodFill.h.autosave deleted file mode 100644 index 4e3eb04..0000000 --- a/src/Tool/IntelliToolFloodFill.h.autosave +++ /dev/null @@ -1,67 +0,0 @@ -#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 From 050be88861a8af5269f5c9d8c5dd3901b716ea74 Mon Sep 17 00:00:00 2001 From: Conrad Date: Thu, 19 Dec 2019 12:39:35 +0100 Subject: [PATCH 44/62] Added Uncrustify Config --- conf/uncrustify.conf | 2986 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2986 insertions(+) create mode 100644 conf/uncrustify.conf diff --git a/conf/uncrustify.conf b/conf/uncrustify.conf new file mode 100644 index 0000000..9d843ca --- /dev/null +++ b/conf/uncrustify.conf @@ -0,0 +1,2986 @@ +# Uncrustify-0.70.1 + +# +# General options +# + +# The type of line endings. +# +# Default: auto +newlines = auto # lf/crlf/cr/auto + +# The original size of tabs in the input. +# +# Default: 8 +input_tab_size = 4 # unsigned number + +# The size of tabs in the output (only used if align_with_tabs=true). +# +# Default: 8 +output_tab_size = 4 # unsigned number + +# The ASCII value of the string escape char, usually 92 (\) or (Pawn) 94 (^). +# +# Default: 92 +string_escape_char = 92 # unsigned number + +# Alternate string escape char (usually only used for Pawn). +# Only works right before the quote char. +string_escape_char2 = 0 # unsigned number + +# Replace tab characters found in string literals with the escape sequence \t +# instead. +string_replace_tab_chars = true # true/false + +# Allow interpreting '>=' and '>>=' as part of a template in code like +# 'void f(list>=val);'. If true, 'assert(x<0 && y>=3)' will be broken. +# Improvements to template detection may make this option obsolete. +tok_split_gte = false # true/false + +# Specify the marker used in comments to disable processing of part of the +# file. +# +# Default: *INDENT-OFF* +disable_processing_cmt = " *INDENT-OFF*" # string + +# Specify the marker used in comments to (re)enable processing in a file. +# +# Default: *INDENT-ON* +enable_processing_cmt = " *INDENT-ON*" # string + +# Enable parsing of digraphs. +enable_digraphs = false # true/false + +# Add or remove the UTF-8 BOM (recommend 'remove'). +utf8_bom = ignore # ignore/add/remove/force + +# If the file contains bytes with values between 128 and 255, but is not +# UTF-8, then output as UTF-8. +utf8_byte = false # true/false + +# Force the output encoding to UTF-8. +utf8_force = false # true/false + +# Add or remove space between 'do' and '{'. +sp_do_brace_open = ignore # ignore/add/remove/force + +# Add or remove space between '}' and 'while'. +sp_brace_close_while = ignore # ignore/add/remove/force + +# Add or remove space between 'while' and '('. +sp_while_paren_open = ignore # ignore/add/remove/force + +# +# Spacing options +# + +# Add or remove space around non-assignment symbolic operators ('+', '/', '%', +# '<<', and so forth). +sp_arith = ignore # ignore/add/remove/force + +# Add or remove space around arithmetic operators '+' and '-'. +# +# Overrides sp_arith. +sp_arith_additive = ignore # ignore/add/remove/force + +# Add or remove space around assignment operator '=', '+=', etc. +sp_assign = ignore # ignore/add/remove/force + +# Add or remove space around '=' in C++11 lambda capture specifications. +# +# Overrides sp_assign. +sp_cpp_lambda_assign = ignore # ignore/add/remove/force + +# Add or remove space after the capture specification of a C++11 lambda when +# an argument list is present, as in '[] (int x){ ... }'. +sp_cpp_lambda_square_paren = ignore # ignore/add/remove/force + +# Add or remove space after the capture specification of a C++11 lambda with +# no argument list is present, as in '[] { ... }'. +sp_cpp_lambda_square_brace = ignore # ignore/add/remove/force + +# Add or remove space after the argument list of a C++11 lambda, as in +# '[](int x) { ... }'. +sp_cpp_lambda_paren_brace = ignore # ignore/add/remove/force + +# Add or remove space between a lambda body and its call operator of an +# immediately invoked lambda, as in '[]( ... ){ ... } ( ... )'. +sp_cpp_lambda_fparen = ignore # ignore/add/remove/force + +# Add or remove space around assignment operator '=' in a prototype. +# +# If set to ignore, use sp_assign. +sp_assign_default = ignore # ignore/add/remove/force + +# Add or remove space before assignment operator '=', '+=', etc. +# +# Overrides sp_assign. +sp_before_assign = ignore # ignore/add/remove/force + +# Add or remove space after assignment operator '=', '+=', etc. +# +# Overrides sp_assign. +sp_after_assign = ignore # ignore/add/remove/force + +# Add or remove space in 'NS_ENUM ('. +sp_enum_paren = ignore # ignore/add/remove/force + +# Add or remove space around assignment '=' in enum. +sp_enum_assign = ignore # ignore/add/remove/force + +# Add or remove space before assignment '=' in enum. +# +# Overrides sp_enum_assign. +sp_enum_before_assign = ignore # ignore/add/remove/force + +# Add or remove space after assignment '=' in enum. +# +# Overrides sp_enum_assign. +sp_enum_after_assign = ignore # ignore/add/remove/force + +# Add or remove space around assignment ':' in enum. +sp_enum_colon = ignore # ignore/add/remove/force + +# Add or remove space around preprocessor '##' concatenation operator. +# +# Default: add +sp_pp_concat = add # ignore/add/remove/force + +# Add or remove space after preprocessor '#' stringify operator. +# Also affects the '#@' charizing operator. +sp_pp_stringify = ignore # ignore/add/remove/force + +# Add or remove space before preprocessor '#' stringify operator +# as in '#define x(y) L#y'. +sp_before_pp_stringify = ignore # ignore/add/remove/force + +# Add or remove space around boolean operators '&&' and '||'. +sp_bool = ignore # ignore/add/remove/force + +# Add or remove space around compare operator '<', '>', '==', etc. +sp_compare = ignore # ignore/add/remove/force + +# Add or remove space inside '(' and ')'. +sp_inside_paren = ignore # ignore/add/remove/force + +# Add or remove space between nested parentheses, i.e. '((' vs. ') )'. +sp_paren_paren = ignore # ignore/add/remove/force + +# Add or remove space between back-to-back parentheses, i.e. ')(' vs. ') ('. +sp_cparen_oparen = ignore # ignore/add/remove/force + +# Whether to balance spaces inside nested parentheses. +sp_balance_nested_parens = false # true/false + +# Add or remove space between ')' and '{'. +sp_paren_brace = add # ignore/add/remove/force + +# Add or remove space between nested braces, i.e. '{{' vs '{ {'. +sp_brace_brace = remove # ignore/add/remove/force + +# Add or remove space before pointer star '*'. +sp_before_ptr_star = remove # ignore/add/remove/force + +# Add or remove space before pointer star '*' that isn't followed by a +# variable name. If set to ignore, sp_before_ptr_star is used instead. +sp_before_unnamed_ptr_star = ignore # ignore/add/remove/force + +# Add or remove space between pointer stars '*'. +sp_between_ptr_star = ignore # ignore/add/remove/force + +# Add or remove space after pointer star '*', if followed by a word. +# +# Overrides sp_type_func. +sp_after_ptr_star = ignore # ignore/add/remove/force + +# Add or remove space after pointer caret '^', if followed by a word. +sp_after_ptr_block_caret = ignore # ignore/add/remove/force + +# Add or remove space after pointer star '*', if followed by a qualifier. +sp_after_ptr_star_qualifier = ignore # ignore/add/remove/force + +# Add or remove space after a pointer star '*', if followed by a function +# prototype or function definition. +# +# Overrides sp_after_ptr_star and sp_type_func. +sp_after_ptr_star_func = ignore # ignore/add/remove/force + +# Add or remove space after a pointer star '*', if followed by an open +# parenthesis, as in 'void* (*)(). +sp_ptr_star_paren = ignore # ignore/add/remove/force + +# Add or remove space before a pointer star '*', if followed by a function +# prototype or function definition. +sp_before_ptr_star_func = ignore # ignore/add/remove/force + +# Add or remove space before a reference sign '&'. +sp_before_byref = ignore # ignore/add/remove/force + +# Add or remove space before a reference sign '&' that isn't followed by a +# variable name. If set to ignore, sp_before_byref is used instead. +sp_before_unnamed_byref = ignore # ignore/add/remove/force + +# Add or remove space after reference sign '&', if followed by a word. +# +# Overrides sp_type_func. +sp_after_byref = ignore # ignore/add/remove/force + +# Add or remove space after a reference sign '&', if followed by a function +# prototype or function definition. +# +# Overrides sp_after_byref and sp_type_func. +sp_after_byref_func = ignore # ignore/add/remove/force + +# Add or remove space before a reference sign '&', if followed by a function +# prototype or function definition. +sp_before_byref_func = ignore # ignore/add/remove/force + +# Add or remove space between type and word. +# +# Default: force +sp_after_type = force # ignore/add/remove/force + +# Add or remove space between 'decltype(...)' and word. +sp_after_decltype = ignore # ignore/add/remove/force + +# (D) Add or remove space before the parenthesis in the D constructs +# 'template Foo(' and 'class Foo('. +sp_before_template_paren = ignore # ignore/add/remove/force + +# Add or remove space between 'template' and '<'. +# If set to ignore, sp_before_angle is used. +sp_template_angle = ignore # ignore/add/remove/force + +# Add or remove space before '<'. +sp_before_angle = ignore # ignore/add/remove/force + +# Add or remove space inside '<' and '>'. +sp_inside_angle = ignore # ignore/add/remove/force + +# Add or remove space inside '<>'. +sp_inside_angle_empty = ignore # ignore/add/remove/force + +# Add or remove space between '>' and ':'. +sp_angle_colon = ignore # ignore/add/remove/force + +# Add or remove space after '>'. +sp_after_angle = ignore # ignore/add/remove/force + +# Add or remove space between '>' and '(' as found in 'new List(foo);'. +sp_angle_paren = ignore # ignore/add/remove/force + +# Add or remove space between '>' and '()' as found in 'new List();'. +sp_angle_paren_empty = ignore # ignore/add/remove/force + +# Add or remove space between '>' and a word as in 'List m;' or +# 'template static ...'. +sp_angle_word = ignore # ignore/add/remove/force + +# Add or remove space between '>' and '>' in '>>' (template stuff). +# +# Default: add +sp_angle_shift = add # ignore/add/remove/force + +# (C++11) Permit removal of the space between '>>' in 'foo >'. Note +# that sp_angle_shift cannot remove the space without this option. +sp_permit_cpp11_shift = false # true/false + +# Add or remove space before '(' of control statements ('if', 'for', 'switch', +# 'while', etc.). +sp_before_sparen = ignore # ignore/add/remove/force + +# Add or remove space inside '(' and ')' of control statements. +sp_inside_sparen = ignore # ignore/add/remove/force + +# Add or remove space after '(' of control statements. +# +# Overrides sp_inside_sparen. +sp_inside_sparen_open = ignore # ignore/add/remove/force + +# Add or remove space before ')' of control statements. +# +# Overrides sp_inside_sparen. +sp_inside_sparen_close = ignore # ignore/add/remove/force + +# Add or remove space after ')' of control statements. +sp_after_sparen = ignore # ignore/add/remove/force + +# Add or remove space between ')' and '{' of of control statements. +sp_sparen_brace = ignore # ignore/add/remove/force + +# (D) Add or remove space between 'invariant' and '('. +sp_invariant_paren = ignore # ignore/add/remove/force + +# (D) Add or remove space after the ')' in 'invariant (C) c'. +sp_after_invariant_paren = ignore # ignore/add/remove/force + +# Add or remove space before empty statement ';' on 'if', 'for' and 'while'. +sp_special_semi = ignore # ignore/add/remove/force + +# Add or remove space before ';'. +# +# Default: remove +sp_before_semi = remove # ignore/add/remove/force + +# Add or remove space before ';' in non-empty 'for' statements. +sp_before_semi_for = ignore # ignore/add/remove/force + +# Add or remove space before a semicolon of an empty part of a for statement. +sp_before_semi_for_empty = ignore # ignore/add/remove/force + +# Add or remove space after ';', except when followed by a comment. +# +# Default: add +sp_after_semi = add # ignore/add/remove/force + +# Add or remove space after ';' in non-empty 'for' statements. +# +# Default: force +sp_after_semi_for = force # ignore/add/remove/force + +# Add or remove space after the final semicolon of an empty part of a for +# statement, as in 'for ( ; ; )'. +sp_after_semi_for_empty = ignore # ignore/add/remove/force + +# Add or remove space before '[' (except '[]'). +sp_before_square = ignore # ignore/add/remove/force + +# Add or remove space before '[' for a variable definition. +# +# Default: remove +sp_before_vardef_square = remove # ignore/add/remove/force + +# Add or remove space before '[' for asm block. +sp_before_square_asm_block = ignore # ignore/add/remove/force + +# Add or remove space before '[]'. +sp_before_squares = ignore # ignore/add/remove/force + +# Add or remove space before C++17 structured bindings. +sp_cpp_before_struct_binding = ignore # ignore/add/remove/force + +# Add or remove space inside a non-empty '[' and ']'. +sp_inside_square = ignore # ignore/add/remove/force + +# (OC) Add or remove space inside a non-empty Objective-C boxed array '@[' and +# ']'. If set to ignore, sp_inside_square is used. +sp_inside_square_oc_array = ignore # ignore/add/remove/force + +# Add or remove space after ',', i.e. 'a,b' vs. 'a, b'. +sp_after_comma = ignore # ignore/add/remove/force + +# Add or remove space before ','. +# +# Default: remove +sp_before_comma = remove # ignore/add/remove/force + +# (C#) Add or remove space between ',' and ']' in multidimensional array type +# like 'int[,,]'. +sp_after_mdatype_commas = ignore # ignore/add/remove/force + +# (C#) Add or remove space between '[' and ',' in multidimensional array type +# like 'int[,,]'. +sp_before_mdatype_commas = ignore # ignore/add/remove/force + +# (C#) Add or remove space between ',' in multidimensional array type +# like 'int[,,]'. +sp_between_mdatype_commas = ignore # ignore/add/remove/force + +# Add or remove space between an open parenthesis and comma, +# i.e. '(,' vs. '( ,'. +# +# Default: force +sp_paren_comma = force # ignore/add/remove/force + +# Add or remove space before the variadic '...' when preceded by a +# non-punctuator. +sp_before_ellipsis = ignore # ignore/add/remove/force + +# Add or remove space between a type and '...'. +sp_type_ellipsis = ignore # ignore/add/remove/force + +# (D) Add or remove space between a type and '?'. +sp_type_question = ignore # ignore/add/remove/force + +# Add or remove space between ')' and '...'. +sp_paren_ellipsis = ignore # ignore/add/remove/force + +# Add or remove space between ')' and a qualifier such as 'const'. +sp_paren_qualifier = ignore # ignore/add/remove/force + +# Add or remove space between ')' and 'noexcept'. +sp_paren_noexcept = ignore # ignore/add/remove/force + +# Add or remove space after class ':'. +sp_after_class_colon = ignore # ignore/add/remove/force + +# Add or remove space before class ':'. +sp_before_class_colon = ignore # ignore/add/remove/force + +# Add or remove space after class constructor ':'. +sp_after_constr_colon = ignore # ignore/add/remove/force + +# Add or remove space before class constructor ':'. +sp_before_constr_colon = ignore # ignore/add/remove/force + +# Add or remove space before case ':'. +# +# Default: remove +sp_before_case_colon = remove # ignore/add/remove/force + +# Add or remove space between 'operator' and operator sign. +sp_after_operator = ignore # ignore/add/remove/force + +# Add or remove space between the operator symbol and the open parenthesis, as +# in 'operator ++('. +sp_after_operator_sym = ignore # ignore/add/remove/force + +# Overrides sp_after_operator_sym when the operator has no arguments, as in +# 'operator *()'. +sp_after_operator_sym_empty = ignore # ignore/add/remove/force + +# Add or remove space after C/D cast, i.e. 'cast(int)a' vs. 'cast(int) a' or +# '(int)a' vs. '(int) a'. +sp_after_cast = ignore # ignore/add/remove/force + +# Add or remove spaces inside cast parentheses. +sp_inside_paren_cast = ignore # ignore/add/remove/force + +# Add or remove space between the type and open parenthesis in a C++ cast, +# i.e. 'int(exp)' vs. 'int (exp)'. +sp_cpp_cast_paren = ignore # ignore/add/remove/force + +# Add or remove space between 'sizeof' and '('. +sp_sizeof_paren = ignore # ignore/add/remove/force + +# Add or remove space between 'sizeof' and '...'. +sp_sizeof_ellipsis = ignore # ignore/add/remove/force + +# Add or remove space between 'sizeof...' and '('. +sp_sizeof_ellipsis_paren = ignore # ignore/add/remove/force + +# Add or remove space between 'decltype' and '('. +sp_decltype_paren = ignore # ignore/add/remove/force + +# (Pawn) Add or remove space after the tag keyword. +sp_after_tag = ignore # ignore/add/remove/force + +# Add or remove space inside enum '{' and '}'. +sp_inside_braces_enum = ignore # ignore/add/remove/force + +# Add or remove space inside struct/union '{' and '}'. +sp_inside_braces_struct = ignore # ignore/add/remove/force + +# (OC) Add or remove space inside Objective-C boxed dictionary '{' and '}' +sp_inside_braces_oc_dict = ignore # ignore/add/remove/force + +# Add or remove space after open brace in an unnamed temporary +# direct-list-initialization. +sp_after_type_brace_init_lst_open = ignore # ignore/add/remove/force + +# Add or remove space before close brace in an unnamed temporary +# direct-list-initialization. +sp_before_type_brace_init_lst_close = ignore # ignore/add/remove/force + +# Add or remove space inside an unnamed temporary direct-list-initialization. +sp_inside_type_brace_init_lst = ignore # ignore/add/remove/force + +# Add or remove space inside '{' and '}'. +sp_inside_braces = ignore # ignore/add/remove/force + +# Add or remove space inside '{}'. +sp_inside_braces_empty = ignore # ignore/add/remove/force + +# Add or remove space around trailing return operator '->'. +sp_trailing_return = ignore # ignore/add/remove/force + +# Add or remove space between return type and function name. A minimum of 1 +# is forced except for pointer return types. +sp_type_func = ignore # ignore/add/remove/force + +# Add or remove space between type and open brace of an unnamed temporary +# direct-list-initialization. +sp_type_brace_init_lst = ignore # ignore/add/remove/force + +# Add or remove space between function name and '(' on function declaration. +sp_func_proto_paren = ignore # ignore/add/remove/force + +# Add or remove space between function name and '()' on function declaration +# without parameters. +sp_func_proto_paren_empty = ignore # ignore/add/remove/force + +# Add or remove space between function name and '(' with a typedef specifier. +sp_func_type_paren = ignore # ignore/add/remove/force + +# Add or remove space between alias name and '(' of a non-pointer function type typedef. +sp_func_def_paren = ignore # ignore/add/remove/force + +# Add or remove space between function name and '()' on function definition +# without parameters. +sp_func_def_paren_empty = ignore # ignore/add/remove/force + +# Add or remove space inside empty function '()'. +# Overrides sp_after_angle unless use_sp_after_angle_always is set to true. +sp_inside_fparens = ignore # ignore/add/remove/force + +# Add or remove space inside function '(' and ')'. +sp_inside_fparen = ignore # ignore/add/remove/force + +# Add or remove space inside the first parentheses in a function type, as in +# 'void (*x)(...)'. +sp_inside_tparen = ignore # ignore/add/remove/force + +# Add or remove space between the ')' and '(' in a function type, as in +# 'void (*x)(...)'. +sp_after_tparen_close = ignore # ignore/add/remove/force + +# Add or remove space between ']' and '(' when part of a function call. +sp_square_fparen = ignore # ignore/add/remove/force + +# Add or remove space between ')' and '{' of function. +sp_fparen_brace = ignore # ignore/add/remove/force + +# Add or remove space between ')' and '{' of s function call in object +# initialization. +# +# Overrides sp_fparen_brace. +sp_fparen_brace_initializer = ignore # ignore/add/remove/force + +# (Java) Add or remove space between ')' and '{{' of double brace initializer. +sp_fparen_dbrace = ignore # ignore/add/remove/force + +# Add or remove space between function name and '(' on function calls. +sp_func_call_paren = ignore # ignore/add/remove/force + +# Add or remove space between function name and '()' on function calls without +# parameters. If set to ignore (the default), sp_func_call_paren is used. +sp_func_call_paren_empty = ignore # ignore/add/remove/force + +# Add or remove space between the user function name and '(' on function +# calls. You need to set a keyword to be a user function in the config file, +# like: +# set func_call_user tr _ i18n +sp_func_call_user_paren = ignore # ignore/add/remove/force + +# Add or remove space inside user function '(' and ')'. +sp_func_call_user_inside_fparen = ignore # ignore/add/remove/force + +# Add or remove space between nested parentheses with user functions, +# i.e. '((' vs. '( ('. +sp_func_call_user_paren_paren = ignore # ignore/add/remove/force + +# Add or remove space between a constructor/destructor and the open +# parenthesis. +sp_func_class_paren = ignore # ignore/add/remove/force + +# Add or remove space between a constructor without parameters or destructor +# and '()'. +sp_func_class_paren_empty = ignore # ignore/add/remove/force + +# Add or remove space between 'return' and '('. +sp_return_paren = ignore # ignore/add/remove/force + +# Add or remove space between 'return' and '{'. +sp_return_brace = ignore # ignore/add/remove/force + +# Add or remove space between '__attribute__' and '('. +sp_attribute_paren = ignore # ignore/add/remove/force + +# Add or remove space between 'defined' and '(' in '#if defined (FOO)'. +sp_defined_paren = ignore # ignore/add/remove/force + +# Add or remove space between 'throw' and '(' in 'throw (something)'. +sp_throw_paren = ignore # ignore/add/remove/force + +# Add or remove space between 'throw' and anything other than '(' as in +# '@throw [...];'. +sp_after_throw = ignore # ignore/add/remove/force + +# Add or remove space between 'catch' and '(' in 'catch (something) { }'. +# If set to ignore, sp_before_sparen is used. +sp_catch_paren = ignore # ignore/add/remove/force + +# (OC) Add or remove space between '@catch' and '(' +# in '@catch (something) { }'. If set to ignore, sp_catch_paren is used. +sp_oc_catch_paren = ignore # ignore/add/remove/force + +# (OC) Add or remove space between class name and '(' +# in '@interface className(categoryName):BaseClass' +sp_oc_classname_paren = ignore # ignore/add/remove/force + +# (D) Add or remove space between 'version' and '(' +# in 'version (something) { }'. If set to ignore, sp_before_sparen is used. +sp_version_paren = ignore # ignore/add/remove/force + +# (D) Add or remove space between 'scope' and '(' +# in 'scope (something) { }'. If set to ignore, sp_before_sparen is used. +sp_scope_paren = ignore # ignore/add/remove/force + +# Add or remove space between 'super' and '(' in 'super (something)'. +# +# Default: remove +sp_super_paren = remove # ignore/add/remove/force + +# Add or remove space between 'this' and '(' in 'this (something)'. +# +# Default: remove +sp_this_paren = remove # ignore/add/remove/force + +# Add or remove space between a macro name and its definition. +sp_macro = ignore # ignore/add/remove/force + +# Add or remove space between a macro function ')' and its definition. +sp_macro_func = ignore # ignore/add/remove/force + +# Add or remove space between 'else' and '{' if on the same line. +sp_else_brace = ignore # ignore/add/remove/force + +# Add or remove space between '}' and 'else' if on the same line. +sp_brace_else = ignore # ignore/add/remove/force + +# Add or remove space between '}' and the name of a typedef on the same line. +sp_brace_typedef = ignore # ignore/add/remove/force + +# Add or remove space before the '{' of a 'catch' statement, if the '{' and +# 'catch' are on the same line, as in 'catch (decl) {'. +sp_catch_brace = ignore # ignore/add/remove/force + +# (OC) Add or remove space before the '{' of a '@catch' statement, if the '{' +# and '@catch' are on the same line, as in '@catch (decl) {'. +# If set to ignore, sp_catch_brace is used. +sp_oc_catch_brace = ignore # ignore/add/remove/force + +# Add or remove space between '}' and 'catch' if on the same line. +sp_brace_catch = ignore # ignore/add/remove/force + +# (OC) Add or remove space between '}' and '@catch' if on the same line. +# If set to ignore, sp_brace_catch is used. +sp_oc_brace_catch = ignore # ignore/add/remove/force + +# Add or remove space between 'finally' and '{' if on the same line. +sp_finally_brace = ignore # ignore/add/remove/force + +# Add or remove space between '}' and 'finally' if on the same line. +sp_brace_finally = ignore # ignore/add/remove/force + +# Add or remove space between 'try' and '{' if on the same line. +sp_try_brace = ignore # ignore/add/remove/force + +# Add or remove space between get/set and '{' if on the same line. +sp_getset_brace = ignore # ignore/add/remove/force + +# Add or remove space between a variable and '{' for C++ uniform +# initialization. +# +# Default: add +sp_word_brace = add # ignore/add/remove/force + +# Add or remove space between a variable and '{' for a namespace. +# +# Default: add +sp_word_brace_ns = add # ignore/add/remove/force + +# Add or remove space before the '::' operator. +sp_before_dc = ignore # ignore/add/remove/force + +# Add or remove space after the '::' operator. +sp_after_dc = ignore # ignore/add/remove/force + +# (D) Add or remove around the D named array initializer ':' operator. +sp_d_array_colon = ignore # ignore/add/remove/force + +# Add or remove space after the '!' (not) unary operator. +# +# Default: remove +sp_not = remove # ignore/add/remove/force + +# Add or remove space after the '~' (invert) unary operator. +# +# Default: remove +sp_inv = remove # ignore/add/remove/force + +# Add or remove space after the '&' (address-of) unary operator. This does not +# affect the spacing after a '&' that is part of a type. +# +# Default: remove +sp_addr = remove # ignore/add/remove/force + +# Add or remove space around the '.' or '->' operators. +# +# Default: remove +sp_member = remove # ignore/add/remove/force + +# Add or remove space after the '*' (dereference) unary operator. This does +# not affect the spacing after a '*' that is part of a type. +# +# Default: remove +sp_deref = remove # ignore/add/remove/force + +# Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'. +# +# Default: remove +sp_sign = remove # ignore/add/remove/force + +# Add or remove space between '++' and '--' the word to which it is being +# applied, as in '(--x)' or 'y++;'. +# +# Default: remove +sp_incdec = remove # ignore/add/remove/force + +# Add or remove space before a backslash-newline at the end of a line. +# +# Default: add +sp_before_nl_cont = add # ignore/add/remove/force + +# (OC) Add or remove space after the scope '+' or '-', as in '-(void) foo;' +# or '+(int) bar;'. +sp_after_oc_scope = ignore # ignore/add/remove/force + +# (OC) Add or remove space after the colon in message specs, +# i.e. '-(int) f:(int) x;' vs. '-(int) f: (int) x;'. +sp_after_oc_colon = ignore # ignore/add/remove/force + +# (OC) Add or remove space before the colon in message specs, +# i.e. '-(int) f: (int) x;' vs. '-(int) f : (int) x;'. +sp_before_oc_colon = ignore # ignore/add/remove/force + +# (OC) Add or remove space after the colon in immutable dictionary expression +# 'NSDictionary *test = @{@"foo" :@"bar"};'. +sp_after_oc_dict_colon = ignore # ignore/add/remove/force + +# (OC) Add or remove space before the colon in immutable dictionary expression +# 'NSDictionary *test = @{@"foo" :@"bar"};'. +sp_before_oc_dict_colon = ignore # ignore/add/remove/force + +# (OC) Add or remove space after the colon in message specs, +# i.e. '[object setValue:1];' vs. '[object setValue: 1];'. +sp_after_send_oc_colon = ignore # ignore/add/remove/force + +# (OC) Add or remove space before the colon in message specs, +# i.e. '[object setValue:1];' vs. '[object setValue :1];'. +sp_before_send_oc_colon = ignore # ignore/add/remove/force + +# (OC) Add or remove space after the (type) in message specs, +# i.e. '-(int)f: (int) x;' vs. '-(int)f: (int)x;'. +sp_after_oc_type = ignore # ignore/add/remove/force + +# (OC) Add or remove space after the first (type) in message specs, +# i.e. '-(int) f:(int)x;' vs. '-(int)f:(int)x;'. +sp_after_oc_return_type = ignore # ignore/add/remove/force + +# (OC) Add or remove space between '@selector' and '(', +# i.e. '@selector(msgName)' vs. '@selector (msgName)'. +# Also applies to '@protocol()' constructs. +sp_after_oc_at_sel = ignore # ignore/add/remove/force + +# (OC) Add or remove space between '@selector(x)' and the following word, +# i.e. '@selector(foo) a:' vs. '@selector(foo)a:'. +sp_after_oc_at_sel_parens = ignore # ignore/add/remove/force + +# (OC) Add or remove space inside '@selector' parentheses, +# i.e. '@selector(foo)' vs. '@selector( foo )'. +# Also applies to '@protocol()' constructs. +sp_inside_oc_at_sel_parens = ignore # ignore/add/remove/force + +# (OC) Add or remove space before a block pointer caret, +# i.e. '^int (int arg){...}' vs. ' ^int (int arg){...}'. +sp_before_oc_block_caret = ignore # ignore/add/remove/force + +# (OC) Add or remove space after a block pointer caret, +# i.e. '^int (int arg){...}' vs. '^ int (int arg){...}'. +sp_after_oc_block_caret = ignore # ignore/add/remove/force + +# (OC) Add or remove space between the receiver and selector in a message, +# as in '[receiver selector ...]'. +sp_after_oc_msg_receiver = ignore # ignore/add/remove/force + +# (OC) Add or remove space after '@property'. +sp_after_oc_property = ignore # ignore/add/remove/force + +# (OC) Add or remove space between '@synchronized' and the open parenthesis, +# i.e. '@synchronized(foo)' vs. '@synchronized (foo)'. +sp_after_oc_synchronized = ignore # ignore/add/remove/force + +# Add or remove space around the ':' in 'b ? t : f'. +sp_cond_colon = ignore # ignore/add/remove/force + +# Add or remove space before the ':' in 'b ? t : f'. +# +# Overrides sp_cond_colon. +sp_cond_colon_before = ignore # ignore/add/remove/force + +# Add or remove space after the ':' in 'b ? t : f'. +# +# Overrides sp_cond_colon. +sp_cond_colon_after = ignore # ignore/add/remove/force + +# Add or remove space around the '?' in 'b ? t : f'. +sp_cond_question = ignore # ignore/add/remove/force + +# Add or remove space before the '?' in 'b ? t : f'. +# +# Overrides sp_cond_question. +sp_cond_question_before = ignore # ignore/add/remove/force + +# Add or remove space after the '?' in 'b ? t : f'. +# +# Overrides sp_cond_question. +sp_cond_question_after = ignore # ignore/add/remove/force + +# In the abbreviated ternary form '(a ?: b)', add or remove space between '?' +# and ':'. +# +# Overrides all other sp_cond_* options. +sp_cond_ternary_short = ignore # ignore/add/remove/force + +# Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make +# sense here. +sp_case_label = ignore # ignore/add/remove/force + +# (D) Add or remove space around the D '..' operator. +sp_range = ignore # ignore/add/remove/force + +# Add or remove space after ':' in a Java/C++11 range-based 'for', +# as in 'for (Type var : expr)'. +sp_after_for_colon = ignore # ignore/add/remove/force + +# Add or remove space before ':' in a Java/C++11 range-based 'for', +# as in 'for (Type var : expr)'. +sp_before_for_colon = ignore # ignore/add/remove/force + +# (D) Add or remove space between 'extern' and '(' as in 'extern (C)'. +sp_extern_paren = ignore # ignore/add/remove/force + +# Add or remove space after the opening of a C++ comment, +# i.e. '// A' vs. '//A'. +sp_cmt_cpp_start = ignore # ignore/add/remove/force + +# If true, space is added with sp_cmt_cpp_start will be added after doxygen +# sequences like '///', '///<', '//!' and '//!<'. +sp_cmt_cpp_doxygen = false # true/false + +# If true, space is added with sp_cmt_cpp_start will be added after Qt +# translator or meta-data comments like '//:', '//=', and '//~'. +sp_cmt_cpp_qttr = false # true/false + +# Add or remove space between #else or #endif and a trailing comment. +sp_endif_cmt = ignore # ignore/add/remove/force + +# Add or remove space after 'new', 'delete' and 'delete[]'. +sp_after_new = ignore # ignore/add/remove/force + +# Add or remove space between 'new' and '(' in 'new()'. +sp_between_new_paren = ignore # ignore/add/remove/force + +# Add or remove space between ')' and type in 'new(foo) BAR'. +sp_after_newop_paren = ignore # ignore/add/remove/force + +# Add or remove space inside parenthesis of the new operator +# as in 'new(foo) BAR'. +sp_inside_newop_paren = ignore # ignore/add/remove/force + +# Add or remove space after the open parenthesis of the new operator, +# as in 'new(foo) BAR'. +# +# Overrides sp_inside_newop_paren. +sp_inside_newop_paren_open = ignore # ignore/add/remove/force + +# Add or remove space before the close parenthesis of the new operator, +# as in 'new(foo) BAR'. +# +# Overrides sp_inside_newop_paren. +sp_inside_newop_paren_close = ignore # ignore/add/remove/force + +# Add or remove space before a trailing or embedded comment. +sp_before_tr_emb_cmt = ignore # ignore/add/remove/force + +# Number of spaces before a trailing or embedded comment. +sp_num_before_tr_emb_cmt = 0 # unsigned number + +# (Java) Add or remove space between an annotation and the open parenthesis. +sp_annotation_paren = ignore # ignore/add/remove/force + +# If true, vbrace tokens are dropped to the previous token and skipped. +sp_skip_vbrace_tokens = false # true/false + +# Add or remove space after 'noexcept'. +sp_after_noexcept = ignore # ignore/add/remove/force + +# Add or remove space after '_'. +sp_vala_after_translation = ignore # ignore/add/remove/force + +# If true, a is inserted after #define. +force_tab_after_define = false # true/false + +# +# Indenting options +# + +# The number of columns to indent per level. Usually 2, 3, 4, or 8. +# +# Default: 8 +indent_columns = 8 # unsigned number + +# The continuation indent. If non-zero, this overrides the indent of '(', '[' +# and '=' continuation indents. Negative values are OK; negative value is +# absolute and not increased for each '(' or '[' level. +# +# For FreeBSD, this is set to 4. +indent_continue = 0 # number + +# The continuation indent, only for class header line(s). If non-zero, this +# overrides the indent of 'class' continuation indents. +indent_continue_class_head = 0 # unsigned number + +# Whether to indent empty lines (i.e. lines which contain only spaces before +# the newline character). +indent_single_newlines = false # true/false + +# The continuation indent for func_*_param if they are true. If non-zero, this +# overrides the indent. +indent_param = 0 # unsigned number + +# How to use tabs when indenting code. +# +# 0: Spaces only +# 1: Indent with tabs to brace level, align with spaces (default) +# 2: Indent and align with tabs, using spaces when not on a tabstop +# +# Default: 1 +indent_with_tabs = 1 # unsigned number + +# Whether to indent comments that are not at a brace level with tabs on a +# tabstop. Requires indent_with_tabs=2. If false, will use spaces. +indent_cmt_with_tabs = false # true/false + +# Whether to indent strings broken by '\' so that they line up. +indent_align_string = false # true/false + +# The number of spaces to indent multi-line XML strings. +# Requires indent_align_string=true. +indent_xml_string = 0 # unsigned number + +# Spaces to indent '{' from level. +indent_brace = 0 # unsigned number + +# Whether braces are indented to the body level. +indent_braces = false # true/false + +# Whether to disable indenting function braces if indent_braces=true. +indent_braces_no_func = false # true/false + +# Whether to disable indenting class braces if indent_braces=true. +indent_braces_no_class = false # true/false + +# Whether to disable indenting struct braces if indent_braces=true. +indent_braces_no_struct = false # true/false + +# Whether to indent based on the size of the brace parent, +# i.e. 'if' => 3 spaces, 'for' => 4 spaces, etc. +indent_brace_parent = false # true/false + +# Whether to indent based on the open parenthesis instead of the open brace +# in '({\n'. +indent_paren_open_brace = false # true/false + +# (C#) Whether to indent the brace of a C# delegate by another level. +indent_cs_delegate_brace = false # true/false + +# (C#) Whether to indent a C# delegate (to handle delegates with no brace) by +# another level. +indent_cs_delegate_body = false # true/false + +# Whether to indent the body of a 'namespace'. +indent_namespace = false # true/false + +# Whether to indent only the first namespace, and not any nested namespaces. +# Requires indent_namespace=true. +indent_namespace_single_indent = false # true/false + +# The number of spaces to indent a namespace block. +# If set to zero, use the value indent_columns +indent_namespace_level = 0 # unsigned number + +# If the body of the namespace is longer than this number, it won't be +# indented. Requires indent_namespace=true. 0 means no limit. +indent_namespace_limit = 0 # unsigned number + +# Whether the 'extern "C"' body is indented. +indent_extern = false # true/false + +# Whether the 'class' body is indented. +indent_class = false # true/false + +# Whether to indent the stuff after a leading base class colon. +indent_class_colon = false # true/false + +# Whether to indent based on a class colon instead of the stuff after the +# colon. Requires indent_class_colon=true. +indent_class_on_colon = false # true/false + +# Whether to indent the stuff after a leading class initializer colon. +indent_constr_colon = false # true/false + +# Virtual indent from the ':' for member initializers. +# +# Default: 2 +indent_ctor_init_leading = 2 # unsigned number + +# Additional indent for constructor initializer list. +# Negative values decrease indent down to the first column. +indent_ctor_init = 0 # number + +# Whether to indent 'if' following 'else' as a new block under the 'else'. +# If false, 'else\nif' is treated as 'else if' for indenting purposes. +indent_else_if = false # true/false + +# Amount to indent variable declarations after a open brace. +# +# <0: Relative +# >=0: Absolute +indent_var_def_blk = 0 # number + +# Whether to indent continued variable declarations instead of aligning. +indent_var_def_cont = false # true/false + +# Whether to indent continued shift expressions ('<<' and '>>') instead of +# aligning. Set align_left_shift=false when enabling this. +indent_shift = false # true/false + +# Whether to force indentation of function definitions to start in column 1. +indent_func_def_force_col1 = false # true/false + +# Whether to indent continued function call parameters one indent level, +# rather than aligning parameters under the open parenthesis. +indent_func_call_param = false # true/false + +# Whether to indent continued function definition parameters one indent level, +# rather than aligning parameters under the open parenthesis. +indent_func_def_param = false # true/false + +# for function definitions, only if indent_func_def_param is false +# Allows to align params when appropriate and indent them when not +# behave as if it was true if paren position is more than this value +# if paren position is more than the option value +indent_func_def_param_paren_pos_threshold = 0 # unsigned number + +# Whether to indent continued function call prototype one indent level, +# rather than aligning parameters under the open parenthesis. +indent_func_proto_param = false # true/false + +# Whether to indent continued function call declaration one indent level, +# rather than aligning parameters under the open parenthesis. +indent_func_class_param = false # true/false + +# Whether to indent continued class variable constructors one indent level, +# rather than aligning parameters under the open parenthesis. +indent_func_ctor_var_param = false # true/false + +# Whether to indent continued template parameter list one indent level, +# rather than aligning parameters under the open parenthesis. +indent_template_param = false # true/false + +# Double the indent for indent_func_xxx_param options. +# Use both values of the options indent_columns and indent_param. +indent_func_param_double = false # true/false + +# Indentation column for standalone 'const' qualifier on a function +# prototype. +indent_func_const = 0 # unsigned number + +# Indentation column for standalone 'throw' qualifier on a function +# prototype. +indent_func_throw = 0 # unsigned number + +# How to indent within a macro followed by a brace on the same line +# This allows reducing the indent in macros that have (for example) +# `do { ... } while (0)` blocks bracketing them. +# +# true: add an indent for the brace on the same line as the macro +# false: do not add an indent for the brace on the same line as the macro +# +# Default: true +indent_macro_brace = true # true/false + +# The number of spaces to indent a continued '->' or '.'. +# Usually set to 0, 1, or indent_columns. +indent_member = 0 # unsigned number + +# Whether lines broken at '.' or '->' should be indented by a single indent. +# The indent_member option will not be effective if this is set to true. +indent_member_single = false # true/false + +# Spaces to indent single line ('//') comments on lines before code. +indent_sing_line_comments = 0 # unsigned number + +# Whether to indent trailing single line ('//') comments relative to the code +# instead of trying to keep the same absolute column. +indent_relative_single_line_comments = false # true/false + +# Spaces to indent 'case' from 'switch'. Usually 0 or indent_columns. +indent_switch_case = 0 # unsigned number + +# indent 'break' with 'case' from 'switch'. +indent_switch_break_with_case = false # true/false + +# Whether to indent preprocessor statements inside of switch statements. +# +# Default: true +indent_switch_pp = true # true/false + +# Spaces to shift the 'case' line, without affecting any other lines. +# Usually 0. +indent_case_shift = 0 # unsigned number + +# Spaces to indent '{' from 'case'. By default, the brace will appear under +# the 'c' in case. Usually set to 0 or indent_columns. Negative values are OK. +indent_case_brace = 0 # number + +# Whether to indent comments found in first column. +indent_col1_comment = false # true/false + +# Whether to indent multi string literal in first column. +indent_col1_multi_string_literal = false # true/false + +# How to indent goto labels. +# +# >0: Absolute column where 1 is the leftmost column +# <=0: Subtract from brace indent +# +# Default: 1 +indent_label = 1 # number + +# How to indent access specifiers that are followed by a +# colon. +# +# >0: Absolute column where 1 is the leftmost column +# <=0: Subtract from brace indent +# +# Default: 1 +indent_access_spec = 1 # number + +# Whether to indent the code after an access specifier by one level. +# If true, this option forces 'indent_access_spec=0'. +indent_access_spec_body = false # true/false + +# If an open parenthesis is followed by a newline, whether to indent the next +# line so that it lines up after the open parenthesis (not recommended). +indent_paren_nl = false # true/false + +# How to indent a close parenthesis after a newline. +# +# 0: Indent to body level (default) +# 1: Align under the open parenthesis +# 2: Indent to the brace level +indent_paren_close = 0 # unsigned number + +# Whether to indent the open parenthesis of a function definition, +# if the parenthesis is on its own line. +indent_paren_after_func_def = false # true/false + +# Whether to indent the open parenthesis of a function declaration, +# if the parenthesis is on its own line. +indent_paren_after_func_decl = false # true/false + +# Whether to indent the open parenthesis of a function call, +# if the parenthesis is on its own line. +indent_paren_after_func_call = false # true/false + +# Whether to indent a comma when inside a parenthesis. +# If true, aligns under the open parenthesis. +indent_comma_paren = false # true/false + +# Whether to indent a Boolean operator when inside a parenthesis. +# If true, aligns under the open parenthesis. +indent_bool_paren = false # true/false + +# Whether to indent a semicolon when inside a for parenthesis. +# If true, aligns under the open for parenthesis. +indent_semicolon_for_paren = false # true/false + +# Whether to align the first expression to following ones +# if indent_bool_paren=true. +indent_first_bool_expr = false # true/false + +# Whether to align the first expression to following ones +# if indent_semicolon_for_paren=true. +indent_first_for_expr = false # true/false + +# If an open square is followed by a newline, whether to indent the next line +# so that it lines up after the open square (not recommended). +indent_square_nl = false # true/false + +# (ESQL/C) Whether to preserve the relative indent of 'EXEC SQL' bodies. +indent_preserve_sql = false # true/false + +# Whether to align continued statements at the '='. If false or if the '=' is +# followed by a newline, the next line is indent one tab. +# +# Default: true +indent_align_assign = true # true/false + +# Whether to align continued statements at the '('. If false or the '(' is +# followed by a newline, the next line indent is one tab. +# +# Default: true +indent_align_paren = true # true/false + +# (OC) Whether to indent Objective-C blocks at brace level instead of usual +# rules. +indent_oc_block = false # true/false + +# (OC) Indent for Objective-C blocks in a message relative to the parameter +# name. +# +# =0: Use indent_oc_block rules +# >0: Use specified number of spaces to indent +indent_oc_block_msg = 0 # unsigned number + +# (OC) Minimum indent for subsequent parameters +indent_oc_msg_colon = 0 # unsigned number + +# (OC) Whether to prioritize aligning with initial colon (and stripping spaces +# from lines, if necessary). +# +# Default: true +indent_oc_msg_prioritize_first_colon = true # true/false + +# (OC) Whether to indent blocks the way that Xcode does by default +# (from the keyword if the parameter is on its own line; otherwise, from the +# previous indentation level). Requires indent_oc_block_msg=true. +indent_oc_block_msg_xcode_style = false # true/false + +# (OC) Whether to indent blocks from where the brace is, relative to a +# message keyword. Requires indent_oc_block_msg=true. +indent_oc_block_msg_from_keyword = false # true/false + +# (OC) Whether to indent blocks from where the brace is, relative to a message +# colon. Requires indent_oc_block_msg=true. +indent_oc_block_msg_from_colon = false # true/false + +# (OC) Whether to indent blocks from where the block caret is. +# Requires indent_oc_block_msg=true. +indent_oc_block_msg_from_caret = false # true/false + +# (OC) Whether to indent blocks from where the brace caret is. +# Requires indent_oc_block_msg=true. +indent_oc_block_msg_from_brace = false # true/false + +# When indenting after virtual brace open and newline add further spaces to +# reach this minimum indent. +indent_min_vbrace_open = 0 # unsigned number + +# Whether to add further spaces after regular indent to reach next tabstop +# when identing after virtual brace open and newline. +indent_vbrace_open_on_tabstop = false # true/false + +# How to indent after a brace followed by another token (not a newline). +# true: indent all contained lines to match the token +# false: indent all contained lines to match the brace +# +# Default: true +indent_token_after_brace = true # true/false + +# Whether to indent the body of a C++11 lambda. +indent_cpp_lambda_body = false # true/false + +# (C#) Whether to indent a 'using' block if no braces are used. +# +# Default: true +indent_using_block = true # true/false + +# How to indent the continuation of ternary operator. +# +# 0: Off (default) +# 1: When the `if_false` is a continuation, indent it under `if_false` +# 2: When the `:` is a continuation, indent it under `?` +indent_ternary_operator = 0 # unsigned number + +# If true, the indentation of the chunks after a `return new` sequence will be set at return indentation column. +indent_off_after_return_new = false # true/false + +# If true, the tokens after return are indented with regular single indentation. By default (false) the indentation is after the return token. +indent_single_after_return = false # true/false + +# Whether to ignore indent and alignment for 'asm' blocks (i.e. assume they +# have their own indentation). +indent_ignore_asm_block = false # true/false + +# +# Newline adding and removing options +# + +# Whether to collapse empty blocks between '{' and '}'. +nl_collapse_empty_body = false # true/false + +# Don't split one-line braced assignments, as in 'foo_t f = { 1, 2 };'. +nl_assign_leave_one_liners = false # true/false + +# Don't split one-line braced statements inside a 'class xx { }' body. +nl_class_leave_one_liners = false # true/false + +# Don't split one-line enums, as in 'enum foo { BAR = 15 };' +nl_enum_leave_one_liners = false # true/false + +# Don't split one-line get or set functions. +nl_getset_leave_one_liners = false # true/false + +# (C#) Don't split one-line property get or set functions. +nl_cs_property_leave_one_liners = false # true/false + +# Don't split one-line function definitions, as in 'int foo() { return 0; }'. +# night modify nl_func_type_name +nl_func_leave_one_liners = false # true/false + +# Don't split one-line C++11 lambdas, as in '[]() { return 0; }'. +nl_cpp_lambda_leave_one_liners = false # true/false + +# Don't split one-line if/else statements, as in 'if(...) b++;'. +nl_if_leave_one_liners = false # true/false + +# Don't split one-line while statements, as in 'while(...) b++;'. +nl_while_leave_one_liners = false # true/false + +# Don't split one-line for statements, as in 'for(...) b++;'. +nl_for_leave_one_liners = false # true/false + +# (OC) Don't split one-line Objective-C messages. +nl_oc_msg_leave_one_liner = false # true/false + +# (OC) Add or remove newline between method declaration and '{'. +nl_oc_mdef_brace = ignore # ignore/add/remove/force + +# (OC) Add or remove newline between Objective-C block signature and '{'. +nl_oc_block_brace = ignore # ignore/add/remove/force + +# (OC) Add or remove blank line before '@interface' statement. +nl_oc_before_interface = ignore # ignore/add/remove/force + +# (OC) Add or remove blank line before '@implementation' statement. +nl_oc_before_implementation = ignore # ignore/add/remove/force + +# (OC) Add or remove blank line before '@end' statement. +nl_oc_before_end = ignore # ignore/add/remove/force + +# (OC) Add or remove newline between '@interface' and '{'. +nl_oc_interface_brace = ignore # ignore/add/remove/force + +# (OC) Add or remove newline between '@implementation' and '{'. +nl_oc_implementation_brace = ignore # ignore/add/remove/force + +# Add or remove newlines at the start of the file. +nl_start_of_file = ignore # ignore/add/remove/force + +# The minimum number of newlines at the start of the file (only used if +# nl_start_of_file is 'add' or 'force'). +nl_start_of_file_min = 0 # unsigned number + +# Add or remove newline at the end of the file. +nl_end_of_file = ignore # ignore/add/remove/force + +# The minimum number of newlines at the end of the file (only used if +# nl_end_of_file is 'add' or 'force'). +nl_end_of_file_min = 0 # unsigned number + +# Add or remove newline between '=' and '{'. +nl_assign_brace = ignore # ignore/add/remove/force + +# (D) Add or remove newline between '=' and '['. +nl_assign_square = ignore # ignore/add/remove/force + +# Add or remove newline between '[]' and '{'. +nl_tsquare_brace = ignore # ignore/add/remove/force + +# (D) Add or remove newline after '= ['. Will also affect the newline before +# the ']'. +nl_after_square_assign = ignore # ignore/add/remove/force + +# Add or remove newline between a function call's ')' and '{', as in +# 'list_for_each(item, &list) { }'. +nl_fcall_brace = ignore # ignore/add/remove/force + +# Add or remove newline between 'enum' and '{'. +nl_enum_brace = ignore # ignore/add/remove/force + +# Add or remove newline between 'enum' and 'class'. +nl_enum_class = ignore # ignore/add/remove/force + +# Add or remove newline between 'enum class' and the identifier. +nl_enum_class_identifier = ignore # ignore/add/remove/force + +# Add or remove newline between 'enum class' type and ':'. +nl_enum_identifier_colon = ignore # ignore/add/remove/force + +# Add or remove newline between 'enum class identifier :' and type. +nl_enum_colon_type = ignore # ignore/add/remove/force + +# Add or remove newline between 'struct and '{'. +nl_struct_brace = ignore # ignore/add/remove/force + +# Add or remove newline between 'union' and '{'. +nl_union_brace = ignore # ignore/add/remove/force + +# Add or remove newline between 'if' and '{'. +nl_if_brace = ignore # ignore/add/remove/force + +# Add or remove newline between '}' and 'else'. +nl_brace_else = ignore # ignore/add/remove/force + +# Add or remove newline between 'else if' and '{'. If set to ignore, +# nl_if_brace is used instead. +nl_elseif_brace = ignore # ignore/add/remove/force + +# Add or remove newline between 'else' and '{'. +nl_else_brace = ignore # ignore/add/remove/force + +# Add or remove newline between 'else' and 'if'. +nl_else_if = ignore # ignore/add/remove/force + +# Add or remove newline before 'if'/'else if' closing parenthesis. +nl_before_if_closing_paren = ignore # ignore/add/remove/force + +# Add or remove newline between '}' and 'finally'. +nl_brace_finally = ignore # ignore/add/remove/force + +# Add or remove newline between 'finally' and '{'. +nl_finally_brace = ignore # ignore/add/remove/force + +# Add or remove newline between 'try' and '{'. +nl_try_brace = ignore # ignore/add/remove/force + +# Add or remove newline between get/set and '{'. +nl_getset_brace = ignore # ignore/add/remove/force + +# Add or remove newline between 'for' and '{'. +nl_for_brace = ignore # ignore/add/remove/force + +# Add or remove newline before the '{' of a 'catch' statement, as in +# 'catch (decl) {'. +nl_catch_brace = ignore # ignore/add/remove/force + +# (OC) Add or remove newline before the '{' of a '@catch' statement, as in +# '@catch (decl) {'. If set to ignore, nl_catch_brace is used. +nl_oc_catch_brace = ignore # ignore/add/remove/force + +# Add or remove newline between '}' and 'catch'. +nl_brace_catch = ignore # ignore/add/remove/force + +# (OC) Add or remove newline between '}' and '@catch'. If set to ignore, +# nl_brace_catch is used. +nl_oc_brace_catch = ignore # ignore/add/remove/force + +# Add or remove newline between '}' and ']'. +nl_brace_square = ignore # ignore/add/remove/force + +# Add or remove newline between '}' and ')' in a function invocation. +nl_brace_fparen = ignore # ignore/add/remove/force + +# Add or remove newline between 'while' and '{'. +nl_while_brace = ignore # ignore/add/remove/force + +# (D) Add or remove newline between 'scope (x)' and '{'. +nl_scope_brace = ignore # ignore/add/remove/force + +# (D) Add or remove newline between 'unittest' and '{'. +nl_unittest_brace = ignore # ignore/add/remove/force + +# (D) Add or remove newline between 'version (x)' and '{'. +nl_version_brace = ignore # ignore/add/remove/force + +# (C#) Add or remove newline between 'using' and '{'. +nl_using_brace = ignore # ignore/add/remove/force + +# Add or remove newline between two open or close braces. Due to general +# newline/brace handling, REMOVE may not work. +nl_brace_brace = ignore # ignore/add/remove/force + +# Add or remove newline between 'do' and '{'. +nl_do_brace = ignore # ignore/add/remove/force + +# Add or remove newline between '}' and 'while' of 'do' statement. +nl_brace_while = ignore # ignore/add/remove/force + +# Add or remove newline between 'switch' and '{'. +nl_switch_brace = ignore # ignore/add/remove/force + +# Add or remove newline between 'synchronized' and '{'. +nl_synchronized_brace = ignore # ignore/add/remove/force + +# Add a newline between ')' and '{' if the ')' is on a different line than the +# if/for/etc. +# +# Overrides nl_for_brace, nl_if_brace, nl_switch_brace, nl_while_switch and +# nl_catch_brace. +nl_multi_line_cond = false # true/false + +# Add a newline after '(' if an if/for/while/switch condition spans multiple +# lines +nl_multi_line_sparen_open = ignore # ignore/add/remove/force + +# Add a newline before ')' if an if/for/while/switch condition spans multiple +# lines. Overrides nl_before_if_closing_paren if both are specified. +nl_multi_line_sparen_close = ignore # ignore/add/remove/force + +# Force a newline in a define after the macro name for multi-line defines. +nl_multi_line_define = false # true/false + +# Whether to add a newline before 'case', and a blank line before a 'case' +# statement that follows a ';' or '}'. +nl_before_case = false # true/false + +# Whether to add a newline after a 'case' statement. +nl_after_case = false # true/false + +# Add or remove newline between a case ':' and '{'. +# +# Overrides nl_after_case. +nl_case_colon_brace = ignore # ignore/add/remove/force + +# Add or remove newline between ')' and 'throw'. +nl_before_throw = ignore # ignore/add/remove/force + +# Add or remove newline between 'namespace' and '{'. +nl_namespace_brace = ignore # ignore/add/remove/force + +# Add or remove newline after 'template<...>' of a template class. +nl_template_class = ignore # ignore/add/remove/force + +# Add or remove newline after 'template<...>' of a template class declaration. +# +# Overrides nl_template_class. +nl_template_class_decl = ignore # ignore/add/remove/force + +# Add or remove newline after 'template<>' of a specialized class declaration. +# +# Overrides nl_template_class_decl. +nl_template_class_decl_special = ignore # ignore/add/remove/force + +# Add or remove newline after 'template<...>' of a template class definition. +# +# Overrides nl_template_class. +nl_template_class_def = ignore # ignore/add/remove/force + +# Add or remove newline after 'template<>' of a specialized class definition. +# +# Overrides nl_template_class_def. +nl_template_class_def_special = ignore # ignore/add/remove/force + +# Add or remove newline after 'template<...>' of a template function. +nl_template_func = ignore # ignore/add/remove/force + +# Add or remove newline after 'template<...>' of a template function +# declaration. +# +# Overrides nl_template_func. +nl_template_func_decl = ignore # ignore/add/remove/force + +# Add or remove newline after 'template<>' of a specialized function +# declaration. +# +# Overrides nl_template_func_decl. +nl_template_func_decl_special = ignore # ignore/add/remove/force + +# Add or remove newline after 'template<...>' of a template function +# definition. +# +# Overrides nl_template_func. +nl_template_func_def = ignore # ignore/add/remove/force + +# Add or remove newline after 'template<>' of a specialized function +# definition. +# +# Overrides nl_template_func_def. +nl_template_func_def_special = ignore # ignore/add/remove/force + +# Add or remove newline after 'template<...>' of a template variable. +nl_template_var = ignore # ignore/add/remove/force + +# Add or remove newline between 'template<...>' and 'using' of a templated +# type alias. +nl_template_using = ignore # ignore/add/remove/force + +# Add or remove newline between 'class' and '{'. +nl_class_brace = ignore # ignore/add/remove/force + +# Add or remove newline before or after (depending on pos_class_comma, +# may not be IGNORE) each',' in the base class list. +nl_class_init_args = ignore # ignore/add/remove/force + +# Add or remove newline after each ',' in the constructor member +# initialization. Related to nl_constr_colon, pos_constr_colon and +# pos_constr_comma. +nl_constr_init_args = ignore # ignore/add/remove/force + +# Add or remove newline before first element, after comma, and after last +# element, in 'enum'. +nl_enum_own_lines = ignore # ignore/add/remove/force + +# Add or remove newline between return type and function name in a function +# definition. +# might be modified by nl_func_leave_one_liners +nl_func_type_name = ignore # ignore/add/remove/force + +# Add or remove newline between return type and function name inside a class +# definition. If set to ignore, nl_func_type_name or nl_func_proto_type_name +# is used instead. +nl_func_type_name_class = ignore # ignore/add/remove/force + +# Add or remove newline between class specification and '::' +# in 'void A::f() { }'. Only appears in separate member implementation (does +# not appear with in-line implementation). +nl_func_class_scope = ignore # ignore/add/remove/force + +# Add or remove newline between function scope and name, as in +# 'void A :: f() { }'. +nl_func_scope_name = ignore # ignore/add/remove/force + +# Add or remove newline between return type and function name in a prototype. +nl_func_proto_type_name = ignore # ignore/add/remove/force + +# Add or remove newline between a function name and the opening '(' in the +# declaration. +nl_func_paren = ignore # ignore/add/remove/force + +# Overrides nl_func_paren for functions with no parameters. +nl_func_paren_empty = ignore # ignore/add/remove/force + +# Add or remove newline between a function name and the opening '(' in the +# definition. +nl_func_def_paren = ignore # ignore/add/remove/force + +# Overrides nl_func_def_paren for functions with no parameters. +nl_func_def_paren_empty = ignore # ignore/add/remove/force + +# Add or remove newline between a function name and the opening '(' in the +# call. +nl_func_call_paren = ignore # ignore/add/remove/force + +# Overrides nl_func_call_paren for functions with no parameters. +nl_func_call_paren_empty = ignore # ignore/add/remove/force + +# Add or remove newline after '(' in a function declaration. +nl_func_decl_start = ignore # ignore/add/remove/force + +# Add or remove newline after '(' in a function definition. +nl_func_def_start = ignore # ignore/add/remove/force + +# Overrides nl_func_decl_start when there is only one parameter. +nl_func_decl_start_single = ignore # ignore/add/remove/force + +# Overrides nl_func_def_start when there is only one parameter. +nl_func_def_start_single = ignore # ignore/add/remove/force + +# Whether to add a newline after '(' in a function declaration if '(' and ')' +# are in different lines. If false, nl_func_decl_start is used instead. +nl_func_decl_start_multi_line = false # true/false + +# Whether to add a newline after '(' in a function definition if '(' and ')' +# are in different lines. If false, nl_func_def_start is used instead. +nl_func_def_start_multi_line = false # true/false + +# Add or remove newline after each ',' in a function declaration. +nl_func_decl_args = ignore # ignore/add/remove/force + +# Add or remove newline after each ',' in a function definition. +nl_func_def_args = ignore # ignore/add/remove/force + +# Whether to add a newline after each ',' in a function declaration if '(' +# and ')' are in different lines. If false, nl_func_decl_args is used instead. +nl_func_decl_args_multi_line = false # true/false + +# Whether to add a newline after each ',' in a function definition if '(' +# and ')' are in different lines. If false, nl_func_def_args is used instead. +nl_func_def_args_multi_line = false # true/false + +# Add or remove newline before the ')' in a function declaration. +nl_func_decl_end = ignore # ignore/add/remove/force + +# Add or remove newline before the ')' in a function definition. +nl_func_def_end = ignore # ignore/add/remove/force + +# Overrides nl_func_decl_end when there is only one parameter. +nl_func_decl_end_single = ignore # ignore/add/remove/force + +# Overrides nl_func_def_end when there is only one parameter. +nl_func_def_end_single = ignore # ignore/add/remove/force + +# Whether to add a newline before ')' in a function declaration if '(' and ')' +# are in different lines. If false, nl_func_decl_end is used instead. +nl_func_decl_end_multi_line = false # true/false + +# Whether to add a newline before ')' in a function definition if '(' and ')' +# are in different lines. If false, nl_func_def_end is used instead. +nl_func_def_end_multi_line = false # true/false + +# Add or remove newline between '()' in a function declaration. +nl_func_decl_empty = ignore # ignore/add/remove/force + +# Add or remove newline between '()' in a function definition. +nl_func_def_empty = ignore # ignore/add/remove/force + +# Add or remove newline between '()' in a function call. +nl_func_call_empty = ignore # ignore/add/remove/force + +# Whether to add a newline after '(' in a function call, +# has preference over nl_func_call_start_multi_line. +nl_func_call_start = ignore # ignore/add/remove/force + +# Whether to add a newline after '(' in a function call if '(' and ')' are in +# different lines. +nl_func_call_start_multi_line = false # true/false + +# Whether to add a newline after each ',' in a function call if '(' and ')' +# are in different lines. +nl_func_call_args_multi_line = false # true/false + +# Whether to add a newline before ')' in a function call if '(' and ')' are in +# different lines. +nl_func_call_end_multi_line = false # true/false + +# Whether to add a newline after '<' of a template parameter list. +nl_template_start = false # true/false + +# Whether to add a newline after each ',' in a template parameter list. +nl_template_args = false # true/false + +# Whether to add a newline before '>' of a template parameter list. +nl_template_end = false # true/false + +# (OC) Whether to put each Objective-C message parameter on a separate line. +# See nl_oc_msg_leave_one_liner. +nl_oc_msg_args = false # true/false + +# Add or remove newline between function signature and '{'. +nl_fdef_brace = ignore # ignore/add/remove/force + +# Add or remove newline between function signature and '{', +# if signature ends with ')'. Overrides nl_fdef_brace. +nl_fdef_brace_cond = ignore # ignore/add/remove/force + +# Add or remove newline between C++11 lambda signature and '{'. +nl_cpp_ldef_brace = ignore # ignore/add/remove/force + +# Add or remove newline between 'return' and the return expression. +nl_return_expr = ignore # ignore/add/remove/force + +# Whether to add a newline after semicolons, except in 'for' statements. +nl_after_semicolon = false # true/false + +# (Java) Add or remove newline between the ')' and '{{' of the double brace +# initializer. +nl_paren_dbrace_open = ignore # ignore/add/remove/force + +# Whether to add a newline after the type in an unnamed temporary +# direct-list-initialization. +nl_type_brace_init_lst = ignore # ignore/add/remove/force + +# Whether to add a newline after the open brace in an unnamed temporary +# direct-list-initialization. +nl_type_brace_init_lst_open = ignore # ignore/add/remove/force + +# Whether to add a newline before the close brace in an unnamed temporary +# direct-list-initialization. +nl_type_brace_init_lst_close = ignore # ignore/add/remove/force + +# Whether to add a newline after '{'. This also adds a newline before the +# matching '}'. +nl_after_brace_open = false # true/false + +# Whether to add a newline between the open brace and a trailing single-line +# comment. Requires nl_after_brace_open=true. +nl_after_brace_open_cmt = false # true/false + +# Whether to add a newline after a virtual brace open with a non-empty body. +# These occur in un-braced if/while/do/for statement bodies. +nl_after_vbrace_open = false # true/false + +# Whether to add a newline after a virtual brace open with an empty body. +# These occur in un-braced if/while/do/for statement bodies. +nl_after_vbrace_open_empty = false # true/false + +# Whether to add a newline after '}'. Does not apply if followed by a +# necessary ';'. +nl_after_brace_close = false # true/false + +# Whether to add a newline after a virtual brace close, +# as in 'if (foo) a++; return;'. +nl_after_vbrace_close = false # true/false + +# Add or remove newline between the close brace and identifier, +# as in 'struct { int a; } b;'. Affects enumerations, unions and +# structures. If set to ignore, uses nl_after_brace_close. +nl_brace_struct_var = ignore # ignore/add/remove/force + +# Whether to alter newlines in '#define' macros. +nl_define_macro = false # true/false + +# Whether to alter newlines between consecutive parenthesis closes. The number +# of closing parentheses in a line will depend on respective open parenthesis +# lines. +nl_squeeze_paren_close = false # true/false + +# Whether to remove blanks after '#ifxx' and '#elxx', or before '#elxx' and +# '#endif'. Does not affect top-level #ifdefs. +nl_squeeze_ifdef = false # true/false + +# Makes the nl_squeeze_ifdef option affect the top-level #ifdefs as well. +nl_squeeze_ifdef_top_level = false # true/false + +# Add or remove blank line before 'if'. +nl_before_if = ignore # ignore/add/remove/force + +# Add or remove blank line after 'if' statement. Add/Force work only if the +# next token is not a closing brace. +nl_after_if = ignore # ignore/add/remove/force + +# Add or remove blank line before 'for'. +nl_before_for = ignore # ignore/add/remove/force + +# Add or remove blank line after 'for' statement. +nl_after_for = ignore # ignore/add/remove/force + +# Add or remove blank line before 'while'. +nl_before_while = ignore # ignore/add/remove/force + +# Add or remove blank line after 'while' statement. +nl_after_while = ignore # ignore/add/remove/force + +# Add or remove blank line before 'switch'. +nl_before_switch = ignore # ignore/add/remove/force + +# Add or remove blank line after 'switch' statement. +nl_after_switch = ignore # ignore/add/remove/force + +# Add or remove blank line before 'synchronized'. +nl_before_synchronized = ignore # ignore/add/remove/force + +# Add or remove blank line after 'synchronized' statement. +nl_after_synchronized = ignore # ignore/add/remove/force + +# Add or remove blank line before 'do'. +nl_before_do = ignore # ignore/add/remove/force + +# Add or remove blank line after 'do/while' statement. +nl_after_do = ignore # ignore/add/remove/force + +# Whether to put a blank line before 'return' statements, unless after an open +# brace. +nl_before_return = false # true/false + +# Whether to put a blank line after 'return' statements, unless followed by a +# close brace. +nl_after_return = false # true/false + +# (Java) Whether to put a blank line before a member '.' or '->' operators. +nl_before_member = ignore # ignore/add/remove/force + +# (Java) Whether to put a blank line after a member '.' or '->' operators. +nl_after_member = ignore # ignore/add/remove/force + +# Whether to double-space commented-entries in 'struct'/'union'/'enum'. +nl_ds_struct_enum_cmt = false # true/false + +# Whether to force a newline before '}' of a 'struct'/'union'/'enum'. +# (Lower priority than eat_blanks_before_close_brace.) +nl_ds_struct_enum_close_brace = false # true/false + +# Add or remove newline before or after (depending on pos_class_colon) a class +# colon, as in 'class Foo : public Bar'. +nl_class_colon = ignore # ignore/add/remove/force + +# Add or remove newline around a class constructor colon. The exact position +# depends on nl_constr_init_args, pos_constr_colon and pos_constr_comma. +nl_constr_colon = ignore # ignore/add/remove/force + +# Whether to collapse a two-line namespace, like 'namespace foo\n{ decl; }' +# into a single line. If true, prevents other brace newline rules from turning +# such code into four lines. +nl_namespace_two_to_one_liner = false # true/false + +# Whether to remove a newline in simple unbraced if statements, turning them +# into one-liners, as in 'if(b)\n i++;' => 'if(b) i++;'. +nl_create_if_one_liner = false # true/false + +# Whether to remove a newline in simple unbraced for statements, turning them +# into one-liners, as in 'for (...)\n stmt;' => 'for (...) stmt;'. +nl_create_for_one_liner = false # true/false + +# Whether to remove a newline in simple unbraced while statements, turning +# them into one-liners, as in 'while (expr)\n stmt;' => 'while (expr) stmt;'. +nl_create_while_one_liner = false # true/false + +# Whether to collapse a function definition whose body (not counting braces) +# is only one line so that the entire definition (prototype, braces, body) is +# a single line. +nl_create_func_def_one_liner = false # true/false + +# Whether to collapse a function definition whose body (not counting braces) +# is only one line so that the entire definition (prototype, braces, body) is +# a single line. +nl_create_list_one_liner = false # true/false + +# Whether to split one-line simple unbraced if statements into two lines by +# adding a newline, as in 'if(b) i++;'. +nl_split_if_one_liner = false # true/false + +# Whether to split one-line simple unbraced for statements into two lines by +# adding a newline, as in 'for (...) stmt;'. +nl_split_for_one_liner = false # true/false + +# Whether to split one-line simple unbraced while statements into two lines by +# adding a newline, as in 'while (expr) stmt;'. +nl_split_while_one_liner = false # true/false + +# +# Blank line options +# + +# The maximum number of consecutive newlines (3 = 2 blank lines). +nl_max = 3 # unsigned number + +# The maximum number of consecutive newlines in a function. +nl_max_blank_in_func = 0 # unsigned number + +# The number of newlines before a function prototype. +nl_before_func_body_proto = 0 # unsigned number + +# The number of newlines before a multi-line function definition. +nl_before_func_body_def = 0 # unsigned number + +# The number of newlines before a class constructor/destructor prototype. +nl_before_func_class_proto = 0 # unsigned number + +# The number of newlines before a class constructor/destructor definition. +nl_before_func_class_def = 0 # unsigned number + +# The number of newlines after a function prototype. +nl_after_func_proto = 0 # unsigned number + +# The number of newlines after a function prototype, if not followed by +# another function prototype. +nl_after_func_proto_group = 0 # unsigned number + +# The number of newlines after a class constructor/destructor prototype. +nl_after_func_class_proto = 0 # unsigned number + +# The number of newlines after a class constructor/destructor prototype, +# if not followed by another constructor/destructor prototype. +nl_after_func_class_proto_group = 0 # unsigned number + +# Whether one-line method definitions inside a class body should be treated +# as if they were prototypes for the purposes of adding newlines. +# +# Requires nl_class_leave_one_liners=true. Overrides nl_before_func_body_def +# and nl_before_func_class_def for one-liners. +nl_class_leave_one_liner_groups = false # true/false + +# The number of newlines after '}' of a multi-line function body. +nl_after_func_body = 0 # unsigned number + +# The number of newlines after '}' of a multi-line function body in a class +# declaration. Also affects class constructors/destructors. +# +# Overrides nl_after_func_body. +nl_after_func_body_class = 0 # unsigned number + +# The number of newlines after '}' of a single line function body. Also +# affects class constructors/destructors. +# +# Overrides nl_after_func_body and nl_after_func_body_class. +nl_after_func_body_one_liner = 0 # unsigned number + +# The number of blank lines after a block of variable definitions at the top +# of a function body. +# +# 0: No change (default). +nl_func_var_def_blk = 0 # unsigned number + +# The number of newlines before a block of typedefs. If nl_after_access_spec +# is non-zero, that option takes precedence. +# +# 0: No change (default). +nl_typedef_blk_start = 0 # unsigned number + +# The number of newlines after a block of typedefs. +# +# 0: No change (default). +nl_typedef_blk_end = 0 # unsigned number + +# The maximum number of consecutive newlines within a block of typedefs. +# +# 0: No change (default). +nl_typedef_blk_in = 0 # unsigned number + +# The number of newlines before a block of variable definitions not at the top +# of a function body. If nl_after_access_spec is non-zero, that option takes +# precedence. +# +# 0: No change (default). +nl_var_def_blk_start = 0 # unsigned number + +# The number of newlines after a block of variable definitions not at the top +# of a function body. +# +# 0: No change (default). +nl_var_def_blk_end = 0 # unsigned number + +# The maximum number of consecutive newlines within a block of variable +# definitions. +# +# 0: No change (default). +nl_var_def_blk_in = 0 # unsigned number + +# The minimum number of newlines before a multi-line comment. +# Doesn't apply if after a brace open or another multi-line comment. +nl_before_block_comment = 0 # unsigned number + +# The minimum number of newlines before a single-line C comment. +# Doesn't apply if after a brace open or other single-line C comments. +nl_before_c_comment = 0 # unsigned number + +# The minimum number of newlines before a CPP comment. +# Doesn't apply if after a brace open or other CPP comments. +nl_before_cpp_comment = 0 # unsigned number + +# Whether to force a newline after a multi-line comment. +nl_after_multiline_comment = false # true/false + +# Whether to force a newline after a label's colon. +nl_after_label_colon = false # true/false + +# The number of newlines after '}' or ';' of a struct/enum/union definition. +nl_after_struct = 0 # unsigned number + +# The number of newlines before a class definition. +nl_before_class = 0 # unsigned number + +# The number of newlines after '}' or ';' of a class definition. +nl_after_class = 0 # unsigned number + +# The number of newlines before a namespace. +nl_before_namespace = 0 # unsigned number + +# The number of newlines after '{' of a namespace. This also adds newlines +# before the matching '}'. +# +# 0: Apply eat_blanks_after_open_brace or eat_blanks_before_close_brace if +# applicable, otherwise no change. +# +# Overrides eat_blanks_after_open_brace and eat_blanks_before_close_brace. +nl_inside_namespace = 0 # unsigned number + +# The number of newlines after '}' of a namespace. +nl_after_namespace = 0 # unsigned number + +# The number of newlines before an access specifier label. This also includes +# the Qt-specific 'signals:' and 'slots:'. Will not change the newline count +# if after a brace open. +# +# 0: No change (default). +nl_before_access_spec = 0 # unsigned number + +# The number of newlines after an access specifier label. This also includes +# the Qt-specific 'signals:' and 'slots:'. Will not change the newline count +# if after a brace open. +# +# 0: No change (default). +# +# Overrides nl_typedef_blk_start and nl_var_def_blk_start. +nl_after_access_spec = 0 # unsigned number + +# The number of newlines between a function definition and the function +# comment, as in '// comment\n void foo() {...}'. +# +# 0: No change (default). +nl_comment_func_def = 0 # unsigned number + +# The number of newlines after a try-catch-finally block that isn't followed +# by a brace close. +# +# 0: No change (default). +nl_after_try_catch_finally = 0 # unsigned number + +# (C#) The number of newlines before and after a property, indexer or event +# declaration. +# +# 0: No change (default). +nl_around_cs_property = 0 # unsigned number + +# (C#) The number of newlines between the get/set/add/remove handlers. +# +# 0: No change (default). +nl_between_get_set = 0 # unsigned number + +# (C#) Add or remove newline between property and the '{'. +nl_property_brace = ignore # ignore/add/remove/force + +# Whether to remove blank lines after '{'. +eat_blanks_after_open_brace = false # true/false + +# Whether to remove blank lines before '}'. +eat_blanks_before_close_brace = false # true/false + +# How aggressively to remove extra newlines not in preprocessor. +# +# 0: No change (default) +# 1: Remove most newlines not handled by other config +# 2: Remove all newlines and reformat completely by config +nl_remove_extra_newlines = 0 # unsigned number + +# (Java) Add or remove newline after an annotation statement. Only affects +# annotations that are after a newline. +nl_after_annotation = ignore # ignore/add/remove/force + +# (Java) Add or remove newline between two annotations. +nl_between_annotation = ignore # ignore/add/remove/force + +# +# Positioning options +# + +# The position of arithmetic operators in wrapped expressions. +pos_arith = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force + +# The position of assignment in wrapped expressions. Do not affect '=' +# followed by '{'. +pos_assign = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force + +# The position of Boolean operators in wrapped expressions. +pos_bool = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force + +# The position of comparison operators in wrapped expressions. +pos_compare = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force + +# The position of conditional operators, as in the '?' and ':' of +# 'expr ? stmt : stmt', in wrapped expressions. +pos_conditional = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force + +# The position of the comma in wrapped expressions. +pos_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force + +# The position of the comma in enum entries. +pos_enum_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force + +# The position of the comma in the base class list if there is more than one +# line. Affects nl_class_init_args. +pos_class_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force + +# The position of the comma in the constructor initialization list. +# Related to nl_constr_colon, nl_constr_init_args and pos_constr_colon. +pos_constr_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force + +# The position of trailing/leading class colon, between class and base class +# list. Affects nl_class_colon. +pos_class_colon = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force + +# The position of colons between constructor and member initialization. +# Related to nl_constr_colon, nl_constr_init_args and pos_constr_comma. +pos_constr_colon = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force + +# +# Line splitting options +# + +# Try to limit code width to N columns. +code_width = 0 # unsigned number + +# Whether to fully split long 'for' statements at semi-colons. +ls_for_split_full = false # true/false + +# Whether to fully split long function prototypes/calls at commas. +# The option ls_code_width has priority over the option ls_func_split_full. +ls_func_split_full = false # true/false + +# Whether to split lines as close to code_width as possible and ignore some +# groupings. +# The option ls_code_width has priority over the option ls_func_split_full. +ls_code_width = false # true/false + +# +# Code alignment options (not left column spaces/tabs) +# + +# Whether to keep non-indenting tabs. +align_keep_tabs = false # true/false + +# Whether to use tabs for aligning. +align_with_tabs = true # true/false + +# Whether to bump out to the next tab when aligning. +align_on_tabstop = false # true/false + +# Whether to right-align numbers. +align_number_right = false # true/false + +# Whether to keep whitespace not required for alignment. +align_keep_extra_space = false # true/false + +# Whether to align variable definitions in prototypes and functions. +align_func_params = false # true/false + +# The span for aligning parameter definitions in function on parameter name. +# +# 0: Don't align (default). +align_func_params_span = 0 # unsigned number + +# The threshold for aligning function parameter definitions. +# Use a negative number for absolute thresholds. +# +# 0: No limit (default). +align_func_params_thresh = 0 # number + +# The gap for aligning function parameter definitions. +align_func_params_gap = 0 # unsigned number + +# The span for aligning constructor value. +# +# 0: Don't align (default). +align_constr_value_span = 0 # unsigned number + +# The threshold for aligning constructor value. +# Use a negative number for absolute thresholds. +# +# 0: No limit (default). +align_constr_value_thresh = 0 # number + +# The gap for aligning constructor value. +align_constr_value_gap = 0 # unsigned number + +# Whether to align parameters in single-line functions that have the same +# name. The function names must already be aligned with each other. +align_same_func_call_params = false # true/false + +# The span for aligning function-call parameters for single line functions. +# +# 0: Don't align (default). +align_same_func_call_params_span = 0 # unsigned number + +# The threshold for aligning function-call parameters for single line +# functions. +# Use a negative number for absolute thresholds. +# +# 0: No limit (default). +align_same_func_call_params_thresh = 0 # number + +# The span for aligning variable definitions. +# +# 0: Don't align (default). +align_var_def_span = 0 # unsigned number + +# How to consider (or treat) the '*' in the alignment of variable definitions. +# +# 0: Part of the type 'void * foo;' (default) +# 1: Part of the variable 'void *foo;' +# 2: Dangling 'void *foo;' +# Dangling: the '*' will not be taken into account when aligning. +align_var_def_star_style = 0 # unsigned number + +# How to consider (or treat) the '&' in the alignment of variable definitions. +# +# 0: Part of the type 'long & foo;' (default) +# 1: Part of the variable 'long &foo;' +# 2: Dangling 'long &foo;' +# Dangling: the '&' will not be taken into account when aligning. +align_var_def_amp_style = 0 # unsigned number + +# The threshold for aligning variable definitions. +# Use a negative number for absolute thresholds. +# +# 0: No limit (default). +align_var_def_thresh = 0 # number + +# The gap for aligning variable definitions. +align_var_def_gap = 0 # unsigned number + +# Whether to align the colon in struct bit fields. +align_var_def_colon = false # true/false + +# The gap for aligning the colon in struct bit fields. +align_var_def_colon_gap = 0 # unsigned number + +# Whether to align any attribute after the variable name. +align_var_def_attribute = false # true/false + +# Whether to align inline struct/enum/union variable definitions. +align_var_def_inline = false # true/false + +# The span for aligning on '=' in assignments. +# +# 0: Don't align (default). +align_assign_span = 0 # unsigned number + +# The span for aligning on '=' in function prototype modifier. +# +# 0: Don't align (default). +align_assign_func_proto_span = 0 # unsigned number + +# The threshold for aligning on '=' in assignments. +# Use a negative number for absolute thresholds. +# +# 0: No limit (default). +align_assign_thresh = 0 # number + +# How to apply align_assign_span to function declaration "assignments", i.e. +# 'virtual void foo() = 0' or '~foo() = {default|delete}'. +# +# 0: Align with other assignments (default) +# 1: Align with each other, ignoring regular assignments +# 2: Don't align +align_assign_decl_func = 0 # unsigned number + +# The span for aligning on '=' in enums. +# +# 0: Don't align (default). +align_enum_equ_span = 0 # unsigned number + +# The threshold for aligning on '=' in enums. +# Use a negative number for absolute thresholds. +# +# 0: no limit (default). +align_enum_equ_thresh = 0 # number + +# The span for aligning class member definitions. +# +# 0: Don't align (default). +align_var_class_span = 0 # unsigned number + +# The threshold for aligning class member definitions. +# Use a negative number for absolute thresholds. +# +# 0: No limit (default). +align_var_class_thresh = 0 # number + +# The gap for aligning class member definitions. +align_var_class_gap = 0 # unsigned number + +# The span for aligning struct/union member definitions. +# +# 0: Don't align (default). +align_var_struct_span = 0 # unsigned number + +# The threshold for aligning struct/union member definitions. +# Use a negative number for absolute thresholds. +# +# 0: No limit (default). +align_var_struct_thresh = 0 # number + +# The gap for aligning struct/union member definitions. +align_var_struct_gap = 0 # unsigned number + +# The span for aligning struct initializer values. +# +# 0: Don't align (default). +align_struct_init_span = 0 # unsigned number + +# The span for aligning single-line typedefs. +# +# 0: Don't align (default). +align_typedef_span = 0 # unsigned number + +# The minimum space between the type and the synonym of a typedef. +align_typedef_gap = 0 # unsigned number + +# How to align typedef'd functions with other typedefs. +# +# 0: Don't mix them at all (default) +# 1: Align the open parenthesis with the types +# 2: Align the function type name with the other type names +align_typedef_func = 0 # unsigned number + +# How to consider (or treat) the '*' in the alignment of typedefs. +# +# 0: Part of the typedef type, 'typedef int * pint;' (default) +# 1: Part of type name: 'typedef int *pint;' +# 2: Dangling: 'typedef int *pint;' +# Dangling: the '*' will not be taken into account when aligning. +align_typedef_star_style = 0 # unsigned number + +# How to consider (or treat) the '&' in the alignment of typedefs. +# +# 0: Part of the typedef type, 'typedef int & intref;' (default) +# 1: Part of type name: 'typedef int &intref;' +# 2: Dangling: 'typedef int &intref;' +# Dangling: the '&' will not be taken into account when aligning. +align_typedef_amp_style = 0 # unsigned number + +# The span for aligning comments that end lines. +# +# 0: Don't align (default). +align_right_cmt_span = 0 # unsigned number + +# Minimum number of columns between preceding text and a trailing comment in +# order for the comment to qualify for being aligned. Must be non-zero to have +# an effect. +align_right_cmt_gap = 0 # unsigned number + +# If aligning comments, whether to mix with comments after '}' and #endif with +# less than three spaces before the comment. +align_right_cmt_mix = false # true/false + +# Whether to only align trailing comments that are at the same brace level. +align_right_cmt_same_level = false # true/false + +# Minimum column at which to align trailing comments. Comments which are +# aligned beyond this column, but which can be aligned in a lesser column, +# may be "pulled in". +# +# 0: Ignore (default). +align_right_cmt_at_col = 0 # unsigned number + +# The span for aligning function prototypes. +# +# 0: Don't align (default). +align_func_proto_span = 0 # unsigned number + +# The threshold for aligning function prototypes. +# Use a negative number for absolute thresholds. +# +# 0: No limit (default). +align_func_proto_thresh = 0 # number + +# Minimum gap between the return type and the function name. +align_func_proto_gap = 0 # unsigned number + +# Whether to align function prototypes on the 'operator' keyword instead of +# what follows. +align_on_operator = false # true/false + +# Whether to mix aligning prototype and variable declarations. If true, +# align_var_def_XXX options are used instead of align_func_proto_XXX options. +align_mix_var_proto = false # true/false + +# Whether to align single-line functions with function prototypes. +# Uses align_func_proto_span. +align_single_line_func = false # true/false + +# Whether to align the open brace of single-line functions. +# Requires align_single_line_func=true. Uses align_func_proto_span. +align_single_line_brace = false # true/false + +# Gap for align_single_line_brace. +align_single_line_brace_gap = 0 # unsigned number + +# (OC) The span for aligning Objective-C message specifications. +# +# 0: Don't align (default). +align_oc_msg_spec_span = 0 # unsigned number + +# Whether to align macros wrapped with a backslash and a newline. This will +# not work right if the macro contains a multi-line comment. +align_nl_cont = false # true/false + +# Whether to align macro functions and variables together. +align_pp_define_together = false # true/false + +# The span for aligning on '#define' bodies. +# +# =0: Don't align (default) +# >0: Number of lines (including comments) between blocks +align_pp_define_span = 0 # unsigned number + +# The minimum space between label and value of a preprocessor define. +align_pp_define_gap = 0 # unsigned number + +# Whether to align lines that start with '<<' with previous '<<'. +# +# Default: true +align_left_shift = true # true/false + +# Whether to align text after 'asm volatile ()' colons. +align_asm_colon = false # true/false + +# (OC) Span for aligning parameters in an Objective-C message call +# on the ':'. +# +# 0: Don't align. +align_oc_msg_colon_span = 0 # unsigned number + +# (OC) Whether to always align with the first parameter, even if it is too +# short. +align_oc_msg_colon_first = false # true/false + +# (OC) Whether to align parameters in an Objective-C '+' or '-' declaration +# on the ':'. +align_oc_decl_colon = false # true/false + +# +# Comment modification options +# + +# Try to wrap comments at N columns. +cmt_width = 0 # unsigned number + +# How to reflow comments. +# +# 0: No reflowing (apart from the line wrapping due to cmt_width) (default) +# 1: No touching at all +# 2: Full reflow +cmt_reflow_mode = 0 # unsigned number + +# Whether to convert all tabs to spaces in comments. If false, tabs in +# comments are left alone, unless used for indenting. +cmt_convert_tab_to_spaces = false # true/false + +# Whether to apply changes to multi-line comments, including cmt_width, +# keyword substitution and leading chars. +# +# Default: true +cmt_indent_multi = true # true/false + +# Whether to group c-comments that look like they are in a block. +cmt_c_group = false # true/false + +# Whether to put an empty '/*' on the first line of the combined c-comment. +cmt_c_nl_start = false # true/false + +# Whether to add a newline before the closing '*/' of the combined c-comment. +cmt_c_nl_end = false # true/false + +# Whether to change cpp-comments into c-comments. +cmt_cpp_to_c = false # true/false + +# Whether to group cpp-comments that look like they are in a block. Only +# meaningful if cmt_cpp_to_c=true. +cmt_cpp_group = false # true/false + +# Whether to put an empty '/*' on the first line of the combined cpp-comment +# when converting to a c-comment. +# +# Requires cmt_cpp_to_c=true and cmt_cpp_group=true. +cmt_cpp_nl_start = false # true/false + +# Whether to add a newline before the closing '*/' of the combined cpp-comment +# when converting to a c-comment. +# +# Requires cmt_cpp_to_c=true and cmt_cpp_group=true. +cmt_cpp_nl_end = false # true/false + +# Whether to put a star on subsequent comment lines. +cmt_star_cont = false # true/false + +# The number of spaces to insert at the start of subsequent comment lines. +cmt_sp_before_star_cont = 0 # unsigned number + +# The number of spaces to insert after the star on subsequent comment lines. +cmt_sp_after_star_cont = 0 # unsigned number + +# For multi-line comments with a '*' lead, remove leading spaces if the first +# and last lines of the comment are the same length. +# +# Default: true +cmt_multi_check_last = true # true/false + +# For multi-line comments with a '*' lead, remove leading spaces if the first +# and last lines of the comment are the same length AND if the length is +# bigger as the first_len minimum. +# +# Default: 4 +cmt_multi_first_len_minimum = 4 # unsigned number + +# Path to a file that contains text to insert at the beginning of a file if +# the file doesn't start with a C/C++ comment. If the inserted text contains +# '$(filename)', that will be replaced with the current file's name. +cmt_insert_file_header = "" # string + +# Path to a file that contains text to insert at the end of a file if the +# file doesn't end with a C/C++ comment. If the inserted text contains +# '$(filename)', that will be replaced with the current file's name. +cmt_insert_file_footer = "" # string + +# Path to a file that contains text to insert before a function definition if +# the function isn't preceded by a C/C++ comment. If the inserted text +# contains '$(function)', '$(javaparam)' or '$(fclass)', these will be +# replaced with, respectively, the name of the function, the javadoc '@param' +# and '@return' stuff, or the name of the class to which the member function +# belongs. +cmt_insert_func_header = "" # string + +# Path to a file that contains text to insert before a class if the class +# isn't preceded by a C/C++ comment. If the inserted text contains '$(class)', +# that will be replaced with the class name. +cmt_insert_class_header = "" # string + +# Path to a file that contains text to insert before an Objective-C message +# specification, if the method isn't preceded by a C/C++ comment. If the +# inserted text contains '$(message)' or '$(javaparam)', these will be +# replaced with, respectively, the name of the function, or the javadoc +# '@param' and '@return' stuff. +cmt_insert_oc_msg_header = "" # string + +# Whether a comment should be inserted if a preprocessor is encountered when +# stepping backwards from a function name. +# +# Applies to cmt_insert_oc_msg_header, cmt_insert_func_header and +# cmt_insert_class_header. +cmt_insert_before_preproc = false # true/false + +# Whether a comment should be inserted if a function is declared inline to a +# class definition. +# +# Applies to cmt_insert_func_header. +# +# Default: true +cmt_insert_before_inlines = true # true/false + +# Whether a comment should be inserted if the function is a class constructor +# or destructor. +# +# Applies to cmt_insert_func_header. +cmt_insert_before_ctor_dtor = false # true/false + +# +# Code modifying options (non-whitespace) +# + +# Add or remove braces on a single-line 'do' statement. +mod_full_brace_do = ignore # ignore/add/remove/force + +# Add or remove braces on a single-line 'for' statement. +mod_full_brace_for = ignore # ignore/add/remove/force + +# (Pawn) Add or remove braces on a single-line function definition. +mod_full_brace_function = ignore # ignore/add/remove/force + +# Add or remove braces on a single-line 'if' statement. Braces will not be +# removed if the braced statement contains an 'else'. +mod_full_brace_if = ignore # ignore/add/remove/force + +# Whether to enforce that all blocks of an 'if'/'else if'/'else' chain either +# have, or do not have, braces. If true, braces will be added if any block +# needs braces, and will only be removed if they can be removed from all +# blocks. +# +# Overrides mod_full_brace_if. +mod_full_brace_if_chain = false # true/false + +# Whether to add braces to all blocks of an 'if'/'else if'/'else' chain. +# If true, mod_full_brace_if_chain will only remove braces from an 'if' that +# does not have an 'else if' or 'else'. +mod_full_brace_if_chain_only = false # true/false + +# Add or remove braces on single-line 'while' statement. +mod_full_brace_while = ignore # ignore/add/remove/force + +# Add or remove braces on single-line 'using ()' statement. +mod_full_brace_using = ignore # ignore/add/remove/force + +# Don't remove braces around statements that span N newlines +mod_full_brace_nl = 0 # unsigned number + +# Whether to prevent removal of braces from 'if'/'for'/'while'/etc. blocks +# which span multiple lines. +# +# Affects: +# mod_full_brace_for +# mod_full_brace_if +# mod_full_brace_if_chain +# mod_full_brace_if_chain_only +# mod_full_brace_while +# mod_full_brace_using +# +# Does not affect: +# mod_full_brace_do +# mod_full_brace_function +mod_full_brace_nl_block_rem_mlcond = false # true/false + +# Add or remove unnecessary parenthesis on 'return' statement. +mod_paren_on_return = ignore # ignore/add/remove/force + +# (Pawn) Whether to change optional semicolons to real semicolons. +mod_pawn_semicolon = false # true/false + +# Whether to fully parenthesize Boolean expressions in 'while' and 'if' +# statement, as in 'if (a && b > c)' => 'if (a && (b > c))'. +mod_full_paren_if_bool = false # true/false + +# Whether to remove superfluous semicolons. +mod_remove_extra_semicolon = false # true/false + +# If a function body exceeds the specified number of newlines and doesn't have +# a comment after the close brace, a comment will be added. +mod_add_long_function_closebrace_comment = 0 # unsigned number + +# If a namespace body exceeds the specified number of newlines and doesn't +# have a comment after the close brace, a comment will be added. +mod_add_long_namespace_closebrace_comment = 0 # unsigned number + +# If a class body exceeds the specified number of newlines and doesn't have a +# comment after the close brace, a comment will be added. +mod_add_long_class_closebrace_comment = 0 # unsigned number + +# If a switch body exceeds the specified number of newlines and doesn't have a +# comment after the close brace, a comment will be added. +mod_add_long_switch_closebrace_comment = 0 # unsigned number + +# If an #ifdef body exceeds the specified number of newlines and doesn't have +# a comment after the #endif, a comment will be added. +mod_add_long_ifdef_endif_comment = 0 # unsigned number + +# If an #ifdef or #else body exceeds the specified number of newlines and +# doesn't have a comment after the #else, a comment will be added. +mod_add_long_ifdef_else_comment = 0 # unsigned number + +# Whether to take care of the case by the mod_sort_xx options. +mod_sort_case_sensitive = false # true/false + +# Whether to sort consecutive single-line 'import' statements. +mod_sort_import = false # true/false + +# (C#) Whether to sort consecutive single-line 'using' statements. +mod_sort_using = false # true/false + +# Whether to sort consecutive single-line '#include' statements (C/C++) and +# '#import' statements (Objective-C). Be aware that this has the potential to +# break your code if your includes/imports have ordering dependencies. +mod_sort_include = false # true/false + +# Whether to move a 'break' that appears after a fully braced 'case' before +# the close brace, as in 'case X: { ... } break;' => 'case X: { ... break; }'. +mod_move_case_break = false # true/false + +# Add or remove braces around a fully braced case statement. Will only remove +# braces if there are no variable declarations in the block. +mod_case_brace = ignore # ignore/add/remove/force + +# Whether to remove a void 'return;' that appears as the last statement in a +# function. +mod_remove_empty_return = false # true/false + +# Add or remove the comma after the last value of an enumeration. +mod_enum_last_comma = ignore # ignore/add/remove/force + +# (OC) Whether to organize the properties. If true, properties will be +# rearranged according to the mod_sort_oc_property_*_weight factors. +mod_sort_oc_properties = false # true/false + +# (OC) Weight of a class property modifier. +mod_sort_oc_property_class_weight = 0 # number + +# (OC) Weight of 'atomic' and 'nonatomic'. +mod_sort_oc_property_thread_safe_weight = 0 # number + +# (OC) Weight of 'readwrite' when organizing properties. +mod_sort_oc_property_readwrite_weight = 0 # number + +# (OC) Weight of a reference type specifier ('retain', 'copy', 'assign', +# 'weak', 'strong') when organizing properties. +mod_sort_oc_property_reference_weight = 0 # number + +# (OC) Weight of getter type ('getter=') when organizing properties. +mod_sort_oc_property_getter_weight = 0 # number + +# (OC) Weight of setter type ('setter=') when organizing properties. +mod_sort_oc_property_setter_weight = 0 # number + +# (OC) Weight of nullability type ('nullable', 'nonnull', 'null_unspecified', +# 'null_resettable') when organizing properties. +mod_sort_oc_property_nullability_weight = 0 # number + +# +# Preprocessor options +# + +# Add or remove indentation of preprocessor directives inside #if blocks +# at brace level 0 (file-level). +pp_indent = ignore # ignore/add/remove/force + +# Whether to indent #if/#else/#endif at the brace level. If false, these are +# indented from column 1. +pp_indent_at_level = false # true/false + +# Specifies the number of columns to indent preprocessors per level +# at brace level 0 (file-level). If pp_indent_at_level=false, also specifies +# the number of columns to indent preprocessors per level +# at brace level > 0 (function-level). +# +# Default: 1 +pp_indent_count = 1 # unsigned number + +# Add or remove space after # based on pp_level of #if blocks. +pp_space = ignore # ignore/add/remove/force + +# Sets the number of spaces per level added with pp_space. +pp_space_count = 0 # unsigned number + +# The indent for '#region' and '#endregion' in C# and '#pragma region' in +# C/C++. Negative values decrease indent down to the first column. +pp_indent_region = 0 # number + +# Whether to indent the code between #region and #endregion. +pp_region_indent_code = false # true/false + +# If pp_indent_at_level=true, sets the indent for #if, #else and #endif when +# not at file-level. Negative values decrease indent down to the first column. +# +# =0: Indent preprocessors using output_tab_size +# >0: Column at which all preprocessors will be indented +pp_indent_if = 0 # number + +# Whether to indent the code between #if, #else and #endif. +pp_if_indent_code = false # true/false + +# Whether to indent '#define' at the brace level. If false, these are +# indented from column 1. +pp_define_at_level = false # true/false + +# Whether to ignore the '#define' body while formatting. +pp_ignore_define_body = false # true/false + +# Whether to indent case statements between #if, #else, and #endif. +# Only applies to the indent of the preprocesser that the case statements +# directly inside of. +# +# Default: true +pp_indent_case = true # true/false + +# Whether to indent whole function definitions between #if, #else, and #endif. +# Only applies to the indent of the preprocesser that the function definition +# is directly inside of. +# +# Default: true +pp_indent_func_def = true # true/false + +# Whether to indent extern C blocks between #if, #else, and #endif. +# Only applies to the indent of the preprocesser that the extern block is +# directly inside of. +# +# Default: true +pp_indent_extern = true # true/false + +# Whether to indent braces directly inside #if, #else, and #endif. +# Only applies to the indent of the preprocesser that the braces are directly +# inside of. +# +# Default: true +pp_indent_brace = true # true/false + +# +# Sort includes options +# + +# The regex for include category with priority 0. +include_category_0 = "" # string + +# The regex for include category with priority 1. +include_category_1 = "" # string + +# The regex for include category with priority 2. +include_category_2 = "" # string + +# +# Use or Do not Use options +# + +# true: indent_func_call_param will be used (default) +# false: indent_func_call_param will NOT be used +# +# Default: true +use_indent_func_call_param = true # true/false + +# The value of the indentation for a continuation line is calculated +# differently if the statement is: +# - a declaration: your case with QString fileName ... +# - an assignment: your case with pSettings = new QSettings( ... +# +# At the second case the indentation value might be used twice: +# - at the assignment +# - at the function call (if present) +# +# To prevent the double use of the indentation value, use this option with the +# value 'true'. +# +# true: indent_continue will be used only once +# false: indent_continue will be used every time (default) +use_indent_continue_only_once = false # true/false + +# The value might be used twice: +# - at the assignment +# - at the opening brace +# +# To prevent the double use of the indentation value, use this option with the +# value 'true'. +# +# true: indentation will be used only once +# false: indentation will be used every time (default) +indent_cpp_lambda_only_once = false # true/false + +# Whether sp_after_angle takes precedence over sp_inside_fparen. This was the +# historic behavior, but is probably not the desired behavior, so this is off +# by default. +use_sp_after_angle_always = false # true/false + +# Whether to apply special formatting for Qt SIGNAL/SLOT macros. Essentially, +# this tries to format these so that they match Qt's normalized form (i.e. the +# result of QMetaObject::normalizedSignature), which can slightly improve the +# performance of the QObject::connect call, rather than how they would +# otherwise be formatted. +# +# See options_for_QT.cpp for details. +# +# Default: true +use_options_overriding_for_qt_macros = true # true/false + +# +# Warn levels - 1: error, 2: warning (default), 3: note +# + +# (C#) Warning is given if doing tab-to-\t replacement and we have found one +# in a C# verbatim string literal. +# +# Default: 2 +warn_level_tabs_found_in_verbatim_string_literals = 2 # unsigned number + +# Meaning of the settings: +# Ignore - do not do any changes +# Add - makes sure there is 1 or more space/brace/newline/etc +# Force - makes sure there is exactly 1 space/brace/newline/etc, +# behaves like Add in some contexts +# Remove - removes space/brace/newline/etc +# +# +# - Token(s) can be treated as specific type(s) with the 'set' option: +# `set tokenType tokenString [tokenString...]` +# +# Example: +# `set BOOL __AND__ __OR__` +# +# tokenTypes are defined in src/token_enum.h, use them without the +# 'CT_' prefix: 'CT_BOOL' => 'BOOL' +# +# +# - Token(s) can be treated as type(s) with the 'type' option. +# `type tokenString [tokenString...]` +# +# Example: +# `type int c_uint_8 Rectangle` +# +# This can also be achieved with `set TYPE int c_uint_8 Rectangle` +# +# +# To embed whitespace in tokenStrings use the '\' escape character, or quote +# the tokenStrings. These quotes are supported: "'` +# +# +# - Support for the auto detection of languages through the file ending can be +# added using the 'file_ext' command. +# `file_ext langType langString [langString..]` +# +# Example: +# `file_ext CPP .ch .cxx .cpp.in` +# +# langTypes are defined in uncrusify_types.h in the lang_flag_e enum, use +# them without the 'LANG_' prefix: 'LANG_CPP' => 'CPP' +# +# +# - Custom macro-based indentation can be set up using 'macro-open', +# 'macro-else' and 'macro-close'. +# `(macro-open | macro-else | macro-close) tokenString` +# +# Example: +# `macro-open BEGIN_TEMPLATE_MESSAGE_MAP` +# `macro-open BEGIN_MESSAGE_MAP` +# `macro-close END_MESSAGE_MAP` +# +# +# option(s) with 'not default' value: 0 +# From ce32ea9a19d229ddde003e50e715248fbe3b6e78 Mon Sep 17 00:00:00 2001 From: Conrad Date: Thu, 19 Dec 2019 13:50:50 +0100 Subject: [PATCH 45/62] Remade Doxygen Docs --- .../_intelli_color_picker_8h__dep__incl.dot | 56 +- .../html/_intelli_color_picker_8h_source.html | 2 +- ...er_2_intelli_color_picker_8cpp_source.html | 2 +- docs/html/_intelli_helper_8cpp_source.html | 59 +- docs/html/_intelli_helper_8h__dep__incl.dot | 14 +- docs/html/_intelli_helper_8h_source.html | 60 +- docs/html/_intelli_image_8cpp_source.html | 23 +- docs/html/_intelli_image_8h__dep__incl.dot | 4 +- docs/html/_intelli_image_8h_source.html | 4 +- docs/html/_intelli_photo_gui_8cpp.html | 49 - docs/html/_intelli_photo_gui_8cpp_source.html | 942 +++++++++--------- docs/html/_intelli_photo_gui_8h_source.html | 135 ++- .../_intelli_raster_image_8cpp_source.html | 2 +- .../_intelli_raster_image_8h__dep__incl.dot | 4 +- .../_intelli_shaped_image_8cpp_source.html | 2 +- .../_intelli_shaped_image_8h__dep__incl.dot | 4 +- docs/html/_intelli_tool_8cpp_source.html | 12 +- docs/html/_intelli_tool_8h__dep__incl.dot | 36 +- docs/html/_intelli_tool_8h_source.html | 6 +- .../_intelli_tool_circle_8cpp_source.html | 24 +- docs/html/_intelli_tool_circle_8h.html | 1 + docs/html/_intelli_tool_circle_8h_source.html | 69 +- .../_intelli_tool_flood_fill_8cpp_source.html | 28 +- docs/html/_intelli_tool_flood_fill_8h.html | 1 + .../_intelli_tool_flood_fill_8h_source.html | 58 +- docs/html/_intelli_tool_line_8cpp_source.html | 27 +- docs/html/_intelli_tool_line_8h.html | 6 +- docs/html/_intelli_tool_line_8h_source.html | 78 +- docs/html/_intelli_tool_pen_8cpp_source.html | 22 +- docs/html/_intelli_tool_pen_8h.html | 1 + docs/html/_intelli_tool_pen_8h_source.html | 60 +- .../html/_intelli_tool_plain_8cpp_source.html | 63 +- docs/html/_intelli_tool_plain_8h.html | 1 + docs/html/_intelli_tool_plain_8h_source.html | 54 +- docs/html/_intelli_tool_polygon_8cpp.html | 116 +++ .../html/_intelli_tool_polygon_8cpp__incl.dot | 60 ++ .../_intelli_tool_polygon_8cpp_source.html | 240 +++++ docs/html/_intelli_tool_polygon_8h.html | 130 +++ .../_intelli_tool_polygon_8h__dep__incl.dot | 11 + docs/html/_intelli_tool_polygon_8h__incl.dot | 25 + .../html/_intelli_tool_polygon_8h_source.html | 157 +++ .../_intelli_tool_rectangle_8cpp_source.html | 24 +- docs/html/_intelli_tool_rectangle_8h.html | 1 + .../_intelli_tool_rectangle_8h_source.html | 66 +- docs/html/_painting_area_8cpp.html | 1 + docs/html/_painting_area_8cpp__incl.dot | 6 + docs/html/_painting_area_8cpp_source.html | 706 ++++++------- docs/html/_painting_area_8h__dep__incl.dot | 4 +- docs/html/_painting_area_8h_source.html | 241 ++--- ...ol_2_intelli_color_picker_8cpp_source.html | 4 +- docs/html/annotated.html | 19 +- docs/html/annotated_dup.js | 1 + docs/html/class_intelli_color_picker.html | 4 +- ...2eb27b928fe9388b9398b0556303b7_icgraph.dot | 16 +- docs/html/class_intelli_image.html | 9 +- ...787f1b333b59401643936ebb3dcfe1_icgraph.dot | 12 + ...76ebb6d863321c816293d7b7f9fd3f_icgraph.dot | 2 +- ...e622810dc2bc756054bb5769becb06_icgraph.dot | 10 +- ...bced93f4744fad81b7f141b21f4ab2_icgraph.dot | 104 +- ...c859f5c409e37051edfd9e9fbca056_icgraph.dot | 6 +- ...eddbd9aa54c8d37590d1d4bf8dce31_icgraph.dot | 6 +- docs/html/class_intelli_photo_gui.html | 2 +- docs/html/class_intelli_tool.html | 38 +- .../class_intelli_tool__inherit__graph.dot | 14 +- ...189b00307c6d7e89f28198f54404b0_icgraph.dot | 12 +- ...6aa68ac5f3c2ca02319e5ef3f0c966_icgraph.dot | 14 +- ...b7ef1dde96b94a0ce450a25ae1778c_icgraph.dot | 14 +- ...ccfd4460255ccb866f336406a33574_icgraph.dot | 14 +- ...6a2575c16c8a33cb2a5197f8d8cc5b_icgraph.dot | 14 +- ...0e20414cd8855a2f9b103fb6408639_icgraph.dot | 12 +- docs/html/class_intelli_tool_circle.html | 65 +- ...class_intelli_tool_circle__coll__graph.dot | 2 +- ...ss_intelli_tool_circle__inherit__graph.dot | 2 +- ...9d7b9ed4960e6fe1f31ff620363e429_cgraph.dot | 2 +- ...0ee58c5390a86afc75c14ca79b91d7b_cgraph.dot | 2 +- ...a07540f2f7ccb3d2c0b84890c1afc4c_cgraph.dot | 2 +- ...8e438ec997c57262b5efc2db4cee1a3_cgraph.dot | 2 +- ...2d9b0fb6695c184c4cb507a5fb75506_cgraph.dot | 4 +- ...883b8ae833c78a8867e626c600f9639_cgraph.dot | 2 +- docs/html/class_intelli_tool_flood_fill.html | 65 +- ...s_intelli_tool_flood_fill__coll__graph.dot | 2 +- ...ntelli_tool_flood_fill__inherit__graph.dot | 2 +- ...9cf49c0ce46f96be3510f0b70c9d892_cgraph.dot | 2 +- ...cd42cea99bc7583875abcc0c274c668_cgraph.dot | 2 +- ...438ef96c6c36068bce76e2364e8594c_cgraph.dot | 2 +- ...85e3cb6233508ff9612833a8d9e3961_cgraph.dot | 2 +- ...58cc7c065123beb6b0270f99e99b991_cgraph.dot | 4 +- ...a0f7154d119102410a55038763a17e4_cgraph.dot | 2 +- docs/html/class_intelli_tool_line.html | 65 +- .../class_intelli_tool_line__coll__graph.dot | 2 +- ...lass_intelli_tool_line__inherit__graph.dot | 2 +- ...55d676a5f98311217eb095be4759846_cgraph.dot | 4 +- ...214918cba5753f89d97de4559a2b9b2_cgraph.dot | 2 +- ...cce59f3017936214b10b47252a898a3_cgraph.dot | 2 +- ...f1d686e1ec43f41b5186ccfd806b125_cgraph.dot | 4 +- ...c6324ef0778823fe7e35aef8ae37f9b_cgraph.dot | 2 +- ...93f76ff20a1c111a403b298bab02482_cgraph.dot | 2 +- docs/html/class_intelli_tool_pen.html | 65 +- .../class_intelli_tool_pen__coll__graph.dot | 2 +- ...class_intelli_tool_pen__inherit__graph.dot | 2 +- ...751e3864a0d36ef42ca55021cae73ce_cgraph.dot | 2 +- ...8d1d636497b630647ce0c4d652737c2_cgraph.dot | 2 +- ...ff40aef6d38eb55af31a19322429205_cgraph.dot | 2 +- ...da7a22b9766fa4ad254324a53cab94d_cgraph.dot | 2 +- ...f8562e8cd2da586afdf4d47b3a4ff13_cgraph.dot | 2 +- ...e3626ddff440ab125f4a2465c45427a_cgraph.dot | 4 +- ...class_intelli_tool_plain_tool-members.html | 1 + docs/html/class_intelli_tool_plain_tool.html | 114 ++- docs/html/class_intelli_tool_plain_tool.js | 1 + ...s_intelli_tool_plain_tool__coll__graph.dot | 2 +- ...ntelli_tool_plain_tool__inherit__graph.dot | 2 +- ...ae458f1b04eb77a47f6dca5e91e33b8_cgraph.dot | 2 +- ...786dd5fa80af863246013d43c4b7ac9_cgraph.dot | 2 +- ...23f5d0f07e42fd7c2ea3fc1347da400_cgraph.dot | 2 +- ...b0c46e16d2c09370a2244a936de38b1_cgraph.dot | 2 +- ...7546a6335bb3bb4cbf0e1883788d41c_cgraph.dot | 2 +- ...c004ea421e2cc0ac39cc7a6b6d43d0d_cgraph.dot | 4 +- .../class_intelli_tool_polygon-members.html | 121 +++ docs/html/class_intelli_tool_polygon.html | 521 ++++++++++ docs/html/class_intelli_tool_polygon.js | 10 + ...lass_intelli_tool_polygon__coll__graph.dot | 19 + ...s_intelli_tool_polygon__inherit__graph.dot | 9 + ...e1473ff408ae2e11cf6a43f6f575f21_cgraph.dot | 25 + ...36b012b48311c36e7cd6771a5081427_cgraph.dot | 10 + ...5d3b741be6d0647a9cdc9da2cb8bc3d_cgraph.dot | 25 + docs/html/class_intelli_tool_rectangle.html | 65 +- ...ss_intelli_tool_rectangle__coll__graph.dot | 2 +- ...intelli_tool_rectangle__inherit__graph.dot | 2 +- ...45c53a56e859f970e59f5036e221e0c_cgraph.dot | 4 +- ...80c6804a4963c5a1c3f7ef84b63c1a8_cgraph.dot | 2 +- ...b5931071e21eb6949ffe357315e408b_cgraph.dot | 2 +- ...4460e3ff1c19e80bde922c55f53cc43_cgraph.dot | 2 +- ...43f653256a6516b9398f82054be0d7f_cgraph.dot | 2 +- ...03c307ccf66cbe3fd59e3657712368d_cgraph.dot | 2 +- docs/html/class_painting_area-members.html | 2 + docs/html/class_painting_area.html | 104 +- docs/html/class_painting_area.js | 2 + ...11a534e206089fff1d325e7ec7a8eb_icgraph.dot | 10 + ...7c5fc26480c7ae80b3480e85510bda_icgraph.dot | 10 + ...32848d99f44d33d7da2618fbc6775a4_cgraph.dot | 2 +- docs/html/classes.html | 24 +- docs/html/dir_000005_000004.html | 2 +- docs/html/dir_000005_000006.html | 2 +- docs/html/dir_000006_000005.html | 2 +- .../dir_5dabb14988a75c922e285f444641a133.js | 2 +- ...r_83a4347d11f2ba6343d546ab133722d2_dep.dot | 6 +- .../dir_941490de56ac122cf77df9922cbcc750.html | 4 + .../dir_941490de56ac122cf77df9922cbcc750.js | 4 + ...r_941490de56ac122cf77df9922cbcc750_dep.dot | 6 +- ...r_e6d96184223881d115efa44ca0dfa844_dep.dot | 6 +- docs/html/files.html | 6 +- docs/html/functions.html | 18 + docs/html/functions_func.html | 18 + docs/html/globals.html | 6 - docs/html/globals_func.html | 6 - docs/html/hierarchy.html | 25 +- docs/html/hierarchy.js | 1 + docs/html/inherit_graph_3.dot | 14 +- docs/html/namespace_intelli_helper.html | 11 +- ...4dc3624ba4562a03dc922e3dd7b617_icgraph.dot | 8 +- ...d516b3e619e2a743e9c98dd75cf901_icgraph.dot | 10 + ...cfe72f00e870be4a8ab9f2e17483c9_icgraph.dot | 2 + ...d9fe78cc5d21b59642910220768149_icgraph.dot | 2 + docs/html/navtreedata.js | 3 +- docs/html/navtreeindex0.js | 122 +-- docs/html/navtreeindex1.js | 12 + docs/html/search/all_10.js | 23 +- docs/html/search/all_5.js | 8 +- docs/html/search/all_6.js | 4 +- docs/html/search/all_7.js | 91 +- docs/html/search/all_8.js | 6 +- docs/html/search/all_9.js | 14 +- docs/html/search/all_a.js | 14 +- docs/html/search/all_b.js | 10 +- docs/html/search/all_c.js | 6 +- docs/html/search/all_d.js | 26 +- docs/html/search/all_e.js | 2 +- docs/html/search/all_f.js | 6 +- docs/html/search/classes_0.js | 25 +- docs/html/search/classes_1.js | 2 +- docs/html/search/classes_2.js | 2 +- docs/html/search/classes_3.js | 2 +- docs/html/search/enums_0.js | 2 +- docs/html/search/enums_1.js | 2 +- docs/html/search/enumvalues_0.js | 2 +- docs/html/search/enumvalues_1.js | 2 +- docs/html/search/enumvalues_2.js | 4 +- docs/html/search/files_0.js | 54 +- docs/html/search/files_1.js | 2 +- docs/html/search/files_2.js | 4 +- docs/html/search/functions_0.js | 4 +- docs/html/search/functions_1.js | 18 +- docs/html/search/functions_2.js | 10 +- docs/html/search/functions_3.js | 2 +- docs/html/search/functions_4.js | 14 +- docs/html/search/functions_5.js | 29 +- docs/html/search/functions_6.js | 2 +- docs/html/search/functions_7.js | 12 +- docs/html/search/functions_8.js | 14 +- docs/html/search/functions_9.js | 4 +- docs/html/search/functions_a.js | 4 +- docs/html/search/functions_b.js | 22 +- docs/html/search/functions_c.js | 2 +- docs/html/search/functions_d.js | 23 +- docs/html/search/namespaces_0.js | 2 +- docs/html/search/variables_0.js | 8 +- docs/html/search/variables_1.js | 2 +- docs/html/search/variables_2.js | 6 +- docs/html/search/variables_3.js | 2 +- docs/html/search/variables_4.js | 4 +- docs/html/search/variables_5.js | 4 +- docs/html/search/variables_6.js | 2 +- docs/html/search/variables_7.js | 4 +- docs/html/struct_layer_object.html | 14 +- 214 files changed, 4062 insertions(+), 2226 deletions(-) create mode 100644 docs/html/_intelli_tool_polygon_8cpp.html create mode 100644 docs/html/_intelli_tool_polygon_8cpp__incl.dot create mode 100644 docs/html/_intelli_tool_polygon_8cpp_source.html create mode 100644 docs/html/_intelli_tool_polygon_8h.html create mode 100644 docs/html/_intelli_tool_polygon_8h__dep__incl.dot create mode 100644 docs/html/_intelli_tool_polygon_8h__incl.dot create mode 100644 docs/html/_intelli_tool_polygon_8h_source.html create mode 100644 docs/html/class_intelli_image_a2e787f1b333b59401643936ebb3dcfe1_icgraph.dot create mode 100644 docs/html/class_intelli_tool_polygon-members.html create mode 100644 docs/html/class_intelli_tool_polygon.html create mode 100644 docs/html/class_intelli_tool_polygon.js create mode 100644 docs/html/class_intelli_tool_polygon__coll__graph.dot create mode 100644 docs/html/class_intelli_tool_polygon__inherit__graph.dot create mode 100644 docs/html/class_intelli_tool_polygon_a4e1473ff408ae2e11cf6a43f6f575f21_cgraph.dot create mode 100644 docs/html/class_intelli_tool_polygon_aa36b012b48311c36e7cd6771a5081427_cgraph.dot create mode 100644 docs/html/class_intelli_tool_polygon_ad5d3b741be6d0647a9cdc9da2cb8bc3d_cgraph.dot create mode 100644 docs/html/class_painting_area_a1511a534e206089fff1d325e7ec7a8eb_icgraph.dot create mode 100644 docs/html/class_painting_area_a427c5fc26480c7ae80b3480e85510bda_icgraph.dot create mode 100644 docs/html/namespace_intelli_helper_a44d516b3e619e2a743e9c98dd75cf901_icgraph.dot create mode 100644 docs/html/navtreeindex1.js diff --git a/docs/html/_intelli_color_picker_8h__dep__incl.dot b/docs/html/_intelli_color_picker_8h__dep__incl.dot index 3081c09..154a774 100644 --- a/docs/html/_intelli_color_picker_8h__dep__incl.dot +++ b/docs/html/_intelli_color_picker_8h__dep__incl.dot @@ -25,35 +25,41 @@ digraph "intelliphoto/src/IntelliHelper/IntelliColorPicker.h" Node3 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node11 [label="intelliphoto/src/Tool\l/IntelliToolPlain.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_plain_8cpp.html",tooltip=" "]; Node3 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node12 [label="intelliphoto/src/Tool\l/IntelliToolRectangle.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_rectangle_8cpp.html",tooltip=" "]; - Node1 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node13 [label="intelliphoto/src/Tool\l/IntelliColorPicker.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_tool_2_intelli_color_picker_8cpp.html",tooltip=" "]; + Node12 [label="intelliphoto/src/Tool\l/IntelliToolPolygon.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_polygon_8cpp.html",tooltip=" "]; + Node3 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="intelliphoto/src/Tool\l/IntelliToolRectangle.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_rectangle_8cpp.html",tooltip=" "]; Node1 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node14 [label="intelliphoto/src/Tool\l/IntelliTool.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_8h.html",tooltip=" "]; - Node14 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node14 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node14 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node15 [label="intelliphoto/src/Tool\l/IntelliToolCircle.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_circle_8h.html",tooltip=" "]; - Node15 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node15 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node14 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node16 [label="intelliphoto/src/Tool\l/IntelliToolFloodFill.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_flood_fill_8h.html",tooltip=" "]; + Node14 [label="intelliphoto/src/Tool\l/IntelliColorPicker.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_tool_2_intelli_color_picker_8cpp.html",tooltip=" "]; + Node1 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="intelliphoto/src/Tool\l/IntelliTool.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_8h.html",tooltip=" "]; + Node15 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="intelliphoto/src/Tool\l/IntelliToolCircle.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_circle_8h.html",tooltip=" "]; Node16 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node16 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node14 -> Node17 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node17 [label="intelliphoto/src/Tool\l/IntelliToolLine.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_line_8h.html",tooltip=" "]; + Node16 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node17 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="intelliphoto/src/Tool\l/IntelliToolFloodFill.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_flood_fill_8h.html",tooltip=" "]; Node17 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node17 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node14 -> Node18 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node18 [label="intelliphoto/src/Tool\l/IntelliToolPen.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_pen_8h.html",tooltip=" "]; + Node17 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node18 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 [label="intelliphoto/src/Tool\l/IntelliToolLine.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_line_8h.html",tooltip=" "]; Node18 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node18 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node14 -> Node19 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node19 [label="intelliphoto/src/Tool\l/IntelliToolPlain.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_plain_8h.html",tooltip=" "]; + Node18 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node19 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 [label="intelliphoto/src/Tool\l/IntelliToolPen.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_pen_8h.html",tooltip=" "]; Node19 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node19 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node14 -> Node20 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node20 [label="intelliphoto/src/Tool\l/IntelliToolRectangle.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_rectangle_8h.html",tooltip=" "]; + Node19 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node20 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 [label="intelliphoto/src/Tool\l/IntelliToolPlain.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_plain_8h.html",tooltip=" "]; Node20 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node20 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node21 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node21 [label="intelliphoto/src/Tool\l/IntelliToolPolygon.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_polygon_8h.html",tooltip=" "]; + Node21 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node21 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node22 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node22 [label="intelliphoto/src/Tool\l/IntelliToolRectangle.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_rectangle_8h.html",tooltip=" "]; + Node22 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node22 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; } diff --git a/docs/html/_intelli_color_picker_8h_source.html b/docs/html/_intelli_color_picker_8h_source.html index ede1205..c8bfc90 100644 --- a/docs/html/_intelli_color_picker_8h_source.html +++ b/docs/html/_intelli_color_picker_8h_source.html @@ -129,7 +129,7 @@ $(document).ready(function(){initNavTree('_intelli_color_picker_8h_source.html',
    void setFirstColor(QColor Color)
    A function to set the primary color.
    QColor getFirstColor()
    A function to read the primary selected color.
    The IntelliColorPicker manages the selected colors for one whole project.
    -
    IntelliColorPicker()
    IntelliColorPicker construktor, setting 2 preset colors, be careful, theese color may change in produ...
    +
    IntelliColorPicker()
    IntelliColorPicker constructor, setting 2 preset colors, be careful, theese color may change in produ...
    -
    bool isInTriangle(Triangle &tri, QPoint &P)
    A function to check if a given point is in a triangle.
    Definition: IntelliHelper.h:34
    +
    bool isInTriangle(Triangle &tri, QPoint &P)
    A function to check if a given point is in a triangle.
    Definition: IntelliHelper.h:33
    QPoint B
    Definition: IntelliHelper.h:11
    QPoint C
    Definition: IntelliHelper.h:11
    The Triangle struct holds the 3 vertices of a triangle.
    Definition: IntelliHelper.h:10
    -
    bool isInPolygon(std::vector< Triangle > &triangles, QPoint &point)
    A function to check if a point lies in a polygon by checking its spanning triangles.
    +
    bool isInPolygon(std::vector< Triangle > &triangles, QPoint &point)
    A function to check if a point lies in a polygon by checking its spanning triangles.
    QPoint A
    Definition: IntelliHelper.h:11
    std::vector< Triangle > calculateTriangles(std::vector< QPoint > polyPoints)
    A function to split a polygon in its spanning traingles by using Meisters Theorem of graph theory by ...
    diff --git a/docs/html/_intelli_helper_8h__dep__incl.dot b/docs/html/_intelli_helper_8h__dep__incl.dot index e9408f3..a439ef7 100644 --- a/docs/html/_intelli_helper_8h__dep__incl.dot +++ b/docs/html/_intelli_helper_8h__dep__incl.dot @@ -28,10 +28,16 @@ digraph "intelliphoto/src/IntelliHelper/IntelliHelper.h" Node4 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node12 [label="intelliphoto/src/Tool\l/IntelliToolPlain.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_plain_8cpp.html",tooltip=" "]; Node4 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node13 [label="intelliphoto/src/Tool\l/IntelliToolRectangle.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_rectangle_8cpp.html",tooltip=" "]; + Node13 [label="intelliphoto/src/Tool\l/IntelliToolPolygon.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_polygon_8cpp.html",tooltip=" "]; + Node4 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="intelliphoto/src/Tool\l/IntelliToolRectangle.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_rectangle_8cpp.html",tooltip=" "]; Node3 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node1 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node14 [label="intelliphoto/src/Intelli\lHelper/IntelliHelper.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_helper_8cpp.html",tooltip=" "]; Node1 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node15 [label="intelliphoto/src/main.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$main_8cpp.html",tooltip=" "]; + Node15 [label="intelliphoto/src/Intelli\lHelper/IntelliHelper.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_helper_8cpp.html",tooltip=" "]; + Node1 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="intelliphoto/src/main.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$main_8cpp.html",tooltip=" "]; + Node1 -> Node17 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="intelliphoto/src/Tool\l/IntelliToolPolygon.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_polygon_8h.html",tooltip=" "]; + Node17 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; } diff --git a/docs/html/_intelli_helper_8h_source.html b/docs/html/_intelli_helper_8h_source.html index 192bdea..368522f 100644 --- a/docs/html/_intelli_helper_8h_source.html +++ b/docs/html/_intelli_helper_8h_source.html @@ -100,45 +100,43 @@ $(document).ready(function(){initNavTree('_intelli_helper_8h_source.html','');})
    11  QPoint A,B,C;
    12 };
    13 
    -
    14 
    -
    15 namespace IntelliHelper {
    -
    16 
    -
    24  inline float sign(QPoint& p1, QPoint& p2, QPoint& p3){
    -
    25  return (p1.x()-p3.x())*(p2.y()-p3.y())-(p2.x()-p3.x())*(p1.y()-p3.y());
    -
    26  }
    -
    27 
    -
    34  inline bool isInTriangle(Triangle& tri, QPoint& P){
    -
    35  float val1, val2, val3;
    -
    36  bool neg, pos;
    -
    37 
    -
    38  val1 = IntelliHelper::sign(P,tri.A,tri.B);
    -
    39  val2 = IntelliHelper::sign(P,tri.B,tri.C);
    -
    40  val3 = IntelliHelper::sign(P,tri.C,tri.A);
    -
    41 
    -
    42  neg = (val1<0.f) || (val2<0.f) || (val3<0.f);
    -
    43  pos = (val1>0.f) || (val2>0.f) || (val3>0.f);
    -
    44 
    -
    45  return !(neg && pos);
    -
    46  }
    -
    47 
    -
    53  std::vector<Triangle> calculateTriangles(std::vector<QPoint> polyPoints);
    -
    54 
    -
    61  bool isInPolygon(std::vector<Triangle> &triangles, QPoint &point);
    +
    14 namespace IntelliHelper {
    +
    15 
    +
    23  inline float sign(QPoint& p1, QPoint& p2, QPoint& p3){
    +
    24  return (p1.x()-p3.x())*(p2.y()-p3.y())-(p2.x()-p3.x())*(p1.y()-p3.y());
    +
    25  }
    +
    26 
    +
    33  inline bool isInTriangle(Triangle& tri, QPoint& P){
    +
    34  float val1, val2, val3;
    +
    35  bool neg, pos;
    +
    36 
    +
    37  val1 = IntelliHelper::sign(P,tri.A,tri.B);
    +
    38  val2 = IntelliHelper::sign(P,tri.B,tri.C);
    +
    39  val3 = IntelliHelper::sign(P,tri.C,tri.A);
    +
    40 
    +
    41  neg = (val1<0.f) || (val2<0.f) || (val3<0.f);
    +
    42  pos = (val1>0.f) || (val2>0.f) || (val3>0.f);
    +
    43 
    +
    44  return !(neg && pos);
    +
    45  }
    +
    46 
    +
    52  std::vector<Triangle> calculateTriangles(std::vector<QPoint> polyPoints);
    +
    53 
    +
    60  bool isInPolygon(std::vector<Triangle> &triangles, QPoint &point);
    +
    61 }
    62 
    -
    63 }
    -
    64 
    -
    65 #endif
    +
    63 #endif
    -
    bool isInTriangle(Triangle &tri, QPoint &P)
    A function to check if a given point is in a triangle.
    Definition: IntelliHelper.h:34
    +
    bool isInTriangle(Triangle &tri, QPoint &P)
    A function to check if a given point is in a triangle.
    Definition: IntelliHelper.h:33
    QPoint B
    Definition: IntelliHelper.h:11
    QPoint C
    Definition: IntelliHelper.h:11
    - +
    The Triangle struct holds the 3 vertices of a triangle.
    Definition: IntelliHelper.h:10
    -
    bool isInPolygon(std::vector< Triangle > &triangles, QPoint &point)
    A function to check if a point lies in a polygon by checking its spanning triangles.
    +
    bool isInPolygon(std::vector< Triangle > &triangles, QPoint &point)
    A function to check if a point lies in a polygon by checking its spanning triangles.
    QPoint A
    Definition: IntelliHelper.h:11
    std::vector< Triangle > calculateTriangles(std::vector< QPoint > polyPoints)
    A function to split a polygon in its spanning traingles by using Meisters Theorem of graph theory by ...
    -
    float sign(QPoint &p1, QPoint &p2, QPoint &p3)
    A function to get the 2*area of a traingle, using its determinat.
    Definition: IntelliHelper.h:24
    +
    float sign(QPoint &p1, QPoint &p2, QPoint &p3)
    A function to get the 2*area of a traingle, using its determinat.
    Definition: IntelliHelper.h:23
    virtual void drawLine(const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth)
    A function that draws A Line between two given Points in a given color.
    @@ -183,9 +182,9 @@ $(document).ready(function(){initNavTree('_intelli_image_8cpp_source.html','');}
    virtual void drawPoint(const QPoint &p1, const QColor &color, const int &penWidth)
    A.
    IntelliImage(int weight, int height)
    The Construcor of the IntelliImage. Given the Image dimensions.
    Definition: IntelliImage.cpp:5
    void resizeImage(QImage *image, const QSize &newSize)
    -
    virtual QColor getPixelColor(QPoint &point)
    A function that returns the pixelcolor at a certain point.
    +
    virtual QColor getPixelColor(QPoint &point)
    A function that returns the pixelcolor at a certain point.
    QImage imageData
    The underlying image data.
    Definition: IntelliImage.h:32
    -
    virtual void drawPlain(const QColor &color)
    A function that clears the whole image in a given Color.
    +
    virtual void drawPlain(const QColor &color)
    A function that clears the whole image in a given Color.

    Go to the source code of this file.

    - - - - - - -

    -Functions

    void slotCreatePenTool ()
     
    void slotCreateFloodFillTool ()
     
    -

    Function Documentation

    - -

    ◆ slotCreateFloodFillTool()

    - -
    -
    - - - - - - - -
    void slotCreateFloodFillTool ()
    -
    - -

    Definition at line 109 of file IntelliPhotoGui.cpp.

    - -
    -
    - -

    ◆ slotCreatePenTool()

    - -
    -
    - - - - - - - -
    void slotCreatePenTool ()
    -
    - -

    Definition at line 105 of file IntelliPhotoGui.cpp.

    - -
    -
    diff --git a/docs/html/_intelli_photo_gui_8cpp_source.html b/docs/html/_intelli_photo_gui_8cpp_source.html index 42e9553..f4d75bf 100644 --- a/docs/html/_intelli_photo_gui_8cpp_source.html +++ b/docs/html/_intelli_photo_gui_8cpp_source.html @@ -100,494 +100,486 @@ $(document).ready(function(){initNavTree('_intelli_photo_gui_8cpp_source.html','
    8 
    9 // IntelliPhotoGui constructor
    -
    11  //create Gui elements and lay them out
    -
    12  createGui();
    -
    13  // Create actions
    -
    14  createActions();
    -
    15  //create Menus
    -
    16  createMenus();
    -
    17  //set style of the gui
    -
    18  setIntelliStyle();
    -
    19  // Size the app
    -
    20  showMaximized();
    -
    21 }
    +
    11  // create Gui elements and lay them out
    +
    12  createGui();
    +
    13  // Create actions
    +
    14  createActions();
    +
    15  // create Menus
    +
    16  createMenus();
    +
    17  // set style of the gui
    +
    18  setIntelliStyle();
    +
    19  // Size the app
    +
    20  resize(600,600);
    +
    21  showMaximized();
    22 
    -
    23 // User tried to close the app
    -
    24 void IntelliPhotoGui::closeEvent(QCloseEvent *event){
    -
    25  // If they try to close maybeSave() returns true
    -
    26  // if no changes have been made and the app closes
    -
    27  if (maybeSave()) {
    -
    28  event->accept();
    -
    29  } else {
    -
    30  // If there have been changes ignore the event
    -
    31  event->ignore();
    -
    32  }
    -
    33 }
    -
    34 
    -
    35 // Check if the current image has been changed and then
    -
    36 // open a dialog to open a file
    -
    37 void IntelliPhotoGui::slotOpen(){
    -
    38  // Check if changes have been made since last save
    -
    39  // maybeSave() returns true if no changes have been made
    -
    40  if (maybeSave()) {
    -
    41 
    -
    42  // Get the file to open from a dialog
    -
    43  // tr sets the window title to Open File
    -
    44  // QDir opens the current dirctory
    -
    45  QString fileName = QFileDialog::getOpenFileName(this,
    -
    46  tr("Open File"), QDir::currentPath(), nullptr, nullptr, QFileDialog::DontUseNativeDialog);
    -
    47 
    -
    48  // If we have a file name load the image and place
    -
    49  // it in the paintingArea
    -
    50  if (!fileName.isEmpty())
    -
    51  paintingArea->open(fileName);
    -
    52  }
    -
    53 }
    -
    54 
    -
    55 // Called when the user clicks Save As in the menu
    -
    56 void IntelliPhotoGui::slotSave(){
    -
    57  // A QAction represents the action of the user clicking
    -
    58  QAction *action = qobject_cast<QAction *>(sender());
    -
    59 
    -
    60  // Stores the array of bytes of the users data
    -
    61  QByteArray fileFormat = action->data().toByteArray();
    -
    62 
    -
    63  // Pass it to be saved
    -
    64  saveFile(fileFormat);
    -
    65 }
    -
    66 
    -
    67 // Opens a dialog that allows the user to create a New Layer
    -
    68 void IntelliPhotoGui::slotCreateNewLayer(){
    -
    69  // Stores button value
    -
    70  bool ok1, ok2;
    -
    71 
    -
    72  // tr("New Layer") is the title
    -
    73  // the next tr is the text to display
    -
    74  // Define the standard Value, min, max, step and ok button
    -
    75  int width = QInputDialog::getInt(this, tr("New Layer"),
    -
    76  tr("Width:"),
    -
    77  200,1, 500, 1, &ok1);
    -
    78  int height = QInputDialog::getInt(this, tr("New Layer"),
    -
    79  tr("Height:"),
    -
    80  200,1, 500, 1, &ok2);
    -
    81  // Create New Layer
    -
    82  if (ok1&&ok2)
    -
    83  {
    -
    84  int layer = paintingArea->addLayer(width,height,0,0);
    -
    85  paintingArea->slotActivateLayer(layer);
    -
    86  }
    -
    87 }
    -
    88 
    -
    89 // Opens a dialog that allows the user to delete a Layer
    -
    90 void IntelliPhotoGui::slotDeleteLayer(){
    -
    91  // Stores button value
    -
    92  bool ok;
    -
    93 
    -
    94  // tr("delete Layer") is the title
    -
    95  // the next tr is the text to display
    -
    96  // Define the standard Value, min, max, step and ok button
    -
    97  int layerNumber = QInputDialog::getInt(this, tr("delete Layer"),
    -
    98  tr("Number:"),
    -
    99  1,0, 500, 1, &ok);
    -
    100  // Create New Layer
    -
    101  if (ok)
    -
    102  paintingArea->deleteLayer(layerNumber);
    -
    103 }
    -
    104 
    - +
    23 }
    +
    24 
    +
    25 // User tried to close the app
    +
    26 void IntelliPhotoGui::closeEvent(QCloseEvent*event){
    +
    27  // If they try to close maybeSave() returns true
    +
    28  // if no changes have been made and the app closes
    +
    29  if (maybeSave()) {
    +
    30  event->accept();
    +
    31  } else {
    +
    32  // If there have been changes ignore the event
    +
    33  event->ignore();
    +
    34  }
    +
    35 }
    +
    36 
    +
    37 // Check if the current image has been changed and then
    +
    38 // open a dialog to open a file
    +
    39 void IntelliPhotoGui::slotOpen(){
    +
    40  // Check if changes have been made since last save
    +
    41  // maybeSave() returns true if no changes have been made
    +
    42  if (maybeSave()) {
    +
    43 
    +
    44  // Get the file to open from a dialog
    +
    45  // tr sets the window title to Open File
    +
    46  // QDir opens the current dirctory
    +
    47  QString fileName = QFileDialog::getOpenFileName(this,
    +
    48  tr("Open File"), QDir::currentPath(), nullptr, nullptr, QFileDialog::DontUseNativeDialog);
    +
    49 
    +
    50  // If we have a file name load the image and place
    +
    51  // it in the paintingArea
    +
    52  if (!fileName.isEmpty())
    +
    53  paintingArea->open(fileName);
    +
    54  }
    +
    55 }
    +
    56 
    +
    57 // Called when the user clicks Save As in the menu
    +
    58 void IntelliPhotoGui::slotSave(){
    +
    59  // A QAction represents the action of the user clicking
    +
    60  QAction*action = qobject_cast<QAction*>(sender());
    +
    61 
    +
    62  // Stores the array of bytes of the users data
    +
    63  QByteArray fileFormat = action->data().toByteArray();
    +
    64 
    +
    65  // Pass it to be saved
    +
    66  saveFile(fileFormat);
    +
    67 }
    +
    68 
    +
    69 // Opens a dialog that allows the user to create a New Layer
    +
    70 void IntelliPhotoGui::slotCreateNewLayer(){
    +
    71  // Stores button value
    +
    72  bool ok1, ok2;
    +
    73 
    +
    74  // "New Layer" is the title of the window
    +
    75  // the next tr is the text to display
    +
    76  // Define the standard Value, min, max, step and ok button
    +
    77  int width = QInputDialog::getInt(this, tr("New Layer"),
    +
    78  tr("Width:"),
    +
    79  200,1, 500, 1, &ok1);
    +
    80  int height = QInputDialog::getInt(this, tr("New Layer"),
    +
    81  tr("Height:"),
    +
    82  200,1, 500, 1, &ok2);
    +
    83  // Create New Layer
    +
    84  if (ok1&&ok2)
    +
    85  {
    +
    86  int layer = paintingArea->addLayer(width,height,0,0);
    +
    87  paintingArea->slotActivateLayer(layer);
    +
    88  }
    +
    89 }
    +
    90 
    +
    91 // Opens a dialog that allows the user to delete a Layer
    +
    92 void IntelliPhotoGui::slotDeleteLayer(){
    +
    93  // Stores button value
    +
    94  bool ok;
    +
    95 
    +
    96  // "delete Layer" is the title of the window
    +
    97  // the next tr is the text to display
    +
    98  // Define the standard Value, min, max, step and ok button
    +
    99  int layerNumber = QInputDialog::getInt(this, tr("delete Layer"),
    +
    100  tr("Number:"),
    +
    101  1,0, 500, 1, &ok);
    +
    102  // Create New Layer
    +
    103  if (ok)
    +
    104  paintingArea->deleteLayer(layerNumber);
    +
    105 }
    106 
    -
    107 }
    -
    108 
    - +
    107 void IntelliPhotoGui::slotSetActiveAlpha(){
    +
    108  // Stores button value
    +
    109  bool ok1, ok2;
    110 
    -
    111 }
    -
    112 
    -
    113 void IntelliPhotoGui::slotSetActiveAlpha(){
    -
    114  // Stores button value
    -
    115  bool ok1, ok2;
    -
    116 
    -
    117  // tr("Layer to set on") is the title
    -
    118  // the next tr is the text to display
    -
    119  // Define the standard Value, min, max, step and ok button
    -
    120  int layer = QInputDialog::getInt(this, tr("Layer to set on"),
    -
    121  tr("Layer:"),
    -
    122  -1,-1,100,1, &ok1);
    -
    123  // tr("New Alpha") is the title
    -
    124  int alpha = QInputDialog::getInt(this, tr("New Alpha"),
    -
    125  tr("Alpha:"),
    -
    126  255,0, 255, 1, &ok2);
    -
    127  if (ok1&&ok2)
    -
    128  {
    -
    129  paintingArea->setAlphaOfLayer(layer,alpha);
    -
    130  }
    -
    131 }
    -
    132 
    -
    133 void IntelliPhotoGui::slotPositionMoveUp(){
    -
    134  paintingArea->movePositionActive(0,-20);
    -
    135  update();
    -
    136 }
    -
    137 
    -
    138 void IntelliPhotoGui::slotPositionMoveDown(){
    -
    139  paintingArea->movePositionActive(0,20);
    -
    140  update();
    -
    141 }
    -
    142 
    -
    143 void IntelliPhotoGui::slotPositionMoveLeft(){
    -
    144  paintingArea->movePositionActive(-20,0);
    -
    145  update();
    -
    146 }
    -
    147 
    -
    148 void IntelliPhotoGui::slotPositionMoveRight(){
    -
    149  paintingArea->movePositionActive(20,0);
    -
    150  update();
    -
    151 }
    -
    152 
    -
    153 void IntelliPhotoGui::slotMoveLayerUp(){
    -
    154  paintingArea->moveActiveLayer(1);
    -
    155  update();
    -
    156 }
    -
    157 
    -
    158 void IntelliPhotoGui::slotMoveLayerDown(){
    -
    159  paintingArea->moveActiveLayer(-1);
    -
    160  update();
    -
    161 }
    -
    162 
    -
    163 void IntelliPhotoGui::slotClearActiveLayer(){
    -
    164  // Stores button value
    -
    165  bool ok1, ok2, ok3, ok4;
    -
    166 
    -
    167  // tr("Red Input") is the title
    -
    168  // the next tr is the text to display
    -
    169  // Define the standard Value, min, max, step and ok button
    -
    170  int red = QInputDialog::getInt(this, tr("Red Input"),
    -
    171  tr("Red:"),
    -
    172  255,0, 255,1, &ok1);
    -
    173  // tr("Green Input") is the title
    -
    174  int green = QInputDialog::getInt(this, tr("Green Input"),
    -
    175  tr("Green:"),
    -
    176  255,0, 255, 1, &ok2);
    -
    177  // tr("Blue Input") is the title
    -
    178  int blue = QInputDialog::getInt(this, tr("Blue Input"),
    -
    179  tr("Blue:"),
    -
    180  255,0, 255, 1, &ok3);
    -
    181  // tr("Alpha Input") is the title
    -
    182  int alpha = QInputDialog::getInt(this, tr("Alpha Input"),
    -
    183  tr("Alpha:"),
    -
    184  255,0, 255, 1, &ok4);
    -
    185  if (ok1&&ok2&&ok3&&ok4)
    -
    186  {
    -
    187  paintingArea->floodFill(red, green, blue, alpha);
    -
    188  }
    -
    189 }
    -
    190 
    -
    191 void IntelliPhotoGui::slotSetActiveLayer(){
    -
    192  // Stores button value
    -
    193  bool ok1;
    -
    194 
    -
    195  // tr("Layer to set on") is the title
    -
    196  // the next tr is the text to display
    -
    197  // Define the standard Value, min, max, step and ok button
    -
    198  int layer = QInputDialog::getInt(this, tr("Layer to set on"),
    -
    199  tr("Layer:"),
    -
    200  -1,0,255,1, &ok1);
    -
    201  if (ok1)
    -
    202  {
    -
    203  paintingArea->setLayerToActive(layer);
    -
    204  }
    -
    205 };
    -
    206 
    -
    207 void IntelliPhotoGui::slotSetFirstColor(){
    -
    208  paintingArea->colorPickerSetFirstColor();
    -
    209 }
    -
    210 
    -
    211 void IntelliPhotoGui::slotSetSecondColor(){
    -
    212  paintingArea->colorPickerSetSecondColor();
    -
    213 }
    -
    214 
    -
    215 void IntelliPhotoGui::slotSwitchColor(){
    -
    216  paintingArea->colorPickerSwitchColor();
    -
    217 }
    -
    218 
    -
    219 void IntelliPhotoGui::slotCreatePenTool(){
    -
    220  paintingArea->createPenTool();
    -
    221 }
    -
    222 
    -
    223 void IntelliPhotoGui::slotCreatePlainTool(){
    -
    224  paintingArea->createPlainTool();
    -
    225 }
    -
    226 
    -
    227 void IntelliPhotoGui::slotCreateLineTool(){
    -
    228  paintingArea->createLineTool();
    -
    229 }
    -
    230 
    -
    231 // Open an about dialog
    -
    232 void IntelliPhotoGui::slotAboutDialog(){
    -
    233  // Window title and text to display
    -
    234  QMessageBox::about(this, tr("About Painting"),
    -
    235  tr("<p><b>IntelliPhoto</b>Pretty basic editor.</p>"));
    -
    236 }
    -
    237 
    -
    238 // Define menu actions that call functions
    -
    239 void IntelliPhotoGui::createActions(){
    -
    240  // Get a list of the supported file formats
    -
    241  // QImageWriter is used to write images to files
    -
    242  foreach (QByteArray format, QImageWriter::supportedImageFormats()) {
    -
    243  QString text = tr("%1...").arg(QString(format).toUpper());
    +
    111  // "Layer to set on" is the title of the window
    +
    112  // the next tr is the text to display
    +
    113  // Define the standard Value, min, max, step and ok button
    +
    114  int layer = QInputDialog::getInt(this, tr("Layer to set on"),
    +
    115  tr("Layer:"),
    +
    116  -1,-1,100,1, &ok1);
    +
    117  // "New Alpha" is the title of the window
    +
    118  int alpha = QInputDialog::getInt(this, tr("New Alpha"),
    +
    119  tr("Alpha:"),
    +
    120  255,0, 255, 1, &ok2);
    +
    121  if (ok1&&ok2)
    +
    122  {
    +
    123  paintingArea->setAlphaOfLayer(layer,alpha);
    +
    124  }
    +
    125 }
    +
    126 
    +
    127 void IntelliPhotoGui::slotPositionMoveUp(){
    +
    128  paintingArea->movePositionActive(0,-20);
    +
    129  update();
    +
    130 }
    +
    131 
    +
    132 void IntelliPhotoGui::slotPositionMoveDown(){
    +
    133  paintingArea->movePositionActive(0,20);
    +
    134  update();
    +
    135 }
    +
    136 
    +
    137 void IntelliPhotoGui::slotPositionMoveLeft(){
    +
    138  paintingArea->movePositionActive(-20,0);
    +
    139  update();
    +
    140 }
    +
    141 
    +
    142 void IntelliPhotoGui::slotPositionMoveRight(){
    +
    143  paintingArea->movePositionActive(20,0);
    +
    144  update();
    +
    145 }
    +
    146 
    +
    147 void IntelliPhotoGui::slotMoveLayerUp(){
    +
    148  paintingArea->moveActiveLayer(1);
    +
    149  update();
    +
    150 }
    +
    151 
    +
    152 void IntelliPhotoGui::slotMoveLayerDown(){
    +
    153  paintingArea->moveActiveLayer(-1);
    +
    154  update();
    +
    155 }
    +
    156 
    +
    157 void IntelliPhotoGui::slotClearActiveLayer(){
    +
    158  // Stores button value
    +
    159  bool ok1, ok2, ok3, ok4;
    +
    160 
    +
    161  // "Red Input" is the title of the window
    +
    162  // the next tr is the text to display
    +
    163  // Define the standard Value, min, max, step and ok button
    +
    164  int red = QInputDialog::getInt(this, tr("Red Input"),
    +
    165  tr("Red:"),
    +
    166  255,0, 255,1, &ok1);
    +
    167  // "Green Input" is the title of the window
    +
    168  int green = QInputDialog::getInt(this, tr("Green Input"),
    +
    169  tr("Green:"),
    +
    170  255,0, 255, 1, &ok2);
    +
    171  // "Blue Input" is the title of the window
    +
    172  int blue = QInputDialog::getInt(this, tr("Blue Input"),
    +
    173  tr("Blue:"),
    +
    174  255,0, 255, 1, &ok3);
    +
    175  // "Alpha Input" is the title of the window
    +
    176  int alpha = QInputDialog::getInt(this, tr("Alpha Input"),
    +
    177  tr("Alpha:"),
    +
    178  255,0, 255, 1, &ok4);
    +
    179  if (ok1&&ok2&&ok3&&ok4)
    +
    180  {
    +
    181  paintingArea->floodFill(red, green, blue, alpha);
    +
    182  }
    +
    183 }
    +
    184 
    +
    185 void IntelliPhotoGui::slotSetActiveLayer(){
    +
    186  // Stores button value
    +
    187  bool ok1;
    +
    188 
    +
    189  // "Layer to set on" is the title of the window
    +
    190  // the next tr is the text to display
    +
    191  // Define the standard Value, min, max, step and ok button
    +
    192  int layer = QInputDialog::getInt(this, tr("Layer to set on"),
    +
    193  tr("Layer:"),
    +
    194  -1,0,255,1, &ok1);
    +
    195  if (ok1)
    +
    196  {
    +
    197  paintingArea->setLayerToActive(layer);
    +
    198  }
    +
    199 }
    +
    200 
    +
    201 void IntelliPhotoGui::slotSetFirstColor(){
    +
    202  paintingArea->colorPickerSetFirstColor();
    +
    203 }
    +
    204 
    +
    205 void IntelliPhotoGui::slotSetSecondColor(){
    +
    206  paintingArea->colorPickerSetSecondColor();
    +
    207 }
    +
    208 
    +
    209 void IntelliPhotoGui::slotSwitchColor(){
    +
    210  paintingArea->colorPickerSwitchColor();
    +
    211 }
    +
    212 
    +
    213 void IntelliPhotoGui::slotCreatePenTool(){
    +
    214  paintingArea->createPenTool();
    +
    215 }
    +
    216 
    +
    217 void IntelliPhotoGui::slotCreatePlainTool(){
    +
    218  paintingArea->createPlainTool();
    +
    219 }
    +
    220 
    +
    221 void IntelliPhotoGui::slotCreateLineTool(){
    +
    222  paintingArea->createLineTool();
    +
    223 }
    +
    224 
    +
    225 // Open an about dialog
    +
    226 void IntelliPhotoGui::slotAboutDialog(){
    +
    227  // Window title and text to display
    +
    228  QMessageBox::about(this, tr("About Painting"),
    +
    229  tr("<p><b>IntelliPhoto</b>Pretty basic editor.</p>"));
    +
    230 }
    +
    231 
    +
    232 // Define menu actions that call functions
    +
    233 void IntelliPhotoGui::createActions(){
    +
    234  // Get a list of the supported file formats
    +
    235  // QImageWriter is used to write images to files
    +
    236  foreach (QByteArray format, QImageWriter::supportedImageFormats()) {
    +
    237  QString text = tr("%1...").arg(QString(format).toUpper());
    +
    238 
    +
    239  // Create an action for each file format
    +
    240  QAction*action = new QAction(text, this);
    +
    241 
    +
    242  // Set an action for each file format
    +
    243  action->setData(format);
    244 
    -
    245  // Create an action for each file format
    -
    246  QAction *action = new QAction(text, this);
    +
    245  // When clicked call IntelliPhotoGui::save()
    +
    246  connect(action, SIGNAL(triggered()), this, SLOT(slotSave()));
    247 
    -
    248  // Set an action for each file format
    -
    249  action->setData(format);
    -
    250 
    -
    251  // When clicked call IntelliPhotoGui::save()
    -
    252  connect(action, SIGNAL(triggered()), this, SLOT(slotSave()));
    -
    253 
    -
    254  // Attach each file format option menu item to Save As
    -
    255  actionSaveAs.append(action);
    -
    256  }
    -
    257 
    -
    258  //set exporter to actions
    -
    259  QAction *pngSaveAction = new QAction("PNG-8", this);
    -
    260  pngSaveAction->setData("PNG");
    -
    261  // When clicked call IntelliPhotoGui::save()
    -
    262  connect(pngSaveAction, SIGNAL(triggered()), this, SLOT(slotSave()));
    -
    263  // Attach each PNG in save Menu
    -
    264  actionSaveAs.append(pngSaveAction);
    -
    265 
    -
    266  // Create exit action and tie to IntelliPhotoGui::close()
    -
    267  actionExit = new QAction(tr("&Exit"), this);
    -
    268  actionExit->setShortcuts(QKeySequence::Quit);
    -
    269  connect(actionExit, SIGNAL(triggered()), this, SLOT(close()));
    -
    270 
    -
    271  actionOpen = new QAction(tr("&Open"), this);
    -
    272  actionOpen->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_O));
    -
    273  connect(actionOpen, SIGNAL(triggered()), this, SLOT(slotOpen()));
    -
    274 
    -
    275  // Create New Layer action and tie to IntelliPhotoGui::newLayer()
    -
    276  actionCreateNewLayer = new QAction(tr("&New Layer..."), this);
    -
    277  actionCreateNewLayer->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_N));
    -
    278  connect(actionCreateNewLayer, SIGNAL(triggered()), this, SLOT(slotCreateNewLayer()));
    -
    279 
    -
    280  // Delete New Layer action and tie to IntelliPhotoGui::deleteLayer()
    -
    281  actionDeleteLayer = new QAction(tr("&Delete Layer..."), this);
    -
    282  connect(actionDeleteLayer, SIGNAL(triggered()), this, SLOT(slotDeleteLayer()));
    +
    248  // Attach each file format option menu item to Save As
    +
    249  actionSaveAs.append(action);
    +
    250  }
    +
    251 
    +
    252  //set exporter to actions
    +
    253  QAction*pngSaveAction = new QAction("PNG-8", this);
    +
    254  pngSaveAction->setData("PNG");
    +
    255  // When clicked call IntelliPhotoGui::save()
    +
    256  connect(pngSaveAction, SIGNAL(triggered()), this, SLOT(slotSave()));
    +
    257  // Attach each PNG in save Menu
    +
    258  actionSaveAs.append(pngSaveAction);
    +
    259 
    +
    260  // Create exit action and tie to IntelliPhotoGui::close()
    +
    261  actionExit = new QAction(tr("&Exit"), this);
    +
    262  actionExit->setShortcuts(QKeySequence::Quit);
    +
    263  connect(actionExit, SIGNAL(triggered()), this, SLOT(close()));
    +
    264 
    +
    265  actionOpen = new QAction(tr("&Open"), this);
    +
    266  actionOpen->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_O));
    +
    267  connect(actionOpen, SIGNAL(triggered()), this, SLOT(slotOpen()));
    +
    268 
    +
    269  // Create New Layer action and tie to IntelliPhotoGui::newLayer()
    +
    270  actionCreateNewLayer = new QAction(tr("&New Layer..."), this);
    +
    271  actionCreateNewLayer->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_N));
    +
    272  connect(actionCreateNewLayer, SIGNAL(triggered()), this, SLOT(slotCreateNewLayer()));
    +
    273 
    +
    274  // Delete New Layer action and tie to IntelliPhotoGui::deleteLayer()
    +
    275  actionDeleteLayer = new QAction(tr("&Delete Layer..."), this);
    +
    276  connect(actionDeleteLayer, SIGNAL(triggered()), this, SLOT(slotDeleteLayer()));
    +
    277 
    +
    278  actionSetActiveLayer = new QAction(tr("&set Active"), this);
    +
    279  connect(actionSetActiveLayer, SIGNAL(triggered()), this, SLOT(slotSetActiveLayer()));
    +
    280 
    +
    281  actionSetActiveAlpha = new QAction(tr("&set Alpha"), this);
    +
    282  connect(actionSetActiveAlpha, SIGNAL(triggered()), this, SLOT(slotSetActiveAlpha()));
    283 
    -
    284  actionSetActiveLayer = new QAction(tr("&set Active"), this);
    -
    285  connect(actionSetActiveLayer, SIGNAL(triggered()), this, SLOT(slotSetActiveLayer()));
    -
    286 
    -
    287  actionSetActiveAlpha = new QAction(tr("&set Alpha"), this);
    -
    288  connect(actionSetActiveAlpha, SIGNAL(triggered()), this, SLOT(slotSetActiveAlpha()));
    -
    289 
    -
    290  actionMovePositionUp = new QAction(tr("&move Up"), this);
    -
    291  actionMovePositionUp->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Up));
    -
    292  connect(actionMovePositionUp, SIGNAL(triggered()), this, SLOT(slotPositionMoveUp()));
    -
    293 
    -
    294  actionMovePositionDown = new QAction(tr("&move Down"), this);
    -
    295  actionMovePositionDown->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Down));
    -
    296  connect(actionMovePositionDown, SIGNAL(triggered()), this, SLOT(slotPositionMoveDown()));
    -
    297 
    -
    298  actionMovePositionLeft = new QAction(tr("&move Left"), this);
    -
    299  actionMovePositionLeft->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Left));
    -
    300  connect(actionMovePositionLeft, SIGNAL(triggered()), this, SLOT(slotPositionMoveLeft()));
    -
    301 
    -
    302  actionMovePositionRight = new QAction(tr("&move Right"), this);
    -
    303  actionMovePositionRight->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Right));
    -
    304  connect(actionMovePositionRight, SIGNAL(triggered()), this, SLOT(slotPositionMoveRight()));
    -
    305 
    -
    306  actionMoveLayerUp = new QAction(tr("&move Layer Up"), this);
    -
    307  actionMoveLayerUp->setShortcut(QKeySequence(Qt::CTRL + Qt::ALT + Qt::Key_Up));
    -
    308  connect(actionMoveLayerUp, SIGNAL(triggered()), this, SLOT(slotMoveLayerUp()));
    -
    309 
    -
    310  actionMoveLayerDown= new QAction(tr("&move Layer Down"), this);
    -
    311  actionMoveLayerDown->setShortcut(QKeySequence(Qt::CTRL + Qt::ALT + Qt::Key_Down));
    -
    312  connect(actionMoveLayerDown, SIGNAL(triggered()), this, SLOT(slotMoveLayerDown()));
    -
    313 
    -
    314  //Create Color Actions here
    -
    315  actionColorPickerFirstColor = new QAction(tr("&Main"), this);
    -
    316  connect(actionColorPickerFirstColor, SIGNAL(triggered()), this, SLOT(slotSetFirstColor()));
    -
    317 
    -
    318  actionColorPickerSecondColor = new QAction(tr("&Secondary"), this);
    -
    319  connect(actionColorPickerSecondColor, SIGNAL(triggered()), this, SLOT(slotSetSecondColor()));
    -
    320 
    -
    321  actionColorSwitch = new QAction(tr("&Switch"), this);
    -
    322  actionColorSwitch->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_S));
    -
    323  connect(actionColorSwitch, SIGNAL(triggered()), this, SLOT(slotSwitchColor()));
    -
    324 
    -
    325  //Create Tool actions down here
    -
    326  actionCreatePlainTool = new QAction(tr("&Plain"), this);
    -
    327  connect(actionCreatePlainTool, SIGNAL(triggered()), this, SLOT(slotCreatePlainTool()));
    +
    284  actionMovePositionUp = new QAction(tr("&move Up"), this);
    +
    285  actionMovePositionUp->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Up));
    +
    286  connect(actionMovePositionUp, SIGNAL(triggered()), this, SLOT(slotPositionMoveUp()));
    +
    287 
    +
    288  actionMovePositionDown = new QAction(tr("&move Down"), this);
    +
    289  actionMovePositionDown->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Down));
    +
    290  connect(actionMovePositionDown, SIGNAL(triggered()), this, SLOT(slotPositionMoveDown()));
    +
    291 
    +
    292  actionMovePositionLeft = new QAction(tr("&move Left"), this);
    +
    293  actionMovePositionLeft->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Left));
    +
    294  connect(actionMovePositionLeft, SIGNAL(triggered()), this, SLOT(slotPositionMoveLeft()));
    +
    295 
    +
    296  actionMovePositionRight = new QAction(tr("&move Right"), this);
    +
    297  actionMovePositionRight->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Right));
    +
    298  connect(actionMovePositionRight, SIGNAL(triggered()), this, SLOT(slotPositionMoveRight()));
    +
    299 
    +
    300  actionMoveLayerUp = new QAction(tr("&move Layer Up"), this);
    +
    301  actionMoveLayerUp->setShortcut(QKeySequence(Qt::CTRL + Qt::ALT + Qt::Key_Up));
    +
    302  connect(actionMoveLayerUp, SIGNAL(triggered()), this, SLOT(slotMoveLayerUp()));
    +
    303 
    +
    304  actionMoveLayerDown= new QAction(tr("&move Layer Down"), this);
    +
    305  actionMoveLayerDown->setShortcut(QKeySequence(Qt::CTRL + Qt::ALT + Qt::Key_Down));
    +
    306  connect(actionMoveLayerDown, SIGNAL(triggered()), this, SLOT(slotMoveLayerDown()));
    +
    307 
    +
    308  //Create Color Actions here
    +
    309  actionColorPickerFirstColor = new QAction(tr("&Main"), this);
    +
    310  connect(actionColorPickerFirstColor, SIGNAL(triggered()), this, SLOT(slotSetFirstColor()));
    +
    311 
    +
    312  actionColorPickerSecondColor = new QAction(tr("&Secondary"), this);
    +
    313  connect(actionColorPickerSecondColor, SIGNAL(triggered()), this, SLOT(slotSetSecondColor()));
    +
    314 
    +
    315  actionColorSwitch = new QAction(tr("&Switch"), this);
    +
    316  actionColorSwitch->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_S));
    +
    317  connect(actionColorSwitch, SIGNAL(triggered()), this, SLOT(slotSwitchColor()));
    +
    318 
    +
    319  //Create Tool actions down here
    +
    320  actionCreatePlainTool = new QAction(tr("&Plain"), this);
    +
    321  connect(actionCreatePlainTool, SIGNAL(triggered()), this, SLOT(slotCreatePlainTool()));
    +
    322 
    +
    323  actionCreatePenTool = new QAction(tr("&Pen"),this);
    +
    324  connect(actionCreatePenTool, SIGNAL(triggered()), this, SLOT(slotCreatePenTool()));
    +
    325 
    +
    326  actionCreateLineTool = new QAction(tr("&Line"), this);
    +
    327  connect(actionCreateLineTool, SIGNAL(triggered()), this, SLOT(slotCreateLineTool()));
    328 
    -
    329  actionCreatePenTool = new QAction(tr("&Pen"),this);
    -
    330  connect(actionCreatePenTool, SIGNAL(triggered()), this, SLOT(slotCreatePenTool()));
    -
    331 
    -
    332  actionCreateLineTool = new QAction(tr("&Line"), this);
    -
    333  connect(actionCreateLineTool, SIGNAL(triggered()), this, SLOT(slotCreateLineTool()));
    -
    334 
    -
    335  // Create about action and tie to IntelliPhotoGui::about()
    -
    336  actionAboutDialog = new QAction(tr("&About"), this);
    -
    337  connect(actionAboutDialog, SIGNAL(triggered()), this, SLOT(slotAboutDialog()));
    -
    338 
    -
    339  // Create about Qt action and tie to IntelliPhotoGui::aboutQt()
    -
    340  actionAboutQtDialog = new QAction(tr("About &Qt"), this);
    -
    341  connect(actionAboutQtDialog, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
    -
    342 }
    -
    343 
    -
    344 // Create the menubar
    -
    345 void IntelliPhotoGui::createMenus(){
    -
    346  // Create Save As option and the list of file types
    -
    347  saveAsMenu = new QMenu(tr("&Save As"), this);
    -
    348  foreach (QAction *action, actionSaveAs)
    -
    349  saveAsMenu->addAction(action);
    -
    350 
    -
    351 
    -
    352  // Attach all actions to File
    -
    353  fileMenu = new QMenu(tr("&File"), this);
    -
    354  fileMenu->addAction(actionOpen);
    -
    355  fileMenu->addMenu(saveAsMenu);
    -
    356  fileMenu->addSeparator();
    -
    357  fileMenu->addAction(actionExit);
    -
    358 
    -
    359  // Attach all actions to Options
    -
    360  optionMenu = new QMenu(tr("&Options"), this);
    -
    361  optionMenu->addAction(actionSetActiveLayer);
    -
    362  optionMenu->addAction(actionSetActiveAlpha);
    -
    363  optionMenu->addAction(actionMovePositionUp);
    -
    364  optionMenu->addAction(actionMovePositionDown);
    -
    365  optionMenu->addAction(actionMovePositionLeft);
    -
    366  optionMenu->addAction(actionMovePositionRight);
    -
    367  optionMenu->addAction(actionMoveLayerUp);
    -
    368  optionMenu->addAction(actionMoveLayerDown);
    -
    369 
    -
    370  // Attach all actions to Layer
    -
    371  layerMenu = new QMenu(tr("&Layer"), this);
    -
    372  layerMenu->addAction(actionCreateNewLayer);
    -
    373  layerMenu->addAction(actionDeleteLayer);
    +
    329  // Create about action and tie to IntelliPhotoGui::about()
    +
    330  actionAboutDialog = new QAction(tr("&About"), this);
    +
    331  connect(actionAboutDialog, SIGNAL(triggered()), this, SLOT(slotAboutDialog()));
    +
    332 
    +
    333  // Create about Qt action and tie to IntelliPhotoGui::aboutQt()
    +
    334  actionAboutQtDialog = new QAction(tr("About &Qt"), this);
    +
    335  connect(actionAboutQtDialog, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
    +
    336 }
    +
    337 
    +
    338 // Create the menubar
    +
    339 void IntelliPhotoGui::createMenus(){
    +
    340  // Create Save As option and the list of file types
    +
    341  saveAsMenu = new QMenu(tr("&Save As"), this);
    +
    342  foreach (QAction *action, actionSaveAs)
    +
    343  saveAsMenu->addAction(action);
    +
    344 
    +
    345 
    +
    346  // Attach all actions to File
    +
    347  fileMenu = new QMenu(tr("&File"), this);
    +
    348  fileMenu->addAction(actionOpen);
    +
    349  fileMenu->addMenu(saveAsMenu);
    +
    350  fileMenu->addSeparator();
    +
    351  fileMenu->addAction(actionExit);
    +
    352 
    +
    353  // Attach all actions to Options
    +
    354  optionMenu = new QMenu(tr("&Options"), this);
    +
    355  optionMenu->addAction(actionSetActiveLayer);
    +
    356  optionMenu->addAction(actionSetActiveAlpha);
    +
    357  optionMenu->addAction(actionMovePositionUp);
    +
    358  optionMenu->addAction(actionMovePositionDown);
    +
    359  optionMenu->addAction(actionMovePositionLeft);
    +
    360  optionMenu->addAction(actionMovePositionRight);
    +
    361  optionMenu->addAction(actionMoveLayerUp);
    +
    362  optionMenu->addAction(actionMoveLayerDown);
    +
    363 
    +
    364  // Attach all actions to Layer
    +
    365  layerMenu = new QMenu(tr("&Layer"), this);
    +
    366  layerMenu->addAction(actionCreateNewLayer);
    +
    367  layerMenu->addAction(actionDeleteLayer);
    +
    368 
    +
    369  //Attach all Color Options
    +
    370  colorMenu = new QMenu(tr("&Color"), this);
    +
    371  colorMenu->addAction(actionColorPickerFirstColor);
    +
    372  colorMenu->addAction(actionColorPickerSecondColor);
    +
    373  colorMenu->addAction(actionColorSwitch);
    374 
    -
    375  //Attach all Color Options
    -
    376  colorMenu = new QMenu(tr("&Color"), this);
    -
    377  colorMenu->addAction(actionColorPickerFirstColor);
    -
    378  colorMenu->addAction(actionColorPickerSecondColor);
    -
    379  colorMenu->addAction(actionColorSwitch);
    -
    380 
    -
    381  //Attach all Tool Options
    -
    382  toolMenu = new QMenu(tr("&Tools"), this);
    -
    383  toolMenu->addAction(actionCreatePenTool);
    -
    384  toolMenu->addAction(actionCreatePlainTool);
    -
    385  toolMenu->addAction(actionCreateLineTool);
    -
    386  toolMenu->addSeparator();
    -
    387  toolMenu->addMenu(colorMenu);
    -
    388 
    -
    389  // Attach all actions to Help
    -
    390  helpMenu = new QMenu(tr("&Help"), this);
    -
    391  helpMenu->addAction(actionAboutDialog);
    -
    392  helpMenu->addAction(actionAboutQtDialog);
    -
    393 
    -
    394  // Add menu items to the menubar
    -
    395  menuBar()->addMenu(fileMenu);
    -
    396  menuBar()->addMenu(optionMenu);
    -
    397  menuBar()->addMenu(layerMenu);
    -
    398  menuBar()->addMenu(toolMenu);
    -
    399  menuBar()->addMenu(helpMenu);
    -
    400 }
    -
    401 
    -
    402 void IntelliPhotoGui::createGui(){
    -
    403  //create a central widget to work on
    -
    404  centralGuiWidget = new QWidget(this);
    -
    405  setCentralWidget(centralGuiWidget);
    -
    406 
    -
    407  //create the grid for the layout
    -
    408  mainLayout = new QGridLayout(centralGuiWidget);
    -
    409  centralGuiWidget->setLayout(mainLayout);
    -
    410 
    -
    411  //create Gui elements
    -
    412  paintingArea = new PaintingArea();
    -
    413 
    -
    414  //set gui elements
    -
    415  mainLayout->addWidget(paintingArea);
    -
    416 }
    -
    417 
    -
    418 void IntelliPhotoGui::setIntelliStyle(){
    -
    419  // Set the title
    -
    420  setWindowTitle("IntelliPhoto Prototype");
    -
    421  //set style sheet
    -
    422  this->setStyleSheet("background-color:rgb(64,64,64)");
    -
    423  this->centralGuiWidget->setStyleSheet("color:rgb(255,255,255)");
    -
    424  this->menuBar()->setStyleSheet("color:rgb(255,255,255)");
    -
    425 }
    -
    426 
    -
    427 bool IntelliPhotoGui::maybeSave(){
    -
    428  // Check for changes since last save
    -
    429 
    -
    430  //TODO insert variable for modified status here to make an save exit message
    -
    431  if (false) {
    -
    432  QMessageBox::StandardButton ret;
    -
    433 
    -
    434  // Painting is the title
    -
    435  // Add text and the buttons
    -
    436  ret = QMessageBox::warning(this, tr("Painting"),
    -
    437  tr("The image has been modified.\n"
    -
    438  "Do you want to save your changes?"),
    -
    439  QMessageBox::Save | QMessageBox::Discard
    -
    440  | QMessageBox::Cancel);
    -
    441 
    -
    442  // If save button clicked call for file to be saved
    -
    443  if (ret == QMessageBox::Save) {
    -
    444  return saveFile("png");
    -
    445 
    -
    446  // If cancel do nothing
    -
    447  } else if (ret == QMessageBox::Cancel) {
    -
    448  return false;
    -
    449  }
    -
    450  }
    -
    451  return true;
    -
    452 }
    -
    453 
    -
    454 bool IntelliPhotoGui::saveFile(const QByteArray &fileFormat){
    -
    455  // Define path, name and default file type
    -
    456  QString initialPath = QDir::currentPath() + "/untitled." + fileFormat;
    -
    457 
    -
    458  // Get selected file from dialog
    -
    459  // Add the proper file formats and extensions
    -
    460  QString fileName = QFileDialog::getSaveFileName(this, tr("Save As"),
    -
    461  initialPath,
    -
    462  tr("%1 Files (*.%2);;All Files (*)")
    -
    463  .arg(QString::fromLatin1(fileFormat.toUpper()))
    -
    464  .arg(QString::fromLatin1(fileFormat)), nullptr, QFileDialog::DontUseNativeDialog);
    -
    465 
    -
    466  // If no file do nothing
    -
    467  if (fileName.isEmpty()) {
    -
    468  return false;
    -
    469  } else {
    -
    470  // Call for the file to be saved
    -
    471  return paintingArea->save(fileName, fileFormat.constData());
    -
    472  }
    -
    473 }
    +
    375  //Attach all Tool Options
    +
    376  toolMenu = new QMenu(tr("&Tools"), this);
    +
    377  toolMenu->addAction(actionCreatePenTool);
    +
    378  toolMenu->addAction(actionCreatePlainTool);
    +
    379  toolMenu->addAction(actionCreateLineTool);
    +
    380  toolMenu->addSeparator();
    +
    381  toolMenu->addMenu(colorMenu);
    +
    382 
    +
    383  // Attach all actions to Help
    +
    384  helpMenu = new QMenu(tr("&Help"), this);
    +
    385  helpMenu->addAction(actionAboutDialog);
    +
    386  helpMenu->addAction(actionAboutQtDialog);
    +
    387 
    +
    388  // Add menu items to the menubar
    +
    389  menuBar()->addMenu(fileMenu);
    +
    390  menuBar()->addMenu(optionMenu);
    +
    391  menuBar()->addMenu(layerMenu);
    +
    392  menuBar()->addMenu(toolMenu);
    +
    393  menuBar()->addMenu(helpMenu);
    +
    394 }
    +
    395 
    +
    396 void IntelliPhotoGui::createGui(){
    +
    397  // create a central widget to work on
    +
    398  centralGuiWidget = new QWidget(this);
    +
    399  setCentralWidget(centralGuiWidget);
    +
    400 
    +
    401  // create the grid for the layout
    +
    402  mainLayout = new QGridLayout(centralGuiWidget);
    +
    403  centralGuiWidget->setLayout(mainLayout);
    +
    404 
    +
    405  // create Gui elements
    +
    406  paintingArea = new PaintingArea();
    +
    407 
    +
    408  // set gui elements
    +
    409  mainLayout->addWidget(paintingArea);
    +
    410 }
    +
    411 
    +
    412 void IntelliPhotoGui::setIntelliStyle(){
    +
    413  // Set the title
    +
    414  setWindowTitle("IntelliPhoto Prototype");
    +
    415  // Set style sheet
    +
    416  this->setStyleSheet("background-color:rgb(64,64,64)");
    +
    417  this->centralGuiWidget->setStyleSheet("color:rgb(255,255,255)");
    +
    418  this->menuBar()->setStyleSheet("color:rgb(255,255,255)");
    +
    419 }
    +
    420 
    +
    421 bool IntelliPhotoGui::maybeSave(){
    +
    422  // Check for changes since last save
    +
    423 
    +
    424  // TODO insert variable for modified status here to make an save exit message
    +
    425  if (false) {
    +
    426  QMessageBox::StandardButton ret;
    +
    427 
    +
    428  // Painting is the title of the window
    +
    429  // Add text and the buttons
    +
    430  ret = QMessageBox::warning(this, tr("Painting"),
    +
    431  tr("The image has been modified.\n"
    +
    432  "Do you want to save your changes?"),
    +
    433  QMessageBox::Save | QMessageBox::Discard
    +
    434  | QMessageBox::Cancel);
    +
    435 
    +
    436  // If save button clicked call for file to be saved
    +
    437  if (ret == QMessageBox::Save) {
    +
    438  return saveFile("png");
    +
    439 
    +
    440  // If cancel do nothing
    +
    441  } else if (ret == QMessageBox::Cancel) {
    +
    442  return false;
    +
    443  }
    +
    444  }
    +
    445  return true;
    +
    446 }
    +
    447 
    +
    448 bool IntelliPhotoGui::saveFile(const QByteArray &fileFormat){
    +
    449  // Define path, name and default file type
    +
    450  QString initialPath = QDir::currentPath() + "/untitled." + fileFormat;
    +
    451 
    +
    452  // Get selected file from dialog
    +
    453  // Add the proper file formats and extensions
    +
    454  QString fileName = QFileDialog::getSaveFileName(this, tr("Save As"),
    +
    455  initialPath,
    +
    456  tr("%1 Files (*.%2);;All Files (*)")
    +
    457  .arg(QString::fromLatin1(fileFormat.toUpper()))
    +
    458  .arg(QString::fromLatin1(fileFormat)), nullptr, QFileDialog::DontUseNativeDialog);
    +
    459 
    +
    460  // If no file do nothing
    +
    461  if (fileName.isEmpty()) {
    +
    462  return false;
    +
    463  } else {
    +
    464  // Call for the file to be saved
    +
    465  return paintingArea->save(fileName, fileFormat.constData());
    +
    466  }
    +
    467 }
    -
    int addLayer(int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
    -
    void slotCreateFloodFillTool()
    -
    bool open(const QString &fileName)
    -
    void setLayerToActive(int index)
    -
    void floodFill(int r, int g, int b, int a)
    -
    bool save(const QString &fileName, const char *fileFormat)
    -
    void createPlainTool()
    +
    int addLayer(int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
    +
    bool open(const QString &fileName)
    +
    void setLayerToActive(int index)
    +
    void floodFill(int r, int g, int b, int a)
    +
    bool save(const QString &fileName, const char *fileFormat)
    +
    void createPlainTool()
    - -
    void slotCreatePenTool()
    -
    void deleteLayer(int index)
    -
    void createPenTool()
    -
    void createLineTool()
    -
    void colorPickerSetSecondColor()
    -
    void colorPickerSetFirstColor()
    -
    void colorPickerSwitchColor()
    + +
    void deleteLayer(int index)
    +
    void createPenTool()
    +
    void createLineTool()
    +
    void colorPickerSetSecondColor()
    +
    void colorPickerSetFirstColor()
    +
    void colorPickerSwitchColor()
    -
    void closeEvent(QCloseEvent *event) override
    -
    void moveActiveLayer(int idx)
    +
    void closeEvent(QCloseEvent *event) override
    +
    void moveActiveLayer(int idx)
    -
    void slotActivateLayer(int a)
    -
    void setAlphaOfLayer(int index, int alpha)
    -
    void movePositionActive(int x, int y)
    +
    void slotActivateLayer(int a)
    +
    void setAlphaOfLayer(int index, int alpha)
    +
    void movePositionActive(int x, int y)
    - +
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    -
    void closeEvent(QCloseEvent *event) override
    +
    void closeEvent(QCloseEvent *event) override
    The IntelliColorPicker manages the selected colors for one whole project.
    -
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    +
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click pressed of a mouse. Clearing the canvas layer.
    virtual void onMouseRightPressed(int x, int y)
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    Definition: IntelliTool.cpp:14
    virtual void onMouseLeftReleased(int x, int y)
    A function managing the left click Released of a Mouse. Call this in child classes!
    Definition: IntelliTool.cpp:32
    -
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    +
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click released of a mouse.
    IntelliColorPicker * colorPicker
    A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors.
    Definition: IntelliTool.h:38
    virtual void drawLine(const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth)
    A function that draws A Line between two given Points in a given color.
    -
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c...
    +
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. Changing the edge Width relative to value.
    virtual void onMouseLeftPressed(int x, int y)
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    Definition: IntelliTool.cpp:25
    QColor getSecondColor()
    A function to read the secondary selected color.
    - +
    virtual void drawPoint(const QPoint &p1, const QColor &color, const int &penWidth)
    A.
    virtual void onMouseRightReleased(int x, int y)
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    Definition: IntelliTool.cpp:21
    LayerObject * Canvas
    A pointer to the drawing canvas of the tool, work on this.
    Definition: IntelliTool.h:48
    -
    virtual ~IntelliToolCircle() override
    +
    virtual ~IntelliToolCircle() override
    A Destructor.
    bool drawing
    A flag checking if the user is currently drawing or not.
    Definition: IntelliTool.h:53
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    QColor getFirstColor()
    A function to read the primary selected color.
    The IntelliColorPicker manages the selected colors for one whole project.
    -
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event. Call this in child classes!
    -
    IntelliToolCircle(PaintingArea *Area, IntelliColorPicker *colorPicker)
    -
    IntelliImage * image
    Definition: PaintingArea.h:18
    -
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click Released of a Mouse. Call this in child classes!
    +
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event. Draws a circle with radius of eulerian norm of mouse posit...
    +
    IntelliToolCircle(PaintingArea *Area, IntelliColorPicker *colorPicker)
    A constructor setting the general paintingArea and colorPicker. And reading in the inner alpha and ed...
    +
    IntelliImage * image
    Definition: PaintingArea.h:17
    +
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click released of a mouse.
    virtual void onMouseMoved(int x, int y)
    A function managing the mouse moved event. Call this in child classes!
    Definition: IntelliTool.cpp:41
    virtual void calculateVisiblity()=0
    An abstract function that calculates the visiblity of the Image data if needed.
    -
    virtual void onWheelScrolled(int value)
    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c...
    Definition: IntelliTool.cpp:46
    +
    virtual void onWheelScrolled(int value)
    A function managing the scroll event. A positive value means scrolling outwards. Call this in child c...
    Definition: IntelliTool.cpp:46
    -
    virtual void drawPlain(const QColor &color)
    A function that clears the whole image in a given Color.
    -
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    +
    virtual void drawPlain(const QColor &color)
    A function that clears the whole image in a given Color.
    +
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click pressed of a mouse. Sets the middle point of the cricle.

    Classes

    class  IntelliToolCircle + The IntelliToolCircle class represents a tool to draw a circle. More...
      diff --git a/docs/html/_intelli_tool_circle_8h_source.html b/docs/html/_intelli_tool_circle_8h_source.html index 82d7125..e6ea705 100644 --- a/docs/html/_intelli_tool_circle_8h_source.html +++ b/docs/html/_intelli_tool_circle_8h_source.html @@ -96,45 +96,50 @@ $(document).ready(function(){initNavTree('_intelli_tool_circle_8h_source.html','
    4 
    5 #include "QColor"
    6 #include "QPoint"
    -
    7 
    - -
    9  void drawCyrcle(int radius);
    -
    10 
    -
    11  QPoint Middle;
    -
    12  int alphaInner;
    -
    13  int edgeWidth;
    -
    14 public:
    - -
    16  virtual ~IntelliToolCircle() override;
    -
    17 
    -
    18  virtual void onMouseRightPressed(int x, int y) override;
    -
    19  virtual void onMouseRightReleased(int x, int y) override;
    -
    20  virtual void onMouseLeftPressed(int x, int y) override;
    -
    21  virtual void onMouseLeftReleased(int x, int y) override;
    -
    22 
    -
    23  virtual void onWheelScrolled(int value) override;
    -
    24 
    -
    25  virtual void onMouseMoved(int x, int y) override;
    -
    26 };
    -
    27 
    -
    28 #endif // INTELLITOOLCIRCLE_H
    + +
    15  void drawCyrcle(int radius);
    +
    16 
    +
    20  QPoint Middle;
    +
    21 
    +
    25  int alphaInner;
    +
    26 
    +
    30  int edgeWidth;
    +
    31 public:
    + +
    38 
    +
    42  virtual ~IntelliToolCircle() override;
    +
    43 
    +
    49  virtual void onMouseRightPressed(int x, int y) override;
    +
    50 
    +
    56  virtual void onMouseRightReleased(int x, int y) override;
    +
    57 
    +
    63  virtual void onMouseLeftPressed(int x, int y) override;
    +
    64 
    +
    70  virtual void onMouseLeftReleased(int x, int y) override;
    +
    71 
    +
    76  virtual void onWheelScrolled(int value) override;
    +
    77 
    +
    83  virtual void onMouseMoved(int x, int y) override;
    +
    84 };
    +
    85 
    +
    86 #endif // INTELLITOOLCIRCLE_H
    -
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    -
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    +
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click pressed of a mouse. Clearing the canvas layer.
    +
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click released of a mouse.
    IntelliColorPicker * colorPicker
    A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors.
    Definition: IntelliTool.h:38
    -
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c...
    +
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. Changing the edge Width relative to value.
    PaintingArea * Area
    A pointer to the general PaintingArea to interact with.
    Definition: IntelliTool.h:33
    - -
    virtual ~IntelliToolCircle() override
    + +
    virtual ~IntelliToolCircle() override
    A Destructor.
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    The IntelliColorPicker manages the selected colors for one whole project.
    -
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event. Call this in child classes!
    -
    IntelliToolCircle(PaintingArea *Area, IntelliColorPicker *colorPicker)
    -
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click Released of a Mouse. Call this in child classes!
    - -
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    +
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event. Draws a circle with radius of eulerian norm of mouse posit...
    +
    IntelliToolCircle(PaintingArea *Area, IntelliColorPicker *colorPicker)
    A constructor setting the general paintingArea and colorPicker. And reading in the inner alpha and ed...
    +
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click released of a mouse.
    +
    The IntelliToolCircle class represents a tool to draw a circle.
    +
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click pressed of a mouse. Sets the middle point of the cricle.
    diff --git a/docs/html/_intelli_tool_flood_fill_8h_source.html b/docs/html/_intelli_tool_flood_fill_8h_source.html index 0a5dc05..eda6a57 100644 --- a/docs/html/_intelli_tool_flood_fill_8h_source.html +++ b/docs/html/_intelli_tool_flood_fill_8h_source.html @@ -96,40 +96,44 @@ $(document).ready(function(){initNavTree('_intelli_tool_flood_fill_8h_source.htm
    4 
    5 #include "QColor"
    6 
    - -
    8 public:
    - -
    10  virtual ~IntelliToolFloodFill() override;
    -
    11 
    -
    12 
    -
    13  virtual void onMouseRightPressed(int x, int y) override;
    -
    14  virtual void onMouseRightReleased(int x, int y) override;
    -
    15  virtual void onMouseLeftPressed(int x, int y) override;
    -
    16  virtual void onMouseLeftReleased(int x, int y) override;
    -
    17 
    -
    18  virtual void onWheelScrolled(int value) override;
    -
    19 
    -
    20  virtual void onMouseMoved(int x, int y) override;
    -
    21 };
    -
    22 
    -
    23 #endif // INTELLITOOLFLOODFILL_H
    + +
    11 public:
    + +
    18 
    +
    22  virtual ~IntelliToolFloodFill() override;
    +
    23 
    +
    24 
    +
    30  virtual void onMouseRightPressed(int x, int y) override;
    +
    31 
    +
    37  virtual void onMouseRightReleased(int x, int y) override;
    +
    38 
    +
    44  virtual void onMouseLeftPressed(int x, int y) override;
    +
    45 
    +
    51  virtual void onMouseLeftReleased(int x, int y) override;
    +
    52 
    +
    57  virtual void onWheelScrolled(int value) override;
    +
    58 
    +
    64  virtual void onMouseMoved(int x, int y) override;
    +
    65 };
    +
    66 
    +
    67 #endif // INTELLITOOLFLOODFILL_H
    IntelliColorPicker * colorPicker
    A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors.
    Definition: IntelliTool.h:38
    -
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    +
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click released of a mouse.
    -
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click Released of a Mouse. Call this in child classes!
    -
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c...
    +
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click released of a mouse.
    +
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event.
    PaintingArea * Area
    A pointer to the general PaintingArea to interact with.
    Definition: IntelliTool.h:33
    -
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    - -
    virtual ~IntelliToolFloodFill() override
    -
    IntelliToolFloodFill(PaintingArea *Area, IntelliColorPicker *colorPicker)
    -
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event. Call this in child classes!
    +
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click pressed of a mouse. Sets the point to flood fill around and does t...
    + +
    virtual ~IntelliToolFloodFill() override
    A Destructor.
    +
    IntelliToolFloodFill(PaintingArea *Area, IntelliColorPicker *colorPicker)
    A constructor setting the general paintingArea and colorPicker.
    +
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event.
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    The IntelliColorPicker manages the selected colors for one whole project.
    -
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    - +
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click pressed of a mouse. Clearing the canvas.
    +
    The IntelliToolFloodFill class represents a tool to flood FIll a certian area.
    + +

    The LineStyle enum classifing all ways of drawing a line.

    Enumerator
    SOLID_LINE 
    DOTTED_LINE 
    -

    Definition at line 7 of file IntelliToolLine.h.

    +

    Definition at line 10 of file IntelliToolLine.h.

    diff --git a/docs/html/_intelli_tool_line_8h_source.html b/docs/html/_intelli_tool_line_8h_source.html index 927d50e..4f94bd7 100644 --- a/docs/html/_intelli_tool_line_8h_source.html +++ b/docs/html/_intelli_tool_line_8h_source.html @@ -96,51 +96,57 @@ $(document).ready(function(){initNavTree('_intelli_tool_line_8h_source.html','')
    4 
    5 #include "QPoint"
    6 
    -
    7 enum class LineStyle{
    - - -
    10 };
    -
    11 
    - -
    13  QPoint start;
    -
    14  int lineWidth;
    -
    15  LineStyle lineStyle;
    -
    16 public:
    - -
    18  virtual ~IntelliToolLine() override;
    -
    19 
    -
    20 
    -
    21  virtual void onMouseRightPressed(int x, int y) override;
    -
    22  virtual void onMouseRightReleased(int x, int y) override;
    -
    23  virtual void onMouseLeftPressed(int x, int y) override;
    -
    24  virtual void onMouseLeftReleased(int x, int y) override;
    -
    25 
    -
    26  virtual void onWheelScrolled(int value) override;
    -
    27 
    -
    28  virtual void onMouseMoved(int x, int y) override;
    -
    29 };
    -
    30 
    -
    31 #endif // INTELLITOOLLINE_H
    +
    10 enum class LineStyle{
    +
    11  SOLID_LINE,
    + +
    13 };
    +
    14 
    + +
    22  QPoint start;
    +
    23 
    +
    27  int lineWidth;
    +
    28 
    +
    32  LineStyle lineStyle;
    +
    33 public:
    +
    34 
    + +
    41 
    +
    45  virtual ~IntelliToolLine() override;
    +
    46 
    +
    52  virtual void onMouseRightPressed(int x, int y) override;
    +
    53 
    +
    59  virtual void onMouseRightReleased(int x, int y) override;
    +
    60 
    +
    66  virtual void onMouseLeftPressed(int x, int y) override;
    +
    67 
    +
    73  virtual void onMouseLeftReleased(int x, int y) override;
    +
    74 
    +
    79  virtual void onWheelScrolled(int value) override;
    +
    80 
    +
    86  virtual void onMouseMoved(int x, int y) override;
    +
    87 };
    +
    88 
    +
    89 #endif // INTELLITOOLLINE_H
    IntelliColorPicker * colorPicker
    A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors.
    Definition: IntelliTool.h:38
    -
    LineStyle
    -
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event. Call this in child classes!
    -
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c...
    -
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    +
    LineStyle
    The LineStyle enum classifing all ways of drawing a line.
    +
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event. Drawing a Line from the startpoint to the current mouse po...
    +
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. Changing the lineWidth relative to value.
    +
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click released of a mouse.
    PaintingArea * Area
    A pointer to the general PaintingArea to interact with.
    Definition: IntelliTool.h:33
    -
    IntelliToolLine(PaintingArea *Area, IntelliColorPicker *colorPicker)
    +
    IntelliToolLine(PaintingArea *Area, IntelliColorPicker *colorPicker)
    A constructor setting the general paintingArea and colorPicker. And reading in the lineWidth and line...
    - -
    virtual ~IntelliToolLine() override
    -
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click Released of a Mouse. Call this in child classes!
    -
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    + +
    virtual ~IntelliToolLine() override
    An abstract Destructor.
    +
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click released of a mouse.
    +
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click pressed of a mouse. Clearing the canvas.
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    The IntelliColorPicker manages the selected colors for one whole project.
    -
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    - +
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click pressed of a mouse. Sets the starting point of the line.
    +
    The IntelliToolFloodFill class represents a tool to draw a line.
    diff --git a/docs/html/_intelli_tool_pen_8h_source.html b/docs/html/_intelli_tool_pen_8h_source.html index 4237710..158ddfe 100644 --- a/docs/html/_intelli_tool_pen_8h_source.html +++ b/docs/html/_intelli_tool_pen_8h_source.html @@ -96,42 +96,44 @@ $(document).ready(function(){initNavTree('_intelli_tool_pen_8h_source.html','');
    4 #include"IntelliTool.h"
    5 #include"QColor"
    6 #include"QPoint"
    -
    7 
    -
    8 class IntelliToolPen : public IntelliTool{
    -
    9  int penWidth;
    -
    10  QPoint point;
    -
    11 public:
    - -
    13  virtual ~IntelliToolPen() override;
    -
    14 
    -
    15  virtual void onMouseRightPressed(int x, int y) override;
    -
    16  virtual void onMouseRightReleased(int x, int y) override;
    -
    17  virtual void onMouseLeftPressed(int x, int y) override;
    -
    18  virtual void onMouseLeftReleased(int x, int y) override;
    -
    19 
    -
    20  virtual void onWheelScrolled(int value) override;
    -
    21 
    -
    22  virtual void onMouseMoved(int x, int y) override;
    -
    23 };
    -
    24 
    -
    25 #endif // INTELLITOOLPEN_H
    +
    10 class IntelliToolPen : public IntelliTool{
    +
    14  int penWidth;
    +
    18  QPoint point;
    +
    19 public:
    + +
    29  virtual ~IntelliToolPen() override;
    +
    30 
    +
    36  virtual void onMouseRightPressed(int x, int y) override;
    +
    37 
    +
    43  virtual void onMouseRightReleased(int x, int y) override;
    +
    44 
    +
    50  virtual void onMouseLeftPressed(int x, int y) override;
    +
    51 
    +
    57  virtual void onMouseLeftReleased(int x, int y) override;
    +
    58 
    +
    63  virtual void onWheelScrolled(int value) override;
    +
    64 
    +
    70  virtual void onMouseMoved(int x, int y) override;
    +
    71 };
    +
    72 
    +
    73 #endif // INTELLITOOLPEN_H
    IntelliColorPicker * colorPicker
    A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors.
    Definition: IntelliTool.h:38
    -
    virtual ~IntelliToolPen() override
    +
    virtual ~IntelliToolPen() override
    A Destructor.
    PaintingArea * Area
    A pointer to the general PaintingArea to interact with.
    Definition: IntelliTool.h:33
    -
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event. Call this in child classes!
    -
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    -
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    - - -
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c...
    +
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event. To draw the line.
    +
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click pressed of a mouse.Resetting the current draw.
    +
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click released of a mouse.
    + +
    The IntelliToolPen class represents a tool to draw a line.
    +
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. Changing penWidth relativ to value.
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    -
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click Released of a Mouse. Call this in child classes!
    +
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click released of a mouse. Merging the drawing to the active layer.
    The IntelliColorPicker manages the selected colors for one whole project.
    -
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    -
    IntelliToolPen(PaintingArea *Area, IntelliColorPicker *colorPicker)
    +
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click pressed of a mouse. Starting the drawing procedure.
    +
    IntelliToolPen(PaintingArea *Area, IntelliColorPicker *colorPicker)
    A constructor setting the general paintingArea and colorPicker. Reading the penWidth.
    virtual void onMouseRightPressed(int x, int y)
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    Definition: IntelliTool.cpp:14
    virtual void onMouseLeftReleased(int x, int y)
    A function managing the left click Released of a Mouse. Call this in child classes!
    Definition: IntelliTool.cpp:32
    IntelliColorPicker * colorPicker
    A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors.
    Definition: IntelliTool.h:38
    virtual void onMouseLeftPressed(int x, int y)
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    Definition: IntelliTool.cpp:25
    -
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click Released of a Mouse. Call this in child classes!
    -
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c...
    -
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    - +
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click released of a mouse. Merging the fill to the active layer.
    +
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event.
    +
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click released of a mouse.
    + -
    IntelliToolPlainTool(PaintingArea *Area, IntelliColorPicker *colorPicker)
    +
    IntelliToolPlainTool(PaintingArea *Area, IntelliColorPicker *colorPicker)
    A constructor setting the general paintingArea and colorPicker.
    virtual void onMouseRightReleased(int x, int y)
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    Definition: IntelliTool.cpp:21
    -
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    +
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click pressed of a mouse. Filling the whole canvas.
    LayerObject * Canvas
    A pointer to the drawing canvas of the tool, work on this.
    Definition: IntelliTool.h:48
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    QColor getFirstColor()
    A function to read the primary selected color.
    The IntelliColorPicker manages the selected colors for one whole project.
    -
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    -
    IntelliImage * image
    Definition: PaintingArea.h:18
    -
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event. Call this in child classes!
    +
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click pressed of a mouse.Resetting the current fill.
    +
    IntelliImage * image
    Definition: PaintingArea.h:17
    +
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event.
    virtual void onMouseMoved(int x, int y)
    A function managing the mouse moved event. Call this in child classes!
    Definition: IntelliTool.cpp:41
    virtual void calculateVisiblity()=0
    An abstract function that calculates the visiblity of the Image data if needed.
    -
    virtual void onWheelScrolled(int value)
    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c...
    Definition: IntelliTool.cpp:46
    -
    virtual void drawPlain(const QColor &color)
    A function that clears the whole image in a given Color.
    +
    virtual ~IntelliToolPlainTool() override
    A Destructor.
    +
    virtual void onWheelScrolled(int value)
    A function managing the scroll event. A positive value means scrolling outwards. Call this in child c...
    Definition: IntelliTool.cpp:46
    +
    virtual void drawPlain(const QColor &color)
    A function that clears the whole image in a given Color.

    Classes

    class  IntelliToolPlainTool + The IntelliToolPlainTool class represents a tool to fill the whole canvas with one color. More...
      diff --git a/docs/html/_intelli_tool_plain_8h_source.html b/docs/html/_intelli_tool_plain_8h_source.html index f01acf5..4afbc6f 100644 --- a/docs/html/_intelli_tool_plain_8h_source.html +++ b/docs/html/_intelli_tool_plain_8h_source.html @@ -95,39 +95,43 @@ $(document).ready(function(){initNavTree('_intelli_tool_plain_8h_source.html',''
    3 
    4 #include "IntelliTool.h"
    5 #include "QColor"
    -
    6 
    - -
    8 public:
    - -
    10 
    -
    11  virtual void onMouseLeftPressed(int x, int y) override;
    -
    12  virtual void onMouseLeftReleased(int x, int y) override;
    -
    13  virtual void onMouseRightPressed(int x, int y) override;
    -
    14  virtual void onMouseRightReleased(int x, int y) override;
    -
    15 
    -
    16  virtual void onWheelScrolled(int value) override;
    -
    17 
    -
    18  virtual void onMouseMoved(int x, int y) override;
    -
    19 
    -
    20 };
    + +
    10 public:
    + +
    20  virtual ~IntelliToolPlainTool() override;
    21 
    -
    22 #endif // INTELLITOOLFLOODFILLTOOL_H
    +
    27  virtual void onMouseRightPressed(int x, int y) override;
    +
    28 
    +
    34  virtual void onMouseRightReleased(int x, int y) override;
    +
    35 
    +
    41  virtual void onMouseLeftPressed(int x, int y) override;
    +
    42 
    +
    48  virtual void onMouseLeftReleased(int x, int y) override;
    +
    49 
    +
    54  virtual void onWheelScrolled(int value) override;
    +
    55 
    +
    61  virtual void onMouseMoved(int x, int y) override;
    +
    62 
    +
    63 };
    +
    64 
    +
    65 #endif // INTELLITOOLFLOODFILLTOOL_H
    IntelliColorPicker * colorPicker
    A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors.
    Definition: IntelliTool.h:38
    -
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click Released of a Mouse. Call this in child classes!
    +
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click released of a mouse. Merging the fill to the active layer.
    PaintingArea * Area
    A pointer to the general PaintingArea to interact with.
    Definition: IntelliTool.h:33
    - -
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c...
    -
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    - -
    IntelliToolPlainTool(PaintingArea *Area, IntelliColorPicker *colorPicker)
    -
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    +
    The IntelliToolPlainTool class represents a tool to fill the whole canvas with one color.
    +
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event.
    +
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click released of a mouse.
    + +
    IntelliToolPlainTool(PaintingArea *Area, IntelliColorPicker *colorPicker)
    A constructor setting the general paintingArea and colorPicker.
    +
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click pressed of a mouse. Filling the whole canvas.
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    The IntelliColorPicker manages the selected colors for one whole project.
    -
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    -
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event. Call this in child classes!
    +
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click pressed of a mouse.Resetting the current fill.
    +
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event.
    +
    virtual ~IntelliToolPlainTool() override
    A Destructor.
    -
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c...
    +
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event.Changing edgeWidth relativ to value.
    virtual void onMouseRightPressed(int x, int y)
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    Definition: IntelliTool.cpp:14
    virtual void onMouseLeftReleased(int x, int y)
    A function managing the left click Released of a Mouse. Call this in child classes!
    Definition: IntelliTool.cpp:32
    -
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    +
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click released of a mouse.
    IntelliColorPicker * colorPicker
    A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors.
    Definition: IntelliTool.h:38
    virtual void drawLine(const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth)
    A function that draws A Line between two given Points in a given color.
    virtual void onMouseLeftPressed(int x, int y)
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    Definition: IntelliTool.cpp:25
    -
    virtual ~IntelliToolRectangle() override
    -
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    +
    virtual ~IntelliToolRectangle() override
    A Destructor.
    +
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click pressed of a mouse. Setting the originCorner and draws a rectangle...
    QColor getSecondColor()
    A function to read the secondary selected color.
    -
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    - +
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click pressed of a mouse.Resetting the current draw.
    +
    virtual void onMouseRightReleased(int x, int y)
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    Definition: IntelliTool.cpp:21
    LayerObject * Canvas
    A pointer to the drawing canvas of the tool, work on this.
    Definition: IntelliTool.h:48
    @@ -178,15 +178,15 @@ $(document).ready(function(){initNavTree('_intelli_tool_rectangle_8cpp_source.ht
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    QColor getFirstColor()
    A function to read the primary selected color.
    -
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event. Call this in child classes!
    +
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event.Drawing a rectangle to currrent mouse position.
    The IntelliColorPicker manages the selected colors for one whole project.
    -
    IntelliImage * image
    Definition: PaintingArea.h:18
    +
    IntelliImage * image
    Definition: PaintingArea.h:17
    virtual void onMouseMoved(int x, int y)
    A function managing the mouse moved event. Call this in child classes!
    Definition: IntelliTool.cpp:41
    -
    IntelliToolRectangle(PaintingArea *Area, IntelliColorPicker *colorPicker)
    +
    IntelliToolRectangle(PaintingArea *Area, IntelliColorPicker *colorPicker)
    A constructor setting the general paintingArea and colorPicker. And reading in the alphaInner and edg...
    virtual void calculateVisiblity()=0
    An abstract function that calculates the visiblity of the Image data if needed.
    -
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click Released of a Mouse. Call this in child classes!
    -
    virtual void onWheelScrolled(int value)
    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c...
    Definition: IntelliTool.cpp:46
    -
    virtual void drawPlain(const QColor &color)
    A function that clears the whole image in a given Color.
    +
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click released of a mouse. Merging the draw to the active layer.
    +
    virtual void onWheelScrolled(int value)
    A function managing the scroll event. A positive value means scrolling outwards. Call this in child c...
    Definition: IntelliTool.cpp:46
    +
    virtual void drawPlain(const QColor &color)
    A function that clears the whole image in a given Color.

    Classes

    class  IntelliToolRectangle + The IntelliToolRectangle class represents a tool to draw a rectangle. More...
      diff --git a/docs/html/_intelli_tool_rectangle_8h_source.html b/docs/html/_intelli_tool_rectangle_8h_source.html index 86f25fe..89e35c2 100644 --- a/docs/html/_intelli_tool_rectangle_8h_source.html +++ b/docs/html/_intelli_tool_rectangle_8h_source.html @@ -97,45 +97,47 @@ $(document).ready(function(){initNavTree('_intelli_tool_rectangle_8h_source.html
    5 
    6 #include "QColor"
    7 #include "QPoint"
    -
    8 
    - -
    10  void drawRectangle(QPoint otherCornor);
    -
    11 
    -
    12  QPoint originCornor;
    -
    13  int alphaInner;
    -
    14  int edgeWidth;
    -
    15 public:
    - -
    17  virtual ~IntelliToolRectangle() override;
    -
    18 
    -
    19  virtual void onMouseRightPressed(int x, int y) override;
    -
    20  virtual void onMouseRightReleased(int x, int y) override;
    -
    21  virtual void onMouseLeftPressed(int x, int y) override;
    -
    22  virtual void onMouseLeftReleased(int x, int y) override;
    -
    23 
    -
    24  virtual void onWheelScrolled(int value) override;
    -
    25 
    -
    26  virtual void onMouseMoved(int x, int y) override;
    -
    27 };
    -
    28 
    -
    29 #endif // INTELLIRECTANGLETOOL_H
    + +
    16  void drawRectangle(QPoint otherCornor);
    +
    17 
    +
    21  QPoint originCornor;
    +
    25  int alphaInner;
    +
    29  int edgeWidth;
    +
    30 public:
    + +
    40  virtual ~IntelliToolRectangle() override;
    +
    41 
    +
    47  virtual void onMouseRightPressed(int x, int y) override;
    +
    48 
    +
    54  virtual void onMouseRightReleased(int x, int y) override;
    +
    55 
    +
    61  virtual void onMouseLeftPressed(int x, int y) override;
    +
    62 
    +
    68  virtual void onMouseLeftReleased(int x, int y) override;
    +
    69 
    +
    74  virtual void onWheelScrolled(int value) override;
    +
    75 
    +
    81  virtual void onMouseMoved(int x, int y) override;
    +
    82 };
    +
    83 
    +
    84 #endif // INTELLIRECTANGLETOOL_H
    -
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c...
    -
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    +
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event.Changing edgeWidth relativ to value.
    +
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click released of a mouse.
    IntelliColorPicker * colorPicker
    A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors.
    Definition: IntelliTool.h:38
    -
    virtual ~IntelliToolRectangle() override
    -
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    +
    virtual ~IntelliToolRectangle() override
    A Destructor.
    +
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click pressed of a mouse. Setting the originCorner and draws a rectangle...
    PaintingArea * Area
    A pointer to the general PaintingArea to interact with.
    Definition: IntelliTool.h:33
    -
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    - - +
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click pressed of a mouse.Resetting the current draw.
    + +
    The IntelliToolRectangle class represents a tool to draw a rectangle.
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    -
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event. Call this in child classes!
    +
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event.Drawing a rectangle to currrent mouse position.
    The IntelliColorPicker manages the selected colors for one whole project.
    -
    IntelliToolRectangle(PaintingArea *Area, IntelliColorPicker *colorPicker)
    -
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click Released of a Mouse. Call this in child classes!
    +
    IntelliToolRectangle(PaintingArea *Area, IntelliColorPicker *colorPicker)
    A constructor setting the general paintingArea and colorPicker. And reading in the alphaInner and edg...
    +
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click released of a mouse. Merging the draw to the active layer.
    Include dependency graph for PaintingArea.cpp:
    diff --git a/docs/html/_painting_area_8cpp__incl.dot b/docs/html/_painting_area_8cpp__incl.dot index cf75007..74163ef 100644 --- a/docs/html/_painting_area_8cpp__incl.dot +++ b/docs/html/_painting_area_8cpp__incl.dot @@ -84,4 +84,10 @@ digraph "intelliphoto/src/Layer/PaintingArea.cpp" Node25 [label="Tool/IntelliToolFloodFill.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_flood_fill_8h.html",tooltip=" "]; Node25 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node25 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node26 [label="Tool/IntelliToolPolygon.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_polygon_8h.html",tooltip=" "]; + Node26 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node26 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node26 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node26 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; } diff --git a/docs/html/_painting_area_8cpp_source.html b/docs/html/_painting_area_8cpp_source.html index 73e48c7..bcb9b0e 100644 --- a/docs/html/_painting_area_8cpp_source.html +++ b/docs/html/_painting_area_8cpp_source.html @@ -108,385 +108,397 @@ $(document).ready(function(){initNavTree('_painting_area_8cpp_source.html','');}
    16 #include "Tool/IntelliToolCircle.h"
    -
    19 
    -
    20 PaintingArea::PaintingArea(int maxWidth, int maxHeight, QWidget *parent)
    -
    21  :QWidget(parent){
    -
    22  //test yout tool here and reset after accomplished test
    -
    23  this->Tool = new IntelliToolFloodFill(this, &colorPicker);
    -
    24  this->setUp(maxWidth, maxHeight);
    -
    25  //tetsing
    -
    26  this->addLayer(200,200,0,0,ImageType::Shaped_Image);
    -
    27  layerBundle[0].image->drawPlain(QColor(255,0,0,255));
    -
    28  std::vector<QPoint> polygon;
    -
    29  polygon.push_back(QPoint(100,000));
    -
    30  polygon.push_back(QPoint(200,100));
    -
    31  polygon.push_back(QPoint(100,200));
    -
    32  polygon.push_back(QPoint(000,100));
    -
    33  layerBundle[0].image->setPolygon(polygon);
    -
    34 
    -
    35  this->addLayer(200,200,150,150);
    -
    36  layerBundle[1].image->drawPlain(QColor(0,255,0,255));
    -
    37  layerBundle[1].alpha=200;
    -
    38 
    -
    39  activeLayer=1;
    -
    40 }
    -
    41 
    - -
    43  delete Tool;
    -
    44 }
    -
    45 
    -
    46 void PaintingArea::setUp(int maxWidth, int maxHeight){
    -
    47  //set standart parameter
    -
    48  this->maxWidth = maxWidth;
    -
    49  this->maxHeight = maxHeight;
    -
    50  Canvas = new QImage(maxWidth,maxHeight, QImage::Format_ARGB32);
    -
    51 
    -
    52  // Roots the widget to the top left even if resized
    -
    53  setAttribute(Qt::WA_StaticContents);
    -
    54 
    -
    55 }
    -
    56 
    -
    57 int PaintingArea::addLayer(int width, int height, int widthOffset, int heightOffset, ImageType type){
    -
    58  LayerObject newLayer;
    -
    59  newLayer.width = width;
    -
    60  newLayer.hight = height;
    -
    61  newLayer.widthOffset = widthOffset;
    -
    62  newLayer.hightOffset = heightOffset;
    -
    63  if(type==ImageType::Raster_Image){
    -
    64  newLayer.image = new IntelliRasterImage(width,height);
    -
    65  }else if(type==ImageType::Shaped_Image){
    -
    66  newLayer.image = new IntelliShapedImage(width, height);
    -
    67  }
    -
    68  newLayer.alpha = 255;
    -
    69  this->layerBundle.push_back(newLayer);
    -
    70  return static_cast<int>(layerBundle.size())-1;
    -
    71 }
    -
    72 
    + +
    20 
    +
    21 PaintingArea::PaintingArea(int maxWidth, int maxHeight, QWidget *parent)
    +
    22  :QWidget(parent){
    +
    23  // Testing Area
    +
    24  // test yout tool here and reset after accomplished test
    +
    25  this->Tool = new IntelliToolFloodFill(this, &colorPicker);
    +
    26  this->setUp(maxWidth, maxHeight);
    +
    27  this->addLayer(200,200,0,0,ImageType::Shaped_Image);
    +
    28  layerBundle[0].image->drawPlain(QColor(0,0,255,255));
    +
    29  std::vector<QPoint> polygon;
    +
    30  polygon.push_back(QPoint(100,000));
    +
    31  polygon.push_back(QPoint(200,100));
    +
    32  polygon.push_back(QPoint(100,200));
    +
    33  polygon.push_back(QPoint(000,100));
    +
    34  layerBundle[0].image->setPolygon(polygon);
    +
    35 
    +
    36  this->addLayer(200,200,150,150);
    +
    37  layerBundle[1].image->drawPlain(QColor(0,255,0,255));
    +
    38  layerBundle[1].alpha=200;
    +
    39 
    +
    40  activeLayer=0;
    +
    41 }
    +
    42 
    + +
    44  delete Tool;
    +
    45 }
    +
    46 
    +
    47 void PaintingArea::setUp(int maxWidth, int maxHeight){
    +
    48  //set standart parameter
    +
    49  this->maxWidth = maxWidth;
    +
    50  this->maxHeight = maxHeight;
    +
    51  Canvas = new QImage(maxWidth,maxHeight, QImage::Format_ARGB32);
    +
    52 
    +
    53  // Roots the widget to the top left even if resized
    +
    54  setAttribute(Qt::WA_StaticContents);
    +
    55 
    +
    56 }
    +
    57 
    +
    58 int PaintingArea::addLayer(int width, int height, int widthOffset, int heightOffset, ImageType type){
    +
    59  LayerObject newLayer;
    +
    60  newLayer.width = width;
    +
    61  newLayer.hight = height;
    +
    62  newLayer.widthOffset = widthOffset;
    +
    63  newLayer.hightOffset = heightOffset;
    +
    64  if(type==ImageType::Raster_Image){
    +
    65  newLayer.image = new IntelliRasterImage(width,height);
    +
    66  }else if(type==ImageType::Shaped_Image){
    +
    67  newLayer.image = new IntelliShapedImage(width, height);
    +
    68  }
    +
    69  newLayer.alpha = 255;
    +
    70  this->layerBundle.push_back(newLayer);
    +
    71  return static_cast<int>(layerBundle.size())-1;
    +
    72 }
    73 
    -
    74 void PaintingArea::deleteLayer(int index){
    -
    75  if(index<static_cast<int>(layerBundle.size())){
    -
    76  this->layerBundle.erase(layerBundle.begin()+index);
    -
    77  if(activeLayer>=index){
    -
    78  activeLayer--;
    -
    79  }
    -
    80  }
    -
    81 }
    -
    82 
    - -
    84  if(activeLayer>=0 && activeLayer < static_cast<int>(layerBundle.size())){
    -
    85  this->layerBundle.erase(layerBundle.begin()+activeLayer);
    -
    86  activeLayer--;
    -
    87  }
    -
    88 }
    -
    89 
    - -
    91  if(index>=0&&index<static_cast<int>(layerBundle.size())){
    -
    92  this->activeLayer=index;
    -
    93  }
    -
    94 }
    -
    95 
    -
    96 void PaintingArea::setAlphaOfLayer(int index, int alpha){
    -
    97  if(index>=0&&index<static_cast<int>(layerBundle.size())){
    -
    98  layerBundle[static_cast<size_t>(index)].alpha=alpha;
    -
    99  }
    -
    100 }
    -
    101 
    -
    102 // Used to load the image and place it in the widget
    -
    103 bool PaintingArea::open(const QString &fileName){
    -
    104  if(this->activeLayer==-1){
    -
    105  return false;
    -
    106  }
    -
    107  IntelliImage* active = layerBundle[static_cast<size_t>(activeLayer)].image;
    -
    108  bool open = active->loadImage(fileName);
    -
    109  active->calculateVisiblity();
    -
    110  update();
    -
    111  return open;
    -
    112 }
    -
    113 
    -
    114 // Save the current image
    -
    115 bool PaintingArea::save(const QString &fileName, const char *fileFormat){
    -
    116  if(layerBundle.size()==0){
    -
    117  return false;
    -
    118  }
    -
    119  this->assembleLayers(true);
    -
    120 
    -
    121  if(!strcmp(fileFormat,"PNG")){
    -
    122  QImage visibleImage = Canvas->convertToFormat(QImage::Format_Indexed8);
    -
    123  fileFormat = "png";
    -
    124  if (visibleImage.save(fileName, fileFormat)) {
    -
    125  return true;
    -
    126  } else {
    -
    127  return false;
    -
    128  }
    -
    129  }
    -
    130 
    -
    131  if (Canvas->save(fileName, fileFormat)) {
    -
    132  return true;
    -
    133  } else {
    -
    134  return false;
    -
    135  }
    -
    136 }
    -
    137 
    -
    138 // Color the image area with white
    -
    139 void PaintingArea::floodFill(int r, int g, int b, int a){
    -
    140  if(this->activeLayer==-1){
    -
    141  return;
    -
    142  }
    -
    143  IntelliImage* active = layerBundle[static_cast<size_t>(activeLayer)].image;
    -
    144  active->drawPlain(QColor(r, g, b, a));
    -
    145  update();
    -
    146 }
    -
    147 
    - -
    149  layerBundle[static_cast<size_t>(activeLayer)].widthOffset += x;
    -
    150  layerBundle[static_cast<size_t>(activeLayer)].hightOffset += y;
    -
    151 }
    -
    152 
    - -
    154  if(idx==1){
    -
    155  this->activateUpperLayer();
    -
    156  }else if(idx==-1){
    -
    157  this->activateLowerLayer();
    -
    158  }
    -
    159 }
    -
    160 
    - -
    162  if(a>=0 && a < static_cast<int>(layerBundle.size())){
    -
    163  this->setLayerToActive(a);
    -
    164  }
    -
    165 }
    -
    166 
    - -
    168  QColor clr = QColorDialog::getColor(colorPicker.getFirstColor(), nullptr, "Main Color", QColorDialog::DontUseNativeDialog);
    -
    169  this->colorPicker.setFirstColor(clr);
    -
    170 }
    -
    171 
    - -
    173  QColor clr = QColorDialog::getColor(colorPicker.getSecondColor(), nullptr, "Secondary Color", QColorDialog::DontUseNativeDialog);
    -
    174  this->colorPicker.setSecondColor(clr);
    -
    175 }
    -
    176 
    - -
    178  this->colorPicker.switchColors();
    -
    179 }
    -
    180 
    - -
    182  delete this->Tool;
    -
    183  Tool = new IntelliToolPen(this, &colorPicker);
    -
    184 }
    -
    185 
    - -
    187  delete this->Tool;
    -
    188  Tool = new IntelliToolPlainTool(this, &colorPicker);
    -
    189 }
    -
    190 
    - -
    192  delete this->Tool;
    -
    193  Tool = new IntelliToolLine(this, &colorPicker);
    -
    194 }
    -
    195 
    -
    196 // If a mouse button is pressed check if it was the
    -
    197 // left button and if so store the current position
    -
    198 // Set that we are currently drawing
    -
    199 void PaintingArea::mousePressEvent(QMouseEvent *event){
    -
    200  if(Tool == nullptr)
    -
    201  return;
    -
    202  int x = event->x()-layerBundle[activeLayer].widthOffset;
    -
    203  int y = event->y()-layerBundle[activeLayer].hightOffset;
    -
    204  if(event->button() == Qt::LeftButton){
    -
    205  Tool->onMouseLeftPressed(x, y);
    -
    206  }else if(event->button() == Qt::RightButton){
    -
    207  Tool->onMouseRightPressed(x, y);
    -
    208  }
    -
    209  update();
    -
    210 }
    -
    211 
    -
    212 // When the mouse moves if the left button is clicked
    -
    213 // we call the drawline function which draws a line
    -
    214 // from the last position to the current
    -
    215 void PaintingArea::mouseMoveEvent(QMouseEvent *event){
    -
    216  if(Tool == nullptr)
    -
    217  return;
    -
    218  int x = event->x()-layerBundle[activeLayer].widthOffset;
    -
    219  int y = event->y()-layerBundle[activeLayer].hightOffset;
    -
    220  Tool->onMouseMoved(x, y);
    -
    221  update();
    -
    222 }
    -
    223 
    -
    224 // If the button is released we set variables to stop drawing
    -
    225 void PaintingArea::mouseReleaseEvent(QMouseEvent *event){
    -
    226  if(Tool == nullptr)
    -
    227  return;
    -
    228  int x = event->x()-layerBundle[activeLayer].widthOffset;
    -
    229  int y = event->y()-layerBundle[activeLayer].hightOffset;
    -
    230  if(event->button() == Qt::LeftButton){
    -
    231  Tool->onMouseLeftReleased(x, y);
    -
    232  }else if(event->button() == Qt::RightButton){
    -
    233  Tool->onMouseRightReleased(x, y);
    -
    234  }
    -
    235  update();
    -
    236 }
    -
    237 
    -
    238 void PaintingArea::wheelEvent(QWheelEvent *event){
    -
    239  QPoint numDegrees = event->angleDelta() / 8;
    -
    240  if(!numDegrees.isNull()){
    -
    241  QPoint numSteps = numDegrees / 15;
    -
    242  Tool->onWheelScrolled(numSteps.y()*-1);
    +
    74 
    +
    75 void PaintingArea::deleteLayer(int index){
    +
    76  if(index<static_cast<int>(layerBundle.size())){
    +
    77  this->layerBundle.erase(layerBundle.begin()+index);
    +
    78  if(activeLayer>=index){
    +
    79  activeLayer--;
    +
    80  }
    +
    81  }
    +
    82 }
    +
    83 
    + +
    85  if(activeLayer>=0 && activeLayer < static_cast<int>(layerBundle.size())){
    +
    86  this->layerBundle.erase(layerBundle.begin()+activeLayer);
    +
    87  activeLayer--;
    +
    88  }
    +
    89 }
    +
    90 
    + +
    92  if(index>=0&&index<static_cast<int>(layerBundle.size())){
    +
    93  this->activeLayer=index;
    +
    94  }
    +
    95 }
    +
    96 
    +
    97 void PaintingArea::setAlphaOfLayer(int index, int alpha){
    +
    98  if(index>=0&&index<static_cast<int>(layerBundle.size())){
    +
    99  layerBundle[static_cast<size_t>(index)].alpha=alpha;
    +
    100  }
    +
    101 }
    +
    102 
    +
    103 // Used to load the image and place it in the widget
    +
    104 bool PaintingArea::open(const QString &fileName){
    +
    105  if(this->activeLayer==-1){
    +
    106  return false;
    +
    107  }
    +
    108  IntelliImage* active = layerBundle[static_cast<size_t>(activeLayer)].image;
    +
    109  bool open = active->loadImage(fileName);
    +
    110  active->calculateVisiblity();
    +
    111  update();
    +
    112  return open;
    +
    113 }
    +
    114 
    +
    115 // Save the current image
    +
    116 bool PaintingArea::save(const QString &fileName, const char *fileFormat){
    +
    117  if(layerBundle.size()==0){
    +
    118  return false;
    +
    119  }
    +
    120  this->assembleLayers(true);
    +
    121 
    +
    122  if(!strcmp(fileFormat,"PNG")){
    +
    123  QImage visibleImage = Canvas->convertToFormat(QImage::Format_Indexed8);
    +
    124  fileFormat = "png";
    +
    125  if (visibleImage.save(fileName, fileFormat)) {
    +
    126  return true;
    +
    127  } else {
    +
    128  return false;
    +
    129  }
    +
    130  }
    +
    131 
    +
    132  if (Canvas->save(fileName, fileFormat)) {
    +
    133  return true;
    +
    134  } else {
    +
    135  return false;
    +
    136  }
    +
    137 }
    +
    138 
    +
    139 // Color the image area with white
    +
    140 void PaintingArea::floodFill(int r, int g, int b, int a){
    +
    141  if(this->activeLayer==-1){
    +
    142  return;
    +
    143  }
    +
    144  IntelliImage* active = layerBundle[static_cast<size_t>(activeLayer)].image;
    +
    145  active->drawPlain(QColor(r, g, b, a));
    +
    146  update();
    +
    147 }
    +
    148 
    + +
    150  layerBundle[static_cast<size_t>(activeLayer)].widthOffset += x;
    +
    151  layerBundle[static_cast<size_t>(activeLayer)].hightOffset += y;
    +
    152 }
    +
    153 
    + +
    155  if(idx==1){
    +
    156  this->activateUpperLayer();
    +
    157  }else if(idx==-1){
    +
    158  this->activateLowerLayer();
    +
    159  }
    +
    160 }
    +
    161 
    + +
    163  if(a>=0 && a < static_cast<int>(layerBundle.size())){
    +
    164  this->setLayerToActive(a);
    +
    165  }
    +
    166 }
    +
    167 
    + +
    169  QColor clr = QColorDialog::getColor(colorPicker.getFirstColor(), nullptr, "Main Color", QColorDialog::DontUseNativeDialog);
    +
    170  this->colorPicker.setFirstColor(clr);
    +
    171 }
    +
    172 
    + +
    174  QColor clr = QColorDialog::getColor(colorPicker.getSecondColor(), nullptr, "Secondary Color", QColorDialog::DontUseNativeDialog);
    +
    175  this->colorPicker.setSecondColor(clr);
    +
    176 }
    +
    177 
    + +
    179  this->colorPicker.switchColors();
    +
    180 }
    +
    181 
    + +
    183  delete this->Tool;
    +
    184  Tool = new IntelliToolPen(this, &colorPicker);
    +
    185 }
    +
    186 
    + +
    188  delete this->Tool;
    +
    189  Tool = new IntelliToolPlainTool(this, &colorPicker);
    +
    190 }
    +
    191 
    + +
    193  delete this->Tool;
    +
    194  Tool = new IntelliToolLine(this, &colorPicker);
    +
    195 }
    +
    196 
    + +
    198  return layerBundle.operator[](activeLayer).width;
    +
    199 }
    +
    200 
    + +
    202  return layerBundle.operator[](activeLayer).hight;
    +
    203 }
    +
    204 
    +
    205 // If a mouse button is pressed check if it was the
    +
    206 // left button and if so store the current position
    +
    207 // Set that we are currently drawing
    +
    208 void PaintingArea::mousePressEvent(QMouseEvent *event){
    +
    209  if(Tool == nullptr)
    +
    210  return;
    +
    211  int x = event->x()-layerBundle[activeLayer].widthOffset;
    +
    212  int y = event->y()-layerBundle[activeLayer].hightOffset;
    +
    213  if(event->button() == Qt::LeftButton){
    +
    214  Tool->onMouseLeftPressed(x, y);
    +
    215  }else if(event->button() == Qt::RightButton){
    +
    216  Tool->onMouseRightPressed(x, y);
    +
    217  }
    +
    218  update();
    +
    219 }
    +
    220 
    +
    221 // When the mouse moves if the left button is clicked
    +
    222 // we call the drawline function which draws a line
    +
    223 // from the last position to the current
    +
    224 void PaintingArea::mouseMoveEvent(QMouseEvent *event){
    +
    225  if(Tool == nullptr)
    +
    226  return;
    +
    227  int x = event->x()-layerBundle[activeLayer].widthOffset;
    +
    228  int y = event->y()-layerBundle[activeLayer].hightOffset;
    +
    229  Tool->onMouseMoved(x, y);
    +
    230  update();
    +
    231 }
    +
    232 
    +
    233 // If the button is released we set variables to stop drawing
    +
    234 void PaintingArea::mouseReleaseEvent(QMouseEvent *event){
    +
    235  if(Tool == nullptr)
    +
    236  return;
    +
    237  int x = event->x()-layerBundle[activeLayer].widthOffset;
    +
    238  int y = event->y()-layerBundle[activeLayer].hightOffset;
    +
    239  if(event->button() == Qt::LeftButton){
    +
    240  Tool->onMouseLeftReleased(x, y);
    +
    241  }else if(event->button() == Qt::RightButton){
    +
    242  Tool->onMouseRightReleased(x, y);
    243  }
    -
    244 }
    -
    245 
    -
    246 // QPainter provides functions to draw on the widget
    -
    247 // The QPaintEvent is sent to widgets that need to
    -
    248 // update themselves
    -
    249 void PaintingArea::paintEvent(QPaintEvent *event){
    -
    250  this->assembleLayers();
    -
    251 
    -
    252  QPainter painter(this);
    -
    253  QRect dirtyRec = event->rect();
    -
    254  painter.drawImage(dirtyRec, *Canvas, dirtyRec);
    -
    255  update();
    -
    256 }
    -
    257 
    -
    258 // Resize the image to slightly larger then the main window
    -
    259 // to cut down on the need to resize the image
    -
    260 void PaintingArea::resizeEvent(QResizeEvent *event){
    -
    261  //TODO wait till tool works
    -
    262  update();
    -
    263 }
    -
    264 
    -
    265 void PaintingArea::resizeImage(QImage *image_res, const QSize &newSize){
    -
    266  //TODO implement
    -
    267 }
    -
    268 
    -
    269 void PaintingArea::activateUpperLayer(){
    -
    270  if(activeLayer!=-1 && activeLayer<layerBundle.size()-1){
    -
    271  std::swap(layerBundle[activeLayer], layerBundle[activeLayer+1]);
    -
    272  activeLayer++;
    -
    273  }
    -
    274 }
    -
    275 
    -
    276 void PaintingArea::activateLowerLayer(){
    -
    277  if(activeLayer!=-1 && activeLayer>0){
    -
    278  std::swap(layerBundle[activeLayer], layerBundle[activeLayer-1]);
    -
    279  activeLayer--;
    -
    280  }
    -
    281 }
    -
    282 
    -
    283 void PaintingArea::assembleLayers(bool forSaving){
    -
    284  if(forSaving){
    -
    285  Canvas->fill(Qt::GlobalColor::transparent);
    -
    286  }else{
    -
    287  Canvas->fill(Qt::GlobalColor::black);
    -
    288  }
    -
    289  for(size_t i=0; i<layerBundle.size(); i++){
    -
    290  LayerObject layer = layerBundle[i];
    -
    291  QImage cpy = layer.image->getDisplayable(layer.alpha);
    -
    292  QColor clr_0;
    -
    293  QColor clr_1;
    -
    294  for(int y=0; y<layer.hight; y++){
    -
    295  if(layer.hightOffset+y<0) continue;
    -
    296  if(layer.hightOffset+y>=maxHeight) break;
    -
    297  for(int x=0; x<layer.width; x++){
    -
    298  if(layer.widthOffset+x<0) continue;
    -
    299  if(layer.widthOffset+x>=maxWidth) break;
    -
    300  clr_0=Canvas->pixelColor(layer.widthOffset+x, layer.hightOffset+y);
    -
    301  clr_1=cpy.pixelColor(x,y);
    -
    302  float t = static_cast<float>(clr_1.alpha())/255.f;
    -
    303  int r =static_cast<int>(static_cast<float>(clr_1.red())*(t)+static_cast<float>(clr_0.red())*(1.f-t)+0.5f);
    -
    304  int g =static_cast<int>(static_cast<float>(clr_1.green())*(t)+static_cast<float>(clr_0.green())*(1.f-t)+0.5f);
    -
    305  int b =static_cast<int>(static_cast<float>(clr_1.blue())*(t)+static_cast<float>(clr_0.blue()*(1.f-t))+0.5f);
    -
    306  int a =std::min(clr_0.alpha()+clr_1.alpha(), 255);
    -
    307  clr_0.setRed(r);
    -
    308  clr_0.setGreen(g);
    -
    309  clr_0.setBlue(b);
    -
    310  clr_0.setAlpha(a);
    -
    311 
    -
    312  Canvas->setPixelColor(layer.widthOffset+x, layer.hightOffset+y, clr_0);
    -
    313  }
    -
    314  }
    -
    315  }
    -
    316 }
    -
    317 
    -
    318 void PaintingArea::createTempLayerAfter(int idx){
    -
    319  if(idx>=0){
    -
    320  LayerObject newLayer;
    -
    321  newLayer.alpha = 255;
    -
    322  newLayer.hight = layerBundle[idx].hight;
    -
    323  newLayer.width = layerBundle[idx].width;
    -
    324  newLayer.hightOffset = layerBundle[idx].hightOffset;
    -
    325  newLayer.widthOffset = layerBundle[idx].widthOffset;
    -
    326  newLayer.image = layerBundle[idx].image->getDeepCopy();
    -
    327  layerBundle.insert(layerBundle.begin()+idx+1,newLayer);
    -
    328  }
    -
    329 }
    +
    244  update();
    +
    245 }
    +
    246 
    +
    247 void PaintingArea::wheelEvent(QWheelEvent *event){
    +
    248  QPoint numDegrees = event->angleDelta() / 8;
    +
    249  if(!numDegrees.isNull()){
    +
    250  QPoint numSteps = numDegrees / 15;
    +
    251  Tool->onWheelScrolled(numSteps.y()*-1);
    +
    252  }
    +
    253 }
    +
    254 
    +
    255 // QPainter provides functions to draw on the widget
    +
    256 // The QPaintEvent is sent to widgets that need to
    +
    257 // update themselves
    +
    258 void PaintingArea::paintEvent(QPaintEvent *event){
    +
    259  this->assembleLayers();
    +
    260 
    +
    261  QPainter painter(this);
    +
    262  QRect dirtyRec = event->rect();
    +
    263  painter.drawImage(dirtyRec, *Canvas, dirtyRec);
    +
    264  update();
    +
    265 }
    +
    266 
    +
    267 // Resize the image to slightly larger then the main window
    +
    268 // to cut down on the need to resize the image
    +
    269 void PaintingArea::resizeEvent(QResizeEvent *event){
    +
    270  //TODO wait till tool works
    +
    271  update();
    +
    272 }
    +
    273 
    +
    274 void PaintingArea::resizeImage(QImage *image_res, const QSize &newSize){
    +
    275  //TODO implement
    +
    276 }
    +
    277 
    +
    278 void PaintingArea::activateUpperLayer(){
    +
    279  if(activeLayer!=-1 && activeLayer<layerBundle.size()-1){
    +
    280  std::swap(layerBundle[activeLayer], layerBundle[activeLayer+1]);
    +
    281  activeLayer++;
    +
    282  }
    +
    283 }
    +
    284 
    +
    285 void PaintingArea::activateLowerLayer(){
    +
    286  if(activeLayer!=-1 && activeLayer>0){
    +
    287  std::swap(layerBundle[activeLayer], layerBundle[activeLayer-1]);
    +
    288  activeLayer--;
    +
    289  }
    +
    290 }
    +
    291 
    +
    292 void PaintingArea::assembleLayers(bool forSaving){
    +
    293  if(forSaving){
    +
    294  Canvas->fill(Qt::GlobalColor::transparent);
    +
    295  }else{
    +
    296  Canvas->fill(Qt::GlobalColor::black);
    +
    297  }
    +
    298  for(size_t i=0; i<layerBundle.size(); i++){
    +
    299  LayerObject layer = layerBundle[i];
    +
    300  QImage cpy = layer.image->getDisplayable(layer.alpha);
    +
    301  QColor clr_0;
    +
    302  QColor clr_1;
    +
    303  for(int y=0; y<layer.hight; y++){
    +
    304  if(layer.hightOffset+y<0) continue;
    +
    305  if(layer.hightOffset+y>=maxHeight) break;
    +
    306  for(int x=0; x<layer.width; x++){
    +
    307  if(layer.widthOffset+x<0) continue;
    +
    308  if(layer.widthOffset+x>=maxWidth) break;
    +
    309  clr_0=Canvas->pixelColor(layer.widthOffset+x, layer.hightOffset+y);
    +
    310  clr_1=cpy.pixelColor(x,y);
    +
    311  float t = static_cast<float>(clr_1.alpha())/255.f;
    +
    312  int r =static_cast<int>(static_cast<float>(clr_1.red())*(t)+static_cast<float>(clr_0.red())*(1.f-t)+0.5f);
    +
    313  int g =static_cast<int>(static_cast<float>(clr_1.green())*(t)+static_cast<float>(clr_0.green())*(1.f-t)+0.5f);
    +
    314  int b =static_cast<int>(static_cast<float>(clr_1.blue())*(t)+static_cast<float>(clr_0.blue()*(1.f-t))+0.5f);
    +
    315  int a =std::min(clr_0.alpha()+clr_1.alpha(), 255);
    +
    316  clr_0.setRed(r);
    +
    317  clr_0.setGreen(g);
    +
    318  clr_0.setBlue(b);
    +
    319  clr_0.setAlpha(a);
    +
    320 
    +
    321  Canvas->setPixelColor(layer.widthOffset+x, layer.hightOffset+y, clr_0);
    +
    322  }
    +
    323  }
    +
    324  }
    +
    325 }
    +
    326 
    +
    327 void PaintingArea::createTempLayerAfter(int idx){
    +
    328  if(idx>=0){
    +
    329  LayerObject newLayer;
    +
    330  newLayer.alpha = 255;
    +
    331  newLayer.hight = layerBundle[idx].hight;
    +
    332  newLayer.width = layerBundle[idx].width;
    +
    333  newLayer.hightOffset = layerBundle[idx].hightOffset;
    +
    334  newLayer.widthOffset = layerBundle[idx].widthOffset;
    +
    335  newLayer.image = layerBundle[idx].image->getDeepCopy();
    +
    336  layerBundle.insert(layerBundle.begin()+idx+1,newLayer);
    +
    337  }
    +
    338 }
    virtual void onMouseRightPressed(int x, int y)
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    Definition: IntelliTool.cpp:14
    virtual void onMouseLeftReleased(int x, int y)
    A function managing the left click Released of a Mouse. Call this in child classes!
    Definition: IntelliTool.cpp:32
    ImageType
    The Types, which an Image can be.
    Definition: IntelliImage.h:14
    -
    int addLayer(int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
    -
    void mouseReleaseEvent(QMouseEvent *event) override
    +
    int addLayer(int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
    +
    int getWidthActiveLayer()
    +
    void mouseReleaseEvent(QMouseEvent *event) override
    +
    virtual void onMouseLeftPressed(int x, int y)
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    Definition: IntelliTool.cpp:25
    -
    bool open(const QString &fileName)
    - +
    bool open(const QString &fileName)
    +
    virtual bool loadImage(const QString &fileName)
    A function that loads and sclaes an image to the fitting dimensions.
    -
    void setLayerToActive(int index)
    -
    void floodFill(int r, int g, int b, int a)
    - +
    void setLayerToActive(int index)
    +
    int getHeightActiveLayer()
    +
    void floodFill(int r, int g, int b, int a)
    +
    The IntelliToolPlainTool class represents a tool to fill the whole canvas with one color.
    void setSecondColor(QColor Color)
    A function to set the secondary color.
    The IntelliShapedImage manages a Shapedimage.
    QColor getSecondColor()
    A function to read the secondary selected color.
    -
    bool save(const QString &fileName, const char *fileFormat)
    +
    bool save(const QString &fileName, const char *fileFormat)
    void switchColors()
    A function switching primary and secondary color.
    virtual QImage getDisplayable(const QSize &displaySize, int alpha)=0
    A function returning the displayable ImageData in a requested transparence and size.
    -
    void createPlainTool()
    -
    void wheelEvent(QWheelEvent *event) override
    - -
    void deleteLayer(int index)
    -
    void createPenTool()
    +
    void createPlainTool()
    +
    void wheelEvent(QWheelEvent *event) override
    + +
    void deleteLayer(int index)
    +
    void createPenTool()
    -
    void mousePressEvent(QMouseEvent *event) override
    +
    void mousePressEvent(QMouseEvent *event) override
    - -
    void createLineTool()
    + +
    void createLineTool()
    - -
    void colorPickerSetSecondColor()
    +
    The IntelliToolPen class represents a tool to draw a line.
    +
    void colorPickerSetSecondColor()
    virtual void onMouseRightReleased(int x, int y)
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    Definition: IntelliTool.cpp:21
    -
    void colorPickerSetFirstColor()
    -
    void colorPickerSwitchColor()
    - +
    void colorPickerSetFirstColor()
    +
    void colorPickerSwitchColor()
    + -
    ~PaintingArea() override
    -
    void mouseMoveEvent(QMouseEvent *event) override
    +
    ~PaintingArea() override
    +
    void mouseMoveEvent(QMouseEvent *event) override
    void setFirstColor(QColor Color)
    A function to set the primary color.
    -
    void slotDeleteActiveLayer()
    +
    void slotDeleteActiveLayer()
    -
    void moveActiveLayer(int idx)
    -
    PaintingArea(int maxWidth=600, int maxHeight=600, QWidget *parent=nullptr)
    +
    void moveActiveLayer(int idx)
    +
    PaintingArea(int maxWidth=600, int maxHeight=600, QWidget *parent=nullptr)
    QColor getFirstColor()
    A function to read the primary selected color.
    - -
    void slotActivateLayer(int a)
    -
    void paintEvent(QPaintEvent *event) override
    -
    void setAlphaOfLayer(int index, int alpha)
    -
    IntelliImage * image
    Definition: PaintingArea.h:18
    -
    void resizeEvent(QResizeEvent *event) override
    - + +
    void slotActivateLayer(int a)
    +
    void paintEvent(QPaintEvent *event) override
    +
    void setAlphaOfLayer(int index, int alpha)
    +
    IntelliImage * image
    Definition: PaintingArea.h:17
    +
    void resizeEvent(QResizeEvent *event) override
    +
    The IntelliToolFloodFill class represents a tool to flood FIll a certian area.
    -
    void movePositionActive(int x, int y)
    +
    void movePositionActive(int x, int y)
    An abstract class which manages the basic IntelliImage operations.
    Definition: IntelliImage.h:24
    virtual void onMouseMoved(int x, int y)
    A function managing the mouse moved event. Call this in child classes!
    Definition: IntelliTool.cpp:41
    - +
    virtual void calculateVisiblity()=0
    An abstract function that calculates the visiblity of the Image data if needed.
    -
    virtual void onWheelScrolled(int value)
    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c...
    Definition: IntelliTool.cpp:46
    +
    virtual void onWheelScrolled(int value)
    A function managing the scroll event. A positive value means scrolling outwards. Call this in child c...
    Definition: IntelliTool.cpp:46
    The IntelliRasterImage manages a Rasterimage.
    -
    virtual void drawPlain(const QColor &color)
    A function that clears the whole image in a given Color.
    - +
    virtual void drawPlain(const QColor &color)
    A function that clears the whole image in a given Color.
    +
    The IntelliToolFloodFill class represents a tool to draw a line.
    ImageType
    The Types, which an Image can be.
    Definition: IntelliImage.h:14
    -
    int addLayer(int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
    -
    void mouseReleaseEvent(QMouseEvent *event) override
    +
    int addLayer(int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
    +
    int getWidthActiveLayer()
    +
    void mouseReleaseEvent(QMouseEvent *event) override
    -
    bool open(const QString &fileName)
    - -
    void setLayerToActive(int index)
    -
    void floodFill(int r, int g, int b, int a)
    -
    bool save(const QString &fileName, const char *fileFormat)
    -
    void createPlainTool()
    -
    void wheelEvent(QWheelEvent *event) override
    - - -
    void deleteLayer(int index)
    -
    void createPenTool()
    -
    void mousePressEvent(QMouseEvent *event) override
    +
    bool open(const QString &fileName)
    + +
    void setLayerToActive(int index)
    +
    int getHeightActiveLayer()
    +
    void floodFill(int r, int g, int b, int a)
    +
    bool save(const QString &fileName, const char *fileFormat)
    +
    void createPlainTool()
    +
    void wheelEvent(QWheelEvent *event) override
    + + +
    void deleteLayer(int index)
    +
    void createPenTool()
    +
    void mousePressEvent(QMouseEvent *event) override
    - -
    void createLineTool()
    -
    void colorPickerSetSecondColor()
    -
    void colorPickerSetFirstColor()
    -
    void colorPickerSwitchColor()
    + +
    void createLineTool()
    +
    void colorPickerSetSecondColor()
    +
    void colorPickerSetFirstColor()
    +
    void colorPickerSwitchColor()
    - -
    ~PaintingArea() override
    -
    void mouseMoveEvent(QMouseEvent *event) override
    + +
    ~PaintingArea() override
    +
    void mouseMoveEvent(QMouseEvent *event) override
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    -
    void slotDeleteActiveLayer()
    +
    void slotDeleteActiveLayer()
    int addLayerAt(int idx, int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
    -
    void moveActiveLayer(int idx)
    -
    PaintingArea(int maxWidth=600, int maxHeight=600, QWidget *parent=nullptr)
    - -
    void slotActivateLayer(int a)
    +
    void moveActiveLayer(int idx)
    +
    PaintingArea(int maxWidth=600, int maxHeight=600, QWidget *parent=nullptr)
    + +
    void slotActivateLayer(int a)
    The IntelliColorPicker manages the selected colors for one whole project.
    -
    void paintEvent(QPaintEvent *event) override
    -
    void setAlphaOfLayer(int index, int alpha)
    -
    IntelliImage * image
    Definition: PaintingArea.h:18
    -
    void resizeEvent(QResizeEvent *event) override
    -
    void movePositionActive(int x, int y)
    +
    void paintEvent(QPaintEvent *event) override
    +
    void setAlphaOfLayer(int index, int alpha)
    +
    IntelliImage * image
    Definition: PaintingArea.h:17
    +
    void resizeEvent(QResizeEvent *event) override
    +
    void movePositionActive(int x, int y)
    An abstract class which manages the basic IntelliImage operations.
    Definition: IntelliImage.h:24
    - +
    virtual ~IntelliColorPicker()
    IntelliColorPicker destructor clears up his used memory, if there is some.
    QColor getSecondColor()
    A function to read the secondary selected color.
    - +
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    QColor getFirstColor()
    A function to read the primary selected color.
    -
    IntelliColorPicker()
    IntelliColorPicker construktor, setting 2 preset colors, be careful, theese color may change in produ...
    +
    IntelliColorPicker()
    IntelliColorPicker constructor, setting 2 preset colors, be careful, theese color may change in produ...
    diff --git a/docs/html/annotated_dup.js b/docs/html/annotated_dup.js index d45d0e3..a58b9a8 100644 --- a/docs/html/annotated_dup.js +++ b/docs/html/annotated_dup.js @@ -11,6 +11,7 @@ var annotated_dup = [ "IntelliToolLine", "class_intelli_tool_line.html", "class_intelli_tool_line" ], [ "IntelliToolPen", "class_intelli_tool_pen.html", "class_intelli_tool_pen" ], [ "IntelliToolPlainTool", "class_intelli_tool_plain_tool.html", "class_intelli_tool_plain_tool" ], + [ "IntelliToolPolygon", "class_intelli_tool_polygon.html", "class_intelli_tool_polygon" ], [ "IntelliToolRectangle", "class_intelli_tool_rectangle.html", "class_intelli_tool_rectangle" ], [ "LayerObject", "struct_layer_object.html", "struct_layer_object" ], [ "PaintingArea", "class_painting_area.html", "class_painting_area" ], diff --git a/docs/html/class_intelli_color_picker.html b/docs/html/class_intelli_color_picker.html index f7170f8..e004316 100644 --- a/docs/html/class_intelli_color_picker.html +++ b/docs/html/class_intelli_color_picker.html @@ -102,7 +102,7 @@ $(document).ready(function(){initNavTree('class_intelli_color_picker.html','');}

    Public Member Functions

     IntelliColorPicker () - IntelliColorPicker construktor, setting 2 preset colors, be careful, theese color may change in production. More...
    IntelliColorPicker constructor, setting 2 preset colors, be careful, theese color may change in production. More...
      virtual ~IntelliColorPicker ()  IntelliColorPicker destructor clears up his used memory, if there is some. More...
    @@ -143,7 +143,7 @@ Public Member Functions
    -

    IntelliColorPicker construktor, setting 2 preset colors, be careful, theese color may change in production.

    +

    IntelliColorPicker constructor, setting 2 preset colors, be careful, theese color may change in production.

    Definition at line 3 of file IntelliColorPicker.cpp.

    diff --git a/docs/html/class_intelli_color_picker_aae2eb27b928fe9388b9398b0556303b7_icgraph.dot b/docs/html/class_intelli_color_picker_aae2eb27b928fe9388b9398b0556303b7_icgraph.dot index 23bc868..518b1da 100644 --- a/docs/html/class_intelli_color_picker_aae2eb27b928fe9388b9398b0556303b7_icgraph.dot +++ b/docs/html/class_intelli_color_picker_aae2eb27b928fe9388b9398b0556303b7_icgraph.dot @@ -8,15 +8,19 @@ digraph "IntelliColorPicker::getFirstColor" Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="PaintingArea::colorPicker\lSetFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a4735d4cf1dc58a9096d904e74c39c4df",tooltip=" "]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node3 [label="IntelliToolPolygon\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolFloodFill\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node4 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9",tooltip="A function managing the left click pressed of a mouse. Filling the whole canvas."]; Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node5 [label="IntelliToolFloodFill\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961",tooltip="A function managing the left click pressed of a mouse. Sets the point to flood fill around and does t..."]; Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node6 [label="IntelliToolLine::onMouse\lLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node6 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205",tooltip="A function managing the left click pressed of a mouse. Starting the drawing procedure."]; Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node7 [label="IntelliToolPen::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node7 [label="IntelliToolLine::onMouse\lLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846",tooltip="A function managing the left click pressed of a mouse. Sets the starting point of the line."]; Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node8 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node8 [label="IntelliToolPolygon\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node1 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="IntelliToolPen::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2",tooltip="A function managing the mouse moved event. To draw the line."]; + Node1 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip="A function managing the mouse moved event. Drawing a Line from the startpoint to the current mouse po..."]; } diff --git a/docs/html/class_intelli_image.html b/docs/html/class_intelli_image.html index c7a05f1..c3d302a 100644 --- a/docs/html/class_intelli_image.html +++ b/docs/html/class_intelli_image.html @@ -420,7 +420,7 @@ Here is the caller graph for this function:
    -

    Definition at line 77 of file IntelliImage.cpp.

    +

    Definition at line 76 of file IntelliImage.cpp.

    Here is the caller graph for this function:
    @@ -480,6 +480,11 @@ Here is the caller graph for this function:

    Definition at line 55 of file IntelliImage.cpp.

    +
    +Here is the caller graph for this function:
    +
    +
    +
    @@ -631,7 +636,7 @@ Here is the caller graph for this function:
    Returns
    The color of the Pixel as QColor.
    -

    Definition at line 81 of file IntelliImage.cpp.

    +

    Definition at line 80 of file IntelliImage.cpp.

    Here is the caller graph for this function:
    diff --git a/docs/html/class_intelli_image_a2e787f1b333b59401643936ebb3dcfe1_icgraph.dot b/docs/html/class_intelli_image_a2e787f1b333b59401643936ebb3dcfe1_icgraph.dot new file mode 100644 index 0000000..ebea63b --- /dev/null +++ b/docs/html/class_intelli_image_a2e787f1b333b59401643936ebb3dcfe1_icgraph.dot @@ -0,0 +1,12 @@ +digraph "IntelliImage::drawPoint" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="IntelliImage::drawPoint",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A."]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliToolPolygon\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliToolLine::onMouse\lLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846",tooltip="A function managing the left click pressed of a mouse. Sets the starting point of the line."]; +} diff --git a/docs/html/class_intelli_image_a4576ebb6d863321c816293d7b7f9fd3f_icgraph.dot b/docs/html/class_intelli_image_a4576ebb6d863321c816293d7b7f9fd3f_icgraph.dot index d61839c..c27fd6d 100644 --- a/docs/html/class_intelli_image_a4576ebb6d863321c816293d7b7f9fd3f_icgraph.dot +++ b/docs/html/class_intelli_image_a4576ebb6d863321c816293d7b7f9fd3f_icgraph.dot @@ -6,5 +6,5 @@ digraph "IntelliImage::getPixelColor" rankdir="RL"; Node1 [label="IntelliImage::getPixelColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function that returns the pixelcolor at a certain point."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliToolFloodFill\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node2 [label="IntelliToolFloodFill\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961",tooltip="A function managing the left click pressed of a mouse. Sets the point to flood fill around and does t..."]; } diff --git a/docs/html/class_intelli_image_a6be622810dc2bc756054bb5769becb06_icgraph.dot b/docs/html/class_intelli_image_a6be622810dc2bc756054bb5769becb06_icgraph.dot index fd6442b..d5716af 100644 --- a/docs/html/class_intelli_image_a6be622810dc2bc756054bb5769becb06_icgraph.dot +++ b/docs/html/class_intelli_image_a6be622810dc2bc756054bb5769becb06_icgraph.dot @@ -8,11 +8,13 @@ digraph "IntelliImage::drawPlain" Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="PaintingArea::floodFill",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#aeb5eb394b979ea90f2be9849fdda1774",tooltip=" "]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node3 [label="IntelliToolPolygon\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolCircle::\lonMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#a90ee58c5390a86afc75c14ca79b91d7b",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node4 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9",tooltip="A function managing the left click pressed of a mouse. Filling the whole canvas."]; Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliToolRectangle\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#a4b5931071e21eb6949ffe357315e408b",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node5 [label="IntelliToolRectangle\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#a4b5931071e21eb6949ffe357315e408b",tooltip="A function managing the mouse moved event.Drawing a rectangle to currrent mouse position."]; Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node6 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node6 [label="IntelliToolCircle::\lonMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#a90ee58c5390a86afc75c14ca79b91d7b",tooltip="A function managing the mouse moved event. Draws a circle with radius of eulerian norm of mouse posit..."]; + Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip="A function managing the mouse moved event. Drawing a Line from the startpoint to the current mouse po..."]; } diff --git a/docs/html/class_intelli_image_aebbced93f4744fad81b7f141b21f4ab2_icgraph.dot b/docs/html/class_intelli_image_aebbced93f4744fad81b7f141b21f4ab2_icgraph.dot index ceb7594..a28d0a3 100644 --- a/docs/html/class_intelli_image_aebbced93f4744fad81b7f141b21f4ab2_icgraph.dot +++ b/docs/html/class_intelli_image_aebbced93f4744fad81b7f141b21f4ab2_icgraph.dot @@ -6,59 +6,65 @@ digraph "IntelliImage::calculateVisiblity" rankdir="RL"; Node1 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node2 [label="IntelliToolPolygon\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolFloodFill\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node3 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9",tooltip="A function managing the left click pressed of a mouse. Filling the whole canvas."]; Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node4 [label="IntelliToolFloodFill\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961",tooltip="A function managing the left click pressed of a mouse. Sets the point to flood fill around and does t..."]; Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliToolCircle::\lonMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#ae883b8ae833c78a8867e626c600f9639",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node5 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205",tooltip="A function managing the left click pressed of a mouse. Starting the drawing procedure."]; Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node6 [label="IntelliToolRectangle\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#ae03c307ccf66cbe3fd59e3657712368d",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node6 [label="IntelliToolRectangle\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#ae03c307ccf66cbe3fd59e3657712368d",tooltip="A function managing the left click pressed of a mouse. Setting the originCorner and draws a rectangle..."]; Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node7 [label="IntelliToolLine::onMouse\lLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node7 [label="IntelliToolCircle::\lonMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#ae883b8ae833c78a8867e626c600f9639",tooltip="A function managing the left click pressed of a mouse. Sets the middle point of the cricle."]; Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node8 [label="IntelliTool::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; - Node8 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node9 [label="PaintingArea::mousePress\lEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15",tooltip=" "]; - Node8 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node8 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node8 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node8 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node8 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node8 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node1 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node10 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; - Node10 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node11 [label="PaintingArea::mouseRelease\lEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a35b5df914acb608cc29717659793359c",tooltip=" "]; - Node10 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node12 [label="IntelliToolPlainTool\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ac23f5d0f07e42fd7c2ea3fc1347da400",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; - Node10 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node13 [label="IntelliToolFloodFill\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#a7438ef96c6c36068bce76e2364e8594c",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; - Node10 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node14 [label="IntelliToolPen::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#abda7a22b9766fa4ad254324a53cab94d",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; - Node10 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node15 [label="IntelliToolCircle::\lonMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#ad8e438ec997c57262b5efc2db4cee1a3",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; - Node10 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node16 [label="IntelliToolRectangle\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#a94460e3ff1c19e80bde922c55f53cc43",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; - Node10 -> Node17 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node17 [label="IntelliToolLine::onMouse\lLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#ac93f76ff20a1c111a403b298bab02482",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; - Node1 -> Node18 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node18 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639",tooltip="A function managing the mouse moved event. Call this in child classes!"]; - Node18 -> Node19 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node19 [label="PaintingArea::mouseMoveEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#aa22e274b6094a9619f196cd7b49526b5",tooltip=" "]; - Node18 -> Node20 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node20 [label="IntelliToolPlainTool\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ad7546a6335bb3bb4cbf0e1883788d41c",tooltip="A function managing the mouse moved event. Call this in child classes!"]; - Node18 -> Node21 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node21 [label="IntelliToolFloodFill\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#a3cd42cea99bc7583875abcc0c274c668",tooltip="A function managing the mouse moved event. Call this in child classes!"]; - Node18 -> Node22 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node22 [label="IntelliToolPen::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2",tooltip="A function managing the mouse moved event. Call this in child classes!"]; - Node18 -> Node23 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node23 [label="IntelliToolCircle::\lonMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#a90ee58c5390a86afc75c14ca79b91d7b",tooltip="A function managing the mouse moved event. Call this in child classes!"]; - Node18 -> Node24 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node24 [label="IntelliToolRectangle\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#a4b5931071e21eb6949ffe357315e408b",tooltip="A function managing the mouse moved event. Call this in child classes!"]; - Node18 -> Node25 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node25 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip="A function managing the mouse moved event. Call this in child classes!"]; - Node1 -> Node26 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node26 [label="PaintingArea::open",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a1f597740b4d7b4bc2e24c51f8cb0b6eb",tooltip=" "]; + Node8 [label="IntelliToolLine::onMouse\lLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846",tooltip="A function managing the left click pressed of a mouse. Sets the starting point of the line."]; + Node1 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="IntelliTool::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node9 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="PaintingArea::mousePress\lEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15",tooltip=" "]; + Node9 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="IntelliToolPolygon\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node1 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node12 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="PaintingArea::mouseRelease\lEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a35b5df914acb608cc29717659793359c",tooltip=" "]; + Node12 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="IntelliToolPlainTool\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ac23f5d0f07e42fd7c2ea3fc1347da400",tooltip="A function managing the left click released of a mouse. Merging the fill to the active layer."]; + Node12 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="IntelliToolFloodFill\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#a7438ef96c6c36068bce76e2364e8594c",tooltip="A function managing the left click released of a mouse."]; + Node12 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="IntelliToolPen::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#abda7a22b9766fa4ad254324a53cab94d",tooltip="A function managing the left click released of a mouse. Merging the drawing to the active layer."]; + Node12 -> Node17 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="IntelliToolRectangle\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#a94460e3ff1c19e80bde922c55f53cc43",tooltip="A function managing the left click released of a mouse. Merging the draw to the active layer."]; + Node12 -> Node18 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 [label="IntelliToolCircle::\lonMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#ad8e438ec997c57262b5efc2db4cee1a3",tooltip="A function managing the left click released of a mouse."]; + Node12 -> Node19 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 [label="IntelliToolLine::onMouse\lLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#ac93f76ff20a1c111a403b298bab02482",tooltip="A function managing the left click released of a mouse."]; + Node1 -> Node20 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node20 -> Node21 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node21 [label="PaintingArea::mouseMoveEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#aa22e274b6094a9619f196cd7b49526b5",tooltip=" "]; + Node20 -> Node22 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node22 [label="IntelliToolPlainTool\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ad7546a6335bb3bb4cbf0e1883788d41c",tooltip="A function managing the mouse moved event."]; + Node20 -> Node23 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node23 [label="IntelliToolFloodFill\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#a3cd42cea99bc7583875abcc0c274c668",tooltip="A function managing the mouse moved event."]; + Node20 -> Node24 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node24 [label="IntelliToolPen::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2",tooltip="A function managing the mouse moved event. To draw the line."]; + Node20 -> Node25 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node25 [label="IntelliToolRectangle\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#a4b5931071e21eb6949ffe357315e408b",tooltip="A function managing the mouse moved event.Drawing a rectangle to currrent mouse position."]; + Node20 -> Node26 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node26 [label="IntelliToolCircle::\lonMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#a90ee58c5390a86afc75c14ca79b91d7b",tooltip="A function managing the mouse moved event. Draws a circle with radius of eulerian norm of mouse posit..."]; + Node20 -> Node27 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node27 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip="A function managing the mouse moved event. Drawing a Line from the startpoint to the current mouse po..."]; + Node1 -> Node28 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node28 [label="PaintingArea::open",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a1f597740b4d7b4bc2e24c51f8cb0b6eb",tooltip=" "]; } diff --git a/docs/html/class_intelli_image_af3c859f5c409e37051edfd9e9fbca056_icgraph.dot b/docs/html/class_intelli_image_af3c859f5c409e37051edfd9e9fbca056_icgraph.dot index 4668f21..d91134d 100644 --- a/docs/html/class_intelli_image_af3c859f5c409e37051edfd9e9fbca056_icgraph.dot +++ b/docs/html/class_intelli_image_af3c859f5c409e37051edfd9e9fbca056_icgraph.dot @@ -6,7 +6,9 @@ digraph "IntelliImage::drawPixel" rankdir="RL"; Node1 [label="IntelliImage::drawPixel",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A funtcion used to draw a pixel on the Image with the given Color."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliToolFloodFill\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node2 [label="IntelliToolFloodFill\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961",tooltip="A function managing the left click pressed of a mouse. Sets the point to flood fill around and does t..."]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node3 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205",tooltip="A function managing the left click pressed of a mouse. Starting the drawing procedure."]; + Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliToolPolygon\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; } diff --git a/docs/html/class_intelli_image_af8eddbd9aa54c8d37590d1d4bf8dce31_icgraph.dot b/docs/html/class_intelli_image_af8eddbd9aa54c8d37590d1d4bf8dce31_icgraph.dot index 96319e9..660dc65 100644 --- a/docs/html/class_intelli_image_af8eddbd9aa54c8d37590d1d4bf8dce31_icgraph.dot +++ b/docs/html/class_intelli_image_af8eddbd9aa54c8d37590d1d4bf8dce31_icgraph.dot @@ -6,9 +6,9 @@ digraph "IntelliImage::drawLine" rankdir="RL"; Node1 [label="IntelliImage::drawLine",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function that draws A Line between two given Points in a given color."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliToolLine::onMouse\lLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node2 [label="IntelliToolPolygon\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolPen::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node3 [label="IntelliToolPen::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2",tooltip="A function managing the mouse moved event. To draw the line."]; Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node4 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip="A function managing the mouse moved event. Drawing a Line from the startpoint to the current mouse po..."]; } diff --git a/docs/html/class_intelli_photo_gui.html b/docs/html/class_intelli_photo_gui.html index b934224..152a525 100644 --- a/docs/html/class_intelli_photo_gui.html +++ b/docs/html/class_intelli_photo_gui.html @@ -165,7 +165,7 @@ Protected Member Functions
    -

    Definition at line 24 of file IntelliPhotoGui.cpp.

    +

    Definition at line 26 of file IntelliPhotoGui.cpp.

    diff --git a/docs/html/class_intelli_tool.html b/docs/html/class_intelli_tool.html index ac45dbf..a58a7b2 100644 --- a/docs/html/class_intelli_tool.html +++ b/docs/html/class_intelli_tool.html @@ -131,7 +131,7 @@ Public Member Functions  A function managing the left click Released of a Mouse. Call this in child classes! More...
      virtual void onWheelScrolled (int value) - A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes! More...
    + A function managing the scroll event. A positive value means scrolling outwards. Call this in child classes! More...
      virtual void onMouseMoved (int x, int y)  A function managing the mouse moved event. Call this in child classes! More...
    @@ -190,7 +190,7 @@ Protected Attributes
    Parameters
    - +
    Area- The general PaintingArea used by the project.
    colorPicker- The general colorPicker used by the project
    colorPicker- The general colorPicker used by the project.
    @@ -266,13 +266,13 @@ Protected Attributes

    A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes!

    Parameters
    - - + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.
    -

    Reimplemented in IntelliToolLine, IntelliToolRectangle, IntelliToolCircle, IntelliToolPen, IntelliToolFloodFill, and IntelliToolPlainTool.

    +

    Reimplemented in IntelliToolLine, IntelliToolCircle, IntelliToolRectangle, IntelliToolPen, IntelliToolFloodFill, IntelliToolPlainTool, and IntelliToolPolygon.

    Definition at line 25 of file IntelliTool.cpp.

    @@ -325,13 +325,13 @@ Here is the caller graph for this function:

    A function managing the left click Released of a Mouse. Call this in child classes!

    Parameters
    - - + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.
    -

    Reimplemented in IntelliToolLine, IntelliToolRectangle, IntelliToolCircle, IntelliToolPen, IntelliToolFloodFill, and IntelliToolPlainTool.

    +

    Reimplemented in IntelliToolLine, IntelliToolCircle, IntelliToolRectangle, IntelliToolPen, IntelliToolFloodFill, IntelliToolPlainTool, and IntelliToolPolygon.

    Definition at line 32 of file IntelliTool.cpp.

    @@ -384,13 +384,13 @@ Here is the caller graph for this function:

    A function managing the mouse moved event. Call this in child classes!

    Parameters
    - - + +
    x- The x coordinate of the new Mouse Position.
    y- The y coordinate of the new Mouse Position.
    x- The x coordinate of the new mouse position.
    y- The y coordinate of the new mouse position.
    -

    Reimplemented in IntelliToolLine, IntelliToolRectangle, IntelliToolCircle, IntelliToolPen, IntelliToolFloodFill, and IntelliToolPlainTool.

    +

    Reimplemented in IntelliToolLine, IntelliToolCircle, IntelliToolRectangle, IntelliToolPen, IntelliToolFloodFill, IntelliToolPlainTool, and IntelliToolPolygon.

    Definition at line 41 of file IntelliTool.cpp.

    @@ -443,13 +443,13 @@ Here is the caller graph for this function:

    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes!

    Parameters
    - - + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.
    -

    Reimplemented in IntelliToolLine, IntelliToolRectangle, IntelliToolCircle, IntelliToolPen, IntelliToolFloodFill, and IntelliToolPlainTool.

    +

    Reimplemented in IntelliToolLine, IntelliToolCircle, IntelliToolRectangle, IntelliToolPen, IntelliToolFloodFill, IntelliToolPlainTool, and IntelliToolPolygon.

    Definition at line 14 of file IntelliTool.cpp.

    @@ -497,13 +497,13 @@ Here is the caller graph for this function:

    A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes!

    Parameters
    - - + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.
    -

    Reimplemented in IntelliToolLine, IntelliToolRectangle, IntelliToolCircle, IntelliToolPen, IntelliToolFloodFill, and IntelliToolPlainTool.

    +

    Reimplemented in IntelliToolLine, IntelliToolCircle, IntelliToolRectangle, IntelliToolPen, IntelliToolFloodFill, IntelliToolPlainTool, and IntelliToolPolygon.

    Definition at line 21 of file IntelliTool.cpp.

    @@ -538,7 +538,7 @@ Here is the caller graph for this function:
    -

    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes!

    +

    A function managing the scroll event. A positive value means scrolling outwards. Call this in child classes!

    Parameters
    @@ -546,7 +546,7 @@ Here is the caller graph for this function: -

    Reimplemented in IntelliToolLine, IntelliToolRectangle, IntelliToolCircle, IntelliToolPen, IntelliToolFloodFill, and IntelliToolPlainTool.

    +

    Reimplemented in IntelliToolLine, IntelliToolCircle, IntelliToolRectangle, IntelliToolPen, IntelliToolFloodFill, IntelliToolPlainTool, and IntelliToolPolygon.

    Definition at line 46 of file IntelliTool.cpp.

    diff --git a/docs/html/class_intelli_tool__inherit__graph.dot b/docs/html/class_intelli_tool__inherit__graph.dot index 30ebbe1..9f14209 100644 --- a/docs/html/class_intelli_tool__inherit__graph.dot +++ b/docs/html/class_intelli_tool__inherit__graph.dot @@ -6,15 +6,17 @@ digraph "IntelliTool" rankdir="LR"; Node1 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliToolCircle",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html",tooltip=" "]; + Node2 [label="IntelliToolCircle",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html",tooltip="The IntelliToolCircle class represents a tool to draw a circle."]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolFloodFill",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html",tooltip=" "]; + Node3 [label="IntelliToolFloodFill",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html",tooltip="The IntelliToolFloodFill class represents a tool to flood FIll a certian area."]; Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolLine",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html",tooltip=" "]; + Node4 [label="IntelliToolLine",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html",tooltip="The IntelliToolFloodFill class represents a tool to draw a line."]; Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliToolPen",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html",tooltip=" "]; + Node5 [label="IntelliToolPen",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html",tooltip="The IntelliToolPen class represents a tool to draw a line."]; Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node6 [label="IntelliToolPlainTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html",tooltip=" "]; + Node6 [label="IntelliToolPlainTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html",tooltip="The IntelliToolPlainTool class represents a tool to fill the whole canvas with one color."]; Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node7 [label="IntelliToolRectangle",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html",tooltip=" "]; + Node7 [label="IntelliToolPolygon",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html",tooltip="The IntelliToolPolygon managed the Drawing of Polygonforms."]; + Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="IntelliToolRectangle",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html",tooltip="The IntelliToolRectangle class represents a tool to draw a rectangle."]; } diff --git a/docs/html/class_intelli_tool_a16189b00307c6d7e89f28198f54404b0_icgraph.dot b/docs/html/class_intelli_tool_a16189b00307c6d7e89f28198f54404b0_icgraph.dot index e81b809..0e124e9 100644 --- a/docs/html/class_intelli_tool_a16189b00307c6d7e89f28198f54404b0_icgraph.dot +++ b/docs/html/class_intelli_tool_a16189b00307c6d7e89f28198f54404b0_icgraph.dot @@ -8,15 +8,15 @@ digraph "IntelliTool::onMouseRightReleased" Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="PaintingArea::mouseRelease\lEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a35b5df914acb608cc29717659793359c",tooltip=" "]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolFloodFill\l::onMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#a39cf49c0ce46f96be3510f0b70c9d892",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; + Node3 [label="IntelliToolPlainTool\l::onMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#a2ae458f1b04eb77a47f6dca5e91e33b8",tooltip="A function managing the right click released of a mouse."]; Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolPlainTool\l::onMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#a2ae458f1b04eb77a47f6dca5e91e33b8",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; + Node4 [label="IntelliToolFloodFill\l::onMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#a39cf49c0ce46f96be3510f0b70c9d892",tooltip="A function managing the right click released of a mouse."]; Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliToolPen::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#abf8562e8cd2da586afdf4d47b3a4ff13",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; + Node5 [label="IntelliToolPen::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#abf8562e8cd2da586afdf4d47b3a4ff13",tooltip="A function managing the right click released of a mouse."]; Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node6 [label="IntelliToolCircle::\lonMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#aca07540f2f7ccb3d2c0b84890c1afc4c",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; + Node6 [label="IntelliToolRectangle\l::onMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#ad43f653256a6516b9398f82054be0d7f",tooltip="A function managing the right click released of a mouse."]; Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node7 [label="IntelliToolRectangle\l::onMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#ad43f653256a6516b9398f82054be0d7f",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; + Node7 [label="IntelliToolCircle::\lonMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#aca07540f2f7ccb3d2c0b84890c1afc4c",tooltip="A function managing the right click released of a mouse."]; Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node8 [label="IntelliToolLine::onMouse\lRightReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a6214918cba5753f89d97de4559a2b9b2",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; + Node8 [label="IntelliToolLine::onMouse\lRightReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a6214918cba5753f89d97de4559a2b9b2",tooltip="A function managing the right click released of a mouse."]; } diff --git a/docs/html/class_intelli_tool_a1e6aa68ac5f3c2ca02319e5ef3f0c966_icgraph.dot b/docs/html/class_intelli_tool_a1e6aa68ac5f3c2ca02319e5ef3f0c966_icgraph.dot index c8156d8..d220b5b 100644 --- a/docs/html/class_intelli_tool_a1e6aa68ac5f3c2ca02319e5ef3f0c966_icgraph.dot +++ b/docs/html/class_intelli_tool_a1e6aa68ac5f3c2ca02319e5ef3f0c966_icgraph.dot @@ -8,15 +8,17 @@ digraph "IntelliTool::onMouseRightPressed" Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="PaintingArea::mousePress\lEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15",tooltip=" "]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolFloodFill\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#ada0f7154d119102410a55038763a17e4",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; + Node3 [label="IntelliToolPolygon\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#aa36b012b48311c36e7cd6771a5081427",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolPlainTool\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#acb0c46e16d2c09370a2244a936de38b1",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; + Node4 [label="IntelliToolPlainTool\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#acb0c46e16d2c09370a2244a936de38b1",tooltip="A function managing the right click pressed of a mouse.Resetting the current fill."]; Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliToolPen::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a1751e3864a0d36ef42ca55021cae73ce",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; + Node5 [label="IntelliToolFloodFill\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#ada0f7154d119102410a55038763a17e4",tooltip="A function managing the right click pressed of a mouse. Clearing the canvas."]; Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node6 [label="IntelliToolCircle::\lonMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#a29d7b9ed4960e6fe1f31ff620363e429",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; + Node6 [label="IntelliToolPen::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a1751e3864a0d36ef42ca55021cae73ce",tooltip="A function managing the right click pressed of a mouse.Resetting the current draw."]; Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node7 [label="IntelliToolRectangle\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#a480c6804a4963c5a1c3f7ef84b63c1a8",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; + Node7 [label="IntelliToolRectangle\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#a480c6804a4963c5a1c3f7ef84b63c1a8",tooltip="A function managing the right click pressed of a mouse.Resetting the current draw."]; Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node8 [label="IntelliToolLine::onMouse\lRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a6cce59f3017936214b10b47252a898a3",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; + Node8 [label="IntelliToolCircle::\lonMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#a29d7b9ed4960e6fe1f31ff620363e429",tooltip="A function managing the right click pressed of a mouse. Clearing the canvas layer."]; + Node1 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="IntelliToolLine::onMouse\lRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a6cce59f3017936214b10b47252a898a3",tooltip="A function managing the right click pressed of a mouse. Clearing the canvas."]; } diff --git a/docs/html/class_intelli_tool_a34b7ef1dde96b94a0ce450a25ae1778c_icgraph.dot b/docs/html/class_intelli_tool_a34b7ef1dde96b94a0ce450a25ae1778c_icgraph.dot index 5011127..4b3c709 100644 --- a/docs/html/class_intelli_tool_a34b7ef1dde96b94a0ce450a25ae1778c_icgraph.dot +++ b/docs/html/class_intelli_tool_a34b7ef1dde96b94a0ce450a25ae1778c_icgraph.dot @@ -8,15 +8,17 @@ digraph "IntelliTool::onMouseLeftPressed" Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="PaintingArea::mousePress\lEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15",tooltip=" "]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node3 [label="IntelliToolPolygon\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolFloodFill\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node4 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9",tooltip="A function managing the left click pressed of a mouse. Filling the whole canvas."]; Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node5 [label="IntelliToolFloodFill\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961",tooltip="A function managing the left click pressed of a mouse. Sets the point to flood fill around and does t..."]; Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node6 [label="IntelliToolCircle::\lonMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#ae883b8ae833c78a8867e626c600f9639",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node6 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205",tooltip="A function managing the left click pressed of a mouse. Starting the drawing procedure."]; Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node7 [label="IntelliToolRectangle\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#ae03c307ccf66cbe3fd59e3657712368d",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node7 [label="IntelliToolRectangle\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#ae03c307ccf66cbe3fd59e3657712368d",tooltip="A function managing the left click pressed of a mouse. Setting the originCorner and draws a rectangle..."]; Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node8 [label="IntelliToolLine::onMouse\lLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node8 [label="IntelliToolCircle::\lonMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#ae883b8ae833c78a8867e626c600f9639",tooltip="A function managing the left click pressed of a mouse. Sets the middle point of the cricle."]; + Node1 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="IntelliToolLine::onMouse\lLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846",tooltip="A function managing the left click pressed of a mouse. Sets the starting point of the line."]; } diff --git a/docs/html/class_intelli_tool_a4dccfd4460255ccb866f336406a33574_icgraph.dot b/docs/html/class_intelli_tool_a4dccfd4460255ccb866f336406a33574_icgraph.dot index 987ac96..ca36644 100644 --- a/docs/html/class_intelli_tool_a4dccfd4460255ccb866f336406a33574_icgraph.dot +++ b/docs/html/class_intelli_tool_a4dccfd4460255ccb866f336406a33574_icgraph.dot @@ -4,19 +4,19 @@ digraph "IntelliTool::onWheelScrolled" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="RL"; - Node1 [label="IntelliTool::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node1 [label="IntelliTool::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the scroll event. A positive value means scrolling outwards. Call this in child c..."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliToolPlainTool\l::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#adc004ea421e2cc0ac39cc7a6b6d43d0d",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node2 [label="IntelliToolPlainTool\l::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#adc004ea421e2cc0ac39cc7a6b6d43d0d",tooltip="A function managing the scroll event."]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolFloodFill\l::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#ad58cc7c065123beb6b0270f99e99b991",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node3 [label="IntelliToolFloodFill\l::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#ad58cc7c065123beb6b0270f99e99b991",tooltip="A function managing the scroll event."]; Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolPen::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#afe3626ddff440ab125f4a2465c45427a",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node4 [label="IntelliToolPen::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#afe3626ddff440ab125f4a2465c45427a",tooltip="A function managing the scroll event. Changing penWidth relativ to value."]; Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliToolCircle::\lonWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#ae2d9b0fb6695c184c4cb507a5fb75506",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node5 [label="IntelliToolRectangle\l::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#a445c53a56e859f970e59f5036e221e0c",tooltip="A function managing the scroll event.Changing edgeWidth relativ to value."]; Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node6 [label="IntelliToolRectangle\l::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#a445c53a56e859f970e59f5036e221e0c",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node6 [label="IntelliToolCircle::\lonWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#ae2d9b0fb6695c184c4cb507a5fb75506",tooltip="A function managing the scroll event. Changing the edge Width relative to value."]; Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node7 [label="IntelliToolLine::onWheel\lScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#aaf1d686e1ec43f41b5186ccfd806b125",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node7 [label="IntelliToolLine::onWheel\lScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#aaf1d686e1ec43f41b5186ccfd806b125",tooltip="A function managing the scroll event. Changing the lineWidth relative to value."]; Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node8 [label="PaintingArea::wheelEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a632848d99f44d33d7da2618fbc6775a4",tooltip=" "]; } diff --git a/docs/html/class_intelli_tool_a906a2575c16c8a33cb2a5197f8d8cc5b_icgraph.dot b/docs/html/class_intelli_tool_a906a2575c16c8a33cb2a5197f8d8cc5b_icgraph.dot index 8b3287f..3c23d31 100644 --- a/docs/html/class_intelli_tool_a906a2575c16c8a33cb2a5197f8d8cc5b_icgraph.dot +++ b/docs/html/class_intelli_tool_a906a2575c16c8a33cb2a5197f8d8cc5b_icgraph.dot @@ -8,15 +8,17 @@ digraph "IntelliTool::onMouseLeftReleased" Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="PaintingArea::mouseRelease\lEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a35b5df914acb608cc29717659793359c",tooltip=" "]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolPlainTool\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ac23f5d0f07e42fd7c2ea3fc1347da400",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node3 [label="IntelliToolPolygon\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolFloodFill\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#a7438ef96c6c36068bce76e2364e8594c",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node4 [label="IntelliToolPlainTool\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ac23f5d0f07e42fd7c2ea3fc1347da400",tooltip="A function managing the left click released of a mouse. Merging the fill to the active layer."]; Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliToolPen::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#abda7a22b9766fa4ad254324a53cab94d",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node5 [label="IntelliToolFloodFill\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#a7438ef96c6c36068bce76e2364e8594c",tooltip="A function managing the left click released of a mouse."]; Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node6 [label="IntelliToolCircle::\lonMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#ad8e438ec997c57262b5efc2db4cee1a3",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node6 [label="IntelliToolPen::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#abda7a22b9766fa4ad254324a53cab94d",tooltip="A function managing the left click released of a mouse. Merging the drawing to the active layer."]; Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node7 [label="IntelliToolRectangle\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#a94460e3ff1c19e80bde922c55f53cc43",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node7 [label="IntelliToolRectangle\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#a94460e3ff1c19e80bde922c55f53cc43",tooltip="A function managing the left click released of a mouse. Merging the draw to the active layer."]; Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node8 [label="IntelliToolLine::onMouse\lLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#ac93f76ff20a1c111a403b298bab02482",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node8 [label="IntelliToolCircle::\lonMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#ad8e438ec997c57262b5efc2db4cee1a3",tooltip="A function managing the left click released of a mouse."]; + Node1 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="IntelliToolLine::onMouse\lLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#ac93f76ff20a1c111a403b298bab02482",tooltip="A function managing the left click released of a mouse."]; } diff --git a/docs/html/class_intelli_tool_ac10e20414cd8855a2f9b103fb6408639_icgraph.dot b/docs/html/class_intelli_tool_ac10e20414cd8855a2f9b103fb6408639_icgraph.dot index 048f5a8..ec2757d 100644 --- a/docs/html/class_intelli_tool_ac10e20414cd8855a2f9b103fb6408639_icgraph.dot +++ b/docs/html/class_intelli_tool_ac10e20414cd8855a2f9b103fb6408639_icgraph.dot @@ -8,15 +8,15 @@ digraph "IntelliTool::onMouseMoved" Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="PaintingArea::mouseMoveEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#aa22e274b6094a9619f196cd7b49526b5",tooltip=" "]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolPlainTool\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ad7546a6335bb3bb4cbf0e1883788d41c",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node3 [label="IntelliToolPlainTool\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ad7546a6335bb3bb4cbf0e1883788d41c",tooltip="A function managing the mouse moved event."]; Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolFloodFill\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#a3cd42cea99bc7583875abcc0c274c668",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node4 [label="IntelliToolFloodFill\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#a3cd42cea99bc7583875abcc0c274c668",tooltip="A function managing the mouse moved event."]; Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliToolPen::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node5 [label="IntelliToolPen::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2",tooltip="A function managing the mouse moved event. To draw the line."]; Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node6 [label="IntelliToolCircle::\lonMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#a90ee58c5390a86afc75c14ca79b91d7b",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node6 [label="IntelliToolRectangle\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#a4b5931071e21eb6949ffe357315e408b",tooltip="A function managing the mouse moved event.Drawing a rectangle to currrent mouse position."]; Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node7 [label="IntelliToolRectangle\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#a4b5931071e21eb6949ffe357315e408b",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node7 [label="IntelliToolCircle::\lonMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#a90ee58c5390a86afc75c14ca79b91d7b",tooltip="A function managing the mouse moved event. Draws a circle with radius of eulerian norm of mouse posit..."]; Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node8 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node8 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip="A function managing the mouse moved event. Drawing a Line from the startpoint to the current mouse po..."]; } diff --git a/docs/html/class_intelli_tool_circle.html b/docs/html/class_intelli_tool_circle.html index d855005..7636d1d 100644 --- a/docs/html/class_intelli_tool_circle.html +++ b/docs/html/class_intelli_tool_circle.html @@ -94,6 +94,9 @@ $(document).ready(function(){initNavTree('class_intelli_tool_circle.html','');})
    +

    The IntelliToolCircle class represents a tool to draw a circle. + More...

    +

    #include <IntelliToolCircle.h>

    Inheritance diagram for IntelliToolCircle:
    @@ -109,26 +112,28 @@ Collaboration diagram for IntelliToolCircle:
    + + - + - + - + - + - + - + @@ -158,8 +163,9 @@ Additional Inherited Members
    value- The absolute the scroll has changed.

    Public Member Functions

     IntelliToolCircle (PaintingArea *Area, IntelliColorPicker *colorPicker)
     A constructor setting the general paintingArea and colorPicker. And reading in the inner alpha and edgeWidth. More...
     
    virtual ~IntelliToolCircle () override
     A Destructor. More...
     
    virtual void onMouseRightPressed (int x, int y) override
     A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes! More...
     A function managing the right click pressed of a mouse. Clearing the canvas layer. More...
     
    virtual void onMouseRightReleased (int x, int y) override
     A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes! More...
     A function managing the right click released of a mouse. More...
     
    virtual void onMouseLeftPressed (int x, int y) override
     A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes! More...
     A function managing the left click pressed of a mouse. Sets the middle point of the cricle. More...
     
    virtual void onMouseLeftReleased (int x, int y) override
     A function managing the left click Released of a Mouse. Call this in child classes! More...
     A function managing the left click released of a mouse. More...
     
    virtual void onWheelScrolled (int value) override
     A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes! More...
     A function managing the scroll event. Changing the edge Width relative to value. More...
     
    virtual void onMouseMoved (int x, int y) override
     A function managing the mouse moved event. Call this in child classes! More...
     A function managing the mouse moved event. Draws a circle with radius of eulerian norm of mouse position and the middle point. More...
     
    - Public Member Functions inherited from IntelliTool
     IntelliTool (PaintingArea *Area, IntelliColorPicker *colorPicker)
     

    Detailed Description

    -
    -

    Definition at line 8 of file IntelliToolCircle.h.

    +

    The IntelliToolCircle class represents a tool to draw a circle.

    + +

    Definition at line 10 of file IntelliToolCircle.h.

    Constructor & Destructor Documentation

    ◆ IntelliToolCircle()

    @@ -187,6 +193,15 @@ Additional Inherited Members
    +

    A constructor setting the general paintingArea and colorPicker. And reading in the inner alpha and edgeWidth.

    +
    Parameters
    + + + +
    Area- The general paintingArea used by the project.
    colorPicker- The general colorPicker used by the project.
    +
    +
    +

    Definition at line 6 of file IntelliToolCircle.cpp.

    @@ -214,6 +229,8 @@ Additional Inherited Members
    +

    A Destructor.

    +

    Definition at line 12 of file IntelliToolCircle.cpp.

    @@ -253,11 +270,11 @@ Additional Inherited Members
    -

    A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes!

    +

    A function managing the left click pressed of a mouse. Sets the middle point of the cricle.

    Parameters
    - - + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.
    @@ -307,11 +324,11 @@ Here is the call graph for this function:
    -

    A function managing the left click Released of a Mouse. Call this in child classes!

    +

    A function managing the left click released of a mouse.

    Parameters
    - - + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.
    @@ -361,11 +378,11 @@ Here is the call graph for this function:
    -

    A function managing the mouse moved event. Call this in child classes!

    +

    A function managing the mouse moved event. Draws a circle with radius of eulerian norm of mouse position and the middle point.

    Parameters
    - - + +
    x- The x coordinate of the new Mouse Position.
    y- The y coordinate of the new Mouse Position.
    x- The x coordinate of the new mouse position.
    y- The y coordinate of the new mouse position.
    @@ -415,11 +432,11 @@ Here is the call graph for this function:
    -

    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes!

    +

    A function managing the right click pressed of a mouse. Clearing the canvas layer.

    Parameters
    - - + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.
    @@ -469,11 +486,11 @@ Here is the call graph for this function:
    -

    A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes!

    +

    A function managing the right click released of a mouse.

    Parameters
    - - + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.
    @@ -513,7 +530,7 @@ Here is the call graph for this function:
    -

    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes!

    +

    A function managing the scroll event. Changing the edge Width relative to value.

    Parameters
    diff --git a/docs/html/class_intelli_tool_circle__coll__graph.dot b/docs/html/class_intelli_tool_circle__coll__graph.dot index 5fa60b6..b9c16ac 100644 --- a/docs/html/class_intelli_tool_circle__coll__graph.dot +++ b/docs/html/class_intelli_tool_circle__coll__graph.dot @@ -3,7 +3,7 @@ digraph "IntelliToolCircle" // LATEX_PDF_SIZE edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; - Node1 [label="IntelliToolCircle",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliToolCircle",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The IntelliToolCircle class represents a tool to draw a circle."]; Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; Node3 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Area" ,fontname="Helvetica"]; diff --git a/docs/html/class_intelli_tool_circle__inherit__graph.dot b/docs/html/class_intelli_tool_circle__inherit__graph.dot index 2a77ab5..67ada15 100644 --- a/docs/html/class_intelli_tool_circle__inherit__graph.dot +++ b/docs/html/class_intelli_tool_circle__inherit__graph.dot @@ -3,7 +3,7 @@ digraph "IntelliToolCircle" // LATEX_PDF_SIZE edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; - Node1 [label="IntelliToolCircle",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliToolCircle",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The IntelliToolCircle class represents a tool to draw a circle."]; Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; } diff --git a/docs/html/class_intelli_tool_circle_a29d7b9ed4960e6fe1f31ff620363e429_cgraph.dot b/docs/html/class_intelli_tool_circle_a29d7b9ed4960e6fe1f31ff620363e429_cgraph.dot index 6ce40e1..0e5b463 100644 --- a/docs/html/class_intelli_tool_circle_a29d7b9ed4960e6fe1f31ff620363e429_cgraph.dot +++ b/docs/html/class_intelli_tool_circle_a29d7b9ed4960e6fe1f31ff620363e429_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolCircle::onMouseRightPressed" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolCircle::\lonMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; + Node1 [label="IntelliToolCircle::\lonMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click pressed of a mouse. Clearing the canvas layer."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; } diff --git a/docs/html/class_intelli_tool_circle_a90ee58c5390a86afc75c14ca79b91d7b_cgraph.dot b/docs/html/class_intelli_tool_circle_a90ee58c5390a86afc75c14ca79b91d7b_cgraph.dot index e7eae3c..3410c6b 100644 --- a/docs/html/class_intelli_tool_circle_a90ee58c5390a86afc75c14ca79b91d7b_cgraph.dot +++ b/docs/html/class_intelli_tool_circle_a90ee58c5390a86afc75c14ca79b91d7b_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolCircle::onMouseMoved" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolCircle::\lonMouseMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node1 [label="IntelliToolCircle::\lonMouseMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the mouse moved event. Draws a circle with radius of eulerian norm of mouse posit..."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliImage::drawPlain",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#a6be622810dc2bc756054bb5769becb06",tooltip="A function that clears the whole image in a given Color."]; Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; diff --git a/docs/html/class_intelli_tool_circle_aca07540f2f7ccb3d2c0b84890c1afc4c_cgraph.dot b/docs/html/class_intelli_tool_circle_aca07540f2f7ccb3d2c0b84890c1afc4c_cgraph.dot index fd9558f..f7c2d9c 100644 --- a/docs/html/class_intelli_tool_circle_aca07540f2f7ccb3d2c0b84890c1afc4c_cgraph.dot +++ b/docs/html/class_intelli_tool_circle_aca07540f2f7ccb3d2c0b84890c1afc4c_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolCircle::onMouseRightReleased" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolCircle::\lonMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; + Node1 [label="IntelliToolCircle::\lonMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click released of a mouse."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; } diff --git a/docs/html/class_intelli_tool_circle_ad8e438ec997c57262b5efc2db4cee1a3_cgraph.dot b/docs/html/class_intelli_tool_circle_ad8e438ec997c57262b5efc2db4cee1a3_cgraph.dot index c8ebbbe..44d094e 100644 --- a/docs/html/class_intelli_tool_circle_ad8e438ec997c57262b5efc2db4cee1a3_cgraph.dot +++ b/docs/html/class_intelli_tool_circle_ad8e438ec997c57262b5efc2db4cee1a3_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolCircle::onMouseLeftReleased" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolCircle::\lonMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node1 [label="IntelliToolCircle::\lonMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click released of a mouse."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; diff --git a/docs/html/class_intelli_tool_circle_ae2d9b0fb6695c184c4cb507a5fb75506_cgraph.dot b/docs/html/class_intelli_tool_circle_ae2d9b0fb6695c184c4cb507a5fb75506_cgraph.dot index ced76a5..b82aca3 100644 --- a/docs/html/class_intelli_tool_circle_ae2d9b0fb6695c184c4cb507a5fb75506_cgraph.dot +++ b/docs/html/class_intelli_tool_circle_ae2d9b0fb6695c184c4cb507a5fb75506_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolCircle::onWheelScrolled" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolCircle::\lonWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node1 [label="IntelliToolCircle::\lonWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the scroll event. Changing the edge Width relative to value."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliTool::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node2 [label="IntelliTool::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574",tooltip="A function managing the scroll event. A positive value means scrolling outwards. Call this in child c..."]; } diff --git a/docs/html/class_intelli_tool_circle_ae883b8ae833c78a8867e626c600f9639_cgraph.dot b/docs/html/class_intelli_tool_circle_ae883b8ae833c78a8867e626c600f9639_cgraph.dot index f614a25..2578e46 100644 --- a/docs/html/class_intelli_tool_circle_ae883b8ae833c78a8867e626c600f9639_cgraph.dot +++ b/docs/html/class_intelli_tool_circle_ae883b8ae833c78a8867e626c600f9639_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolCircle::onMouseLeftPressed" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolCircle::\lonMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node1 [label="IntelliToolCircle::\lonMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click pressed of a mouse. Sets the middle point of the cricle."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; diff --git a/docs/html/class_intelli_tool_flood_fill.html b/docs/html/class_intelli_tool_flood_fill.html index af82765..ae79756 100644 --- a/docs/html/class_intelli_tool_flood_fill.html +++ b/docs/html/class_intelli_tool_flood_fill.html @@ -94,6 +94,9 @@ $(document).ready(function(){initNavTree('class_intelli_tool_flood_fill.html',''
    +

    The IntelliToolFloodFill class represents a tool to flood FIll a certian area. + More...

    +

    #include <IntelliToolFloodFill.h>

    Inheritance diagram for IntelliToolFloodFill:
    @@ -109,26 +112,28 @@ Collaboration diagram for IntelliToolFloodFill:
    + + - + - + - + - + - + - + @@ -158,8 +163,9 @@ Additional Inherited Members
    value- The absolute the scroll has changed.

    Public Member Functions

     IntelliToolFloodFill (PaintingArea *Area, IntelliColorPicker *colorPicker)
     A constructor setting the general paintingArea and colorPicker. More...
     
    virtual ~IntelliToolFloodFill () override
     A Destructor. More...
     
    virtual void onMouseRightPressed (int x, int y) override
     A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes! More...
     A function managing the right click pressed of a mouse. Clearing the canvas. More...
     
    virtual void onMouseRightReleased (int x, int y) override
     A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes! More...
     A function managing the right click released of a mouse. More...
     
    virtual void onMouseLeftPressed (int x, int y) override
     A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes! More...
     A function managing the left click pressed of a mouse. Sets the point to flood fill around and does this. More...
     
    virtual void onMouseLeftReleased (int x, int y) override
     A function managing the left click Released of a Mouse. Call this in child classes! More...
     A function managing the left click released of a mouse. More...
     
    virtual void onWheelScrolled (int value) override
     A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes! More...
     A function managing the scroll event. More...
     
    virtual void onMouseMoved (int x, int y) override
     A function managing the mouse moved event. Call this in child classes! More...
     A function managing the mouse moved event. More...
     
    - Public Member Functions inherited from IntelliTool
     IntelliTool (PaintingArea *Area, IntelliColorPicker *colorPicker)
     

    Detailed Description

    -
    -

    Definition at line 7 of file IntelliToolFloodFill.h.

    +

    The IntelliToolFloodFill class represents a tool to flood FIll a certian area.

    + +

    Definition at line 10 of file IntelliToolFloodFill.h.

    Constructor & Destructor Documentation

    ◆ IntelliToolFloodFill()

    @@ -187,6 +193,15 @@ Additional Inherited Members
    +

    A constructor setting the general paintingArea and colorPicker.

    +
    Parameters
    + + + +
    Area- The general paintingArea used by the project.
    colorPicker- The general colorPicker used by the project.
    +
    +
    +

    Definition at line 8 of file IntelliToolFloodFill.cpp.

    @@ -214,6 +229,8 @@ Additional Inherited Members
    +

    A Destructor.

    +

    Definition at line 12 of file IntelliToolFloodFill.cpp.

    @@ -253,11 +270,11 @@ Additional Inherited Members
    -

    A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes!

    +

    A function managing the left click pressed of a mouse. Sets the point to flood fill around and does this.

    Parameters
    - - + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.
    @@ -307,11 +324,11 @@ Here is the call graph for this function:
    -

    A function managing the left click Released of a Mouse. Call this in child classes!

    +

    A function managing the left click released of a mouse.

    Parameters
    - - + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.
    @@ -361,11 +378,11 @@ Here is the call graph for this function:
    -

    A function managing the mouse moved event. Call this in child classes!

    +

    A function managing the mouse moved event.

    Parameters
    - - + +
    x- The x coordinate of the new Mouse Position.
    y- The y coordinate of the new Mouse Position.
    x- The x coordinate of the new mouse position.
    y- The y coordinate of the new mouse position.
    @@ -415,11 +432,11 @@ Here is the call graph for this function:
    -

    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes!

    +

    A function managing the right click pressed of a mouse. Clearing the canvas.

    Parameters
    - - + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.
    @@ -469,11 +486,11 @@ Here is the call graph for this function:
    -

    A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes!

    +

    A function managing the right click released of a mouse.

    Parameters
    - - + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.
    @@ -513,7 +530,7 @@ Here is the call graph for this function:
    -

    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes!

    +

    A function managing the scroll event.

    Parameters
    diff --git a/docs/html/class_intelli_tool_flood_fill__coll__graph.dot b/docs/html/class_intelli_tool_flood_fill__coll__graph.dot index f548fef..92a429d 100644 --- a/docs/html/class_intelli_tool_flood_fill__coll__graph.dot +++ b/docs/html/class_intelli_tool_flood_fill__coll__graph.dot @@ -3,7 +3,7 @@ digraph "IntelliToolFloodFill" // LATEX_PDF_SIZE edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; - Node1 [label="IntelliToolFloodFill",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliToolFloodFill",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The IntelliToolFloodFill class represents a tool to flood FIll a certian area."]; Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; Node3 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Area" ,fontname="Helvetica"]; diff --git a/docs/html/class_intelli_tool_flood_fill__inherit__graph.dot b/docs/html/class_intelli_tool_flood_fill__inherit__graph.dot index d6b8ccf..b32d6bb 100644 --- a/docs/html/class_intelli_tool_flood_fill__inherit__graph.dot +++ b/docs/html/class_intelli_tool_flood_fill__inherit__graph.dot @@ -3,7 +3,7 @@ digraph "IntelliToolFloodFill" // LATEX_PDF_SIZE edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; - Node1 [label="IntelliToolFloodFill",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliToolFloodFill",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The IntelliToolFloodFill class represents a tool to flood FIll a certian area."]; Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; } diff --git a/docs/html/class_intelli_tool_flood_fill_a39cf49c0ce46f96be3510f0b70c9d892_cgraph.dot b/docs/html/class_intelli_tool_flood_fill_a39cf49c0ce46f96be3510f0b70c9d892_cgraph.dot index 885e974..c719c47 100644 --- a/docs/html/class_intelli_tool_flood_fill_a39cf49c0ce46f96be3510f0b70c9d892_cgraph.dot +++ b/docs/html/class_intelli_tool_flood_fill_a39cf49c0ce46f96be3510f0b70c9d892_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolFloodFill::onMouseRightReleased" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolFloodFill\l::onMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; + Node1 [label="IntelliToolFloodFill\l::onMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click released of a mouse."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; } diff --git a/docs/html/class_intelli_tool_flood_fill_a3cd42cea99bc7583875abcc0c274c668_cgraph.dot b/docs/html/class_intelli_tool_flood_fill_a3cd42cea99bc7583875abcc0c274c668_cgraph.dot index ce3700c..d7c52e5 100644 --- a/docs/html/class_intelli_tool_flood_fill_a3cd42cea99bc7583875abcc0c274c668_cgraph.dot +++ b/docs/html/class_intelli_tool_flood_fill_a3cd42cea99bc7583875abcc0c274c668_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolFloodFill::onMouseMoved" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolFloodFill\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node1 [label="IntelliToolFloodFill\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the mouse moved event."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639",tooltip="A function managing the mouse moved event. Call this in child classes!"]; Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; diff --git a/docs/html/class_intelli_tool_flood_fill_a7438ef96c6c36068bce76e2364e8594c_cgraph.dot b/docs/html/class_intelli_tool_flood_fill_a7438ef96c6c36068bce76e2364e8594c_cgraph.dot index c45d9dd..2196f01 100644 --- a/docs/html/class_intelli_tool_flood_fill_a7438ef96c6c36068bce76e2364e8594c_cgraph.dot +++ b/docs/html/class_intelli_tool_flood_fill_a7438ef96c6c36068bce76e2364e8594c_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolFloodFill::onMouseLeftReleased" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolFloodFill\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node1 [label="IntelliToolFloodFill\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click released of a mouse."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; diff --git a/docs/html/class_intelli_tool_flood_fill_ac85e3cb6233508ff9612833a8d9e3961_cgraph.dot b/docs/html/class_intelli_tool_flood_fill_ac85e3cb6233508ff9612833a8d9e3961_cgraph.dot index da678d3..6b637f9 100644 --- a/docs/html/class_intelli_tool_flood_fill_ac85e3cb6233508ff9612833a8d9e3961_cgraph.dot +++ b/docs/html/class_intelli_tool_flood_fill_ac85e3cb6233508ff9612833a8d9e3961_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolFloodFill::onMouseLeftPressed" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolFloodFill\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node1 [label="IntelliToolFloodFill\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click pressed of a mouse. Sets the point to flood fill around and does t..."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; diff --git a/docs/html/class_intelli_tool_flood_fill_ad58cc7c065123beb6b0270f99e99b991_cgraph.dot b/docs/html/class_intelli_tool_flood_fill_ad58cc7c065123beb6b0270f99e99b991_cgraph.dot index df939b8..fdd94f9 100644 --- a/docs/html/class_intelli_tool_flood_fill_ad58cc7c065123beb6b0270f99e99b991_cgraph.dot +++ b/docs/html/class_intelli_tool_flood_fill_ad58cc7c065123beb6b0270f99e99b991_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolFloodFill::onWheelScrolled" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolFloodFill\l::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node1 [label="IntelliToolFloodFill\l::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the scroll event."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliTool::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node2 [label="IntelliTool::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574",tooltip="A function managing the scroll event. A positive value means scrolling outwards. Call this in child c..."]; } diff --git a/docs/html/class_intelli_tool_flood_fill_ada0f7154d119102410a55038763a17e4_cgraph.dot b/docs/html/class_intelli_tool_flood_fill_ada0f7154d119102410a55038763a17e4_cgraph.dot index b13affc..7105699 100644 --- a/docs/html/class_intelli_tool_flood_fill_ada0f7154d119102410a55038763a17e4_cgraph.dot +++ b/docs/html/class_intelli_tool_flood_fill_ada0f7154d119102410a55038763a17e4_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolFloodFill::onMouseRightPressed" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolFloodFill\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; + Node1 [label="IntelliToolFloodFill\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click pressed of a mouse. Clearing the canvas."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; } diff --git a/docs/html/class_intelli_tool_line.html b/docs/html/class_intelli_tool_line.html index e955110..72bf0b9 100644 --- a/docs/html/class_intelli_tool_line.html +++ b/docs/html/class_intelli_tool_line.html @@ -94,6 +94,9 @@ $(document).ready(function(){initNavTree('class_intelli_tool_line.html','');});
    +

    The IntelliToolFloodFill class represents a tool to draw a line. + More...

    +

    #include <IntelliToolLine.h>

    Inheritance diagram for IntelliToolLine:
    @@ -109,26 +112,28 @@ Collaboration diagram for IntelliToolLine:
    + + - + - + - + - + - + - + @@ -158,8 +163,9 @@ Additional Inherited Members
    value- The absolute the scroll has changed.

    Public Member Functions

     IntelliToolLine (PaintingArea *Area, IntelliColorPicker *colorPicker)
     A constructor setting the general paintingArea and colorPicker. And reading in the lineWidth and lineStyle. More...
     
    virtual ~IntelliToolLine () override
     An abstract Destructor. More...
     
    virtual void onMouseRightPressed (int x, int y) override
     A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes! More...
     A function managing the right click pressed of a mouse. Clearing the canvas. More...
     
    virtual void onMouseRightReleased (int x, int y) override
     A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes! More...
     A function managing the right click released of a mouse. More...
     
    virtual void onMouseLeftPressed (int x, int y) override
     A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes! More...
     A function managing the left click pressed of a mouse. Sets the starting point of the line. More...
     
    virtual void onMouseLeftReleased (int x, int y) override
     A function managing the left click Released of a Mouse. Call this in child classes! More...
     A function managing the left click released of a mouse. More...
     
    virtual void onWheelScrolled (int value) override
     A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes! More...
     A function managing the scroll event. Changing the lineWidth relative to value. More...
     
    virtual void onMouseMoved (int x, int y) override
     A function managing the mouse moved event. Call this in child classes! More...
     A function managing the mouse moved event. Drawing a Line from the startpoint to the current mouse position. More...
     
    - Public Member Functions inherited from IntelliTool
     IntelliTool (PaintingArea *Area, IntelliColorPicker *colorPicker)
     

    Detailed Description

    -
    -

    Definition at line 12 of file IntelliToolLine.h.

    +

    The IntelliToolFloodFill class represents a tool to draw a line.

    + +

    Definition at line 18 of file IntelliToolLine.h.

    Constructor & Destructor Documentation

    ◆ IntelliToolLine()

    @@ -187,6 +193,15 @@ Additional Inherited Members
    +

    A constructor setting the general paintingArea and colorPicker. And reading in the lineWidth and lineStyle.

    +
    Parameters
    + + + +
    Area- The general paintingArea used by the project.
    colorPicker- The general colorPicker used by the project.
    +
    +
    +

    Definition at line 6 of file IntelliToolLine.cpp.

    @@ -214,6 +229,8 @@ Additional Inherited Members
    +

    An abstract Destructor.

    +

    Definition at line 13 of file IntelliToolLine.cpp.

    @@ -253,11 +270,11 @@ Additional Inherited Members
    -

    A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes!

    +

    A function managing the left click pressed of a mouse. Sets the starting point of the line.

    Parameters
    - - + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.
    @@ -307,11 +324,11 @@ Here is the call graph for this function:
    -

    A function managing the left click Released of a Mouse. Call this in child classes!

    +

    A function managing the left click released of a mouse.

    Parameters
    - - + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.
    @@ -361,11 +378,11 @@ Here is the call graph for this function:
    -

    A function managing the mouse moved event. Call this in child classes!

    +

    A function managing the mouse moved event. Drawing a Line from the startpoint to the current mouse position.

    Parameters
    - - + +
    x- The x coordinate of the new Mouse Position.
    y- The y coordinate of the new Mouse Position.
    x- The x coordinate of the new mouse position.
    y- The y coordinate of the new mouse position.
    @@ -415,11 +432,11 @@ Here is the call graph for this function:
    -

    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes!

    +

    A function managing the right click pressed of a mouse. Clearing the canvas.

    Parameters
    - - + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.
    @@ -469,11 +486,11 @@ Here is the call graph for this function:
    -

    A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes!

    +

    A function managing the right click released of a mouse.

    Parameters
    - - + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.
    @@ -513,7 +530,7 @@ Here is the call graph for this function:
    -

    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes!

    +

    A function managing the scroll event. Changing the lineWidth relative to value.

    Parameters
    diff --git a/docs/html/class_intelli_tool_line__coll__graph.dot b/docs/html/class_intelli_tool_line__coll__graph.dot index cdf5d6d..e7f5dbc 100644 --- a/docs/html/class_intelli_tool_line__coll__graph.dot +++ b/docs/html/class_intelli_tool_line__coll__graph.dot @@ -3,7 +3,7 @@ digraph "IntelliToolLine" // LATEX_PDF_SIZE edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; - Node1 [label="IntelliToolLine",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliToolLine",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The IntelliToolFloodFill class represents a tool to draw a line."]; Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; Node3 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Area" ,fontname="Helvetica"]; diff --git a/docs/html/class_intelli_tool_line__inherit__graph.dot b/docs/html/class_intelli_tool_line__inherit__graph.dot index acffa2b..9c7435d 100644 --- a/docs/html/class_intelli_tool_line__inherit__graph.dot +++ b/docs/html/class_intelli_tool_line__inherit__graph.dot @@ -3,7 +3,7 @@ digraph "IntelliToolLine" // LATEX_PDF_SIZE edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; - Node1 [label="IntelliToolLine",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliToolLine",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The IntelliToolFloodFill class represents a tool to draw a line."]; Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; } diff --git a/docs/html/class_intelli_tool_line_a155d676a5f98311217eb095be4759846_cgraph.dot b/docs/html/class_intelli_tool_line_a155d676a5f98311217eb095be4759846_cgraph.dot index 8d2cb7c..58d157e 100644 --- a/docs/html/class_intelli_tool_line_a155d676a5f98311217eb095be4759846_cgraph.dot +++ b/docs/html/class_intelli_tool_line_a155d676a5f98311217eb095be4759846_cgraph.dot @@ -4,11 +4,11 @@ digraph "IntelliToolLine::onMouseLeftPressed" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolLine::onMouse\lLeftPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node1 [label="IntelliToolLine::onMouse\lLeftPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click pressed of a mouse. Sets the starting point of the line."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliImage::drawLine",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31",tooltip="A function that draws A Line between two given Points in a given color."]; + Node3 [label="IntelliImage::drawPoint",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#a2e787f1b333b59401643936ebb3dcfe1",tooltip="A."]; Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node4 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7",tooltip="A function to read the primary selected color."]; Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; diff --git a/docs/html/class_intelli_tool_line_a6214918cba5753f89d97de4559a2b9b2_cgraph.dot b/docs/html/class_intelli_tool_line_a6214918cba5753f89d97de4559a2b9b2_cgraph.dot index 56d5bba..e5ef946 100644 --- a/docs/html/class_intelli_tool_line_a6214918cba5753f89d97de4559a2b9b2_cgraph.dot +++ b/docs/html/class_intelli_tool_line_a6214918cba5753f89d97de4559a2b9b2_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolLine::onMouseRightReleased" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolLine::onMouse\lRightReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; + Node1 [label="IntelliToolLine::onMouse\lRightReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click released of a mouse."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; } diff --git a/docs/html/class_intelli_tool_line_a6cce59f3017936214b10b47252a898a3_cgraph.dot b/docs/html/class_intelli_tool_line_a6cce59f3017936214b10b47252a898a3_cgraph.dot index c7bbc7b..15f12e5 100644 --- a/docs/html/class_intelli_tool_line_a6cce59f3017936214b10b47252a898a3_cgraph.dot +++ b/docs/html/class_intelli_tool_line_a6cce59f3017936214b10b47252a898a3_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolLine::onMouseRightPressed" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolLine::onMouse\lRightPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; + Node1 [label="IntelliToolLine::onMouse\lRightPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click pressed of a mouse. Clearing the canvas."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; } diff --git a/docs/html/class_intelli_tool_line_aaf1d686e1ec43f41b5186ccfd806b125_cgraph.dot b/docs/html/class_intelli_tool_line_aaf1d686e1ec43f41b5186ccfd806b125_cgraph.dot index 1c21026..4946e13 100644 --- a/docs/html/class_intelli_tool_line_aaf1d686e1ec43f41b5186ccfd806b125_cgraph.dot +++ b/docs/html/class_intelli_tool_line_aaf1d686e1ec43f41b5186ccfd806b125_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolLine::onWheelScrolled" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolLine::onWheel\lScrolled",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node1 [label="IntelliToolLine::onWheel\lScrolled",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the scroll event. Changing the lineWidth relative to value."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliTool::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node2 [label="IntelliTool::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574",tooltip="A function managing the scroll event. A positive value means scrolling outwards. Call this in child c..."]; } diff --git a/docs/html/class_intelli_tool_line_abc6324ef0778823fe7e35aef8ae37f9b_cgraph.dot b/docs/html/class_intelli_tool_line_abc6324ef0778823fe7e35aef8ae37f9b_cgraph.dot index 87ff36c..aaf6ac9 100644 --- a/docs/html/class_intelli_tool_line_abc6324ef0778823fe7e35aef8ae37f9b_cgraph.dot +++ b/docs/html/class_intelli_tool_line_abc6324ef0778823fe7e35aef8ae37f9b_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolLine::onMouseMoved" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node1 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the mouse moved event. Drawing a Line from the startpoint to the current mouse po..."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliImage::drawLine",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31",tooltip="A function that draws A Line between two given Points in a given color."]; Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; diff --git a/docs/html/class_intelli_tool_line_ac93f76ff20a1c111a403b298bab02482_cgraph.dot b/docs/html/class_intelli_tool_line_ac93f76ff20a1c111a403b298bab02482_cgraph.dot index d43fb7d..c49cf1c 100644 --- a/docs/html/class_intelli_tool_line_ac93f76ff20a1c111a403b298bab02482_cgraph.dot +++ b/docs/html/class_intelli_tool_line_ac93f76ff20a1c111a403b298bab02482_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolLine::onMouseLeftReleased" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolLine::onMouse\lLeftReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node1 [label="IntelliToolLine::onMouse\lLeftReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click released of a mouse."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; diff --git a/docs/html/class_intelli_tool_pen.html b/docs/html/class_intelli_tool_pen.html index c497b4e..86dba05 100644 --- a/docs/html/class_intelli_tool_pen.html +++ b/docs/html/class_intelli_tool_pen.html @@ -94,6 +94,9 @@ $(document).ready(function(){initNavTree('class_intelli_tool_pen.html','');});
    +

    The IntelliToolPen class represents a tool to draw a line. + More...

    +

    #include <IntelliToolPen.h>

    Inheritance diagram for IntelliToolPen:
    @@ -109,26 +112,28 @@ Collaboration diagram for IntelliToolPen:
    + + - + - + - + - + - + - + @@ -158,8 +163,9 @@ Additional Inherited Members
    value- The absolute the scroll has changed.

    Public Member Functions

     IntelliToolPen (PaintingArea *Area, IntelliColorPicker *colorPicker)
     A constructor setting the general paintingArea and colorPicker. Reading the penWidth. More...
     
    virtual ~IntelliToolPen () override
     A Destructor. More...
     
    virtual void onMouseRightPressed (int x, int y) override
     A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes! More...
     A function managing the right click pressed of a mouse.Resetting the current draw. More...
     
    virtual void onMouseRightReleased (int x, int y) override
     A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes! More...
     A function managing the right click released of a mouse. More...
     
    virtual void onMouseLeftPressed (int x, int y) override
     A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes! More...
     A function managing the left click pressed of a mouse. Starting the drawing procedure. More...
     
    virtual void onMouseLeftReleased (int x, int y) override
     A function managing the left click Released of a Mouse. Call this in child classes! More...
     A function managing the left click released of a mouse. Merging the drawing to the active layer. More...
     
    virtual void onWheelScrolled (int value) override
     A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes! More...
     A function managing the scroll event. Changing penWidth relativ to value. More...
     
    virtual void onMouseMoved (int x, int y) override
     A function managing the mouse moved event. Call this in child classes! More...
     A function managing the mouse moved event. To draw the line. More...
     
    - Public Member Functions inherited from IntelliTool
     IntelliTool (PaintingArea *Area, IntelliColorPicker *colorPicker)
     

    Detailed Description

    -
    -

    Definition at line 8 of file IntelliToolPen.h.

    +

    The IntelliToolPen class represents a tool to draw a line.

    + +

    Definition at line 10 of file IntelliToolPen.h.

    Constructor & Destructor Documentation

    ◆ IntelliToolPen()

    @@ -187,6 +193,15 @@ Additional Inherited Members
    +

    A constructor setting the general paintingArea and colorPicker. Reading the penWidth.

    +
    Parameters
    + + + +
    Area- The general PaintingArea used by the project.
    colorPicker- The general colorPicker used by the project.
    +
    +
    +

    Definition at line 7 of file IntelliToolPen.cpp.

    @@ -214,6 +229,8 @@ Additional Inherited Members
    +

    A Destructor.

    +

    Definition at line 12 of file IntelliToolPen.cpp.

    @@ -253,11 +270,11 @@ Additional Inherited Members
    -

    A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes!

    +

    A function managing the left click pressed of a mouse. Starting the drawing procedure.

    Parameters
    - - + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.
    @@ -307,11 +324,11 @@ Here is the call graph for this function:
    -

    A function managing the left click Released of a Mouse. Call this in child classes!

    +

    A function managing the left click released of a mouse. Merging the drawing to the active layer.

    Parameters
    - - + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.
    @@ -361,11 +378,11 @@ Here is the call graph for this function:
    -

    A function managing the mouse moved event. Call this in child classes!

    +

    A function managing the mouse moved event. To draw the line.

    Parameters
    - - + +
    x- The x coordinate of the new Mouse Position.
    y- The y coordinate of the new Mouse Position.
    x- The x coordinate of the new mouse position.
    y- The y coordinate of the new mouse position.
    @@ -415,11 +432,11 @@ Here is the call graph for this function:
    -

    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes!

    +

    A function managing the right click pressed of a mouse.Resetting the current draw.

    Parameters
    - - + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.
    @@ -469,11 +486,11 @@ Here is the call graph for this function:
    -

    A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes!

    +

    A function managing the right click released of a mouse.

    Parameters
    - - + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.
    @@ -513,7 +530,7 @@ Here is the call graph for this function:
    -

    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes!

    +

    A function managing the scroll event. Changing penWidth relativ to value.

    Parameters
    diff --git a/docs/html/class_intelli_tool_pen__coll__graph.dot b/docs/html/class_intelli_tool_pen__coll__graph.dot index dbf4c50..63a3f0c 100644 --- a/docs/html/class_intelli_tool_pen__coll__graph.dot +++ b/docs/html/class_intelli_tool_pen__coll__graph.dot @@ -3,7 +3,7 @@ digraph "IntelliToolPen" // LATEX_PDF_SIZE edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; - Node1 [label="IntelliToolPen",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliToolPen",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The IntelliToolPen class represents a tool to draw a line."]; Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; Node3 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Area" ,fontname="Helvetica"]; diff --git a/docs/html/class_intelli_tool_pen__inherit__graph.dot b/docs/html/class_intelli_tool_pen__inherit__graph.dot index 8409809..406b281 100644 --- a/docs/html/class_intelli_tool_pen__inherit__graph.dot +++ b/docs/html/class_intelli_tool_pen__inherit__graph.dot @@ -3,7 +3,7 @@ digraph "IntelliToolPen" // LATEX_PDF_SIZE edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; - Node1 [label="IntelliToolPen",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliToolPen",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The IntelliToolPen class represents a tool to draw a line."]; Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; } diff --git a/docs/html/class_intelli_tool_pen_a1751e3864a0d36ef42ca55021cae73ce_cgraph.dot b/docs/html/class_intelli_tool_pen_a1751e3864a0d36ef42ca55021cae73ce_cgraph.dot index ca8b608..944c897 100644 --- a/docs/html/class_intelli_tool_pen_a1751e3864a0d36ef42ca55021cae73ce_cgraph.dot +++ b/docs/html/class_intelli_tool_pen_a1751e3864a0d36ef42ca55021cae73ce_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolPen::onMouseRightPressed" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolPen::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; + Node1 [label="IntelliToolPen::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click pressed of a mouse.Resetting the current draw."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; } diff --git a/docs/html/class_intelli_tool_pen_a58d1d636497b630647ce0c4d652737c2_cgraph.dot b/docs/html/class_intelli_tool_pen_a58d1d636497b630647ce0c4d652737c2_cgraph.dot index 9926407..4451173 100644 --- a/docs/html/class_intelli_tool_pen_a58d1d636497b630647ce0c4d652737c2_cgraph.dot +++ b/docs/html/class_intelli_tool_pen_a58d1d636497b630647ce0c4d652737c2_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolPen::onMouseMoved" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolPen::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node1 [label="IntelliToolPen::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the mouse moved event. To draw the line."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliImage::drawLine",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31",tooltip="A function that draws A Line between two given Points in a given color."]; Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; diff --git a/docs/html/class_intelli_tool_pen_a8ff40aef6d38eb55af31a19322429205_cgraph.dot b/docs/html/class_intelli_tool_pen_a8ff40aef6d38eb55af31a19322429205_cgraph.dot index af5e836..bcb3d63 100644 --- a/docs/html/class_intelli_tool_pen_a8ff40aef6d38eb55af31a19322429205_cgraph.dot +++ b/docs/html/class_intelli_tool_pen_a8ff40aef6d38eb55af31a19322429205_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolPen::onMouseLeftPressed" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node1 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click pressed of a mouse. Starting the drawing procedure."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; diff --git a/docs/html/class_intelli_tool_pen_abda7a22b9766fa4ad254324a53cab94d_cgraph.dot b/docs/html/class_intelli_tool_pen_abda7a22b9766fa4ad254324a53cab94d_cgraph.dot index ae2da6a..6b84745 100644 --- a/docs/html/class_intelli_tool_pen_abda7a22b9766fa4ad254324a53cab94d_cgraph.dot +++ b/docs/html/class_intelli_tool_pen_abda7a22b9766fa4ad254324a53cab94d_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolPen::onMouseLeftReleased" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolPen::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node1 [label="IntelliToolPen::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click released of a mouse. Merging the drawing to the active layer."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; diff --git a/docs/html/class_intelli_tool_pen_abf8562e8cd2da586afdf4d47b3a4ff13_cgraph.dot b/docs/html/class_intelli_tool_pen_abf8562e8cd2da586afdf4d47b3a4ff13_cgraph.dot index b2d6237..a3e01c7 100644 --- a/docs/html/class_intelli_tool_pen_abf8562e8cd2da586afdf4d47b3a4ff13_cgraph.dot +++ b/docs/html/class_intelli_tool_pen_abf8562e8cd2da586afdf4d47b3a4ff13_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolPen::onMouseRightReleased" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolPen::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; + Node1 [label="IntelliToolPen::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click released of a mouse."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; } diff --git a/docs/html/class_intelli_tool_pen_afe3626ddff440ab125f4a2465c45427a_cgraph.dot b/docs/html/class_intelli_tool_pen_afe3626ddff440ab125f4a2465c45427a_cgraph.dot index 653a036..44ced84 100644 --- a/docs/html/class_intelli_tool_pen_afe3626ddff440ab125f4a2465c45427a_cgraph.dot +++ b/docs/html/class_intelli_tool_pen_afe3626ddff440ab125f4a2465c45427a_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolPen::onWheelScrolled" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolPen::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node1 [label="IntelliToolPen::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the scroll event. Changing penWidth relativ to value."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliTool::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node2 [label="IntelliTool::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574",tooltip="A function managing the scroll event. A positive value means scrolling outwards. Call this in child c..."]; } diff --git a/docs/html/class_intelli_tool_plain_tool-members.html b/docs/html/class_intelli_tool_plain_tool-members.html index 020d562..c4c5088 100644 --- a/docs/html/class_intelli_tool_plain_tool-members.html +++ b/docs/html/class_intelli_tool_plain_tool-members.html @@ -107,6 +107,7 @@ $(document).ready(function(){initNavTree('class_intelli_tool_plain_tool.html','' +
    value- The absolute the scroll has changed.
    onMouseRightReleased(int x, int y) overrideIntelliToolPlainToolvirtual
    onWheelScrolled(int value) overrideIntelliToolPlainToolvirtual
    ~IntelliTool()=0IntelliToolpure virtual
    ~IntelliToolPlainTool() overrideIntelliToolPlainToolvirtual
    diff --git a/docs/html/class_intelli_tool_plain_tool.html b/docs/html/class_intelli_tool_plain_tool.html index d524eef..41b2f4f 100644 --- a/docs/html/class_intelli_tool_plain_tool.html +++ b/docs/html/class_intelli_tool_plain_tool.html @@ -94,6 +94,9 @@ $(document).ready(function(){initNavTree('class_intelli_tool_plain_tool.html',''
    +

    The IntelliToolPlainTool class represents a tool to fill the whole canvas with one color. + More...

    +

    #include <IntelliToolPlain.h>

    Inheritance diagram for IntelliToolPlainTool:
    @@ -109,24 +112,28 @@ Collaboration diagram for IntelliToolPlainTool:

    Public Member Functions

     IntelliToolPlainTool (PaintingArea *Area, IntelliColorPicker *colorPicker) + A constructor setting the general paintingArea and colorPicker. More...
      -virtual void onMouseLeftPressed (int x, int y) override - A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes! More...
    -  -virtual void onMouseLeftReleased (int x, int y) override - A function managing the left click Released of a Mouse. Call this in child classes! More...
    -  +virtual ~IntelliToolPlainTool () override + A Destructor. More...
    +  virtual void onMouseRightPressed (int x, int y) override - A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes! More...
    + A function managing the right click pressed of a mouse.Resetting the current fill. More...
      virtual void onMouseRightReleased (int x, int y) override - A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes! More...
    + A function managing the right click released of a mouse. More...
      +virtual void onMouseLeftPressed (int x, int y) override + A function managing the left click pressed of a mouse. Filling the whole canvas. More...
    +  +virtual void onMouseLeftReleased (int x, int y) override + A function managing the left click released of a mouse. Merging the fill to the active layer. More...
    +  virtual void onWheelScrolled (int value) override - A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes! More...
    + A function managing the scroll event. More...
      virtual void onMouseMoved (int x, int y) override - A function managing the mouse moved event. Call this in child classes! More...
    + A function managing the mouse moved event. More...
      - Public Member Functions inherited from IntelliTool  IntelliTool (PaintingArea *Area, IntelliColorPicker *colorPicker) @@ -156,8 +163,9 @@ Additional Inherited Members  

    Detailed Description

    -
    -

    Definition at line 7 of file IntelliToolPlain.h.

    +

    The IntelliToolPlainTool class represents a tool to fill the whole canvas with one color.

    + +

    Definition at line 9 of file IntelliToolPlain.h.

    Constructor & Destructor Documentation

    ◆ IntelliToolPlainTool()

    @@ -185,8 +193,46 @@ Additional Inherited Members
    +

    A constructor setting the general paintingArea and colorPicker.

    +
    Parameters
    + + + +
    Area- The general paintingArea used by the project.
    colorPicker- The general colorPicker used by the project.
    +
    +
    +

    Definition at line 5 of file IntelliToolPlain.cpp.

    +
    + + +

    ◆ ~IntelliToolPlainTool()

    + +
    +
    + + + + + +
    + + + + + + + +
    IntelliToolPlainTool::~IntelliToolPlainTool ()
    +
    +overridevirtual
    +
    + +

    A Destructor.

    + +

    Definition at line 9 of file IntelliToolPlain.cpp.

    +

    Member Function Documentation

    @@ -224,18 +270,18 @@ Additional Inherited Members
    -

    A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes!

    +

    A function managing the left click pressed of a mouse. Filling the whole canvas.

    Parameters
    - - + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.

    Reimplemented from IntelliTool.

    -

    Definition at line 9 of file IntelliToolPlain.cpp.

    +

    Definition at line 13 of file IntelliToolPlain.cpp.

    Here is the call graph for this function:
    @@ -278,18 +324,18 @@ Here is the call graph for this function:
    -

    A function managing the left click Released of a Mouse. Call this in child classes!

    +

    A function managing the left click released of a mouse. Merging the fill to the active layer.

    Parameters
    - - + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.

    Reimplemented from IntelliTool.

    -

    Definition at line 15 of file IntelliToolPlain.cpp.

    +

    Definition at line 19 of file IntelliToolPlain.cpp.

    Here is the call graph for this function:
    @@ -332,18 +378,18 @@ Here is the call graph for this function:
    -

    A function managing the mouse moved event. Call this in child classes!

    +

    A function managing the mouse moved event.

    Parameters
    - - + +
    x- The x coordinate of the new Mouse Position.
    y- The y coordinate of the new Mouse Position.
    x- The x coordinate of the new mouse position.
    y- The y coordinate of the new mouse position.

    Reimplemented from IntelliTool.

    -

    Definition at line 28 of file IntelliToolPlain.cpp.

    +

    Definition at line 32 of file IntelliToolPlain.cpp.

    Here is the call graph for this function:
    @@ -386,18 +432,18 @@ Here is the call graph for this function:
    -

    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes!

    +

    A function managing the right click pressed of a mouse.Resetting the current fill.

    Parameters
    - - + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.

    Reimplemented from IntelliTool.

    -

    Definition at line 19 of file IntelliToolPlain.cpp.

    +

    Definition at line 23 of file IntelliToolPlain.cpp.

    Here is the call graph for this function:
    @@ -440,18 +486,18 @@ Here is the call graph for this function:
    -

    A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes!

    +

    A function managing the right click released of a mouse.

    Parameters
    - - + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.

    Reimplemented from IntelliTool.

    -

    Definition at line 23 of file IntelliToolPlain.cpp.

    +

    Definition at line 27 of file IntelliToolPlain.cpp.

    Here is the call graph for this function:
    @@ -484,7 +530,7 @@ Here is the call graph for this function:
    -

    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes!

    +

    A function managing the scroll event.

    Parameters
    @@ -494,7 +540,7 @@ Here is the call graph for this function:

    Reimplemented from IntelliTool.

    -

    Definition at line 32 of file IntelliToolPlain.cpp.

    +

    Definition at line 36 of file IntelliToolPlain.cpp.

    Here is the call graph for this function:
    diff --git a/docs/html/class_intelli_tool_plain_tool.js b/docs/html/class_intelli_tool_plain_tool.js index 34b01e4..a3b2395 100644 --- a/docs/html/class_intelli_tool_plain_tool.js +++ b/docs/html/class_intelli_tool_plain_tool.js @@ -1,6 +1,7 @@ var class_intelli_tool_plain_tool = [ [ "IntelliToolPlainTool", "class_intelli_tool_plain_tool.html#a0ff0b9f7b78b763683076e4417236859", null ], + [ "~IntelliToolPlainTool", "class_intelli_tool_plain_tool.html#a91fe568be05c075814d67440472bb658", null ], [ "onMouseLeftPressed", "class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9", null ], [ "onMouseLeftReleased", "class_intelli_tool_plain_tool.html#ac23f5d0f07e42fd7c2ea3fc1347da400", null ], [ "onMouseMoved", "class_intelli_tool_plain_tool.html#ad7546a6335bb3bb4cbf0e1883788d41c", null ], diff --git a/docs/html/class_intelli_tool_plain_tool__coll__graph.dot b/docs/html/class_intelli_tool_plain_tool__coll__graph.dot index 410f863..182c33c 100644 --- a/docs/html/class_intelli_tool_plain_tool__coll__graph.dot +++ b/docs/html/class_intelli_tool_plain_tool__coll__graph.dot @@ -3,7 +3,7 @@ digraph "IntelliToolPlainTool" // LATEX_PDF_SIZE edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; - Node1 [label="IntelliToolPlainTool",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliToolPlainTool",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The IntelliToolPlainTool class represents a tool to fill the whole canvas with one color."]; Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; Node3 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Area" ,fontname="Helvetica"]; diff --git a/docs/html/class_intelli_tool_plain_tool__inherit__graph.dot b/docs/html/class_intelli_tool_plain_tool__inherit__graph.dot index 516f045..962d72e 100644 --- a/docs/html/class_intelli_tool_plain_tool__inherit__graph.dot +++ b/docs/html/class_intelli_tool_plain_tool__inherit__graph.dot @@ -3,7 +3,7 @@ digraph "IntelliToolPlainTool" // LATEX_PDF_SIZE edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; - Node1 [label="IntelliToolPlainTool",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliToolPlainTool",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The IntelliToolPlainTool class represents a tool to fill the whole canvas with one color."]; Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; } diff --git a/docs/html/class_intelli_tool_plain_tool_a2ae458f1b04eb77a47f6dca5e91e33b8_cgraph.dot b/docs/html/class_intelli_tool_plain_tool_a2ae458f1b04eb77a47f6dca5e91e33b8_cgraph.dot index f708adb..ed1530c 100644 --- a/docs/html/class_intelli_tool_plain_tool_a2ae458f1b04eb77a47f6dca5e91e33b8_cgraph.dot +++ b/docs/html/class_intelli_tool_plain_tool_a2ae458f1b04eb77a47f6dca5e91e33b8_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolPlainTool::onMouseRightReleased" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolPlainTool\l::onMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; + Node1 [label="IntelliToolPlainTool\l::onMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click released of a mouse."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; } diff --git a/docs/html/class_intelli_tool_plain_tool_ab786dd5fa80af863246013d43c4b7ac9_cgraph.dot b/docs/html/class_intelli_tool_plain_tool_ab786dd5fa80af863246013d43c4b7ac9_cgraph.dot index acc5c5d..11c6f8c 100644 --- a/docs/html/class_intelli_tool_plain_tool_ab786dd5fa80af863246013d43c4b7ac9_cgraph.dot +++ b/docs/html/class_intelli_tool_plain_tool_ab786dd5fa80af863246013d43c4b7ac9_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolPlainTool::onMouseLeftPressed" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node1 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click pressed of a mouse. Filling the whole canvas."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; diff --git a/docs/html/class_intelli_tool_plain_tool_ac23f5d0f07e42fd7c2ea3fc1347da400_cgraph.dot b/docs/html/class_intelli_tool_plain_tool_ac23f5d0f07e42fd7c2ea3fc1347da400_cgraph.dot index 61cc955..4e3de1f 100644 --- a/docs/html/class_intelli_tool_plain_tool_ac23f5d0f07e42fd7c2ea3fc1347da400_cgraph.dot +++ b/docs/html/class_intelli_tool_plain_tool_ac23f5d0f07e42fd7c2ea3fc1347da400_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolPlainTool::onMouseLeftReleased" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolPlainTool\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node1 [label="IntelliToolPlainTool\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click released of a mouse. Merging the fill to the active layer."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; diff --git a/docs/html/class_intelli_tool_plain_tool_acb0c46e16d2c09370a2244a936de38b1_cgraph.dot b/docs/html/class_intelli_tool_plain_tool_acb0c46e16d2c09370a2244a936de38b1_cgraph.dot index bd95eaa..2740da5 100644 --- a/docs/html/class_intelli_tool_plain_tool_acb0c46e16d2c09370a2244a936de38b1_cgraph.dot +++ b/docs/html/class_intelli_tool_plain_tool_acb0c46e16d2c09370a2244a936de38b1_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolPlainTool::onMouseRightPressed" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolPlainTool\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; + Node1 [label="IntelliToolPlainTool\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click pressed of a mouse.Resetting the current fill."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; } diff --git a/docs/html/class_intelli_tool_plain_tool_ad7546a6335bb3bb4cbf0e1883788d41c_cgraph.dot b/docs/html/class_intelli_tool_plain_tool_ad7546a6335bb3bb4cbf0e1883788d41c_cgraph.dot index 482697f..fff8436 100644 --- a/docs/html/class_intelli_tool_plain_tool_ad7546a6335bb3bb4cbf0e1883788d41c_cgraph.dot +++ b/docs/html/class_intelli_tool_plain_tool_ad7546a6335bb3bb4cbf0e1883788d41c_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolPlainTool::onMouseMoved" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolPlainTool\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node1 [label="IntelliToolPlainTool\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the mouse moved event."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639",tooltip="A function managing the mouse moved event. Call this in child classes!"]; Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; diff --git a/docs/html/class_intelli_tool_plain_tool_adc004ea421e2cc0ac39cc7a6b6d43d0d_cgraph.dot b/docs/html/class_intelli_tool_plain_tool_adc004ea421e2cc0ac39cc7a6b6d43d0d_cgraph.dot index a7d505f..4352f5d 100644 --- a/docs/html/class_intelli_tool_plain_tool_adc004ea421e2cc0ac39cc7a6b6d43d0d_cgraph.dot +++ b/docs/html/class_intelli_tool_plain_tool_adc004ea421e2cc0ac39cc7a6b6d43d0d_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolPlainTool::onWheelScrolled" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolPlainTool\l::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node1 [label="IntelliToolPlainTool\l::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the scroll event."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliTool::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node2 [label="IntelliTool::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574",tooltip="A function managing the scroll event. A positive value means scrolling outwards. Call this in child c..."]; } diff --git a/docs/html/class_intelli_tool_polygon-members.html b/docs/html/class_intelli_tool_polygon-members.html new file mode 100644 index 0000000..0cffcbb --- /dev/null +++ b/docs/html/class_intelli_tool_polygon-members.html @@ -0,0 +1,121 @@ + + + + + + + +IntelliPhoto: Member List + + + + + + + + + + + + + + +
    +
    +
    value- The absolute the scroll has changed.
    + + + + + +
    +
    IntelliPhoto +  0.4 +
    +
    +
    + + + + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    IntelliToolPolygon Member List
    +
    +
    + +

    This is the complete list of members for IntelliToolPolygon, including all inherited members.

    + + + + + + + + + + + + + + + +
    ActiveIntelliToolprotected
    AreaIntelliToolprotected
    CanvasIntelliToolprotected
    colorPickerIntelliToolprotected
    drawingIntelliToolprotected
    IntelliTool(PaintingArea *Area, IntelliColorPicker *colorPicker)IntelliTool
    IntelliToolPolygon(PaintingArea *Area, IntelliColorPicker *colorPicker)IntelliToolPolygon
    onMouseLeftPressed(int x, int y) overrideIntelliToolPolygonvirtual
    onMouseLeftReleased(int x, int y) overrideIntelliToolPolygonvirtual
    onMouseMoved(int x, int y) overrideIntelliToolPolygonvirtual
    onMouseRightPressed(int x, int y) overrideIntelliToolPolygonvirtual
    onMouseRightReleased(int x, int y) overrideIntelliToolPolygonvirtual
    onWheelScrolled(int value) overrideIntelliToolPolygonvirtual
    ~IntelliTool()=0IntelliToolpure virtual
    +
    + + + + diff --git a/docs/html/class_intelli_tool_polygon.html b/docs/html/class_intelli_tool_polygon.html new file mode 100644 index 0000000..eba785f --- /dev/null +++ b/docs/html/class_intelli_tool_polygon.html @@ -0,0 +1,521 @@ + + + + + + + +IntelliPhoto: IntelliToolPolygon Class Reference + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    IntelliPhoto +  0.4 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    IntelliToolPolygon Class Reference
    +
    +
    + +

    The IntelliToolPolygon managed the Drawing of Polygonforms. + More...

    + +

    #include <IntelliToolPolygon.h>

    +
    +Inheritance diagram for IntelliToolPolygon:
    +
    +
    Inheritance graph
    +
    [legend]
    +
    +Collaboration diagram for IntelliToolPolygon:
    +
    +
    Collaboration graph
    +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     IntelliToolPolygon (PaintingArea *Area, IntelliColorPicker *colorPicker)
     IntelliToolPolygon Constructor Define the Tool-intern Parameters. More...
     
    virtual void onMouseLeftPressed (int x, int y) override
     A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes! More...
     
    virtual void onMouseLeftReleased (int x, int y) override
     A function managing the left click Released of a Mouse. Call this in child classes! More...
     
    virtual void onMouseRightPressed (int x, int y) override
     A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes! More...
     
    virtual void onMouseRightReleased (int x, int y) override
     A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes! More...
     
    virtual void onWheelScrolled (int value) override
     A function managing the scroll event. A positive value means scrolling outwards. Call this in child classes! More...
     
    virtual void onMouseMoved (int x, int y) override
     A function managing the mouse moved event. Call this in child classes! More...
     
    - Public Member Functions inherited from IntelliTool
     IntelliTool (PaintingArea *Area, IntelliColorPicker *colorPicker)
     A constructor setting the general Painting Area and colorPicker. More...
     
    virtual ~IntelliTool ()=0
     An abstract Destructor. More...
     
    + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Attributes inherited from IntelliTool
    PaintingAreaArea
     A pointer to the general PaintingArea to interact with. More...
     
    IntelliColorPickercolorPicker
     A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors. More...
     
    LayerObjectActive
     A pointer to the underlying active Layer, do not work on this. This is used for data grabbing or previews. More...
     
    LayerObjectCanvas
     A pointer to the drawing canvas of the tool, work on this. More...
     
    bool drawing = false
     A flag checking if the user is currently drawing or not. More...
     
    +

    Detailed Description

    +

    The IntelliToolPolygon managed the Drawing of Polygonforms.

    + +

    Definition at line 11 of file IntelliToolPolygon.h.

    +

    Constructor & Destructor Documentation

    + +

    ◆ IntelliToolPolygon()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    IntelliToolPolygon::IntelliToolPolygon (PaintingAreaArea,
    IntelliColorPickercolorPicker 
    )
    +
    + +

    IntelliToolPolygon Constructor Define the Tool-intern Parameters.

    +
    Parameters
    + + + +
    Area
    colorPicker
    +
    +
    + +

    Definition at line 6 of file IntelliToolPolygon.cpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ onMouseLeftPressed()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void IntelliToolPolygon::onMouseLeftPressed (int x,
    int y 
    )
    +
    +overridevirtual
    +
    + +

    A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.
    +
    +
    + +

    Reimplemented from IntelliTool.

    + +

    Definition at line 17 of file IntelliToolPolygon.cpp.

    +
    +Here is the call graph for this function:
    +
    +
    +
    + +
    +
    + +

    ◆ onMouseLeftReleased()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void IntelliToolPolygon::onMouseLeftReleased (int x,
    int y 
    )
    +
    +overridevirtual
    +
    + +

    A function managing the left click Released of a Mouse. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.
    +
    +
    + +

    Reimplemented from IntelliTool.

    + +

    Definition at line 53 of file IntelliToolPolygon.cpp.

    +
    +Here is the call graph for this function:
    +
    +
    +
    + +
    +
    + +

    ◆ onMouseMoved()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void IntelliToolPolygon::onMouseMoved (int x,
    int y 
    )
    +
    +overridevirtual
    +
    + +

    A function managing the mouse moved event. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate of the new mouse position.
    y- The y coordinate of the new mouse position.
    +
    +
    + +

    Reimplemented from IntelliTool.

    + +

    Definition at line 88 of file IntelliToolPolygon.cpp.

    + +
    +
    + +

    ◆ onMouseRightPressed()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void IntelliToolPolygon::onMouseRightPressed (int x,
    int y 
    )
    +
    +overridevirtual
    +
    + +

    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.
    +
    +
    + +

    Reimplemented from IntelliTool.

    + +

    Definition at line 46 of file IntelliToolPolygon.cpp.

    +
    +Here is the call graph for this function:
    +
    +
    +
    + +
    +
    + +

    ◆ onMouseRightReleased()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void IntelliToolPolygon::onMouseRightReleased (int x,
    int y 
    )
    +
    +overridevirtual
    +
    + +

    A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes!

    +
    Parameters
    + + + +
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.
    +
    +
    + +

    Reimplemented from IntelliTool.

    + +

    Definition at line 73 of file IntelliToolPolygon.cpp.

    + +
    +
    + +

    ◆ onWheelScrolled()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void IntelliToolPolygon::onWheelScrolled (int value)
    +
    +overridevirtual
    +
    + +

    A function managing the scroll event. A positive value means scrolling outwards. Call this in child classes!

    +
    Parameters
    + + +
    value- The absolute the scroll has changed.
    +
    +
    + +

    Reimplemented from IntelliTool.

    + +

    Definition at line 77 of file IntelliToolPolygon.cpp.

    + +
    +
    +
    The documentation for this class was generated from the following files: +
    +
    + + + + diff --git a/docs/html/class_intelli_tool_polygon.js b/docs/html/class_intelli_tool_polygon.js new file mode 100644 index 0000000..39b5450 --- /dev/null +++ b/docs/html/class_intelli_tool_polygon.js @@ -0,0 +1,10 @@ +var class_intelli_tool_polygon = +[ + [ "IntelliToolPolygon", "class_intelli_tool_polygon.html#ae6e5f07fdf88d12029410a032dc4921d", null ], + [ "onMouseLeftPressed", "class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d", null ], + [ "onMouseLeftReleased", "class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21", null ], + [ "onMouseMoved", "class_intelli_tool_polygon.html#a0e3a1135f04c73c159137ae219a38922", null ], + [ "onMouseRightPressed", "class_intelli_tool_polygon.html#aa36b012b48311c36e7cd6771a5081427", null ], + [ "onMouseRightReleased", "class_intelli_tool_polygon.html#a47cad87cd02b128b02dc929713bd1d1b", null ], + [ "onWheelScrolled", "class_intelli_tool_polygon.html#a713103300c9f023d64d9eec5ac05dd17", null ] +]; \ No newline at end of file diff --git a/docs/html/class_intelli_tool_polygon__coll__graph.dot b/docs/html/class_intelli_tool_polygon__coll__graph.dot new file mode 100644 index 0000000..09cd694 --- /dev/null +++ b/docs/html/class_intelli_tool_polygon__coll__graph.dot @@ -0,0 +1,19 @@ +digraph "IntelliToolPolygon" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="IntelliToolPolygon",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The IntelliToolPolygon managed the Drawing of Polygonforms."]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; + Node3 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Area" ,fontname="Helvetica"]; + Node3 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip=" "]; + Node4 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node5 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" colorPicker" ,fontname="Helvetica"]; + Node5 [label="IntelliColorPicker",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html",tooltip="The IntelliColorPicker manages the selected colors for one whole project."]; + Node6 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Canvas\nActive" ,fontname="Helvetica"]; + Node6 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip=" "]; + Node7 -> Node6 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" image" ,fontname="Helvetica"]; + Node7 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip="An abstract class which manages the basic IntelliImage operations."]; +} diff --git a/docs/html/class_intelli_tool_polygon__inherit__graph.dot b/docs/html/class_intelli_tool_polygon__inherit__graph.dot new file mode 100644 index 0000000..1dc9f96 --- /dev/null +++ b/docs/html/class_intelli_tool_polygon__inherit__graph.dot @@ -0,0 +1,9 @@ +digraph "IntelliToolPolygon" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="IntelliToolPolygon",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The IntelliToolPolygon managed the Drawing of Polygonforms."]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; +} diff --git a/docs/html/class_intelli_tool_polygon_a4e1473ff408ae2e11cf6a43f6f575f21_cgraph.dot b/docs/html/class_intelli_tool_polygon_a4e1473ff408ae2e11cf6a43f6f575f21_cgraph.dot new file mode 100644 index 0000000..bbac393 --- /dev/null +++ b/docs/html/class_intelli_tool_polygon_a4e1473ff408ae2e11cf6a43f6f575f21_cgraph.dot @@ -0,0 +1,25 @@ +digraph "IntelliToolPolygon::onMouseLeftReleased" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolPolygon\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliHelper::calculate\lTriangles",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$namespace_intelli_helper.html#a214dc3624ba4562a03dc922e3dd7b617",tooltip="A function to split a polygon in its spanning traingles by using Meisters Theorem of graph theory by ..."]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliImage::drawPixel",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#af3c859f5c409e37051edfd9e9fbca056",tooltip="A funtcion used to draw a pixel on the Image with the given Color."]; + Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7",tooltip="A function to read the primary selected color."]; + Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="IntelliHelper::isInPolygon",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$namespace_intelli_helper.html#a44d516b3e619e2a743e9c98dd75cf901",tooltip="A function to check if a point lies in a polygon by checking its spanning triangles."]; + Node6 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="IntelliHelper::isInTriangle",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$namespace_intelli_helper.html#a9fcfe72f00e870be4a8ab9f2e17483c9",tooltip="A function to check if a given point is in a triangle."]; + Node7 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="IntelliHelper::sign",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$namespace_intelli_helper.html#afdd9fe78cc5d21b59642910220768149",tooltip="A function to get the 2*area of a traingle, using its determinat."]; + Node1 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node9 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/docs/html/class_intelli_tool_polygon_aa36b012b48311c36e7cd6771a5081427_cgraph.dot b/docs/html/class_intelli_tool_polygon_aa36b012b48311c36e7cd6771a5081427_cgraph.dot new file mode 100644 index 0000000..3077f0c --- /dev/null +++ b/docs/html/class_intelli_tool_polygon_aa36b012b48311c36e7cd6771a5081427_cgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliToolPolygon::onMouseRightPressed" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolPolygon\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; +} diff --git a/docs/html/class_intelli_tool_polygon_ad5d3b741be6d0647a9cdc9da2cb8bc3d_cgraph.dot b/docs/html/class_intelli_tool_polygon_ad5d3b741be6d0647a9cdc9da2cb8bc3d_cgraph.dot new file mode 100644 index 0000000..7d2af7b --- /dev/null +++ b/docs/html/class_intelli_tool_polygon_ad5d3b741be6d0647a9cdc9da2cb8bc3d_cgraph.dot @@ -0,0 +1,25 @@ +digraph "IntelliToolPolygon::onMouseLeftPressed" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolPolygon\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliImage::drawLine",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31",tooltip="A function that draws A Line between two given Points in a given color."]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliImage::drawPlain",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#a6be622810dc2bc756054bb5769becb06",tooltip="A function that clears the whole image in a given Color."]; + Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="IntelliImage::drawPoint",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#a2e787f1b333b59401643936ebb3dcfe1",tooltip="A."]; + Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7",tooltip="A function to read the primary selected color."]; + Node1 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="PaintingArea::getHeightActive\lLayer",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a1511a534e206089fff1d325e7ec7a8eb",tooltip=" "]; + Node1 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="PaintingArea::getWidthActive\lLayer",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a427c5fc26480c7ae80b3480e85510bda",tooltip=" "]; + Node1 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="IntelliTool::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node9 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/docs/html/class_intelli_tool_rectangle.html b/docs/html/class_intelli_tool_rectangle.html index e55cc41..3f8e633 100644 --- a/docs/html/class_intelli_tool_rectangle.html +++ b/docs/html/class_intelli_tool_rectangle.html @@ -94,6 +94,9 @@ $(document).ready(function(){initNavTree('class_intelli_tool_rectangle.html','')
    +

    The IntelliToolRectangle class represents a tool to draw a rectangle. + More...

    +

    #include <IntelliToolRectangle.h>

    Inheritance diagram for IntelliToolRectangle:
    @@ -109,26 +112,28 @@ Collaboration diagram for IntelliToolRectangle:

    Public Member Functions

     IntelliToolRectangle (PaintingArea *Area, IntelliColorPicker *colorPicker) + A constructor setting the general paintingArea and colorPicker. And reading in the alphaInner and edgeWidth. More...
      virtual ~IntelliToolRectangle () override + A Destructor. More...
      virtual void onMouseRightPressed (int x, int y) override - A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes! More...
    + A function managing the right click pressed of a mouse.Resetting the current draw. More...
      virtual void onMouseRightReleased (int x, int y) override - A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes! More...
    + A function managing the right click released of a mouse. More...
      virtual void onMouseLeftPressed (int x, int y) override - A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes! More...
    + A function managing the left click pressed of a mouse. Setting the originCorner and draws a rectangle. More...
      virtual void onMouseLeftReleased (int x, int y) override - A function managing the left click Released of a Mouse. Call this in child classes! More...
    + A function managing the left click released of a mouse. Merging the draw to the active layer. More...
      virtual void onWheelScrolled (int value) override - A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes! More...
    + A function managing the scroll event.Changing edgeWidth relativ to value. More...
      virtual void onMouseMoved (int x, int y) override - A function managing the mouse moved event. Call this in child classes! More...
    + A function managing the mouse moved event.Drawing a rectangle to currrent mouse position. More...
      - Public Member Functions inherited from IntelliTool  IntelliTool (PaintingArea *Area, IntelliColorPicker *colorPicker) @@ -158,8 +163,9 @@ Additional Inherited Members  

    Detailed Description

    -
    -

    Definition at line 9 of file IntelliToolRectangle.h.

    +

    The IntelliToolRectangle class represents a tool to draw a rectangle.

    + +

    Definition at line 11 of file IntelliToolRectangle.h.

    Constructor & Destructor Documentation

    ◆ IntelliToolRectangle()

    @@ -187,6 +193,15 @@ Additional Inherited Members
    +

    A constructor setting the general paintingArea and colorPicker. And reading in the alphaInner and edgeWidth.

    +
    Parameters
    + + + +
    Area- The general paintingArea used by the project.
    colorPicker- The general colorPicker used by the project.
    +
    +
    +

    Definition at line 5 of file IntelliToolRectangle.cpp.

    @@ -214,6 +229,8 @@ Additional Inherited Members
    +

    A Destructor.

    +

    Definition at line 11 of file IntelliToolRectangle.cpp.

    @@ -253,11 +270,11 @@ Additional Inherited Members
    -

    A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes!

    +

    A function managing the left click pressed of a mouse. Setting the originCorner and draws a rectangle.

    Parameters
    - - + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.
    @@ -307,11 +324,11 @@ Here is the call graph for this function:
    -

    A function managing the left click Released of a Mouse. Call this in child classes!

    +

    A function managing the left click released of a mouse. Merging the draw to the active layer.

    Parameters
    - - + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.
    @@ -361,11 +378,11 @@ Here is the call graph for this function:
    -

    A function managing the mouse moved event. Call this in child classes!

    +

    A function managing the mouse moved event.Drawing a rectangle to currrent mouse position.

    Parameters
    - - + +
    x- The x coordinate of the new Mouse Position.
    y- The y coordinate of the new Mouse Position.
    x- The x coordinate of the new mouse position.
    y- The y coordinate of the new mouse position.
    @@ -415,11 +432,11 @@ Here is the call graph for this function:
    -

    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes!

    +

    A function managing the right click pressed of a mouse.Resetting the current draw.

    Parameters
    - - + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.
    @@ -469,11 +486,11 @@ Here is the call graph for this function:
    -

    A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes!

    +

    A function managing the right click released of a mouse.

    Parameters
    - - + +
    x- The x coordinate relative to the Active/Canvas Layer.
    y- The y coordinate relative to the Active/Canvas Layer.
    x- The x coordinate relative to the active/canvas layer.
    y- The y coordinate relative to the active/canvas layer.
    @@ -513,7 +530,7 @@ Here is the call graph for this function:
    -

    A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child classes!

    +

    A function managing the scroll event.Changing edgeWidth relativ to value.

    Parameters
    diff --git a/docs/html/class_intelli_tool_rectangle__coll__graph.dot b/docs/html/class_intelli_tool_rectangle__coll__graph.dot index 5fe015b..0334832 100644 --- a/docs/html/class_intelli_tool_rectangle__coll__graph.dot +++ b/docs/html/class_intelli_tool_rectangle__coll__graph.dot @@ -3,7 +3,7 @@ digraph "IntelliToolRectangle" // LATEX_PDF_SIZE edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; - Node1 [label="IntelliToolRectangle",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliToolRectangle",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The IntelliToolRectangle class represents a tool to draw a rectangle."]; Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; Node3 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Area" ,fontname="Helvetica"]; diff --git a/docs/html/class_intelli_tool_rectangle__inherit__graph.dot b/docs/html/class_intelli_tool_rectangle__inherit__graph.dot index 1e0e08e..1db5251 100644 --- a/docs/html/class_intelli_tool_rectangle__inherit__graph.dot +++ b/docs/html/class_intelli_tool_rectangle__inherit__graph.dot @@ -3,7 +3,7 @@ digraph "IntelliToolRectangle" // LATEX_PDF_SIZE edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; - Node1 [label="IntelliToolRectangle",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliToolRectangle",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The IntelliToolRectangle class represents a tool to draw a rectangle."]; Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; } diff --git a/docs/html/class_intelli_tool_rectangle_a445c53a56e859f970e59f5036e221e0c_cgraph.dot b/docs/html/class_intelli_tool_rectangle_a445c53a56e859f970e59f5036e221e0c_cgraph.dot index dcd0680..9af030b 100644 --- a/docs/html/class_intelli_tool_rectangle_a445c53a56e859f970e59f5036e221e0c_cgraph.dot +++ b/docs/html/class_intelli_tool_rectangle_a445c53a56e859f970e59f5036e221e0c_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolRectangle::onWheelScrolled" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolRectangle\l::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node1 [label="IntelliToolRectangle\l::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the scroll event.Changing edgeWidth relativ to value."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliTool::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node2 [label="IntelliTool::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574",tooltip="A function managing the scroll event. A positive value means scrolling outwards. Call this in child c..."]; } diff --git a/docs/html/class_intelli_tool_rectangle_a480c6804a4963c5a1c3f7ef84b63c1a8_cgraph.dot b/docs/html/class_intelli_tool_rectangle_a480c6804a4963c5a1c3f7ef84b63c1a8_cgraph.dot index d2f4ef0..e8913f6 100644 --- a/docs/html/class_intelli_tool_rectangle_a480c6804a4963c5a1c3f7ef84b63c1a8_cgraph.dot +++ b/docs/html/class_intelli_tool_rectangle_a480c6804a4963c5a1c3f7ef84b63c1a8_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolRectangle::onMouseRightPressed" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolRectangle\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; + Node1 [label="IntelliToolRectangle\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click pressed of a mouse.Resetting the current draw."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; } diff --git a/docs/html/class_intelli_tool_rectangle_a4b5931071e21eb6949ffe357315e408b_cgraph.dot b/docs/html/class_intelli_tool_rectangle_a4b5931071e21eb6949ffe357315e408b_cgraph.dot index 3d561d1..845cacb 100644 --- a/docs/html/class_intelli_tool_rectangle_a4b5931071e21eb6949ffe357315e408b_cgraph.dot +++ b/docs/html/class_intelli_tool_rectangle_a4b5931071e21eb6949ffe357315e408b_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolRectangle::onMouseMoved" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolRectangle\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node1 [label="IntelliToolRectangle\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the mouse moved event.Drawing a rectangle to currrent mouse position."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliImage::drawPlain",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#a6be622810dc2bc756054bb5769becb06",tooltip="A function that clears the whole image in a given Color."]; Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; diff --git a/docs/html/class_intelli_tool_rectangle_a94460e3ff1c19e80bde922c55f53cc43_cgraph.dot b/docs/html/class_intelli_tool_rectangle_a94460e3ff1c19e80bde922c55f53cc43_cgraph.dot index 6dcce2b..3addb3f 100644 --- a/docs/html/class_intelli_tool_rectangle_a94460e3ff1c19e80bde922c55f53cc43_cgraph.dot +++ b/docs/html/class_intelli_tool_rectangle_a94460e3ff1c19e80bde922c55f53cc43_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolRectangle::onMouseLeftReleased" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolRectangle\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node1 [label="IntelliToolRectangle\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click released of a mouse. Merging the draw to the active layer."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; diff --git a/docs/html/class_intelli_tool_rectangle_ad43f653256a6516b9398f82054be0d7f_cgraph.dot b/docs/html/class_intelli_tool_rectangle_ad43f653256a6516b9398f82054be0d7f_cgraph.dot index 1d287d7..daac2ca 100644 --- a/docs/html/class_intelli_tool_rectangle_ad43f653256a6516b9398f82054be0d7f_cgraph.dot +++ b/docs/html/class_intelli_tool_rectangle_ad43f653256a6516b9398f82054be0d7f_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolRectangle::onMouseRightReleased" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolRectangle\l::onMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; + Node1 [label="IntelliToolRectangle\l::onMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click released of a mouse."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; } diff --git a/docs/html/class_intelli_tool_rectangle_ae03c307ccf66cbe3fd59e3657712368d_cgraph.dot b/docs/html/class_intelli_tool_rectangle_ae03c307ccf66cbe3fd59e3657712368d_cgraph.dot index a63f48b..21405cb 100644 --- a/docs/html/class_intelli_tool_rectangle_ae03c307ccf66cbe3fd59e3657712368d_cgraph.dot +++ b/docs/html/class_intelli_tool_rectangle_ae03c307ccf66cbe3fd59e3657712368d_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolRectangle::onMouseLeftPressed" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolRectangle\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node1 [label="IntelliToolRectangle\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click pressed of a mouse. Setting the originCorner and draws a rectangle..."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; diff --git a/docs/html/class_painting_area-members.html b/docs/html/class_painting_area-members.html index bbeeed2..0727276 100644 --- a/docs/html/class_painting_area-members.html +++ b/docs/html/class_painting_area-members.html @@ -103,6 +103,8 @@ $(document).ready(function(){initNavTree('class_painting_area.html','');}); + + diff --git a/docs/html/class_painting_area.html b/docs/html/class_painting_area.html index 4eab62c..db0260d 100644 --- a/docs/html/class_painting_area.html +++ b/docs/html/class_painting_area.html @@ -153,6 +153,10 @@ Public Member Functions + + + +
    value- The absolute the scroll has changed.
    createPlainTool()PaintingArea
    deleteLayer(int index)PaintingArea
    floodFill(int r, int g, int b, int a)PaintingArea
    getHeightActiveLayer()PaintingArea
    getWidthActiveLayer()PaintingArea
    mouseMoveEvent(QMouseEvent *event) overridePaintingAreaprotected
    mousePressEvent(QMouseEvent *event) overridePaintingAreaprotected
    mouseReleaseEvent(QMouseEvent *event) overridePaintingAreaprotected
     
    void createLineTool ()
     
    int getWidthActiveLayer ()
     
    int getHeightActiveLayer ()
     
    @@ -171,7 +175,7 @@ Protected Member Functions

    Protected Member Functions

    Detailed Description

    -

    Definition at line 26 of file PaintingArea.h.

    +

    Definition at line 25 of file PaintingArea.h.

    Constructor & Destructor Documentation

    ◆ PaintingArea()

    @@ -205,7 +209,7 @@ Protected Member Functions
    -

    Definition at line 20 of file PaintingArea.cpp.

    +

    Definition at line 21 of file PaintingArea.cpp.

    Here is the call graph for this function:
    @@ -237,7 +241,7 @@ Here is the call graph for this function:
    -

    Definition at line 42 of file PaintingArea.cpp.

    +

    Definition at line 43 of file PaintingArea.cpp.

    @@ -286,7 +290,7 @@ Here is the call graph for this function:
    -

    Definition at line 57 of file PaintingArea.cpp.

    +

    Definition at line 58 of file PaintingArea.cpp.

    Here is the caller graph for this function:
    @@ -362,7 +366,7 @@ Here is the caller graph for this function:
    -

    Definition at line 167 of file PaintingArea.cpp.

    +

    Definition at line 168 of file PaintingArea.cpp.

    Here is the call graph for this function:
    @@ -386,7 +390,7 @@ Here is the call graph for this function:
    -

    Definition at line 172 of file PaintingArea.cpp.

    +

    Definition at line 173 of file PaintingArea.cpp.

    Here is the call graph for this function:
    @@ -410,7 +414,7 @@ Here is the call graph for this function:
    -

    Definition at line 177 of file PaintingArea.cpp.

    +

    Definition at line 178 of file PaintingArea.cpp.

    Here is the call graph for this function:
    @@ -434,7 +438,7 @@ Here is the call graph for this function:
    -

    Definition at line 191 of file PaintingArea.cpp.

    +

    Definition at line 192 of file PaintingArea.cpp.

    @@ -453,7 +457,7 @@ Here is the call graph for this function:
    -

    Definition at line 181 of file PaintingArea.cpp.

    +

    Definition at line 182 of file PaintingArea.cpp.

    @@ -472,7 +476,7 @@ Here is the call graph for this function:
    -

    Definition at line 186 of file PaintingArea.cpp.

    +

    Definition at line 187 of file PaintingArea.cpp.

    @@ -492,7 +496,7 @@ Here is the call graph for this function:
    -

    Definition at line 74 of file PaintingArea.cpp.

    +

    Definition at line 75 of file PaintingArea.cpp.

    @@ -534,13 +538,61 @@ Here is the call graph for this function:
    -

    Definition at line 139 of file PaintingArea.cpp.

    +

    Definition at line 140 of file PaintingArea.cpp.

    Here is the call graph for this function:
    +
    + + +

    ◆ getHeightActiveLayer()

    + +
    +
    + + + + + + + +
    int PaintingArea::getHeightActiveLayer ()
    +
    + +

    Definition at line 201 of file PaintingArea.cpp.

    +
    +Here is the caller graph for this function:
    +
    +
    +
    + +
    +
    + +

    ◆ getWidthActiveLayer()

    + +
    +
    + + + + + + + +
    int PaintingArea::getWidthActiveLayer ()
    +
    + +

    Definition at line 197 of file PaintingArea.cpp.

    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    @@ -567,7 +619,7 @@ Here is the call graph for this function:
    -

    Definition at line 215 of file PaintingArea.cpp.

    +

    Definition at line 224 of file PaintingArea.cpp.

    Here is the call graph for this function:
    @@ -600,7 +652,7 @@ Here is the call graph for this function:
    -

    Definition at line 199 of file PaintingArea.cpp.

    +

    Definition at line 208 of file PaintingArea.cpp.

    Here is the call graph for this function:
    @@ -633,7 +685,7 @@ Here is the call graph for this function:
    -

    Definition at line 225 of file PaintingArea.cpp.

    +

    Definition at line 234 of file PaintingArea.cpp.

    Here is the call graph for this function:
    @@ -658,7 +710,7 @@ Here is the call graph for this function:
    -

    Definition at line 153 of file PaintingArea.cpp.

    +

    Definition at line 154 of file PaintingArea.cpp.

    @@ -688,7 +740,7 @@ Here is the call graph for this function:
    -

    Definition at line 148 of file PaintingArea.cpp.

    +

    Definition at line 149 of file PaintingArea.cpp.

    @@ -708,7 +760,7 @@ Here is the call graph for this function:
    -

    Definition at line 103 of file PaintingArea.cpp.

    +

    Definition at line 104 of file PaintingArea.cpp.

    Here is the call graph for this function:
    @@ -741,7 +793,7 @@ Here is the call graph for this function:
    -

    Definition at line 249 of file PaintingArea.cpp.

    +

    Definition at line 258 of file PaintingArea.cpp.

    @@ -769,7 +821,7 @@ Here is the call graph for this function:
    -

    Definition at line 260 of file PaintingArea.cpp.

    +

    Definition at line 269 of file PaintingArea.cpp.

    @@ -799,7 +851,7 @@ Here is the call graph for this function:
    -

    Definition at line 115 of file PaintingArea.cpp.

    +

    Definition at line 116 of file PaintingArea.cpp.

    @@ -829,7 +881,7 @@ Here is the call graph for this function:
    -

    Definition at line 96 of file PaintingArea.cpp.

    +

    Definition at line 97 of file PaintingArea.cpp.

    @@ -849,7 +901,7 @@ Here is the call graph for this function:
    -

    Definition at line 90 of file PaintingArea.cpp.

    +

    Definition at line 91 of file PaintingArea.cpp.

    Here is the caller graph for this function:
    @@ -882,7 +934,7 @@ Here is the caller graph for this function:
    -

    Definition at line 161 of file PaintingArea.cpp.

    +

    Definition at line 162 of file PaintingArea.cpp.

    Here is the call graph for this function:
    @@ -914,7 +966,7 @@ Here is the call graph for this function:
    -

    Definition at line 83 of file PaintingArea.cpp.

    +

    Definition at line 84 of file PaintingArea.cpp.

    @@ -942,7 +994,7 @@ Here is the call graph for this function:
    -

    Definition at line 238 of file PaintingArea.cpp.

    +

    Definition at line 247 of file PaintingArea.cpp.

    Here is the call graph for this function:
    diff --git a/docs/html/class_painting_area.js b/docs/html/class_painting_area.js index 35ae835..3ea95c4 100644 --- a/docs/html/class_painting_area.js +++ b/docs/html/class_painting_area.js @@ -12,6 +12,8 @@ var class_painting_area = [ "createPlainTool", "class_painting_area.html#a3de83443d2d5cf460ff48d0602070938", null ], [ "deleteLayer", "class_painting_area.html#a6efad6f8ea060674b157b42b431cd173", null ], [ "floodFill", "class_painting_area.html#aeb5eb394b979ea90f2be9849fdda1774", null ], + [ "getHeightActiveLayer", "class_painting_area.html#a1511a534e206089fff1d325e7ec7a8eb", null ], + [ "getWidthActiveLayer", "class_painting_area.html#a427c5fc26480c7ae80b3480e85510bda", null ], [ "mouseMoveEvent", "class_painting_area.html#aa22e274b6094a9619f196cd7b49526b5", null ], [ "mousePressEvent", "class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15", null ], [ "mouseReleaseEvent", "class_painting_area.html#a35b5df914acb608cc29717659793359c", null ], diff --git a/docs/html/class_painting_area_a1511a534e206089fff1d325e7ec7a8eb_icgraph.dot b/docs/html/class_painting_area_a1511a534e206089fff1d325e7ec7a8eb_icgraph.dot new file mode 100644 index 0000000..786a371 --- /dev/null +++ b/docs/html/class_painting_area_a1511a534e206089fff1d325e7ec7a8eb_icgraph.dot @@ -0,0 +1,10 @@ +digraph "PaintingArea::getHeightActiveLayer" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="PaintingArea::getHeightActive\lLayer",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliToolPolygon\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; +} diff --git a/docs/html/class_painting_area_a427c5fc26480c7ae80b3480e85510bda_icgraph.dot b/docs/html/class_painting_area_a427c5fc26480c7ae80b3480e85510bda_icgraph.dot new file mode 100644 index 0000000..1add7b7 --- /dev/null +++ b/docs/html/class_painting_area_a427c5fc26480c7ae80b3480e85510bda_icgraph.dot @@ -0,0 +1,10 @@ +digraph "PaintingArea::getWidthActiveLayer" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="PaintingArea::getWidthActive\lLayer",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliToolPolygon\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; +} diff --git a/docs/html/class_painting_area_a632848d99f44d33d7da2618fbc6775a4_cgraph.dot b/docs/html/class_painting_area_a632848d99f44d33d7da2618fbc6775a4_cgraph.dot index 6a98c15..abb7a14 100644 --- a/docs/html/class_painting_area_a632848d99f44d33d7da2618fbc6775a4_cgraph.dot +++ b/docs/html/class_painting_area_a632848d99f44d33d7da2618fbc6775a4_cgraph.dot @@ -6,5 +6,5 @@ digraph "PaintingArea::wheelEvent" rankdir="LR"; Node1 [label="PaintingArea::wheelEvent",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliTool::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574",tooltip="A function managing the scroll event. A Positive Value means scrolling outwards. Call this in child c..."]; + Node2 [label="IntelliTool::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574",tooltip="A function managing the scroll event. A positive value means scrolling outwards. Call this in child c..."]; } diff --git a/docs/html/classes.html b/docs/html/classes.html index 61a7d42..2cbe10b 100644 --- a/docs/html/classes.html +++ b/docs/html/classes.html @@ -96,32 +96,32 @@ $(document).ready(function(){initNavTree('classes.html','');}); IntelliRasterImage    IntelliToolLine    -
      p  
    +
      l  
    - +
      t  
    + + IntelliShapedImage    IntelliToolPen    - + IntelliColorPicker    IntelliTool    IntelliToolPlainTool    -PaintingArea    - +LayerObject    +Triangle    + IntelliImage    IntelliToolCircle    -IntelliToolRectangle    -
      t  
    +IntelliToolPolygon    +
      p  
    IntelliPhotoGui    IntelliToolFloodFill    -
      l  
    - +IntelliToolRectangle    -Triangle    +PaintingArea    -LayerObject    -
    i | l | p | t
    diff --git a/docs/html/dir_000005_000004.html b/docs/html/dir_000005_000004.html index ee7ddc6..0712604 100644 --- a/docs/html/dir_000005_000004.html +++ b/docs/html/dir_000005_000004.html @@ -86,7 +86,7 @@ $(document).ready(function(){initNavTree('dir_941490de56ac122cf77df9922cbcc750.h
    -

    Tool → IntelliHelper Relation

    File in intelliphoto/src/ToolIncludes file in intelliphoto/src/IntelliHelper
    IntelliColorPicker.cppIntelliColorPicker.h
    IntelliTool.hIntelliColorPicker.h
    +

    Tool → IntelliHelper Relation

    File in intelliphoto/src/ToolIncludes file in intelliphoto/src/IntelliHelper
    IntelliColorPicker.cppIntelliColorPicker.h
    IntelliTool.hIntelliColorPicker.h
    IntelliToolPolygon.hIntelliHelper.h
    +

    Tool → Layer Relation

    File in intelliphoto/src/ToolIncludes file in intelliphoto/src/Layer
    IntelliTool.cppPaintingArea.h
    IntelliToolCircle.cppPaintingArea.h
    IntelliToolFloodFill.cppPaintingArea.h
    IntelliToolLine.cppPaintingArea.h
    IntelliToolPen.cppPaintingArea.h
    IntelliToolPlain.cppPaintingArea.h
    IntelliToolPolygon.cppPaintingArea.h
    IntelliToolRectangle.cppPaintingArea.h
    +

    Layer → Tool Relation

    File in intelliphoto/src/LayerIncludes file in intelliphoto/src/Tool
    PaintingArea.cppIntelliToolCircle.h
    PaintingArea.cppIntelliToolFloodFill.h
    PaintingArea.cppIntelliToolLine.h
    PaintingArea.cppIntelliToolPen.h
    PaintingArea.cppIntelliToolPlain.h
    PaintingArea.cppIntelliToolPolygon.h
    PaintingArea.cppIntelliToolRectangle.h
    PaintingArea.hIntelliTool.h
    diff --git a/docs/html/functions.html b/docs/html/functions.html index 5b5f712..fd10ff8 100644 --- a/docs/html/functions.html +++ b/docs/html/functions.html @@ -198,6 +198,9 @@ $(document).ready(function(){initNavTree('functions.html','');});
  • getFirstColor() : IntelliColorPicker
  • +
  • getHeightActiveLayer() +: PaintingArea +
  • getPixelColor() : IntelliImage
  • @@ -208,6 +211,9 @@ $(document).ready(function(){initNavTree('functions.html','');});
  • getSecondColor() : IntelliColorPicker
  • +
  • getWidthActiveLayer() +: PaintingArea +
  • @@ -261,6 +267,9 @@ $(document).ready(function(){initNavTree('functions.html','');});
  • IntelliToolPlainTool() : IntelliToolPlainTool
  • +
  • IntelliToolPolygon() +: IntelliToolPolygon +
  • IntelliToolRectangle() : IntelliToolRectangle
  • @@ -301,6 +310,7 @@ $(document).ready(function(){initNavTree('functions.html','');}); , IntelliToolLine , IntelliToolPen , IntelliToolPlainTool +, IntelliToolPolygon , IntelliToolRectangle
  • onMouseLeftReleased() @@ -310,6 +320,7 @@ $(document).ready(function(){initNavTree('functions.html','');}); , IntelliToolLine , IntelliToolPen , IntelliToolPlainTool +, IntelliToolPolygon , IntelliToolRectangle
  • onMouseMoved() @@ -319,6 +330,7 @@ $(document).ready(function(){initNavTree('functions.html','');}); , IntelliToolLine , IntelliToolPen , IntelliToolPlainTool +, IntelliToolPolygon , IntelliToolRectangle
  • onMouseRightPressed() @@ -328,6 +340,7 @@ $(document).ready(function(){initNavTree('functions.html','');}); , IntelliToolLine , IntelliToolPen , IntelliToolPlainTool +, IntelliToolPolygon , IntelliToolRectangle
  • onMouseRightReleased() @@ -337,6 +350,7 @@ $(document).ready(function(){initNavTree('functions.html','');}); , IntelliToolLine , IntelliToolPen , IntelliToolPlainTool +, IntelliToolPolygon , IntelliToolRectangle
  • onWheelScrolled() @@ -346,6 +360,7 @@ $(document).ready(function(){initNavTree('functions.html','');}); , IntelliToolLine , IntelliToolPen , IntelliToolPlainTool +, IntelliToolPolygon , IntelliToolRectangle
  • open() @@ -451,6 +466,9 @@ $(document).ready(function(){initNavTree('functions.html','');});
  • ~IntelliToolPen() : IntelliToolPen
  • +
  • ~IntelliToolPlainTool() +: IntelliToolPlainTool +
  • ~IntelliToolRectangle() : IntelliToolRectangle
  • diff --git a/docs/html/functions_func.html b/docs/html/functions_func.html index 59d9e34..74d29d3 100644 --- a/docs/html/functions_func.html +++ b/docs/html/functions_func.html @@ -167,6 +167,9 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
  • getFirstColor() : IntelliColorPicker
  • +
  • getHeightActiveLayer() +: PaintingArea +
  • getPixelColor() : IntelliImage
  • @@ -177,6 +180,9 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
  • getSecondColor() : IntelliColorPicker
  • +
  • getWidthActiveLayer() +: PaintingArea +
  • @@ -214,6 +220,9 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
  • IntelliToolPlainTool() : IntelliToolPlainTool
  • +
  • IntelliToolPolygon() +: IntelliToolPolygon +
  • IntelliToolRectangle() : IntelliToolRectangle
  • @@ -254,6 +263,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');}); , IntelliToolLine , IntelliToolPen , IntelliToolPlainTool +, IntelliToolPolygon , IntelliToolRectangle
  • onMouseLeftReleased() @@ -263,6 +273,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');}); , IntelliToolLine , IntelliToolPen , IntelliToolPlainTool +, IntelliToolPolygon , IntelliToolRectangle
  • onMouseMoved() @@ -272,6 +283,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');}); , IntelliToolLine , IntelliToolPen , IntelliToolPlainTool +, IntelliToolPolygon , IntelliToolRectangle
  • onMouseRightPressed() @@ -281,6 +293,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');}); , IntelliToolLine , IntelliToolPen , IntelliToolPlainTool +, IntelliToolPolygon , IntelliToolRectangle
  • onMouseRightReleased() @@ -290,6 +303,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');}); , IntelliToolLine , IntelliToolPen , IntelliToolPlainTool +, IntelliToolPolygon , IntelliToolRectangle
  • onWheelScrolled() @@ -299,6 +313,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');}); , IntelliToolLine , IntelliToolPen , IntelliToolPlainTool +, IntelliToolPolygon , IntelliToolRectangle
  • open() @@ -395,6 +410,9 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
  • ~IntelliToolPen() : IntelliToolPen
  • +
  • ~IntelliToolPlainTool() +: IntelliToolPlainTool +
  • ~IntelliToolRectangle() : IntelliToolRectangle
  • diff --git a/docs/html/globals.html b/docs/html/globals.html index 06d0c39..0b756c7 100644 --- a/docs/html/globals.html +++ b/docs/html/globals.html @@ -96,12 +96,6 @@ $(document).ready(function(){initNavTree('globals.html','');});
  • main() : main.cpp
  • -
  • slotCreateFloodFillTool() -: IntelliPhotoGui.cpp -
  • -
  • slotCreatePenTool() -: IntelliPhotoGui.cpp -
  • diff --git a/docs/html/globals_func.html b/docs/html/globals_func.html index 5bbf5e0..84487a8 100644 --- a/docs/html/globals_func.html +++ b/docs/html/globals_func.html @@ -90,12 +90,6 @@ $(document).ready(function(){initNavTree('globals_func.html','');});
  • main() : main.cpp
  • -
  • slotCreateFloodFillTool() -: IntelliPhotoGui.cpp -
  • -
  • slotCreatePenTool() -: IntelliPhotoGui.cpp -
  • diff --git a/docs/html/hierarchy.html b/docs/html/hierarchy.html index 8cf0f2f..0a72852 100644 --- a/docs/html/hierarchy.html +++ b/docs/html/hierarchy.html @@ -99,18 +99,19 @@ This inheritance list is sorted roughly, but not completely, alphabetically: CIntelliRasterImageThe IntelliRasterImage manages a Rasterimage  CIntelliShapedImageThe IntelliShapedImage manages a Shapedimage  CIntelliToolAn abstract class that manages the basic events, like mouse clicks or scrolls events - CIntelliToolCircle - CIntelliToolFloodFill - CIntelliToolLine - CIntelliToolPen - CIntelliToolPlainTool - CIntelliToolRectangle - CLayerObject - CQMainWindow - CIntelliPhotoGui - CQWidget - CPaintingArea - CTriangleThe Triangle struct holds the 3 vertices of a triangle + CIntelliToolCircleTool to draw a circle + CIntelliToolFloodFillTool to flood FIll a certian area + CIntelliToolLineThe IntelliToolFloodFill class represents a tool to draw a line + CIntelliToolPenTool to draw a line + CIntelliToolPlainToolTool to fill the whole canvas with one color + CIntelliToolPolygonThe IntelliToolPolygon managed the Drawing of Polygonforms + CIntelliToolRectangleTool to draw a rectangle + CLayerObject + CQMainWindow + CIntelliPhotoGui + CQWidget + CPaintingArea + CTriangleThe Triangle struct holds the 3 vertices of a triangle diff --git a/docs/html/hierarchy.js b/docs/html/hierarchy.js index dade86a..edc99b7 100644 --- a/docs/html/hierarchy.js +++ b/docs/html/hierarchy.js @@ -12,6 +12,7 @@ var hierarchy = [ "IntelliToolLine", "class_intelli_tool_line.html", null ], [ "IntelliToolPen", "class_intelli_tool_pen.html", null ], [ "IntelliToolPlainTool", "class_intelli_tool_plain_tool.html", null ], + [ "IntelliToolPolygon", "class_intelli_tool_polygon.html", null ], [ "IntelliToolRectangle", "class_intelli_tool_rectangle.html", null ] ] ], [ "LayerObject", "struct_layer_object.html", null ], diff --git a/docs/html/inherit_graph_3.dot b/docs/html/inherit_graph_3.dot index 3e1129e..ec45d17 100644 --- a/docs/html/inherit_graph_3.dot +++ b/docs/html/inherit_graph_3.dot @@ -6,15 +6,17 @@ digraph "Graphical Class Hierarchy" rankdir="LR"; Node0 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; Node0 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node1 [label="IntelliToolCircle",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html",tooltip=" "]; + Node1 [label="IntelliToolCircle",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html",tooltip="The IntelliToolCircle class represents a tool to draw a circle."]; Node0 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliToolFloodFill",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html",tooltip=" "]; + Node2 [label="IntelliToolFloodFill",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html",tooltip="The IntelliToolFloodFill class represents a tool to flood FIll a certian area."]; Node0 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolLine",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html",tooltip=" "]; + Node3 [label="IntelliToolLine",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html",tooltip="The IntelliToolFloodFill class represents a tool to draw a line."]; Node0 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolPen",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html",tooltip=" "]; + Node4 [label="IntelliToolPen",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html",tooltip="The IntelliToolPen class represents a tool to draw a line."]; Node0 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliToolPlainTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html",tooltip=" "]; + Node5 [label="IntelliToolPlainTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html",tooltip="The IntelliToolPlainTool class represents a tool to fill the whole canvas with one color."]; Node0 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node6 [label="IntelliToolRectangle",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html",tooltip=" "]; + Node6 [label="IntelliToolPolygon",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html",tooltip="The IntelliToolPolygon managed the Drawing of Polygonforms."]; + Node0 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="IntelliToolRectangle",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html",tooltip="The IntelliToolRectangle class represents a tool to draw a rectangle."]; } diff --git a/docs/html/namespace_intelli_helper.html b/docs/html/namespace_intelli_helper.html index 97a8ecf..8754cd8 100644 --- a/docs/html/namespace_intelli_helper.html +++ b/docs/html/namespace_intelli_helper.html @@ -179,12 +179,17 @@ Here is the caller graph for this function:
    Returns
    Returns true if the point lies in the üpolygon, otherwise false.
    -

    Definition at line 116 of file IntelliHelper.cpp.

    +

    Definition at line 115 of file IntelliHelper.cpp.

    Here is the call graph for this function:
    +
    +Here is the caller graph for this function:
    +
    +
    +
    @@ -232,7 +237,7 @@ Here is the call graph for this function:
    Returns
    Returns true if the point is in the triangle, false otheriwse
    -

    Definition at line 34 of file IntelliHelper.h.

    +

    Definition at line 33 of file IntelliHelper.h.

    Here is the call graph for this function:
    @@ -297,7 +302,7 @@ Here is the caller graph for this function:
    Returns
    Returns the area of the traingle*2
    -

    Definition at line 24 of file IntelliHelper.h.

    +

    Definition at line 23 of file IntelliHelper.h.

    Here is the caller graph for this function:
    diff --git a/docs/html/namespace_intelli_helper_a214dc3624ba4562a03dc922e3dd7b617_icgraph.dot b/docs/html/namespace_intelli_helper_a214dc3624ba4562a03dc922e3dd7b617_icgraph.dot index a469999..2b66e54 100644 --- a/docs/html/namespace_intelli_helper_a214dc3624ba4562a03dc922e3dd7b617_icgraph.dot +++ b/docs/html/namespace_intelli_helper_a214dc3624ba4562a03dc922e3dd7b617_icgraph.dot @@ -6,7 +6,9 @@ digraph "IntelliHelper::calculateTriangles" rankdir="RL"; Node1 [label="IntelliHelper::calculate\lTriangles",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function to split a polygon in its spanning traingles by using Meisters Theorem of graph theory by ..."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliShapedImage\l::setPolygon",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#a4b69d75de7a3b85032482982f249458e",tooltip="A function that sets the data of the visible Polygon."]; - Node2 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliShapedImage\l::getDeepCopy",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#aed0b31e0fa771104399d1f5ff39a0337",tooltip="A function that copys all that returns a [allocated] Image."]; + Node2 [label="IntelliToolPolygon\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliShapedImage\l::setPolygon",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#a4b69d75de7a3b85032482982f249458e",tooltip="A function that sets the data of the visible Polygon."]; + Node3 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliShapedImage\l::getDeepCopy",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#aed0b31e0fa771104399d1f5ff39a0337",tooltip="A function that copys all that returns a [allocated] Image."]; } diff --git a/docs/html/namespace_intelli_helper_a44d516b3e619e2a743e9c98dd75cf901_icgraph.dot b/docs/html/namespace_intelli_helper_a44d516b3e619e2a743e9c98dd75cf901_icgraph.dot new file mode 100644 index 0000000..8e38406 --- /dev/null +++ b/docs/html/namespace_intelli_helper_a44d516b3e619e2a743e9c98dd75cf901_icgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliHelper::isInPolygon" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="RL"; + Node1 [label="IntelliHelper::isInPolygon",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function to check if a point lies in a polygon by checking its spanning triangles."]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliToolPolygon\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; +} diff --git a/docs/html/namespace_intelli_helper_a9fcfe72f00e870be4a8ab9f2e17483c9_icgraph.dot b/docs/html/namespace_intelli_helper_a9fcfe72f00e870be4a8ab9f2e17483c9_icgraph.dot index 3bb3130..8bb3cf6 100644 --- a/docs/html/namespace_intelli_helper_a9fcfe72f00e870be4a8ab9f2e17483c9_icgraph.dot +++ b/docs/html/namespace_intelli_helper_a9fcfe72f00e870be4a8ab9f2e17483c9_icgraph.dot @@ -7,4 +7,6 @@ digraph "IntelliHelper::isInTriangle" Node1 [label="IntelliHelper::isInTriangle",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function to check if a given point is in a triangle."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliHelper::isInPolygon",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$namespace_intelli_helper.html#a44d516b3e619e2a743e9c98dd75cf901",tooltip="A function to check if a point lies in a polygon by checking its spanning triangles."]; + Node2 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliToolPolygon\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; } diff --git a/docs/html/namespace_intelli_helper_afdd9fe78cc5d21b59642910220768149_icgraph.dot b/docs/html/namespace_intelli_helper_afdd9fe78cc5d21b59642910220768149_icgraph.dot index 0e75055..2e582d4 100644 --- a/docs/html/namespace_intelli_helper_afdd9fe78cc5d21b59642910220768149_icgraph.dot +++ b/docs/html/namespace_intelli_helper_afdd9fe78cc5d21b59642910220768149_icgraph.dot @@ -9,4 +9,6 @@ digraph "IntelliHelper::sign" Node2 [label="IntelliHelper::isInTriangle",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$namespace_intelli_helper.html#a9fcfe72f00e870be4a8ab9f2e17483c9",tooltip="A function to check if a given point is in a triangle."]; Node2 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node3 [label="IntelliHelper::isInPolygon",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$namespace_intelli_helper.html#a44d516b3e619e2a743e9c98dd75cf901",tooltip="A function to check if a point lies in a polygon by checking its spanning triangles."]; + Node3 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="IntelliToolPolygon\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; } diff --git a/docs/html/navtreedata.js b/docs/html/navtreedata.js index d324c61..fbfe306 100644 --- a/docs/html/navtreedata.js +++ b/docs/html/navtreedata.js @@ -53,7 +53,8 @@ var NAVTREE = var NAVTREEINDEX = [ -"_intelli_color_picker_8h.html" +"_intelli_color_picker_8h.html", +"struct_layer_object.html#a4b1729dbf7d3490e4c2776e29ffef8b0" ]; var SYNCONMSG = 'click to disable panel synchronisation'; diff --git a/docs/html/navtreeindex0.js b/docs/html/navtreeindex0.js index 168ea99..8f12a09 100644 --- a/docs/html/navtreeindex0.js +++ b/docs/html/navtreeindex0.js @@ -20,8 +20,6 @@ var NAVTREEINDEX0 = "_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0ab7e2d2c1c171e5a0e0b6b548449df79d":[2,0,0,0,1,1,1,1], "_intelli_image_8h_source.html":[2,0,0,0,1,1], "_intelli_photo_gui_8cpp.html":[2,0,0,0,0,0], -"_intelli_photo_gui_8cpp.html#a30169da42b55e0339af0d28dfc8ccd40":[2,0,0,0,0,0,1], -"_intelli_photo_gui_8cpp.html#ac2f8320173dfaf943bb39e39cb1a23e5":[2,0,0,0,0,0,0], "_intelli_photo_gui_8cpp_source.html":[2,0,0,0,0,0], "_intelli_photo_gui_8h.html":[2,0,0,0,0,1], "_intelli_photo_gui_8h_source.html":[2,0,0,0,0,1], @@ -60,10 +58,14 @@ var NAVTREEINDEX0 = "_intelli_tool_plain_8cpp_source.html":[2,0,0,0,4,11], "_intelli_tool_plain_8h.html":[2,0,0,0,4,12], "_intelli_tool_plain_8h_source.html":[2,0,0,0,4,12], -"_intelli_tool_rectangle_8cpp.html":[2,0,0,0,4,13], -"_intelli_tool_rectangle_8cpp_source.html":[2,0,0,0,4,13], -"_intelli_tool_rectangle_8h.html":[2,0,0,0,4,14], -"_intelli_tool_rectangle_8h_source.html":[2,0,0,0,4,14], +"_intelli_tool_polygon_8cpp.html":[2,0,0,0,4,13], +"_intelli_tool_polygon_8cpp_source.html":[2,0,0,0,4,13], +"_intelli_tool_polygon_8h.html":[2,0,0,0,4,14], +"_intelli_tool_polygon_8h_source.html":[2,0,0,0,4,14], +"_intelli_tool_rectangle_8cpp.html":[2,0,0,0,4,15], +"_intelli_tool_rectangle_8cpp_source.html":[2,0,0,0,4,15], +"_intelli_tool_rectangle_8h.html":[2,0,0,0,4,16], +"_intelli_tool_rectangle_8h_source.html":[2,0,0,0,4,16], "_painting_area_8cpp.html":[2,0,0,0,3,0], "_painting_area_8cpp_source.html":[2,0,0,0,3,0], "_painting_area_8h.html":[2,0,0,0,3,1], @@ -168,48 +170,59 @@ var NAVTREEINDEX0 = "class_intelli_tool_pen.html#afe3626ddff440ab125f4a2465c45427a":[1,0,9,7], "class_intelli_tool_plain_tool.html":[1,0,10], "class_intelli_tool_plain_tool.html#a0ff0b9f7b78b763683076e4417236859":[1,0,10,0], -"class_intelli_tool_plain_tool.html#a2ae458f1b04eb77a47f6dca5e91e33b8":[1,0,10,5], -"class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9":[1,0,10,1], -"class_intelli_tool_plain_tool.html#ac23f5d0f07e42fd7c2ea3fc1347da400":[1,0,10,2], -"class_intelli_tool_plain_tool.html#acb0c46e16d2c09370a2244a936de38b1":[1,0,10,4], -"class_intelli_tool_plain_tool.html#ad7546a6335bb3bb4cbf0e1883788d41c":[1,0,10,3], -"class_intelli_tool_plain_tool.html#adc004ea421e2cc0ac39cc7a6b6d43d0d":[1,0,10,6], -"class_intelli_tool_rectangle.html":[1,0,11], -"class_intelli_tool_rectangle.html#a445c53a56e859f970e59f5036e221e0c":[1,0,11,7], -"class_intelli_tool_rectangle.html#a480c6804a4963c5a1c3f7ef84b63c1a8":[1,0,11,5], -"class_intelli_tool_rectangle.html#a4b5931071e21eb6949ffe357315e408b":[1,0,11,4], -"class_intelli_tool_rectangle.html#a7dc1463e726a21255e6297241dc71fb1":[1,0,11,1], -"class_intelli_tool_rectangle.html#a94460e3ff1c19e80bde922c55f53cc43":[1,0,11,3], -"class_intelli_tool_rectangle.html#aa9823939a8b8924520a2943cf6335c11":[1,0,11,0], -"class_intelli_tool_rectangle.html#ad43f653256a6516b9398f82054be0d7f":[1,0,11,6], -"class_intelli_tool_rectangle.html#ae03c307ccf66cbe3fd59e3657712368d":[1,0,11,2], -"class_painting_area.html":[1,0,13], -"class_painting_area.html#a1d6d86c25efdce9fe9031a9cd01c74c8":[1,0,13,22], -"class_painting_area.html#a1f597740b4d7b4bc2e24c51f8cb0b6eb":[1,0,13,17], -"class_painting_area.html#a1ff0b9c1227531943c9cec2c546fae5e":[1,0,13,24], -"class_painting_area.html#a240c33a7875addac86080cdfb0db036a":[1,0,13,7], -"class_painting_area.html#a35b5df914acb608cc29717659793359c":[1,0,13,14], -"class_painting_area.html#a39ad76e1319659bfa38eee88ef33d395":[1,0,13,2], -"class_painting_area.html#a3de83443d2d5cf460ff48d0602070938":[1,0,13,9], -"class_painting_area.html#a4735d4cf1dc58a9096d904e74c39c4df":[1,0,13,4], -"class_painting_area.html#a4a8138b9508ee4ec87a7fca9160368a7":[1,0,13,18], -"class_painting_area.html#a4fa0ec23e78cc59f28c823584c721460":[1,0,13,0], -"class_painting_area.html#a612176cc9d629d22fd3fe1a746cce564":[1,0,13,20], -"class_painting_area.html#a632848d99f44d33d7da2618fbc6775a4":[1,0,13,25], -"class_painting_area.html#a66115307ff4a99cd7ca16423c5c8ecfb":[1,0,13,6], -"class_painting_area.html#a6efad6f8ea060674b157b42b431cd173":[1,0,13,10], -"class_painting_area.html#a71ac281e0de263208d4a3b9de74258ec":[1,0,13,23], -"class_painting_area.html#a96c6248e343e44b61cf2625cb6d21353":[1,0,13,8], -"class_painting_area.html#aa22e274b6094a9619f196cd7b49526b5":[1,0,13,12], -"class_painting_area.html#aa32adc113f77031945f73e33051931e8":[1,0,13,1], -"class_painting_area.html#ab57e8ccda60fff7187463a90e65c5335":[1,0,13,19], -"class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15":[1,0,13,13], -"class_painting_area.html#ac6d089f4357b22d9a9906fd4771de3e7":[1,0,13,16], -"class_painting_area.html#ae05f6893fb44bfcb34018573a609cd1a":[1,0,13,15], -"class_painting_area.html#ae261acaaa346610dfed489dbac17e789":[1,0,13,5], -"class_painting_area.html#ae756003b49aead863b49616ea7a44cc0":[1,0,13,3], -"class_painting_area.html#aeb5eb394b979ea90f2be9849fdda1774":[1,0,13,11], -"class_painting_area.html#aec59be20f1c27135700754882dd6383d":[1,0,13,21], +"class_intelli_tool_plain_tool.html#a2ae458f1b04eb77a47f6dca5e91e33b8":[1,0,10,6], +"class_intelli_tool_plain_tool.html#a91fe568be05c075814d67440472bb658":[1,0,10,1], +"class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9":[1,0,10,2], +"class_intelli_tool_plain_tool.html#ac23f5d0f07e42fd7c2ea3fc1347da400":[1,0,10,3], +"class_intelli_tool_plain_tool.html#acb0c46e16d2c09370a2244a936de38b1":[1,0,10,5], +"class_intelli_tool_plain_tool.html#ad7546a6335bb3bb4cbf0e1883788d41c":[1,0,10,4], +"class_intelli_tool_plain_tool.html#adc004ea421e2cc0ac39cc7a6b6d43d0d":[1,0,10,7], +"class_intelli_tool_polygon.html":[1,0,11], +"class_intelli_tool_polygon.html#a0e3a1135f04c73c159137ae219a38922":[1,0,11,3], +"class_intelli_tool_polygon.html#a47cad87cd02b128b02dc929713bd1d1b":[1,0,11,5], +"class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21":[1,0,11,2], +"class_intelli_tool_polygon.html#a713103300c9f023d64d9eec5ac05dd17":[1,0,11,6], +"class_intelli_tool_polygon.html#aa36b012b48311c36e7cd6771a5081427":[1,0,11,4], +"class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d":[1,0,11,1], +"class_intelli_tool_polygon.html#ae6e5f07fdf88d12029410a032dc4921d":[1,0,11,0], +"class_intelli_tool_rectangle.html":[1,0,12], +"class_intelli_tool_rectangle.html#a445c53a56e859f970e59f5036e221e0c":[1,0,12,7], +"class_intelli_tool_rectangle.html#a480c6804a4963c5a1c3f7ef84b63c1a8":[1,0,12,5], +"class_intelli_tool_rectangle.html#a4b5931071e21eb6949ffe357315e408b":[1,0,12,4], +"class_intelli_tool_rectangle.html#a7dc1463e726a21255e6297241dc71fb1":[1,0,12,1], +"class_intelli_tool_rectangle.html#a94460e3ff1c19e80bde922c55f53cc43":[1,0,12,3], +"class_intelli_tool_rectangle.html#aa9823939a8b8924520a2943cf6335c11":[1,0,12,0], +"class_intelli_tool_rectangle.html#ad43f653256a6516b9398f82054be0d7f":[1,0,12,6], +"class_intelli_tool_rectangle.html#ae03c307ccf66cbe3fd59e3657712368d":[1,0,12,2], +"class_painting_area.html":[1,0,14], +"class_painting_area.html#a1511a534e206089fff1d325e7ec7a8eb":[1,0,14,12], +"class_painting_area.html#a1d6d86c25efdce9fe9031a9cd01c74c8":[1,0,14,24], +"class_painting_area.html#a1f597740b4d7b4bc2e24c51f8cb0b6eb":[1,0,14,19], +"class_painting_area.html#a1ff0b9c1227531943c9cec2c546fae5e":[1,0,14,26], +"class_painting_area.html#a240c33a7875addac86080cdfb0db036a":[1,0,14,7], +"class_painting_area.html#a35b5df914acb608cc29717659793359c":[1,0,14,16], +"class_painting_area.html#a39ad76e1319659bfa38eee88ef33d395":[1,0,14,2], +"class_painting_area.html#a3de83443d2d5cf460ff48d0602070938":[1,0,14,9], +"class_painting_area.html#a427c5fc26480c7ae80b3480e85510bda":[1,0,14,13], +"class_painting_area.html#a4735d4cf1dc58a9096d904e74c39c4df":[1,0,14,4], +"class_painting_area.html#a4a8138b9508ee4ec87a7fca9160368a7":[1,0,14,20], +"class_painting_area.html#a4fa0ec23e78cc59f28c823584c721460":[1,0,14,0], +"class_painting_area.html#a612176cc9d629d22fd3fe1a746cce564":[1,0,14,22], +"class_painting_area.html#a632848d99f44d33d7da2618fbc6775a4":[1,0,14,27], +"class_painting_area.html#a66115307ff4a99cd7ca16423c5c8ecfb":[1,0,14,6], +"class_painting_area.html#a6efad6f8ea060674b157b42b431cd173":[1,0,14,10], +"class_painting_area.html#a71ac281e0de263208d4a3b9de74258ec":[1,0,14,25], +"class_painting_area.html#a96c6248e343e44b61cf2625cb6d21353":[1,0,14,8], +"class_painting_area.html#aa22e274b6094a9619f196cd7b49526b5":[1,0,14,14], +"class_painting_area.html#aa32adc113f77031945f73e33051931e8":[1,0,14,1], +"class_painting_area.html#ab57e8ccda60fff7187463a90e65c5335":[1,0,14,21], +"class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15":[1,0,14,15], +"class_painting_area.html#ac6d089f4357b22d9a9906fd4771de3e7":[1,0,14,18], +"class_painting_area.html#ae05f6893fb44bfcb34018573a609cd1a":[1,0,14,17], +"class_painting_area.html#ae261acaaa346610dfed489dbac17e789":[1,0,14,5], +"class_painting_area.html#ae756003b49aead863b49616ea7a44cc0":[1,0,14,3], +"class_painting_area.html#aeb5eb394b979ea90f2be9849fdda1774":[1,0,14,11], +"class_painting_area.html#aec59be20f1c27135700754882dd6383d":[1,0,14,23], "classes.html":[1,1], "dir_544f9dcb748f922e4bb3be2540380bf2.html":[2,0,0,0,1], "dir_5dabb14988a75c922e285f444641a133.html":[2,0,0,0,0], @@ -235,15 +248,6 @@ var NAVTREEINDEX0 = "namespacemembers_func.html":[0,1,1], "namespaces.html":[0,0], "pages.html":[], -"struct_layer_object.html":[1,0,12], -"struct_layer_object.html#a402cb1d9f20436032fe080681b80eb56":[1,0,12,0], -"struct_layer_object.html#a4b1729dbf7d3490e4c2776e29ffef8b0":[1,0,12,1], -"struct_layer_object.html#a6256486a76c38baa3f1c664f4d190743":[1,0,12,2], -"struct_layer_object.html#a72b44d27c7bbb60dde14f04ec240ab96":[1,0,12,5], -"struct_layer_object.html#af01a139bc8edfdbb338393874e89bd83":[1,0,12,3], -"struct_layer_object.html#af261813df52ff0b0c82bfa57efeb9897":[1,0,12,4], -"struct_triangle.html":[1,0,14], -"struct_triangle.html#a4fe8b39e0144ebff908b7718c2f2751b":[1,0,14,0], -"struct_triangle.html#a64fa6a90a6131f12a1a3054bf86647d7":[1,0,14,1], -"struct_triangle.html#addb8aaab314d79f3617acca01e12872a":[1,0,14,2] +"struct_layer_object.html":[1,0,13], +"struct_layer_object.html#a402cb1d9f20436032fe080681b80eb56":[1,0,13,0] }; diff --git a/docs/html/navtreeindex1.js b/docs/html/navtreeindex1.js new file mode 100644 index 0000000..8002805 --- /dev/null +++ b/docs/html/navtreeindex1.js @@ -0,0 +1,12 @@ +var NAVTREEINDEX1 = +{ +"struct_layer_object.html#a4b1729dbf7d3490e4c2776e29ffef8b0":[1,0,13,1], +"struct_layer_object.html#a6256486a76c38baa3f1c664f4d190743":[1,0,13,2], +"struct_layer_object.html#a72b44d27c7bbb60dde14f04ec240ab96":[1,0,13,5], +"struct_layer_object.html#af01a139bc8edfdbb338393874e89bd83":[1,0,13,3], +"struct_layer_object.html#af261813df52ff0b0c82bfa57efeb9897":[1,0,13,4], +"struct_triangle.html":[1,0,15], +"struct_triangle.html#a4fe8b39e0144ebff908b7718c2f2751b":[1,0,15,0], +"struct_triangle.html#a64fa6a90a6131f12a1a3054bf86647d7":[1,0,15,1], +"struct_triangle.html#addb8aaab314d79f3617acca01e12872a":[1,0,15,2] +}; diff --git a/docs/html/search/all_10.js b/docs/html/search/all_10.js index 3a9d8f0..fc37c6f 100644 --- a/docs/html/search/all_10.js +++ b/docs/html/search/all_10.js @@ -1,14 +1,15 @@ var searchData= [ - ['_7eintellicolorpicker_122',['~IntelliColorPicker',['../class_intelli_color_picker.html#a40b975268a1f05249e8a49dde9a862ff',1,'IntelliColorPicker']]], - ['_7eintelliimage_123',['~IntelliImage',['../class_intelli_image.html#ac398bfa9ddd3185508a1e36ee15d80cc',1,'IntelliImage']]], - ['_7eintellirasterimage_124',['~IntelliRasterImage',['../class_intelli_raster_image.html#a844a2b58c43f7e01f2ca116286371bc8',1,'IntelliRasterImage']]], - ['_7eintellishapedimage_125',['~IntelliShapedImage',['../class_intelli_shaped_image.html#a43d63d8a814852d377ee2030658fbab9',1,'IntelliShapedImage']]], - ['_7eintellitool_126',['~IntelliTool',['../class_intelli_tool.html#a57fb1b27d364c9e3696eb928b75fa9f2',1,'IntelliTool']]], - ['_7eintellitoolcircle_127',['~IntelliToolCircle',['../class_intelli_tool_circle.html#a7a03b65b95d7b5d72e6a92c95f068954',1,'IntelliToolCircle']]], - ['_7eintellitoolfloodfill_128',['~IntelliToolFloodFill',['../class_intelli_tool_flood_fill.html#a83b1bd8be0cbb32cdf61a9597ec849ba',1,'IntelliToolFloodFill']]], - ['_7eintellitoolline_129',['~IntelliToolLine',['../class_intelli_tool_line.html#acb600b0f4e9225ebce2937c2b7abb4c2',1,'IntelliToolLine']]], - ['_7eintellitoolpen_130',['~IntelliToolPen',['../class_intelli_tool_pen.html#ac77a025515d0fed6954556fe2b444818',1,'IntelliToolPen']]], - ['_7eintellitoolrectangle_131',['~IntelliToolRectangle',['../class_intelli_tool_rectangle.html#a7dc1463e726a21255e6297241dc71fb1',1,'IntelliToolRectangle']]], - ['_7epaintingarea_132',['~PaintingArea',['../class_painting_area.html#aa32adc113f77031945f73e33051931e8',1,'PaintingArea']]] + ['_7eintellicolorpicker_125',['~IntelliColorPicker',['../class_intelli_color_picker.html#a40b975268a1f05249e8a49dde9a862ff',1,'IntelliColorPicker']]], + ['_7eintelliimage_126',['~IntelliImage',['../class_intelli_image.html#ac398bfa9ddd3185508a1e36ee15d80cc',1,'IntelliImage']]], + ['_7eintellirasterimage_127',['~IntelliRasterImage',['../class_intelli_raster_image.html#a844a2b58c43f7e01f2ca116286371bc8',1,'IntelliRasterImage']]], + ['_7eintellishapedimage_128',['~IntelliShapedImage',['../class_intelli_shaped_image.html#a43d63d8a814852d377ee2030658fbab9',1,'IntelliShapedImage']]], + ['_7eintellitool_129',['~IntelliTool',['../class_intelli_tool.html#a57fb1b27d364c9e3696eb928b75fa9f2',1,'IntelliTool']]], + ['_7eintellitoolcircle_130',['~IntelliToolCircle',['../class_intelli_tool_circle.html#a7a03b65b95d7b5d72e6a92c95f068954',1,'IntelliToolCircle']]], + ['_7eintellitoolfloodfill_131',['~IntelliToolFloodFill',['../class_intelli_tool_flood_fill.html#a83b1bd8be0cbb32cdf61a9597ec849ba',1,'IntelliToolFloodFill']]], + ['_7eintellitoolline_132',['~IntelliToolLine',['../class_intelli_tool_line.html#acb600b0f4e9225ebce2937c2b7abb4c2',1,'IntelliToolLine']]], + ['_7eintellitoolpen_133',['~IntelliToolPen',['../class_intelli_tool_pen.html#ac77a025515d0fed6954556fe2b444818',1,'IntelliToolPen']]], + ['_7eintellitoolplaintool_134',['~IntelliToolPlainTool',['../class_intelli_tool_plain_tool.html#a91fe568be05c075814d67440472bb658',1,'IntelliToolPlainTool']]], + ['_7eintellitoolrectangle_135',['~IntelliToolRectangle',['../class_intelli_tool_rectangle.html#a7dc1463e726a21255e6297241dc71fb1',1,'IntelliToolRectangle']]], + ['_7epaintingarea_136',['~PaintingArea',['../class_painting_area.html#aa32adc113f77031945f73e33051931e8',1,'PaintingArea']]] ]; diff --git a/docs/html/search/all_5.js b/docs/html/search/all_5.js index 147d75e..5608f57 100644 --- a/docs/html/search/all_5.js +++ b/docs/html/search/all_5.js @@ -3,7 +3,9 @@ var searchData= ['getdeepcopy_27',['getDeepCopy',['../class_intelli_image.html#af6381067bdf565669f856bb589008ae9',1,'IntelliImage::getDeepCopy()'],['../class_intelli_raster_image.html#a8f901301b106504de3c27308ade897dc',1,'IntelliRasterImage::getDeepCopy()'],['../class_intelli_shaped_image.html#aed0b31e0fa771104399d1f5ff39a0337',1,'IntelliShapedImage::getDeepCopy()']]], ['getdisplayable_28',['getDisplayable',['../class_intelli_image.html#a21c7e65b59a26db45aac3880133ef21d',1,'IntelliImage::getDisplayable(const QSize &displaySize, int alpha)=0'],['../class_intelli_image.html#a9d4daf3c48c64695105689f61c21bae0',1,'IntelliImage::getDisplayable(int alpha=255)=0'],['../class_intelli_raster_image.html#ae43393397b0141a8033fe34d3a1b1884',1,'IntelliRasterImage::getDisplayable(const QSize &displaySize, int alpha) override'],['../class_intelli_raster_image.html#a612d79124f0e2c158a4f0abbe4b5f97f',1,'IntelliRasterImage::getDisplayable(int alpha=255) override'],['../class_intelli_shaped_image.html#a68cf374247c16f07fd84d50e4cd05630',1,'IntelliShapedImage::getDisplayable(const QSize &displaySize, int alpha=255) override'],['../class_intelli_shaped_image.html#ac6a99e1a96134073bceea252b37636cc',1,'IntelliShapedImage::getDisplayable(int alpha=255) override']]], ['getfirstcolor_29',['getFirstColor',['../class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7',1,'IntelliColorPicker']]], - ['getpixelcolor_30',['getPixelColor',['../class_intelli_image.html#a4576ebb6d863321c816293d7b7f9fd3f',1,'IntelliImage']]], - ['getpolygondata_31',['getPolygonData',['../class_intelli_image.html#aaf9f3e8db8666850024bee9aad9966ba',1,'IntelliImage::getPolygonData()'],['../class_intelli_shaped_image.html#ae4518c7f5a105cc4f33fabb60c794a93',1,'IntelliShapedImage::getPolygonData()']]], - ['getsecondcolor_32',['getSecondColor',['../class_intelli_color_picker.html#a55568fbf5dc783f06284b7031ffe9415',1,'IntelliColorPicker']]] + ['getheightactivelayer_30',['getHeightActiveLayer',['../class_painting_area.html#a1511a534e206089fff1d325e7ec7a8eb',1,'PaintingArea']]], + ['getpixelcolor_31',['getPixelColor',['../class_intelli_image.html#a4576ebb6d863321c816293d7b7f9fd3f',1,'IntelliImage']]], + ['getpolygondata_32',['getPolygonData',['../class_intelli_image.html#aaf9f3e8db8666850024bee9aad9966ba',1,'IntelliImage::getPolygonData()'],['../class_intelli_shaped_image.html#ae4518c7f5a105cc4f33fabb60c794a93',1,'IntelliShapedImage::getPolygonData()']]], + ['getsecondcolor_33',['getSecondColor',['../class_intelli_color_picker.html#a55568fbf5dc783f06284b7031ffe9415',1,'IntelliColorPicker']]], + ['getwidthactivelayer_34',['getWidthActiveLayer',['../class_painting_area.html#a427c5fc26480c7ae80b3480e85510bda',1,'PaintingArea']]] ]; diff --git a/docs/html/search/all_6.js b/docs/html/search/all_6.js index 0f89278..0da1a9f 100644 --- a/docs/html/search/all_6.js +++ b/docs/html/search/all_6.js @@ -1,5 +1,5 @@ var searchData= [ - ['hight_33',['hight',['../struct_layer_object.html#a4b1729dbf7d3490e4c2776e29ffef8b0',1,'LayerObject']]], - ['hightoffset_34',['hightOffset',['../struct_layer_object.html#a6256486a76c38baa3f1c664f4d190743',1,'LayerObject']]] + ['hight_35',['hight',['../struct_layer_object.html#a4b1729dbf7d3490e4c2776e29ffef8b0',1,'LayerObject']]], + ['hightoffset_36',['hightOffset',['../struct_layer_object.html#a6256486a76c38baa3f1c664f4d190743',1,'LayerObject']]] ]; diff --git a/docs/html/search/all_7.js b/docs/html/search/all_7.js index e61f3ef..a4df120 100644 --- a/docs/html/search/all_7.js +++ b/docs/html/search/all_7.js @@ -1,47 +1,50 @@ var searchData= [ - ['image_35',['image',['../struct_layer_object.html#af01a139bc8edfdbb338393874e89bd83',1,'LayerObject']]], - ['imagedata_36',['imageData',['../class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2',1,'IntelliImage']]], - ['imagetype_37',['ImageType',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0',1,'IntelliImage.h']]], - ['intellicolorpicker_38',['IntelliColorPicker',['../class_intelli_color_picker.html',1,'IntelliColorPicker'],['../class_intelli_color_picker.html#a0d1247bdd87add1396ea5d9acaad79ae',1,'IntelliColorPicker::IntelliColorPicker()']]], - ['intellicolorpicker_2ecpp_39',['IntelliColorPicker.cpp',['../_intelli_helper_2_intelli_color_picker_8cpp.html',1,'(Global Namespace)'],['../_tool_2_intelli_color_picker_8cpp.html',1,'(Global Namespace)']]], - ['intellicolorpicker_2eh_40',['IntelliColorPicker.h',['../_intelli_color_picker_8h.html',1,'']]], - ['intellihelper_41',['IntelliHelper',['../namespace_intelli_helper.html',1,'']]], - ['intellihelper_2ecpp_42',['IntelliHelper.cpp',['../_intelli_helper_8cpp.html',1,'']]], - ['intellihelper_2eh_43',['IntelliHelper.h',['../_intelli_helper_8h.html',1,'']]], - ['intelliimage_44',['IntelliImage',['../class_intelli_image.html',1,'IntelliImage'],['../class_intelli_image.html#a47084f1cb668ea0242ab95162cf9e902',1,'IntelliImage::IntelliImage()']]], - ['intelliimage_2ecpp_45',['IntelliImage.cpp',['../_intelli_image_8cpp.html',1,'']]], - ['intelliimage_2eh_46',['IntelliImage.h',['../_intelli_image_8h.html',1,'']]], - ['intelliphotogui_47',['IntelliPhotoGui',['../class_intelli_photo_gui.html',1,'IntelliPhotoGui'],['../class_intelli_photo_gui.html#ad2aaec3c1517a9aaa461b54e341b97e0',1,'IntelliPhotoGui::IntelliPhotoGui()']]], - ['intelliphotogui_2ecpp_48',['IntelliPhotoGui.cpp',['../_intelli_photo_gui_8cpp.html',1,'']]], - ['intelliphotogui_2eh_49',['IntelliPhotoGui.h',['../_intelli_photo_gui_8h.html',1,'']]], - ['intellirasterimage_50',['IntelliRasterImage',['../class_intelli_raster_image.html',1,'IntelliRasterImage'],['../class_intelli_raster_image.html#aad9b561fe499a4da3c6ef98971aa3468',1,'IntelliRasterImage::IntelliRasterImage()']]], - ['intellirasterimage_2ecpp_51',['IntelliRasterImage.cpp',['../_intelli_raster_image_8cpp.html',1,'']]], - ['intellirasterimage_2eh_52',['IntelliRasterImage.h',['../_intelli_raster_image_8h.html',1,'']]], - ['intellishapedimage_53',['IntelliShapedImage',['../class_intelli_shaped_image.html',1,'IntelliShapedImage'],['../class_intelli_shaped_image.html#a0f834c3f255baeb50c98ef335a6d0ea9',1,'IntelliShapedImage::IntelliShapedImage()']]], - ['intellishapedimage_2ecpp_54',['IntelliShapedImage.cpp',['../_intelli_shaped_image_8cpp.html',1,'']]], - ['intellishapedimage_2eh_55',['IntelliShapedImage.h',['../_intelli_shaped_image_8h.html',1,'']]], - ['intellitool_56',['IntelliTool',['../class_intelli_tool.html',1,'IntelliTool'],['../class_intelli_tool.html#a346dd55d489fced38e7bb46f9168af91',1,'IntelliTool::IntelliTool()']]], - ['intellitool_2ecpp_57',['IntelliTool.cpp',['../_intelli_tool_8cpp.html',1,'']]], - ['intellitool_2eh_58',['IntelliTool.h',['../_intelli_tool_8h.html',1,'']]], - ['intellitoolcircle_59',['IntelliToolCircle',['../class_intelli_tool_circle.html',1,'IntelliToolCircle'],['../class_intelli_tool_circle.html#a9b185b9d327f8602d0b7f667b8d1d32a',1,'IntelliToolCircle::IntelliToolCircle()']]], - ['intellitoolcircle_2ecpp_60',['IntelliToolCircle.cpp',['../_intelli_tool_circle_8cpp.html',1,'']]], - ['intellitoolcircle_2eh_61',['IntelliToolCircle.h',['../_intelli_tool_circle_8h.html',1,'']]], - ['intellitoolfloodfill_62',['IntelliToolFloodFill',['../class_intelli_tool_flood_fill.html',1,'IntelliToolFloodFill'],['../class_intelli_tool_flood_fill.html#a83b51838da304e274bf866cf2fd5407a',1,'IntelliToolFloodFill::IntelliToolFloodFill()']]], - ['intellitoolfloodfill_2ecpp_63',['IntelliToolFloodFill.cpp',['../_intelli_tool_flood_fill_8cpp.html',1,'']]], - ['intellitoolfloodfill_2eh_64',['IntelliToolFloodFill.h',['../_intelli_tool_flood_fill_8h.html',1,'']]], - ['intellitoolline_65',['IntelliToolLine',['../class_intelli_tool_line.html',1,'IntelliToolLine'],['../class_intelli_tool_line.html#a9b2d4bcd69409a21f6080edfea4ae2a2',1,'IntelliToolLine::IntelliToolLine()']]], - ['intellitoolline_2ecpp_66',['IntelliToolLine.cpp',['../_intelli_tool_line_8cpp.html',1,'']]], - ['intellitoolline_2eh_67',['IntelliToolLine.h',['../_intelli_tool_line_8h.html',1,'']]], - ['intellitoolpen_68',['IntelliToolPen',['../class_intelli_tool_pen.html',1,'IntelliToolPen'],['../class_intelli_tool_pen.html#a889891b3ae7cdefb881aed2e7fff9b47',1,'IntelliToolPen::IntelliToolPen()']]], - ['intellitoolpen_2ecpp_69',['IntelliToolPen.cpp',['../_intelli_tool_pen_8cpp.html',1,'']]], - ['intellitoolpen_2eh_70',['IntelliToolPen.h',['../_intelli_tool_pen_8h.html',1,'']]], - ['intellitoolplain_2ecpp_71',['IntelliToolPlain.cpp',['../_intelli_tool_plain_8cpp.html',1,'']]], - ['intellitoolplain_2eh_72',['IntelliToolPlain.h',['../_intelli_tool_plain_8h.html',1,'']]], - ['intellitoolplaintool_73',['IntelliToolPlainTool',['../class_intelli_tool_plain_tool.html',1,'IntelliToolPlainTool'],['../class_intelli_tool_plain_tool.html#a0ff0b9f7b78b763683076e4417236859',1,'IntelliToolPlainTool::IntelliToolPlainTool()']]], - ['intellitoolrectangle_74',['IntelliToolRectangle',['../class_intelli_tool_rectangle.html',1,'IntelliToolRectangle'],['../class_intelli_tool_rectangle.html#aa9823939a8b8924520a2943cf6335c11',1,'IntelliToolRectangle::IntelliToolRectangle()']]], - ['intellitoolrectangle_2ecpp_75',['IntelliToolRectangle.cpp',['../_intelli_tool_rectangle_8cpp.html',1,'']]], - ['intellitoolrectangle_2eh_76',['IntelliToolRectangle.h',['../_intelli_tool_rectangle_8h.html',1,'']]], - ['isinpolygon_77',['isInPolygon',['../namespace_intelli_helper.html#a44d516b3e619e2a743e9c98dd75cf901',1,'IntelliHelper']]], - ['isintriangle_78',['isInTriangle',['../namespace_intelli_helper.html#a9fcfe72f00e870be4a8ab9f2e17483c9',1,'IntelliHelper']]] + ['image_37',['image',['../struct_layer_object.html#af01a139bc8edfdbb338393874e89bd83',1,'LayerObject']]], + ['imagedata_38',['imageData',['../class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2',1,'IntelliImage']]], + ['imagetype_39',['ImageType',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0',1,'IntelliImage.h']]], + ['intellicolorpicker_40',['IntelliColorPicker',['../class_intelli_color_picker.html',1,'IntelliColorPicker'],['../class_intelli_color_picker.html#a0d1247bdd87add1396ea5d9acaad79ae',1,'IntelliColorPicker::IntelliColorPicker()']]], + ['intellicolorpicker_2ecpp_41',['IntelliColorPicker.cpp',['../_intelli_helper_2_intelli_color_picker_8cpp.html',1,'(Global Namespace)'],['../_tool_2_intelli_color_picker_8cpp.html',1,'(Global Namespace)']]], + ['intellicolorpicker_2eh_42',['IntelliColorPicker.h',['../_intelli_color_picker_8h.html',1,'']]], + ['intellihelper_43',['IntelliHelper',['../namespace_intelli_helper.html',1,'']]], + ['intellihelper_2ecpp_44',['IntelliHelper.cpp',['../_intelli_helper_8cpp.html',1,'']]], + ['intellihelper_2eh_45',['IntelliHelper.h',['../_intelli_helper_8h.html',1,'']]], + ['intelliimage_46',['IntelliImage',['../class_intelli_image.html',1,'IntelliImage'],['../class_intelli_image.html#a47084f1cb668ea0242ab95162cf9e902',1,'IntelliImage::IntelliImage()']]], + ['intelliimage_2ecpp_47',['IntelliImage.cpp',['../_intelli_image_8cpp.html',1,'']]], + ['intelliimage_2eh_48',['IntelliImage.h',['../_intelli_image_8h.html',1,'']]], + ['intelliphotogui_49',['IntelliPhotoGui',['../class_intelli_photo_gui.html',1,'IntelliPhotoGui'],['../class_intelli_photo_gui.html#ad2aaec3c1517a9aaa461b54e341b97e0',1,'IntelliPhotoGui::IntelliPhotoGui()']]], + ['intelliphotogui_2ecpp_50',['IntelliPhotoGui.cpp',['../_intelli_photo_gui_8cpp.html',1,'']]], + ['intelliphotogui_2eh_51',['IntelliPhotoGui.h',['../_intelli_photo_gui_8h.html',1,'']]], + ['intellirasterimage_52',['IntelliRasterImage',['../class_intelli_raster_image.html',1,'IntelliRasterImage'],['../class_intelli_raster_image.html#aad9b561fe499a4da3c6ef98971aa3468',1,'IntelliRasterImage::IntelliRasterImage()']]], + ['intellirasterimage_2ecpp_53',['IntelliRasterImage.cpp',['../_intelli_raster_image_8cpp.html',1,'']]], + ['intellirasterimage_2eh_54',['IntelliRasterImage.h',['../_intelli_raster_image_8h.html',1,'']]], + ['intellishapedimage_55',['IntelliShapedImage',['../class_intelli_shaped_image.html',1,'IntelliShapedImage'],['../class_intelli_shaped_image.html#a0f834c3f255baeb50c98ef335a6d0ea9',1,'IntelliShapedImage::IntelliShapedImage()']]], + ['intellishapedimage_2ecpp_56',['IntelliShapedImage.cpp',['../_intelli_shaped_image_8cpp.html',1,'']]], + ['intellishapedimage_2eh_57',['IntelliShapedImage.h',['../_intelli_shaped_image_8h.html',1,'']]], + ['intellitool_58',['IntelliTool',['../class_intelli_tool.html',1,'IntelliTool'],['../class_intelli_tool.html#a346dd55d489fced38e7bb46f9168af91',1,'IntelliTool::IntelliTool()']]], + ['intellitool_2ecpp_59',['IntelliTool.cpp',['../_intelli_tool_8cpp.html',1,'']]], + ['intellitool_2eh_60',['IntelliTool.h',['../_intelli_tool_8h.html',1,'']]], + ['intellitoolcircle_61',['IntelliToolCircle',['../class_intelli_tool_circle.html',1,'IntelliToolCircle'],['../class_intelli_tool_circle.html#a9b185b9d327f8602d0b7f667b8d1d32a',1,'IntelliToolCircle::IntelliToolCircle()']]], + ['intellitoolcircle_2ecpp_62',['IntelliToolCircle.cpp',['../_intelli_tool_circle_8cpp.html',1,'']]], + ['intellitoolcircle_2eh_63',['IntelliToolCircle.h',['../_intelli_tool_circle_8h.html',1,'']]], + ['intellitoolfloodfill_64',['IntelliToolFloodFill',['../class_intelli_tool_flood_fill.html',1,'IntelliToolFloodFill'],['../class_intelli_tool_flood_fill.html#a83b51838da304e274bf866cf2fd5407a',1,'IntelliToolFloodFill::IntelliToolFloodFill()']]], + ['intellitoolfloodfill_2ecpp_65',['IntelliToolFloodFill.cpp',['../_intelli_tool_flood_fill_8cpp.html',1,'']]], + ['intellitoolfloodfill_2eh_66',['IntelliToolFloodFill.h',['../_intelli_tool_flood_fill_8h.html',1,'']]], + ['intellitoolline_67',['IntelliToolLine',['../class_intelli_tool_line.html',1,'IntelliToolLine'],['../class_intelli_tool_line.html#a9b2d4bcd69409a21f6080edfea4ae2a2',1,'IntelliToolLine::IntelliToolLine()']]], + ['intellitoolline_2ecpp_68',['IntelliToolLine.cpp',['../_intelli_tool_line_8cpp.html',1,'']]], + ['intellitoolline_2eh_69',['IntelliToolLine.h',['../_intelli_tool_line_8h.html',1,'']]], + ['intellitoolpen_70',['IntelliToolPen',['../class_intelli_tool_pen.html',1,'IntelliToolPen'],['../class_intelli_tool_pen.html#a889891b3ae7cdefb881aed2e7fff9b47',1,'IntelliToolPen::IntelliToolPen()']]], + ['intellitoolpen_2ecpp_71',['IntelliToolPen.cpp',['../_intelli_tool_pen_8cpp.html',1,'']]], + ['intellitoolpen_2eh_72',['IntelliToolPen.h',['../_intelli_tool_pen_8h.html',1,'']]], + ['intellitoolplain_2ecpp_73',['IntelliToolPlain.cpp',['../_intelli_tool_plain_8cpp.html',1,'']]], + ['intellitoolplain_2eh_74',['IntelliToolPlain.h',['../_intelli_tool_plain_8h.html',1,'']]], + ['intellitoolplaintool_75',['IntelliToolPlainTool',['../class_intelli_tool_plain_tool.html',1,'IntelliToolPlainTool'],['../class_intelli_tool_plain_tool.html#a0ff0b9f7b78b763683076e4417236859',1,'IntelliToolPlainTool::IntelliToolPlainTool()']]], + ['intellitoolpolygon_76',['IntelliToolPolygon',['../class_intelli_tool_polygon.html',1,'IntelliToolPolygon'],['../class_intelli_tool_polygon.html#ae6e5f07fdf88d12029410a032dc4921d',1,'IntelliToolPolygon::IntelliToolPolygon()']]], + ['intellitoolpolygon_2ecpp_77',['IntelliToolPolygon.cpp',['../_intelli_tool_polygon_8cpp.html',1,'']]], + ['intellitoolpolygon_2eh_78',['IntelliToolPolygon.h',['../_intelli_tool_polygon_8h.html',1,'']]], + ['intellitoolrectangle_79',['IntelliToolRectangle',['../class_intelli_tool_rectangle.html',1,'IntelliToolRectangle'],['../class_intelli_tool_rectangle.html#aa9823939a8b8924520a2943cf6335c11',1,'IntelliToolRectangle::IntelliToolRectangle()']]], + ['intellitoolrectangle_2ecpp_80',['IntelliToolRectangle.cpp',['../_intelli_tool_rectangle_8cpp.html',1,'']]], + ['intellitoolrectangle_2eh_81',['IntelliToolRectangle.h',['../_intelli_tool_rectangle_8h.html',1,'']]], + ['isinpolygon_82',['isInPolygon',['../namespace_intelli_helper.html#a44d516b3e619e2a743e9c98dd75cf901',1,'IntelliHelper']]], + ['isintriangle_83',['isInTriangle',['../namespace_intelli_helper.html#a9fcfe72f00e870be4a8ab9f2e17483c9',1,'IntelliHelper']]] ]; diff --git a/docs/html/search/all_8.js b/docs/html/search/all_8.js index 10823fd..ae5832f 100644 --- a/docs/html/search/all_8.js +++ b/docs/html/search/all_8.js @@ -1,6 +1,6 @@ var searchData= [ - ['layerobject_79',['LayerObject',['../struct_layer_object.html',1,'']]], - ['linestyle_80',['LineStyle',['../_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7',1,'IntelliToolLine.h']]], - ['loadimage_81',['loadImage',['../class_intelli_image.html#aec0e9c8184d89dee33fd9adefbd2f8aa',1,'IntelliImage']]] + ['layerobject_84',['LayerObject',['../struct_layer_object.html',1,'']]], + ['linestyle_85',['LineStyle',['../_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7',1,'IntelliToolLine.h']]], + ['loadimage_86',['loadImage',['../class_intelli_image.html#aec0e9c8184d89dee33fd9adefbd2f8aa',1,'IntelliImage']]] ]; diff --git a/docs/html/search/all_9.js b/docs/html/search/all_9.js index d040fc4..e39dbfa 100644 --- a/docs/html/search/all_9.js +++ b/docs/html/search/all_9.js @@ -1,10 +1,10 @@ var searchData= [ - ['main_82',['main',['../main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main.cpp']]], - ['main_2ecpp_83',['main.cpp',['../main_8cpp.html',1,'']]], - ['mousemoveevent_84',['mouseMoveEvent',['../class_painting_area.html#aa22e274b6094a9619f196cd7b49526b5',1,'PaintingArea']]], - ['mousepressevent_85',['mousePressEvent',['../class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15',1,'PaintingArea']]], - ['mousereleaseevent_86',['mouseReleaseEvent',['../class_painting_area.html#a35b5df914acb608cc29717659793359c',1,'PaintingArea']]], - ['moveactivelayer_87',['moveActiveLayer',['../class_painting_area.html#ae05f6893fb44bfcb34018573a609cd1a',1,'PaintingArea']]], - ['movepositionactive_88',['movePositionActive',['../class_painting_area.html#ac6d089f4357b22d9a9906fd4771de3e7',1,'PaintingArea']]] + ['main_87',['main',['../main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main.cpp']]], + ['main_2ecpp_88',['main.cpp',['../main_8cpp.html',1,'']]], + ['mousemoveevent_89',['mouseMoveEvent',['../class_painting_area.html#aa22e274b6094a9619f196cd7b49526b5',1,'PaintingArea']]], + ['mousepressevent_90',['mousePressEvent',['../class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15',1,'PaintingArea']]], + ['mousereleaseevent_91',['mouseReleaseEvent',['../class_painting_area.html#a35b5df914acb608cc29717659793359c',1,'PaintingArea']]], + ['moveactivelayer_92',['moveActiveLayer',['../class_painting_area.html#ae05f6893fb44bfcb34018573a609cd1a',1,'PaintingArea']]], + ['movepositionactive_93',['movePositionActive',['../class_painting_area.html#ac6d089f4357b22d9a9906fd4771de3e7',1,'PaintingArea']]] ]; diff --git a/docs/html/search/all_a.js b/docs/html/search/all_a.js index 481a2fd..ca4ea4c 100644 --- a/docs/html/search/all_a.js +++ b/docs/html/search/all_a.js @@ -1,10 +1,10 @@ var searchData= [ - ['onmouseleftpressed_89',['onMouseLeftPressed',['../class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c',1,'IntelliTool::onMouseLeftPressed()'],['../class_intelli_tool_circle.html#ae883b8ae833c78a8867e626c600f9639',1,'IntelliToolCircle::onMouseLeftPressed()'],['../class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961',1,'IntelliToolFloodFill::onMouseLeftPressed()'],['../class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846',1,'IntelliToolLine::onMouseLeftPressed()'],['../class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205',1,'IntelliToolPen::onMouseLeftPressed()'],['../class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9',1,'IntelliToolPlainTool::onMouseLeftPressed()'],['../class_intelli_tool_rectangle.html#ae03c307ccf66cbe3fd59e3657712368d',1,'IntelliToolRectangle::onMouseLeftPressed()']]], - ['onmouseleftreleased_90',['onMouseLeftReleased',['../class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b',1,'IntelliTool::onMouseLeftReleased()'],['../class_intelli_tool_circle.html#ad8e438ec997c57262b5efc2db4cee1a3',1,'IntelliToolCircle::onMouseLeftReleased()'],['../class_intelli_tool_flood_fill.html#a7438ef96c6c36068bce76e2364e8594c',1,'IntelliToolFloodFill::onMouseLeftReleased()'],['../class_intelli_tool_line.html#ac93f76ff20a1c111a403b298bab02482',1,'IntelliToolLine::onMouseLeftReleased()'],['../class_intelli_tool_pen.html#abda7a22b9766fa4ad254324a53cab94d',1,'IntelliToolPen::onMouseLeftReleased()'],['../class_intelli_tool_plain_tool.html#ac23f5d0f07e42fd7c2ea3fc1347da400',1,'IntelliToolPlainTool::onMouseLeftReleased()'],['../class_intelli_tool_rectangle.html#a94460e3ff1c19e80bde922c55f53cc43',1,'IntelliToolRectangle::onMouseLeftReleased()']]], - ['onmousemoved_91',['onMouseMoved',['../class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639',1,'IntelliTool::onMouseMoved()'],['../class_intelli_tool_circle.html#a90ee58c5390a86afc75c14ca79b91d7b',1,'IntelliToolCircle::onMouseMoved()'],['../class_intelli_tool_flood_fill.html#a3cd42cea99bc7583875abcc0c274c668',1,'IntelliToolFloodFill::onMouseMoved()'],['../class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b',1,'IntelliToolLine::onMouseMoved()'],['../class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2',1,'IntelliToolPen::onMouseMoved()'],['../class_intelli_tool_plain_tool.html#ad7546a6335bb3bb4cbf0e1883788d41c',1,'IntelliToolPlainTool::onMouseMoved()'],['../class_intelli_tool_rectangle.html#a4b5931071e21eb6949ffe357315e408b',1,'IntelliToolRectangle::onMouseMoved()']]], - ['onmouserightpressed_92',['onMouseRightPressed',['../class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966',1,'IntelliTool::onMouseRightPressed()'],['../class_intelli_tool_circle.html#a29d7b9ed4960e6fe1f31ff620363e429',1,'IntelliToolCircle::onMouseRightPressed()'],['../class_intelli_tool_flood_fill.html#ada0f7154d119102410a55038763a17e4',1,'IntelliToolFloodFill::onMouseRightPressed()'],['../class_intelli_tool_line.html#a6cce59f3017936214b10b47252a898a3',1,'IntelliToolLine::onMouseRightPressed()'],['../class_intelli_tool_pen.html#a1751e3864a0d36ef42ca55021cae73ce',1,'IntelliToolPen::onMouseRightPressed()'],['../class_intelli_tool_plain_tool.html#acb0c46e16d2c09370a2244a936de38b1',1,'IntelliToolPlainTool::onMouseRightPressed()'],['../class_intelli_tool_rectangle.html#a480c6804a4963c5a1c3f7ef84b63c1a8',1,'IntelliToolRectangle::onMouseRightPressed()']]], - ['onmouserightreleased_93',['onMouseRightReleased',['../class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0',1,'IntelliTool::onMouseRightReleased()'],['../class_intelli_tool_circle.html#aca07540f2f7ccb3d2c0b84890c1afc4c',1,'IntelliToolCircle::onMouseRightReleased()'],['../class_intelli_tool_flood_fill.html#a39cf49c0ce46f96be3510f0b70c9d892',1,'IntelliToolFloodFill::onMouseRightReleased()'],['../class_intelli_tool_line.html#a6214918cba5753f89d97de4559a2b9b2',1,'IntelliToolLine::onMouseRightReleased()'],['../class_intelli_tool_pen.html#abf8562e8cd2da586afdf4d47b3a4ff13',1,'IntelliToolPen::onMouseRightReleased()'],['../class_intelli_tool_plain_tool.html#a2ae458f1b04eb77a47f6dca5e91e33b8',1,'IntelliToolPlainTool::onMouseRightReleased()'],['../class_intelli_tool_rectangle.html#ad43f653256a6516b9398f82054be0d7f',1,'IntelliToolRectangle::onMouseRightReleased()']]], - ['onwheelscrolled_94',['onWheelScrolled',['../class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574',1,'IntelliTool::onWheelScrolled()'],['../class_intelli_tool_circle.html#ae2d9b0fb6695c184c4cb507a5fb75506',1,'IntelliToolCircle::onWheelScrolled()'],['../class_intelli_tool_flood_fill.html#ad58cc7c065123beb6b0270f99e99b991',1,'IntelliToolFloodFill::onWheelScrolled()'],['../class_intelli_tool_line.html#aaf1d686e1ec43f41b5186ccfd806b125',1,'IntelliToolLine::onWheelScrolled()'],['../class_intelli_tool_pen.html#afe3626ddff440ab125f4a2465c45427a',1,'IntelliToolPen::onWheelScrolled()'],['../class_intelli_tool_plain_tool.html#adc004ea421e2cc0ac39cc7a6b6d43d0d',1,'IntelliToolPlainTool::onWheelScrolled()'],['../class_intelli_tool_rectangle.html#a445c53a56e859f970e59f5036e221e0c',1,'IntelliToolRectangle::onWheelScrolled()']]], - ['open_95',['open',['../class_painting_area.html#a1f597740b4d7b4bc2e24c51f8cb0b6eb',1,'PaintingArea']]] + ['onmouseleftpressed_94',['onMouseLeftPressed',['../class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c',1,'IntelliTool::onMouseLeftPressed()'],['../class_intelli_tool_circle.html#ae883b8ae833c78a8867e626c600f9639',1,'IntelliToolCircle::onMouseLeftPressed()'],['../class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961',1,'IntelliToolFloodFill::onMouseLeftPressed()'],['../class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846',1,'IntelliToolLine::onMouseLeftPressed()'],['../class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205',1,'IntelliToolPen::onMouseLeftPressed()'],['../class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9',1,'IntelliToolPlainTool::onMouseLeftPressed()'],['../class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d',1,'IntelliToolPolygon::onMouseLeftPressed()'],['../class_intelli_tool_rectangle.html#ae03c307ccf66cbe3fd59e3657712368d',1,'IntelliToolRectangle::onMouseLeftPressed()']]], + ['onmouseleftreleased_95',['onMouseLeftReleased',['../class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b',1,'IntelliTool::onMouseLeftReleased()'],['../class_intelli_tool_circle.html#ad8e438ec997c57262b5efc2db4cee1a3',1,'IntelliToolCircle::onMouseLeftReleased()'],['../class_intelli_tool_flood_fill.html#a7438ef96c6c36068bce76e2364e8594c',1,'IntelliToolFloodFill::onMouseLeftReleased()'],['../class_intelli_tool_line.html#ac93f76ff20a1c111a403b298bab02482',1,'IntelliToolLine::onMouseLeftReleased()'],['../class_intelli_tool_pen.html#abda7a22b9766fa4ad254324a53cab94d',1,'IntelliToolPen::onMouseLeftReleased()'],['../class_intelli_tool_plain_tool.html#ac23f5d0f07e42fd7c2ea3fc1347da400',1,'IntelliToolPlainTool::onMouseLeftReleased()'],['../class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21',1,'IntelliToolPolygon::onMouseLeftReleased()'],['../class_intelli_tool_rectangle.html#a94460e3ff1c19e80bde922c55f53cc43',1,'IntelliToolRectangle::onMouseLeftReleased()']]], + ['onmousemoved_96',['onMouseMoved',['../class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639',1,'IntelliTool::onMouseMoved()'],['../class_intelli_tool_circle.html#a90ee58c5390a86afc75c14ca79b91d7b',1,'IntelliToolCircle::onMouseMoved()'],['../class_intelli_tool_flood_fill.html#a3cd42cea99bc7583875abcc0c274c668',1,'IntelliToolFloodFill::onMouseMoved()'],['../class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b',1,'IntelliToolLine::onMouseMoved()'],['../class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2',1,'IntelliToolPen::onMouseMoved()'],['../class_intelli_tool_plain_tool.html#ad7546a6335bb3bb4cbf0e1883788d41c',1,'IntelliToolPlainTool::onMouseMoved()'],['../class_intelli_tool_polygon.html#a0e3a1135f04c73c159137ae219a38922',1,'IntelliToolPolygon::onMouseMoved()'],['../class_intelli_tool_rectangle.html#a4b5931071e21eb6949ffe357315e408b',1,'IntelliToolRectangle::onMouseMoved()']]], + ['onmouserightpressed_97',['onMouseRightPressed',['../class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966',1,'IntelliTool::onMouseRightPressed()'],['../class_intelli_tool_circle.html#a29d7b9ed4960e6fe1f31ff620363e429',1,'IntelliToolCircle::onMouseRightPressed()'],['../class_intelli_tool_flood_fill.html#ada0f7154d119102410a55038763a17e4',1,'IntelliToolFloodFill::onMouseRightPressed()'],['../class_intelli_tool_line.html#a6cce59f3017936214b10b47252a898a3',1,'IntelliToolLine::onMouseRightPressed()'],['../class_intelli_tool_pen.html#a1751e3864a0d36ef42ca55021cae73ce',1,'IntelliToolPen::onMouseRightPressed()'],['../class_intelli_tool_plain_tool.html#acb0c46e16d2c09370a2244a936de38b1',1,'IntelliToolPlainTool::onMouseRightPressed()'],['../class_intelli_tool_polygon.html#aa36b012b48311c36e7cd6771a5081427',1,'IntelliToolPolygon::onMouseRightPressed()'],['../class_intelli_tool_rectangle.html#a480c6804a4963c5a1c3f7ef84b63c1a8',1,'IntelliToolRectangle::onMouseRightPressed()']]], + ['onmouserightreleased_98',['onMouseRightReleased',['../class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0',1,'IntelliTool::onMouseRightReleased()'],['../class_intelli_tool_circle.html#aca07540f2f7ccb3d2c0b84890c1afc4c',1,'IntelliToolCircle::onMouseRightReleased()'],['../class_intelli_tool_flood_fill.html#a39cf49c0ce46f96be3510f0b70c9d892',1,'IntelliToolFloodFill::onMouseRightReleased()'],['../class_intelli_tool_line.html#a6214918cba5753f89d97de4559a2b9b2',1,'IntelliToolLine::onMouseRightReleased()'],['../class_intelli_tool_pen.html#abf8562e8cd2da586afdf4d47b3a4ff13',1,'IntelliToolPen::onMouseRightReleased()'],['../class_intelli_tool_plain_tool.html#a2ae458f1b04eb77a47f6dca5e91e33b8',1,'IntelliToolPlainTool::onMouseRightReleased()'],['../class_intelli_tool_polygon.html#a47cad87cd02b128b02dc929713bd1d1b',1,'IntelliToolPolygon::onMouseRightReleased()'],['../class_intelli_tool_rectangle.html#ad43f653256a6516b9398f82054be0d7f',1,'IntelliToolRectangle::onMouseRightReleased()']]], + ['onwheelscrolled_99',['onWheelScrolled',['../class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574',1,'IntelliTool::onWheelScrolled()'],['../class_intelli_tool_circle.html#ae2d9b0fb6695c184c4cb507a5fb75506',1,'IntelliToolCircle::onWheelScrolled()'],['../class_intelli_tool_flood_fill.html#ad58cc7c065123beb6b0270f99e99b991',1,'IntelliToolFloodFill::onWheelScrolled()'],['../class_intelli_tool_line.html#aaf1d686e1ec43f41b5186ccfd806b125',1,'IntelliToolLine::onWheelScrolled()'],['../class_intelli_tool_pen.html#afe3626ddff440ab125f4a2465c45427a',1,'IntelliToolPen::onWheelScrolled()'],['../class_intelli_tool_plain_tool.html#adc004ea421e2cc0ac39cc7a6b6d43d0d',1,'IntelliToolPlainTool::onWheelScrolled()'],['../class_intelli_tool_polygon.html#a713103300c9f023d64d9eec5ac05dd17',1,'IntelliToolPolygon::onWheelScrolled()'],['../class_intelli_tool_rectangle.html#a445c53a56e859f970e59f5036e221e0c',1,'IntelliToolRectangle::onWheelScrolled()']]], + ['open_100',['open',['../class_painting_area.html#a1f597740b4d7b4bc2e24c51f8cb0b6eb',1,'PaintingArea']]] ]; diff --git a/docs/html/search/all_b.js b/docs/html/search/all_b.js index 5878bb2..804aa23 100644 --- a/docs/html/search/all_b.js +++ b/docs/html/search/all_b.js @@ -1,8 +1,8 @@ var searchData= [ - ['paintevent_96',['paintEvent',['../class_painting_area.html#a4a8138b9508ee4ec87a7fca9160368a7',1,'PaintingArea']]], - ['paintingarea_97',['PaintingArea',['../class_painting_area.html',1,'PaintingArea'],['../class_painting_area.html#a4fa0ec23e78cc59f28c823584c721460',1,'PaintingArea::PaintingArea()']]], - ['paintingarea_2ecpp_98',['PaintingArea.cpp',['../_painting_area_8cpp.html',1,'']]], - ['paintingarea_2eh_99',['PaintingArea.h',['../_painting_area_8h.html',1,'']]], - ['polygondata_100',['polygonData',['../class_intelli_shaped_image.html#a727d19ce314c0874be6b0633a3a603c8',1,'IntelliShapedImage']]] + ['paintevent_101',['paintEvent',['../class_painting_area.html#a4a8138b9508ee4ec87a7fca9160368a7',1,'PaintingArea']]], + ['paintingarea_102',['PaintingArea',['../class_painting_area.html',1,'PaintingArea'],['../class_painting_area.html#a4fa0ec23e78cc59f28c823584c721460',1,'PaintingArea::PaintingArea()']]], + ['paintingarea_2ecpp_103',['PaintingArea.cpp',['../_painting_area_8cpp.html',1,'']]], + ['paintingarea_2eh_104',['PaintingArea.h',['../_painting_area_8h.html',1,'']]], + ['polygondata_105',['polygonData',['../class_intelli_shaped_image.html#a727d19ce314c0874be6b0633a3a603c8',1,'IntelliShapedImage']]] ]; diff --git a/docs/html/search/all_c.js b/docs/html/search/all_c.js index cfc2b8e..ff66b9d 100644 --- a/docs/html/search/all_c.js +++ b/docs/html/search/all_c.js @@ -1,6 +1,6 @@ var searchData= [ - ['raster_5fimage_101',['Raster_Image',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0a80e1612d2117f2b25530317279ffe7b3',1,'IntelliImage.h']]], - ['resizeevent_102',['resizeEvent',['../class_painting_area.html#ab57e8ccda60fff7187463a90e65c5335',1,'PaintingArea']]], - ['resizeimage_103',['resizeImage',['../class_intelli_image.html#a177403ab9585d4ba31984a644c54d310',1,'IntelliImage']]] + ['raster_5fimage_106',['Raster_Image',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0a80e1612d2117f2b25530317279ffe7b3',1,'IntelliImage.h']]], + ['resizeevent_107',['resizeEvent',['../class_painting_area.html#ab57e8ccda60fff7187463a90e65c5335',1,'PaintingArea']]], + ['resizeimage_108',['resizeImage',['../class_intelli_image.html#a177403ab9585d4ba31984a644c54d310',1,'IntelliImage']]] ]; diff --git a/docs/html/search/all_d.js b/docs/html/search/all_d.js index dde708e..a8bdd2d 100644 --- a/docs/html/search/all_d.js +++ b/docs/html/search/all_d.js @@ -1,17 +1,15 @@ var searchData= [ - ['save_104',['save',['../class_painting_area.html#a612176cc9d629d22fd3fe1a746cce564',1,'PaintingArea']]], - ['setalphaoflayer_105',['setAlphaOfLayer',['../class_painting_area.html#aec59be20f1c27135700754882dd6383d',1,'PaintingArea']]], - ['setfirstcolor_106',['setFirstColor',['../class_intelli_color_picker.html#a7e2ddbbbfbed383f06b24e5bf6b27ae8',1,'IntelliColorPicker']]], - ['setlayertoactive_107',['setLayerToActive',['../class_painting_area.html#a1d6d86c25efdce9fe9031a9cd01c74c8',1,'PaintingArea']]], - ['setpolygon_108',['setPolygon',['../class_intelli_image.html#aa4b3f4631bd972456917275afb9fd309',1,'IntelliImage::setPolygon()'],['../class_intelli_raster_image.html#a6462fa5f94c5e64e9e1f0c4658e0507b',1,'IntelliRasterImage::setPolygon()'],['../class_intelli_shaped_image.html#a4b69d75de7a3b85032482982f249458e',1,'IntelliShapedImage::setPolygon()']]], - ['setsecondcolor_109',['setSecondColor',['../class_intelli_color_picker.html#a86bf4a940e4a0e465e30cbdf28748931',1,'IntelliColorPicker']]], - ['shaped_5fimage_110',['Shaped_Image',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0ab7e2d2c1c171e5a0e0b6b548449df79d',1,'IntelliImage.h']]], - ['sign_111',['sign',['../namespace_intelli_helper.html#afdd9fe78cc5d21b59642910220768149',1,'IntelliHelper']]], - ['slotactivatelayer_112',['slotActivateLayer',['../class_painting_area.html#a71ac281e0de263208d4a3b9de74258ec',1,'PaintingArea']]], - ['slotcreatefloodfilltool_113',['slotCreateFloodFillTool',['../_intelli_photo_gui_8cpp.html#ac2f8320173dfaf943bb39e39cb1a23e5',1,'IntelliPhotoGui.cpp']]], - ['slotcreatepentool_114',['slotCreatePenTool',['../_intelli_photo_gui_8cpp.html#a30169da42b55e0339af0d28dfc8ccd40',1,'IntelliPhotoGui.cpp']]], - ['slotdeleteactivelayer_115',['slotDeleteActiveLayer',['../class_painting_area.html#a1ff0b9c1227531943c9cec2c546fae5e',1,'PaintingArea']]], - ['solid_5fline_116',['SOLID_LINE',['../_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7ae45e1e6b2e6dde14829d057a4ef44199',1,'IntelliToolLine.h']]], - ['switchcolors_117',['switchColors',['../class_intelli_color_picker.html#a437a6f20bf2fc0a4cbaf4c030c2a26d9',1,'IntelliColorPicker']]] + ['save_109',['save',['../class_painting_area.html#a612176cc9d629d22fd3fe1a746cce564',1,'PaintingArea']]], + ['setalphaoflayer_110',['setAlphaOfLayer',['../class_painting_area.html#aec59be20f1c27135700754882dd6383d',1,'PaintingArea']]], + ['setfirstcolor_111',['setFirstColor',['../class_intelli_color_picker.html#a7e2ddbbbfbed383f06b24e5bf6b27ae8',1,'IntelliColorPicker']]], + ['setlayertoactive_112',['setLayerToActive',['../class_painting_area.html#a1d6d86c25efdce9fe9031a9cd01c74c8',1,'PaintingArea']]], + ['setpolygon_113',['setPolygon',['../class_intelli_image.html#aa4b3f4631bd972456917275afb9fd309',1,'IntelliImage::setPolygon()'],['../class_intelli_raster_image.html#a6462fa5f94c5e64e9e1f0c4658e0507b',1,'IntelliRasterImage::setPolygon()'],['../class_intelli_shaped_image.html#a4b69d75de7a3b85032482982f249458e',1,'IntelliShapedImage::setPolygon()']]], + ['setsecondcolor_114',['setSecondColor',['../class_intelli_color_picker.html#a86bf4a940e4a0e465e30cbdf28748931',1,'IntelliColorPicker']]], + ['shaped_5fimage_115',['Shaped_Image',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0ab7e2d2c1c171e5a0e0b6b548449df79d',1,'IntelliImage.h']]], + ['sign_116',['sign',['../namespace_intelli_helper.html#afdd9fe78cc5d21b59642910220768149',1,'IntelliHelper']]], + ['slotactivatelayer_117',['slotActivateLayer',['../class_painting_area.html#a71ac281e0de263208d4a3b9de74258ec',1,'PaintingArea']]], + ['slotdeleteactivelayer_118',['slotDeleteActiveLayer',['../class_painting_area.html#a1ff0b9c1227531943c9cec2c546fae5e',1,'PaintingArea']]], + ['solid_5fline_119',['SOLID_LINE',['../_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7ae45e1e6b2e6dde14829d057a4ef44199',1,'IntelliToolLine.h']]], + ['switchcolors_120',['switchColors',['../class_intelli_color_picker.html#a437a6f20bf2fc0a4cbaf4c030c2a26d9',1,'IntelliColorPicker']]] ]; diff --git a/docs/html/search/all_e.js b/docs/html/search/all_e.js index 7ffc447..5e7fdd5 100644 --- a/docs/html/search/all_e.js +++ b/docs/html/search/all_e.js @@ -1,4 +1,4 @@ var searchData= [ - ['triangle_118',['Triangle',['../struct_triangle.html',1,'']]] + ['triangle_121',['Triangle',['../struct_triangle.html',1,'']]] ]; diff --git a/docs/html/search/all_f.js b/docs/html/search/all_f.js index 81c24f8..b851b8b 100644 --- a/docs/html/search/all_f.js +++ b/docs/html/search/all_f.js @@ -1,6 +1,6 @@ var searchData= [ - ['wheelevent_119',['wheelEvent',['../class_painting_area.html#a632848d99f44d33d7da2618fbc6775a4',1,'PaintingArea']]], - ['width_120',['width',['../struct_layer_object.html#af261813df52ff0b0c82bfa57efeb9897',1,'LayerObject']]], - ['widthoffset_121',['widthOffset',['../struct_layer_object.html#a72b44d27c7bbb60dde14f04ec240ab96',1,'LayerObject']]] + ['wheelevent_122',['wheelEvent',['../class_painting_area.html#a632848d99f44d33d7da2618fbc6775a4',1,'PaintingArea']]], + ['width_123',['width',['../struct_layer_object.html#af261813df52ff0b0c82bfa57efeb9897',1,'LayerObject']]], + ['widthoffset_124',['widthOffset',['../struct_layer_object.html#a72b44d27c7bbb60dde14f04ec240ab96',1,'LayerObject']]] ]; diff --git a/docs/html/search/classes_0.js b/docs/html/search/classes_0.js index 766fce0..cd9dba3 100644 --- a/docs/html/search/classes_0.js +++ b/docs/html/search/classes_0.js @@ -1,15 +1,16 @@ var searchData= [ - ['intellicolorpicker_133',['IntelliColorPicker',['../class_intelli_color_picker.html',1,'']]], - ['intelliimage_134',['IntelliImage',['../class_intelli_image.html',1,'']]], - ['intelliphotogui_135',['IntelliPhotoGui',['../class_intelli_photo_gui.html',1,'']]], - ['intellirasterimage_136',['IntelliRasterImage',['../class_intelli_raster_image.html',1,'']]], - ['intellishapedimage_137',['IntelliShapedImage',['../class_intelli_shaped_image.html',1,'']]], - ['intellitool_138',['IntelliTool',['../class_intelli_tool.html',1,'']]], - ['intellitoolcircle_139',['IntelliToolCircle',['../class_intelli_tool_circle.html',1,'']]], - ['intellitoolfloodfill_140',['IntelliToolFloodFill',['../class_intelli_tool_flood_fill.html',1,'']]], - ['intellitoolline_141',['IntelliToolLine',['../class_intelli_tool_line.html',1,'']]], - ['intellitoolpen_142',['IntelliToolPen',['../class_intelli_tool_pen.html',1,'']]], - ['intellitoolplaintool_143',['IntelliToolPlainTool',['../class_intelli_tool_plain_tool.html',1,'']]], - ['intellitoolrectangle_144',['IntelliToolRectangle',['../class_intelli_tool_rectangle.html',1,'']]] + ['intellicolorpicker_137',['IntelliColorPicker',['../class_intelli_color_picker.html',1,'']]], + ['intelliimage_138',['IntelliImage',['../class_intelli_image.html',1,'']]], + ['intelliphotogui_139',['IntelliPhotoGui',['../class_intelli_photo_gui.html',1,'']]], + ['intellirasterimage_140',['IntelliRasterImage',['../class_intelli_raster_image.html',1,'']]], + ['intellishapedimage_141',['IntelliShapedImage',['../class_intelli_shaped_image.html',1,'']]], + ['intellitool_142',['IntelliTool',['../class_intelli_tool.html',1,'']]], + ['intellitoolcircle_143',['IntelliToolCircle',['../class_intelli_tool_circle.html',1,'']]], + ['intellitoolfloodfill_144',['IntelliToolFloodFill',['../class_intelli_tool_flood_fill.html',1,'']]], + ['intellitoolline_145',['IntelliToolLine',['../class_intelli_tool_line.html',1,'']]], + ['intellitoolpen_146',['IntelliToolPen',['../class_intelli_tool_pen.html',1,'']]], + ['intellitoolplaintool_147',['IntelliToolPlainTool',['../class_intelli_tool_plain_tool.html',1,'']]], + ['intellitoolpolygon_148',['IntelliToolPolygon',['../class_intelli_tool_polygon.html',1,'']]], + ['intellitoolrectangle_149',['IntelliToolRectangle',['../class_intelli_tool_rectangle.html',1,'']]] ]; diff --git a/docs/html/search/classes_1.js b/docs/html/search/classes_1.js index 0325ec6..367b478 100644 --- a/docs/html/search/classes_1.js +++ b/docs/html/search/classes_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['layerobject_145',['LayerObject',['../struct_layer_object.html',1,'']]] + ['layerobject_150',['LayerObject',['../struct_layer_object.html',1,'']]] ]; diff --git a/docs/html/search/classes_2.js b/docs/html/search/classes_2.js index 6c1b286..cae10b6 100644 --- a/docs/html/search/classes_2.js +++ b/docs/html/search/classes_2.js @@ -1,4 +1,4 @@ var searchData= [ - ['paintingarea_146',['PaintingArea',['../class_painting_area.html',1,'']]] + ['paintingarea_151',['PaintingArea',['../class_painting_area.html',1,'']]] ]; diff --git a/docs/html/search/classes_3.js b/docs/html/search/classes_3.js index 4bb9005..771af75 100644 --- a/docs/html/search/classes_3.js +++ b/docs/html/search/classes_3.js @@ -1,4 +1,4 @@ var searchData= [ - ['triangle_147',['Triangle',['../struct_triangle.html',1,'']]] + ['triangle_152',['Triangle',['../struct_triangle.html',1,'']]] ]; diff --git a/docs/html/search/enums_0.js b/docs/html/search/enums_0.js index ecf7b75..6e1453a 100644 --- a/docs/html/search/enums_0.js +++ b/docs/html/search/enums_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['imagetype_273',['ImageType',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0',1,'IntelliImage.h']]] + ['imagetype_282',['ImageType',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0',1,'IntelliImage.h']]] ]; diff --git a/docs/html/search/enums_1.js b/docs/html/search/enums_1.js index c5efe4a..41e758e 100644 --- a/docs/html/search/enums_1.js +++ b/docs/html/search/enums_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['linestyle_274',['LineStyle',['../_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7',1,'IntelliToolLine.h']]] + ['linestyle_283',['LineStyle',['../_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7',1,'IntelliToolLine.h']]] ]; diff --git a/docs/html/search/enumvalues_0.js b/docs/html/search/enumvalues_0.js index 0360377..7f894a9 100644 --- a/docs/html/search/enumvalues_0.js +++ b/docs/html/search/enumvalues_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['dotted_5fline_275',['DOTTED_LINE',['../_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7a7660f396543c877e45d443f99d02bd0e',1,'IntelliToolLine.h']]] + ['dotted_5fline_284',['DOTTED_LINE',['../_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7a7660f396543c877e45d443f99d02bd0e',1,'IntelliToolLine.h']]] ]; diff --git a/docs/html/search/enumvalues_1.js b/docs/html/search/enumvalues_1.js index 981ba86..0696843 100644 --- a/docs/html/search/enumvalues_1.js +++ b/docs/html/search/enumvalues_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['raster_5fimage_276',['Raster_Image',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0a80e1612d2117f2b25530317279ffe7b3',1,'IntelliImage.h']]] + ['raster_5fimage_285',['Raster_Image',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0a80e1612d2117f2b25530317279ffe7b3',1,'IntelliImage.h']]] ]; diff --git a/docs/html/search/enumvalues_2.js b/docs/html/search/enumvalues_2.js index fe6065e..5ef04a4 100644 --- a/docs/html/search/enumvalues_2.js +++ b/docs/html/search/enumvalues_2.js @@ -1,5 +1,5 @@ var searchData= [ - ['shaped_5fimage_277',['Shaped_Image',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0ab7e2d2c1c171e5a0e0b6b548449df79d',1,'IntelliImage.h']]], - ['solid_5fline_278',['SOLID_LINE',['../_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7ae45e1e6b2e6dde14829d057a4ef44199',1,'IntelliToolLine.h']]] + ['shaped_5fimage_286',['Shaped_Image',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0ab7e2d2c1c171e5a0e0b6b548449df79d',1,'IntelliImage.h']]], + ['solid_5fline_287',['SOLID_LINE',['../_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7ae45e1e6b2e6dde14829d057a4ef44199',1,'IntelliToolLine.h']]] ]; diff --git a/docs/html/search/files_0.js b/docs/html/search/files_0.js index 78eeaa5..7ecb811 100644 --- a/docs/html/search/files_0.js +++ b/docs/html/search/files_0.js @@ -1,29 +1,31 @@ var searchData= [ - ['intellicolorpicker_2ecpp_149',['IntelliColorPicker.cpp',['../_intelli_helper_2_intelli_color_picker_8cpp.html',1,'(Global Namespace)'],['../_tool_2_intelli_color_picker_8cpp.html',1,'(Global Namespace)']]], - ['intellicolorpicker_2eh_150',['IntelliColorPicker.h',['../_intelli_color_picker_8h.html',1,'']]], - ['intellihelper_2ecpp_151',['IntelliHelper.cpp',['../_intelli_helper_8cpp.html',1,'']]], - ['intellihelper_2eh_152',['IntelliHelper.h',['../_intelli_helper_8h.html',1,'']]], - ['intelliimage_2ecpp_153',['IntelliImage.cpp',['../_intelli_image_8cpp.html',1,'']]], - ['intelliimage_2eh_154',['IntelliImage.h',['../_intelli_image_8h.html',1,'']]], - ['intelliphotogui_2ecpp_155',['IntelliPhotoGui.cpp',['../_intelli_photo_gui_8cpp.html',1,'']]], - ['intelliphotogui_2eh_156',['IntelliPhotoGui.h',['../_intelli_photo_gui_8h.html',1,'']]], - ['intellirasterimage_2ecpp_157',['IntelliRasterImage.cpp',['../_intelli_raster_image_8cpp.html',1,'']]], - ['intellirasterimage_2eh_158',['IntelliRasterImage.h',['../_intelli_raster_image_8h.html',1,'']]], - ['intellishapedimage_2ecpp_159',['IntelliShapedImage.cpp',['../_intelli_shaped_image_8cpp.html',1,'']]], - ['intellishapedimage_2eh_160',['IntelliShapedImage.h',['../_intelli_shaped_image_8h.html',1,'']]], - ['intellitool_2ecpp_161',['IntelliTool.cpp',['../_intelli_tool_8cpp.html',1,'']]], - ['intellitool_2eh_162',['IntelliTool.h',['../_intelli_tool_8h.html',1,'']]], - ['intellitoolcircle_2ecpp_163',['IntelliToolCircle.cpp',['../_intelli_tool_circle_8cpp.html',1,'']]], - ['intellitoolcircle_2eh_164',['IntelliToolCircle.h',['../_intelli_tool_circle_8h.html',1,'']]], - ['intellitoolfloodfill_2ecpp_165',['IntelliToolFloodFill.cpp',['../_intelli_tool_flood_fill_8cpp.html',1,'']]], - ['intellitoolfloodfill_2eh_166',['IntelliToolFloodFill.h',['../_intelli_tool_flood_fill_8h.html',1,'']]], - ['intellitoolline_2ecpp_167',['IntelliToolLine.cpp',['../_intelli_tool_line_8cpp.html',1,'']]], - ['intellitoolline_2eh_168',['IntelliToolLine.h',['../_intelli_tool_line_8h.html',1,'']]], - ['intellitoolpen_2ecpp_169',['IntelliToolPen.cpp',['../_intelli_tool_pen_8cpp.html',1,'']]], - ['intellitoolpen_2eh_170',['IntelliToolPen.h',['../_intelli_tool_pen_8h.html',1,'']]], - ['intellitoolplain_2ecpp_171',['IntelliToolPlain.cpp',['../_intelli_tool_plain_8cpp.html',1,'']]], - ['intellitoolplain_2eh_172',['IntelliToolPlain.h',['../_intelli_tool_plain_8h.html',1,'']]], - ['intellitoolrectangle_2ecpp_173',['IntelliToolRectangle.cpp',['../_intelli_tool_rectangle_8cpp.html',1,'']]], - ['intellitoolrectangle_2eh_174',['IntelliToolRectangle.h',['../_intelli_tool_rectangle_8h.html',1,'']]] + ['intellicolorpicker_2ecpp_154',['IntelliColorPicker.cpp',['../_intelli_helper_2_intelli_color_picker_8cpp.html',1,'(Global Namespace)'],['../_tool_2_intelli_color_picker_8cpp.html',1,'(Global Namespace)']]], + ['intellicolorpicker_2eh_155',['IntelliColorPicker.h',['../_intelli_color_picker_8h.html',1,'']]], + ['intellihelper_2ecpp_156',['IntelliHelper.cpp',['../_intelli_helper_8cpp.html',1,'']]], + ['intellihelper_2eh_157',['IntelliHelper.h',['../_intelli_helper_8h.html',1,'']]], + ['intelliimage_2ecpp_158',['IntelliImage.cpp',['../_intelli_image_8cpp.html',1,'']]], + ['intelliimage_2eh_159',['IntelliImage.h',['../_intelli_image_8h.html',1,'']]], + ['intelliphotogui_2ecpp_160',['IntelliPhotoGui.cpp',['../_intelli_photo_gui_8cpp.html',1,'']]], + ['intelliphotogui_2eh_161',['IntelliPhotoGui.h',['../_intelli_photo_gui_8h.html',1,'']]], + ['intellirasterimage_2ecpp_162',['IntelliRasterImage.cpp',['../_intelli_raster_image_8cpp.html',1,'']]], + ['intellirasterimage_2eh_163',['IntelliRasterImage.h',['../_intelli_raster_image_8h.html',1,'']]], + ['intellishapedimage_2ecpp_164',['IntelliShapedImage.cpp',['../_intelli_shaped_image_8cpp.html',1,'']]], + ['intellishapedimage_2eh_165',['IntelliShapedImage.h',['../_intelli_shaped_image_8h.html',1,'']]], + ['intellitool_2ecpp_166',['IntelliTool.cpp',['../_intelli_tool_8cpp.html',1,'']]], + ['intellitool_2eh_167',['IntelliTool.h',['../_intelli_tool_8h.html',1,'']]], + ['intellitoolcircle_2ecpp_168',['IntelliToolCircle.cpp',['../_intelli_tool_circle_8cpp.html',1,'']]], + ['intellitoolcircle_2eh_169',['IntelliToolCircle.h',['../_intelli_tool_circle_8h.html',1,'']]], + ['intellitoolfloodfill_2ecpp_170',['IntelliToolFloodFill.cpp',['../_intelli_tool_flood_fill_8cpp.html',1,'']]], + ['intellitoolfloodfill_2eh_171',['IntelliToolFloodFill.h',['../_intelli_tool_flood_fill_8h.html',1,'']]], + ['intellitoolline_2ecpp_172',['IntelliToolLine.cpp',['../_intelli_tool_line_8cpp.html',1,'']]], + ['intellitoolline_2eh_173',['IntelliToolLine.h',['../_intelli_tool_line_8h.html',1,'']]], + ['intellitoolpen_2ecpp_174',['IntelliToolPen.cpp',['../_intelli_tool_pen_8cpp.html',1,'']]], + ['intellitoolpen_2eh_175',['IntelliToolPen.h',['../_intelli_tool_pen_8h.html',1,'']]], + ['intellitoolplain_2ecpp_176',['IntelliToolPlain.cpp',['../_intelli_tool_plain_8cpp.html',1,'']]], + ['intellitoolplain_2eh_177',['IntelliToolPlain.h',['../_intelli_tool_plain_8h.html',1,'']]], + ['intellitoolpolygon_2ecpp_178',['IntelliToolPolygon.cpp',['../_intelli_tool_polygon_8cpp.html',1,'']]], + ['intellitoolpolygon_2eh_179',['IntelliToolPolygon.h',['../_intelli_tool_polygon_8h.html',1,'']]], + ['intellitoolrectangle_2ecpp_180',['IntelliToolRectangle.cpp',['../_intelli_tool_rectangle_8cpp.html',1,'']]], + ['intellitoolrectangle_2eh_181',['IntelliToolRectangle.h',['../_intelli_tool_rectangle_8h.html',1,'']]] ]; diff --git a/docs/html/search/files_1.js b/docs/html/search/files_1.js index 36433ea..3feae41 100644 --- a/docs/html/search/files_1.js +++ b/docs/html/search/files_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['main_2ecpp_175',['main.cpp',['../main_8cpp.html',1,'']]] + ['main_2ecpp_182',['main.cpp',['../main_8cpp.html',1,'']]] ]; diff --git a/docs/html/search/files_2.js b/docs/html/search/files_2.js index 1478203..c7a376d 100644 --- a/docs/html/search/files_2.js +++ b/docs/html/search/files_2.js @@ -1,5 +1,5 @@ var searchData= [ - ['paintingarea_2ecpp_176',['PaintingArea.cpp',['../_painting_area_8cpp.html',1,'']]], - ['paintingarea_2eh_177',['PaintingArea.h',['../_painting_area_8h.html',1,'']]] + ['paintingarea_2ecpp_183',['PaintingArea.cpp',['../_painting_area_8cpp.html',1,'']]], + ['paintingarea_2eh_184',['PaintingArea.h',['../_painting_area_8h.html',1,'']]] ]; diff --git a/docs/html/search/functions_0.js b/docs/html/search/functions_0.js index c70f4b0..e6cd7b2 100644 --- a/docs/html/search/functions_0.js +++ b/docs/html/search/functions_0.js @@ -1,5 +1,5 @@ var searchData= [ - ['addlayer_178',['addLayer',['../class_painting_area.html#a39ad76e1319659bfa38eee88ef33d395',1,'PaintingArea']]], - ['addlayerat_179',['addLayerAt',['../class_painting_area.html#ae756003b49aead863b49616ea7a44cc0',1,'PaintingArea']]] + ['addlayer_185',['addLayer',['../class_painting_area.html#a39ad76e1319659bfa38eee88ef33d395',1,'PaintingArea']]], + ['addlayerat_186',['addLayerAt',['../class_painting_area.html#ae756003b49aead863b49616ea7a44cc0',1,'PaintingArea']]] ]; diff --git a/docs/html/search/functions_1.js b/docs/html/search/functions_1.js index b60d9d3..35ef9ba 100644 --- a/docs/html/search/functions_1.js +++ b/docs/html/search/functions_1.js @@ -1,12 +1,12 @@ var searchData= [ - ['calculatetriangles_180',['calculateTriangles',['../namespace_intelli_helper.html#a214dc3624ba4562a03dc922e3dd7b617',1,'IntelliHelper']]], - ['calculatevisiblity_181',['calculateVisiblity',['../class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2',1,'IntelliImage::calculateVisiblity()'],['../class_intelli_raster_image.html#a87cf2d360c129d64a5db0db85818eb60',1,'IntelliRasterImage::calculateVisiblity()']]], - ['closeevent_182',['closeEvent',['../class_intelli_photo_gui.html#a2cf48070236ae8b35245e7f30482ef13',1,'IntelliPhotoGui']]], - ['colorpickersetfirstcolor_183',['colorPickerSetFirstColor',['../class_painting_area.html#a4735d4cf1dc58a9096d904e74c39c4df',1,'PaintingArea']]], - ['colorpickersetsecondcolor_184',['colorPickerSetSecondColor',['../class_painting_area.html#ae261acaaa346610dfed489dbac17e789',1,'PaintingArea']]], - ['colorpickerswitchcolor_185',['colorPickerSwitchColor',['../class_painting_area.html#a66115307ff4a99cd7ca16423c5c8ecfb',1,'PaintingArea']]], - ['createlinetool_186',['createLineTool',['../class_painting_area.html#a240c33a7875addac86080cdfb0db036a',1,'PaintingArea']]], - ['createpentool_187',['createPenTool',['../class_painting_area.html#a96c6248e343e44b61cf2625cb6d21353',1,'PaintingArea']]], - ['createplaintool_188',['createPlainTool',['../class_painting_area.html#a3de83443d2d5cf460ff48d0602070938',1,'PaintingArea']]] + ['calculatetriangles_187',['calculateTriangles',['../namespace_intelli_helper.html#a214dc3624ba4562a03dc922e3dd7b617',1,'IntelliHelper']]], + ['calculatevisiblity_188',['calculateVisiblity',['../class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2',1,'IntelliImage::calculateVisiblity()'],['../class_intelli_raster_image.html#a87cf2d360c129d64a5db0db85818eb60',1,'IntelliRasterImage::calculateVisiblity()']]], + ['closeevent_189',['closeEvent',['../class_intelli_photo_gui.html#a2cf48070236ae8b35245e7f30482ef13',1,'IntelliPhotoGui']]], + ['colorpickersetfirstcolor_190',['colorPickerSetFirstColor',['../class_painting_area.html#a4735d4cf1dc58a9096d904e74c39c4df',1,'PaintingArea']]], + ['colorpickersetsecondcolor_191',['colorPickerSetSecondColor',['../class_painting_area.html#ae261acaaa346610dfed489dbac17e789',1,'PaintingArea']]], + ['colorpickerswitchcolor_192',['colorPickerSwitchColor',['../class_painting_area.html#a66115307ff4a99cd7ca16423c5c8ecfb',1,'PaintingArea']]], + ['createlinetool_193',['createLineTool',['../class_painting_area.html#a240c33a7875addac86080cdfb0db036a',1,'PaintingArea']]], + ['createpentool_194',['createPenTool',['../class_painting_area.html#a96c6248e343e44b61cf2625cb6d21353',1,'PaintingArea']]], + ['createplaintool_195',['createPlainTool',['../class_painting_area.html#a3de83443d2d5cf460ff48d0602070938',1,'PaintingArea']]] ]; diff --git a/docs/html/search/functions_2.js b/docs/html/search/functions_2.js index 307d0b5..7a4517e 100644 --- a/docs/html/search/functions_2.js +++ b/docs/html/search/functions_2.js @@ -1,8 +1,8 @@ var searchData= [ - ['deletelayer_189',['deleteLayer',['../class_painting_area.html#a6efad6f8ea060674b157b42b431cd173',1,'PaintingArea']]], - ['drawline_190',['drawLine',['../class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31',1,'IntelliImage']]], - ['drawpixel_191',['drawPixel',['../class_intelli_image.html#af3c859f5c409e37051edfd9e9fbca056',1,'IntelliImage']]], - ['drawplain_192',['drawPlain',['../class_intelli_image.html#a6be622810dc2bc756054bb5769becb06',1,'IntelliImage']]], - ['drawpoint_193',['drawPoint',['../class_intelli_image.html#a2e787f1b333b59401643936ebb3dcfe1',1,'IntelliImage']]] + ['deletelayer_196',['deleteLayer',['../class_painting_area.html#a6efad6f8ea060674b157b42b431cd173',1,'PaintingArea']]], + ['drawline_197',['drawLine',['../class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31',1,'IntelliImage']]], + ['drawpixel_198',['drawPixel',['../class_intelli_image.html#af3c859f5c409e37051edfd9e9fbca056',1,'IntelliImage']]], + ['drawplain_199',['drawPlain',['../class_intelli_image.html#a6be622810dc2bc756054bb5769becb06',1,'IntelliImage']]], + ['drawpoint_200',['drawPoint',['../class_intelli_image.html#a2e787f1b333b59401643936ebb3dcfe1',1,'IntelliImage']]] ]; diff --git a/docs/html/search/functions_3.js b/docs/html/search/functions_3.js index f663286..94e0cf9 100644 --- a/docs/html/search/functions_3.js +++ b/docs/html/search/functions_3.js @@ -1,4 +1,4 @@ var searchData= [ - ['floodfill_194',['floodFill',['../class_painting_area.html#aeb5eb394b979ea90f2be9849fdda1774',1,'PaintingArea']]] + ['floodfill_201',['floodFill',['../class_painting_area.html#aeb5eb394b979ea90f2be9849fdda1774',1,'PaintingArea']]] ]; diff --git a/docs/html/search/functions_4.js b/docs/html/search/functions_4.js index 0948422..153ae70 100644 --- a/docs/html/search/functions_4.js +++ b/docs/html/search/functions_4.js @@ -1,9 +1,11 @@ var searchData= [ - ['getdeepcopy_195',['getDeepCopy',['../class_intelli_image.html#af6381067bdf565669f856bb589008ae9',1,'IntelliImage::getDeepCopy()'],['../class_intelli_raster_image.html#a8f901301b106504de3c27308ade897dc',1,'IntelliRasterImage::getDeepCopy()'],['../class_intelli_shaped_image.html#aed0b31e0fa771104399d1f5ff39a0337',1,'IntelliShapedImage::getDeepCopy()']]], - ['getdisplayable_196',['getDisplayable',['../class_intelli_image.html#a21c7e65b59a26db45aac3880133ef21d',1,'IntelliImage::getDisplayable(const QSize &displaySize, int alpha)=0'],['../class_intelli_image.html#a9d4daf3c48c64695105689f61c21bae0',1,'IntelliImage::getDisplayable(int alpha=255)=0'],['../class_intelli_raster_image.html#ae43393397b0141a8033fe34d3a1b1884',1,'IntelliRasterImage::getDisplayable(const QSize &displaySize, int alpha) override'],['../class_intelli_raster_image.html#a612d79124f0e2c158a4f0abbe4b5f97f',1,'IntelliRasterImage::getDisplayable(int alpha=255) override'],['../class_intelli_shaped_image.html#a68cf374247c16f07fd84d50e4cd05630',1,'IntelliShapedImage::getDisplayable(const QSize &displaySize, int alpha=255) override'],['../class_intelli_shaped_image.html#ac6a99e1a96134073bceea252b37636cc',1,'IntelliShapedImage::getDisplayable(int alpha=255) override']]], - ['getfirstcolor_197',['getFirstColor',['../class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7',1,'IntelliColorPicker']]], - ['getpixelcolor_198',['getPixelColor',['../class_intelli_image.html#a4576ebb6d863321c816293d7b7f9fd3f',1,'IntelliImage']]], - ['getpolygondata_199',['getPolygonData',['../class_intelli_image.html#aaf9f3e8db8666850024bee9aad9966ba',1,'IntelliImage::getPolygonData()'],['../class_intelli_shaped_image.html#ae4518c7f5a105cc4f33fabb60c794a93',1,'IntelliShapedImage::getPolygonData()']]], - ['getsecondcolor_200',['getSecondColor',['../class_intelli_color_picker.html#a55568fbf5dc783f06284b7031ffe9415',1,'IntelliColorPicker']]] + ['getdeepcopy_202',['getDeepCopy',['../class_intelli_image.html#af6381067bdf565669f856bb589008ae9',1,'IntelliImage::getDeepCopy()'],['../class_intelli_raster_image.html#a8f901301b106504de3c27308ade897dc',1,'IntelliRasterImage::getDeepCopy()'],['../class_intelli_shaped_image.html#aed0b31e0fa771104399d1f5ff39a0337',1,'IntelliShapedImage::getDeepCopy()']]], + ['getdisplayable_203',['getDisplayable',['../class_intelli_image.html#a21c7e65b59a26db45aac3880133ef21d',1,'IntelliImage::getDisplayable(const QSize &displaySize, int alpha)=0'],['../class_intelli_image.html#a9d4daf3c48c64695105689f61c21bae0',1,'IntelliImage::getDisplayable(int alpha=255)=0'],['../class_intelli_raster_image.html#ae43393397b0141a8033fe34d3a1b1884',1,'IntelliRasterImage::getDisplayable(const QSize &displaySize, int alpha) override'],['../class_intelli_raster_image.html#a612d79124f0e2c158a4f0abbe4b5f97f',1,'IntelliRasterImage::getDisplayable(int alpha=255) override'],['../class_intelli_shaped_image.html#a68cf374247c16f07fd84d50e4cd05630',1,'IntelliShapedImage::getDisplayable(const QSize &displaySize, int alpha=255) override'],['../class_intelli_shaped_image.html#ac6a99e1a96134073bceea252b37636cc',1,'IntelliShapedImage::getDisplayable(int alpha=255) override']]], + ['getfirstcolor_204',['getFirstColor',['../class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7',1,'IntelliColorPicker']]], + ['getheightactivelayer_205',['getHeightActiveLayer',['../class_painting_area.html#a1511a534e206089fff1d325e7ec7a8eb',1,'PaintingArea']]], + ['getpixelcolor_206',['getPixelColor',['../class_intelli_image.html#a4576ebb6d863321c816293d7b7f9fd3f',1,'IntelliImage']]], + ['getpolygondata_207',['getPolygonData',['../class_intelli_image.html#aaf9f3e8db8666850024bee9aad9966ba',1,'IntelliImage::getPolygonData()'],['../class_intelli_shaped_image.html#ae4518c7f5a105cc4f33fabb60c794a93',1,'IntelliShapedImage::getPolygonData()']]], + ['getsecondcolor_208',['getSecondColor',['../class_intelli_color_picker.html#a55568fbf5dc783f06284b7031ffe9415',1,'IntelliColorPicker']]], + ['getwidthactivelayer_209',['getWidthActiveLayer',['../class_painting_area.html#a427c5fc26480c7ae80b3480e85510bda',1,'PaintingArea']]] ]; diff --git a/docs/html/search/functions_5.js b/docs/html/search/functions_5.js index 2296e26..3234f3f 100644 --- a/docs/html/search/functions_5.js +++ b/docs/html/search/functions_5.js @@ -1,17 +1,18 @@ var searchData= [ - ['intellicolorpicker_201',['IntelliColorPicker',['../class_intelli_color_picker.html#a0d1247bdd87add1396ea5d9acaad79ae',1,'IntelliColorPicker']]], - ['intelliimage_202',['IntelliImage',['../class_intelli_image.html#a47084f1cb668ea0242ab95162cf9e902',1,'IntelliImage']]], - ['intelliphotogui_203',['IntelliPhotoGui',['../class_intelli_photo_gui.html#ad2aaec3c1517a9aaa461b54e341b97e0',1,'IntelliPhotoGui']]], - ['intellirasterimage_204',['IntelliRasterImage',['../class_intelli_raster_image.html#aad9b561fe499a4da3c6ef98971aa3468',1,'IntelliRasterImage']]], - ['intellishapedimage_205',['IntelliShapedImage',['../class_intelli_shaped_image.html#a0f834c3f255baeb50c98ef335a6d0ea9',1,'IntelliShapedImage']]], - ['intellitool_206',['IntelliTool',['../class_intelli_tool.html#a346dd55d489fced38e7bb46f9168af91',1,'IntelliTool']]], - ['intellitoolcircle_207',['IntelliToolCircle',['../class_intelli_tool_circle.html#a9b185b9d327f8602d0b7f667b8d1d32a',1,'IntelliToolCircle']]], - ['intellitoolfloodfill_208',['IntelliToolFloodFill',['../class_intelli_tool_flood_fill.html#a83b51838da304e274bf866cf2fd5407a',1,'IntelliToolFloodFill']]], - ['intellitoolline_209',['IntelliToolLine',['../class_intelli_tool_line.html#a9b2d4bcd69409a21f6080edfea4ae2a2',1,'IntelliToolLine']]], - ['intellitoolpen_210',['IntelliToolPen',['../class_intelli_tool_pen.html#a889891b3ae7cdefb881aed2e7fff9b47',1,'IntelliToolPen']]], - ['intellitoolplaintool_211',['IntelliToolPlainTool',['../class_intelli_tool_plain_tool.html#a0ff0b9f7b78b763683076e4417236859',1,'IntelliToolPlainTool']]], - ['intellitoolrectangle_212',['IntelliToolRectangle',['../class_intelli_tool_rectangle.html#aa9823939a8b8924520a2943cf6335c11',1,'IntelliToolRectangle']]], - ['isinpolygon_213',['isInPolygon',['../namespace_intelli_helper.html#a44d516b3e619e2a743e9c98dd75cf901',1,'IntelliHelper']]], - ['isintriangle_214',['isInTriangle',['../namespace_intelli_helper.html#a9fcfe72f00e870be4a8ab9f2e17483c9',1,'IntelliHelper']]] + ['intellicolorpicker_210',['IntelliColorPicker',['../class_intelli_color_picker.html#a0d1247bdd87add1396ea5d9acaad79ae',1,'IntelliColorPicker']]], + ['intelliimage_211',['IntelliImage',['../class_intelli_image.html#a47084f1cb668ea0242ab95162cf9e902',1,'IntelliImage']]], + ['intelliphotogui_212',['IntelliPhotoGui',['../class_intelli_photo_gui.html#ad2aaec3c1517a9aaa461b54e341b97e0',1,'IntelliPhotoGui']]], + ['intellirasterimage_213',['IntelliRasterImage',['../class_intelli_raster_image.html#aad9b561fe499a4da3c6ef98971aa3468',1,'IntelliRasterImage']]], + ['intellishapedimage_214',['IntelliShapedImage',['../class_intelli_shaped_image.html#a0f834c3f255baeb50c98ef335a6d0ea9',1,'IntelliShapedImage']]], + ['intellitool_215',['IntelliTool',['../class_intelli_tool.html#a346dd55d489fced38e7bb46f9168af91',1,'IntelliTool']]], + ['intellitoolcircle_216',['IntelliToolCircle',['../class_intelli_tool_circle.html#a9b185b9d327f8602d0b7f667b8d1d32a',1,'IntelliToolCircle']]], + ['intellitoolfloodfill_217',['IntelliToolFloodFill',['../class_intelli_tool_flood_fill.html#a83b51838da304e274bf866cf2fd5407a',1,'IntelliToolFloodFill']]], + ['intellitoolline_218',['IntelliToolLine',['../class_intelli_tool_line.html#a9b2d4bcd69409a21f6080edfea4ae2a2',1,'IntelliToolLine']]], + ['intellitoolpen_219',['IntelliToolPen',['../class_intelli_tool_pen.html#a889891b3ae7cdefb881aed2e7fff9b47',1,'IntelliToolPen']]], + ['intellitoolplaintool_220',['IntelliToolPlainTool',['../class_intelli_tool_plain_tool.html#a0ff0b9f7b78b763683076e4417236859',1,'IntelliToolPlainTool']]], + ['intellitoolpolygon_221',['IntelliToolPolygon',['../class_intelli_tool_polygon.html#ae6e5f07fdf88d12029410a032dc4921d',1,'IntelliToolPolygon']]], + ['intellitoolrectangle_222',['IntelliToolRectangle',['../class_intelli_tool_rectangle.html#aa9823939a8b8924520a2943cf6335c11',1,'IntelliToolRectangle']]], + ['isinpolygon_223',['isInPolygon',['../namespace_intelli_helper.html#a44d516b3e619e2a743e9c98dd75cf901',1,'IntelliHelper']]], + ['isintriangle_224',['isInTriangle',['../namespace_intelli_helper.html#a9fcfe72f00e870be4a8ab9f2e17483c9',1,'IntelliHelper']]] ]; diff --git a/docs/html/search/functions_6.js b/docs/html/search/functions_6.js index 406c1b7..eaaa202 100644 --- a/docs/html/search/functions_6.js +++ b/docs/html/search/functions_6.js @@ -1,4 +1,4 @@ var searchData= [ - ['loadimage_215',['loadImage',['../class_intelli_image.html#aec0e9c8184d89dee33fd9adefbd2f8aa',1,'IntelliImage']]] + ['loadimage_225',['loadImage',['../class_intelli_image.html#aec0e9c8184d89dee33fd9adefbd2f8aa',1,'IntelliImage']]] ]; diff --git a/docs/html/search/functions_7.js b/docs/html/search/functions_7.js index 8443278..c28c131 100644 --- a/docs/html/search/functions_7.js +++ b/docs/html/search/functions_7.js @@ -1,9 +1,9 @@ var searchData= [ - ['main_216',['main',['../main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main.cpp']]], - ['mousemoveevent_217',['mouseMoveEvent',['../class_painting_area.html#aa22e274b6094a9619f196cd7b49526b5',1,'PaintingArea']]], - ['mousepressevent_218',['mousePressEvent',['../class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15',1,'PaintingArea']]], - ['mousereleaseevent_219',['mouseReleaseEvent',['../class_painting_area.html#a35b5df914acb608cc29717659793359c',1,'PaintingArea']]], - ['moveactivelayer_220',['moveActiveLayer',['../class_painting_area.html#ae05f6893fb44bfcb34018573a609cd1a',1,'PaintingArea']]], - ['movepositionactive_221',['movePositionActive',['../class_painting_area.html#ac6d089f4357b22d9a9906fd4771de3e7',1,'PaintingArea']]] + ['main_226',['main',['../main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main.cpp']]], + ['mousemoveevent_227',['mouseMoveEvent',['../class_painting_area.html#aa22e274b6094a9619f196cd7b49526b5',1,'PaintingArea']]], + ['mousepressevent_228',['mousePressEvent',['../class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15',1,'PaintingArea']]], + ['mousereleaseevent_229',['mouseReleaseEvent',['../class_painting_area.html#a35b5df914acb608cc29717659793359c',1,'PaintingArea']]], + ['moveactivelayer_230',['moveActiveLayer',['../class_painting_area.html#ae05f6893fb44bfcb34018573a609cd1a',1,'PaintingArea']]], + ['movepositionactive_231',['movePositionActive',['../class_painting_area.html#ac6d089f4357b22d9a9906fd4771de3e7',1,'PaintingArea']]] ]; diff --git a/docs/html/search/functions_8.js b/docs/html/search/functions_8.js index 170464f..8b9eacd 100644 --- a/docs/html/search/functions_8.js +++ b/docs/html/search/functions_8.js @@ -1,10 +1,10 @@ var searchData= [ - ['onmouseleftpressed_222',['onMouseLeftPressed',['../class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c',1,'IntelliTool::onMouseLeftPressed()'],['../class_intelli_tool_circle.html#ae883b8ae833c78a8867e626c600f9639',1,'IntelliToolCircle::onMouseLeftPressed()'],['../class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961',1,'IntelliToolFloodFill::onMouseLeftPressed()'],['../class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846',1,'IntelliToolLine::onMouseLeftPressed()'],['../class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205',1,'IntelliToolPen::onMouseLeftPressed()'],['../class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9',1,'IntelliToolPlainTool::onMouseLeftPressed()'],['../class_intelli_tool_rectangle.html#ae03c307ccf66cbe3fd59e3657712368d',1,'IntelliToolRectangle::onMouseLeftPressed()']]], - ['onmouseleftreleased_223',['onMouseLeftReleased',['../class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b',1,'IntelliTool::onMouseLeftReleased()'],['../class_intelli_tool_circle.html#ad8e438ec997c57262b5efc2db4cee1a3',1,'IntelliToolCircle::onMouseLeftReleased()'],['../class_intelli_tool_flood_fill.html#a7438ef96c6c36068bce76e2364e8594c',1,'IntelliToolFloodFill::onMouseLeftReleased()'],['../class_intelli_tool_line.html#ac93f76ff20a1c111a403b298bab02482',1,'IntelliToolLine::onMouseLeftReleased()'],['../class_intelli_tool_pen.html#abda7a22b9766fa4ad254324a53cab94d',1,'IntelliToolPen::onMouseLeftReleased()'],['../class_intelli_tool_plain_tool.html#ac23f5d0f07e42fd7c2ea3fc1347da400',1,'IntelliToolPlainTool::onMouseLeftReleased()'],['../class_intelli_tool_rectangle.html#a94460e3ff1c19e80bde922c55f53cc43',1,'IntelliToolRectangle::onMouseLeftReleased()']]], - ['onmousemoved_224',['onMouseMoved',['../class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639',1,'IntelliTool::onMouseMoved()'],['../class_intelli_tool_circle.html#a90ee58c5390a86afc75c14ca79b91d7b',1,'IntelliToolCircle::onMouseMoved()'],['../class_intelli_tool_flood_fill.html#a3cd42cea99bc7583875abcc0c274c668',1,'IntelliToolFloodFill::onMouseMoved()'],['../class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b',1,'IntelliToolLine::onMouseMoved()'],['../class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2',1,'IntelliToolPen::onMouseMoved()'],['../class_intelli_tool_plain_tool.html#ad7546a6335bb3bb4cbf0e1883788d41c',1,'IntelliToolPlainTool::onMouseMoved()'],['../class_intelli_tool_rectangle.html#a4b5931071e21eb6949ffe357315e408b',1,'IntelliToolRectangle::onMouseMoved()']]], - ['onmouserightpressed_225',['onMouseRightPressed',['../class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966',1,'IntelliTool::onMouseRightPressed()'],['../class_intelli_tool_circle.html#a29d7b9ed4960e6fe1f31ff620363e429',1,'IntelliToolCircle::onMouseRightPressed()'],['../class_intelli_tool_flood_fill.html#ada0f7154d119102410a55038763a17e4',1,'IntelliToolFloodFill::onMouseRightPressed()'],['../class_intelli_tool_line.html#a6cce59f3017936214b10b47252a898a3',1,'IntelliToolLine::onMouseRightPressed()'],['../class_intelli_tool_pen.html#a1751e3864a0d36ef42ca55021cae73ce',1,'IntelliToolPen::onMouseRightPressed()'],['../class_intelli_tool_plain_tool.html#acb0c46e16d2c09370a2244a936de38b1',1,'IntelliToolPlainTool::onMouseRightPressed()'],['../class_intelli_tool_rectangle.html#a480c6804a4963c5a1c3f7ef84b63c1a8',1,'IntelliToolRectangle::onMouseRightPressed()']]], - ['onmouserightreleased_226',['onMouseRightReleased',['../class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0',1,'IntelliTool::onMouseRightReleased()'],['../class_intelli_tool_circle.html#aca07540f2f7ccb3d2c0b84890c1afc4c',1,'IntelliToolCircle::onMouseRightReleased()'],['../class_intelli_tool_flood_fill.html#a39cf49c0ce46f96be3510f0b70c9d892',1,'IntelliToolFloodFill::onMouseRightReleased()'],['../class_intelli_tool_line.html#a6214918cba5753f89d97de4559a2b9b2',1,'IntelliToolLine::onMouseRightReleased()'],['../class_intelli_tool_pen.html#abf8562e8cd2da586afdf4d47b3a4ff13',1,'IntelliToolPen::onMouseRightReleased()'],['../class_intelli_tool_plain_tool.html#a2ae458f1b04eb77a47f6dca5e91e33b8',1,'IntelliToolPlainTool::onMouseRightReleased()'],['../class_intelli_tool_rectangle.html#ad43f653256a6516b9398f82054be0d7f',1,'IntelliToolRectangle::onMouseRightReleased()']]], - ['onwheelscrolled_227',['onWheelScrolled',['../class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574',1,'IntelliTool::onWheelScrolled()'],['../class_intelli_tool_circle.html#ae2d9b0fb6695c184c4cb507a5fb75506',1,'IntelliToolCircle::onWheelScrolled()'],['../class_intelli_tool_flood_fill.html#ad58cc7c065123beb6b0270f99e99b991',1,'IntelliToolFloodFill::onWheelScrolled()'],['../class_intelli_tool_line.html#aaf1d686e1ec43f41b5186ccfd806b125',1,'IntelliToolLine::onWheelScrolled()'],['../class_intelli_tool_pen.html#afe3626ddff440ab125f4a2465c45427a',1,'IntelliToolPen::onWheelScrolled()'],['../class_intelli_tool_plain_tool.html#adc004ea421e2cc0ac39cc7a6b6d43d0d',1,'IntelliToolPlainTool::onWheelScrolled()'],['../class_intelli_tool_rectangle.html#a445c53a56e859f970e59f5036e221e0c',1,'IntelliToolRectangle::onWheelScrolled()']]], - ['open_228',['open',['../class_painting_area.html#a1f597740b4d7b4bc2e24c51f8cb0b6eb',1,'PaintingArea']]] + ['onmouseleftpressed_232',['onMouseLeftPressed',['../class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c',1,'IntelliTool::onMouseLeftPressed()'],['../class_intelli_tool_circle.html#ae883b8ae833c78a8867e626c600f9639',1,'IntelliToolCircle::onMouseLeftPressed()'],['../class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961',1,'IntelliToolFloodFill::onMouseLeftPressed()'],['../class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846',1,'IntelliToolLine::onMouseLeftPressed()'],['../class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205',1,'IntelliToolPen::onMouseLeftPressed()'],['../class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9',1,'IntelliToolPlainTool::onMouseLeftPressed()'],['../class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d',1,'IntelliToolPolygon::onMouseLeftPressed()'],['../class_intelli_tool_rectangle.html#ae03c307ccf66cbe3fd59e3657712368d',1,'IntelliToolRectangle::onMouseLeftPressed()']]], + ['onmouseleftreleased_233',['onMouseLeftReleased',['../class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b',1,'IntelliTool::onMouseLeftReleased()'],['../class_intelli_tool_circle.html#ad8e438ec997c57262b5efc2db4cee1a3',1,'IntelliToolCircle::onMouseLeftReleased()'],['../class_intelli_tool_flood_fill.html#a7438ef96c6c36068bce76e2364e8594c',1,'IntelliToolFloodFill::onMouseLeftReleased()'],['../class_intelli_tool_line.html#ac93f76ff20a1c111a403b298bab02482',1,'IntelliToolLine::onMouseLeftReleased()'],['../class_intelli_tool_pen.html#abda7a22b9766fa4ad254324a53cab94d',1,'IntelliToolPen::onMouseLeftReleased()'],['../class_intelli_tool_plain_tool.html#ac23f5d0f07e42fd7c2ea3fc1347da400',1,'IntelliToolPlainTool::onMouseLeftReleased()'],['../class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21',1,'IntelliToolPolygon::onMouseLeftReleased()'],['../class_intelli_tool_rectangle.html#a94460e3ff1c19e80bde922c55f53cc43',1,'IntelliToolRectangle::onMouseLeftReleased()']]], + ['onmousemoved_234',['onMouseMoved',['../class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639',1,'IntelliTool::onMouseMoved()'],['../class_intelli_tool_circle.html#a90ee58c5390a86afc75c14ca79b91d7b',1,'IntelliToolCircle::onMouseMoved()'],['../class_intelli_tool_flood_fill.html#a3cd42cea99bc7583875abcc0c274c668',1,'IntelliToolFloodFill::onMouseMoved()'],['../class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b',1,'IntelliToolLine::onMouseMoved()'],['../class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2',1,'IntelliToolPen::onMouseMoved()'],['../class_intelli_tool_plain_tool.html#ad7546a6335bb3bb4cbf0e1883788d41c',1,'IntelliToolPlainTool::onMouseMoved()'],['../class_intelli_tool_polygon.html#a0e3a1135f04c73c159137ae219a38922',1,'IntelliToolPolygon::onMouseMoved()'],['../class_intelli_tool_rectangle.html#a4b5931071e21eb6949ffe357315e408b',1,'IntelliToolRectangle::onMouseMoved()']]], + ['onmouserightpressed_235',['onMouseRightPressed',['../class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966',1,'IntelliTool::onMouseRightPressed()'],['../class_intelli_tool_circle.html#a29d7b9ed4960e6fe1f31ff620363e429',1,'IntelliToolCircle::onMouseRightPressed()'],['../class_intelli_tool_flood_fill.html#ada0f7154d119102410a55038763a17e4',1,'IntelliToolFloodFill::onMouseRightPressed()'],['../class_intelli_tool_line.html#a6cce59f3017936214b10b47252a898a3',1,'IntelliToolLine::onMouseRightPressed()'],['../class_intelli_tool_pen.html#a1751e3864a0d36ef42ca55021cae73ce',1,'IntelliToolPen::onMouseRightPressed()'],['../class_intelli_tool_plain_tool.html#acb0c46e16d2c09370a2244a936de38b1',1,'IntelliToolPlainTool::onMouseRightPressed()'],['../class_intelli_tool_polygon.html#aa36b012b48311c36e7cd6771a5081427',1,'IntelliToolPolygon::onMouseRightPressed()'],['../class_intelli_tool_rectangle.html#a480c6804a4963c5a1c3f7ef84b63c1a8',1,'IntelliToolRectangle::onMouseRightPressed()']]], + ['onmouserightreleased_236',['onMouseRightReleased',['../class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0',1,'IntelliTool::onMouseRightReleased()'],['../class_intelli_tool_circle.html#aca07540f2f7ccb3d2c0b84890c1afc4c',1,'IntelliToolCircle::onMouseRightReleased()'],['../class_intelli_tool_flood_fill.html#a39cf49c0ce46f96be3510f0b70c9d892',1,'IntelliToolFloodFill::onMouseRightReleased()'],['../class_intelli_tool_line.html#a6214918cba5753f89d97de4559a2b9b2',1,'IntelliToolLine::onMouseRightReleased()'],['../class_intelli_tool_pen.html#abf8562e8cd2da586afdf4d47b3a4ff13',1,'IntelliToolPen::onMouseRightReleased()'],['../class_intelli_tool_plain_tool.html#a2ae458f1b04eb77a47f6dca5e91e33b8',1,'IntelliToolPlainTool::onMouseRightReleased()'],['../class_intelli_tool_polygon.html#a47cad87cd02b128b02dc929713bd1d1b',1,'IntelliToolPolygon::onMouseRightReleased()'],['../class_intelli_tool_rectangle.html#ad43f653256a6516b9398f82054be0d7f',1,'IntelliToolRectangle::onMouseRightReleased()']]], + ['onwheelscrolled_237',['onWheelScrolled',['../class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574',1,'IntelliTool::onWheelScrolled()'],['../class_intelli_tool_circle.html#ae2d9b0fb6695c184c4cb507a5fb75506',1,'IntelliToolCircle::onWheelScrolled()'],['../class_intelli_tool_flood_fill.html#ad58cc7c065123beb6b0270f99e99b991',1,'IntelliToolFloodFill::onWheelScrolled()'],['../class_intelli_tool_line.html#aaf1d686e1ec43f41b5186ccfd806b125',1,'IntelliToolLine::onWheelScrolled()'],['../class_intelli_tool_pen.html#afe3626ddff440ab125f4a2465c45427a',1,'IntelliToolPen::onWheelScrolled()'],['../class_intelli_tool_plain_tool.html#adc004ea421e2cc0ac39cc7a6b6d43d0d',1,'IntelliToolPlainTool::onWheelScrolled()'],['../class_intelli_tool_polygon.html#a713103300c9f023d64d9eec5ac05dd17',1,'IntelliToolPolygon::onWheelScrolled()'],['../class_intelli_tool_rectangle.html#a445c53a56e859f970e59f5036e221e0c',1,'IntelliToolRectangle::onWheelScrolled()']]], + ['open_238',['open',['../class_painting_area.html#a1f597740b4d7b4bc2e24c51f8cb0b6eb',1,'PaintingArea']]] ]; diff --git a/docs/html/search/functions_9.js b/docs/html/search/functions_9.js index 3fe4e3e..1c5fa95 100644 --- a/docs/html/search/functions_9.js +++ b/docs/html/search/functions_9.js @@ -1,5 +1,5 @@ var searchData= [ - ['paintevent_229',['paintEvent',['../class_painting_area.html#a4a8138b9508ee4ec87a7fca9160368a7',1,'PaintingArea']]], - ['paintingarea_230',['PaintingArea',['../class_painting_area.html#a4fa0ec23e78cc59f28c823584c721460',1,'PaintingArea']]] + ['paintevent_239',['paintEvent',['../class_painting_area.html#a4a8138b9508ee4ec87a7fca9160368a7',1,'PaintingArea']]], + ['paintingarea_240',['PaintingArea',['../class_painting_area.html#a4fa0ec23e78cc59f28c823584c721460',1,'PaintingArea']]] ]; diff --git a/docs/html/search/functions_a.js b/docs/html/search/functions_a.js index 59aade0..796a1ae 100644 --- a/docs/html/search/functions_a.js +++ b/docs/html/search/functions_a.js @@ -1,5 +1,5 @@ var searchData= [ - ['resizeevent_231',['resizeEvent',['../class_painting_area.html#ab57e8ccda60fff7187463a90e65c5335',1,'PaintingArea']]], - ['resizeimage_232',['resizeImage',['../class_intelli_image.html#a177403ab9585d4ba31984a644c54d310',1,'IntelliImage']]] + ['resizeevent_241',['resizeEvent',['../class_painting_area.html#ab57e8ccda60fff7187463a90e65c5335',1,'PaintingArea']]], + ['resizeimage_242',['resizeImage',['../class_intelli_image.html#a177403ab9585d4ba31984a644c54d310',1,'IntelliImage']]] ]; diff --git a/docs/html/search/functions_b.js b/docs/html/search/functions_b.js index ea2dec5..35a9bcf 100644 --- a/docs/html/search/functions_b.js +++ b/docs/html/search/functions_b.js @@ -1,15 +1,13 @@ var searchData= [ - ['save_233',['save',['../class_painting_area.html#a612176cc9d629d22fd3fe1a746cce564',1,'PaintingArea']]], - ['setalphaoflayer_234',['setAlphaOfLayer',['../class_painting_area.html#aec59be20f1c27135700754882dd6383d',1,'PaintingArea']]], - ['setfirstcolor_235',['setFirstColor',['../class_intelli_color_picker.html#a7e2ddbbbfbed383f06b24e5bf6b27ae8',1,'IntelliColorPicker']]], - ['setlayertoactive_236',['setLayerToActive',['../class_painting_area.html#a1d6d86c25efdce9fe9031a9cd01c74c8',1,'PaintingArea']]], - ['setpolygon_237',['setPolygon',['../class_intelli_image.html#aa4b3f4631bd972456917275afb9fd309',1,'IntelliImage::setPolygon()'],['../class_intelli_raster_image.html#a6462fa5f94c5e64e9e1f0c4658e0507b',1,'IntelliRasterImage::setPolygon()'],['../class_intelli_shaped_image.html#a4b69d75de7a3b85032482982f249458e',1,'IntelliShapedImage::setPolygon()']]], - ['setsecondcolor_238',['setSecondColor',['../class_intelli_color_picker.html#a86bf4a940e4a0e465e30cbdf28748931',1,'IntelliColorPicker']]], - ['sign_239',['sign',['../namespace_intelli_helper.html#afdd9fe78cc5d21b59642910220768149',1,'IntelliHelper']]], - ['slotactivatelayer_240',['slotActivateLayer',['../class_painting_area.html#a71ac281e0de263208d4a3b9de74258ec',1,'PaintingArea']]], - ['slotcreatefloodfilltool_241',['slotCreateFloodFillTool',['../_intelli_photo_gui_8cpp.html#ac2f8320173dfaf943bb39e39cb1a23e5',1,'IntelliPhotoGui.cpp']]], - ['slotcreatepentool_242',['slotCreatePenTool',['../_intelli_photo_gui_8cpp.html#a30169da42b55e0339af0d28dfc8ccd40',1,'IntelliPhotoGui.cpp']]], - ['slotdeleteactivelayer_243',['slotDeleteActiveLayer',['../class_painting_area.html#a1ff0b9c1227531943c9cec2c546fae5e',1,'PaintingArea']]], - ['switchcolors_244',['switchColors',['../class_intelli_color_picker.html#a437a6f20bf2fc0a4cbaf4c030c2a26d9',1,'IntelliColorPicker']]] + ['save_243',['save',['../class_painting_area.html#a612176cc9d629d22fd3fe1a746cce564',1,'PaintingArea']]], + ['setalphaoflayer_244',['setAlphaOfLayer',['../class_painting_area.html#aec59be20f1c27135700754882dd6383d',1,'PaintingArea']]], + ['setfirstcolor_245',['setFirstColor',['../class_intelli_color_picker.html#a7e2ddbbbfbed383f06b24e5bf6b27ae8',1,'IntelliColorPicker']]], + ['setlayertoactive_246',['setLayerToActive',['../class_painting_area.html#a1d6d86c25efdce9fe9031a9cd01c74c8',1,'PaintingArea']]], + ['setpolygon_247',['setPolygon',['../class_intelli_image.html#aa4b3f4631bd972456917275afb9fd309',1,'IntelliImage::setPolygon()'],['../class_intelli_raster_image.html#a6462fa5f94c5e64e9e1f0c4658e0507b',1,'IntelliRasterImage::setPolygon()'],['../class_intelli_shaped_image.html#a4b69d75de7a3b85032482982f249458e',1,'IntelliShapedImage::setPolygon()']]], + ['setsecondcolor_248',['setSecondColor',['../class_intelli_color_picker.html#a86bf4a940e4a0e465e30cbdf28748931',1,'IntelliColorPicker']]], + ['sign_249',['sign',['../namespace_intelli_helper.html#afdd9fe78cc5d21b59642910220768149',1,'IntelliHelper']]], + ['slotactivatelayer_250',['slotActivateLayer',['../class_painting_area.html#a71ac281e0de263208d4a3b9de74258ec',1,'PaintingArea']]], + ['slotdeleteactivelayer_251',['slotDeleteActiveLayer',['../class_painting_area.html#a1ff0b9c1227531943c9cec2c546fae5e',1,'PaintingArea']]], + ['switchcolors_252',['switchColors',['../class_intelli_color_picker.html#a437a6f20bf2fc0a4cbaf4c030c2a26d9',1,'IntelliColorPicker']]] ]; diff --git a/docs/html/search/functions_c.js b/docs/html/search/functions_c.js index 7279cb2..ae5f05e 100644 --- a/docs/html/search/functions_c.js +++ b/docs/html/search/functions_c.js @@ -1,4 +1,4 @@ var searchData= [ - ['wheelevent_245',['wheelEvent',['../class_painting_area.html#a632848d99f44d33d7da2618fbc6775a4',1,'PaintingArea']]] + ['wheelevent_253',['wheelEvent',['../class_painting_area.html#a632848d99f44d33d7da2618fbc6775a4',1,'PaintingArea']]] ]; diff --git a/docs/html/search/functions_d.js b/docs/html/search/functions_d.js index fc2362f..bd24f64 100644 --- a/docs/html/search/functions_d.js +++ b/docs/html/search/functions_d.js @@ -1,14 +1,15 @@ var searchData= [ - ['_7eintellicolorpicker_246',['~IntelliColorPicker',['../class_intelli_color_picker.html#a40b975268a1f05249e8a49dde9a862ff',1,'IntelliColorPicker']]], - ['_7eintelliimage_247',['~IntelliImage',['../class_intelli_image.html#ac398bfa9ddd3185508a1e36ee15d80cc',1,'IntelliImage']]], - ['_7eintellirasterimage_248',['~IntelliRasterImage',['../class_intelli_raster_image.html#a844a2b58c43f7e01f2ca116286371bc8',1,'IntelliRasterImage']]], - ['_7eintellishapedimage_249',['~IntelliShapedImage',['../class_intelli_shaped_image.html#a43d63d8a814852d377ee2030658fbab9',1,'IntelliShapedImage']]], - ['_7eintellitool_250',['~IntelliTool',['../class_intelli_tool.html#a57fb1b27d364c9e3696eb928b75fa9f2',1,'IntelliTool']]], - ['_7eintellitoolcircle_251',['~IntelliToolCircle',['../class_intelli_tool_circle.html#a7a03b65b95d7b5d72e6a92c95f068954',1,'IntelliToolCircle']]], - ['_7eintellitoolfloodfill_252',['~IntelliToolFloodFill',['../class_intelli_tool_flood_fill.html#a83b1bd8be0cbb32cdf61a9597ec849ba',1,'IntelliToolFloodFill']]], - ['_7eintellitoolline_253',['~IntelliToolLine',['../class_intelli_tool_line.html#acb600b0f4e9225ebce2937c2b7abb4c2',1,'IntelliToolLine']]], - ['_7eintellitoolpen_254',['~IntelliToolPen',['../class_intelli_tool_pen.html#ac77a025515d0fed6954556fe2b444818',1,'IntelliToolPen']]], - ['_7eintellitoolrectangle_255',['~IntelliToolRectangle',['../class_intelli_tool_rectangle.html#a7dc1463e726a21255e6297241dc71fb1',1,'IntelliToolRectangle']]], - ['_7epaintingarea_256',['~PaintingArea',['../class_painting_area.html#aa32adc113f77031945f73e33051931e8',1,'PaintingArea']]] + ['_7eintellicolorpicker_254',['~IntelliColorPicker',['../class_intelli_color_picker.html#a40b975268a1f05249e8a49dde9a862ff',1,'IntelliColorPicker']]], + ['_7eintelliimage_255',['~IntelliImage',['../class_intelli_image.html#ac398bfa9ddd3185508a1e36ee15d80cc',1,'IntelliImage']]], + ['_7eintellirasterimage_256',['~IntelliRasterImage',['../class_intelli_raster_image.html#a844a2b58c43f7e01f2ca116286371bc8',1,'IntelliRasterImage']]], + ['_7eintellishapedimage_257',['~IntelliShapedImage',['../class_intelli_shaped_image.html#a43d63d8a814852d377ee2030658fbab9',1,'IntelliShapedImage']]], + ['_7eintellitool_258',['~IntelliTool',['../class_intelli_tool.html#a57fb1b27d364c9e3696eb928b75fa9f2',1,'IntelliTool']]], + ['_7eintellitoolcircle_259',['~IntelliToolCircle',['../class_intelli_tool_circle.html#a7a03b65b95d7b5d72e6a92c95f068954',1,'IntelliToolCircle']]], + ['_7eintellitoolfloodfill_260',['~IntelliToolFloodFill',['../class_intelli_tool_flood_fill.html#a83b1bd8be0cbb32cdf61a9597ec849ba',1,'IntelliToolFloodFill']]], + ['_7eintellitoolline_261',['~IntelliToolLine',['../class_intelli_tool_line.html#acb600b0f4e9225ebce2937c2b7abb4c2',1,'IntelliToolLine']]], + ['_7eintellitoolpen_262',['~IntelliToolPen',['../class_intelli_tool_pen.html#ac77a025515d0fed6954556fe2b444818',1,'IntelliToolPen']]], + ['_7eintellitoolplaintool_263',['~IntelliToolPlainTool',['../class_intelli_tool_plain_tool.html#a91fe568be05c075814d67440472bb658',1,'IntelliToolPlainTool']]], + ['_7eintellitoolrectangle_264',['~IntelliToolRectangle',['../class_intelli_tool_rectangle.html#a7dc1463e726a21255e6297241dc71fb1',1,'IntelliToolRectangle']]], + ['_7epaintingarea_265',['~PaintingArea',['../class_painting_area.html#aa32adc113f77031945f73e33051931e8',1,'PaintingArea']]] ]; diff --git a/docs/html/search/namespaces_0.js b/docs/html/search/namespaces_0.js index a4d645f..387dc83 100644 --- a/docs/html/search/namespaces_0.js +++ b/docs/html/search/namespaces_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['intellihelper_148',['IntelliHelper',['../namespace_intelli_helper.html',1,'']]] + ['intellihelper_153',['IntelliHelper',['../namespace_intelli_helper.html',1,'']]] ]; diff --git a/docs/html/search/variables_0.js b/docs/html/search/variables_0.js index 30f268f..4655c35 100644 --- a/docs/html/search/variables_0.js +++ b/docs/html/search/variables_0.js @@ -1,7 +1,7 @@ var searchData= [ - ['a_257',['A',['../struct_triangle.html#a4fe8b39e0144ebff908b7718c2f2751b',1,'Triangle']]], - ['active_258',['Active',['../class_intelli_tool.html#a13512e95d21a9934ecb36d73b118c25f',1,'IntelliTool']]], - ['alpha_259',['alpha',['../struct_layer_object.html#a402cb1d9f20436032fe080681b80eb56',1,'LayerObject']]], - ['area_260',['Area',['../class_intelli_tool.html#ab4c2698a0f9f25fb6639ec760d2d0289',1,'IntelliTool']]] + ['a_266',['A',['../struct_triangle.html#a4fe8b39e0144ebff908b7718c2f2751b',1,'Triangle']]], + ['active_267',['Active',['../class_intelli_tool.html#a13512e95d21a9934ecb36d73b118c25f',1,'IntelliTool']]], + ['alpha_268',['alpha',['../struct_layer_object.html#a402cb1d9f20436032fe080681b80eb56',1,'LayerObject']]], + ['area_269',['Area',['../class_intelli_tool.html#ab4c2698a0f9f25fb6639ec760d2d0289',1,'IntelliTool']]] ]; diff --git a/docs/html/search/variables_1.js b/docs/html/search/variables_1.js index 9f94ca8..7f7d970 100644 --- a/docs/html/search/variables_1.js +++ b/docs/html/search/variables_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['b_261',['B',['../struct_triangle.html#a64fa6a90a6131f12a1a3054bf86647d7',1,'Triangle']]] + ['b_270',['B',['../struct_triangle.html#a64fa6a90a6131f12a1a3054bf86647d7',1,'Triangle']]] ]; diff --git a/docs/html/search/variables_2.js b/docs/html/search/variables_2.js index f1a01d0..344d2a5 100644 --- a/docs/html/search/variables_2.js +++ b/docs/html/search/variables_2.js @@ -1,6 +1,6 @@ var searchData= [ - ['c_262',['C',['../struct_triangle.html#addb8aaab314d79f3617acca01e12872a',1,'Triangle']]], - ['canvas_263',['Canvas',['../class_intelli_tool.html#a144d469cc03584f501194529a1b53c77',1,'IntelliTool']]], - ['colorpicker_264',['colorPicker',['../class_intelli_tool.html#ae2e0ac394611a361ab4ef2fe55c03fef',1,'IntelliTool']]] + ['c_271',['C',['../struct_triangle.html#addb8aaab314d79f3617acca01e12872a',1,'Triangle']]], + ['canvas_272',['Canvas',['../class_intelli_tool.html#a144d469cc03584f501194529a1b53c77',1,'IntelliTool']]], + ['colorpicker_273',['colorPicker',['../class_intelli_tool.html#ae2e0ac394611a361ab4ef2fe55c03fef',1,'IntelliTool']]] ]; diff --git a/docs/html/search/variables_3.js b/docs/html/search/variables_3.js index 2e1d935..9cb803f 100644 --- a/docs/html/search/variables_3.js +++ b/docs/html/search/variables_3.js @@ -1,4 +1,4 @@ var searchData= [ - ['drawing_265',['drawing',['../class_intelli_tool.html#af256de16e9825922d20a23d11617b51b',1,'IntelliTool']]] + ['drawing_274',['drawing',['../class_intelli_tool.html#af256de16e9825922d20a23d11617b51b',1,'IntelliTool']]] ]; diff --git a/docs/html/search/variables_4.js b/docs/html/search/variables_4.js index 7e69822..06ea30e 100644 --- a/docs/html/search/variables_4.js +++ b/docs/html/search/variables_4.js @@ -1,5 +1,5 @@ var searchData= [ - ['hight_266',['hight',['../struct_layer_object.html#a4b1729dbf7d3490e4c2776e29ffef8b0',1,'LayerObject']]], - ['hightoffset_267',['hightOffset',['../struct_layer_object.html#a6256486a76c38baa3f1c664f4d190743',1,'LayerObject']]] + ['hight_275',['hight',['../struct_layer_object.html#a4b1729dbf7d3490e4c2776e29ffef8b0',1,'LayerObject']]], + ['hightoffset_276',['hightOffset',['../struct_layer_object.html#a6256486a76c38baa3f1c664f4d190743',1,'LayerObject']]] ]; diff --git a/docs/html/search/variables_5.js b/docs/html/search/variables_5.js index 2538c4c..7b91b4a 100644 --- a/docs/html/search/variables_5.js +++ b/docs/html/search/variables_5.js @@ -1,5 +1,5 @@ var searchData= [ - ['image_268',['image',['../struct_layer_object.html#af01a139bc8edfdbb338393874e89bd83',1,'LayerObject']]], - ['imagedata_269',['imageData',['../class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2',1,'IntelliImage']]] + ['image_277',['image',['../struct_layer_object.html#af01a139bc8edfdbb338393874e89bd83',1,'LayerObject']]], + ['imagedata_278',['imageData',['../class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2',1,'IntelliImage']]] ]; diff --git a/docs/html/search/variables_6.js b/docs/html/search/variables_6.js index ba93204..01b1461 100644 --- a/docs/html/search/variables_6.js +++ b/docs/html/search/variables_6.js @@ -1,4 +1,4 @@ var searchData= [ - ['polygondata_270',['polygonData',['../class_intelli_shaped_image.html#a727d19ce314c0874be6b0633a3a603c8',1,'IntelliShapedImage']]] + ['polygondata_279',['polygonData',['../class_intelli_shaped_image.html#a727d19ce314c0874be6b0633a3a603c8',1,'IntelliShapedImage']]] ]; diff --git a/docs/html/search/variables_7.js b/docs/html/search/variables_7.js index 15699cb..a957d63 100644 --- a/docs/html/search/variables_7.js +++ b/docs/html/search/variables_7.js @@ -1,5 +1,5 @@ var searchData= [ - ['width_271',['width',['../struct_layer_object.html#af261813df52ff0b0c82bfa57efeb9897',1,'LayerObject']]], - ['widthoffset_272',['widthOffset',['../struct_layer_object.html#a72b44d27c7bbb60dde14f04ec240ab96',1,'LayerObject']]] + ['width_280',['width',['../struct_layer_object.html#af261813df52ff0b0c82bfa57efeb9897',1,'LayerObject']]], + ['widthoffset_281',['widthOffset',['../struct_layer_object.html#a72b44d27c7bbb60dde14f04ec240ab96',1,'LayerObject']]] ]; diff --git a/docs/html/struct_layer_object.html b/docs/html/struct_layer_object.html index 4946963..d282e62 100644 --- a/docs/html/struct_layer_object.html +++ b/docs/html/struct_layer_object.html @@ -118,7 +118,7 @@ Public Attributes

    Detailed Description

    -

    Definition at line 17 of file PaintingArea.h.

    +

    Definition at line 16 of file PaintingArea.h.

    Member Data Documentation

    ◆ alpha

    @@ -132,7 +132,7 @@ Public Attributes
    -

    Definition at line 23 of file PaintingArea.h.

    +

    Definition at line 22 of file PaintingArea.h.

    @@ -148,7 +148,7 @@ Public Attributes
    -

    Definition at line 20 of file PaintingArea.h.

    +

    Definition at line 19 of file PaintingArea.h.

    @@ -164,7 +164,7 @@ Public Attributes
    -

    Definition at line 22 of file PaintingArea.h.

    +

    Definition at line 21 of file PaintingArea.h.

    @@ -180,7 +180,7 @@ Public Attributes
    -

    Definition at line 18 of file PaintingArea.h.

    +

    Definition at line 17 of file PaintingArea.h.

    @@ -196,7 +196,7 @@ Public Attributes
    -

    Definition at line 19 of file PaintingArea.h.

    +

    Definition at line 18 of file PaintingArea.h.

    @@ -212,7 +212,7 @@ Public Attributes
    -

    Definition at line 21 of file PaintingArea.h.

    +

    Definition at line 20 of file PaintingArea.h.

    From ec37be62fcd0f50b3f37144a546f1ff1f020fc19 Mon Sep 17 00:00:00 2001 From: Sonaion Date: Thu, 19 Dec 2019 13:54:17 +0100 Subject: [PATCH 46/62] Tool anpassungen --- src/IntelliHelper/IntelliColorPicker.cpp | 2 +- src/Layer/PaintingArea.cpp | 12 ++-- src/Layer/PaintingArea.h | 5 +- src/Tool/IntelliToolFloodFill.cpp | 7 ++- src/Tool/IntelliToolPolygon.cpp | 57 +++++++++-------- src/Tool/IntelliToolPolygon.h | 78 ++++++++++-------------- 6 files changed, 74 insertions(+), 87 deletions(-) diff --git a/src/IntelliHelper/IntelliColorPicker.cpp b/src/IntelliHelper/IntelliColorPicker.cpp index 76ba561..65586c7 100644 --- a/src/IntelliHelper/IntelliColorPicker.cpp +++ b/src/IntelliHelper/IntelliColorPicker.cpp @@ -2,7 +2,7 @@ IntelliColorPicker::IntelliColorPicker(){ firstColor = {255,0,0,255}; - secondColor = {0,0,255,255}; + secondColor = {0,255,255,255}; } IntelliColorPicker::~IntelliColorPicker(){ diff --git a/src/Layer/PaintingArea.cpp b/src/Layer/PaintingArea.cpp index 5ee6434..c835b24 100644 --- a/src/Layer/PaintingArea.cpp +++ b/src/Layer/PaintingArea.cpp @@ -20,9 +20,7 @@ PaintingArea::PaintingArea(int maxWidth, int maxHeight, QWidget *parent) :QWidget(parent){ - // Testing Area - // test yout tool here and reset after accomplished test - this->Tool = new IntelliToolFloodFill(this, &colorPicker); + this->Tool = new IntelliToolPolygon(this, &colorPicker); this->setUp(maxWidth, maxHeight); this->addLayer(200,200,0,0,ImageType::Shaped_Image); layerBundle[0].image->drawPlain(QColor(0,0,255,255)); @@ -194,12 +192,12 @@ void PaintingArea::createLineTool(){ Tool = new IntelliToolLine(this, &colorPicker); } -int PaintingArea::getWidthActiveLayer(){ - return layerBundle.operator[](activeLayer).width; +int PaintingArea::getWidthOfActive(){ + return this->layerBundle[activeLayer].width; } -int PaintingArea::getHeightActiveLayer(){ - return layerBundle.operator[](activeLayer).hight; +int PaintingArea::getHeightOfActive(){ + return this->layerBundle[activeLayer].hight; } // If a mouse button is pressed check if it was the diff --git a/src/Layer/PaintingArea.h b/src/Layer/PaintingArea.h index 868a56c..07b43a0 100644 --- a/src/Layer/PaintingArea.h +++ b/src/Layer/PaintingArea.h @@ -56,9 +56,8 @@ public: void createPlainTool(); void createLineTool(); - //get Width and Height of active Layer - int getWidthActiveLayer(); - int getHeightActiveLayer(); + int getWidthOfActive(); + int getHeightOfActive(); public slots: // Events to handle diff --git a/src/Tool/IntelliToolFloodFill.cpp b/src/Tool/IntelliToolFloodFill.cpp index 6d655ea..1f1503d 100644 --- a/src/Tool/IntelliToolFloodFill.cpp +++ b/src/Tool/IntelliToolFloodFill.cpp @@ -23,6 +23,9 @@ void IntelliToolFloodFill::onMouseRightReleased(int x, int y){ } void IntelliToolFloodFill::onMouseLeftPressed(int x, int y){ + if(!(x>=0 && xgetWidthOfActive() && y>=0 && ygetHeightOfActive())){ + return; + } IntelliTool::onMouseLeftPressed(x,y); QPoint start(x,y); @@ -50,11 +53,11 @@ void IntelliToolFloodFill::onMouseLeftPressed(int x, int y){ Canvas->image->drawPixel(left,newColor); Q.push(left); } - if((top.y() < Canvas->hight) && (Canvas->image->getPixelColor(top) != newColor) && (Active->image->getPixelColor(top) == oldColor)){ + if((top.y() >= 0) && (Canvas->image->getPixelColor(top) != newColor) && (Active->image->getPixelColor(top) == oldColor)){ Canvas->image->drawPixel(top,newColor); Q.push(top); } - if((down.y() >= 0) && (Canvas->image->getPixelColor(down) != newColor) && (Active->image->getPixelColor(down) == oldColor)){ + if((down.y() < Canvas->hight) && (Canvas->image->getPixelColor(down) != newColor) && (Active->image->getPixelColor(down) == oldColor)){ Canvas->image->drawPixel(down,newColor); Q.push(down); } diff --git a/src/Tool/IntelliToolPolygon.cpp b/src/Tool/IntelliToolPolygon.cpp index d075529..080168d 100644 --- a/src/Tool/IntelliToolPolygon.cpp +++ b/src/Tool/IntelliToolPolygon.cpp @@ -2,43 +2,36 @@ #include "Layer/PaintingArea.h" #include #include +#include IntelliToolPolygon::IntelliToolPolygon(PaintingArea* Area, IntelliColorPicker* colorPicker) :IntelliTool(Area, colorPicker){ - lineWidth = 5; - isDrawing = false; + this->alphaInner = QInputDialog::getInt(nullptr,"Inner Alpha Value", "Value:", 0,0,255,1); + lineWidth = QInputDialog::getInt(nullptr,"Line Width Input", "Width",1,1,50,1);; PointIsNearStart = false; - drawingPoint.setX(0); - drawingPoint.setY(0); - Point.setX(0); - Point.setY(0); + isDrawing = false; } void IntelliToolPolygon::onMouseLeftPressed(int x, int y){ - if(!isDrawing){ - width = Area->getWidthActiveLayer(); - height = Area->getHeightActiveLayer(); - } - if(!isDrawing && x > 0 && y > 0 && x < width && y < height){ - isDrawing = true; - drawingPoint.setX(x); - drawingPoint.setY(y); - QPointList.push_back(drawingPoint); + if(!isDrawing && x > 0 && y > 0 && xgetWidthOfActive() && ygetHeightOfActive()){ IntelliTool::onMouseLeftPressed(x,y); - this->Canvas->image->drawPlain(Qt::transparent); + QPoint drawingPoint = QPoint(x,y); + + isDrawing = true; + QPointList.push_back(drawingPoint); + this->Canvas->image->drawPoint(QPointList.back(), colorPicker->getFirstColor(), lineWidth); this->Canvas->image->calculateVisiblity(); } else if(isDrawing && isNearStart(x,y,QPointList.front())){ - PointIsNearStart = isNearStart(x,y,QPointList.front()); + PointIsNearStart = true; this->Canvas->image->drawLine(QPointList.back(), QPointList.front(), colorPicker->getFirstColor(), lineWidth); this->Canvas->image->calculateVisiblity(); } else if(isDrawing){ - drawingPoint.setX(x); - drawingPoint.setY(y); + QPoint drawingPoint(x,y); QPointList.push_back(drawingPoint); - this->Canvas->image->drawLine(QPointList.operator[](QPointList.size() - 2), QPointList.back(), colorPicker->getFirstColor(), lineWidth); + this->Canvas->image->drawLine(QPointList[QPointList.size() - 2], QPointList[QPointList.size() - 1], colorPicker->getFirstColor(), lineWidth); this->Canvas->image->calculateVisiblity(); } } @@ -52,29 +45,35 @@ void IntelliToolPolygon::onMouseRightPressed(int x, int y){ void IntelliToolPolygon::onMouseLeftReleased(int x, int y){ if(PointIsNearStart && QPointList.size() > 1){ - this->Canvas->image->calculateVisiblity(); PointIsNearStart = false; isDrawing = false; - Triangles = IntelliHelper::calculateTriangles(QPointList); - for(int i = 0; i < width; i++){ - for(int j = 0; j < height; j++){ - Point.setX(i); - Point.setY(j); + std::vector Triangles = IntelliHelper::calculateTriangles(QPointList); + QPoint Point; + QColor colorTwo(colorPicker->getSecondColor()); + colorTwo.setAlpha(alphaInner); + for(int i = 0; i < Active->width; i++){ + for(int j = 0; j < Active->hight; j++){ + Point = QPoint(i,j); if(IntelliHelper::isInPolygon(Triangles,Point)){ - this->Canvas->image->drawPixel(QPoint(i,j), colorPicker->getFirstColor()); + this->Canvas->image->drawPixel(Point, colorTwo); } } } + for(int i=0; iCanvas->image->drawLine(QPointList[i], QPointList[next], colorPicker->getFirstColor(), lineWidth); + } QPointList.clear(); IntelliTool::onMouseLeftReleased(x,y); } } void IntelliToolPolygon::onMouseRightReleased(int x, int y){ - + IntelliTool::onMouseRightReleased(x,y); } void IntelliToolPolygon::onWheelScrolled(int value){ + IntelliTool::onWheelScrolled(value); if(!isDrawing){ if(lineWidth + value < 10){ lineWidth += value; @@ -86,7 +85,7 @@ void IntelliToolPolygon::onWheelScrolled(int value){ } void IntelliToolPolygon::onMouseMoved(int x, int y){ - + IntelliTool::onMouseMoved(x,y); } bool IntelliToolPolygon::isNearStart(int x, int y, QPoint Startpoint){ diff --git a/src/Tool/IntelliToolPolygon.h b/src/Tool/IntelliToolPolygon.h index da9fa7c..3f53d76 100644 --- a/src/Tool/IntelliToolPolygon.h +++ b/src/Tool/IntelliToolPolygon.h @@ -10,6 +10,39 @@ */ class IntelliToolPolygon : public IntelliTool { + /*! + * \brief Checks if the given Point lies near the starting Point. + * \param x - x coordinate of a point. + * \param y - y coordinate of a point. + * \param Startpoint - The startingpoint to check for. + * \return Returns true if the (x,y) point is near to the startpoint, otherwise false. + */ + bool isNearStart(int x, int y, QPoint Startpoint); + + /*! + * \brief LineWidth of the drawing polygon. + */ + int lineWidth; + + /*! + * \brief IsDrawing true while drawing, else false. + */ + bool isDrawing; + + /*! + * \brief PointIsNearStart true, when last click near startpoint, else false. + */ + bool PointIsNearStart; + + /*! + * \brief The alpha value of the inner circle. + */ + int alphaInner; + + /*! + * \brief QPointList list of all points of the polygon. + */ + std::vector QPointList; public: /*! * \brief IntelliToolPolygon Constructor Define the Tool-intern Parameters @@ -27,52 +60,7 @@ public: virtual void onMouseMoved(int x, int y) override; -private: - /*! - * \brief isNearStart - * \param x - * \param y - * \param Startpoint - * \return true : Near Startpoint, else false - */ - bool isNearStart(int x, int y, QPoint Startpoint); - /*! - * \brief lineWidth of the Drawing Polygon - */ - int lineWidth; - /*! - * \brief width of the active Layer - */ - int width; - /*! - * \brief height of the active Layer - */ - int height; - /*! - * \brief isDrawing true while drawing, else false - */ - bool isDrawing; - /*! - * \brief PointIsNearStart true, when last click near Startpoint, else false - */ - bool PointIsNearStart; - /*! - * \brief drawingPoint Current Point after Left-Click - */ - QPoint drawingPoint; - /*! - * \brief Point Needed to look, if Point is in Polygon - */ - QPoint Point; - /*! - * \brief QPointList List of all Points of the Polygon - */ - std::vector QPointList; - /*! - * \brief Triangles Transformed QPointList into triangulated Form of the Polygon - */ - std::vector Triangles; }; From 71dd9aa7c247bce749beed98fe6108f26c23edf4 Mon Sep 17 00:00:00 2001 From: Sonaion Date: Thu, 19 Dec 2019 13:58:46 +0100 Subject: [PATCH 47/62] full doc tools --- src/Tool/IntelliToolPen.h | 2 +- src/Tool/IntelliToolPlain.h | 2 +- src/Tool/IntelliToolPolygon.cpp | 4 ++++ src/Tool/IntelliToolPolygon.h | 42 ++++++++++++++++++++++++++++++--- 4 files changed, 45 insertions(+), 5 deletions(-) diff --git a/src/Tool/IntelliToolPen.h b/src/Tool/IntelliToolPen.h index 25bc4d4..d611f24 100644 --- a/src/Tool/IntelliToolPen.h +++ b/src/Tool/IntelliToolPen.h @@ -29,7 +29,7 @@ public: virtual ~IntelliToolPen() override; /*! - * \brief A function managing the right click pressed of a mouse.Resetting the current draw. + * \brief A function managing the right click pressed of a mouse. Resetting the current draw. * \param x - The x coordinate relative to the active/canvas layer. * \param y - The y coordinate relative to the active/canvas layer. */ diff --git a/src/Tool/IntelliToolPlain.h b/src/Tool/IntelliToolPlain.h index b6380ed..4477610 100644 --- a/src/Tool/IntelliToolPlain.h +++ b/src/Tool/IntelliToolPlain.h @@ -20,7 +20,7 @@ public: virtual ~IntelliToolPlainTool() override; /*! - * \brief A function managing the right click pressed of a mouse.Resetting the current fill. + * \brief A function managing the right click pressed of a mouse. Resetting the current fill. * \param x - The x coordinate relative to the active/canvas layer. * \param y - The y coordinate relative to the active/canvas layer. */ diff --git a/src/Tool/IntelliToolPolygon.cpp b/src/Tool/IntelliToolPolygon.cpp index 080168d..89ad9fb 100644 --- a/src/Tool/IntelliToolPolygon.cpp +++ b/src/Tool/IntelliToolPolygon.cpp @@ -12,6 +12,10 @@ IntelliToolPolygon::IntelliToolPolygon(PaintingArea* Area, IntelliColorPicker* c isDrawing = false; } +IntelliToolPolygon::~IntelliToolPolygon(){ + +} + void IntelliToolPolygon::onMouseLeftPressed(int x, int y){ if(!isDrawing && x > 0 && y > 0 && xgetWidthOfActive() && ygetHeightOfActive()){ IntelliTool::onMouseLeftPressed(x,y); diff --git a/src/Tool/IntelliToolPolygon.h b/src/Tool/IntelliToolPolygon.h index 3f53d76..b057506 100644 --- a/src/Tool/IntelliToolPolygon.h +++ b/src/Tool/IntelliToolPolygon.h @@ -45,19 +45,55 @@ class IntelliToolPolygon : public IntelliTool std::vector QPointList; public: /*! - * \brief IntelliToolPolygon Constructor Define the Tool-intern Parameters - * \param Area - * \param colorPicker + * \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. */ IntelliToolPolygon(PaintingArea* Area, IntelliColorPicker* colorPicker); + /*! + * \brief A Destructor. + */ + ~IntelliToolPolygon() override; + /*! + * \brief A function managing the left click pressed of a mouse. Setting polygon points. + * \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. Merging the fill to the active 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 onMouseLeftReleased(int x, int y) override; + + /*! + * \brief A function managing the right click pressed of a mouse. Resetting the current fill. + * \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 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. + * \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; From 0fb62f62790e88e82563bbd4e89e733f969238d1 Mon Sep 17 00:00:00 2001 From: Paul Norberger Date: Thu, 19 Dec 2019 14:08:01 +0100 Subject: [PATCH 48/62] Update manual to version 0.31 --- docs/Manual/assets/change-colors.png | Bin 0 -> 2122 bytes docs/Manual/assets/close-window.png | Bin 0 -> 814 bytes docs/Manual/assets/color-switch.png | Bin 0 -> 2034 bytes docs/Manual/assets/create-layer.png | Bin 0 -> 1300 bytes docs/Manual/assets/file-open.png | Bin 1318 -> 1486 bytes docs/Manual/assets/file-save.png | Bin 2039 -> 2253 bytes docs/Manual/assets/layer-alpha.png | Bin 619 -> 0 bytes docs/Manual/assets/layer-options.png | Bin 0 -> 2735 bytes docs/Manual/assets/maximize-window.png | Bin 0 -> 826 bytes docs/Manual/assets/minimize-window.png | Bin 0 -> 1065 bytes docs/Manual/assets/moving-layers.png | Bin 1221 -> 0 bytes docs/Manual/assets/startup.png | Bin 5266 -> 6760 bytes docs/Manual/assets/tool-pen.png | Bin 0 -> 993 bytes docs/Manual/assets/tool-plain.png | Bin 0 -> 1062 bytes docs/Manual/assets/toollist.png | Bin 0 -> 1022 bytes docs/Manual/manual.aux | 14 - docs/Manual/manual.log | 510 ------------------------- docs/Manual/manual.pdf | Bin 202802 -> 244030 bytes docs/Manual/manual.synctex.gz | Bin 21329 -> 0 bytes docs/Manual/manual.tex | 61 +-- docs/Manual/manual.toc | 12 - 21 files changed, 39 insertions(+), 558 deletions(-) create mode 100644 docs/Manual/assets/change-colors.png create mode 100644 docs/Manual/assets/close-window.png create mode 100644 docs/Manual/assets/color-switch.png create mode 100644 docs/Manual/assets/create-layer.png delete mode 100644 docs/Manual/assets/layer-alpha.png create mode 100644 docs/Manual/assets/layer-options.png create mode 100644 docs/Manual/assets/maximize-window.png create mode 100644 docs/Manual/assets/minimize-window.png delete mode 100644 docs/Manual/assets/moving-layers.png create mode 100644 docs/Manual/assets/tool-pen.png create mode 100644 docs/Manual/assets/tool-plain.png create mode 100644 docs/Manual/assets/toollist.png delete mode 100644 docs/Manual/manual.aux delete mode 100644 docs/Manual/manual.log delete mode 100644 docs/Manual/manual.synctex.gz delete mode 100644 docs/Manual/manual.toc diff --git a/docs/Manual/assets/change-colors.png b/docs/Manual/assets/change-colors.png new file mode 100644 index 0000000000000000000000000000000000000000..8a3065a8fdb5c1ea0828ca4eda109a4601564e1e GIT binary patch literal 2122 zcmY*bdpMM78-G%}bQ%?HHJOyg4ADr%!wj({|XtiDD$F9T_<^ z7^l8WDhVr76EV&-e4??KL5LM!GVk}=-Rt^xpX+{p_kI6<_x0S@egE|&IoexoT!&o; z0N7}KjB*lyRX8+$tgsqIA&zwpC6XO&oh{H501O7bD6aS)0Kfta76Y&t3>N$M1YogP zltNWJ27?D!5(Z1cqA?ydA_h;!W59~A!h#h6k3}hUb#*)muc4u#rKP2^nmCcz{!OeVoF8HQmJ7AE0gG9Hco zB#s|H4#U2_s01@$Uyd(|48AW%d>ept0I~rn2jCF^PXS=SFe*0!&<#Kj0DS=b2Eb0r&>MG5|6F5CAy73=RY4Ghi{tm&4$2ID7^lVYMS1F`pwAbHoV3XP_Pt zbNGBQA3;IfEJ2zl5k7*ZNb?LbAVIq4kbwoXk}v*?Mytf5lZY4*qYsQOAyYHR6oMY{ z!W@DY{&A7e7U~NCzK^k{m^xqV`!tZ^-cM1HpHVGJd~J{$!YFeq3>hDN*ih-&|MuqM z3+lj4`yN+9(>q5?KWKAWee=<&8hn79T|eFh-?)%1e_P)sWH~h2dOEvWRjR$*71yDZ zaZFOWkeRa@CxPW5tHQbJ`p(*S!;MkyY*tFBk&+{n>>M7N0NOWmGu~@1ixDU~De!h^q+-cexAdkbZ%+O|? zB^*&C5ORhyNVHg0C|mli`X0#v7VNEwk*U#*I(J^E+g4R3PfNNeeXF}x*Sn$LpQrNOqkzX+hT%?Fp^Fd} zm=_*#JM%0;@}!rW+&M?g`Ptv^kD>qGQHXrS8UKEa@-ps#V^ofkqd<4d9)c}Amcvv@ zx}`+Oi71*(l$|v2l7n_Z4KYs)v!U=;Yv^wI2@ee{)%e%eN`_o_{C@`G73jje)@!q| z{GZgjw4WGSAOFXA_Cz+;M$oT`(H`I;|r?Po<5jl-7`M>nDb)1dFt@{N2+q; z^p7mjq7A=3V5(cqH43vPZnn&a-tIb_n?5RgpIE@eO(qGBoPXcWT>Q{St(3>*^Mp00 zi@$bt7)OaL8h%V$_57#9Oq+An?XPAqR%IvrUeN%AcBQdo1z?AKl?Hi>%!)8mP$HjE1Yajbb4Jn z8P>XGUK-Y2?CPx(KULAJJ@Y9`Ve1Y(T)P5q4EI!2;#xMFou|0lY`4r~tKT`%;#{vp z`p*^ZfYb(R!B z$gYka8>>^y_$E>2PS~1`MCdd~G>+9w%!p_lt;P=SLaEc_o?`d#$mXiha6*V*mIiV3 z(gqd4o--O+ilkK!sA!x>M|10MP4s5Qwd?{???XKFF# zLzRBx_+5g#s#ObC*dIZ+XsOt?*)LWn>zCwzGavc;nGngr43d%#r6j2QP6(CT$+Vz| zG+Fd()2<0fcI36-ig0%AC9ARhC!8aTTA_^3SN0|xb}lwoUXZbW`iS?uo};v#D1z3o zHyyF=*(163%DNn5O2pfrjMTWsjI(`Jd8P=F`F@!18$T79ty7^pIK)zJ99SCHJG_N< z-AtmgEB#yoVG!b&ewnYKzlK`FYMbALNu7m}F|E02ZIH6%Sg3q#D7)#RFfw~Mo|UrH zQJy!_ovKQ`ZYF(8t55!BbC;%>>al6S%bT8O6duy%u<1~QI;B0Ay34@e_dUpB1~0~N z=iJqU=`MbC_vfC+;?@=J72t0K)GU@3_?P`_snn#a{py3=XQ{2J8rwDPe!%=!+LEgn zW9pKnHWoGlDO0VO*2!CGhUBPjj8NU?%Ali7&%Vr_n4XIK*$7^co9UOVK;lzoNzb0| zpjdrRgNTn^-Ms1Kt!C0A{kSC$UQl8XX5x9OR!?pl6mDzQIvYD*QBWOtckqCxMa8tM zJiR$r(SaRE&0ZI&@sg=WsNZF}n3}8|z_edf^nRnYu6oH=BVovcmEvyY`pc`Sg^UT{$Fw-~Sj(f{7<#1Oqp>onq^vg=euIH@If}u6I dp(l38s{OhcN^sw&u$4c7wS_&U-0aNN{{hQK`Un63 literal 0 HcmV?d00001 diff --git a/docs/Manual/assets/close-window.png b/docs/Manual/assets/close-window.png new file mode 100644 index 0000000000000000000000000000000000000000..5dae5f1b754d2758574104f142d26ccbe11f6ca7 GIT binary patch literal 814 zcmV+}1JV46P)0A@NmW>o+HW&i+Y06JzmI($1jW&mbpW;#GXKyYwy06LI5I*(E9-~Y|bCZPvS zJ!d)s|2NDu?Jfb@Z?Z`SK>+-fi=S{LaKiwc18@!iI0xVyfOBvTERA!XM^Z|n$prTi zG~%46P|nE-oCD1|clY@8jQa>mh>Y(z_c}1g!Rr^!dEOp7cPr(iy)xZTD*aD)V)aTl zoXWYK8_S#TI+vZ)J69Wrb1Uo|`{q_|(Ydi5=Vb2Obmvltkc(tM>4s=0Ml&m$ zK3s2zkT@u!EKfvK)bgO6EXKKc(o<=p&P(1!JHg{!3Fnk_ZsqD~YtcDBppiCB8#D?_ z&T(z^J2Ou3BjQOO=b2`q{Q4nP}ver3WFt?JdcFz6GQYvvBOt*JU z$9%y@VO_JmlCB-+#xCcmZ|D9&jdL92tvH+4imB|JBhF3g2OK}piw@mC9`Eu^{(iqF z+?}smoBSR0Rsp761SM07*qoM6N<$f}>)Gr2qf` literal 0 HcmV?d00001 diff --git a/docs/Manual/assets/color-switch.png b/docs/Manual/assets/color-switch.png new file mode 100644 index 0000000000000000000000000000000000000000..5e71b6a71651b3b974ea0a7a1dc5082cc7402c2f GIT binary patch literal 2034 zcmZ8idpwls9)Dt1jWT3T$*^j8dxvC5W9H-IHfyH~`;JmhvLeh#M9$G=2&GoTI5i(; zv=q*sHdEA=NZM7(@;br@gLR8CgmD?S3<~dgoz5TUoagynzTfZj`#hK5Kac33*FHU6 ziY@>^&tpI55CCh)IKI118;@_+<}BdC4+jySJvaq`M8X}9t9dg36hNYo0EI-N01Acj z{~RxbNF)eQ=oB14xUnD-Sd~b)1R#ila|nWHG#W&QtgWqWY-}JF-QM2b!NGyaWI8%J zIy*bNxVX5wy1Kc!QRr+4Hx`@4rqkJYWV7iMHXUNKARK)WJUuIZ=r4Yq#wqPZ55l^8bk8BDzuj-P-8!P*!&R@%g;yJEMVTOH@ckR6!EY zX9(VAGP`ni(uNwoJ}Rc89C{aTw*OXo;B3EIa!lP}@Y!p!&TF5!CT}i~j09iui{4cHa6y`Ga^vssN@r%$qtvHtR;B*H$eCB-@d@4%N&e_@Nl&^jq;;u@w zq(#`~?Jf7t0ar|HweDsK$TO4^l|H zUJ2Ao3`9$n*BTbAko39ET};@auSz{cq4F)m7&%8}V)%|@{3yBs`5sx&N4mLbw&@m& ziV^?hqjnkRQV!@I35R$_;=#kwRozGLR;CfD#^g;_)DOurOnp7u{<+9#++8upAe@7uaQ=XjL&Zqir(crdj&e`l5=aT z@U8#rl*=BvMSpu5KPK(;O^VTynjr}lb0P0tkbKej!z}H|U}Ya_;L^UTXu;KSr8FBj z=6zy4cW)=9p~K%+r*FV{b8X0K1HWu49hMLJygGD^>pJ1<-uq3wr0q+4|FgPqOHMyr z&b$|xyrj9%9qRI`zrM9Cz0g2@Ion5Isu>$jg#!+H-mw+=M_7FO+m;*BA8Y@a%)A|d zi2WlE#YQo_;65I2;ml#vN#c$K^~%7a88XrjhlxK-%%H|RYPR++zZ+Z+nX0pWqCB=z zoO_CiWJ=%i|DcN#BX<(cq<`QbS*G(MB;*YzUSch7L{2nb4I-7eh)#wG9IOt!aANZ4 zgfrV}^C+8YzxL*tH9kMLPp%raYDfvSBb>1troHe89i~Ojl&Z^$Bi^KXEH=LQ-2nNY zrsg+s^2dDXm!=oPyj!Wy?(iaKmfMSLFU^GxX6~1obUX@N)Z~m?7YfK`dOk~*dhoLgOskJmgo4tW1?#Mg1%75U$XfYB zNtvzr?BKPh{VwiqzW$nDH0a{KDdfoOP7R;gG9j|G z@G}-zS?JY7cV*Z*&1oNha578$;k#%#+5`<2$JQ6MbfIIdVV9z~e$%H8ROSAZAmKf& zl{`!dTui@s76Kz4&MTpN>Y? zCy(5mst}BKrv-d|9(+7vYGYmGffHFZbVkQeL~pgJhWqw42wZnd&(C1cwIQ<2qa^MSe?w6HrMXv@|kOM zj-8!tV^TlCo4OR!hjmt}-G&YQD~+6PUaly4D2Gp)+v{H3kVp=xgo1~Q32--5 q$D-QpVoT1Fwa6Aw9h0iswW#0RxRDlLmou{ZcYEyd;yiK>y7Di05xMjL literal 0 HcmV?d00001 diff --git a/docs/Manual/assets/create-layer.png b/docs/Manual/assets/create-layer.png new file mode 100644 index 0000000000000000000000000000000000000000..0cb408b9be9b8f2610bde39902cabff5591aa0a7 GIT binary patch literal 1300 zcmXX`X;4#F7`i(yjzd905XLFeI7=F#gq)p=-dR3X0bo|eVfjb!2K1%YKj~1rOi7c}m+pXPuU&R- zsamuvA~mZC>yY#b`SueJNYb{v|8bqu`=U}~TIF@YanG4j805=p4E=p=AAhut@pt0s z(j*6US3}DPnV?~?bz0kENLbY*s{VUpq&hwvxJuw_|zRsD1MsUsb0 zd2V|%V(P{E6GlZunrg~h2DD2HQA1nRHeqK#h@?pz85%Z`tIBj_*q-gUqTO-rcY-5o zpf|Uv*;iGUM^YJI_?b(ugtLvg=8gN-pYmA0NWPvasi^PHKDYl#s`Cf;4)3(^y;@h% zlFH^Ix15}H!U47E`Vf^q z6X1U&FI?98DdlL=mlXyxh0A?`Rb^yja z-H@cyol#BKa~u-A9IP1HudPL`8DKO#OhD3!jsKBx0&zc?#Ha9 z^w^8Zx0MMNQ*UQH{t7-lW^L1!T+HIrGrfEAb6KMRe2p*ZBezo6 z;M^h3`T1S11SLb&3M)$CrSObKS(f}kKxXIwUYmDT99JPKQ*)LNw0~O;rp{P>Cu4Td gP+wxUCS_8;DbW1T=&K8UE_1&dCoq)N5U_{;FCTG*CjbBd literal 0 HcmV?d00001 diff --git a/docs/Manual/assets/file-open.png b/docs/Manual/assets/file-open.png index e7af30c9bedf1ded8d6b23a917f9018fb39527d6..f60e22462bcc9dc30c4af2fa0f2d280c545131de 100644 GIT binary patch delta 1293 zcmV+o1@ii)3eF29iBL{Q4GJ0x0000DNk~Le0001<0001L2m=5B0D4#$MgRZ-P?04} z5-2DrD=RB3EG#ZAE+jWDGcz-hgG)4%005u>0IvW5xBvi#KtQErK*|6B)&Kz80086w z0P+9;^8f(#008y?0Qvv``~U#`0091x;U+J{;-&w@hT`I-|Kg>@#Nx#N#Khv_%;^8j z?El37;>7>|%<%u+=>Ov4#Nz+N|KgJ;0V02)3=}#500cQnL_t(|+U=P8ThdS%$Cp`o zsVEGxOc0@k1S}kA%JNo<6iY25%?p{K=I#9dzjfZTi(_nq0kV^w_i>L*&pGdB@8#@# z;Wl;~*oNStaSZQ&z&k|W zmphY$%%<$#sT;i7(Jt^Zn1 z36{Z^SSdjXij}gEtLAfMr+DBGFkpYZ1b@llCzP#6>uXv@4}ym-9ik^`F7QSEe06ss z+v4HQI+Mg7dGQ+rPmR6hXm!o(p$*=FQ|-a35JW3HL71{jE*^-VO_-9WWc5*7#M?bR zx9nV8D3A}hR7x!o`W+rNC0pa=NJ$9UUptbZq}3KrTeD){8kg4lUJ2%Jliz>qdTX31 zXi!=R)mJ-o5t4D&{N91GfbxXw+9y|C)7To#zct+L6ZIQ!>3Uyk?cpgK0Ht`D%`@pH z9SItmr+5O@#_$*(!!uZ9JQ}4KFBBf58E<4X9EsA4H#`!e8Sm-y(3m4$y`pXT2!PPm zq~&44-UoMO)^xRswvE%%3Fv>VPa2jH&%s9nJhP&0BX*@4ECZgCj|O-qMN5v}pi0-= zW?c2IO5*M6N5IQ`$s2vNfM=m-L6s6E+set92oVrb20YD2ThSwm_DYqyJSc0q)20$3 zjEJCWBYI{HIP?_3j}?xO`fv!Z|1RjF$g1T*oz zw{9_A_0bAmXB2JA$0&x^1w60L$PAC+F+7IH@ct#d1jqHp?Is6&*Znn01H9zjxR88l zvt07t0N>eAxy4I7n6O_i=nwikoJp5>sXhV_;5c7;C`NFTJ!-nsPx$1+2_Zeiaj}jS zn#V1EBz)dQ4=8$K&>*+?)L=aI2!e-0spJ-4KKy^b zXSGK#e7Hd%PNdeLS=7A4B*=5HQ^|GRxvzPgUO!aaZ60^({kT?*YS)m06gt}>u37^! zi3{+~0D$^PvX$fp{7PsYcSiP7V|WaY;W4}$g*R=&dq#b#wk7#XGWP{YD4X>YfxMg@v;H8KB@RdcX|3#nr z?GH`0*Beg_z8Z`JDy7LyKzlH}*6`>}F6?`caccyjHFzOFS8K4B8pC6F43FV?ix&xv z40BF4-Bo)#JHK62FyM`cM@O9KX1Z&$?-t%0@uFklkOSRZmu-Gwae38<7mY;h=@z?f zOCOdCt2M0=joQ+!blnPtRfW#bxps6#FRdY-r*y@?!m53bsXVzl00000NkvXXu0mjf D#%OKw delta 1125 zcmV-r1e*KK3#JMsiBL{Q4GJ0x0000DNk~Le0001@0001O2m=5B02Pu-NB{rV006E40ER$7rDQN>@|HS{|#Q*=y@c-TD|Kk6XR{|kz)U2>>W+eW``MZ>VxJfK=t9#@?1(yC^?SR1{I#d4^^T_PVzfq2(-eri ziCs|L!2?%BIJet^9o-Umf*Sk3wU@dFl-pVGvKedJ+9&GMx|^ zTlXlm{wWPa-CxjN?4LVMbhiaHQ~73)nuWHG;Iwts6%kijJ6D4jbX+c-uZs$XIN(3G ztZ_Nh@nC~fx-HLfF$#U)FjmpsU3^|N+%H3fC^q7)KSo?@6GvpiS`Lj636T(QV%b%H z;StlB710q>%bBd;h>NMT=!nmkUaoi`jwYy_%IhF3$!K%}61#$mOmje}g@LaGP~B9hibzQ-WvFu9z+P8w_!<7cD1x76bR< zh+;P7uc6Y-*9kYZre;mF4bh6^8_}+qP5B!Tk*|mA;+8|V7?J!VMyK^cXcj`eHN?q^ zQ$i#}LL@{&{I?K`k~Cd#TbhWCgU2Ug>3)HgUb#3cJ(!cnkuraX#Yb!I&XVzeWPB`D z^@UiT;SdQ)id7c!9Jw@Ql)myzEPXBCL5b+CuxB z=r=NyI*uK9SB43GSTMWOm?YkRpllpd<6~T~s?d=4<`6c<3$GVC5!X}fdF7OTdVgwZYDNG62RKPYK~#9!?VbH!+e8?^15>mGp<2gkWeVeE z)NG)&re|4MtF3xADjRm7+o)4v2yFTPfAgNZ%S+oNeMy?8xw{V~eM#<~Z=UDgo;
  • #?8w&7cZ_ZyvS>07rpEF!++P!Axf#9HHQ`G z$T0c}@j9G+Z~Zz#DLv#Dy>EKSYu8OwIo3z#8A+!8ou^J-Ic|ZL|7j$X{EAxp%QuGc zs+XKGSDrSjXTMw;dbML1Z7A*V(lA=2++V>;E64D`U36l}ZF>4@CkN!9^G5aT^t|D^ zGt1M;y6KZG7XfnPl7Ed;&;R4(SSWgUY$ZxbDpJw6pffmj23fUv%0 zXK{FPpKMJL5GQA1j$6;KZd}`TQYpbe;l)pYY3fh&JjZkO7K)tP< z=V@o{o~^Tme3R1H-;On`{*C6w9ur|2$I?4w3#&g$PF`%OwJDL>LP~Pb*OBe zyN^X4kI zQ&93xKi}M*7I{%olx!FUly57_^1k^=ORK|_p+u3~$$yJ;Dv>z^^wNBR{QJTrc9Q#) zF+K9~?E*;s-d=Ex7rKZY(SlbdD4Rp&&~T!E;Z zDoyQfqJM_gIWi9=FPfK9h^fx4ItbE|4@}B2$es1vI-Kb|p7op>HMLIif)kL+jz>;< zE~{60Cbo;P$$W|Dm@Q#)KiqVUD;!jf8eU}6QA%U8p9YWxiOHOytMQZcrl9a zr`53>1;dSGcqDFLY%+XVdD?`yF4y4WamkHAxtP?rz25GRO-5!+IT(IDENe%D$-(uXR?DkvEBhML`GjUHkLmp?R&4Sg4P?dO z)5eblQit2n4WV;XRIXYa;44c;vrn142pO|BeUvB}Wt>C7N}d;D<8S?^6%e`jyP zgLy1&K7T6$ zxfwf)au7wDv9C6%0UXdX(x3C#S$<0lh0QNNoCvvduu!_CqU0q{^6oP^r5I329yvMO zQB{QD@_iMEY3?$@;yIzbo114+mouDBeF zh)ZP!A-CPHd`L;^eIXR`oz3;TzBh4x7fl+hb5zW*!8EP^b#ox)e(sagfUf?*w6f1HpDmfOF9E(bhMJ30gl4DWHv8d!&RB|jTITn>1 zi%O1TMDFmthPMu_7deg_IrqJWw+^ibIgT5-6%rTLIn9DBOAK_80UVGrYm#p?W)Crya& z)qJ9R{p5f@_83+wM87pAL9WD+oNv&u54BIgHI`oTAs=d=fa_`wYhv%f>XWe0Zrup> zF!9;AmdabW^9FM0JjgTHXXg63W#$~0{+}dyY+@#AR-?{0b*6snFQIWV)y{R(M5g_@ nPM4P_n+cMO8yl7Ac)0%oTV*k6{RFq#00000NkvXXu0mjfE*$rm delta 1842 zcmV-22hI4+5%&)ziBL{Q4GJ0x0000DNk~Le0002w0001;2m=5B0F$I7wg3PDK9MCW z2>=cx4h|#$8ZMDv8yF-cBqt{)BrYT?D=RH6EhINCGBPqXH8qivCpthb8bB^2KsO{n zKrTQ)H$Xr@N=iyVKxAYkc_MF^02F z)Pg)X>4NS4YNsCZio5Hpx2E~}Hl)Bic-Cp0{dj2_jlOC2AiqbKrrBjV{|S8g-~@I? zLb7Ae+w6_FL^5UaUkS+`f8P8L^0z}_&qn|BkQGMAG~~D6g`(N$_ek@+-R!x4S+dXj zR@eNLrom6*mq^l*U`X?whb39=j=K_)e>~W`G(6lDjLyw3FOe+dYp*g1IRt~cK@!sP za98m?Nl0@J+H>?rQI`!&=5jNI27eGpNFnt9ahIx07ASW~jMw$z9G^x@X<30OZQP_?By#<^AeC9lrWXzLv?6%EAQJ z6_*nhtYz}Tk`mIoQ=*n+*(sEnA-NIs;W{IrC5d$bw(%=!a>mlVhn+Ywor7}8lL z?TZLYCRir9S8~T<8?a`7@`F6u5C4=E&8}Tfj!CrBH5a$dG**rZQeSFJk z8F4_GV)r7Qqtoi|)@iJ(O{e*NCJhv6C zyOQyc5D3od^|ket{h(1M7s#);*1Rcnw?}V&Z(F5Q)=5Id*_xvA*kMUh(eh*f=`XJ4 zTJeByvV!^d3&8Dh_Z9AXYzQ-Zwxn@DidK;u^!{EHkl3w%Lr8=~NQ6X4gq$_Vhj%K) z1o`EiO6aZ#nR-Z}&*Q@lIbCO zN)4n#pJ$cHoN5)1izS0dRnt`_xz(wBHaK zU?WVWAO``v^%Xv#R4$OkARS?zf>82g^6Ehj0(P>08^+3L**|1yYvV!apF@2eO>+NT z)vzT=B`5ltyqNlge7yZ=BP`=L5v7rk&LDby^<&YYF6Mkg?(S@Fg@yb!sx%7H`GZjW8i(f{+v; z)qtdb2&o1nMMyOuDMG3NNfA;FNIDfrN3?E|S@qHbDWi3h%&Hd>l1>fMmhwz6t6pj# zEiA7Y(&B-nQ-qY!I34M>WRYCuwiR0EPCq#BSEA=Q9?q*I6F>p7ZyeZ;<4JQ1b{@|u<{rI2SG z(mFkq>*Vp(R)22C2T2oyw3b>8xDIJbA%m?$Isqi5iMnea=I4SL0$Wf-RfFVo#9>L_ z%UA}7qzPJ*46Wa-8f4S1R^>}e7}b763rQ1zZ1k_K6_Q0eX^6Fk4Wba_w0k@hA=Q8# gqzI`7Buyvee|wCmVp^EuuK)l507*qoM6N<$g6a5Xga7~l diff --git a/docs/Manual/assets/layer-alpha.png b/docs/Manual/assets/layer-alpha.png deleted file mode 100644 index 3bbc9f194c9a2ef28b7c9e094a264a4d1627ab3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 619 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 literal 0 HcmV?d00001 diff --git a/docs/Manual/assets/minimize-window.png b/docs/Manual/assets/minimize-window.png new file mode 100644 index 0000000000000000000000000000000000000000..a6cfed2835ac044604c8195542c4f1b06e952a31 GIT binary patch literal 1065 zcmV+^1lIeBP)hB06LI5 zI*D~bU{{WD- zkcgMtiJRM)kI0pu;Et@>qNn7puj#L^>Abw{klX*Z|Nqlr4_V)k({{;Go+W-Ip(@8`@RCwC$*a>seKo|z#HK_H%R%;|xYt>fk#i1ZZlSTyb ztVraj?*IQG?zg+-AW4Ug5-GgzbegdHvCF_SyGdAm-g$Y`FgC?;|AKLLPqvh9$b)E5 zEv0qwZ`)XxEmvRA|INq%`m))+NXikUP=U z|LDvpa>yiSnv;#y`!uy0|HFUA@YAA-Un!d&V5vA#FZbV?|#n)7IqS;~H}~buu@oV=j-X+$s9g z{dD^JK$LYFKf@u4K5#4rIbkkcT*k&4C1=^ZBcVw^9VbSPHdd=KrUJ|5bb&{8>NK+V zS`JV4%i(O!TP_VTX>foeFLL1>!G9vx6y81va_FS6Tsl7r-lq8H-)LueW!Y)e1V|zE9p7Wh^=KKDC=ASwL{~wqg;H6D5 zq7VoKZ69yXAiP%K(V{`ZGwa;v)p)64`-L#6RH~Jg6#xLfzPa1cHMK`4acz#vqK;J{D>!w^g<#*`=oVPY|gGZexJ zE-O_Kqqr$i6vI$_j}k+bc>K?lxQ1a$+*B#IHth<5K$`OLbPoZ?-`>^#LS5op+ld&(c_dmxn=+4>amVOzPjslVo&Bg z=6F|Oyl+xdt`dePX5m%;r^3oh-2+D?0&f#_>1riUUa*%X?3`=t<-r<0S@pu5d?#u? zGq4O4rQC-vZ@)PdExU2#3gReY7> z?XxtsG+k?ZM5^!rb8}M{)I|$xm7E_h<5eb!7YbDI{h(G@BI0NA)uc8{tQdg zX`&8AgQAgbE$7dZD~76eP2{CgzN2{k+?{qQ<{%&r!%c3IrCq^5e}r&8_!uEUGT02n zf#o|z##!#&+dml+IJAsc+eN8l=Fc$g&FXm?kd!PZt^t8&~p> z#`e|F7va&b6x;JXpn9K)t5ik0E;)zpc^&iH=C5ClJ2EIo&Ep*-&F|RGQW@=Mm~$;% z&NGFbsQc1Td4FGGStUK=K<%ylX|WIPorHx?DT~(+CINbZmut);C$>YR2)G1q)x!_$ zxM6OW!=uX;p5m0_$(Z3C|ipdr9kNASowkfCpRoRyAoUq)+4X|6V=g820HCi^x)&?-hgd zCy4GuGi`N~_m{5vF>Qj2Le1xAv%)`Fj{5NB(J5O$_J+7RO>rYC@9Pn0q}wG=^Lcny zxWRIQ#g7IOl7I2~_+TlhUTXSQT%DPHB)NdS5qe4lPWTnmz(2pL#vf9YCVzv0?U3KR W6riQHivT{C2tLdJ&wD4L^8N)-{cxlJ diff --git a/docs/Manual/assets/startup.png b/docs/Manual/assets/startup.png index 6702b8f61685e1c57aaf51d92667618c2cee9767..b9647bffe0b1c56fb8af657e2a83714d57f7d416 100644 GIT binary patch literal 6760 zcmc&(c|6ox|Njmtmx>6{LPe1^vXnHElD$Mz)<~9!?CY56R-#Ch{F&3vbZ_Gh_}<8Ob8NF)Ym<29@tMKdAi3l?cdD|YY{Zlkj;qPc#dX$N6W&8 z=4xG1kK*KpgezX9>E@h1cF$#Km)b1>Tn<57C*|_hwnqkBuj&wnZL2 z`DJB(!vr(}iXcxhw3ZvgJ*75tKnJEZhga#0b@f{kki-jK5ry>cjBXSZk>}J`f>&sp zmW3MMI!-+enI;CZg&+rmrw@&C4D1jRIlgDr(rmnWnGY&*%=X_qxV*-jXHJflUk>Fa zXD7Aa=U4Nzbu~i#-j#i4NKv8vE#3;R=I3^#Y<&8z;w!Th5u|E7q(l$(91gjAnBt3B zdW6Q??P(i7^BT8!Tn2JFvXJdD_iPU`Y^}K^MjUyHs&%#0X`w$yhdWZ?&}>wB45bZ zabvk>)xFXJMn9_$uf;X%;S9gejJB{}&BUq?hx+&r)E@i7?#p$~VNjPc$iseq#$jti zi3|6U)_cTKtWG=U*ax5pZUJY=n0-SS<;)I>DV?uyxW4BPQWv#-?mO;bWKgo zV{i#+Q=gLFt7Fa1rK;~%_edwHJqTCG&|=P{)A>AGMOIR4E{%2-g)rKQkJm~<$hG`X zfKstfj2pLoU&(X`qmClH5^Cx zAdv67$@kA5G9B0Y0=(T13U;LRy4%;-%~q?_CZT;%`Cdd^b8+tQ?BZc0`Q4pneZ>?0 zp@4-L-yYUe&XfiD04PWQ`{1aU&UrKa8y4g8^M2IyA@8ulg^bV3p{Llh?Lf+!+4_fXabPwRbNub+r3qK&o$@n$o-Esjo+KAuWLjV(|8Jc(R4WGN zxLsvK$Ve+Ng*t)mXPVr}o3S*}F}r*>&8d{tYT8=|}|~*SH6^A(XNCGTTgpY%>^0(3)1?AAhW8(maya1OOSgrn)E3{wNZ; zF07&Z6#0C7p<2MC5051?j64^ zrLJsjhnWo+7GuvLhty}5DD^UpsQ<(`u9#6 zWjiJ{9eMZb%+gP+(k^(jj4^gG9Y=mw&vV z&Op!#&p+CvEENCRm-~5MUaK~wy>qvkdr=q{_Qe+z^t1i$KVMc==%b@&c*ezLYVx~_ ztMr-$nJ?BTIM1q=-nc%fR?HV_a>lRVps*XobFe+heYrhm*E^azjghN~uDqca!dzne zGhA*e8XR4GqdD01b;!oWDMYVw!oo9faq-gqdWMH$+j@NY^^mm3HtO4akZ&fdOOM#Um#x3 zOFCK3dYl;kn_0!tueaP3Yx`fZQhK9jSS}t^fZVla@zC_1fPm@KDQ}y?6Cdka?Hhhi zwJWbGEPYv6c(C2p$m_d$kW%~cG;+Ij1#Nf7p?ANk(pco`TeOS;9q#?UTEw@^UUM&3 z%zV#pg`|mcu+{a_O1q$yuUph>Jy_`dz7P1P%Wv_?8yk}VPFhE~FTHnQ=OL0v#@FJ- zTjF5-Xm9Vfi9|jg)7Jx+*`b%ZhrSGctD>Y#EY`K8W>&4#x*QrVy5-v2xgLt5T>nh& zE#}vmyB=-R!Js{Jh}YrvqneZ*qh+kpNHQ@jCr+~^5g+k;k-XPOr9g4+_nX( z4sq_jt@Yd|Fc~a&kN3JK2d-Kqo?(n`pD^^R0{lPj48IleZe8Eeo&W6_-HU>K8x=u4YXK z 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 literal 5266 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 diff --git a/docs/Manual/assets/tool-pen.png b/docs/Manual/assets/tool-pen.png new file mode 100644 index 0000000000000000000000000000000000000000..52bbfdaf8b204d1770ef324a7ada7475eac6df41 GIT binary patch literal 993 zcmXX_ZA?>V6h4Cuu+A&6GQ)MCGu0G|cL*+pz{YhcLOW>-)G$7rd=$ZLF~SDRqKFfy z2m*70AVom*I=3m{HiR-h1TPxfvQ9}Qv7m4T#;|-=Xc*LYmu%-f&v~BbWvl@zI>l@xOx zpaP&Cpb4NEpbbDpl9ZCv0z3v71TX=N0W1Jm02Tq30R91BC$<5+0zd$?iexAyrJ^W` zR?+C3!RN0XVgU36;&9#kKBoQx_VuvxOL&H zj+GyV&y`30nz6Ype0-+$QtjQYL~&f#u+@9%{H^xC({hKBc4)^2qK56{X5X`X(YxBb z`ngRjS;l}j!px?-ea?K2_vaF>>_|?^i8w)eU$Dj)++6vG;81(nibUhqc6`Kgsv=Xz z57q9x!u4v^%hO9;3fO0gIFz$};nnHhgeRSb5Q(~eWa&L7R=lfRR};<)*4mN1C3W_^ z{{8wsx8!v}LiNRLYety#!Tgsa_faCjd~o*1qp^poUHhx1iv@lu;%I+0X^=kL*Oa`idcxAHE-|ccFI>G{IEl7UYx55UX^GaGi^i`7x^{=>5%R7tjwjgW zJ~eT@OzO=q>K?z0D2Xz?>S%GN%lSb;El&o?iH*zaxt7niD(>$NTKlTvP^qZ#qr_AH E0?+)-CIA2c literal 0 HcmV?d00001 diff --git a/docs/Manual/assets/tool-plain.png b/docs/Manual/assets/tool-plain.png new file mode 100644 index 0000000000000000000000000000000000000000..74e52b4ffe01e674d25f6dbb13582cb4ddeea226 GIT binary patch literal 1062 zcmXX_eKcDK6uJDiL#>~9IKdOGNWq4I5Be4T92+P z)}dALCZp6ek=SOn<5?@CTdUfwDvsx4YNW-=4u`jA+r9U9f4_Urx%b?E?paAplr4=# z0{~l5v@n+93<@Py+o=4;RP%WN3$El)TqIQjFc=gl2NnZZEQ)}^q9g-hFc4tz7)SuZ z03HhvgheSfo6X^HyuH1-TrQ8t^YioL^Z7wRK>~pwBqSs>G&C$MjKxC{Dgsa*iUy!4 z%44Ac2u1%@VzC%SWiqOdDp47RDsdS`d=5|r&;W1)paZ}FphQtjh8h7L0z3j31(*U@ z0$2uk0k8tF2CxA@0^mxNz+{*b!!TTllb7$27(rkJN#aV9z;K+v31V=T9GoX{lE6uF z@Hsg)OO7m)W2+?be-EFTr!+wg&8(B==cJjWj96VJS1H~CIcsBG24JZZ3B%(~nHDb7 zj|`*C+c%;s#Ea*5H1W0U>aNiAcsE)XEmq5{5ci*4{DI8Re#R3;4kI;F@&ixm)8(G^ z-Q)A7nVfYy-~7H>m!DPLqqdoK#vo&c}A5Be<%ky2!H7+-oFG1-=}wd+ZUFJ#B0p z&)b>ceMj<(o;$z2xIv4h>aC7EQ=PjtHdi>2=_hobvpa6k8#LBcwY87Rzw8OtH(2Lo z@|)>-%Q5mRA9fmDB4W#t*2-GXjFx1Rp|gqJU(AwX*89>gHMcunjITraPB*6qwMXmx zA`nA>4Q5Qsu zhg(ceY>K1n_wtRO<^FZ;3}?ZLbhW+zlcnT+OGnNZ@vSKjD|Zd3sny5YfBgMqovY@e z=0w)@r6jwSyX?rBv<^qTD3G^ez1o2t%Rk%uPSX-`+V??$X7gjFyg&f zSLd3jvfr9ss^a@!j}M>nZMCUVlyrJrV%BD-L^w4vQ%!HDmZ;q{`?&P2Bgxk?K2kDQ zbM-Pk+9biw3Qm}#g!a}CmJWp;u$ywXs*LJRJAI~Q=(|6T&m=PB#R5ES_k$7kI$EEW zwKq&h_ZgfBiH$4zzB<3a-t2X(RmJ(5#&t+i2(r@qM6a$ol(Z)}_vY?+%a~OddoQeG z(oMw?CW4cGNH^kHxjXVrhr8S7UaT#Tq#gFCwaLg#`FLTvVs?+>v8h1UZGSuBLb1iN V>n_8f7ED|JE{cp1wnrqF{sV?$-`4;D literal 0 HcmV?d00001 diff --git a/docs/Manual/assets/toollist.png b/docs/Manual/assets/toollist.png new file mode 100644 index 0000000000000000000000000000000000000000..d1b671dd8a864d2b3aaf7987ad44a2ec696ab546 GIT binary patch literal 1022 zcmXYwdr(tH6vkIjM`+2kv>oAEEijishzT|%q!~hTiA2expcZH;Q=k}>XbiRpgS@On z;{(AIER<=n19-)h$CNQZQ&0p$!667FCM^uFh6uDIJW6@g6t-8}J^SrmxElhn#p|#*nol4ABoZMa00Kw|2_VS-83`eX zgpx=oK&T{?iIM;TR0N|Oq8(yNGKFym_$Owa3!wP!HOY>TOiaap#|6JEc#ifw?Q4W=pfWD z!m(LsT83k5&_dLpZrVm97NULH0p}OtJS3K7Z5gf+{z6c_H7p1KrwT!MSaj;Ry~2_1 z{_bl%2O7RG^X6(y9IG{}(v=hc)VwpbE}<~GTZm6X7&vO(GgvVd@p<`mT3gWQy!CSK zab}J-&53n}Z+|F|ZIwc%eOF5GPy6ApSBaS|zdZ05qqY{74(ztieru@O^`6Iiw?e8h z`)@S861Kel$loqBK2c&wTjwv_Bifa91j>UZYp69V9Ik9bCNdO1aSR3?m{_`SMC|L$ z5OSABldQ-5{QEPak^_dHKbYGlvvz)ZNL{iq*hFP{zK=6<#y*>@!rLU1+ev0Oq3MR* zy`v;?ul?&0QFx-$ZM>CS81G8&x$W&HHJ*0J)so_tCT)tUB|j&#Z+RNf;m`}9a< zgIbeatP->O6JFg{QWhA(EDP8!wVf!7jrS_d3_V||D%cd#KBPQN?~BYBGDj$=7ykBU z@XCyP=k%iwPsWAd{5Pvi>Dv_a1mVV4VklD3UrdY;tup$>wtt#MDV3V0qx)+M^v2lV za{lNR+$_)X4VBTJ`BrOx>^in#nNcUidB1ftP+>b+?@<#|9x%9hC$-2&o68S!TNAvz z%TY_;IbnN)OnLmlgP>N83*H^r{+E%BKl>!hv$tr@d7-P%gL3MdIA#=mMl&8&knMZv zWzU%z9%4`hD_ZXK`AF9?JTqMkDy8Ne&bW5*;`wRO9^RFG4J}EXQ@4DIdWR4`xpNCS z+3?ZFcO4Z6TX@a->biSTv9I6z+1MD9dr8jPG}XOx_3a(e=~MY8*GLxI&?>)1AHG%Z zK3>|M9~W{Ly>YfZt=@k!&$--XAlh>!M>gvBrBb7 -(c:/texlive/2018/texmf-dist/tex/latex/base/article.cls -Document Class: article 2018/09/03 v1.4i Standard LaTeX document class -(c:/texlive/2018/texmf-dist/tex/latex/base/size12.clo -File: size12.clo 2018/09/03 v1.4i Standard LaTeX file (size option) -) -\c@part=\count80 -\c@section=\count81 -\c@subsection=\count82 -\c@subsubsection=\count83 -\c@paragraph=\count84 -\c@subparagraph=\count85 -\c@figure=\count86 -\c@table=\count87 -\abovecaptionskip=\skip41 -\belowcaptionskip=\skip42 -\bibindent=\dimen102 -) -(c:/texlive/2018/texmf-dist/tex/latex/base/fontenc.sty -Package: fontenc 2018/08/11 v2.0j Standard LaTeX package - -(c:/texlive/2018/texmf-dist/tex/latex/base/t1enc.def -File: t1enc.def 2018/08/11 v2.0j Standard LaTeX file -LaTeX Font Info: Redeclaring font encoding T1 on input line 48. -)) -(c:/texlive/2018/texmf-dist/tex/latex/base/inputenc.sty -Package: inputenc 2018/08/11 v1.3c Input encoding file -\inpenc@prehook=\toks14 -\inpenc@posthook=\toks15 -) -(c:/texlive/2018/texmf-dist/tex/latex/roboto/roboto.sty -Package: roboto 2017/04/10 (Bob Tennent) Supports Roboto fonts for all LaTeX en -gines. - -(c:/texlive/2018/texmf-dist/tex/generic/ifxetex/ifxetex.sty -Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional -) -(c:/texlive/2018/texmf-dist/tex/generic/oberdiek/ifluatex.sty -Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO) -Package ifluatex Info: LuaTeX not detected. -) -(c:/texlive/2018/texmf-dist/tex/latex/xkeyval/xkeyval.sty -Package: xkeyval 2014/12/03 v2.7a package option processing (HA) - -(c:/texlive/2018/texmf-dist/tex/generic/xkeyval/xkeyval.tex -(c:/texlive/2018/texmf-dist/tex/generic/xkeyval/xkvutils.tex -\XKV@toks=\toks16 -\XKV@tempa@toks=\toks17 - -(c:/texlive/2018/texmf-dist/tex/generic/xkeyval/keyval.tex)) -\XKV@depth=\count88 -File: xkeyval.tex 2014/12/03 v2.7a key=value parser (HA) -)) -(c:/texlive/2018/texmf-dist/tex/latex/base/textcomp.sty -Package: textcomp 2018/08/11 v2.0j Standard LaTeX package -Package textcomp Info: Sub-encoding information: -(textcomp) 5 = only ISO-Adobe without \textcurrency -(textcomp) 4 = 5 + \texteuro -(textcomp) 3 = 4 + \textohm -(textcomp) 2 = 3 + \textestimated + \textcurrency -(textcomp) 1 = TS1 - \textcircled - \t -(textcomp) 0 = TS1 (full) -(textcomp) Font families with sub-encoding setting implement -(textcomp) only a restricted character set as indicated. -(textcomp) Family '?' is the default used for unknown fonts. -(textcomp) See the documentation for details. -Package textcomp Info: Setting ? sub-encoding to TS1/1 on input line 79. - -(c:/texlive/2018/texmf-dist/tex/latex/base/ts1enc.def -File: ts1enc.def 2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file -Now handling font encoding TS1 ... -... processing UTF-8 mapping file for font encoding TS1 - -(c:/texlive/2018/texmf-dist/tex/latex/base/ts1enc.dfu -File: ts1enc.dfu 2018/10/05 v1.2f UTF-8 support for inputenc - defining Unicode char U+00A2 (decimal 162) - defining Unicode char U+00A3 (decimal 163) - defining Unicode char U+00A4 (decimal 164) - defining Unicode char U+00A5 (decimal 165) - defining Unicode char U+00A6 (decimal 166) - defining Unicode char U+00A7 (decimal 167) - defining Unicode char U+00A8 (decimal 168) - defining Unicode char U+00A9 (decimal 169) - defining Unicode char U+00AA (decimal 170) - defining Unicode char U+00AC (decimal 172) - defining Unicode char U+00AE (decimal 174) - defining Unicode char U+00AF (decimal 175) - defining Unicode char U+00B0 (decimal 176) - defining Unicode char U+00B1 (decimal 177) - defining Unicode char U+00B2 (decimal 178) - defining Unicode char U+00B3 (decimal 179) - defining Unicode char U+00B4 (decimal 180) - defining Unicode char U+00B5 (decimal 181) - defining Unicode char U+00B6 (decimal 182) - defining Unicode char U+00B7 (decimal 183) - defining Unicode char U+00B9 (decimal 185) - defining Unicode char U+00BA (decimal 186) - defining Unicode char U+00BC (decimal 188) - defining Unicode char U+00BD (decimal 189) - defining Unicode char U+00BE (decimal 190) - defining Unicode char U+00D7 (decimal 215) - defining Unicode char U+00F7 (decimal 247) - defining Unicode char U+0192 (decimal 402) - defining Unicode char U+02C7 (decimal 711) - defining Unicode char U+02D8 (decimal 728) - defining Unicode char U+02DD (decimal 733) - defining Unicode char U+0E3F (decimal 3647) - defining Unicode char U+2016 (decimal 8214) - defining Unicode char U+2020 (decimal 8224) - defining Unicode char U+2021 (decimal 8225) - defining Unicode char U+2022 (decimal 8226) - defining Unicode char U+2030 (decimal 8240) - defining Unicode char U+2031 (decimal 8241) - defining Unicode char U+203B (decimal 8251) - defining Unicode char U+203D (decimal 8253) - defining Unicode char U+2044 (decimal 8260) - defining Unicode char U+204E (decimal 8270) - defining Unicode char U+2052 (decimal 8274) - defining Unicode char U+20A1 (decimal 8353) - defining Unicode char U+20A4 (decimal 8356) - defining Unicode char U+20A6 (decimal 8358) - defining Unicode char U+20A9 (decimal 8361) - defining Unicode char U+20AB (decimal 8363) - defining Unicode char U+20AC (decimal 8364) - defining Unicode char U+20B1 (decimal 8369) - defining Unicode char U+2103 (decimal 8451) - defining Unicode char U+2116 (decimal 8470) - defining Unicode char U+2117 (decimal 8471) - defining Unicode char U+211E (decimal 8478) - defining Unicode char U+2120 (decimal 8480) - defining Unicode char U+2122 (decimal 8482) - defining Unicode char U+2126 (decimal 8486) - defining Unicode char U+2127 (decimal 8487) - defining Unicode char U+212E (decimal 8494) - defining Unicode char U+2190 (decimal 8592) - defining Unicode char U+2191 (decimal 8593) - defining Unicode char U+2192 (decimal 8594) - defining Unicode char U+2193 (decimal 8595) - defining Unicode char U+2329 (decimal 9001) - defining Unicode char U+232A (decimal 9002) - defining Unicode char U+2422 (decimal 9250) - defining Unicode char U+25E6 (decimal 9702) - defining Unicode char U+25EF (decimal 9711) - defining Unicode char U+266A (decimal 9834) - defining Unicode char U+FEFF (decimal 65279) -)) -LaTeX Info: Redefining \oldstylenums on input line 334. -Package textcomp Info: Setting cmr sub-encoding to TS1/0 on input line 349. -Package textcomp Info: Setting cmss sub-encoding to TS1/0 on input line 350. -Package textcomp Info: Setting cmtt sub-encoding to TS1/0 on input line 351. -Package textcomp Info: Setting cmvtt sub-encoding to TS1/0 on input line 352. -Package textcomp Info: Setting cmbr sub-encoding to TS1/0 on input line 353. -Package textcomp Info: Setting cmtl sub-encoding to TS1/0 on input line 354. -Package textcomp Info: Setting ccr sub-encoding to TS1/0 on input line 355. -Package textcomp Info: Setting ptm sub-encoding to TS1/4 on input line 356. -Package textcomp Info: Setting pcr sub-encoding to TS1/4 on input line 357. -Package textcomp Info: Setting phv sub-encoding to TS1/4 on input line 358. -Package textcomp Info: Setting ppl sub-encoding to TS1/3 on input line 359. -Package textcomp Info: Setting pag sub-encoding to TS1/4 on input line 360. -Package textcomp Info: Setting pbk sub-encoding to TS1/4 on input line 361. -Package textcomp Info: Setting pnc sub-encoding to TS1/4 on input line 362. -Package textcomp Info: Setting pzc sub-encoding to TS1/4 on input line 363. -Package textcomp Info: Setting bch sub-encoding to TS1/4 on input line 364. -Package textcomp Info: Setting put sub-encoding to TS1/5 on input line 365. -Package textcomp Info: Setting uag sub-encoding to TS1/5 on input line 366. -Package textcomp Info: Setting ugq sub-encoding to TS1/5 on input line 367. -Package textcomp Info: Setting ul8 sub-encoding to TS1/4 on input line 368. -Package textcomp Info: Setting ul9 sub-encoding to TS1/4 on input line 369. -Package textcomp Info: Setting augie sub-encoding to TS1/5 on input line 370. -Package textcomp Info: Setting dayrom sub-encoding to TS1/3 on input line 371. -Package textcomp Info: Setting dayroms sub-encoding to TS1/3 on input line 372. - -Package textcomp Info: Setting pxr sub-encoding to TS1/0 on input line 373. -Package textcomp Info: Setting pxss sub-encoding to TS1/0 on input line 374. -Package textcomp Info: Setting pxtt sub-encoding to TS1/0 on input line 375. -Package textcomp Info: Setting txr sub-encoding to TS1/0 on input line 376. -Package textcomp Info: Setting txss sub-encoding to TS1/0 on input line 377. -Package textcomp Info: Setting txtt sub-encoding to TS1/0 on input line 378. -Package textcomp Info: Setting lmr sub-encoding to TS1/0 on input line 379. -Package textcomp Info: Setting lmdh sub-encoding to TS1/0 on input line 380. -Package textcomp Info: Setting lmss sub-encoding to TS1/0 on input line 381. -Package textcomp Info: Setting lmssq sub-encoding to TS1/0 on input line 382. -Package textcomp Info: Setting lmvtt sub-encoding to TS1/0 on input line 383. -Package textcomp Info: Setting lmtt sub-encoding to TS1/0 on input line 384. -Package textcomp Info: Setting qhv sub-encoding to TS1/0 on input line 385. -Package textcomp Info: Setting qag sub-encoding to TS1/0 on input line 386. -Package textcomp Info: Setting qbk sub-encoding to TS1/0 on input line 387. -Package textcomp Info: Setting qcr sub-encoding to TS1/0 on input line 388. -Package textcomp Info: Setting qcs sub-encoding to TS1/0 on input line 389. -Package textcomp Info: Setting qpl sub-encoding to TS1/0 on input line 390. -Package textcomp Info: Setting qtm sub-encoding to TS1/0 on input line 391. -Package textcomp Info: Setting qzc sub-encoding to TS1/0 on input line 392. -Package textcomp Info: Setting qhvc sub-encoding to TS1/0 on input line 393. -Package textcomp Info: Setting futs sub-encoding to TS1/4 on input line 394. -Package textcomp Info: Setting futx sub-encoding to TS1/4 on input line 395. -Package textcomp Info: Setting futj sub-encoding to TS1/4 on input line 396. -Package textcomp Info: Setting hlh sub-encoding to TS1/3 on input line 397. -Package textcomp Info: Setting hls sub-encoding to TS1/3 on input line 398. -Package textcomp Info: Setting hlst sub-encoding to TS1/3 on input line 399. -Package textcomp Info: Setting hlct sub-encoding to TS1/5 on input line 400. -Package textcomp Info: Setting hlx sub-encoding to TS1/5 on input line 401. -Package textcomp Info: Setting hlce sub-encoding to TS1/5 on input line 402. -Package textcomp Info: Setting hlcn sub-encoding to TS1/5 on input line 403. -Package textcomp Info: Setting hlcw sub-encoding to TS1/5 on input line 404. -Package textcomp Info: Setting hlcf sub-encoding to TS1/5 on input line 405. -Package textcomp Info: Setting pplx sub-encoding to TS1/3 on input line 406. -Package textcomp Info: Setting pplj sub-encoding to TS1/3 on input line 407. -Package textcomp Info: Setting ptmx sub-encoding to TS1/4 on input line 408. -Package textcomp Info: Setting ptmj sub-encoding to TS1/4 on input line 409. -) -(c:/texlive/2018/texmf-dist/tex/latex/base/fontenc.sty -Package: fontenc 2018/08/11 v2.0j Standard LaTeX package -) -(c:/texlive/2018/texmf-dist/tex/latex/fontaxes/fontaxes.sty -Package: fontaxes 2014/03/23 v1.0d Font selection axes -LaTeX Info: Redefining \upshape on input line 29. -LaTeX Info: Redefining \itshape on input line 31. -LaTeX Info: Redefining \slshape on input line 33. -LaTeX Info: Redefining \scshape on input line 37. -) -(c:/texlive/2018/texmf-dist/tex/latex/mweights/mweights.sty -Package: mweights 2017/03/30 (Bob Tennent) Support package for multiple-weight -font packages. -LaTeX Info: Redefining \bfseries on input line 22. -LaTeX Info: Redefining \mdseries on input line 30. -LaTeX Info: Redefining \rmfamily on input line 38. -LaTeX Info: Redefining \sffamily on input line 66. -LaTeX Info: Redefining \ttfamily on input line 94. -) -LaTeX Info: Redefining \oldstylenums on input line 189. -) -(c:/texlive/2018/texmf-dist/tex/latex/parskip/parskip.sty -Package: parskip 2018-08-24 v2.0a non-zero parskip adjustments - -(c:/texlive/2018/texmf-dist/tex/latex/oberdiek/kvoptions.sty -Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO) - -(c:/texlive/2018/texmf-dist/tex/generic/oberdiek/ltxcmds.sty -Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO) -) -(c:/texlive/2018/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty -Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO) - -(c:/texlive/2018/texmf-dist/tex/generic/oberdiek/infwarerr.sty -Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO) -) -(c:/texlive/2018/texmf-dist/tex/generic/oberdiek/etexcmds.sty -Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO) -Package etexcmds Info: Could not find \expanded. -(etexcmds) That can mean that you are not using pdfTeX 1.50 or -(etexcmds) that some package has redefined \expanded. -(etexcmds) In the latter case, load this package earlier. -))) -(c:/texlive/2018/texmf-dist/tex/latex/etoolbox/etoolbox.sty -Package: etoolbox 2018/08/19 v2.5f e-TeX tools for LaTeX (JAW) -\etb@tempcnta=\count89 -)) -(c:/texlive/2018/texmf-dist/tex/generic/babel/babel.sty -Package: babel 2018/11/13 3.27 The Babel package - -(c:/texlive/2018/texmf-dist/tex/generic/babel/switch.def -File: switch.def 2018/11/13 3.27 Babel switching mechanism -) -(c:/texlive/2018/texmf-dist/tex/generic/babel-english/english.ldf -Language: english 2017/06/06 v3.3r English support from the babel system - -(c:/texlive/2018/texmf-dist/tex/generic/babel/babel.def -File: babel.def 2018/11/13 3.27 Babel common definitions -\babel@savecnt=\count90 -\U@D=\dimen103 - -(c:/texlive/2018/texmf-dist/tex/generic/babel/txtbabel.def) -\bbl@dirlevel=\count91 -) -\l@canadian = a dialect from \language\l@american -\l@australian = a dialect from \language\l@british -\l@newzealand = a dialect from \language\l@british -)) -(c:/texlive/2018/texmf-dist/tex/latex/a4wide/a4wide.sty -Package: a4wide 1994/08/30 - -(c:/texlive/2018/texmf-dist/tex/latex/ntgclass/a4.sty -Package: a4 2004/04/15 v1.2g A4 based page layout -)) -(c:/texlive/2018/texmf-dist/tex/latex/graphics/graphicx.sty -Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR) - -(c:/texlive/2018/texmf-dist/tex/latex/graphics/graphics.sty -Package: graphics 2017/06/25 v1.2c Standard LaTeX Graphics (DPC,SPQR) - -(c:/texlive/2018/texmf-dist/tex/latex/graphics/trig.sty -Package: trig 2016/01/03 v1.10 sin cos tan (DPC) -) -(c:/texlive/2018/texmf-dist/tex/latex/graphics-cfg/graphics.cfg -File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration -) -Package graphics Info: Driver file: pdftex.def on input line 99. - -(c:/texlive/2018/texmf-dist/tex/latex/graphics-def/pdftex.def -File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex -)) -\Gin@req@height=\dimen104 -\Gin@req@width=\dimen105 -) -(c:/texlive/2018/texmf-dist/tex/latex/svg/svg.sty -Package: svg 2018/11/12 v2.02b (include SVG pictures) - -(c:/texlive/2018/texmf-dist/tex/latex/koma-script/scrbase.sty -Package: scrbase 2018/03/30 v3.25 KOMA-Script package (KOMA-Script-independent -basics and keyval usage) - -(c:/texlive/2018/texmf-dist/tex/latex/koma-script/scrlfile.sty -Package: scrlfile 2018/03/30 v3.25 KOMA-Script package (loading files) -)) -(c:/texlive/2018/texmf-dist/tex/generic/oberdiek/ifpdf.sty -Package: ifpdf 2018/09/07 v3.3 Provides the ifpdf switch -) -(c:/texlive/2018/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty -Package: pdftexcmds 2018/09/10 v0.29 Utility functions of pdfTeX for LuaTeX (HO -) -Package pdftexcmds Info: LuaTeX not detected. -Package pdftexcmds Info: \pdf@primitive is available. -Package pdftexcmds Info: \pdf@ifprimitive is available. -Package pdftexcmds Info: \pdfdraftmode found. -) -(c:/texlive/2018/texmf-dist/tex/latex/tools/shellesc.sty -Package: shellesc 2016/06/07 v0.02a unified shell escape interface for LaTeX -Package shellesc Info: Restricted shell escape enabled on input line 69. -) -(c:/texlive/2018/texmf-dist/tex/latex/trimspaces/trimspaces.sty -Package: trimspaces 2009/09/17 v1.1 Trim spaces around a token list -) -\svg@box=\box27 -\c@svg@param@lastpage=\count92 -\c@svg@param@currpage=\count93 -) -(c:/texlive/2018/texmf-dist/tex/latex/xcolor/xcolor.sty -Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK) - -(c:/texlive/2018/texmf-dist/tex/latex/graphics-cfg/color.cfg -File: color.cfg 2016/01/02 v1.6 sample color configuration -) -Package xcolor Info: Driver file: pdftex.def on input line 225. -Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348. -Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352. -Package xcolor Info: Model `RGB' extended on input line 1364. -Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366. -Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367. -Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368. -Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369. -Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370. -Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371. -) -(c:/texlive/2018/texmf-dist/tex/latex/oberdiek/transparent.sty -Package: transparent 2018/11/18 v1.3 Transparency via pdfTeX's color stack (HO) - - -(c:/texlive/2018/texmf-dist/tex/latex/oberdiek/auxhook.sty -Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO) -)) (./manual.aux) -\openout1 = `manual.aux'. - -LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 16. -LaTeX Font Info: ... okay on input line 16. -LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 16. -LaTeX Font Info: ... okay on input line 16. -LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 16. -LaTeX Font Info: ... okay on input line 16. -LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 16. -LaTeX Font Info: ... okay on input line 16. -LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 16. -LaTeX Font Info: ... okay on input line 16. -LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 16. -LaTeX Font Info: ... okay on input line 16. -LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 16. -LaTeX Font Info: Try loading font information for TS1+cmr on input line 16. - -(c:/texlive/2018/texmf-dist/tex/latex/base/ts1cmr.fd -File: ts1cmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions -) -LaTeX Font Info: ... okay on input line 16. -\c@mv@tabular=\count94 -\c@mv@boldtabular=\count95 - -(c:/texlive/2018/texmf-dist/tex/context/base/mkii/supp-pdf.mkii -[Loading MPS to PDF converter (version 2006.09.02).] -\scratchcounter=\count96 -\scratchdimen=\dimen106 -\scratchbox=\box28 -\nofMPsegments=\count97 -\nofMParguments=\count98 -\everyMPshowfont=\toks18 -\MPscratchCnt=\count99 -\MPscratchDim=\dimen107 -\MPnumerator=\count100 -\makeMPintoPDFobject=\count101 -\everyMPtoPDFconversion=\toks19 -) (c:/texlive/2018/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty -Package: epstopdf-base 2016/05/15 v2.6 Base part for package epstopdf - -(c:/texlive/2018/texmf-dist/tex/latex/oberdiek/grfext.sty -Package: grfext 2016/05/16 v1.2 Manage graphics extensions (HO) - -(c:/texlive/2018/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty -Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO) -)) -Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 -38. -Package grfext Info: Graphics extension search list: -(grfext) [.pdf,.png,.jpg,.mps,.jpeg,.jbig2,.jb2,.PDF,.PNG,.JPG,.JPE -G,.JBIG2,.JB2,.eps] -(grfext) \AppendGraphicsExtensions on input line 456. - -(c:/texlive/2018/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg -File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv -e -)) -LaTeX Font Info: External font `cmex10' loaded for size -(Font) <14.4> on input line 18. -LaTeX Font Info: External font `cmex10' loaded for size -(Font) <7> on input line 18. - -File: assets/icon.png Graphic file (type png) - -Package pdftex.def Info: assets/icon.png used on input line 21. -(pdftex.def) Requested size: 207.32315pt x 207.32288pt. - -(./manual.toc -LaTeX Font Info: External font `cmex10' loaded for size -(Font) <12> on input line 4. -LaTeX Font Info: External font `cmex10' loaded for size -(Font) <8> on input line 4. -LaTeX Font Info: External font `cmex10' loaded for size -(Font) <6> on input line 4. -) -\tf@toc=\write3 -\openout3 = `manual.toc'. - - [1 - -{c:/texlive/2018/texmf-var/fonts/map/pdftex/updmap/pdftex.map} <./assets/icon.p -ng>] - -File: assets/startup.png Graphic file (type png) - -Package pdftex.def Info: assets/startup.png used on input line 40. -(pdftex.def) Requested size: 230.36061pt x 269.06033pt. - [1 <./assets/startup.png>] - -File: assets/file-open.png Graphic file (type png) - -Package pdftex.def Info: assets/file-open.png used on input line 47. -(pdftex.def) Requested size: 138.21777pt x 93.00453pt. - -File: assets/file-save.png Graphic file (type png) - -Package pdftex.def Info: assets/file-save.png used on input line 55. -(pdftex.def) Requested size: 138.21777pt x 95.17917pt. - [2 <./assets/file-open.png> <./assets/file-save.png>] - -File: assets/file-options.png Graphic file (type png) - -Package pdftex.def Info: assets/file-options.png used on input line 67. -(pdftex.def) Requested size: 138.21777pt x 66.47704pt. - -File: assets/fill-layer.png Graphic file (type png) - -Package pdftex.def Info: assets/fill-layer.png used on input line 79. -(pdftex.def) Requested size: 138.21777pt x 138.22112pt. - -File: assets/moving-layers.png Graphic file (type png) - -Package pdftex.def Info: assets/moving-layers.png used on input line 86. -(pdftex.def) Requested size: 138.21777pt x 156.60057pt. - [3 <./assets/file-options.png> <./assets/fill-layer.png>] - -File: assets/layer-alpha.png Graphic file (type png) - -Package pdftex.def Info: assets/layer-alpha.png used on input line 93. -(pdftex.def) Requested size: 138.21777pt x 61.81462pt. - [4 <./assets/moving-layers.png> <./assets/layer-alpha.png>] (./manual.aux) ) -Here is how much of TeX's memory you used: - 4758 strings out of 492616 - 70540 string characters out of 6132767 - 168952 words of memory out of 5000000 - 8550 multiletter control sequences out of 15000+600000 - 13026 words of font info for 34 fonts, out of 8000000 for 9000 - 1141 hyphenation exceptions out of 8191 - 41i,6n,58p,820b,229s stack positions out of 5000i,500n,10000p,200000b,80000s -{c -:/texlive/2018/texmf-dist/fonts/enc/dvips/cm-super/cm-super-t1.enc}{c:/texlive/ -2018/texmf-dist/fonts/enc/dvips/cm-super/cm-super-ts1.enc} -Output written on manual.pdf (5 pages, 202802 bytes). -PDF statistics: - 65 PDF objects out of 1000 (max. 8388607) - 35 compressed objects within 1 object stream - 0 named destinations out of 1000 (max. 500000) - 41 words of extra memory for PDF output out of 10000 (max. 10000000) - diff --git a/docs/Manual/manual.pdf b/docs/Manual/manual.pdf index ee4cebc1059e273c8296f3f82c2fcf8b263ff03f..cb459e36d37f2167634447bc6dfc23dddc58df72 100644 GIT binary patch delta 135266 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­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

    3I2-9ZQ9b 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 KLP-)F;lBVNt)0aH diff --git a/docs/Manual/manual.synctex.gz b/docs/Manual/manual.synctex.gz deleted file mode 100644 index 9755c2d4d9a07442f5bb5b2142715f5468dcf433..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21329 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 select Active...}. -\subsection{Setting width and color of the pen} -To edit width and color of the drawing tool, click on "Options" in the top menu bar then select either "Pen Color..." or "Pen Width..." depending on which parameter you want to edit. +\subsection{Setting the main and secondary color} +The main and secondary color are a concept used by all the drawing tools. You select them independendly of other tool parameters under \texttt{Tools > Color}. \begin{center} -\includegraphics[width=0.3\linewidth,keepaspectratio]{assets/file-options} +\includegraphics[width=0.3\linewidth,keepaspectratio]{assets/change-colors} \end{center} -In the appearing popup you can select a new value for the parameter. +The appearing popup will allow you to specify a new color. + +\subsection{Switching main and secondary color} +An often desired use case is to switch the main and secondary color. So that you don't have to this manually, which would be time consuming there is an easy command to do it under \texttt{Tools > Color}. +It is also bound to the keyboard shortcut \texttt{Ctrl+Shift+S}. \subsection{Drawing with the pen tool} -To edit the active layer with the pen tool simply click and hold the left mouse button while hovering the layer on the canvas. When you click within the boundaries of the active layer, the pixels in the radius you selected will change their color to the color which you selected under the section above. +To activate the pen tool simply select it under \texttt{Tools > Pen}. You will be prompted to input the pen width, just put in the width you desire. +\begin{center} +\includegraphics[width=0.2\linewidth,keepaspectratio]{assets/tool-pen} +\end{center} +To edit the active layer with the pen tool simply click and hold the left mouse button while hovering the layer on the canvas. When you click within the boundaries of the active layer, the pixels in the radius you selected will change their color to the main color which you selected under the section above. \subsection{Fill the active layer in one color} -To fill the whole layer with one specific color, you first specify the color on the right side of the picture. +To fill the whole layer with the main color, you first specify the color on the right side of the picture. -Afterwards you click on the "set Color" button above the color specification fields. \begin{center} -\includegraphics[width=0.3\linewidth,keepaspectratio]{assets/fill-layer} +\includegraphics[width=0.3\linewidth,keepaspectratio]{assets/tool-plain} \end{center} \subsection{Moving layers} -The layers are flexible and can be moved to a different position on the canvas, their order can be changed at will. For this you can use the buttons on the bottom of the right side panel. Keep in mind that the changes always only effect the active layer you have chosen in the section "Setting the active layer". +The layers are flexible and can be moved to a different position on the canvas, their order can be changed at will. For this you can use the movement options under \texttt{Layer}. Keep in mind that the changes always only effect the active layer you have chosen in the section "Setting the active layer". \begin{center} -\includegraphics[width=0.3\linewidth,keepaspectratio]{assets/moving-layers} +\includegraphics[width=0.3\linewidth,keepaspectratio]{assets/layer-options} \end{center} +\subsection{Creating and deleting layers} +Raster Layers can be created at will under \texttt{Layer > New Layer...} You will be prompted to input the width and height of the new layer. Afterwards it will be created. +\begin{center} +\includegraphics[width=0.3\linewidth,keepaspectratio]{assets/create-layer} +\end{center} +To delete the active layer you have to click on \texttt{Delete Layer} in the same submenu. + \subsection{Transparency and layers} -Layers can also be made more or less transparent by entering a value under "Alpha:" on the right side of the canvas. Values between 0 and 255 are valid. There is currently no error handling and this can lead to memory leaks, so be careful. This also only effects the active layer. +Layers can also be made more or less transparent under \texttt{Layer > set Alpha}. Values between 0 and 255 are valid. There is currently no error handling and this can lead to memory leaks, so be careful. This also only effects the active layer. +\subsection{Closing the program} +To close the program you have to execute the exit program routine, which heavily depends on your operating system. Usually you can find a red cross symbol at the top right, though it may be different depending on your setup. +For Windows 10, the desired symbol looks like this when hovered: \begin{center} -\includegraphics[width=0.3\linewidth,keepaspectratio]{assets/layer-alpha} +\includegraphics[width=0.9\linewidth,keepaspectratio]{assets/close-window} \end{center} +Alternatively you can press \texttt{CTR+Q}. \section{Next steps} The following features are currently high priority and will be implimented in the near future: \begin{itemize} -\item Implementing a reusable, modular tool structure that makes it easy to implement future tools and make them compatible with other features such as the UI +\item Refactoring the code, improving readability, structure and the dev documentation +\item Improving the UI and integrating all the tools in it \end{itemize} \end{document} \ No newline at end of file diff --git a/docs/Manual/manual.toc b/docs/Manual/manual.toc deleted file mode 100644 index 4bef9e3..0000000 --- a/docs/Manual/manual.toc +++ /dev/null @@ -1,12 +0,0 @@ -\babel@toc {english}{} -\contentsline {section}{\numberline {1}Introduction}{1}% -\contentsline {section}{\numberline {2}User Guide}{1}% -\contentsline {subsection}{\numberline {2.1}Loading images}{2}% -\contentsline {subsection}{\numberline {2.2}Saving images}{2}% -\contentsline {subsection}{\numberline {2.3}Setting the active layer}{2}% -\contentsline {subsection}{\numberline {2.4}Setting width and color of the pen}{2}% -\contentsline {subsection}{\numberline {2.5}Drawing with the pen tool}{3}% -\contentsline {subsection}{\numberline {2.6}Fill the active layer in one color}{3}% -\contentsline {subsection}{\numberline {2.7}Moving layers}{3}% -\contentsline {subsection}{\numberline {2.8}Transparency and layers}{4}% -\contentsline {section}{\numberline {3}Next steps}{4}% From 92760ede42346a2adbf57d9fcda666ec5f463731 Mon Sep 17 00:00:00 2001 From: Paul Norberger Date: Thu, 19 Dec 2019 14:33:15 +0100 Subject: [PATCH 49/62] Better introduction as well as line tool docs --- docs/Manual/manual.pdf | Bin 244030 -> 244377 bytes docs/Manual/manual.tex | 16 ++++++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/docs/Manual/manual.pdf b/docs/Manual/manual.pdf index cb459e36d37f2167634447bc6dfc23dddc58df72..537d49bc4f84ae3da57c7512fd00569436df4bf1 100644 GIT binary patch delta 8432 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 diff --git a/docs/Manual/manual.tex b/docs/Manual/manual.tex index 6558054..75b0767 100644 --- a/docs/Manual/manual.tex +++ b/docs/Manual/manual.tex @@ -28,16 +28,14 @@ Currently the following features are implemented, which will be described in fur \begin{itemize} \item A barebones user interface \item Loading and Saving images from and to standardized formats (such as .png, .bmp or .jpg) -\item Drawing with a pen tool with adjustable width and color -\item A layer structure, that allows for moving layers and changing the order of them as well as multiple layer types: -\item Shaped Layers, described with a polygon that allow for transparency -\item Raster Layers, that fill the whole canvas and do not use transparecy. +\item Drawing with a pen with adjustable width and color, clearing the whole canvas with one color and drawing lines, rectangles, circles and polygons as well as flood filling adjacent pixels +\item A layer structure, that allows for creating, deleting, moving and changing the order of layers \end{itemize} \section{User Guide} After startup the following window opens: \begin{center} -\includegraphics[width=0.5\linewidth,keepaspectratio]{assets/startup} +\includegraphics[width=0.55\linewidth,keepaspectratio]{assets/startup} \end{center} \subsection{Loading images} @@ -77,6 +75,12 @@ To activate the pen tool simply select it under \texttt{Tools > Pen}. You will b \end{center} To edit the active layer with the pen tool simply click and hold the left mouse button while hovering the layer on the canvas. When you click within the boundaries of the active layer, the pixels in the radius you selected will change their color to the main color which you selected under the section above. +\subsection{Drawing straight lines} +To activate the line tool select it under \texttt{Tools > Line}. You will be prompted to input the line width. +To draw a line you now have to left click on the starting point on the canvas, hold it pressed and move to the end point and release the mouse button. + +You can cancel this operation at any time by clicking the right mouse button while holding the left and then releasing both. + \subsection{Fill the active layer in one color} To fill the whole layer with the main color, you first specify the color on the right side of the picture. @@ -96,7 +100,7 @@ Raster Layers can be created at will under \texttt{Layer > New Layer...} You wil \begin{center} \includegraphics[width=0.3\linewidth,keepaspectratio]{assets/create-layer} \end{center} -To delete the active layer you have to click on \texttt{Delete Layer} in the same submenu. +To delete the active layer you have to click on \texttt{Delete Layer...} in the same submenu. \subsection{Transparency and layers} Layers can also be made more or less transparent under \texttt{Layer > set Alpha}. Values between 0 and 255 are valid. There is currently no error handling and this can lead to memory leaks, so be careful. This also only effects the active layer. From 9bc45dedfdf33230583ef80649659cdf92851128 Mon Sep 17 00:00:00 2001 From: Sonaion Date: Thu, 19 Dec 2019 14:33:28 +0100 Subject: [PATCH 50/62] gui changes for tool anwendung --- src/GUI/IntelliPhotoGui.cpp | 36 ++++++++++++++++++++++++++++++++++-- src/GUI/IntelliPhotoGui.h | 8 ++++++++ src/Layer/PaintingArea.cpp | 21 ++++++++++++++++++++- src/Layer/PaintingArea.h | 4 ++++ 4 files changed, 66 insertions(+), 3 deletions(-) diff --git a/src/GUI/IntelliPhotoGui.cpp b/src/GUI/IntelliPhotoGui.cpp index 0c9a620..25eecb3 100644 --- a/src/GUI/IntelliPhotoGui.cpp +++ b/src/GUI/IntelliPhotoGui.cpp @@ -195,7 +195,7 @@ void IntelliPhotoGui::slotSetActiveLayer(){ if (ok1) { paintingArea->setLayerToActive(layer); - } + } } void IntelliPhotoGui::slotSetFirstColor(){ @@ -203,7 +203,7 @@ void IntelliPhotoGui::slotSetFirstColor(){ } void IntelliPhotoGui::slotSetSecondColor(){ - paintingArea->colorPickerSetSecondColor(); + paintingArea->colorPickerSetSecondColor(); } void IntelliPhotoGui::slotSwitchColor(){ @@ -222,6 +222,22 @@ void IntelliPhotoGui::slotCreateLineTool(){ paintingArea->createLineTool(); } +void IntelliPhotoGui::slotCreateRectangleTool(){ + paintingArea->createRectangleTool(); +} + +void IntelliPhotoGui::slotCreateCircleTool(){ + paintingArea->createCircleTool(); +} + +void IntelliPhotoGui::slotCreatePolygonTool(){ + paintingArea->createPolygonTool(); +} + +void IntelliPhotoGui::slotCreateFloodFillTool(){ + paintingArea->createFloodFillTool(); +} + // Open an about dialog void IntelliPhotoGui::slotAboutDialog(){ // Window title and text to display @@ -326,6 +342,18 @@ void IntelliPhotoGui::createActions(){ actionCreateLineTool = new QAction(tr("&Line"), this); connect(actionCreateLineTool, SIGNAL(triggered()), this, SLOT(slotCreateLineTool())); + actionCreateCircleTool = new QAction(tr("&Circle"), this); + connect(actionCreateCircleTool, SIGNAL(triggered()), this, SLOT(slotCreateCircleTool())); + + actionCreateRectangleTool = new QAction(tr("&Rectangle"), this); + connect(actionCreateRectangleTool, SIGNAL(triggered()), this, SLOT(slotCreateRectangleTool())); + + actionCreatePolygonTool = new QAction(tr("&Polygon"), this); + connect(actionCreatePolygonTool, SIGNAL(triggered()), this, SLOT(slotCreatePolygonTool())); + + actionCreateFloodFillTool = new QAction(tr("&FloodFill"), this); + connect(actionCreateFloodFillTool, SIGNAL(triggered()), this, SLOT(slotCreateFloodFillTool())); + // Create about action and tie to IntelliPhotoGui::about() actionAboutDialog = new QAction(tr("&About"), this); connect(actionAboutDialog, SIGNAL(triggered()), this, SLOT(slotAboutDialog())); @@ -377,6 +405,10 @@ void IntelliPhotoGui::createMenus(){ toolMenu->addAction(actionCreatePenTool); toolMenu->addAction(actionCreatePlainTool); toolMenu->addAction(actionCreateLineTool); + toolMenu->addAction(actionCreateRectangleTool); + toolMenu->addAction(actionCreateCircleTool); + toolMenu->addAction(actionCreatePolygonTool); + toolMenu->addAction(actionCreateFloodFillTool); toolMenu->addSeparator(); toolMenu->addMenu(colorMenu); diff --git a/src/GUI/IntelliPhotoGui.h b/src/GUI/IntelliPhotoGui.h index 1b45375..787978c 100644 --- a/src/GUI/IntelliPhotoGui.h +++ b/src/GUI/IntelliPhotoGui.h @@ -55,6 +55,10 @@ private slots: void slotCreatePenTool(); void slotCreatePlainTool(); void slotCreateLineTool(); + void slotCreateRectangleTool(); + void slotCreateCircleTool(); + void slotCreatePolygonTool(); + void slotCreateFloodFillTool(); // slots for dialogs void slotAboutDialog(); @@ -99,6 +103,10 @@ private: QAction *actionCreatePenTool; QAction *actionCreatePlainTool; QAction *actionCreateLineTool; + QAction *actionCreateRectangleTool; + QAction *actionCreateCircleTool; + QAction *actionCreatePolygonTool; + QAction *actionCreateFloodFillTool; // dialog actions QAction *actionAboutDialog; diff --git a/src/Layer/PaintingArea.cpp b/src/Layer/PaintingArea.cpp index c835b24..2a0337d 100644 --- a/src/Layer/PaintingArea.cpp +++ b/src/Layer/PaintingArea.cpp @@ -20,7 +20,7 @@ PaintingArea::PaintingArea(int maxWidth, int maxHeight, QWidget *parent) :QWidget(parent){ - this->Tool = new IntelliToolPolygon(this, &colorPicker); + this->Tool = nullptr; this->setUp(maxWidth, maxHeight); this->addLayer(200,200,0,0,ImageType::Shaped_Image); layerBundle[0].image->drawPlain(QColor(0,0,255,255)); @@ -192,6 +192,25 @@ void PaintingArea::createLineTool(){ Tool = new IntelliToolLine(this, &colorPicker); } +void PaintingArea::createRectangleTool(){ + delete this->Tool; + Tool = new IntelliToolRectangle(this, &colorPicker); +} + +void PaintingArea::createCircleTool(){ + delete this->Tool; + Tool = new IntelliToolCircle(this, &colorPicker); +} +void PaintingArea::createPolygonTool(){ + delete this->Tool; + Tool = new IntelliToolPolygon(this, &colorPicker); +} + +void PaintingArea::createFloodFillTool(){ + delete this->Tool; + Tool = new IntelliToolFloodFill(this, &colorPicker); +} + int PaintingArea::getWidthOfActive(){ return this->layerBundle[activeLayer].width; } diff --git a/src/Layer/PaintingArea.h b/src/Layer/PaintingArea.h index 07b43a0..70d2b6e 100644 --- a/src/Layer/PaintingArea.h +++ b/src/Layer/PaintingArea.h @@ -55,6 +55,10 @@ public: void createPenTool(); void createPlainTool(); void createLineTool(); + void createRectangleTool(); + void createCircleTool(); + void createPolygonTool(); + void createFloodFillTool(); int getWidthOfActive(); int getHeightOfActive(); From bf47934bbeafb4669266297c290630e1f460ca9e Mon Sep 17 00:00:00 2001 From: Paul Norberger Date: Thu, 19 Dec 2019 13:36:21 +0000 Subject: [PATCH 51/62] Fixed an ugly typo in the readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e919052..6968d42 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ For the user manual see `docs/manual.pdf` - `Examples` - Temporary folder for example pictures - `Abgabe` - Files that were submitted prior to the development start -## Pesentations +## Presentations - since `0.3`: https://prezi.com/view/M593VBJhmfwQzuqt3t6f/ From a2f2e38a06a02600602ebf18941ca55884fe9d31 Mon Sep 17 00:00:00 2001 From: Conrad Date: Thu, 19 Dec 2019 17:30:19 +0100 Subject: [PATCH 52/62] Changed file extension for config file --- conf/{uncrustify.conf => uncrustify.cfg} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename conf/{uncrustify.conf => uncrustify.cfg} (100%) diff --git a/conf/uncrustify.conf b/conf/uncrustify.cfg similarity index 100% rename from conf/uncrustify.conf rename to conf/uncrustify.cfg From dcd26f76ef0592a57e56dc9e25b792e8b7edbb5a Mon Sep 17 00:00:00 2001 From: Conrad Date: Thu, 19 Dec 2019 17:32:07 +0100 Subject: [PATCH 53/62] Fixed misspelled variable --- src/Layer/PaintingArea.cpp | 8 ++++---- src/Layer/PaintingArea.h | 2 +- src/Tool/IntelliTool.cpp | 2 +- src/Tool/IntelliToolFloodFill.cpp | 2 +- src/Tool/IntelliToolPolygon.cpp | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Layer/PaintingArea.cpp b/src/Layer/PaintingArea.cpp index 2a0337d..66f4838 100644 --- a/src/Layer/PaintingArea.cpp +++ b/src/Layer/PaintingArea.cpp @@ -56,7 +56,7 @@ void PaintingArea::setUp(int maxWidth, int maxHeight){ int PaintingArea::addLayer(int width, int height, int widthOffset, int heightOffset, ImageType type){ LayerObject newLayer; newLayer.width = width; - newLayer.hight = height; + newLayer.height = height; newLayer.widthOffset = widthOffset; newLayer.hightOffset = heightOffset; if(type==ImageType::Raster_Image){ @@ -216,7 +216,7 @@ int PaintingArea::getWidthOfActive(){ } int PaintingArea::getHeightOfActive(){ - return this->layerBundle[activeLayer].hight; + return this->layerBundle[activeLayer].height; } // If a mouse button is pressed check if it was the @@ -317,7 +317,7 @@ void PaintingArea::assembleLayers(bool forSaving){ QImage cpy = layer.image->getDisplayable(layer.alpha); QColor clr_0; QColor clr_1; - for(int y=0; y=maxHeight) break; for(int x=0; x=0){ LayerObject newLayer; newLayer.alpha = 255; - newLayer.hight = layerBundle[idx].hight; + newLayer.height = layerBundle[idx].height; newLayer.width = layerBundle[idx].width; newLayer.hightOffset = layerBundle[idx].hightOffset; newLayer.widthOffset = layerBundle[idx].widthOffset; diff --git a/src/Layer/PaintingArea.h b/src/Layer/PaintingArea.h index 70d2b6e..735180a 100644 --- a/src/Layer/PaintingArea.h +++ b/src/Layer/PaintingArea.h @@ -16,7 +16,7 @@ struct LayerObject{ IntelliImage* image; int width; - int hight; + int height; int widthOffset; int hightOffset; int alpha=255; diff --git a/src/Tool/IntelliTool.cpp b/src/Tool/IntelliTool.cpp index 4d085ea..73a8f95 100644 --- a/src/Tool/IntelliTool.cpp +++ b/src/Tool/IntelliTool.cpp @@ -56,7 +56,7 @@ void IntelliTool::createToolLayer(){ void IntelliTool::mergeToolLayer(){ QColor clr_0; QColor clr_1; - for(int y=0; yhight; y++){ + for(int y=0; yheight; y++){ for(int x=0; xwidth; x++){ clr_0=Active->image->imageData.pixelColor(x,y); clr_1=Canvas->image->imageData.pixelColor(x,y); diff --git a/src/Tool/IntelliToolFloodFill.cpp b/src/Tool/IntelliToolFloodFill.cpp index 1f1503d..1a480d1 100644 --- a/src/Tool/IntelliToolFloodFill.cpp +++ b/src/Tool/IntelliToolFloodFill.cpp @@ -57,7 +57,7 @@ void IntelliToolFloodFill::onMouseLeftPressed(int x, int y){ Canvas->image->drawPixel(top,newColor); Q.push(top); } - if((down.y() < Canvas->hight) && (Canvas->image->getPixelColor(down) != newColor) && (Active->image->getPixelColor(down) == oldColor)){ + if((down.y() < Canvas->height) && (Canvas->image->getPixelColor(down) != newColor) && (Active->image->getPixelColor(down) == oldColor)){ Canvas->image->drawPixel(down,newColor); Q.push(down); } diff --git a/src/Tool/IntelliToolPolygon.cpp b/src/Tool/IntelliToolPolygon.cpp index 89ad9fb..f72094e 100644 --- a/src/Tool/IntelliToolPolygon.cpp +++ b/src/Tool/IntelliToolPolygon.cpp @@ -56,7 +56,7 @@ void IntelliToolPolygon::onMouseLeftReleased(int x, int y){ QColor colorTwo(colorPicker->getSecondColor()); colorTwo.setAlpha(alphaInner); for(int i = 0; i < Active->width; i++){ - for(int j = 0; j < Active->hight; j++){ + for(int j = 0; j < Active->height; j++){ Point = QPoint(i,j); if(IntelliHelper::isInPolygon(Triangles,Point)){ this->Canvas->image->drawPixel(Point, colorTwo); From 3252ec4404c384e620c8fbea7300a05e42edc11d Mon Sep 17 00:00:00 2001 From: Sonaion Date: Thu, 19 Dec 2019 17:39:10 +0100 Subject: [PATCH 54/62] Earfolding bug --- src/IntelliHelper/IntelliHelper.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/IntelliHelper/IntelliHelper.cpp b/src/IntelliHelper/IntelliHelper.cpp index 2979bc5..a7aaf9f 100644 --- a/src/IntelliHelper/IntelliHelper.cpp +++ b/src/IntelliHelper/IntelliHelper.cpp @@ -25,17 +25,18 @@ std::vector IntelliHelper::calculateTriangles(std::vector poly // gets the first element of vec for which element.isTip == true holds auto getTip= [](const std::vector& vec){ - for(auto element:vec){ - if(element.isTip){ - return element; + size_t min = 0; + for(size_t i=0; i0?(index-1):(length-1); + return (index-1)>=0?(index-1):(length-1); }; // get the vertex Index after index in relation to the container lenght @@ -45,7 +46,7 @@ std::vector IntelliHelper::calculateTriangles(std::vector poly // return if the vertex is a tip auto isTip = [](float angle){ - return angle<180.f; + return static_cast(angle)<(M_PI/2.); }; std::vector Vertices; From 91fc9a4308bdf635fe766f26ae3e8aa0b21943fc Mon Sep 17 00:00:00 2001 From: Conrad Date: Thu, 19 Dec 2019 17:39:24 +0100 Subject: [PATCH 55/62] Refraktored another misspelled variable - hightOffset --> heightOffset --- src/Layer/PaintingArea.cpp | 20 ++++++++++---------- src/Layer/PaintingArea.h | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Layer/PaintingArea.cpp b/src/Layer/PaintingArea.cpp index 66f4838..88632af 100644 --- a/src/Layer/PaintingArea.cpp +++ b/src/Layer/PaintingArea.cpp @@ -58,7 +58,7 @@ int PaintingArea::addLayer(int width, int height, int widthOffset, int heightOff newLayer.width = width; newLayer.height = height; newLayer.widthOffset = widthOffset; - newLayer.hightOffset = heightOffset; + newLayer.heightOffset = heightOffset; if(type==ImageType::Raster_Image){ newLayer.image = new IntelliRasterImage(width,height); }else if(type==ImageType::Shaped_Image){ @@ -146,7 +146,7 @@ void PaintingArea::floodFill(int r, int g, int b, int a){ void PaintingArea::movePositionActive(int x, int y){ layerBundle[static_cast(activeLayer)].widthOffset += x; - layerBundle[static_cast(activeLayer)].hightOffset += y; + layerBundle[static_cast(activeLayer)].heightOffset += y; } void PaintingArea::moveActiveLayer(int idx){ @@ -226,7 +226,7 @@ void PaintingArea::mousePressEvent(QMouseEvent *event){ if(Tool == nullptr) return; int x = event->x()-layerBundle[activeLayer].widthOffset; - int y = event->y()-layerBundle[activeLayer].hightOffset; + int y = event->y()-layerBundle[activeLayer].heightOffset; if(event->button() == Qt::LeftButton){ Tool->onMouseLeftPressed(x, y); }else if(event->button() == Qt::RightButton){ @@ -242,7 +242,7 @@ void PaintingArea::mouseMoveEvent(QMouseEvent *event){ if(Tool == nullptr) return; int x = event->x()-layerBundle[activeLayer].widthOffset; - int y = event->y()-layerBundle[activeLayer].hightOffset; + int y = event->y()-layerBundle[activeLayer].heightOffset; Tool->onMouseMoved(x, y); update(); } @@ -252,7 +252,7 @@ void PaintingArea::mouseReleaseEvent(QMouseEvent *event){ if(Tool == nullptr) return; int x = event->x()-layerBundle[activeLayer].widthOffset; - int y = event->y()-layerBundle[activeLayer].hightOffset; + int y = event->y()-layerBundle[activeLayer].heightOffset; if(event->button() == Qt::LeftButton){ Tool->onMouseLeftReleased(x, y); }else if(event->button() == Qt::RightButton){ @@ -318,12 +318,12 @@ void PaintingArea::assembleLayers(bool forSaving){ QColor clr_0; QColor clr_1; for(int y=0; y=maxHeight) break; + if(layer.heightOffset+y<0) continue; + if(layer.heightOffset+y>=maxHeight) break; for(int x=0; x=maxWidth) break; - clr_0=Canvas->pixelColor(layer.widthOffset+x, layer.hightOffset+y); + clr_0=Canvas->pixelColor(layer.widthOffset+x, layer.heightOffset+y); clr_1=cpy.pixelColor(x,y); float t = static_cast(clr_1.alpha())/255.f; int r =static_cast(static_cast(clr_1.red())*(t)+static_cast(clr_0.red())*(1.f-t)+0.5f); @@ -335,7 +335,7 @@ void PaintingArea::assembleLayers(bool forSaving){ clr_0.setBlue(b); clr_0.setAlpha(a); - Canvas->setPixelColor(layer.widthOffset+x, layer.hightOffset+y, clr_0); + Canvas->setPixelColor(layer.widthOffset+x, layer.heightOffset+y, clr_0); } } } @@ -347,7 +347,7 @@ void PaintingArea::createTempLayerAfter(int idx){ newLayer.alpha = 255; newLayer.height = layerBundle[idx].height; newLayer.width = layerBundle[idx].width; - newLayer.hightOffset = layerBundle[idx].hightOffset; + newLayer.heightOffset = layerBundle[idx].heightOffset; newLayer.widthOffset = layerBundle[idx].widthOffset; newLayer.image = layerBundle[idx].image->getDeepCopy(); layerBundle.insert(layerBundle.begin()+idx+1,newLayer); diff --git a/src/Layer/PaintingArea.h b/src/Layer/PaintingArea.h index 735180a..7e61e04 100644 --- a/src/Layer/PaintingArea.h +++ b/src/Layer/PaintingArea.h @@ -18,7 +18,7 @@ struct LayerObject{ int width; int height; int widthOffset; - int hightOffset; + int heightOffset; int alpha=255; }; From 105cff0f63ff6dd80b8a7d5823652be2c2677dff Mon Sep 17 00:00:00 2001 From: Conrad Date: Thu, 19 Dec 2019 17:41:31 +0100 Subject: [PATCH 56/62] Added basic documentation for LayerObject Struct --- src/Layer/PaintingArea.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Layer/PaintingArea.h b/src/Layer/PaintingArea.h index 7e61e04..743dbc1 100644 --- a/src/Layer/PaintingArea.h +++ b/src/Layer/PaintingArea.h @@ -13,6 +13,14 @@ #include "Tool/IntelliTool.h" #include "IntelliHelper/IntelliColorPicker.h" +/*! + * \brief The LayerObject struct holds all the information needed to construct a layer + * \param width - Stores the width of a layer in pixels + * \param height - Stores the height of a layer in pixels + * \param alpha - Stores the alpha value of the layer (default=255) + * \param widthOffset - Stores the number of pixles from the left side of the painting area + * \param heightOffset - Stores the number of pixles from the top of the painting area + */ struct LayerObject{ IntelliImage* image; int width; From 8b426033328f8945912361df0b27e1f6f9125f2a Mon Sep 17 00:00:00 2001 From: Conrad Date: Thu, 19 Dec 2019 18:14:13 +0100 Subject: [PATCH 57/62] Documented PaintingArea --- src/Layer/PaintingArea.h | 101 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 99 insertions(+), 2 deletions(-) diff --git a/src/Layer/PaintingArea.h b/src/Layer/PaintingArea.h index 743dbc1..591f693 100644 --- a/src/Layer/PaintingArea.h +++ b/src/Layer/PaintingArea.h @@ -30,6 +30,9 @@ struct LayerObject{ int alpha=255; }; +/*! + * \brief The PaintingArea class manages the methods and stores information about the current painting area, which is the currently opened project + */ class PaintingArea : public QWidget { // Declares our class as a QObject which is the base class @@ -38,28 +41,107 @@ class PaintingArea : public QWidget Q_OBJECT friend IntelliTool; public: + /*! + * \brief PaintingArea is the constructor of the PaintingArea class, which initiates the working environment + * \param maxWidth - The maximum amount of pixles that are inside painting area from left to right (default=600px) + * \param maxHeight - The maximum amount of pixles that are inside painting area from top to bottom (default=600px) + * \param parent - The parent window of the main window (default=nullptr) + */ PaintingArea(int maxWidth=600, int maxHeight=600, QWidget *parent = nullptr); + + /*! + * \brief This deconstructor is used to clear up the memory and remove the currently active window + */ ~PaintingArea() override; // Handles all events + + /*! + * \brief The open method is used for loading a picture into the current layer + * \param fileName - Path and filename which are used to determine where the to-be-opened file is stored + * \return Returns a boolean variable whether the file was successfully opened or not + */ bool open(const QString &fileName); + /*! + * \brief The save method is used for exporting the current project as one picture + * \param fileName + * \param fileFormat + * \return Returns a boolean variable, true if the file was saved successfully, false if not + */ bool save(const QString &fileName, const char *fileFormat); + /*! + * \brief The addLayer adds a layer to the current project/ painting area + * \param width - Width of the layer in pixles + * \param height - Height of the layer in pixles + * \param widthOffset - Offset of the layer measured to the left border of the painting area in pixles + * \param heightOffset - Offset of the layer measured to the top border of the painting area in pixles + * \param type - Defining the ImageType of the new layer + * \return Returns the number of layers in the project + */ int addLayer(int width, int height, int widthOffset=0, int heightOffset=0, ImageType type = ImageType::Raster_Image); + /*! + * \brief The addLayerAt adds a layer to the current project/ painting area at a specific position in the layer stack + * \param idx - ID of the position the new layer should be added + * \param width - Width of the layer in pixles + * \param height - Height of the layer in pixles + * \param widthOffset - Offset of the layer measured to the left border of the painting area in pixles + * \param heightOffset - Offset of the layer measured to the top border of the painting area in pixles + * \param type - Defining the ImageType of the new layer + * \return Returns the id of the layer position + */ int addLayerAt(int idx, int width, int height, int widthOffset=0, int heightOffset=0, ImageType type = ImageType::Raster_Image); + /*! + * \brief The deleteLayer method removes a layer at a given index + * \param index - The index of the layer to be removed + */ void deleteLayer(int index); + /*! + * \brief The setLayerToActive method marks a specific layer as active + * \param index - Index of the layer to be active + */ void setLayerToActive(int index); + /*! + * \brief The setAlphaOfLayer method sets the alpha value of a specific layer + * \param index - Index of the layer where the change should be applied + * \param alpha - New alpha value of the layer + */ void setAlphaOfLayer(int index, int alpha); + /*! + * \brief The floodFill method fills a the active layer with a given color + * \param r - Red value of the color the layer should be filled with + * \param g - Green value of the color the layer should be filled with + * \param b - Blue value of the color the layer should be filled with + * \param a - Alpha value of the color the layer should be filled with + */ void floodFill(int r, int g, int b, int a); + /*! + * \brief The movePositionActive method moves the active layer to certain position + * \param x - The x value the new center of the layer should be at + * \param y - The y value the new center of the layer should be at + */ void movePositionActive(int x, int y); + /*! + * \brief The moveActiveLayer moves the active layer to a specific position in the layer stack + * \param idx - The id of the new position the layer should be in + */ void moveActiveLayer(int idx); //change properties of colorPicker + /*! + * \brief The colorPickerSetFirstColor calls the QTColorPicker to determine the primary drawing color + */ void colorPickerSetFirstColor(); + /*! + * \brief The colorPickerSetSecondColor calls the QTColorPicker to determine the secondary drawing color + */ void colorPickerSetSecondColor(); + /*! + * \brief The colorPickerSwitchColor swaps the primary color with the secondary drawing color + */ void colorPickerSwitchColor(); - //create tools + // Create tools void createPenTool(); void createPlainTool(); void createLineTool(); @@ -68,12 +150,27 @@ public: void createPolygonTool(); void createFloodFillTool(); + /*! + * \brief The getWidthOfActive gets the horizontal dimensions of the active layer + * \return Returns the horizontal pixle count of the active layer + */ int getWidthOfActive(); + /*! + * \brief The getHeightOfActive gets the vertical dimensions of the active layer + * \return Returns the vertical pixle count of the active layer + */ int getHeightOfActive(); public slots: // Events to handle + /*! + * \brief The slotActivateLayer method handles the event of selecting one layer as active + * \param a - Index of the layer to be active + */ void slotActivateLayer(int a); + /*! + * \brief The slotDeleteActiveLayer method handles the deletion of the active layer + */ void slotDeleteActiveLayer(); protected: @@ -108,7 +205,7 @@ private: void resizeImage(QImage *image_res, const QSize &newSize); - //Helper for Tool + // Helper for Tool void createTempLayerAfter(int idx); }; From c415a53c83e36518851ea169872fefc3774b066d Mon Sep 17 00:00:00 2001 From: Conrad Date: Thu, 19 Dec 2019 18:16:26 +0100 Subject: [PATCH 58/62] Documented the gui file --- src/GUI/IntelliPhotoGui.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/GUI/IntelliPhotoGui.h b/src/GUI/IntelliPhotoGui.h index 787978c..220df8c 100644 --- a/src/GUI/IntelliPhotoGui.h +++ b/src/GUI/IntelliPhotoGui.h @@ -16,12 +16,18 @@ class IntelliTool; class IntelliColorPicker; +/*! + * \brief The IntelliPhotoGui class handles the graphical user interface for the intelliPhoto program + */ class IntelliPhotoGui : public QMainWindow{ // Declares our class as a QObject which is the base class // for all Qt objects // QObjects handle events Q_OBJECT public: + /*! + * \brief The IntelliPhotoGui method is the constructor and is used to create a new instance of the main program window + */ IntelliPhotoGui(); protected: From a838e3869fe4269568efaa976c4526b15f45d999 Mon Sep 17 00:00:00 2001 From: Conrad Date: Thu, 19 Dec 2019 18:27:46 +0100 Subject: [PATCH 59/62] Restyled project for uncrustify --- src/GUI/IntelliPhotoGui.cpp | 36 +- src/GUI/IntelliPhotoGui.h | 192 +++++------ src/Image/IntelliImage.cpp | 90 ++--- src/Image/IntelliImage.h | 194 +++++------ src/Image/IntelliRasterImage.cpp | 42 +-- src/Image/IntelliRasterImage.h | 80 ++--- src/Image/IntelliShapedImage.cpp | 112 +++--- src/Image/IntelliShapedImage.h | 112 +++--- src/IntelliHelper/IntelliColorPicker.cpp | 14 +- src/IntelliHelper/IntelliColorPicker.h | 88 ++--- src/IntelliHelper/IntelliHelper.cpp | 198 +++++------ src/IntelliHelper/IntelliHelper.h | 86 ++--- src/Layer/PaintingArea.cpp | 422 +++++++++++------------ src/Tool/IntelliColorPicker.cpp | 36 +- src/Tool/IntelliTool.cpp | 91 +++-- src/Tool/IntelliTool.h | 156 ++++----- src/Tool/IntelliToolCircle.cpp | 106 +++--- src/Tool/IntelliToolCircle.h | 126 +++---- src/Tool/IntelliToolFloodFill.cpp | 85 +++-- src/Tool/IntelliToolFloodFill.h | 92 ++--- src/Tool/IntelliToolLine.cpp | 65 ++-- src/Tool/IntelliToolLine.h | 122 +++---- src/Tool/IntelliToolPen.cpp | 40 +-- src/Tool/IntelliToolPen.h | 114 +++--- src/Tool/IntelliToolPlain.cpp | 19 +- src/Tool/IntelliToolPlain.h | 92 ++--- src/Tool/IntelliToolPolygon.cpp | 146 ++++---- src/Tool/IntelliToolPolygon.h | 147 ++++---- src/Tool/IntelliToolRectangle.cpp | 70 ++-- src/Tool/IntelliToolRectangle.h | 126 +++---- 30 files changed, 1649 insertions(+), 1650 deletions(-) diff --git a/src/GUI/IntelliPhotoGui.cpp b/src/GUI/IntelliPhotoGui.cpp index 25eecb3..063f4b7 100644 --- a/src/GUI/IntelliPhotoGui.cpp +++ b/src/GUI/IntelliPhotoGui.cpp @@ -195,7 +195,7 @@ void IntelliPhotoGui::slotSetActiveLayer(){ if (ok1) { paintingArea->setLayerToActive(layer); - } + } } void IntelliPhotoGui::slotSetFirstColor(){ @@ -203,7 +203,7 @@ void IntelliPhotoGui::slotSetFirstColor(){ } void IntelliPhotoGui::slotSetSecondColor(){ - paintingArea->colorPickerSetSecondColor(); + paintingArea->colorPickerSetSecondColor(); } void IntelliPhotoGui::slotSwitchColor(){ @@ -223,19 +223,19 @@ void IntelliPhotoGui::slotCreateLineTool(){ } void IntelliPhotoGui::slotCreateRectangleTool(){ - paintingArea->createRectangleTool(); + paintingArea->createRectangleTool(); } void IntelliPhotoGui::slotCreateCircleTool(){ - paintingArea->createCircleTool(); + paintingArea->createCircleTool(); } void IntelliPhotoGui::slotCreatePolygonTool(){ - paintingArea->createPolygonTool(); + paintingArea->createPolygonTool(); } void IntelliPhotoGui::slotCreateFloodFillTool(){ - paintingArea->createFloodFillTool(); + paintingArea->createFloodFillTool(); } // Open an about dialog @@ -342,17 +342,17 @@ void IntelliPhotoGui::createActions(){ actionCreateLineTool = new QAction(tr("&Line"), this); connect(actionCreateLineTool, SIGNAL(triggered()), this, SLOT(slotCreateLineTool())); - actionCreateCircleTool = new QAction(tr("&Circle"), this); - connect(actionCreateCircleTool, SIGNAL(triggered()), this, SLOT(slotCreateCircleTool())); + actionCreateCircleTool = new QAction(tr("&Circle"), this); + connect(actionCreateCircleTool, SIGNAL(triggered()), this, SLOT(slotCreateCircleTool())); - actionCreateRectangleTool = new QAction(tr("&Rectangle"), this); - connect(actionCreateRectangleTool, SIGNAL(triggered()), this, SLOT(slotCreateRectangleTool())); + actionCreateRectangleTool = new QAction(tr("&Rectangle"), this); + connect(actionCreateRectangleTool, SIGNAL(triggered()), this, SLOT(slotCreateRectangleTool())); - actionCreatePolygonTool = new QAction(tr("&Polygon"), this); - connect(actionCreatePolygonTool, SIGNAL(triggered()), this, SLOT(slotCreatePolygonTool())); + actionCreatePolygonTool = new QAction(tr("&Polygon"), this); + connect(actionCreatePolygonTool, SIGNAL(triggered()), this, SLOT(slotCreatePolygonTool())); - actionCreateFloodFillTool = new QAction(tr("&FloodFill"), this); - connect(actionCreateFloodFillTool, SIGNAL(triggered()), this, SLOT(slotCreateFloodFillTool())); + actionCreateFloodFillTool = new QAction(tr("&FloodFill"), this); + connect(actionCreateFloodFillTool, SIGNAL(triggered()), this, SLOT(slotCreateFloodFillTool())); // Create about action and tie to IntelliPhotoGui::about() actionAboutDialog = new QAction(tr("&About"), this); @@ -405,10 +405,10 @@ void IntelliPhotoGui::createMenus(){ toolMenu->addAction(actionCreatePenTool); toolMenu->addAction(actionCreatePlainTool); toolMenu->addAction(actionCreateLineTool); - toolMenu->addAction(actionCreateRectangleTool); - toolMenu->addAction(actionCreateCircleTool); - toolMenu->addAction(actionCreatePolygonTool); - toolMenu->addAction(actionCreateFloodFillTool); + toolMenu->addAction(actionCreateRectangleTool); + toolMenu->addAction(actionCreateCircleTool); + toolMenu->addAction(actionCreatePolygonTool); + toolMenu->addAction(actionCreateFloodFillTool); toolMenu->addSeparator(); toolMenu->addMenu(colorMenu); diff --git a/src/GUI/IntelliPhotoGui.h b/src/GUI/IntelliPhotoGui.h index 220df8c..e6acca9 100644 --- a/src/GUI/IntelliPhotoGui.h +++ b/src/GUI/IntelliPhotoGui.h @@ -19,123 +19,123 @@ class IntelliColorPicker; /*! * \brief The IntelliPhotoGui class handles the graphical user interface for the intelliPhoto program */ -class IntelliPhotoGui : public QMainWindow{ - // Declares our class as a QObject which is the base class - // for all Qt objects - // QObjects handle events - Q_OBJECT +class IntelliPhotoGui : public QMainWindow { +// Declares our class as a QObject which is the base class +// for all Qt objects +// QObjects handle events +Q_OBJECT public: - /*! - * \brief The IntelliPhotoGui method is the constructor and is used to create a new instance of the main program window - */ - IntelliPhotoGui(); +/*! + * \brief The IntelliPhotoGui method is the constructor and is used to create a new instance of the main program window + */ +IntelliPhotoGui(); protected: - // Function used to close an event - void closeEvent(QCloseEvent *event) override; +// Function used to close an event +void closeEvent(QCloseEvent*event) override; private slots: - // meta slots here (need further ) - void slotOpen(); - void slotSave(); +// meta slots here (need further ) +void slotOpen(); +void slotSave(); - // layer slots here - void slotCreateNewLayer(); - void slotDeleteLayer(); - void slotClearActiveLayer(); - void slotSetActiveLayer(); - void slotSetActiveAlpha(); - void slotPositionMoveUp(); - void slotPositionMoveDown(); - void slotPositionMoveLeft(); - void slotPositionMoveRight(); - void slotMoveLayerUp(); - void slotMoveLayerDown(); +// layer slots here +void slotCreateNewLayer(); +void slotDeleteLayer(); +void slotClearActiveLayer(); +void slotSetActiveLayer(); +void slotSetActiveAlpha(); +void slotPositionMoveUp(); +void slotPositionMoveDown(); +void slotPositionMoveLeft(); +void slotPositionMoveRight(); +void slotMoveLayerUp(); +void slotMoveLayerDown(); - // color Picker slots here - void slotSetFirstColor(); - void slotSetSecondColor(); - void slotSwitchColor(); +// color Picker slots here +void slotSetFirstColor(); +void slotSetSecondColor(); +void slotSwitchColor(); - // tool slots here - void slotCreatePenTool(); - void slotCreatePlainTool(); - void slotCreateLineTool(); - void slotCreateRectangleTool(); - void slotCreateCircleTool(); - void slotCreatePolygonTool(); - void slotCreateFloodFillTool(); +// tool slots here +void slotCreatePenTool(); +void slotCreatePlainTool(); +void slotCreateLineTool(); +void slotCreateRectangleTool(); +void slotCreateCircleTool(); +void slotCreatePolygonTool(); +void slotCreateFloodFillTool(); - // slots for dialogs - void slotAboutDialog(); +// slots for dialogs +void slotAboutDialog(); private: - // Will tie user actions to functions - void createActions(); - void createMenus(); - // setup GUI elements - void createGui(); - // set style of the GUI - void setIntelliStyle(); +// Will tie user actions to functions +void createActions(); +void createMenus(); +// setup GUI elements +void createGui(); +// set style of the GUI +void setIntelliStyle(); - // Will check if changes have occurred since last save - bool maybeSave(); - // Opens the Save dialog and saves - bool saveFile(const QByteArray &fileFormat); +// Will check if changes have occurred since last save +bool maybeSave(); +// Opens the Save dialog and saves +bool saveFile(const QByteArray &fileFormat); - // What we'll draw on - PaintingArea* paintingArea; +// What we'll draw on +PaintingArea* paintingArea; - // The menu widgets - QMenu *saveAsMenu; - QMenu *fileMenu; - QMenu *optionMenu; - QMenu *layerMenu; - QMenu *colorMenu; - QMenu *toolMenu; - QMenu *helpMenu; +// The menu widgets +QMenu*saveAsMenu; +QMenu*fileMenu; +QMenu*optionMenu; +QMenu*layerMenu; +QMenu*colorMenu; +QMenu*toolMenu; +QMenu*helpMenu; - // All the actions that can occur - // meta image actions (need further modularisation) - QAction *actionOpen; - QAction *actionExit; +// All the actions that can occur +// meta image actions (need further modularisation) +QAction*actionOpen; +QAction*actionExit; - // color Picker actions - QAction *actionColorPickerFirstColor; - QAction *actionColorPickerSecondColor; - QAction *actionColorSwitch; +// color Picker actions +QAction*actionColorPickerFirstColor; +QAction*actionColorPickerSecondColor; +QAction*actionColorSwitch; - // tool actions - QAction *actionCreatePenTool; - QAction *actionCreatePlainTool; - QAction *actionCreateLineTool; - QAction *actionCreateRectangleTool; - QAction *actionCreateCircleTool; - QAction *actionCreatePolygonTool; - QAction *actionCreateFloodFillTool; +// tool actions +QAction*actionCreatePenTool; +QAction*actionCreatePlainTool; +QAction*actionCreateLineTool; +QAction*actionCreateRectangleTool; +QAction*actionCreateCircleTool; +QAction*actionCreatePolygonTool; +QAction*actionCreateFloodFillTool; - // dialog actions - QAction *actionAboutDialog; - QAction *actionAboutQtDialog; +// dialog actions +QAction*actionAboutDialog; +QAction*actionAboutQtDialog; - // layer change actions - QAction *actionCreateNewLayer; - QAction *actionDeleteLayer; - QAction* actionSetActiveLayer; - QAction* actionSetActiveAlpha; - QAction* actionMovePositionUp; - QAction* actionMovePositionDown; - QAction* actionMovePositionLeft; - QAction* actionMovePositionRight; - QAction* actionMoveLayerUp; - QAction* actionMoveLayerDown; +// layer change actions +QAction*actionCreateNewLayer; +QAction*actionDeleteLayer; +QAction* actionSetActiveLayer; +QAction* actionSetActiveAlpha; +QAction* actionMovePositionUp; +QAction* actionMovePositionDown; +QAction* actionMovePositionLeft; +QAction* actionMovePositionRight; +QAction* actionMoveLayerUp; +QAction* actionMoveLayerDown; - // Actions tied to specific file formats - QList actionSaveAs; +// Actions tied to specific file formats +QList actionSaveAs; - // main GUI elements - QWidget* centralGuiWidget; - QGridLayout *mainLayout; +// main GUI elements +QWidget* centralGuiWidget; +QGridLayout*mainLayout; }; #endif diff --git a/src/Image/IntelliImage.cpp b/src/Image/IntelliImage.cpp index e2f8a7b..059fe4c 100644 --- a/src/Image/IntelliImage.cpp +++ b/src/Image/IntelliImage.cpp @@ -1,10 +1,10 @@ -#include"Image/IntelliImage.h" -#include -#include +#include "Image/IntelliImage.h" +#include +#include IntelliImage::IntelliImage(int weight, int height) - :imageData(QSize(weight, height), QImage::Format_ARGB32){ - imageData.fill(QColor(255,255,255,255)); + : imageData(QSize(weight, height), QImage::Format_ARGB32){ + imageData.fill(QColor(255,255,255,255)); } IntelliImage::~IntelliImage(){ @@ -12,71 +12,71 @@ IntelliImage::~IntelliImage(){ } bool IntelliImage::loadImage(const QString &fileName){ - // Holds the image - QImage loadedImage; + // Holds the image + QImage loadedImage; - // If the image wasn't loaded leave this function - if (!loadedImage.load(fileName)) - return false; + // If the image wasn't loaded leave this function + if (!loadedImage.load(fileName)) + return false; - // scaled Image to size of Layer - loadedImage = loadedImage.scaled(imageData.size(),Qt::IgnoreAspectRatio); + // scaled Image to size of Layer + loadedImage = loadedImage.scaled(imageData.size(),Qt::IgnoreAspectRatio); - imageData = loadedImage.convertToFormat(QImage::Format_ARGB32); - return true; + imageData = loadedImage.convertToFormat(QImage::Format_ARGB32); + return true; } -void IntelliImage::resizeImage(QImage *image, const QSize &newSize){ - // Check if we need to redraw the image - if (image->size() == newSize) - return; +void IntelliImage::resizeImage(QImage*image, const QSize &newSize){ + // Check if we need to redraw the image + if (image->size() == newSize) + return; - // Create a new image to display and fill it with white - QImage newImage(newSize, QImage::Format_ARGB32); - newImage.fill(qRgb(255, 255, 255)); + // Create a new image to display and fill it with white + QImage newImage(newSize, QImage::Format_ARGB32); + newImage.fill(qRgb(255, 255, 255)); - // Draw the image - QPainter painter(&newImage); - painter.drawImage(QPoint(0, 0), *image); - *image = newImage; + // Draw the image + QPainter painter(&newImage); + painter.drawImage(QPoint(0, 0), *image); + *image = newImage; } void IntelliImage::drawPixel(const QPoint &p1, const QColor& color){ - // Used to draw on the widget - QPainter painter(&imageData); + // Used to draw on the widget + QPainter painter(&imageData); - // Set the current settings for the pen - painter.setPen(QPen(color, 1, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)); + // Set the current settings for the pen + painter.setPen(QPen(color, 1, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)); - // Draw a line from the last registered point to the current - painter.drawPoint(p1); + // Draw a line from the last registered point to the current + painter.drawPoint(p1); } void IntelliImage::drawPoint(const QPoint &p1, const QColor& color, const int& penWidth){ - // Used to draw on the widget - QPainter painter(&imageData); + // Used to draw on the widget + QPainter painter(&imageData); - // Set the current settings for the pen - painter.setPen(QPen(color, penWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)); - // Draw a line from the last registered point to the current - painter.drawPoint(p1); + // Set the current settings for the pen + painter.setPen(QPen(color, penWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)); + // Draw a line from the last registered point to the current + painter.drawPoint(p1); } void IntelliImage::drawLine(const QPoint &p1, const QPoint& p2, const QColor& color, const int& penWidth){ - // Used to draw on the widget - QPainter painter(&imageData); + // Used to draw on the widget + QPainter painter(&imageData); - // Set the current settings for the pen - painter.setPen(QPen(color, penWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)); + // Set the current settings for the pen + painter.setPen(QPen(color, penWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)); - // Draw a line from the last registered point to the current - painter.drawLine(p1, p2); + // Draw a line from the last registered point to the current + painter.drawLine(p1, p2); } void IntelliImage::drawPlain(const QColor& color){ - imageData.fill(color); + imageData.fill(color); } QColor IntelliImage::getPixelColor(QPoint& point){ - return imageData.pixelColor(point); + return imageData.pixelColor(point); } diff --git a/src/Image/IntelliImage.h b/src/Image/IntelliImage.h index cf25e9b..12f965b 100644 --- a/src/Image/IntelliImage.h +++ b/src/Image/IntelliImage.h @@ -1,19 +1,19 @@ #ifndef INTELLIIMAGE_H #define INTELLIIMAGE_H -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include /*! * \brief The Types, which an Image can be. */ -enum class ImageType{ - Raster_Image, - Shaped_Image +enum class ImageType { + Raster_Image, + Shaped_Image }; class IntelliTool; @@ -21,110 +21,112 @@ class IntelliTool; /*! * \brief An abstract class which manages the basic IntelliImage operations. */ -class IntelliImage{ - friend IntelliTool; +class IntelliImage { +friend IntelliTool; protected: - void resizeImage(QImage *image, const QSize &newSize); +void resizeImage(QImage*image, const QSize &newSize); - /*! - * \brief The underlying image data. - */ - QImage imageData; +/*! + * \brief The underlying image data. + */ +QImage imageData; public: - /*! - * \brief The Construcor of the IntelliImage. Given the Image dimensions. - * \param weight - The weight of the Image. - * \param height - The height of the Image. - */ - IntelliImage(int weight, int height); +/*! + * \brief The Construcor of the IntelliImage. Given the Image dimensions. + * \param weight - The weight of the Image. + * \param height - The height of the Image. + */ +IntelliImage(int weight, int height); - /*! - * \brief An Abstract Destructor. - */ - virtual ~IntelliImage() = 0; +/*! + * \brief An Abstract Destructor. + */ +virtual ~IntelliImage() = 0; - /*! - * \brief A funtcion used to draw a pixel on the Image with the given Color. - * \param p1 - The coordinates of the pixel, which should be drawn. [Top-Left-System] - * \param color - The color of the pixel. - */ - virtual void drawPixel(const QPoint &p1, const QColor& color); +/*! + * \brief A funtcion used to draw a pixel on the Image with the given Color. + * \param p1 - The coordinates of the pixel, which should be drawn. [Top-Left-System] + * \param color - The color of the pixel. + */ +virtual void drawPixel(const QPoint &p1, const QColor& color); - /*! - * \brief A function that draws A Line between two given Points in a given color. - * \param p1 - The coordinates of the first Point. - * \param p2 - The coordinates of the second Point. - * \param color - The color of the line. - * \param penWidth - The width of the line. - */ - virtual void drawLine(const QPoint &p1, const QPoint& p2, const QColor& color, const int& penWidth); +/*! + * \brief A function that draws A Line between two given Points in a given color. + * \param p1 - The coordinates of the first Point. + * \param p2 - The coordinates of the second Point. + * \param color - The color of the line. + * \param penWidth - The width of the line. + */ +virtual void drawLine(const QPoint &p1, const QPoint& p2, const QColor& color, const int& penWidth); - /*! - * \brief A - * \param p1 - * \param color - * \param penWidth - */ - virtual void drawPoint(const QPoint &p1, const QColor& color, const int& penWidth); +/*! + * \brief A + * \param p1 + * \param color + * \param penWidth + */ +virtual void drawPoint(const QPoint &p1, const QColor& color, const int& penWidth); - /*! - * \brief A function that clears the whole image in a given Color. - * \param color - The color, in which the image will be filled. - */ - virtual void drawPlain(const QColor& color); +/*! + * \brief A function that clears the whole image in a given Color. + * \param color - The color, in which the image will be filled. + */ +virtual void drawPlain(const QColor& color); - /*! - * \brief A function returning the displayable ImageData in a requested transparence and size. - * \param displaySize - The size, in whcih the Image should be displayed. - * \param alpha - The maximum alpha value, a pixel can have. - * \return A QImage which is ready to be displayed. - */ - virtual QImage getDisplayable(const QSize& displaySize, int alpha)=0; +/*! + * \brief A function returning the displayable ImageData in a requested transparence and size. + * \param displaySize - The size, in whcih the Image should be displayed. + * \param alpha - The maximum alpha value, a pixel can have. + * \return A QImage which is ready to be displayed. + */ +virtual QImage getDisplayable(const QSize& displaySize, int alpha) = 0; - /** - * @brief A function returning the displayable ImageData in a requested transparence and it's standart size. - * @param alpha - The maximum alpha value, a pixel can have. - * @return A QImage which is ready to be displayed. - */ - virtual QImage getDisplayable(int alpha=255)=0; +/** + * @brief A function returning the displayable ImageData in a requested transparence and it's standart size. + * @param alpha - The maximum alpha value, a pixel can have. + * @return A QImage which is ready to be displayed. + */ +virtual QImage getDisplayable(int alpha=255) = 0; - /*! - * \brief A function that copys all that returns a [allocated] Image - * \return A [allocated] Image with all the properties of the instance. - */ - virtual IntelliImage* getDeepCopy()=0; +/*! + * \brief A function that copys all that returns a [allocated] Image + * \return A [allocated] Image with all the properties of the instance. + */ +virtual IntelliImage* getDeepCopy() = 0; - /*! - * \brief An abstract function that calculates the visiblity of the Image data if needed. - */ - virtual void calculateVisiblity()=0; +/*! + * \brief An abstract function that calculates the visiblity of the Image data if needed. + */ +virtual void calculateVisiblity() = 0; - /*! - * \brief An abstract function that sets the data of the visible Polygon, if needed. - * \param polygonData - The Vertices of the Polygon. Just Planar Polygons are allowed. - */ - virtual void setPolygon(const std::vector& polygonData)=0; +/*! + * \brief An abstract function that sets the data of the visible Polygon, if needed. + * \param polygonData - The Vertices of the Polygon. Just Planar Polygons are allowed. + */ +virtual void setPolygon(const std::vector& polygonData) = 0; - /*! - * \brief A function that returns the Polygondata if existent. - * \return The Polygondata if existent. - */ - virtual std::vector getPolygonData(){ return std::vector();} +/*! + * \brief A function that returns the Polygondata if existent. + * \return The Polygondata if existent. + */ +virtual std::vector getPolygonData(){ + return std::vector(); +} - /*! - * \brief A function that loads and sclaes an image to the fitting dimensions. - * \param fileName - The path+name of the image which to loaded. - * \return True if the image could be loaded, false otherwise. - */ - virtual bool loadImage(const QString &fileName); +/*! + * \brief A function that loads and sclaes an image to the fitting dimensions. + * \param fileName - The path+name of the image which to loaded. + * \return True if the image could be loaded, false otherwise. + */ +virtual bool loadImage(const QString &fileName); - /*! - * \brief A function that returns the pixelcolor at a certain point - * \param point - The point from whcih to get the coordinates. - * \return The color of the Pixel as QColor. - */ - virtual QColor getPixelColor(QPoint& point); +/*! + * \brief A function that returns the pixelcolor at a certain point + * \param point - The point from whcih to get the coordinates. + * \return The color of the Pixel as QColor. + */ +virtual QColor getPixelColor(QPoint& point); }; #endif diff --git a/src/Image/IntelliRasterImage.cpp b/src/Image/IntelliRasterImage.cpp index 977947c..c7b3d48 100644 --- a/src/Image/IntelliRasterImage.cpp +++ b/src/Image/IntelliRasterImage.cpp @@ -1,10 +1,10 @@ -#include"Image/IntelliRasterImage.h" -#include -#include -#include +#include "Image/IntelliRasterImage.h" +#include +#include +#include IntelliRasterImage::IntelliRasterImage(int weight, int height) - :IntelliImage(weight, height){ + : IntelliImage(weight, height){ } @@ -13,32 +13,32 @@ IntelliRasterImage::~IntelliRasterImage(){ } IntelliImage* IntelliRasterImage::getDeepCopy(){ - IntelliRasterImage* raster = new IntelliRasterImage(imageData.width(), imageData.height()); - raster->imageData.fill(Qt::transparent); - return raster; + IntelliRasterImage* raster = new IntelliRasterImage(imageData.width(), imageData.height()); + raster->imageData.fill(Qt::transparent); + return raster; } void IntelliRasterImage::calculateVisiblity(){ - // not used in raster image + // not used in raster image } QImage IntelliRasterImage::getDisplayable(int alpha){ - return getDisplayable(imageData.size(), alpha); + return getDisplayable(imageData.size(), alpha); } QImage IntelliRasterImage::getDisplayable(const QSize& displaySize, int alpha){ - QImage copy = imageData; - for(int y = 0; y& polygonData){ - qDebug() << "Raster Image has no polygon data " << polygonData.size() <<"\n"; - return; + qDebug() << "Raster Image has no polygon data " << polygonData.size() <<"\n"; + return; } diff --git a/src/Image/IntelliRasterImage.h b/src/Image/IntelliRasterImage.h index 39f73b3..5a3de15 100644 --- a/src/Image/IntelliRasterImage.h +++ b/src/Image/IntelliRasterImage.h @@ -1,57 +1,57 @@ #ifndef INTELLIRASTER_H #define INTELLIRASTER_H -#include"Image/IntelliImage.h" +#include "Image/IntelliImage.h" /*! * \brief The IntelliRasterImage manages a Rasterimage. */ -class IntelliRasterImage : public IntelliImage{ - friend IntelliTool; +class IntelliRasterImage : public IntelliImage { +friend IntelliTool; protected: - /*! - * \brief A function that calculates the visibility of the image if a polygon is given. [does nothing in Rasterimage] - */ - virtual void calculateVisiblity() override; +/*! + * \brief A function that calculates the visibility of the image if a polygon is given. [does nothing in Rasterimage] + */ +virtual void calculateVisiblity() override; public: - /*! - * \brief The Construcor of the IntelliRasterImage. Given the Image dimensions. - * \param weight - The weight of the Image. - * \param height - The height of the Image. - */ - IntelliRasterImage(int weight, int height); +/*! + * \brief The Construcor of the IntelliRasterImage. Given the Image dimensions. + * \param weight - The weight of the Image. + * \param height - The height of the Image. + */ +IntelliRasterImage(int weight, int height); - /*! - * \brief An Destructor. - */ - virtual ~IntelliRasterImage() override; +/*! + * \brief An Destructor. + */ +virtual ~IntelliRasterImage() override; - /*! - * \brief A function returning the displayable ImageData in a requested transparence and size. - * \param displaySize - The size, in whcih the Image should be displayed. - * \param alpha - The maximum alpha value, a pixel can have. - * \return A QImage which is ready to be displayed. - */ - virtual QImage getDisplayable(const QSize& displaySize,int alpha) override; +/*! + * \brief A function returning the displayable ImageData in a requested transparence and size. + * \param displaySize - The size, in whcih the Image should be displayed. + * \param alpha - The maximum alpha value, a pixel can have. + * \return A QImage which is ready to be displayed. + */ +virtual QImage getDisplayable(const QSize& displaySize,int alpha) override; - /** - * @brief A function returning the displayable ImageData in a requested transparence and it's standart size. - * @param alpha - The maximum alpha value, a pixel can have. - * @return A QImage which is ready to be displayed. - */ - virtual QImage getDisplayable(int alpha=255) override; +/** + * @brief A function returning the displayable ImageData in a requested transparence and it's standart size. + * @param alpha - The maximum alpha value, a pixel can have. + * @return A QImage which is ready to be displayed. + */ +virtual QImage getDisplayable(int alpha=255) override; - /*! - * \brief A function that copys all that returns a [allocated] Image - * \return A [allocated] Image with all the properties of the instance. - */ - virtual IntelliImage* getDeepCopy() override; +/*! + * \brief A function that copys all that returns a [allocated] Image + * \return A [allocated] Image with all the properties of the instance. + */ +virtual IntelliImage* getDeepCopy() override; - /*! - * \brief An abstract function that sets the data of the visible Polygon, if needed. - * \param polygonData - The Vertices of the Polygon. Nothing happens. - */ - virtual void setPolygon(const std::vector& polygonData) override; +/*! + * \brief An abstract function that sets the data of the visible Polygon, if needed. + * \param polygonData - The Vertices of the Polygon. Nothing happens. + */ +virtual void setPolygon(const std::vector& polygonData) override; }; #endif diff --git a/src/Image/IntelliShapedImage.cpp b/src/Image/IntelliShapedImage.cpp index dbf6e48..cd2457f 100644 --- a/src/Image/IntelliShapedImage.cpp +++ b/src/Image/IntelliShapedImage.cpp @@ -1,11 +1,11 @@ -#include"Image/IntelliShapedImage.h" -#include"IntelliHelper/IntelliHelper.h" -#include -#include -#include +#include "Image/IntelliShapedImage.h" +#include "IntelliHelper/IntelliHelper.h" +#include +#include +#include IntelliShapedImage::IntelliShapedImage(int weight, int height) - :IntelliRasterImage(weight, height){ + : IntelliRasterImage(weight, height){ } IntelliShapedImage::~IntelliShapedImage(){ @@ -13,66 +13,66 @@ IntelliShapedImage::~IntelliShapedImage(){ } QImage IntelliShapedImage::getDisplayable(int alpha){ - return getDisplayable(imageData.size(),alpha); + return getDisplayable(imageData.size(),alpha); } IntelliImage* IntelliShapedImage::getDeepCopy(){ - IntelliShapedImage* shaped = new IntelliShapedImage(imageData.width(), imageData.height()); - shaped->setPolygon(this->polygonData); - shaped->imageData.fill(Qt::transparent); - return shaped; + IntelliShapedImage* shaped = new IntelliShapedImage(imageData.width(), imageData.height()); + shaped->setPolygon(this->polygonData); + shaped->imageData.fill(Qt::transparent); + return shaped; } void IntelliShapedImage::calculateVisiblity(){ - if(polygonData.size()<=2){ - QColor clr; - for(int y=0; y& polygonData){ - if(polygonData.size()<3){ - this->polygonData.clear(); - }else{ - this->polygonData.clear(); - for(auto element:polygonData){ - this->polygonData.push_back(QPoint(element.x(), element.y())); - } - triangles = IntelliHelper::calculateTriangles(polygonData); - } - calculateVisiblity(); - return; + if(polygonData.size()<3) { + this->polygonData.clear(); + }else{ + this->polygonData.clear(); + for(auto element:polygonData) { + this->polygonData.push_back(QPoint(element.x(), element.y())); + } + triangles = IntelliHelper::calculateTriangles(polygonData); + } + calculateVisiblity(); + return; } diff --git a/src/Image/IntelliShapedImage.h b/src/Image/IntelliShapedImage.h index fa45703..fbdd22e 100644 --- a/src/Image/IntelliShapedImage.h +++ b/src/Image/IntelliShapedImage.h @@ -1,76 +1,78 @@ #ifndef INTELLISHAPE_H #define INTELLISHAPE_H -#include"Image/IntelliRasterImage.h" -#include -#include"IntelliHelper/IntelliHelper.h" +#include "Image/IntelliRasterImage.h" +#include +#include "IntelliHelper/IntelliHelper.h" /*! * \brief The IntelliShapedImage manages a Shapedimage. */ -class IntelliShapedImage : public IntelliRasterImage{ - friend IntelliTool; +class IntelliShapedImage : public IntelliRasterImage { +friend IntelliTool; private: - /*! - * \brief The Triangulation of the Polygon. Saved here for performance reasons. - */ - std::vector triangles; +/*! + * \brief The Triangulation of the Polygon. Saved here for performance reasons. + */ +std::vector triangles; - /*! - * \brief Calculates the visibility based on the underlying polygon. - */ - virtual void calculateVisiblity() override; +/*! + * \brief Calculates the visibility based on the underlying polygon. + */ +virtual void calculateVisiblity() override; protected: - /*! - * \brief The Vertices of The Polygon. Needs to be a planar Polygon. - */ - std::vector polygonData; +/*! + * \brief The Vertices of The Polygon. Needs to be a planar Polygon. + */ +std::vector polygonData; public: - /*! - * \brief The Construcor of the IntelliShapedImage. Given the Image dimensions. - * \param weight - The weight of the Image. - * \param height - The height of the Image. - */ - IntelliShapedImage(int weight, int height); +/*! + * \brief The Construcor of the IntelliShapedImage. Given the Image dimensions. + * \param weight - The weight of the Image. + * \param height - The height of the Image. + */ +IntelliShapedImage(int weight, int height); - /*! - * \brief An Destructor. - */ - virtual ~IntelliShapedImage() override; +/*! + * \brief An Destructor. + */ +virtual ~IntelliShapedImage() override; - /*! - * \brief A function returning the displayable ImageData in a requested transparence and size. - * \param displaySize - The size, in whcih the Image should be displayed. - * \param alpha - The maximum alpha value, a pixel can have. - * \return A QImage which is ready to be displayed. - */ - virtual QImage getDisplayable(const QSize& displaySize, int alpha=255) override; +/*! + * \brief A function returning the displayable ImageData in a requested transparence and size. + * \param displaySize - The size, in whcih the Image should be displayed. + * \param alpha - The maximum alpha value, a pixel can have. + * \return A QImage which is ready to be displayed. + */ +virtual QImage getDisplayable(const QSize& displaySize, int alpha=255) override; - /** - * @brief A function returning the displayable ImageData in a requested transparence and it's standart size. - * @param alpha - The maximum alpha value, a pixel can have. - * @return A QImage which is ready to be displayed. - */ - virtual QImage getDisplayable(int alpha=255) override; +/** + * @brief A function returning the displayable ImageData in a requested transparence and it's standart size. + * @param alpha - The maximum alpha value, a pixel can have. + * @return A QImage which is ready to be displayed. + */ +virtual QImage getDisplayable(int alpha=255) override; - /*! - * \brief A function that copys all that returns a [allocated] Image - * \return A [allocated] Image with all the properties of the instance. - */ - virtual IntelliImage* getDeepCopy() override; +/*! + * \brief A function that copys all that returns a [allocated] Image + * \return A [allocated] Image with all the properties of the instance. + */ +virtual IntelliImage* getDeepCopy() override; - /*! - * \brief A function that returns the Polygondata if existent. - * \return The Polygondata if existent. - */ - virtual std::vector getPolygonData() override{return polygonData;} +/*! + * \brief A function that returns the Polygondata if existent. + * \return The Polygondata if existent. + */ +virtual std::vector getPolygonData() override { + return polygonData; +} - /*! - * \brief A function that sets the data of the visible Polygon. - * \param polygonData - The Vertices of the Polygon. Just Planar Polygons are allowed. - */ - virtual void setPolygon(const std::vector& polygonData) override; +/*! + * \brief A function that sets the data of the visible Polygon. + * \param polygonData - The Vertices of the Polygon. Just Planar Polygons are allowed. + */ +virtual void setPolygon(const std::vector& polygonData) override; }; #endif diff --git a/src/IntelliHelper/IntelliColorPicker.cpp b/src/IntelliHelper/IntelliColorPicker.cpp index 65586c7..534a8e5 100644 --- a/src/IntelliHelper/IntelliColorPicker.cpp +++ b/src/IntelliHelper/IntelliColorPicker.cpp @@ -1,8 +1,8 @@ #include "IntelliColorPicker.h" IntelliColorPicker::IntelliColorPicker(){ - firstColor = {255,0,0,255}; - secondColor = {0,255,255,255}; + firstColor = {255,0,0,255}; + secondColor = {0,255,255,255}; } IntelliColorPicker::~IntelliColorPicker(){ @@ -10,21 +10,21 @@ IntelliColorPicker::~IntelliColorPicker(){ } void IntelliColorPicker::switchColors(){ - std::swap(firstColor, secondColor); + std::swap(firstColor, secondColor); } QColor IntelliColorPicker::getFirstColor(){ - return this->firstColor; + return this->firstColor; } QColor IntelliColorPicker::getSecondColor(){ - return this->secondColor; + return this->secondColor; } void IntelliColorPicker::setFirstColor(QColor Color){ - this->firstColor = Color; + this->firstColor = Color; } void IntelliColorPicker::setSecondColor(QColor Color){ - this->secondColor = Color; + this->secondColor = Color; } diff --git a/src/IntelliHelper/IntelliColorPicker.h b/src/IntelliHelper/IntelliColorPicker.h index be26d24..817511d 100644 --- a/src/IntelliHelper/IntelliColorPicker.h +++ b/src/IntelliHelper/IntelliColorPicker.h @@ -1,64 +1,64 @@ #ifndef INTELLITOOLSETCOLORTOOL_H #define INTELLITOOLSETCOLORTOOL_H -#include"QColor" -#include"QPoint" -#include"QColorDialog" +#include "QColor" +#include "QPoint" +#include "QColorDialog" /*! * \brief The IntelliColorPicker manages the selected colors for one whole project. */ -class IntelliColorPicker{ +class IntelliColorPicker { public: - /*! - * \brief IntelliColorPicker constructor, setting 2 preset colors, be careful, theese color may change in production. - */ - IntelliColorPicker(); +/*! + * \brief IntelliColorPicker constructor, setting 2 preset colors, be careful, theese color may change in production. + */ +IntelliColorPicker(); - /*! - * \brief IntelliColorPicker destructor clears up his used memory, if there is some. - */ - virtual ~IntelliColorPicker(); +/*! + * \brief IntelliColorPicker destructor clears up his used memory, if there is some. + */ +virtual ~IntelliColorPicker(); - /*! - * \brief A function switching primary and secondary color. - */ - void switchColors(); +/*! + * \brief A function switching primary and secondary color. + */ +void switchColors(); - /*! - * \brief A function to read the primary selected color. - * \return Returns the primary color. - */ - QColor getFirstColor(); +/*! + * \brief A function to read the primary selected color. + * \return Returns the primary color. + */ +QColor getFirstColor(); - /*! - * \brief A function to read the secondary selected color. - * \return Returns the secondary color. - */ - QColor getSecondColor(); +/*! + * \brief A function to read the secondary selected color. + * \return Returns the secondary color. + */ +QColor getSecondColor(); - /*! - * \brief A function to set the primary color. - * \param Color - The color to be set as primary. - */ - void setFirstColor(QColor Color); +/*! + * \brief A function to set the primary color. + * \param Color - The color to be set as primary. + */ +void setFirstColor(QColor Color); - /*! - * \brief A function to set the secondary color. - * \param Color - The color to be set as secondary. - */ - void setSecondColor(QColor Color); +/*! + * \brief A function to set the secondary color. + * \param Color - The color to be set as secondary. + */ +void setSecondColor(QColor Color); private: - /*! - * \brief The primary color. - */ - QColor firstColor; +/*! + * \brief The primary color. + */ +QColor firstColor; - /*! - * \brief The secondary color. - */ - QColor secondColor; +/*! + * \brief The secondary color. + */ +QColor secondColor; }; #endif // INTELLITOOLSETCOLORTOOL_H diff --git a/src/IntelliHelper/IntelliHelper.cpp b/src/IntelliHelper/IntelliHelper.cpp index a7aaf9f..944d0c6 100644 --- a/src/IntelliHelper/IntelliHelper.cpp +++ b/src/IntelliHelper/IntelliHelper.cpp @@ -1,123 +1,123 @@ -#include"IntelliHelper.h" -#include -#include -#include +#include "IntelliHelper.h" +#include +#include +#include std::vector IntelliHelper::calculateTriangles(std::vector polyPoints){ - // helper for managing the triangle vertices and their state - struct TriangleHelper{ - QPoint vertex; - float interiorAngle; - int index; - bool isTip; - }; + // helper for managing the triangle vertices and their state + struct TriangleHelper { + QPoint vertex; + float interiorAngle; + int index; + bool isTip; + }; - // calculates the inner angle of 'point' - auto calculateInner = [](QPoint& point, QPoint& prev, QPoint& post){ - QPoint AP(point.x()-prev.x(), point.y()-prev.y()); - QPoint BP(point.x()-post.x(), point.y()-post.y()); + // calculates the inner angle of 'point' + auto calculateInner = [](QPoint& point, QPoint& prev, QPoint& post){ + QPoint AP(point.x()-prev.x(), point.y()-prev.y()); + QPoint BP(point.x()-post.x(), point.y()-post.y()); - float topSclar = AP.x()*BP.x()+AP.y()*BP.y(); - float absolute = sqrt(pow(AP.x(),2.)+pow(AP.y(),2.))*sqrt(pow(BP.x(),2.)+pow(BP.y(),2.)); - return acos(topSclar/absolute); - }; + float topSclar = AP.x()*BP.x()+AP.y()*BP.y(); + float absolute = sqrt(pow(AP.x(),2.)+pow(AP.y(),2.))*sqrt(pow(BP.x(),2.)+pow(BP.y(),2.)); + return acos(topSclar/absolute); + }; - // gets the first element of vec for which element.isTip == true holds - auto getTip= [](const std::vector& vec){ - size_t min = 0; - for(size_t i=0; i& vec){ + size_t min = 0; + for(size_t i=0; i=0?(index-1):(length-1); - }; + // get the vertex Index bevor index in relation to the container length + auto getPrev = [](int index, int length){ + return (index-1)>=0 ? (index-1) : (length-1); + }; - // get the vertex Index after index in relation to the container lenght - auto getPost = [](int index, int length){ - return (index+1)%length; - }; + // get the vertex Index after index in relation to the container lenght + auto getPost = [](int index, int length){ + return (index+1)%length; + }; - // return if the vertex is a tip - auto isTip = [](float angle){ - return static_cast(angle)<(M_PI/2.); - }; + // return if the vertex is a tip + auto isTip = [](float angle){ + return static_cast(angle)<(M_PI/2.); + }; - std::vector Vertices; - std::vector Triangles; + std::vector Vertices; + std::vector Triangles; - // set up all vertices and calculate intirior angle - for(int i=0; i(polyPoints.size()); i++){ - TriangleHelper helper; - int prev = getPrev(i, static_cast(polyPoints.size())); - int post = getPost(i, static_cast(polyPoints.size())); + // set up all vertices and calculate intirior angle + for(int i=0; i(polyPoints.size()); i++) { + TriangleHelper helper; + int prev = getPrev(i, static_cast(polyPoints.size())); + int post = getPost(i, static_cast(polyPoints.size())); - helper.vertex = polyPoints[static_cast(i)]; - helper.index = i; + helper.vertex = polyPoints[static_cast(i)]; + helper.index = i; - helper.interiorAngle = calculateInner(polyPoints[static_cast(i)], - polyPoints[static_cast(prev)], - polyPoints[static_cast(post)]); - helper.isTip = isTip(helper.interiorAngle); - Vertices.push_back(helper); - } + helper.interiorAngle = calculateInner(polyPoints[static_cast(i)], + polyPoints[static_cast(prev)], + polyPoints[static_cast(post)]); + helper.isTip = isTip(helper.interiorAngle); + Vertices.push_back(helper); + } - // search triangles based on the intirior angles of each vertey - while(Triangles.size() != polyPoints.size()-2){ - Triangle tri; - TriangleHelper smallest = getTip(Vertices); - int prev = getPrev(smallest.index, static_cast(Vertices.size())); - int post = getPost(smallest.index, static_cast(Vertices.size())); + // search triangles based on the intirior angles of each vertey + while(Triangles.size() != polyPoints.size()-2) { + Triangle tri; + TriangleHelper smallest = getTip(Vertices); + int prev = getPrev(smallest.index, static_cast(Vertices.size())); + int post = getPost(smallest.index, static_cast(Vertices.size())); - // set triangle and push it - tri.A = Vertices[static_cast(prev)].vertex; - tri.B = Vertices[static_cast(smallest.index)].vertex; - tri.C = Vertices[static_cast(post)].vertex; - Triangles.push_back(tri); + // set triangle and push it + tri.A = Vertices[static_cast(prev)].vertex; + tri.B = Vertices[static_cast(smallest.index)].vertex; + tri.C = Vertices[static_cast(post)].vertex; + Triangles.push_back(tri); - // update Vertice array - Vertices.erase(Vertices.begin()+smallest.index); - for(size_t i=static_cast(smallest.index); i(smallest.index); i(Vertices.size())); - int postOfPrev = getPost(prev, static_cast(Vertices.size())); + // calcultae neighboors of prev and post to calculate new interior angles + int prevOfPrev = getPrev(prev, static_cast(Vertices.size())); + int postOfPrev = getPost(prev, static_cast(Vertices.size())); - int prevOfPost = getPrev(post, static_cast(Vertices.size())); - int postOfPost = getPost(post, static_cast(Vertices.size())); + int prevOfPost = getPrev(post, static_cast(Vertices.size())); + int postOfPost = getPost(post, static_cast(Vertices.size())); - // update vertices with interior angles - // updtae prev - Vertices[static_cast(prev)].interiorAngle = calculateInner(Vertices[static_cast(prev)].vertex, - Vertices[static_cast(prevOfPrev)].vertex, - Vertices[static_cast(postOfPrev)].vertex); - Vertices[static_cast(prev)].isTip = isTip(Vertices[static_cast(prev)].interiorAngle); - // update post - Vertices[static_cast(post)].interiorAngle = calculateInner(Vertices[static_cast(post)].vertex, - Vertices[static_cast(prevOfPost)].vertex, - Vertices[static_cast(postOfPost)].vertex); - Vertices[static_cast(post)].isTip = isTip(Vertices[static_cast(post)].interiorAngle); - } - return Triangles; + // update vertices with interior angles + // updtae prev + Vertices[static_cast(prev)].interiorAngle = calculateInner(Vertices[static_cast(prev)].vertex, + Vertices[static_cast(prevOfPrev)].vertex, + Vertices[static_cast(postOfPrev)].vertex); + Vertices[static_cast(prev)].isTip = isTip(Vertices[static_cast(prev)].interiorAngle); + // update post + Vertices[static_cast(post)].interiorAngle = calculateInner(Vertices[static_cast(post)].vertex, + Vertices[static_cast(prevOfPost)].vertex, + Vertices[static_cast(postOfPost)].vertex); + Vertices[static_cast(post)].isTip = isTip(Vertices[static_cast(post)].interiorAngle); + } + return Triangles; } bool IntelliHelper::isInPolygon(std::vector &triangles, QPoint &point){ - for(auto triangle : triangles){ - if(IntelliHelper::isInTriangle(triangle, point)){ - return true; - } - } - return false; + for(auto triangle : triangles) { + if(IntelliHelper::isInTriangle(triangle, point)) { + return true; + } + } + return false; } diff --git a/src/IntelliHelper/IntelliHelper.h b/src/IntelliHelper/IntelliHelper.h index 0e511a7..2af1748 100644 --- a/src/IntelliHelper/IntelliHelper.h +++ b/src/IntelliHelper/IntelliHelper.h @@ -1,63 +1,63 @@ #ifndef INTELLIHELPER_H #define INTELLIHELPER_H -#include -#include +#include +#include /*! * \brief The Triangle struct holds the 3 vertices of a triangle. */ -struct Triangle{ - QPoint A,B,C; +struct Triangle { + QPoint A,B,C; }; namespace IntelliHelper { - /*! - * \brief A function to get the 2*area of a traingle, using its determinat. - * \param p1 - The Point to check its side. - * \param p2 - The first Point of the spanning Line - * \param p3 - The second Point of the spanning line. - * \return Returns the area of the traingle*2 - */ - inline float sign(QPoint& p1, QPoint& p2, QPoint& p3){ - return (p1.x()-p3.x())*(p2.y()-p3.y())-(p2.x()-p3.x())*(p1.y()-p3.y()); - } +/*! + * \brief A function to get the 2*area of a traingle, using its determinat. + * \param p1 - The Point to check its side. + * \param p2 - The first Point of the spanning Line + * \param p3 - The second Point of the spanning line. + * \return Returns the area of the traingle*2 + */ +inline float sign(QPoint& p1, QPoint& p2, QPoint& p3){ + return (p1.x()-p3.x())*(p2.y()-p3.y())-(p2.x()-p3.x())*(p1.y()-p3.y()); +} - /*! - * \brief A function to check if a given point is in a triangle. - * \param tri - The triangle to check, if it contains the point. - * \param P - The point to check if it is in the triangle. - * \return Returns true if the point is in the triangle, false otheriwse - */ - inline bool isInTriangle(Triangle& tri, QPoint& P){ - float val1, val2, val3; - bool neg, pos; +/*! + * \brief A function to check if a given point is in a triangle. + * \param tri - The triangle to check, if it contains the point. + * \param P - The point to check if it is in the triangle. + * \return Returns true if the point is in the triangle, false otheriwse + */ +inline bool isInTriangle(Triangle& tri, QPoint& P){ + float val1, val2, val3; + bool neg, pos; - val1 = IntelliHelper::sign(P,tri.A,tri.B); - val2 = IntelliHelper::sign(P,tri.B,tri.C); - val3 = IntelliHelper::sign(P,tri.C,tri.A); + val1 = IntelliHelper::sign(P,tri.A,tri.B); + val2 = IntelliHelper::sign(P,tri.B,tri.C); + val3 = IntelliHelper::sign(P,tri.C,tri.A); - neg = (val1<0.f) || (val2<0.f) || (val3<0.f); - pos = (val1>0.f) || (val2>0.f) || (val3>0.f); + neg = (val1<0.f) || (val2<0.f) || (val3<0.f); + pos = (val1>0.f) || (val2>0.f) || (val3>0.f); - return !(neg && pos); - } + return !(neg && pos); +} - /*! - * \brief A function to split a polygon in its spanning traingles by using Meisters Theorem of graph theory by clipping ears of a planar graph. - * \param polyPoints - The Vertices of the polygon. - * \return Returns a Container of disjoint Triangles, which desribe the polygon area. - */ - std::vector calculateTriangles(std::vector polyPoints); +/*! + * \brief A function to split a polygon in its spanning traingles by using Meisters Theorem of graph theory by clipping ears of a planar graph. + * \param polyPoints - The Vertices of the polygon. + * \return Returns a Container of disjoint Triangles, which desribe the polygon area. + */ +std::vector calculateTriangles(std::vector polyPoints); - /*! - * \brief A function to check if a point lies in a polygon by checking its spanning triangles. - * \param triangles - The spanning triangles of the planar polygon. - * \param point - The point to checl, if it lies in the polygon. - * \return Returns true if the point lies in the üpolygon, otherwise false. - */ - bool isInPolygon(std::vector &triangles, QPoint &point); +/*! + * \brief A function to check if a point lies in a polygon by checking its spanning triangles. + * \param triangles - The spanning triangles of the planar polygon. + * \param point - The point to checl, if it lies in the polygon. + * \return Returns true if the point lies in the üpolygon, otherwise false. + */ +bool isInPolygon(std::vector &triangles, QPoint &point); } #endif diff --git a/src/Layer/PaintingArea.cpp b/src/Layer/PaintingArea.cpp index 88632af..4a18918 100644 --- a/src/Layer/PaintingArea.cpp +++ b/src/Layer/PaintingArea.cpp @@ -18,338 +18,338 @@ #include "Tool/IntelliToolFloodFill.h" #include "Tool/IntelliToolPolygon.h" -PaintingArea::PaintingArea(int maxWidth, int maxHeight, QWidget *parent) - :QWidget(parent){ - this->Tool = nullptr; - this->setUp(maxWidth, maxHeight); - this->addLayer(200,200,0,0,ImageType::Shaped_Image); - layerBundle[0].image->drawPlain(QColor(0,0,255,255)); - std::vector polygon; - polygon.push_back(QPoint(100,000)); - polygon.push_back(QPoint(200,100)); - polygon.push_back(QPoint(100,200)); - polygon.push_back(QPoint(000,100)); - layerBundle[0].image->setPolygon(polygon); +PaintingArea::PaintingArea(int maxWidth, int maxHeight, QWidget*parent) + : QWidget(parent){ + this->Tool = nullptr; + this->setUp(maxWidth, maxHeight); + this->addLayer(200,200,0,0,ImageType::Shaped_Image); + layerBundle[0].image->drawPlain(QColor(0,0,255,255)); + std::vector polygon; + polygon.push_back(QPoint(100,000)); + polygon.push_back(QPoint(200,100)); + polygon.push_back(QPoint(100,200)); + polygon.push_back(QPoint(000,100)); + layerBundle[0].image->setPolygon(polygon); - this->addLayer(200,200,150,150); - layerBundle[1].image->drawPlain(QColor(0,255,0,255)); - layerBundle[1].alpha=200; + this->addLayer(200,200,150,150); + layerBundle[1].image->drawPlain(QColor(0,255,0,255)); + layerBundle[1].alpha=200; - activeLayer=0; + activeLayer=0; } PaintingArea::~PaintingArea(){ - delete Tool; + delete Tool; } void PaintingArea::setUp(int maxWidth, int maxHeight){ - //set standart parameter - this->maxWidth = maxWidth; - this->maxHeight = maxHeight; - Canvas = new QImage(maxWidth,maxHeight, QImage::Format_ARGB32); + //set standart parameter + this->maxWidth = maxWidth; + this->maxHeight = maxHeight; + Canvas = new QImage(maxWidth,maxHeight, QImage::Format_ARGB32); - // Roots the widget to the top left even if resized - setAttribute(Qt::WA_StaticContents); + // Roots the widget to the top left even if resized + setAttribute(Qt::WA_StaticContents); } int PaintingArea::addLayer(int width, int height, int widthOffset, int heightOffset, ImageType type){ - LayerObject newLayer; - newLayer.width = width; - newLayer.height = height; - newLayer.widthOffset = widthOffset; - newLayer.heightOffset = heightOffset; - if(type==ImageType::Raster_Image){ - newLayer.image = new IntelliRasterImage(width,height); - }else if(type==ImageType::Shaped_Image){ - newLayer.image = new IntelliShapedImage(width, height); - } - newLayer.alpha = 255; - this->layerBundle.push_back(newLayer); - return static_cast(layerBundle.size())-1; + LayerObject newLayer; + newLayer.width = width; + newLayer.height = height; + newLayer.widthOffset = widthOffset; + newLayer.heightOffset = heightOffset; + if(type==ImageType::Raster_Image) { + newLayer.image = new IntelliRasterImage(width,height); + }else if(type==ImageType::Shaped_Image) { + newLayer.image = new IntelliShapedImage(width, height); + } + newLayer.alpha = 255; + this->layerBundle.push_back(newLayer); + return static_cast(layerBundle.size())-1; } void PaintingArea::deleteLayer(int index){ - if(index(layerBundle.size())){ - this->layerBundle.erase(layerBundle.begin()+index); - if(activeLayer>=index){ - activeLayer--; - } - } + if(index(layerBundle.size())) { + this->layerBundle.erase(layerBundle.begin()+index); + if(activeLayer>=index) { + activeLayer--; + } + } } void PaintingArea::slotDeleteActiveLayer(){ - if(activeLayer>=0 && activeLayer < static_cast(layerBundle.size())){ - this->layerBundle.erase(layerBundle.begin()+activeLayer); - activeLayer--; - } + if(activeLayer>=0 && activeLayer < static_cast(layerBundle.size())) { + this->layerBundle.erase(layerBundle.begin()+activeLayer); + activeLayer--; + } } void PaintingArea::setLayerToActive(int index){ - if(index>=0&&index(layerBundle.size())){ - this->activeLayer=index; - } + if(index>=0&&index(layerBundle.size())) { + this->activeLayer=index; + } } void PaintingArea::setAlphaOfLayer(int index, int alpha){ - if(index>=0&&index(layerBundle.size())){ - layerBundle[static_cast(index)].alpha=alpha; - } + if(index>=0&&index(layerBundle.size())) { + layerBundle[static_cast(index)].alpha=alpha; + } } // Used to load the image and place it in the widget bool PaintingArea::open(const QString &fileName){ - if(this->activeLayer==-1){ - return false; - } - IntelliImage* active = layerBundle[static_cast(activeLayer)].image; - bool open = active->loadImage(fileName); - active->calculateVisiblity(); - update(); - return open; + if(this->activeLayer==-1) { + return false; + } + IntelliImage* active = layerBundle[static_cast(activeLayer)].image; + bool open = active->loadImage(fileName); + active->calculateVisiblity(); + update(); + return open; } // Save the current image -bool PaintingArea::save(const QString &fileName, const char *fileFormat){ - if(layerBundle.size()==0){ - return false; - } - this->assembleLayers(true); +bool PaintingArea::save(const QString &fileName, const char*fileFormat){ + if(layerBundle.size()==0) { + return false; + } + this->assembleLayers(true); - if(!strcmp(fileFormat,"PNG")){ - QImage visibleImage = Canvas->convertToFormat(QImage::Format_Indexed8); - fileFormat = "png"; - if (visibleImage.save(fileName, fileFormat)) { - return true; - } else { - return false; - } - } + if(!strcmp(fileFormat,"PNG")) { + QImage visibleImage = Canvas->convertToFormat(QImage::Format_Indexed8); + fileFormat = "png"; + if (visibleImage.save(fileName, fileFormat)) { + return true; + } else { + return false; + } + } - if (Canvas->save(fileName, fileFormat)) { - return true; - } else { - return false; - } + if (Canvas->save(fileName, fileFormat)) { + return true; + } else { + return false; + } } // Color the image area with white void PaintingArea::floodFill(int r, int g, int b, int a){ - if(this->activeLayer==-1){ - return; - } - IntelliImage* active = layerBundle[static_cast(activeLayer)].image; - active->drawPlain(QColor(r, g, b, a)); - update(); + if(this->activeLayer==-1) { + return; + } + IntelliImage* active = layerBundle[static_cast(activeLayer)].image; + active->drawPlain(QColor(r, g, b, a)); + update(); } void PaintingArea::movePositionActive(int x, int y){ - layerBundle[static_cast(activeLayer)].widthOffset += x; - layerBundle[static_cast(activeLayer)].heightOffset += y; + layerBundle[static_cast(activeLayer)].widthOffset += x; + layerBundle[static_cast(activeLayer)].heightOffset += y; } void PaintingArea::moveActiveLayer(int idx){ - if(idx==1){ - this->activateUpperLayer(); - }else if(idx==-1){ - this->activateLowerLayer(); - } + if(idx==1) { + this->activateUpperLayer(); + }else if(idx==-1) { + this->activateLowerLayer(); + } } void PaintingArea::slotActivateLayer(int a){ - if(a>=0 && a < static_cast(layerBundle.size())){ - this->setLayerToActive(a); - } + if(a>=0 && a < static_cast(layerBundle.size())) { + this->setLayerToActive(a); + } } void PaintingArea::colorPickerSetFirstColor(){ - QColor clr = QColorDialog::getColor(colorPicker.getFirstColor(), nullptr, "Main Color", QColorDialog::DontUseNativeDialog); - this->colorPicker.setFirstColor(clr); + QColor clr = QColorDialog::getColor(colorPicker.getFirstColor(), nullptr, "Main Color", QColorDialog::DontUseNativeDialog); + this->colorPicker.setFirstColor(clr); } void PaintingArea::colorPickerSetSecondColor(){ - QColor clr = QColorDialog::getColor(colorPicker.getSecondColor(), nullptr, "Secondary Color", QColorDialog::DontUseNativeDialog); - this->colorPicker.setSecondColor(clr); + QColor clr = QColorDialog::getColor(colorPicker.getSecondColor(), nullptr, "Secondary Color", QColorDialog::DontUseNativeDialog); + this->colorPicker.setSecondColor(clr); } void PaintingArea::colorPickerSwitchColor(){ - this->colorPicker.switchColors(); + this->colorPicker.switchColors(); } void PaintingArea::createPenTool(){ - delete this->Tool; - Tool = new IntelliToolPen(this, &colorPicker); + delete this->Tool; + Tool = new IntelliToolPen(this, &colorPicker); } void PaintingArea::createPlainTool(){ - delete this->Tool; - Tool = new IntelliToolPlainTool(this, &colorPicker); + delete this->Tool; + Tool = new IntelliToolPlainTool(this, &colorPicker); } void PaintingArea::createLineTool(){ - delete this->Tool; - Tool = new IntelliToolLine(this, &colorPicker); + delete this->Tool; + Tool = new IntelliToolLine(this, &colorPicker); } void PaintingArea::createRectangleTool(){ - delete this->Tool; - Tool = new IntelliToolRectangle(this, &colorPicker); + delete this->Tool; + Tool = new IntelliToolRectangle(this, &colorPicker); } void PaintingArea::createCircleTool(){ - delete this->Tool; - Tool = new IntelliToolCircle(this, &colorPicker); + delete this->Tool; + Tool = new IntelliToolCircle(this, &colorPicker); } void PaintingArea::createPolygonTool(){ - delete this->Tool; - Tool = new IntelliToolPolygon(this, &colorPicker); + delete this->Tool; + Tool = new IntelliToolPolygon(this, &colorPicker); } void PaintingArea::createFloodFillTool(){ - delete this->Tool; - Tool = new IntelliToolFloodFill(this, &colorPicker); + delete this->Tool; + Tool = new IntelliToolFloodFill(this, &colorPicker); } int PaintingArea::getWidthOfActive(){ - return this->layerBundle[activeLayer].width; + return this->layerBundle[activeLayer].width; } int PaintingArea::getHeightOfActive(){ - return this->layerBundle[activeLayer].height; + return this->layerBundle[activeLayer].height; } // If a mouse button is pressed check if it was the // left button and if so store the current position // Set that we are currently drawing -void PaintingArea::mousePressEvent(QMouseEvent *event){ - if(Tool == nullptr) - return; - int x = event->x()-layerBundle[activeLayer].widthOffset; - int y = event->y()-layerBundle[activeLayer].heightOffset; - if(event->button() == Qt::LeftButton){ - Tool->onMouseLeftPressed(x, y); - }else if(event->button() == Qt::RightButton){ - Tool->onMouseRightPressed(x, y); - } - update(); +void PaintingArea::mousePressEvent(QMouseEvent*event){ + if(Tool == nullptr) + return; + int x = event->x()-layerBundle[activeLayer].widthOffset; + int y = event->y()-layerBundle[activeLayer].heightOffset; + if(event->button() == Qt::LeftButton) { + Tool->onMouseLeftPressed(x, y); + }else if(event->button() == Qt::RightButton) { + Tool->onMouseRightPressed(x, y); + } + update(); } // When the mouse moves if the left button is clicked // we call the drawline function which draws a line // from the last position to the current -void PaintingArea::mouseMoveEvent(QMouseEvent *event){ - if(Tool == nullptr) - return; - int x = event->x()-layerBundle[activeLayer].widthOffset; - int y = event->y()-layerBundle[activeLayer].heightOffset; - Tool->onMouseMoved(x, y); - update(); +void PaintingArea::mouseMoveEvent(QMouseEvent*event){ + if(Tool == nullptr) + return; + int x = event->x()-layerBundle[activeLayer].widthOffset; + int y = event->y()-layerBundle[activeLayer].heightOffset; + Tool->onMouseMoved(x, y); + update(); } // If the button is released we set variables to stop drawing -void PaintingArea::mouseReleaseEvent(QMouseEvent *event){ - if(Tool == nullptr) - return; - int x = event->x()-layerBundle[activeLayer].widthOffset; - int y = event->y()-layerBundle[activeLayer].heightOffset; - if(event->button() == Qt::LeftButton){ - Tool->onMouseLeftReleased(x, y); - }else if(event->button() == Qt::RightButton){ - Tool->onMouseRightReleased(x, y); - } - update(); +void PaintingArea::mouseReleaseEvent(QMouseEvent*event){ + if(Tool == nullptr) + return; + int x = event->x()-layerBundle[activeLayer].widthOffset; + int y = event->y()-layerBundle[activeLayer].heightOffset; + if(event->button() == Qt::LeftButton) { + Tool->onMouseLeftReleased(x, y); + }else if(event->button() == Qt::RightButton) { + Tool->onMouseRightReleased(x, y); + } + update(); } -void PaintingArea::wheelEvent(QWheelEvent *event){ - QPoint numDegrees = event->angleDelta() / 8; - if(!numDegrees.isNull()){ - QPoint numSteps = numDegrees / 15; - Tool->onWheelScrolled(numSteps.y()*-1); - } +void PaintingArea::wheelEvent(QWheelEvent*event){ + QPoint numDegrees = event->angleDelta() / 8; + if(!numDegrees.isNull()) { + QPoint numSteps = numDegrees / 15; + Tool->onWheelScrolled(numSteps.y()* -1); + } } // QPainter provides functions to draw on the widget // The QPaintEvent is sent to widgets that need to // update themselves -void PaintingArea::paintEvent(QPaintEvent *event){ - this->assembleLayers(); +void PaintingArea::paintEvent(QPaintEvent*event){ + this->assembleLayers(); - QPainter painter(this); - QRect dirtyRec = event->rect(); - painter.drawImage(dirtyRec, *Canvas, dirtyRec); - update(); + QPainter painter(this); + QRect dirtyRec = event->rect(); + painter.drawImage(dirtyRec, *Canvas, dirtyRec); + update(); } // Resize the image to slightly larger then the main window // to cut down on the need to resize the image -void PaintingArea::resizeEvent(QResizeEvent *event){ - //TODO wait till tool works - update(); +void PaintingArea::resizeEvent(QResizeEvent*event){ + //TODO wait till tool works + update(); } -void PaintingArea::resizeImage(QImage *image_res, const QSize &newSize){ - //TODO implement +void PaintingArea::resizeImage(QImage*image_res, const QSize &newSize){ + //TODO implement } void PaintingArea::activateUpperLayer(){ - if(activeLayer!=-1 && activeLayer0){ - std::swap(layerBundle[activeLayer], layerBundle[activeLayer-1]); - activeLayer--; - } + if(activeLayer!=-1 && activeLayer>0) { + std::swap(layerBundle[activeLayer], layerBundle[activeLayer-1]); + activeLayer--; + } } void PaintingArea::assembleLayers(bool forSaving){ - if(forSaving){ - Canvas->fill(Qt::GlobalColor::transparent); - }else{ - Canvas->fill(Qt::GlobalColor::black); - } - for(size_t i=0; igetDisplayable(layer.alpha); - QColor clr_0; - QColor clr_1; - for(int y=0; y=maxHeight) break; - for(int x=0; x=maxWidth) break; - clr_0=Canvas->pixelColor(layer.widthOffset+x, layer.heightOffset+y); - clr_1=cpy.pixelColor(x,y); - float t = static_cast(clr_1.alpha())/255.f; - int r =static_cast(static_cast(clr_1.red())*(t)+static_cast(clr_0.red())*(1.f-t)+0.5f); - int g =static_cast(static_cast(clr_1.green())*(t)+static_cast(clr_0.green())*(1.f-t)+0.5f); - int b =static_cast(static_cast(clr_1.blue())*(t)+static_cast(clr_0.blue()*(1.f-t))+0.5f); - int a =std::min(clr_0.alpha()+clr_1.alpha(), 255); - clr_0.setRed(r); - clr_0.setGreen(g); - clr_0.setBlue(b); - clr_0.setAlpha(a); + if(forSaving) { + Canvas->fill(Qt::GlobalColor::transparent); + }else{ + Canvas->fill(Qt::GlobalColor::black); + } + for(size_t i=0; igetDisplayable(layer.alpha); + QColor clr_0; + QColor clr_1; + for(int y=0; y=maxHeight) break; + for(int x=0; x=maxWidth) break; + clr_0=Canvas->pixelColor(layer.widthOffset+x, layer.heightOffset+y); + clr_1=cpy.pixelColor(x,y); + float t = static_cast(clr_1.alpha())/255.f; + int r =static_cast(static_cast(clr_1.red())*(t)+static_cast(clr_0.red())*(1.f-t)+0.5f); + int g =static_cast(static_cast(clr_1.green())*(t)+static_cast(clr_0.green())*(1.f-t)+0.5f); + int b =static_cast(static_cast(clr_1.blue())*(t)+static_cast(clr_0.blue()*(1.f-t))+0.5f); + int a =std::min(clr_0.alpha()+clr_1.alpha(), 255); + clr_0.setRed(r); + clr_0.setGreen(g); + clr_0.setBlue(b); + clr_0.setAlpha(a); - Canvas->setPixelColor(layer.widthOffset+x, layer.heightOffset+y, clr_0); - } - } - } + Canvas->setPixelColor(layer.widthOffset+x, layer.heightOffset+y, clr_0); + } + } + } } void PaintingArea::createTempLayerAfter(int idx){ - if(idx>=0){ - LayerObject newLayer; - newLayer.alpha = 255; - newLayer.height = layerBundle[idx].height; - newLayer.width = layerBundle[idx].width; - newLayer.heightOffset = layerBundle[idx].heightOffset; - newLayer.widthOffset = layerBundle[idx].widthOffset; - newLayer.image = layerBundle[idx].image->getDeepCopy(); - layerBundle.insert(layerBundle.begin()+idx+1,newLayer); - } + if(idx>=0) { + LayerObject newLayer; + newLayer.alpha = 255; + newLayer.height = layerBundle[idx].height; + newLayer.width = layerBundle[idx].width; + newLayer.heightOffset = layerBundle[idx].heightOffset; + newLayer.widthOffset = layerBundle[idx].widthOffset; + newLayer.image = layerBundle[idx].image->getDeepCopy(); + layerBundle.insert(layerBundle.begin()+idx+1,newLayer); + } } diff --git a/src/Tool/IntelliColorPicker.cpp b/src/Tool/IntelliColorPicker.cpp index 55af5b9..67ba35c 100644 --- a/src/Tool/IntelliColorPicker.cpp +++ b/src/Tool/IntelliColorPicker.cpp @@ -2,9 +2,9 @@ #include "QDebug" IntelliColorPicker::IntelliColorPicker(PaintingArea* Area) - :IntelliTool(Area){ - firstColor = {255,0,0,255}; - secondColor = {0,0,255,255}; + : IntelliTool(Area){ + firstColor = {255,0,0,255}; + secondColor = {0,0,255,255}; } IntelliColorPicker::~IntelliColorPicker(){ @@ -12,25 +12,25 @@ IntelliColorPicker::~IntelliColorPicker(){ } void IntelliColorPicker::getColorbar(int firstOrSecondColor = 1){ - QString Titel; - QColor newColor; - if(firstOrSecondColor == 1){ - Titel = "Choose first Color"; - newColor = QColorDialog::getColor(this->firstColor,nullptr,Titel); - this->firstColor = newColor; - qDebug() << "Firstcolor" << this->firstColor; - } - else{ - Titel = "Choose second Color"; - newColor = QColorDialog::getColor(this->secondColor,nullptr,Titel); - this->secondColor = newColor; - } + QString Titel; + QColor newColor; + if(firstOrSecondColor == 1) { + Titel = "Choose first Color"; + newColor = QColorDialog::getColor(this->firstColor,nullptr,Titel); + this->firstColor = newColor; + qDebug() << "Firstcolor" << this->firstColor; + } + else{ + Titel = "Choose second Color"; + newColor = QColorDialog::getColor(this->secondColor,nullptr,Titel); + this->secondColor = newColor; + } } QColor IntelliColorPicker::getFirstColor(){ - return firstColor; + return firstColor; } QColor IntelliColorPicker::getSecondColor(){ - return secondColor; + return secondColor; } diff --git a/src/Tool/IntelliTool.cpp b/src/Tool/IntelliTool.cpp index 73a8f95..e83fef9 100644 --- a/src/Tool/IntelliTool.cpp +++ b/src/Tool/IntelliTool.cpp @@ -1,9 +1,9 @@ -#include"IntelliTool.h" -#include"Layer/PaintingArea.h" +#include "IntelliTool.h" +#include "Layer/PaintingArea.h" IntelliTool::IntelliTool(PaintingArea* Area, IntelliColorPicker* colorPicker){ - this->Area=Area; - this->colorPicker=colorPicker; + this->Area=Area; + this->colorPicker=colorPicker; } @@ -12,71 +12,70 @@ IntelliTool::~IntelliTool(){ } void IntelliTool::onMouseRightPressed(int x, int y){ - if(drawing){ - drawing=false; - this->deleteToolLayer(); - } + if(drawing) { + drawing=false; + this->deleteToolLayer(); + } } void IntelliTool::onMouseRightReleased(int x, int y){ - //optional for tool + //optional for tool } void IntelliTool::onMouseLeftPressed(int x, int y){ - this->drawing=true; - //create drawing layer - this->createToolLayer(); - Canvas->image->calculateVisiblity(); + this->drawing=true; + //create drawing layer + this->createToolLayer(); + Canvas->image->calculateVisiblity(); } void IntelliTool::onMouseLeftReleased(int x, int y){ - if(drawing){ - drawing=false; - this->mergeToolLayer(); - this->deleteToolLayer(); - Active->image->calculateVisiblity(); - } + if(drawing) { + drawing=false; + this->mergeToolLayer(); + this->deleteToolLayer(); + Active->image->calculateVisiblity(); + } } void IntelliTool::onMouseMoved(int x, int y){ - if(drawing) - Canvas->image->calculateVisiblity(); + if(drawing) + Canvas->image->calculateVisiblity(); } void IntelliTool::onWheelScrolled(int value){ - //if needed for future general tasks implement in here + //if needed for future general tasks implement in here } void IntelliTool::createToolLayer(){ - Area->createTempLayerAfter(Area->activeLayer); - this->Active=&Area->layerBundle[Area->activeLayer]; - this->Canvas=&Area->layerBundle[Area->activeLayer+1]; + Area->createTempLayerAfter(Area->activeLayer); + this->Active=&Area->layerBundle[Area->activeLayer]; + this->Canvas=&Area->layerBundle[Area->activeLayer+1]; } void IntelliTool::mergeToolLayer(){ - QColor clr_0; - QColor clr_1; - for(int y=0; yheight; y++){ - for(int x=0; xwidth; x++){ - clr_0=Active->image->imageData.pixelColor(x,y); - clr_1=Canvas->image->imageData.pixelColor(x,y); - float t = static_cast(clr_1.alpha())/255.f; - int r =static_cast(static_cast(clr_1.red())*(t)+static_cast(clr_0.red())*(1.f-t)+0.5f); - int g =static_cast(static_cast(clr_1.green())*(t)+static_cast(clr_0.green())*(1.f-t)+0.5f); - int b =static_cast(static_cast(clr_1.blue())*(t)+static_cast(clr_0.blue()*(1.f-t))+0.5f); - int a =std::min(clr_0.alpha()+clr_1.alpha(), 255); - clr_0.setRed(r); - clr_0.setGreen(g); - clr_0.setBlue(b); - clr_0.setAlpha(a); + QColor clr_0; + QColor clr_1; + for(int y=0; yheight; y++) { + for(int x=0; xwidth; x++) { + clr_0=Active->image->imageData.pixelColor(x,y); + clr_1=Canvas->image->imageData.pixelColor(x,y); + float t = static_cast(clr_1.alpha())/255.f; + int r =static_cast(static_cast(clr_1.red())*(t)+static_cast(clr_0.red())*(1.f-t)+0.5f); + int g =static_cast(static_cast(clr_1.green())*(t)+static_cast(clr_0.green())*(1.f-t)+0.5f); + int b =static_cast(static_cast(clr_1.blue())*(t)+static_cast(clr_0.blue()*(1.f-t))+0.5f); + int a =std::min(clr_0.alpha()+clr_1.alpha(), 255); + clr_0.setRed(r); + clr_0.setGreen(g); + clr_0.setBlue(b); + clr_0.setAlpha(a); - Active->image->imageData.setPixelColor(x, y, clr_0); - } - } + Active->image->imageData.setPixelColor(x, y, clr_0); + } + } } void IntelliTool::deleteToolLayer(){ - Area->deleteLayer(Area->activeLayer+1); - this->Canvas=nullptr; + Area->deleteLayer(Area->activeLayer+1); + this->Canvas=nullptr; } - diff --git a/src/Tool/IntelliTool.h b/src/Tool/IntelliTool.h index a00fbb9..3903edb 100644 --- a/src/Tool/IntelliTool.h +++ b/src/Tool/IntelliTool.h @@ -10,101 +10,101 @@ class PaintingArea; /*! * \brief An abstract class that manages the basic events, like mouse clicks or scrolls events. */ -class IntelliTool{ +class IntelliTool { private: - /*! - * \brief A function that creates a layer to draw on. - */ - void createToolLayer(); +/*! + * \brief A function that creates a layer to draw on. + */ +void createToolLayer(); - /*! - * \brief A function that merges the drawing- and the active- layer. - */ - void mergeToolLayer(); +/*! + * \brief A function that merges the drawing- and the active- layer. + */ +void mergeToolLayer(); - /*! - * \brief A function that deletes the drawinglayer. - */ - void deleteToolLayer(); +/*! + * \brief A function that deletes the drawinglayer. + */ +void deleteToolLayer(); protected: - /*! - * \brief A pointer to the general PaintingArea to interact with. - */ - PaintingArea* Area; +/*! + * \brief A pointer to the general PaintingArea to interact with. + */ +PaintingArea* Area; - /*! - * \brief A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors. - */ - IntelliColorPicker* colorPicker; +/*! + * \brief A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors. + */ +IntelliColorPicker* colorPicker; - /*! - * \brief A pointer to the underlying active Layer, do not work on this. This is used for data grabbing or previews. - */ - LayerObject* Active; +/*! + * \brief A pointer to the underlying active Layer, do not work on this. This is used for data grabbing or previews. + */ +LayerObject* Active; - /*! - * \brief A pointer to the drawing canvas of the tool, work on this. - */ - LayerObject* Canvas; +/*! + * \brief A pointer to the drawing canvas of the tool, work on this. + */ +LayerObject* Canvas; - /*! - * \brief A flag checking if the user is currently drawing or not. - */ - bool drawing = false; +/*! + * \brief A flag checking if the user is currently drawing or not. + */ +bool drawing = false; public: - /*! - * \brief A constructor setting the general Painting Area and colorPicker. - * \param Area - The general PaintingArea used by the project. - * \param colorPicker - The general colorPicker used by the project. - */ - IntelliTool(PaintingArea* Area, IntelliColorPicker* colorPicker); +/*! + * \brief A constructor setting the general Painting Area and colorPicker. + * \param Area - The general PaintingArea used by the project. + * \param colorPicker - The general colorPicker used by the project. + */ +IntelliTool(PaintingArea* Area, IntelliColorPicker* colorPicker); - /*! - * \brief An abstract Destructor. - */ - virtual ~IntelliTool() = 0; +/*! + * \brief An abstract Destructor. + */ +virtual ~IntelliTool() = 0; - /*! - * \brief A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes! - * \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); +/*! + * \brief A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes! + * \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); - /*! - * \brief A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes! - * \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); +/*! + * \brief A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes! + * \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); - /*! - * \brief A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes! - * \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); +/*! + * \brief A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes! + * \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); - /*! - * \brief A function managing the left click Released of a Mouse. Call this in child classes! - * \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); +/*! + * \brief A function managing the left click Released of a Mouse. Call this in child classes! + * \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); - /*! - * \brief A function managing the scroll event. A positive value means scrolling outwards. Call this in child classes! - * \param value - The absolute the scroll has changed. - */ - virtual void onWheelScrolled(int value); +/*! + * \brief A function managing the scroll event. A positive value means scrolling outwards. Call this in child classes! + * \param value - The absolute the scroll has changed. + */ +virtual void onWheelScrolled(int value); - /*! - * \brief A function managing the mouse moved event. Call this in child classes! - * \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); +/*! + * \brief A function managing the mouse moved event. Call this in child classes! + * \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); }; diff --git a/src/Tool/IntelliToolCircle.cpp b/src/Tool/IntelliToolCircle.cpp index 00fb812..c602f53 100644 --- a/src/Tool/IntelliToolCircle.cpp +++ b/src/Tool/IntelliToolCircle.cpp @@ -4,9 +4,9 @@ #include IntelliToolCircle::IntelliToolCircle(PaintingArea* Area, IntelliColorPicker* colorPicker) - :IntelliTool(Area, colorPicker){ - this->alphaInner = QInputDialog::getInt(nullptr,"Inner Alpha Value", "Value:", 0,0,255,1); - this->edgeWidth = QInputDialog::getInt(nullptr,"Outer edge width", "Value:", 0,1,255,1); + : IntelliTool(Area, colorPicker){ + this->alphaInner = QInputDialog::getInt(nullptr,"Inner Alpha Value", "Value:", 0,0,255,1); + this->edgeWidth = QInputDialog::getInt(nullptr,"Outer edge width", "Value:", 0,1,255,1); } IntelliToolCircle::~IntelliToolCircle(){ @@ -14,74 +14,74 @@ IntelliToolCircle::~IntelliToolCircle(){ } void IntelliToolCircle::drawCyrcle(int radius){ - int outer = radius+20; - QColor inner = this->colorPicker->getSecondColor(); - inner.setAlpha(alphaInner); - int yMin, yMax, xMin, xMax; - yMin = Middle.y()-radius; - yMax = Middle.y()+radius; - // x = x0+-sqrt(r2-(y-y0)2) - for(int i=yMin; i<=yMax; i++){ - xMin = Middle.x()-sqrt(pow(radius,2)-pow(i-Middle.y(),2)); - xMax = Middle.x()+sqrt(pow(radius,2)-pow(i-Middle.y(),2)); - this->Canvas->image->drawLine(QPoint(xMin,i), QPoint(xMax,i),inner,1); - } + int outer = radius+20; + QColor inner = this->colorPicker->getSecondColor(); + inner.setAlpha(alphaInner); + int yMin, yMax, xMin, xMax; + yMin = Middle.y()-radius; + yMax = Middle.y()+radius; + // x = x0+-sqrt(r2-(y-y0)2) + for(int i=yMin; i<=yMax; i++) { + xMin = Middle.x()-sqrt(pow(radius,2)-pow(i-Middle.y(),2)); + xMax = Middle.x()+sqrt(pow(radius,2)-pow(i-Middle.y(),2)); + this->Canvas->image->drawLine(QPoint(xMin,i), QPoint(xMax,i),inner,1); + } - //TODO implement circle drawing algorithm bresenham - radius = radius +(this->edgeWidth/2.)-1.; - yMin = (Middle.y()-radius); - yMax = (Middle.y()+radius); - for(int i=yMin; i<=yMax; i++){ - xMin = Middle.x()-sqrt(pow(radius,2)-pow(i-Middle.y(),2)); - xMax = Middle.x()+sqrt(pow(radius,2)-pow(i-Middle.y(),2)); - this->Canvas->image->drawPoint(QPoint(xMin,i), colorPicker->getFirstColor(),edgeWidth); - this->Canvas->image->drawPoint(QPoint(xMax,i), colorPicker->getFirstColor(),edgeWidth); - } + //TODO implement circle drawing algorithm bresenham + radius = radius +(this->edgeWidth/2.)-1.; + yMin = (Middle.y()-radius); + yMax = (Middle.y()+radius); + for(int i=yMin; i<=yMax; i++) { + xMin = Middle.x()-sqrt(pow(radius,2)-pow(i-Middle.y(),2)); + xMax = Middle.x()+sqrt(pow(radius,2)-pow(i-Middle.y(),2)); + this->Canvas->image->drawPoint(QPoint(xMin,i), colorPicker->getFirstColor(),edgeWidth); + this->Canvas->image->drawPoint(QPoint(xMax,i), colorPicker->getFirstColor(),edgeWidth); + } - xMin = (Middle.x()-radius); - xMax = (Middle.x()+radius); - for(int i=xMin; i<=xMax; i++){ - int yMin = Middle.y()-sqrt(pow(radius,2)-pow(i-Middle.x(),2)); - int yMax = Middle.y()+sqrt(pow(radius,2)-pow(i-Middle.x(),2)); - this->Canvas->image->drawPoint(QPoint(i, yMin), colorPicker->getFirstColor(),edgeWidth); - this->Canvas->image->drawPoint(QPoint(i, yMax), colorPicker->getFirstColor(),edgeWidth); - } + xMin = (Middle.x()-radius); + xMax = (Middle.x()+radius); + for(int i=xMin; i<=xMax; i++) { + int yMin = Middle.y()-sqrt(pow(radius,2)-pow(i-Middle.x(),2)); + int yMax = Middle.y()+sqrt(pow(radius,2)-pow(i-Middle.x(),2)); + this->Canvas->image->drawPoint(QPoint(i, yMin), colorPicker->getFirstColor(),edgeWidth); + this->Canvas->image->drawPoint(QPoint(i, yMax), colorPicker->getFirstColor(),edgeWidth); + } } void IntelliToolCircle::onMouseRightPressed(int x, int y){ - IntelliTool::onMouseRightPressed(x,y); + IntelliTool::onMouseRightPressed(x,y); } void IntelliToolCircle::onMouseRightReleased(int x, int y){ - IntelliTool::onMouseRightReleased(x,y); + IntelliTool::onMouseRightReleased(x,y); } void IntelliToolCircle::onMouseLeftPressed(int x, int y){ - IntelliTool::onMouseLeftPressed(x,y); - this->Middle=QPoint(x,y); - int radius = 1; - drawCyrcle(radius); - Canvas->image->calculateVisiblity(); + IntelliTool::onMouseLeftPressed(x,y); + this->Middle=QPoint(x,y); + int radius = 1; + drawCyrcle(radius); + Canvas->image->calculateVisiblity(); } void IntelliToolCircle::onMouseLeftReleased(int x, int y){ - IntelliTool::onMouseLeftReleased(x,y); + IntelliTool::onMouseLeftReleased(x,y); } void IntelliToolCircle::onWheelScrolled(int value){ - IntelliTool::onWheelScrolled(value); - this->edgeWidth+=value; - if(this->edgeWidth<=0){ - this->edgeWidth=1; - } + IntelliTool::onWheelScrolled(value); + this->edgeWidth+=value; + if(this->edgeWidth<=0) { + this->edgeWidth=1; + } } void IntelliToolCircle::onMouseMoved(int x, int y){ - if(this->drawing){ - this->Canvas->image->drawPlain(Qt::transparent); - QPoint next(x,y); - int radius = static_cast(sqrt(pow((Middle.x()-x),2)+pow((Middle.y()-y),2))); - drawCyrcle(radius); - } - IntelliTool::onMouseMoved(x,y); + if(this->drawing) { + this->Canvas->image->drawPlain(Qt::transparent); + QPoint next(x,y); + int radius = static_cast(sqrt(pow((Middle.x()-x),2)+pow((Middle.y()-y),2))); + drawCyrcle(radius); + } + IntelliTool::onMouseMoved(x,y); } diff --git a/src/Tool/IntelliToolCircle.h b/src/Tool/IntelliToolCircle.h index 3ed747c..a748950 100644 --- a/src/Tool/IntelliToolCircle.h +++ b/src/Tool/IntelliToolCircle.h @@ -7,80 +7,80 @@ /*! * \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); +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 center of the circle. + */ +QPoint Middle; - /*! - * \brief The alpha value of the inner circle. - */ - int alphaInner; +/*! + * \brief The alpha value of the inner circle. + */ +int alphaInner; - /*! - * \brief The width of the outer circle edge. - */ - int edgeWidth; +/*! + * \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 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 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 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 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 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 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 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; +/*! + * \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.cpp b/src/Tool/IntelliToolFloodFill.cpp index 1a480d1..1c4fcac 100644 --- a/src/Tool/IntelliToolFloodFill.cpp +++ b/src/Tool/IntelliToolFloodFill.cpp @@ -6,75 +6,74 @@ #include IntelliToolFloodFill::IntelliToolFloodFill(PaintingArea* Area, IntelliColorPicker* colorPicker) - :IntelliTool(Area, colorPicker){ + : IntelliTool(Area, colorPicker){ } IntelliToolFloodFill::~IntelliToolFloodFill(){ } - void IntelliToolFloodFill::onMouseRightPressed(int x, int y){ - IntelliTool::onMouseRightPressed(x,y); + IntelliTool::onMouseRightPressed(x,y); } void IntelliToolFloodFill::onMouseRightReleased(int x, int y){ - IntelliTool::onMouseRightReleased(x,y); + IntelliTool::onMouseRightReleased(x,y); } void IntelliToolFloodFill::onMouseLeftPressed(int x, int y){ - if(!(x>=0 && xgetWidthOfActive() && y>=0 && ygetHeightOfActive())){ - return; - } - IntelliTool::onMouseLeftPressed(x,y); + if(!(x>=0 && xgetWidthOfActive() && y>=0 && ygetHeightOfActive())) { + return; + } + IntelliTool::onMouseLeftPressed(x,y); - QPoint start(x,y); - std::queue Q; - Q.push(start); + QPoint start(x,y); + std::queue Q; + Q.push(start); - QColor oldColor = this->Active->image->getPixelColor(start); - QColor newColor = this->colorPicker->getFirstColor(); - Canvas->image->drawPixel(start,newColor); + QColor oldColor = this->Active->image->getPixelColor(start); + QColor newColor = this->colorPicker->getFirstColor(); + Canvas->image->drawPixel(start,newColor); - QPoint left, right, top, down; - while(!Q.empty()){ - QPoint Current = Q.front(); - Q.pop(); + QPoint left, right, top, down; + while(!Q.empty()) { + QPoint Current = Q.front(); + Q.pop(); - left = QPoint(Current.x()-1,Current.y() ); - right = QPoint(Current.x()+1,Current.y() ); - top = QPoint(Current.x() ,Current.y()-1); - down = QPoint(Current.x() ,Current.y()+1); - if((right.x() < Canvas->width) && (Canvas->image->getPixelColor(right) != newColor) && (Active->image->getPixelColor(right) == oldColor)){ - Canvas->image->drawPixel(right,newColor); - Q.push(right); - } - if((left.x() >= 0) && (Canvas->image->getPixelColor(left) != newColor) && (Active->image->getPixelColor(left) == oldColor)){ - Canvas->image->drawPixel(left,newColor); - Q.push(left); - } - if((top.y() >= 0) && (Canvas->image->getPixelColor(top) != newColor) && (Active->image->getPixelColor(top) == oldColor)){ - Canvas->image->drawPixel(top,newColor); - Q.push(top); - } - if((down.y() < Canvas->height) && (Canvas->image->getPixelColor(down) != newColor) && (Active->image->getPixelColor(down) == oldColor)){ - Canvas->image->drawPixel(down,newColor); - Q.push(down); - } - } + left = QPoint(Current.x()-1,Current.y() ); + right = QPoint(Current.x()+1,Current.y() ); + top = QPoint(Current.x(),Current.y()-1); + down = QPoint(Current.x(),Current.y()+1); + if((right.x() < Canvas->width) && (Canvas->image->getPixelColor(right) != newColor) && (Active->image->getPixelColor(right) == oldColor)) { + Canvas->image->drawPixel(right,newColor); + Q.push(right); + } + if((left.x() >= 0) && (Canvas->image->getPixelColor(left) != newColor) && (Active->image->getPixelColor(left) == oldColor)) { + Canvas->image->drawPixel(left,newColor); + Q.push(left); + } + if((top.y() >= 0) && (Canvas->image->getPixelColor(top) != newColor) && (Active->image->getPixelColor(top) == oldColor)) { + Canvas->image->drawPixel(top,newColor); + Q.push(top); + } + if((down.y() < Canvas->height) && (Canvas->image->getPixelColor(down) != newColor) && (Active->image->getPixelColor(down) == oldColor)) { + Canvas->image->drawPixel(down,newColor); + Q.push(down); + } + } - Canvas->image->calculateVisiblity(); + Canvas->image->calculateVisiblity(); } void IntelliToolFloodFill::onMouseLeftReleased(int x, int y){ - IntelliTool::onMouseLeftReleased(x,y); + IntelliTool::onMouseLeftReleased(x,y); } void IntelliToolFloodFill::onWheelScrolled(int value){ - IntelliTool::onWheelScrolled(value); + IntelliTool::onWheelScrolled(value); } void IntelliToolFloodFill::onMouseMoved(int x, int y){ - IntelliTool::onMouseMoved(x,y); + IntelliTool::onMouseMoved(x,y); } diff --git a/src/Tool/IntelliToolFloodFill.h b/src/Tool/IntelliToolFloodFill.h index 4e3eb04..81412ba 100644 --- a/src/Tool/IntelliToolFloodFill.h +++ b/src/Tool/IntelliToolFloodFill.h @@ -7,61 +7,61 @@ /*! * \brief The IntelliToolFloodFill class represents a tool to flood FIll a certian area. */ -class IntelliToolFloodFill : public IntelliTool{ +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 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 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 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 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 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 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 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; +/*! + * \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.cpp b/src/Tool/IntelliToolLine.cpp index 83ed0c7..39c07a4 100644 --- a/src/Tool/IntelliToolLine.cpp +++ b/src/Tool/IntelliToolLine.cpp @@ -4,60 +4,59 @@ #include "QInputDialog" IntelliToolLine::IntelliToolLine(PaintingArea* Area, IntelliColorPicker* colorPicker) - :IntelliTool(Area, colorPicker){ - this->lineWidth = QInputDialog::getInt(nullptr,"Line Width Input", "Width",1,1,50,1); - //create checkbox or scroll dialog to get line style - this->lineStyle = LineStyle::SOLID_LINE; + : IntelliTool(Area, colorPicker){ + this->lineWidth = QInputDialog::getInt(nullptr,"Line Width Input", "Width",1,1,50,1); + //create checkbox or scroll dialog to get line style + this->lineStyle = LineStyle::SOLID_LINE; } IntelliToolLine::~IntelliToolLine(){ } - void IntelliToolLine::onMouseRightPressed(int x, int y){ - IntelliTool::onMouseRightPressed(x,y); + IntelliTool::onMouseRightPressed(x,y); } void IntelliToolLine::onMouseRightReleased(int x, int y){ - IntelliTool::onMouseRightReleased(x,y); + IntelliTool::onMouseRightReleased(x,y); } void IntelliToolLine::onMouseLeftPressed(int x, int y){ - IntelliTool::onMouseLeftPressed(x,y); - this->start=QPoint(x,y); - this->Canvas->image->drawPoint(start, colorPicker->getFirstColor(),lineWidth); - Canvas->image->calculateVisiblity(); + IntelliTool::onMouseLeftPressed(x,y); + this->start=QPoint(x,y); + this->Canvas->image->drawPoint(start, colorPicker->getFirstColor(),lineWidth); + Canvas->image->calculateVisiblity(); } void IntelliToolLine::onMouseLeftReleased(int x, int y){ - IntelliTool::onMouseLeftReleased(x,y); + IntelliTool::onMouseLeftReleased(x,y); } void IntelliToolLine::onWheelScrolled(int value){ - IntelliTool::onWheelScrolled(value); - this->lineWidth+=value; - if(this->lineWidth<=0){ - this->lineWidth=1; - } + IntelliTool::onWheelScrolled(value); + this->lineWidth+=value; + if(this->lineWidth<=0) { + this->lineWidth=1; + } } void IntelliToolLine::onMouseMoved(int x, int y){ - if(this->drawing){ - this->Canvas->image->drawPlain(Qt::transparent); - QPoint next(x,y); - switch(lineStyle){ - case LineStyle::SOLID_LINE: - this->Canvas->image->drawLine(start,next,colorPicker->getFirstColor(),lineWidth); - break; - case LineStyle::DOTTED_LINE: - QPoint p1 =start.x() <= next.x() ? start : next; - QPoint p2 =start.x() < next.x() ? next : start; - int m = (float)(p2.y()-p1.y())/(float)(p2.x()-p1.x())+0.5f; - int c = start.y()-start.x()*m; + if(this->drawing) { + this->Canvas->image->drawPlain(Qt::transparent); + QPoint next(x,y); + switch(lineStyle) { + case LineStyle::SOLID_LINE: + this->Canvas->image->drawLine(start,next,colorPicker->getFirstColor(),lineWidth); + break; + case LineStyle::DOTTED_LINE: + QPoint p1 =start.x() <= next.x() ? start : next; + QPoint p2 =start.x() < next.x() ? next : start; + int m = (float)(p2.y()-p1.y())/(float)(p2.x()-p1.x())+0.5f; + int c = start.y()-start.x()*m; - break; - } - } - IntelliTool::onMouseMoved(x,y); + break; + } + } + IntelliTool::onMouseMoved(x,y); } diff --git a/src/Tool/IntelliToolLine.h b/src/Tool/IntelliToolLine.h index cbb1ab8..3463092 100644 --- a/src/Tool/IntelliToolLine.h +++ b/src/Tool/IntelliToolLine.h @@ -7,83 +7,83 @@ /*! * \brief The LineStyle enum classifing all ways of drawing a line. */ -enum class LineStyle{ - SOLID_LINE, - DOTTED_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; +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 width of the line to draw. + */ +int lineWidth; - /*! - * \brief The style of the line. Apropriate to LineStyle. - */ - LineStyle lineStyle; +/*! + * \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 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 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 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 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 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 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 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; +/*! + * \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; }; #endif // INTELLITOOLLINE_H diff --git a/src/Tool/IntelliToolPen.cpp b/src/Tool/IntelliToolPen.cpp index 8012970..7b12270 100644 --- a/src/Tool/IntelliToolPen.cpp +++ b/src/Tool/IntelliToolPen.cpp @@ -5,8 +5,8 @@ #include "QInputDialog" IntelliToolPen::IntelliToolPen(PaintingArea* Area, IntelliColorPicker* colorPicker) - :IntelliTool(Area, colorPicker){ - this->penWidth = QInputDialog::getInt(nullptr, "Pen width", "Width:", 1,0, 50, 1); + : IntelliTool(Area, colorPicker){ + this->penWidth = QInputDialog::getInt(nullptr, "Pen width", "Width:", 1,0, 50, 1); } IntelliToolPen::~IntelliToolPen(){ @@ -14,37 +14,37 @@ IntelliToolPen::~IntelliToolPen(){ } void IntelliToolPen::onMouseRightPressed(int x, int y){ - IntelliTool::onMouseRightPressed(x,y); + IntelliTool::onMouseRightPressed(x,y); } void IntelliToolPen::onMouseRightReleased(int x, int y){ - IntelliTool::onMouseRightReleased(x,y); + IntelliTool::onMouseRightReleased(x,y); } void IntelliToolPen::onMouseLeftPressed(int x, int y){ - IntelliTool::onMouseLeftPressed(x,y); - this->point=QPoint(x,y); - this->Canvas->image->drawPixel(point, colorPicker->getFirstColor()); - Canvas->image->calculateVisiblity(); + IntelliTool::onMouseLeftPressed(x,y); + this->point=QPoint(x,y); + this->Canvas->image->drawPixel(point, colorPicker->getFirstColor()); + Canvas->image->calculateVisiblity(); } void IntelliToolPen::onMouseLeftReleased(int x, int y){ - IntelliTool::onMouseLeftReleased(x,y); + IntelliTool::onMouseLeftReleased(x,y); } void IntelliToolPen::onMouseMoved(int x, int y){ - if(this->drawing){ - QPoint newPoint(x,y); - this->Canvas->image->drawLine(this->point, newPoint, colorPicker->getFirstColor(), penWidth); - this->point=newPoint; - } - IntelliTool::onMouseMoved(x,y); + if(this->drawing) { + QPoint newPoint(x,y); + this->Canvas->image->drawLine(this->point, newPoint, colorPicker->getFirstColor(), penWidth); + this->point=newPoint; + } + IntelliTool::onMouseMoved(x,y); } void IntelliToolPen::onWheelScrolled(int value){ - IntelliTool::onWheelScrolled(value); - this->penWidth+=value; - if(this->penWidth<=0){ - this->penWidth=1; - } + IntelliTool::onWheelScrolled(value); + this->penWidth+=value; + if(this->penWidth<=0) { + this->penWidth=1; + } } diff --git a/src/Tool/IntelliToolPen.h b/src/Tool/IntelliToolPen.h index d611f24..22694f7 100644 --- a/src/Tool/IntelliToolPen.h +++ b/src/Tool/IntelliToolPen.h @@ -1,73 +1,73 @@ #ifndef INTELLITOOLPEN_H #define INTELLITOOLPEN_H -#include"IntelliTool.h" -#include"QColor" -#include"QPoint" +#include "IntelliTool.h" +#include "QColor" +#include "QPoint" /*! * \brief The IntelliToolPen class represents a tool to draw a line. */ -class IntelliToolPen : public IntelliTool{ - /*! - * \brief penWidth - The width of the Pen while drawing. - */ - int penWidth; - /*! - * \brief point - Represents the previous point to help drawing a line. - */ - QPoint point; +class IntelliToolPen : public IntelliTool { +/*! + * \brief penWidth - The width of the Pen while drawing. + */ +int penWidth; +/*! + * \brief point - Represents the previous point to help drawing a line. + */ +QPoint point; public: - /*! - * \brief A constructor setting the general paintingArea and colorPicker. Reading the penWidth. - * \param Area - The general PaintingArea used by the project. - * \param colorPicker - The general colorPicker used by the project. - */ - IntelliToolPen(PaintingArea* Area, IntelliColorPicker* colorPicker); - /*! - * \brief A Destructor. - */ - virtual ~IntelliToolPen() override; +/*! + * \brief A constructor setting the general paintingArea and colorPicker. Reading the penWidth. + * \param Area - The general PaintingArea used by the project. + * \param colorPicker - The general colorPicker used by the project. + */ +IntelliToolPen(PaintingArea* Area, IntelliColorPicker* colorPicker); +/*! + * \brief A Destructor. + */ +virtual ~IntelliToolPen() override; - /*! - * \brief A function managing the right click pressed of a mouse. Resetting the current draw. - * \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 pressed of a mouse. Resetting the current draw. + * \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 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. Starting the drawing procedure. - * \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 pressed of a mouse. Starting the drawing procedure. + * \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. Merging the drawing to the active 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 onMouseLeftReleased(int x, int y) override; +/*! + * \brief A function managing the left click released of a mouse. Merging the drawing to the active 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 onMouseLeftReleased(int x, int y) override; - /*! - * \brief A function managing the scroll event. Changing penWidth relativ to value. - * \param value - The absolute the scroll has changed. - */ - virtual void onWheelScrolled(int value) override; +/*! + * \brief A function managing the scroll event. Changing penWidth relativ to value. + * \param value - The absolute the scroll has changed. + */ +virtual void onWheelScrolled(int value) override; - /*! - * \brief A function managing the mouse moved event. To draw the line. - * \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; +/*! + * \brief A function managing the mouse moved event. To draw the line. + * \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 // INTELLITOOLPEN_H diff --git a/src/Tool/IntelliToolPlain.cpp b/src/Tool/IntelliToolPlain.cpp index b501386..092c3c8 100644 --- a/src/Tool/IntelliToolPlain.cpp +++ b/src/Tool/IntelliToolPlain.cpp @@ -3,7 +3,7 @@ #include "QColorDialog" IntelliToolPlainTool::IntelliToolPlainTool(PaintingArea* Area, IntelliColorPicker* colorPicker) - :IntelliTool(Area, colorPicker){ + : IntelliTool(Area, colorPicker){ } IntelliToolPlainTool::~IntelliToolPlainTool(){ @@ -11,28 +11,27 @@ IntelliToolPlainTool::~IntelliToolPlainTool(){ } void IntelliToolPlainTool::onMouseLeftPressed(int x, int y){ - IntelliTool::onMouseLeftPressed(x,y); - this->Canvas->image->drawPlain(colorPicker->getFirstColor()); - Canvas->image->calculateVisiblity(); + IntelliTool::onMouseLeftPressed(x,y); + this->Canvas->image->drawPlain(colorPicker->getFirstColor()); + Canvas->image->calculateVisiblity(); } void IntelliToolPlainTool::onMouseLeftReleased(int x, int y){ - IntelliTool::onMouseLeftReleased(x,y); + IntelliTool::onMouseLeftReleased(x,y); } void IntelliToolPlainTool::onMouseRightPressed(int x, int y){ - IntelliTool::onMouseRightPressed(x,y); + IntelliTool::onMouseRightPressed(x,y); } void IntelliToolPlainTool::onMouseRightReleased(int x, int y){ - IntelliTool::onMouseRightReleased(x,y); + IntelliTool::onMouseRightReleased(x,y); } - void IntelliToolPlainTool::onMouseMoved(int x, int y){ - IntelliTool::onMouseMoved(x,y); + IntelliTool::onMouseMoved(x,y); } void IntelliToolPlainTool::onWheelScrolled(int value){ - IntelliTool::onWheelScrolled(value); + IntelliTool::onWheelScrolled(value); } diff --git a/src/Tool/IntelliToolPlain.h b/src/Tool/IntelliToolPlain.h index 4477610..08a79fc 100644 --- a/src/Tool/IntelliToolPlain.h +++ b/src/Tool/IntelliToolPlain.h @@ -6,59 +6,59 @@ /*! * \brief The IntelliToolPlainTool class represents a tool to fill the whole canvas with one color. */ -class IntelliToolPlainTool : public IntelliTool{ +class IntelliToolPlainTool : 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. - */ - IntelliToolPlainTool(PaintingArea *Area, IntelliColorPicker* colorPicker); - /*! - * \brief A Destructor. - */ - virtual ~IntelliToolPlainTool() override; +/*! + * \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. + */ +IntelliToolPlainTool(PaintingArea*Area, IntelliColorPicker* colorPicker); +/*! + * \brief A Destructor. + */ +virtual ~IntelliToolPlainTool() override; - /*! - * \brief A function managing the right click pressed of a mouse. Resetting the current fill. - * \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 pressed of a mouse. Resetting the current fill. + * \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 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. Filling the whole 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 onMouseLeftPressed(int x, int y) override; +/*! + * \brief A function managing the left click pressed of a mouse. Filling the whole 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 onMouseLeftPressed(int x, int y) override; - /*! - * \brief A function managing the left click released of a mouse. Merging the fill to the active 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 onMouseLeftReleased(int x, int y) override; +/*! + * \brief A function managing the left click released of a mouse. Merging the fill to the active 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 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 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; +/*! + * \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/IntelliToolPolygon.cpp b/src/Tool/IntelliToolPolygon.cpp index f72094e..4d95ee3 100644 --- a/src/Tool/IntelliToolPolygon.cpp +++ b/src/Tool/IntelliToolPolygon.cpp @@ -5,11 +5,11 @@ #include IntelliToolPolygon::IntelliToolPolygon(PaintingArea* Area, IntelliColorPicker* colorPicker) - :IntelliTool(Area, colorPicker){ - this->alphaInner = QInputDialog::getInt(nullptr,"Inner Alpha Value", "Value:", 0,0,255,1); - lineWidth = QInputDialog::getInt(nullptr,"Line Width Input", "Width",1,1,50,1);; - PointIsNearStart = false; - isDrawing = false; + : IntelliTool(Area, colorPicker){ + this->alphaInner = QInputDialog::getInt(nullptr,"Inner Alpha Value", "Value:", 0,0,255,1); + lineWidth = QInputDialog::getInt(nullptr,"Line Width Input", "Width",1,1,50,1);; + PointIsNearStart = false; + isDrawing = false; } IntelliToolPolygon::~IntelliToolPolygon(){ @@ -17,93 +17,93 @@ IntelliToolPolygon::~IntelliToolPolygon(){ } void IntelliToolPolygon::onMouseLeftPressed(int x, int y){ - if(!isDrawing && x > 0 && y > 0 && xgetWidthOfActive() && ygetHeightOfActive()){ - IntelliTool::onMouseLeftPressed(x,y); - QPoint drawingPoint = QPoint(x,y); + if(!isDrawing && x > 0 && y > 0 && xgetWidthOfActive() && ygetHeightOfActive()) { + IntelliTool::onMouseLeftPressed(x,y); + QPoint drawingPoint = QPoint(x,y); - isDrawing = true; - QPointList.push_back(drawingPoint); + isDrawing = true; + QPointList.push_back(drawingPoint); - this->Canvas->image->drawPoint(QPointList.back(), colorPicker->getFirstColor(), lineWidth); - this->Canvas->image->calculateVisiblity(); - } - else if(isDrawing && isNearStart(x,y,QPointList.front())){ - PointIsNearStart = true; - this->Canvas->image->drawLine(QPointList.back(), QPointList.front(), colorPicker->getFirstColor(), lineWidth); - this->Canvas->image->calculateVisiblity(); - } - else if(isDrawing){ - QPoint drawingPoint(x,y); - QPointList.push_back(drawingPoint); - this->Canvas->image->drawLine(QPointList[QPointList.size() - 2], QPointList[QPointList.size() - 1], colorPicker->getFirstColor(), lineWidth); - this->Canvas->image->calculateVisiblity(); - } + this->Canvas->image->drawPoint(QPointList.back(), colorPicker->getFirstColor(), lineWidth); + this->Canvas->image->calculateVisiblity(); + } + else if(isDrawing && isNearStart(x,y,QPointList.front())) { + PointIsNearStart = true; + this->Canvas->image->drawLine(QPointList.back(), QPointList.front(), colorPicker->getFirstColor(), lineWidth); + this->Canvas->image->calculateVisiblity(); + } + else if(isDrawing) { + QPoint drawingPoint(x,y); + QPointList.push_back(drawingPoint); + this->Canvas->image->drawLine(QPointList[QPointList.size() - 2], QPointList[QPointList.size() - 1], colorPicker->getFirstColor(), lineWidth); + this->Canvas->image->calculateVisiblity(); + } } void IntelliToolPolygon::onMouseRightPressed(int x, int y){ - isDrawing = false; - PointIsNearStart = false; - QPointList.clear(); - IntelliTool::onMouseRightPressed(x,y); + isDrawing = false; + PointIsNearStart = false; + QPointList.clear(); + IntelliTool::onMouseRightPressed(x,y); } void IntelliToolPolygon::onMouseLeftReleased(int x, int y){ - if(PointIsNearStart && QPointList.size() > 1){ - PointIsNearStart = false; - isDrawing = false; - std::vector Triangles = IntelliHelper::calculateTriangles(QPointList); - QPoint Point; - QColor colorTwo(colorPicker->getSecondColor()); - colorTwo.setAlpha(alphaInner); - for(int i = 0; i < Active->width; i++){ - for(int j = 0; j < Active->height; j++){ - Point = QPoint(i,j); - if(IntelliHelper::isInPolygon(Triangles,Point)){ - this->Canvas->image->drawPixel(Point, colorTwo); - } - } - } - for(int i=0; iCanvas->image->drawLine(QPointList[i], QPointList[next], colorPicker->getFirstColor(), lineWidth); - } - QPointList.clear(); - IntelliTool::onMouseLeftReleased(x,y); - } + if(PointIsNearStart && QPointList.size() > 1) { + PointIsNearStart = false; + isDrawing = false; + std::vector Triangles = IntelliHelper::calculateTriangles(QPointList); + QPoint Point; + QColor colorTwo(colorPicker->getSecondColor()); + colorTwo.setAlpha(alphaInner); + for(int i = 0; i < Active->width; i++) { + for(int j = 0; j < Active->height; j++) { + Point = QPoint(i,j); + if(IntelliHelper::isInPolygon(Triangles,Point)) { + this->Canvas->image->drawPixel(Point, colorTwo); + } + } + } + for(int i=0; iCanvas->image->drawLine(QPointList[i], QPointList[next], colorPicker->getFirstColor(), lineWidth); + } + QPointList.clear(); + IntelliTool::onMouseLeftReleased(x,y); + } } void IntelliToolPolygon::onMouseRightReleased(int x, int y){ - IntelliTool::onMouseRightReleased(x,y); + IntelliTool::onMouseRightReleased(x,y); } void IntelliToolPolygon::onWheelScrolled(int value){ - IntelliTool::onWheelScrolled(value); - if(!isDrawing){ - if(lineWidth + value < 10){ - lineWidth += value; - } - if(lineWidth < 1){ - lineWidth = 1; - } - } + IntelliTool::onWheelScrolled(value); + if(!isDrawing) { + if(lineWidth + value < 10) { + lineWidth += value; + } + if(lineWidth < 1) { + lineWidth = 1; + } + } } void IntelliToolPolygon::onMouseMoved(int x, int y){ - IntelliTool::onMouseMoved(x,y); + IntelliTool::onMouseMoved(x,y); } bool IntelliToolPolygon::isNearStart(int x, int y, QPoint Startpoint){ - bool isNear = false; - int StartX = Startpoint.x(); - int StartY = Startpoint.y(); - int valueToNear = 10; + bool isNear = false; + int StartX = Startpoint.x(); + int StartY = Startpoint.y(); + int valueToNear = 10; - for(int i = StartX - valueToNear; i < StartX + valueToNear; i++){ - for(int j = StartY - valueToNear; j < StartY + valueToNear; j++){ - if((i == x) && (j == y)){ - isNear = true; - } - } - } - return isNear; + for(int i = StartX - valueToNear; i < StartX + valueToNear; i++) { + for(int j = StartY - valueToNear; j < StartY + valueToNear; j++) { + if((i == x) && (j == y)) { + isNear = true; + } + } + } + return isNear; } diff --git a/src/Tool/IntelliToolPolygon.h b/src/Tool/IntelliToolPolygon.h index b057506..1d7228d 100644 --- a/src/Tool/IntelliToolPolygon.h +++ b/src/Tool/IntelliToolPolygon.h @@ -10,92 +10,91 @@ */ class IntelliToolPolygon : public IntelliTool { - /*! - * \brief Checks if the given Point lies near the starting Point. - * \param x - x coordinate of a point. - * \param y - y coordinate of a point. - * \param Startpoint - The startingpoint to check for. - * \return Returns true if the (x,y) point is near to the startpoint, otherwise false. - */ - bool isNearStart(int x, int y, QPoint Startpoint); +/*! + * \brief Checks if the given Point lies near the starting Point. + * \param x - x coordinate of a point. + * \param y - y coordinate of a point. + * \param Startpoint - The startingpoint to check for. + * \return Returns true if the (x,y) point is near to the startpoint, otherwise false. + */ +bool isNearStart(int x, int y, QPoint Startpoint); - /*! - * \brief LineWidth of the drawing polygon. - */ - int lineWidth; +/*! + * \brief LineWidth of the drawing polygon. + */ +int lineWidth; - /*! - * \brief IsDrawing true while drawing, else false. - */ - bool isDrawing; +/*! + * \brief IsDrawing true while drawing, else false. + */ +bool isDrawing; - /*! - * \brief PointIsNearStart true, when last click near startpoint, else false. - */ - bool PointIsNearStart; +/*! + * \brief PointIsNearStart true, when last click near startpoint, else false. + */ +bool PointIsNearStart; - /*! - * \brief The alpha value of the inner circle. - */ - int alphaInner; +/*! + * \brief The alpha value of the inner circle. + */ +int alphaInner; - /*! - * \brief QPointList list of all points of the polygon. - */ - std::vector QPointList; +/*! + * \brief QPointList list of all points of the polygon. + */ +std::vector QPointList; 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. - */ - IntelliToolPolygon(PaintingArea* Area, IntelliColorPicker* colorPicker); - /*! - * \brief A Destructor. - */ - ~IntelliToolPolygon() override; +/*! + * \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. + */ +IntelliToolPolygon(PaintingArea* Area, IntelliColorPicker* colorPicker); +/*! + * \brief A Destructor. + */ +~IntelliToolPolygon() override; - /*! - * \brief A function managing the left click pressed of a mouse. Setting polygon points. - * \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 pressed of a mouse. Setting polygon points. + * \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. Merging the fill to the active 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 onMouseLeftReleased(int x, int y) override; +/*! + * \brief A function managing the left click released of a mouse. Merging the fill to the active 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 onMouseLeftReleased(int x, int y) override; - /*! - * \brief A function managing the right click pressed of a mouse. Resetting the current fill. - * \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 pressed of a mouse. Resetting the current fill. + * \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 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 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. - * \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; +/*! + * \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. + * \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/IntelliToolRectangle.cpp b/src/Tool/IntelliToolRectangle.cpp index 018ff99..e5f0cdd 100644 --- a/src/Tool/IntelliToolRectangle.cpp +++ b/src/Tool/IntelliToolRectangle.cpp @@ -1,11 +1,11 @@ -#include"IntelliToolRectangle.h" +#include "IntelliToolRectangle.h" #include "Layer/PaintingArea.h" #include "QInputDialog" IntelliToolRectangle::IntelliToolRectangle(PaintingArea* Area, IntelliColorPicker* colorPicker) - :IntelliTool(Area, colorPicker){ - this->alphaInner = QInputDialog::getInt(nullptr,"Inner Alpha Value", "Value:", 0,0,255,1); - this->edgeWidth = QInputDialog::getInt(nullptr,"Outer edge width", "Value:", 0,1,255,1); + : IntelliTool(Area, colorPicker){ + this->alphaInner = QInputDialog::getInt(nullptr,"Inner Alpha Value", "Value:", 0,0,255,1); + this->edgeWidth = QInputDialog::getInt(nullptr,"Outer edge width", "Value:", 0,1,255,1); } IntelliToolRectangle::~IntelliToolRectangle(){ @@ -13,55 +13,55 @@ IntelliToolRectangle::~IntelliToolRectangle(){ } void IntelliToolRectangle::drawRectangle(QPoint otherCornor){ - int xMin = std::min(originCornor.x(), otherCornor.x()); - int xMax = std::max(originCornor.x(), otherCornor.x()); + int xMin = std::min(originCornor.x(), otherCornor.x()); + int xMax = std::max(originCornor.x(), otherCornor.x()); - int yMin = std::min(originCornor.y(), otherCornor.y()); - int yMax = std::max(originCornor.y(), otherCornor.y()); + int yMin = std::min(originCornor.y(), otherCornor.y()); + int yMax = std::max(originCornor.y(), otherCornor.y()); - QColor clr = colorPicker->getSecondColor(); - clr.setAlpha(alphaInner); - for(int y=yMin; y<=yMax; y++){ - this->Canvas->image->drawLine(QPoint(xMin,y), QPoint(xMax, y), clr, 1); - } - this->Canvas->image->drawLine(QPoint(xMin, yMin),QPoint(xMin, yMax), this->colorPicker->getFirstColor(), edgeWidth); - this->Canvas->image->drawLine(QPoint(xMin, yMin),QPoint(xMax, yMin), this->colorPicker->getFirstColor(), edgeWidth); - this->Canvas->image->drawLine(QPoint(xMax, yMax),QPoint(xMin, yMax), this->colorPicker->getFirstColor(), edgeWidth); - this->Canvas->image->drawLine(QPoint(xMax, yMax),QPoint(xMax, yMin), this->colorPicker->getFirstColor(), edgeWidth); + QColor clr = colorPicker->getSecondColor(); + clr.setAlpha(alphaInner); + for(int y=yMin; y<=yMax; y++) { + this->Canvas->image->drawLine(QPoint(xMin,y), QPoint(xMax, y), clr, 1); + } + this->Canvas->image->drawLine(QPoint(xMin, yMin),QPoint(xMin, yMax), this->colorPicker->getFirstColor(), edgeWidth); + this->Canvas->image->drawLine(QPoint(xMin, yMin),QPoint(xMax, yMin), this->colorPicker->getFirstColor(), edgeWidth); + this->Canvas->image->drawLine(QPoint(xMax, yMax),QPoint(xMin, yMax), this->colorPicker->getFirstColor(), edgeWidth); + this->Canvas->image->drawLine(QPoint(xMax, yMax),QPoint(xMax, yMin), this->colorPicker->getFirstColor(), edgeWidth); } void IntelliToolRectangle::onMouseRightPressed(int x, int y){ - IntelliTool::onMouseRightPressed(x,y); + IntelliTool::onMouseRightPressed(x,y); } void IntelliToolRectangle::onMouseRightReleased(int x, int y){ - IntelliTool::onMouseRightReleased(x,y); + IntelliTool::onMouseRightReleased(x,y); } void IntelliToolRectangle::onMouseLeftPressed(int x, int y){ - IntelliTool::onMouseLeftPressed(x,y); - this->originCornor=QPoint(x,y); - drawRectangle(originCornor); - Canvas->image->calculateVisiblity(); + IntelliTool::onMouseLeftPressed(x,y); + this->originCornor=QPoint(x,y); + drawRectangle(originCornor); + Canvas->image->calculateVisiblity(); } void IntelliToolRectangle::onMouseLeftReleased(int x, int y){ - IntelliTool::onMouseLeftReleased(x,y); + IntelliTool::onMouseLeftReleased(x,y); } void IntelliToolRectangle::onMouseMoved(int x, int y){ - if(this->drawing){ - this->Canvas->image->drawPlain(Qt::transparent); - QPoint next(x,y); - drawRectangle(next); - } - IntelliTool::onMouseMoved(x,y); + if(this->drawing) { + this->Canvas->image->drawPlain(Qt::transparent); + QPoint next(x,y); + drawRectangle(next); + } + IntelliTool::onMouseMoved(x,y); } void IntelliToolRectangle::onWheelScrolled(int value){ - IntelliTool::onWheelScrolled(value); - this->edgeWidth+=value; - if(this->edgeWidth<=0){ - this->edgeWidth=1; - } + IntelliTool::onWheelScrolled(value); + this->edgeWidth+=value; + if(this->edgeWidth<=0) { + this->edgeWidth=1; + } } diff --git a/src/Tool/IntelliToolRectangle.h b/src/Tool/IntelliToolRectangle.h index 249e146..afd0030 100644 --- a/src/Tool/IntelliToolRectangle.h +++ b/src/Tool/IntelliToolRectangle.h @@ -8,77 +8,77 @@ /*! * \brief The IntelliToolRectangle class represents a tool to draw a rectangle. */ -class IntelliToolRectangle : public IntelliTool{ - /*! - * \brief A function that implements a rectagle drawing algorithm. - * \param otherCornor - The second corner point of the rectangle. - */ - void drawRectangle(QPoint otherCornor); +class IntelliToolRectangle : public IntelliTool { +/*! + * \brief A function that implements a rectagle drawing algorithm. + * \param otherCornor - The second corner point of the rectangle. + */ +void drawRectangle(QPoint otherCornor); - /*! - * \brief originCornor - The first corner point of the rectangle. - */ - QPoint originCornor; - /*! - * \brief alphaInner- Represents the alpha value of the inside. - */ - int alphaInner; - /*! - * \brief edgeWidth - The width of the rectangle edges. - */ - int edgeWidth; +/*! + * \brief originCornor - The first corner point of the rectangle. + */ +QPoint originCornor; +/*! + * \brief alphaInner- Represents the alpha value of the inside. + */ +int alphaInner; +/*! + * \brief edgeWidth - The width of the rectangle edges. + */ +int edgeWidth; public: - /*! - * \brief A constructor setting the general paintingArea and colorPicker. And reading in the alphaInner and edgeWidth. - * \param Area - The general paintingArea used by the project. - * \param colorPicker - The general colorPicker used by the project. - */ - IntelliToolRectangle(PaintingArea* Area, IntelliColorPicker* colorPicker); - /*! - * \brief A Destructor. - */ - virtual ~IntelliToolRectangle() override; +/*! + * \brief A constructor setting the general paintingArea and colorPicker. And reading in the alphaInner and edgeWidth. + * \param Area - The general paintingArea used by the project. + * \param colorPicker - The general colorPicker used by the project. + */ +IntelliToolRectangle(PaintingArea* Area, IntelliColorPicker* colorPicker); +/*! + * \brief A Destructor. + */ +virtual ~IntelliToolRectangle() override; - /*! - * \brief A function managing the right click pressed of a mouse.Resetting the current draw. - * \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 pressed of a mouse.Resetting the current draw. + * \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 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. Setting the originCorner and draws a rectangle. - * \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 pressed of a mouse. Setting the originCorner and draws a rectangle. + * \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. Merging the draw to the active 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 onMouseLeftReleased(int x, int y) override; +/*! + * \brief A function managing the left click released of a mouse. Merging the draw to the active 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 onMouseLeftReleased(int x, int y) override; - /*! - * \brief A function managing the scroll event.Changing edgeWidth relativ to value. - * \param value - The absolute the scroll has changed. - */ - virtual void onWheelScrolled(int value) override; +/*! + * \brief A function managing the scroll event.Changing edgeWidth relativ 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 rectangle to currrent 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; +/*! + * \brief A function managing the mouse moved event.Drawing a rectangle to currrent 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; }; #endif // INTELLIRECTANGLETOOL_H From 0bcbe13f1316f715b2192af071cd708c0eb13e71 Mon Sep 17 00:00:00 2001 From: Conrad Date: Thu, 19 Dec 2019 18:38:38 +0100 Subject: [PATCH 60/62] Update main.cpp --- src/main.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index c8e501c..aedb07a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2,13 +2,12 @@ #include #include #include "IntelliHelper/IntelliHelper.h" -#include +#include int main(int argc, char *argv[]){ // The main application QApplication app(argc, argv); - //some nice ass looking comment // Create and open the main window IntelliPhotoGui window; window.show(); From 5073312f7ae30fad8fbd65764151cb89bc6e8dd5 Mon Sep 17 00:00:00 2001 From: Conrad Date: Thu, 19 Dec 2019 19:38:18 +0100 Subject: [PATCH 61/62] main.cpp uncrustify --- src/main.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index aedb07a..bcd7ae6 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4,13 +4,13 @@ #include "IntelliHelper/IntelliHelper.h" #include -int main(int argc, char *argv[]){ - // The main application - QApplication app(argc, argv); +int main(int argc, char*argv[]){ + // The main application + QApplication app(argc, argv); - // Create and open the main window - IntelliPhotoGui window; - window.show(); + // Create and open the main window + IntelliPhotoGui window; + window.show(); - return app.exec(); + return app.exec(); } From 9c95059b93289627f8d26b093302bce136fddff8 Mon Sep 17 00:00:00 2001 From: Conrad Date: Thu, 19 Dec 2019 19:39:08 +0100 Subject: [PATCH 62/62] Updated doxygen docs to latest changes --- docs/html/_intelli_color_picker_8h.html | 2 +- .../html/_intelli_color_picker_8h_source.html | 28 +- ...li_helper_2_intelli_color_picker_8cpp.html | 2 +- ...er_2_intelli_color_picker_8cpp_source.html | 16 +- docs/html/_intelli_helper_8cpp.html | 2 +- docs/html/_intelli_helper_8cpp_source.html | 237 +++--- docs/html/_intelli_helper_8h.html | 2 +- docs/html/_intelli_helper_8h_source.html | 24 +- docs/html/_intelli_image_8cpp.html | 2 +- docs/html/_intelli_image_8cpp_source.html | 92 +-- docs/html/_intelli_image_8h.html | 2 +- docs/html/_intelli_image_8h_source.html | 68 +- docs/html/_intelli_photo_gui_8cpp.html | 2 +- docs/html/_intelli_photo_gui_8cpp_source.html | 540 +++++++------ docs/html/_intelli_photo_gui_8h.html | 3 +- docs/html/_intelli_photo_gui_8h_source.html | 230 +++--- docs/html/_intelli_raster_image_8cpp.html | 2 +- .../_intelli_raster_image_8cpp_source.html | 44 +- docs/html/_intelli_raster_image_8h.html | 2 +- .../html/_intelli_raster_image_8h_source.html | 22 +- docs/html/_intelli_shaped_image_8cpp.html | 2 +- .../_intelli_shaped_image_8cpp_source.html | 116 +-- docs/html/_intelli_shaped_image_8h.html | 2 +- .../html/_intelli_shaped_image_8h_source.html | 42 +- docs/html/_intelli_tool_8cpp.html | 2 +- docs/html/_intelli_tool_8cpp_source.html | 103 ++- docs/html/_intelli_tool_8h.html | 2 +- docs/html/_intelli_tool_8h_source.html | 40 +- docs/html/_intelli_tool_circle_8cpp.html | 2 +- .../_intelli_tool_circle_8cpp_source.html | 112 +-- docs/html/_intelli_tool_circle_8h.html | 2 +- docs/html/_intelli_tool_circle_8h_source.html | 30 +- docs/html/_intelli_tool_flood_fill_8cpp.html | 2 +- .../_intelli_tool_flood_fill_8cpp_source.html | 148 ++-- docs/html/_intelli_tool_flood_fill_8h.html | 2 +- .../_intelli_tool_flood_fill_8h_source.html | 34 +- docs/html/_intelli_tool_line_8cpp.html | 2 +- docs/html/_intelli_tool_line_8cpp_source.html | 117 ++- docs/html/_intelli_tool_line_8h.html | 2 +- docs/html/_intelli_tool_line_8h_source.html | 46 +- docs/html/_intelli_tool_pen_8cpp.html | 2 +- docs/html/_intelli_tool_pen_8cpp_source.html | 48 +- docs/html/_intelli_tool_pen_8h.html | 2 +- docs/html/_intelli_tool_pen_8h_source.html | 34 +- docs/html/_intelli_tool_plain_8cpp.html | 2 +- .../html/_intelli_tool_plain_8cpp_source.html | 41 +- docs/html/_intelli_tool_plain_8h.html | 2 +- docs/html/_intelli_tool_plain_8h_source.html | 28 +- docs/html/_intelli_tool_polygon_8cpp.html | 3 +- .../html/_intelli_tool_polygon_8cpp__incl.dot | 2 + .../_intelli_tool_polygon_8cpp_source.html | 235 +++--- docs/html/_intelli_tool_polygon_8h.html | 2 +- .../html/_intelli_tool_polygon_8h_source.html | 76 +- docs/html/_intelli_tool_rectangle_8cpp.html | 2 +- .../_intelli_tool_rectangle_8cpp_source.html | 76 +- docs/html/_intelli_tool_rectangle_8h.html | 2 +- .../_intelli_tool_rectangle_8h_source.html | 30 +- docs/html/_painting_area_8cpp.html | 2 +- docs/html/_painting_area_8cpp_source.html | 724 +++++++++--------- docs/html/_painting_area_8h.html | 4 +- docs/html/_painting_area_8h_source.html | 257 ++++--- .../_tool_2_intelli_color_picker_8cpp.html | 2 +- ...ol_2_intelli_color_picker_8cpp_source.html | 40 +- docs/html/annotated.html | 8 +- .../class_intelli_color_picker-members.html | 2 +- docs/html/class_intelli_color_picker.html | 2 +- ...7a6f20bf2fc0a4cbaf4c030c2a26d9_icgraph.dot | 2 +- ...568fbf5dc783f06284b7031ffe9415_icgraph.dot | 4 +- ...2ddbbbfbed383f06b24e5bf6b27ae8_icgraph.dot | 2 +- ...bf4a940e4a0e465e30cbdf28748931_icgraph.dot | 2 +- ...2eb27b928fe9388b9398b0556303b7_icgraph.dot | 12 +- docs/html/class_intelli_image-members.html | 2 +- docs/html/class_intelli_image.html | 2 +- ...787f1b333b59401643936ebb3dcfe1_icgraph.dot | 2 +- ...e622810dc2bc756054bb5769becb06_icgraph.dot | 12 +- ...bced93f4744fad81b7f141b21f4ab2_icgraph.dot | 51 +- ...0e9c8184d89dee33fd9adefbd2f8aa_icgraph.dot | 2 +- ...c859f5c409e37051edfd9e9fbca056_icgraph.dot | 2 +- ...eddbd9aa54c8d37590d1d4bf8dce31_icgraph.dot | 8 +- .../html/class_intelli_photo_gui-members.html | 2 +- docs/html/class_intelli_photo_gui.html | 13 +- .../class_intelli_photo_gui__coll__graph.dot | 2 +- ...lass_intelli_photo_gui__inherit__graph.dot | 2 +- .../class_intelli_raster_image-members.html | 2 +- docs/html/class_intelli_raster_image.html | 2 +- .../class_intelli_shaped_image-members.html | 2 +- docs/html/class_intelli_shaped_image.html | 2 +- docs/html/class_intelli_tool-members.html | 2 +- docs/html/class_intelli_tool.html | 24 +- docs/html/class_intelli_tool__coll__graph.dot | 4 +- ...189b00307c6d7e89f28198f54404b0_icgraph.dot | 2 + ...6aa68ac5f3c2ca02319e5ef3f0c966_icgraph.dot | 14 +- ...b7ef1dde96b94a0ce450a25ae1778c_icgraph.dot | 12 +- ...ccfd4460255ccb866f336406a33574_icgraph.dot | 4 +- ...6a2575c16c8a33cb2a5197f8d8cc5b_icgraph.dot | 12 +- ...0e20414cd8855a2f9b103fb6408639_icgraph.dot | 2 + .../class_intelli_tool_circle-members.html | 2 +- docs/html/class_intelli_tool_circle.html | 6 +- ...class_intelli_tool_circle__coll__graph.dot | 4 +- ...class_intelli_tool_flood_fill-members.html | 2 +- docs/html/class_intelli_tool_flood_fill.html | 18 +- ...s_intelli_tool_flood_fill__coll__graph.dot | 4 +- .../html/class_intelli_tool_line-members.html | 2 +- docs/html/class_intelli_tool_line.html | 18 +- .../class_intelli_tool_line__coll__graph.dot | 4 +- docs/html/class_intelli_tool_pen-members.html | 2 +- docs/html/class_intelli_tool_pen.html | 12 +- .../class_intelli_tool_pen__coll__graph.dot | 4 +- ...751e3864a0d36ef42ca55021cae73ce_cgraph.dot | 2 +- ...class_intelli_tool_plain_tool-members.html | 2 +- docs/html/class_intelli_tool_plain_tool.html | 14 +- ...s_intelli_tool_plain_tool__coll__graph.dot | 4 +- ...b0c46e16d2c09370a2244a936de38b1_cgraph.dot | 2 +- .../class_intelli_tool_polygon-members.html | 3 +- docs/html/class_intelli_tool_polygon.html | 99 ++- docs/html/class_intelli_tool_polygon.js | 1 + ...lass_intelli_tool_polygon__coll__graph.dot | 4 +- ...e3a1135f04c73c159137ae219a38922_cgraph.dot | 12 + ...7cad87cd02b128b02dc929713bd1d1b_cgraph.dot | 10 + ...e1473ff408ae2e11cf6a43f6f575f21_cgraph.dot | 21 +- ...13103300c9f023d64d9eec5ac05dd17_cgraph.dot | 10 + ...36b012b48311c36e7cd6771a5081427_cgraph.dot | 2 +- ...5d3b741be6d0647a9cdc9da2cb8bc3d_cgraph.dot | 16 +- .../class_intelli_tool_rectangle-members.html | 2 +- docs/html/class_intelli_tool_rectangle.html | 6 +- ...ss_intelli_tool_rectangle__coll__graph.dot | 4 +- docs/html/class_painting_area-members.html | 10 +- docs/html/class_painting_area.html | 328 ++++++-- docs/html/class_painting_area.js | 8 +- .../html/class_painting_area__coll__graph.dot | 2 +- .../class_painting_area__inherit__graph.dot | 2 +- ...6d86c25efdce9fe9031a9cd01c74c8_icgraph.dot | 4 +- ...f597740b4d7b4bc2e24c51f8cb0b6eb_cgraph.dot | 2 +- ...ad76e1319659bfa38eee88ef33d395_icgraph.dot | 4 +- ...735d4cf1dc58a9096d904e74c39c4df_cgraph.dot | 2 +- ...fa0ec23e78cc59f28c823584c721460_cgraph.dot | 4 +- ...6115307ff4a99cd7ca16423c5c8ecfb_cgraph.dot | 2 +- ...1ac281e0de263208d4a3b9de74258ec_cgraph.dot | 4 +- ...261acaaa346610dfed489dbac17e789_cgraph.dot | 2 +- ...b5eb394b979ea90f2be9849fdda1774_cgraph.dot | 2 +- docs/html/classes.html | 2 +- docs/html/dir_000001_000002.html | 2 +- docs/html/dir_000002_000006.html | 2 +- docs/html/dir_000003_000004.html | 2 +- docs/html/dir_000005_000004.html | 2 +- docs/html/dir_000005_000006.html | 2 +- docs/html/dir_000006_000003.html | 2 +- docs/html/dir_000006_000004.html | 2 +- docs/html/dir_000006_000005.html | 2 +- .../dir_544f9dcb748f922e4bb3be2540380bf2.html | 2 +- .../dir_5dabb14988a75c922e285f444641a133.html | 2 +- .../dir_83a4347d11f2ba6343d546ab133722d2.html | 2 +- .../dir_8db5f55022e7670536cbc9a6a1d6f01c.html | 2 +- .../dir_941490de56ac122cf77df9922cbcc750.html | 2 +- .../dir_e6d96184223881d115efa44ca0dfa844.html | 2 +- .../dir_f50aa5156fe016a259583c412dbf440c.html | 2 +- docs/html/files.html | 2 +- docs/html/functions.html | 33 +- docs/html/functions_func.html | 25 +- docs/html/functions_vars.html | 10 +- docs/html/globals.html | 2 +- docs/html/globals_enum.html | 2 +- docs/html/globals_func.html | 2 +- docs/html/graph_legend.html | 2 +- docs/html/hierarchy.html | 8 +- docs/html/index.html | 2 +- docs/html/inherit_graph_2.dot | 2 +- docs/html/inherit_graph_4.dot | 2 +- docs/html/inherit_graph_5.dot | 2 +- docs/html/inherits.html | 2 +- docs/html/main_8cpp.html | 2 +- docs/html/main_8cpp_source.html | 25 +- docs/html/namespace_intelli_helper.html | 4 +- ...4dc3624ba4562a03dc922e3dd7b617_icgraph.dot | 2 +- ...d516b3e619e2a743e9c98dd75cf901_icgraph.dot | 2 +- ...cfe72f00e870be4a8ab9f2e17483c9_icgraph.dot | 2 +- ...d9fe78cc5d21b59642910220768149_icgraph.dot | 2 +- docs/html/namespacemembers.html | 2 +- docs/html/namespacemembers_func.html | 2 +- docs/html/namespaces.html | 2 +- docs/html/navtreedata.js | 2 +- docs/html/navtreeindex0.js | 66 +- docs/html/navtreeindex1.js | 9 +- docs/html/search/all_10.js | 25 +- docs/html/search/all_2.js | 10 +- docs/html/search/all_3.js | 14 +- docs/html/search/all_4.js | 2 +- docs/html/search/all_5.js | 16 +- docs/html/search/all_6.js | 4 +- docs/html/search/all_7.js | 94 +-- docs/html/search/all_8.js | 6 +- docs/html/search/all_9.js | 14 +- docs/html/search/all_a.js | 14 +- docs/html/search/all_b.js | 10 +- docs/html/search/all_c.js | 6 +- docs/html/search/all_d.js | 24 +- docs/html/search/all_e.js | 2 +- docs/html/search/all_f.js | 6 +- docs/html/search/classes_0.js | 26 +- docs/html/search/classes_1.js | 2 +- docs/html/search/classes_2.js | 2 +- docs/html/search/classes_3.js | 2 +- docs/html/search/enums_0.js | 2 +- docs/html/search/enums_1.js | 2 +- docs/html/search/enumvalues_0.js | 2 +- docs/html/search/enumvalues_1.js | 2 +- docs/html/search/enumvalues_2.js | 4 +- docs/html/search/files_0.js | 56 +- docs/html/search/files_1.js | 2 +- docs/html/search/files_2.js | 4 +- docs/html/search/functions_0.js | 4 +- docs/html/search/functions_1.js | 22 +- docs/html/search/functions_2.js | 10 +- docs/html/search/functions_3.js | 2 +- docs/html/search/functions_4.js | 16 +- docs/html/search/functions_5.js | 30 +- docs/html/search/functions_6.js | 2 +- docs/html/search/functions_7.js | 12 +- docs/html/search/functions_8.js | 14 +- docs/html/search/functions_9.js | 4 +- docs/html/search/functions_a.js | 4 +- docs/html/search/functions_b.js | 20 +- docs/html/search/functions_c.js | 2 +- docs/html/search/functions_d.js | 25 +- docs/html/search/namespaces_0.js | 2 +- docs/html/search/variables_0.js | 8 +- docs/html/search/variables_1.js | 2 +- docs/html/search/variables_2.js | 6 +- docs/html/search/variables_3.js | 2 +- docs/html/search/variables_4.js | 4 +- docs/html/search/variables_5.js | 4 +- docs/html/search/variables_6.js | 2 +- docs/html/search/variables_7.js | 4 +- docs/html/struct_layer_object-members.html | 6 +- docs/html/struct_layer_object.html | 52 +- docs/html/struct_layer_object.js | 4 +- .../html/struct_layer_object__coll__graph.dot | 2 +- docs/html/struct_triangle-members.html | 2 +- docs/html/struct_triangle.html | 2 +- 239 files changed, 2996 insertions(+), 2508 deletions(-) create mode 100644 docs/html/class_intelli_tool_polygon_a0e3a1135f04c73c159137ae219a38922_cgraph.dot create mode 100644 docs/html/class_intelli_tool_polygon_a47cad87cd02b128b02dc929713bd1d1b_cgraph.dot create mode 100644 docs/html/class_intelli_tool_polygon_a713103300c9f023d64d9eec5ac05dd17_cgraph.dot diff --git a/docs/html/_intelli_color_picker_8h.html b/docs/html/_intelli_color_picker_8h.html index e1b1b4e..b04a431 100644 --- a/docs/html/_intelli_color_picker_8h.html +++ b/docs/html/_intelli_color_picker_8h.html @@ -30,7 +30,7 @@

    diff --git a/docs/html/_intelli_color_picker_8h_source.html b/docs/html/_intelli_color_picker_8h_source.html index c8bfc90..c7df48e 100644 --- a/docs/html/_intelli_color_picker_8h_source.html +++ b/docs/html/_intelli_color_picker_8h_source.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -93,30 +93,30 @@ $(document).ready(function(){initNavTree('_intelli_color_picker_8h_source.html',
    Go to the documentation of this file.
    1 #ifndef INTELLITOOLSETCOLORTOOL_H
    2 #define INTELLITOOLSETCOLORTOOL_H
    3 
    -
    4 #include"QColor"
    -
    5 #include"QPoint"
    -
    6 #include"QColorDialog"
    +
    4 #include "QColor"
    +
    5 #include "QPoint"
    +
    6 #include "QColorDialog"
    7 
    - +
    12 public:
    - +
    17 
    -
    21  virtual ~IntelliColorPicker();
    +
    21 virtual ~IntelliColorPicker();
    22 
    -
    26  void switchColors();
    +
    26 void switchColors();
    27 
    -
    32  QColor getFirstColor();
    +
    32 QColor getFirstColor();
    33 
    -
    38  QColor getSecondColor();
    +
    38 QColor getSecondColor();
    39 
    -
    44  void setFirstColor(QColor Color);
    +
    44 void setFirstColor(QColor Color);
    45 
    -
    50  void setSecondColor(QColor Color);
    +
    50 void setSecondColor(QColor Color);
    51 
    52 private:
    -
    56  QColor firstColor;
    +
    56 QColor firstColor;
    57 
    -
    61  QColor secondColor;
    +
    61 QColor secondColor;
    62 };
    63 
    64 #endif // INTELLITOOLSETCOLORTOOL_H
    diff --git a/docs/html/_intelli_helper_2_intelli_color_picker_8cpp.html b/docs/html/_intelli_helper_2_intelli_color_picker_8cpp.html index 1306302..1a18124 100644 --- a/docs/html/_intelli_helper_2_intelli_color_picker_8cpp.html +++ b/docs/html/_intelli_helper_2_intelli_color_picker_8cpp.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/_intelli_helper_2_intelli_color_picker_8cpp_source.html b/docs/html/_intelli_helper_2_intelli_color_picker_8cpp_source.html index ba52d45..0476d7b 100644 --- a/docs/html/_intelli_helper_2_intelli_color_picker_8cpp_source.html +++ b/docs/html/_intelli_helper_2_intelli_color_picker_8cpp_source.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -93,8 +93,8 @@ $(document).ready(function(){initNavTree('_intelli_helper_2_intelli_color_picker Go to the documentation of this file.
    1 #include "IntelliColorPicker.h"
    2 
    -
    4  firstColor = {255,0,0,255};
    -
    5  secondColor = {0,0,255,255};
    +
    4  firstColor = {255,0,0,255};
    +
    5  secondColor = {0,255,255,255};
    6 }
    7 
    @@ -102,23 +102,23 @@ $(document).ready(function(){initNavTree('_intelli_helper_2_intelli_color_picker
    10 }
    11 
    -
    13  std::swap(firstColor, secondColor);
    +
    13  std::swap(firstColor, secondColor);
    14 }
    15 
    -
    17  return this->firstColor;
    +
    17  return this->firstColor;
    18 }
    19 
    -
    21  return this->secondColor;
    +
    21  return this->secondColor;
    22 }
    23 
    -
    25  this->firstColor = Color;
    +
    25  this->firstColor = Color;
    26 }
    27 
    -
    29  this->secondColor = Color;
    +
    29  this->secondColor = Color;
    30 }
    diff --git a/docs/html/_intelli_helper_8cpp.html b/docs/html/_intelli_helper_8cpp.html index fc80966..c4f89ed 100644 --- a/docs/html/_intelli_helper_8cpp.html +++ b/docs/html/_intelli_helper_8cpp.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/_intelli_helper_8cpp_source.html b/docs/html/_intelli_helper_8cpp_source.html index 5389678..1b67b46 100644 --- a/docs/html/_intelli_helper_8cpp_source.html +++ b/docs/html/_intelli_helper_8cpp_source.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -90,128 +90,129 @@ $(document).ready(function(){initNavTree('_intelli_helper_8cpp_source.html','');
    IntelliHelper.cpp
    -Go to the documentation of this file.
    1 #include"IntelliHelper.h"
    -
    2 #include<algorithm>
    -
    3 #include<queue>
    -
    4 #include<cmath>
    +Go to the documentation of this file.
    1 #include "IntelliHelper.h"
    +
    2 #include <algorithm>
    +
    3 #include <queue>
    +
    4 #include <cmath>
    5 
    6 
    7 std::vector<Triangle> IntelliHelper::calculateTriangles(std::vector<QPoint> polyPoints){
    -
    8  // helper for managing the triangle vertices and their state
    -
    9  struct TriangleHelper{
    -
    10  QPoint vertex;
    -
    11  float interiorAngle;
    -
    12  int index;
    -
    13  bool isTip;
    -
    14  };
    +
    8  // helper for managing the triangle vertices and their state
    +
    9  struct TriangleHelper {
    +
    10  QPoint vertex;
    +
    11  float interiorAngle;
    +
    12  int index;
    +
    13  bool isTip;
    +
    14  };
    15 
    -
    16  // calculates the inner angle of 'point'
    -
    17  auto calculateInner = [](QPoint& point, QPoint& prev, QPoint& post){
    -
    18  QPoint AP(point.x()-prev.x(), point.y()-prev.y());
    -
    19  QPoint BP(point.x()-post.x(), point.y()-post.y());
    +
    16  // calculates the inner angle of 'point'
    +
    17  auto calculateInner = [](QPoint& point, QPoint& prev, QPoint& post){
    +
    18  QPoint AP(point.x()-prev.x(), point.y()-prev.y());
    +
    19  QPoint BP(point.x()-post.x(), point.y()-post.y());
    20 
    -
    21  float topSclar = AP.x()*BP.x()+AP.y()*BP.y();
    -
    22  float absolute = sqrt(pow(AP.x(),2.)+pow(AP.y(),2.))*sqrt(pow(BP.x(),2.)+pow(BP.y(),2.));
    -
    23  return acos(topSclar/absolute);
    -
    24  };
    +
    21  float topSclar = AP.x()*BP.x()+AP.y()*BP.y();
    +
    22  float absolute = sqrt(pow(AP.x(),2.)+pow(AP.y(),2.))*sqrt(pow(BP.x(),2.)+pow(BP.y(),2.));
    +
    23  return acos(topSclar/absolute);
    +
    24  };
    25 
    -
    26  // gets the first element of vec for which element.isTip == true holds
    -
    27  auto getTip= [](const std::vector<TriangleHelper>& vec){
    -
    28  for(auto element:vec){
    -
    29  if(element.isTip){
    -
    30  return element;
    -
    31  }
    -
    32  }
    -
    33  return vec[0];
    -
    34  };
    -
    35 
    -
    36  // get the vertex Index bevor index in relation to the container length
    -
    37  auto getPrev = [](int index, int length){
    -
    38  return (index-1)>0?(index-1):(length-1);
    -
    39  };
    -
    40 
    -
    41  // get the vertex Index after index in relation to the container lenght
    -
    42  auto getPost = [](int index, int length){
    -
    43  return (index+1)%length;
    -
    44  };
    -
    45 
    -
    46  // return if the vertex is a tip
    -
    47  auto isTip = [](float angle){
    -
    48  return angle<180.f;
    -
    49  };
    -
    50 
    -
    51  std::vector<TriangleHelper> Vertices;
    -
    52  std::vector<Triangle> Triangles;
    -
    53 
    -
    54  // set up all vertices and calculate intirior angle
    -
    55  for(int i=0; i<static_cast<int>(polyPoints.size()); i++){
    -
    56  TriangleHelper helper;
    -
    57  int prev = getPrev(i, static_cast<int>(polyPoints.size()));
    -
    58  int post = getPost(i, static_cast<int>(polyPoints.size()));
    -
    59 
    -
    60  helper.vertex = polyPoints[static_cast<size_t>(i)];
    -
    61  helper.index = i;
    -
    62 
    -
    63  helper.interiorAngle = calculateInner(polyPoints[static_cast<size_t>(i)],
    -
    64  polyPoints[static_cast<size_t>(prev)],
    -
    65  polyPoints[static_cast<size_t>(post)]);
    -
    66  helper.isTip = isTip(helper.interiorAngle);
    -
    67  Vertices.push_back(helper);
    -
    68  }
    -
    69 
    -
    70  // search triangles based on the intirior angles of each vertey
    -
    71  while(Triangles.size() != polyPoints.size()-2){
    -
    72  Triangle tri;
    -
    73  TriangleHelper smallest = getTip(Vertices);
    -
    74  int prev = getPrev(smallest.index, static_cast<int>(Vertices.size()));
    -
    75  int post = getPost(smallest.index, static_cast<int>(Vertices.size()));
    -
    76 
    -
    77  // set triangle and push it
    -
    78  tri.A = Vertices[static_cast<size_t>(prev)].vertex;
    -
    79  tri.B = Vertices[static_cast<size_t>(smallest.index)].vertex;
    -
    80  tri.C = Vertices[static_cast<size_t>(post)].vertex;
    -
    81  Triangles.push_back(tri);
    -
    82 
    -
    83  // update Vertice array
    -
    84  Vertices.erase(Vertices.begin()+smallest.index);
    -
    85  for(size_t i=static_cast<size_t>(smallest.index); i<Vertices.size(); i++){
    -
    86  Vertices[i].index-=1;
    -
    87  }
    -
    88 
    -
    89  // update post und prev index
    -
    90  post = post-1;
    -
    91  prev = prev<smallest.index?prev:(prev-1);
    -
    92 
    -
    93  // calcultae neighboors of prev and post to calculate new interior angles
    -
    94  int prevOfPrev = getPrev(prev, static_cast<int>(Vertices.size()));
    -
    95  int postOfPrev = getPost(prev, static_cast<int>(Vertices.size()));
    -
    96 
    -
    97  int prevOfPost = getPrev(post, static_cast<int>(Vertices.size()));
    -
    98  int postOfPost = getPost(post, static_cast<int>(Vertices.size()));
    -
    99 
    -
    100  // update vertices with interior angles
    -
    101  // updtae prev
    -
    102  Vertices[static_cast<size_t>(prev)].interiorAngle = calculateInner(Vertices[static_cast<size_t>(prev)].vertex,
    -
    103  Vertices[static_cast<size_t>(prevOfPrev)].vertex,
    -
    104  Vertices[static_cast<size_t>(postOfPrev)].vertex);
    -
    105  Vertices[static_cast<size_t>(prev)].isTip = isTip(Vertices[static_cast<size_t>(prev)].interiorAngle);
    -
    106  // update post
    -
    107  Vertices[static_cast<size_t>(post)].interiorAngle = calculateInner(Vertices[static_cast<size_t>(post)].vertex,
    -
    108  Vertices[static_cast<size_t>(prevOfPost)].vertex,
    -
    109  Vertices[static_cast<size_t>(postOfPost)].vertex);
    -
    110  Vertices[static_cast<size_t>(post)].isTip = isTip(Vertices[static_cast<size_t>(post)].interiorAngle);
    -
    111  }
    -
    112  return Triangles;
    -
    113 }
    -
    114 
    -
    115 bool IntelliHelper::isInPolygon(std::vector<Triangle> &triangles, QPoint &point){
    -
    116  for(auto triangle : triangles){
    -
    117  if(IntelliHelper::isInTriangle(triangle, point)){
    -
    118  return true;
    -
    119  }
    -
    120  }
    -
    121  return false;
    -
    122 }
    +
    26  // gets the first element of vec for which element.isTip == true holds
    +
    27  auto getTip= [](const std::vector<TriangleHelper>& vec){
    +
    28  size_t min = 0;
    +
    29  for(size_t i=0; i<vec.size(); i++) {
    +
    30  if(vec[i].interiorAngle<vec[min].interiorAngle) {
    +
    31  min = i;
    +
    32  }
    +
    33  }
    +
    34  return vec[min];
    +
    35  };
    +
    36 
    +
    37  // get the vertex Index bevor index in relation to the container length
    +
    38  auto getPrev = [](int index, int length){
    +
    39  return (index-1)>=0 ? (index-1) : (length-1);
    +
    40  };
    +
    41 
    +
    42  // get the vertex Index after index in relation to the container lenght
    +
    43  auto getPost = [](int index, int length){
    +
    44  return (index+1)%length;
    +
    45  };
    +
    46 
    +
    47  // return if the vertex is a tip
    +
    48  auto isTip = [](float angle){
    +
    49  return static_cast<double>(angle)<(M_PI/2.);
    +
    50  };
    +
    51 
    +
    52  std::vector<TriangleHelper> Vertices;
    +
    53  std::vector<Triangle> Triangles;
    +
    54 
    +
    55  // set up all vertices and calculate intirior angle
    +
    56  for(int i=0; i<static_cast<int>(polyPoints.size()); i++) {
    +
    57  TriangleHelper helper;
    +
    58  int prev = getPrev(i, static_cast<int>(polyPoints.size()));
    +
    59  int post = getPost(i, static_cast<int>(polyPoints.size()));
    +
    60 
    +
    61  helper.vertex = polyPoints[static_cast<size_t>(i)];
    +
    62  helper.index = i;
    +
    63 
    +
    64  helper.interiorAngle = calculateInner(polyPoints[static_cast<size_t>(i)],
    +
    65  polyPoints[static_cast<size_t>(prev)],
    +
    66  polyPoints[static_cast<size_t>(post)]);
    +
    67  helper.isTip = isTip(helper.interiorAngle);
    +
    68  Vertices.push_back(helper);
    +
    69  }
    +
    70 
    +
    71  // search triangles based on the intirior angles of each vertey
    +
    72  while(Triangles.size() != polyPoints.size()-2) {
    +
    73  Triangle tri;
    +
    74  TriangleHelper smallest = getTip(Vertices);
    +
    75  int prev = getPrev(smallest.index, static_cast<int>(Vertices.size()));
    +
    76  int post = getPost(smallest.index, static_cast<int>(Vertices.size()));
    +
    77 
    +
    78  // set triangle and push it
    +
    79  tri.A = Vertices[static_cast<size_t>(prev)].vertex;
    +
    80  tri.B = Vertices[static_cast<size_t>(smallest.index)].vertex;
    +
    81  tri.C = Vertices[static_cast<size_t>(post)].vertex;
    +
    82  Triangles.push_back(tri);
    +
    83 
    +
    84  // update Vertice array
    +
    85  Vertices.erase(Vertices.begin()+smallest.index);
    +
    86  for(size_t i=static_cast<size_t>(smallest.index); i<Vertices.size(); i++) {
    +
    87  Vertices[i].index-=1;
    +
    88  }
    +
    89 
    +
    90  // update post und prev index
    +
    91  post = post-1;
    +
    92  prev = prev<smallest.index ? prev : (prev-1);
    +
    93 
    +
    94  // calcultae neighboors of prev and post to calculate new interior angles
    +
    95  int prevOfPrev = getPrev(prev, static_cast<int>(Vertices.size()));
    +
    96  int postOfPrev = getPost(prev, static_cast<int>(Vertices.size()));
    +
    97 
    +
    98  int prevOfPost = getPrev(post, static_cast<int>(Vertices.size()));
    +
    99  int postOfPost = getPost(post, static_cast<int>(Vertices.size()));
    +
    100 
    +
    101  // update vertices with interior angles
    +
    102  // updtae prev
    +
    103  Vertices[static_cast<size_t>(prev)].interiorAngle = calculateInner(Vertices[static_cast<size_t>(prev)].vertex,
    +
    104  Vertices[static_cast<size_t>(prevOfPrev)].vertex,
    +
    105  Vertices[static_cast<size_t>(postOfPrev)].vertex);
    +
    106  Vertices[static_cast<size_t>(prev)].isTip = isTip(Vertices[static_cast<size_t>(prev)].interiorAngle);
    +
    107  // update post
    +
    108  Vertices[static_cast<size_t>(post)].interiorAngle = calculateInner(Vertices[static_cast<size_t>(post)].vertex,
    +
    109  Vertices[static_cast<size_t>(prevOfPost)].vertex,
    +
    110  Vertices[static_cast<size_t>(postOfPost)].vertex);
    +
    111  Vertices[static_cast<size_t>(post)].isTip = isTip(Vertices[static_cast<size_t>(post)].interiorAngle);
    +
    112  }
    +
    113  return Triangles;
    +
    114 }
    +
    115 
    +
    116 bool IntelliHelper::isInPolygon(std::vector<Triangle> &triangles, QPoint &point){
    +
    117  for(auto triangle : triangles) {
    +
    118  if(IntelliHelper::isInTriangle(triangle, point)) {
    +
    119  return true;
    +
    120  }
    +
    121  }
    +
    122  return false;
    +
    123 }
    bool isInTriangle(Triangle &tri, QPoint &P)
    A function to check if a given point is in a triangle.
    Definition: IntelliHelper.h:33
    @@ -219,7 +220,7 @@ $(document).ready(function(){initNavTree('_intelli_helper_8cpp_source.html','');
    QPoint B
    Definition: IntelliHelper.h:11
    QPoint C
    Definition: IntelliHelper.h:11
    The Triangle struct holds the 3 vertices of a triangle.
    Definition: IntelliHelper.h:10
    -
    bool isInPolygon(std::vector< Triangle > &triangles, QPoint &point)
    A function to check if a point lies in a polygon by checking its spanning triangles.
    +
    bool isInPolygon(std::vector< Triangle > &triangles, QPoint &point)
    A function to check if a point lies in a polygon by checking its spanning triangles.
    QPoint A
    Definition: IntelliHelper.h:11
    std::vector< Triangle > calculateTriangles(std::vector< QPoint > polyPoints)
    A function to split a polygon in its spanning traingles by using Meisters Theorem of graph theory by ...
    diff --git a/docs/html/_intelli_helper_8h.html b/docs/html/_intelli_helper_8h.html index c3a21c3..f0a631b 100644 --- a/docs/html/_intelli_helper_8h.html +++ b/docs/html/_intelli_helper_8h.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/_intelli_helper_8h_source.html b/docs/html/_intelli_helper_8h_source.html index 368522f..c6c3d54 100644 --- a/docs/html/_intelli_helper_8h_source.html +++ b/docs/html/_intelli_helper_8h_source.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -93,20 +93,20 @@ $(document).ready(function(){initNavTree('_intelli_helper_8h_source.html','');}) Go to the documentation of this file.
    1 #ifndef INTELLIHELPER_H
    2 #define INTELLIHELPER_H
    3 
    -
    4 #include<QPoint>
    -
    5 #include<vector>
    +
    4 #include <QPoint>
    +
    5 #include <vector>
    6 
    -
    10 struct Triangle{
    -
    11  QPoint A,B,C;
    +
    10 struct Triangle {
    +
    11  QPoint A,B,C;
    12 };
    13 
    14 namespace IntelliHelper {
    15 
    -
    23  inline float sign(QPoint& p1, QPoint& p2, QPoint& p3){
    +
    23 inline float sign(QPoint& p1, QPoint& p2, QPoint& p3){
    24  return (p1.x()-p3.x())*(p2.y()-p3.y())-(p2.x()-p3.x())*(p1.y()-p3.y());
    -
    25  }
    +
    25 }
    26 
    -
    33  inline bool isInTriangle(Triangle& tri, QPoint& P){
    +
    33 inline bool isInTriangle(Triangle& tri, QPoint& P){
    34  float val1, val2, val3;
    35  bool neg, pos;
    36 
    @@ -118,11 +118,11 @@ $(document).ready(function(){initNavTree('_intelli_helper_8h_source.html','');})
    42  pos = (val1>0.f) || (val2>0.f) || (val3>0.f);
    43 
    44  return !(neg && pos);
    -
    45  }
    +
    45 }
    46 
    -
    52  std::vector<Triangle> calculateTriangles(std::vector<QPoint> polyPoints);
    +
    52 std::vector<Triangle> calculateTriangles(std::vector<QPoint> polyPoints);
    53 
    -
    60  bool isInPolygon(std::vector<Triangle> &triangles, QPoint &point);
    +
    60 bool isInPolygon(std::vector<Triangle> &triangles, QPoint &point);
    61 }
    62 
    63 #endif
    @@ -133,7 +133,7 @@ $(document).ready(function(){initNavTree('_intelli_helper_8h_source.html','');})
    QPoint C
    Definition: IntelliHelper.h:11
    The Triangle struct holds the 3 vertices of a triangle.
    Definition: IntelliHelper.h:10
    -
    bool isInPolygon(std::vector< Triangle > &triangles, QPoint &point)
    A function to check if a point lies in a polygon by checking its spanning triangles.
    +
    bool isInPolygon(std::vector< Triangle > &triangles, QPoint &point)
    A function to check if a point lies in a polygon by checking its spanning triangles.
    QPoint A
    Definition: IntelliHelper.h:11
    std::vector< Triangle > calculateTriangles(std::vector< QPoint > polyPoints)
    A function to split a polygon in its spanning traingles by using Meisters Theorem of graph theory by ...
    float sign(QPoint &p1, QPoint &p2, QPoint &p3)
    A function to get the 2*area of a traingle, using its determinat.
    Definition: IntelliHelper.h:23
    diff --git a/docs/html/_intelli_image_8cpp.html b/docs/html/_intelli_image_8cpp.html index 90b5df4..77c7818 100644 --- a/docs/html/_intelli_image_8cpp.html +++ b/docs/html/_intelli_image_8cpp.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/_intelli_image_8cpp_source.html b/docs/html/_intelli_image_8cpp_source.html index b3dfcd8..b12334b 100644 --- a/docs/html/_intelli_image_8cpp_source.html +++ b/docs/html/_intelli_image_8cpp_source.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -90,13 +90,13 @@ $(document).ready(function(){initNavTree('_intelli_image_8cpp_source.html','');}
    IntelliImage.cpp
    -Go to the documentation of this file.
    1 #include"Image/IntelliImage.h"
    -
    2 #include<QSize>
    -
    3 #include<QPainter>
    +Go to the documentation of this file.
    1 #include "Image/IntelliImage.h"
    +
    2 #include <QSize>
    +
    3 #include <QPainter>
    4 
    5 IntelliImage::IntelliImage(int weight, int height)
    -
    6  :imageData(QSize(weight, height), QImage::Format_ARGB32){
    -
    7  imageData.fill(QColor(255,255,255,255));
    +
    6  : imageData(QSize(weight, height), QImage::Format_ARGB32){
    +
    7  imageData.fill(QColor(255,255,255,255));
    8 }
    9 
    @@ -104,73 +104,73 @@ $(document).ready(function(){initNavTree('_intelli_image_8cpp_source.html','');}
    12 }
    13 
    14 bool IntelliImage::loadImage(const QString &fileName){
    -
    15  // Holds the image
    -
    16  QImage loadedImage;
    +
    15  // Holds the image
    +
    16  QImage loadedImage;
    17 
    -
    18  // If the image wasn't loaded leave this function
    -
    19  if (!loadedImage.load(fileName))
    -
    20  return false;
    +
    18  // If the image wasn't loaded leave this function
    +
    19  if (!loadedImage.load(fileName))
    +
    20  return false;
    21 
    -
    22  // scaled Image to size of Layer
    -
    23  loadedImage = loadedImage.scaled(imageData.size(),Qt::IgnoreAspectRatio);
    +
    22  // scaled Image to size of Layer
    +
    23  loadedImage = loadedImage.scaled(imageData.size(),Qt::IgnoreAspectRatio);
    24 
    -
    25  imageData = loadedImage.convertToFormat(QImage::Format_ARGB32);
    -
    26  return true;
    +
    25  imageData = loadedImage.convertToFormat(QImage::Format_ARGB32);
    +
    26  return true;
    27 }
    28 
    -
    29 void IntelliImage::resizeImage(QImage *image, const QSize &newSize){
    -
    30  // Check if we need to redraw the image
    -
    31  if (image->size() == newSize)
    -
    32  return;
    +
    29 void IntelliImage::resizeImage(QImage*image, const QSize &newSize){
    +
    30  // Check if we need to redraw the image
    +
    31  if (image->size() == newSize)
    +
    32  return;
    33 
    -
    34  // Create a new image to display and fill it with white
    -
    35  QImage newImage(newSize, QImage::Format_ARGB32);
    -
    36  newImage.fill(qRgb(255, 255, 255));
    +
    34  // Create a new image to display and fill it with white
    +
    35  QImage newImage(newSize, QImage::Format_ARGB32);
    +
    36  newImage.fill(qRgb(255, 255, 255));
    37 
    -
    38  // Draw the image
    -
    39  QPainter painter(&newImage);
    -
    40  painter.drawImage(QPoint(0, 0), *image);
    -
    41  *image = newImage;
    +
    38  // Draw the image
    +
    39  QPainter painter(&newImage);
    +
    40  painter.drawImage(QPoint(0, 0), *image);
    +
    41  *image = newImage;
    42 }
    43 
    44 void IntelliImage::drawPixel(const QPoint &p1, const QColor& color){
    -
    45  // Used to draw on the widget
    -
    46  QPainter painter(&imageData);
    +
    45  // Used to draw on the widget
    +
    46  QPainter painter(&imageData);
    47 
    -
    48  // Set the current settings for the pen
    -
    49  painter.setPen(QPen(color, 1, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
    +
    48  // Set the current settings for the pen
    +
    49  painter.setPen(QPen(color, 1, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
    50 
    -
    51  // Draw a line from the last registered point to the current
    -
    52  painter.drawPoint(p1);
    +
    51  // Draw a line from the last registered point to the current
    +
    52  painter.drawPoint(p1);
    53 }
    54 
    55 void IntelliImage::drawPoint(const QPoint &p1, const QColor& color, const int& penWidth){
    -
    56  // Used to draw on the widget
    -
    57  QPainter painter(&imageData);
    +
    56  // Used to draw on the widget
    +
    57  QPainter painter(&imageData);
    58 
    -
    59  // Set the current settings for the pen
    -
    60  painter.setPen(QPen(color, penWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
    -
    61  // Draw a line from the last registered point to the current
    -
    62  painter.drawPoint(p1);
    +
    59  // Set the current settings for the pen
    +
    60  painter.setPen(QPen(color, penWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
    +
    61  // Draw a line from the last registered point to the current
    +
    62  painter.drawPoint(p1);
    63 }
    64 
    65 void IntelliImage::drawLine(const QPoint &p1, const QPoint& p2, const QColor& color, const int& penWidth){
    -
    66  // Used to draw on the widget
    -
    67  QPainter painter(&imageData);
    +
    66  // Used to draw on the widget
    +
    67  QPainter painter(&imageData);
    68 
    -
    69  // Set the current settings for the pen
    -
    70  painter.setPen(QPen(color, penWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
    +
    69  // Set the current settings for the pen
    +
    70  painter.setPen(QPen(color, penWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
    71 
    -
    72  // Draw a line from the last registered point to the current
    -
    73  painter.drawLine(p1, p2);
    +
    72  // Draw a line from the last registered point to the current
    +
    73  painter.drawLine(p1, p2);
    74 }
    75 
    76 void IntelliImage::drawPlain(const QColor& color){
    -
    77  imageData.fill(color);
    +
    77  imageData.fill(color);
    78 }
    79 
    80 QColor IntelliImage::getPixelColor(QPoint& point){
    -
    81  return imageData.pixelColor(point);
    +
    81  return imageData.pixelColor(point);
    82 }
    diff --git a/docs/html/_intelli_image_8h.html b/docs/html/_intelli_image_8h.html index 595e317..b661225 100644 --- a/docs/html/_intelli_image_8h.html +++ b/docs/html/_intelli_image_8h.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/_intelli_image_8h_source.html b/docs/html/_intelli_image_8h_source.html index fad1c88..45206cb 100644 --- a/docs/html/_intelli_image_8h_source.html +++ b/docs/html/_intelli_image_8h_source.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -93,58 +93,60 @@ $(document).ready(function(){initNavTree('_intelli_image_8h_source.html','');}); Go to the documentation of this file.
    1 #ifndef INTELLIIMAGE_H
    2 #define INTELLIIMAGE_H
    3 
    -
    4 #include<QImage>
    -
    5 #include<QPoint>
    -
    6 #include<QColor>
    -
    7 #include<QSize>
    -
    8 #include<QWidget>
    -
    9 #include<vector>
    +
    4 #include <QImage>
    +
    5 #include <QPoint>
    +
    6 #include <QColor>
    +
    7 #include <QSize>
    +
    8 #include <QWidget>
    +
    9 #include <vector>
    10 
    -
    14 enum class ImageType{
    - - +
    14 enum class ImageType {
    + +
    17 };
    18 
    19 class IntelliTool;
    20 
    - -
    25  friend IntelliTool;
    +
    24 class IntelliImage {
    +
    25 friend IntelliTool;
    26 protected:
    -
    27  void resizeImage(QImage *image, const QSize &newSize);
    +
    27 void resizeImage(QImage*image, const QSize &newSize);
    28 
    -
    32  QImage imageData;
    +
    32 QImage imageData;
    33 public:
    -
    39  IntelliImage(int weight, int height);
    +
    39 IntelliImage(int weight, int height);
    40 
    -
    44  virtual ~IntelliImage() = 0;
    +
    44 virtual ~IntelliImage() = 0;
    45 
    46 
    -
    52  virtual void drawPixel(const QPoint &p1, const QColor& color);
    +
    52 virtual void drawPixel(const QPoint &p1, const QColor& color);
    53 
    -
    61  virtual void drawLine(const QPoint &p1, const QPoint& p2, const QColor& color, const int& penWidth);
    +
    61 virtual void drawLine(const QPoint &p1, const QPoint& p2, const QColor& color, const int& penWidth);
    62 
    -
    69  virtual void drawPoint(const QPoint &p1, const QColor& color, const int& penWidth);
    +
    69 virtual void drawPoint(const QPoint &p1, const QColor& color, const int& penWidth);
    70 
    -
    75  virtual void drawPlain(const QColor& color);
    +
    75 virtual void drawPlain(const QColor& color);
    76 
    -
    83  virtual QImage getDisplayable(const QSize& displaySize, int alpha)=0;
    +
    83 virtual QImage getDisplayable(const QSize& displaySize, int alpha) = 0;
    84 
    -
    90  virtual QImage getDisplayable(int alpha=255)=0;
    +
    90 virtual QImage getDisplayable(int alpha=255) = 0;
    91 
    -
    96  virtual IntelliImage* getDeepCopy()=0;
    +
    96 virtual IntelliImage* getDeepCopy() = 0;
    97 
    -
    101  virtual void calculateVisiblity()=0;
    +
    101 virtual void calculateVisiblity() = 0;
    102 
    -
    107  virtual void setPolygon(const std::vector<QPoint>& polygonData)=0;
    +
    107 virtual void setPolygon(const std::vector<QPoint>& polygonData) = 0;
    108 
    -
    113  virtual std::vector<QPoint> getPolygonData(){ return std::vector<QPoint>();}
    -
    114 
    -
    120  virtual bool loadImage(const QString &fileName);
    -
    121 
    -
    127  virtual QColor getPixelColor(QPoint& point);
    -
    128 };
    -
    129 
    -
    130 #endif
    +
    113 virtual std::vector<QPoint> getPolygonData(){
    +
    114  return std::vector<QPoint>();
    +
    115 }
    +
    116 
    +
    122 virtual bool loadImage(const QString &fileName);
    +
    123 
    +
    129 virtual QColor getPixelColor(QPoint& point);
    +
    130 };
    +
    131 
    +
    132 #endif
    ImageType
    The Types, which an Image can be.
    Definition: IntelliImage.h:14
    diff --git a/docs/html/_intelli_photo_gui_8cpp.html b/docs/html/_intelli_photo_gui_8cpp.html index eefb404..ec66163 100644 --- a/docs/html/_intelli_photo_gui_8cpp.html +++ b/docs/html/_intelli_photo_gui_8cpp.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/_intelli_photo_gui_8cpp_source.html b/docs/html/_intelli_photo_gui_8cpp_source.html index f4d75bf..cd9f204 100644 --- a/docs/html/_intelli_photo_gui_8cpp_source.html +++ b/docs/html/_intelli_photo_gui_8cpp_source.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -314,272 +314,308 @@ $(document).ready(function(){initNavTree('_intelli_photo_gui_8cpp_source.html','
    222  paintingArea->createLineTool();
    223 }
    224 
    -
    225 // Open an about dialog
    -
    226 void IntelliPhotoGui::slotAboutDialog(){
    -
    227  // Window title and text to display
    -
    228  QMessageBox::about(this, tr("About Painting"),
    -
    229  tr("<p><b>IntelliPhoto</b>Pretty basic editor.</p>"));
    -
    230 }
    -
    231 
    -
    232 // Define menu actions that call functions
    -
    233 void IntelliPhotoGui::createActions(){
    -
    234  // Get a list of the supported file formats
    -
    235  // QImageWriter is used to write images to files
    -
    236  foreach (QByteArray format, QImageWriter::supportedImageFormats()) {
    -
    237  QString text = tr("%1...").arg(QString(format).toUpper());
    -
    238 
    -
    239  // Create an action for each file format
    -
    240  QAction*action = new QAction(text, this);
    -
    241 
    -
    242  // Set an action for each file format
    -
    243  action->setData(format);
    -
    244 
    -
    245  // When clicked call IntelliPhotoGui::save()
    -
    246  connect(action, SIGNAL(triggered()), this, SLOT(slotSave()));
    +
    225 void IntelliPhotoGui::slotCreateRectangleTool(){
    +
    226  paintingArea->createRectangleTool();
    +
    227 }
    +
    228 
    +
    229 void IntelliPhotoGui::slotCreateCircleTool(){
    +
    230  paintingArea->createCircleTool();
    +
    231 }
    +
    232 
    +
    233 void IntelliPhotoGui::slotCreatePolygonTool(){
    +
    234  paintingArea->createPolygonTool();
    +
    235 }
    +
    236 
    +
    237 void IntelliPhotoGui::slotCreateFloodFillTool(){
    +
    238  paintingArea->createFloodFillTool();
    +
    239 }
    +
    240 
    +
    241 // Open an about dialog
    +
    242 void IntelliPhotoGui::slotAboutDialog(){
    +
    243  // Window title and text to display
    +
    244  QMessageBox::about(this, tr("About Painting"),
    +
    245  tr("<p><b>IntelliPhoto</b>Pretty basic editor.</p>"));
    +
    246 }
    247 
    -
    248  // Attach each file format option menu item to Save As
    -
    249  actionSaveAs.append(action);
    -
    250  }
    -
    251 
    -
    252  //set exporter to actions
    -
    253  QAction*pngSaveAction = new QAction("PNG-8", this);
    -
    254  pngSaveAction->setData("PNG");
    -
    255  // When clicked call IntelliPhotoGui::save()
    -
    256  connect(pngSaveAction, SIGNAL(triggered()), this, SLOT(slotSave()));
    -
    257  // Attach each PNG in save Menu
    -
    258  actionSaveAs.append(pngSaveAction);
    -
    259 
    -
    260  // Create exit action and tie to IntelliPhotoGui::close()
    -
    261  actionExit = new QAction(tr("&Exit"), this);
    -
    262  actionExit->setShortcuts(QKeySequence::Quit);
    -
    263  connect(actionExit, SIGNAL(triggered()), this, SLOT(close()));
    -
    264 
    -
    265  actionOpen = new QAction(tr("&Open"), this);
    -
    266  actionOpen->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_O));
    -
    267  connect(actionOpen, SIGNAL(triggered()), this, SLOT(slotOpen()));
    -
    268 
    -
    269  // Create New Layer action and tie to IntelliPhotoGui::newLayer()
    -
    270  actionCreateNewLayer = new QAction(tr("&New Layer..."), this);
    -
    271  actionCreateNewLayer->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_N));
    -
    272  connect(actionCreateNewLayer, SIGNAL(triggered()), this, SLOT(slotCreateNewLayer()));
    -
    273 
    -
    274  // Delete New Layer action and tie to IntelliPhotoGui::deleteLayer()
    -
    275  actionDeleteLayer = new QAction(tr("&Delete Layer..."), this);
    -
    276  connect(actionDeleteLayer, SIGNAL(triggered()), this, SLOT(slotDeleteLayer()));
    -
    277 
    -
    278  actionSetActiveLayer = new QAction(tr("&set Active"), this);
    -
    279  connect(actionSetActiveLayer, SIGNAL(triggered()), this, SLOT(slotSetActiveLayer()));
    +
    248 // Define menu actions that call functions
    +
    249 void IntelliPhotoGui::createActions(){
    +
    250  // Get a list of the supported file formats
    +
    251  // QImageWriter is used to write images to files
    +
    252  foreach (QByteArray format, QImageWriter::supportedImageFormats()) {
    +
    253  QString text = tr("%1...").arg(QString(format).toUpper());
    +
    254 
    +
    255  // Create an action for each file format
    +
    256  QAction*action = new QAction(text, this);
    +
    257 
    +
    258  // Set an action for each file format
    +
    259  action->setData(format);
    +
    260 
    +
    261  // When clicked call IntelliPhotoGui::save()
    +
    262  connect(action, SIGNAL(triggered()), this, SLOT(slotSave()));
    +
    263 
    +
    264  // Attach each file format option menu item to Save As
    +
    265  actionSaveAs.append(action);
    +
    266  }
    +
    267 
    +
    268  //set exporter to actions
    +
    269  QAction*pngSaveAction = new QAction("PNG-8", this);
    +
    270  pngSaveAction->setData("PNG");
    +
    271  // When clicked call IntelliPhotoGui::save()
    +
    272  connect(pngSaveAction, SIGNAL(triggered()), this, SLOT(slotSave()));
    +
    273  // Attach each PNG in save Menu
    +
    274  actionSaveAs.append(pngSaveAction);
    +
    275 
    +
    276  // Create exit action and tie to IntelliPhotoGui::close()
    +
    277  actionExit = new QAction(tr("&Exit"), this);
    +
    278  actionExit->setShortcuts(QKeySequence::Quit);
    +
    279  connect(actionExit, SIGNAL(triggered()), this, SLOT(close()));
    280 
    -
    281  actionSetActiveAlpha = new QAction(tr("&set Alpha"), this);
    -
    282  connect(actionSetActiveAlpha, SIGNAL(triggered()), this, SLOT(slotSetActiveAlpha()));
    -
    283 
    -
    284  actionMovePositionUp = new QAction(tr("&move Up"), this);
    -
    285  actionMovePositionUp->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Up));
    -
    286  connect(actionMovePositionUp, SIGNAL(triggered()), this, SLOT(slotPositionMoveUp()));
    -
    287 
    -
    288  actionMovePositionDown = new QAction(tr("&move Down"), this);
    -
    289  actionMovePositionDown->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Down));
    -
    290  connect(actionMovePositionDown, SIGNAL(triggered()), this, SLOT(slotPositionMoveDown()));
    -
    291 
    -
    292  actionMovePositionLeft = new QAction(tr("&move Left"), this);
    -
    293  actionMovePositionLeft->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Left));
    -
    294  connect(actionMovePositionLeft, SIGNAL(triggered()), this, SLOT(slotPositionMoveLeft()));
    -
    295 
    -
    296  actionMovePositionRight = new QAction(tr("&move Right"), this);
    -
    297  actionMovePositionRight->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Right));
    -
    298  connect(actionMovePositionRight, SIGNAL(triggered()), this, SLOT(slotPositionMoveRight()));
    +
    281  actionOpen = new QAction(tr("&Open"), this);
    +
    282  actionOpen->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_O));
    +
    283  connect(actionOpen, SIGNAL(triggered()), this, SLOT(slotOpen()));
    +
    284 
    +
    285  // Create New Layer action and tie to IntelliPhotoGui::newLayer()
    +
    286  actionCreateNewLayer = new QAction(tr("&New Layer..."), this);
    +
    287  actionCreateNewLayer->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_N));
    +
    288  connect(actionCreateNewLayer, SIGNAL(triggered()), this, SLOT(slotCreateNewLayer()));
    +
    289 
    +
    290  // Delete New Layer action and tie to IntelliPhotoGui::deleteLayer()
    +
    291  actionDeleteLayer = new QAction(tr("&Delete Layer..."), this);
    +
    292  connect(actionDeleteLayer, SIGNAL(triggered()), this, SLOT(slotDeleteLayer()));
    +
    293 
    +
    294  actionSetActiveLayer = new QAction(tr("&set Active"), this);
    +
    295  connect(actionSetActiveLayer, SIGNAL(triggered()), this, SLOT(slotSetActiveLayer()));
    +
    296 
    +
    297  actionSetActiveAlpha = new QAction(tr("&set Alpha"), this);
    +
    298  connect(actionSetActiveAlpha, SIGNAL(triggered()), this, SLOT(slotSetActiveAlpha()));
    299 
    -
    300  actionMoveLayerUp = new QAction(tr("&move Layer Up"), this);
    -
    301  actionMoveLayerUp->setShortcut(QKeySequence(Qt::CTRL + Qt::ALT + Qt::Key_Up));
    -
    302  connect(actionMoveLayerUp, SIGNAL(triggered()), this, SLOT(slotMoveLayerUp()));
    +
    300  actionMovePositionUp = new QAction(tr("&move Up"), this);
    +
    301  actionMovePositionUp->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Up));
    +
    302  connect(actionMovePositionUp, SIGNAL(triggered()), this, SLOT(slotPositionMoveUp()));
    303 
    -
    304  actionMoveLayerDown= new QAction(tr("&move Layer Down"), this);
    -
    305  actionMoveLayerDown->setShortcut(QKeySequence(Qt::CTRL + Qt::ALT + Qt::Key_Down));
    -
    306  connect(actionMoveLayerDown, SIGNAL(triggered()), this, SLOT(slotMoveLayerDown()));
    +
    304  actionMovePositionDown = new QAction(tr("&move Down"), this);
    +
    305  actionMovePositionDown->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Down));
    +
    306  connect(actionMovePositionDown, SIGNAL(triggered()), this, SLOT(slotPositionMoveDown()));
    307 
    -
    308  //Create Color Actions here
    -
    309  actionColorPickerFirstColor = new QAction(tr("&Main"), this);
    -
    310  connect(actionColorPickerFirstColor, SIGNAL(triggered()), this, SLOT(slotSetFirstColor()));
    +
    308  actionMovePositionLeft = new QAction(tr("&move Left"), this);
    +
    309  actionMovePositionLeft->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Left));
    +
    310  connect(actionMovePositionLeft, SIGNAL(triggered()), this, SLOT(slotPositionMoveLeft()));
    311 
    -
    312  actionColorPickerSecondColor = new QAction(tr("&Secondary"), this);
    -
    313  connect(actionColorPickerSecondColor, SIGNAL(triggered()), this, SLOT(slotSetSecondColor()));
    -
    314 
    -
    315  actionColorSwitch = new QAction(tr("&Switch"), this);
    -
    316  actionColorSwitch->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_S));
    -
    317  connect(actionColorSwitch, SIGNAL(triggered()), this, SLOT(slotSwitchColor()));
    -
    318 
    -
    319  //Create Tool actions down here
    -
    320  actionCreatePlainTool = new QAction(tr("&Plain"), this);
    -
    321  connect(actionCreatePlainTool, SIGNAL(triggered()), this, SLOT(slotCreatePlainTool()));
    -
    322 
    -
    323  actionCreatePenTool = new QAction(tr("&Pen"),this);
    -
    324  connect(actionCreatePenTool, SIGNAL(triggered()), this, SLOT(slotCreatePenTool()));
    -
    325 
    -
    326  actionCreateLineTool = new QAction(tr("&Line"), this);
    -
    327  connect(actionCreateLineTool, SIGNAL(triggered()), this, SLOT(slotCreateLineTool()));
    -
    328 
    -
    329  // Create about action and tie to IntelliPhotoGui::about()
    -
    330  actionAboutDialog = new QAction(tr("&About"), this);
    -
    331  connect(actionAboutDialog, SIGNAL(triggered()), this, SLOT(slotAboutDialog()));
    -
    332 
    -
    333  // Create about Qt action and tie to IntelliPhotoGui::aboutQt()
    -
    334  actionAboutQtDialog = new QAction(tr("About &Qt"), this);
    -
    335  connect(actionAboutQtDialog, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
    -
    336 }
    -
    337 
    -
    338 // Create the menubar
    -
    339 void IntelliPhotoGui::createMenus(){
    -
    340  // Create Save As option and the list of file types
    -
    341  saveAsMenu = new QMenu(tr("&Save As"), this);
    -
    342  foreach (QAction *action, actionSaveAs)
    -
    343  saveAsMenu->addAction(action);
    +
    312  actionMovePositionRight = new QAction(tr("&move Right"), this);
    +
    313  actionMovePositionRight->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Right));
    +
    314  connect(actionMovePositionRight, SIGNAL(triggered()), this, SLOT(slotPositionMoveRight()));
    +
    315 
    +
    316  actionMoveLayerUp = new QAction(tr("&move Layer Up"), this);
    +
    317  actionMoveLayerUp->setShortcut(QKeySequence(Qt::CTRL + Qt::ALT + Qt::Key_Up));
    +
    318  connect(actionMoveLayerUp, SIGNAL(triggered()), this, SLOT(slotMoveLayerUp()));
    +
    319 
    +
    320  actionMoveLayerDown= new QAction(tr("&move Layer Down"), this);
    +
    321  actionMoveLayerDown->setShortcut(QKeySequence(Qt::CTRL + Qt::ALT + Qt::Key_Down));
    +
    322  connect(actionMoveLayerDown, SIGNAL(triggered()), this, SLOT(slotMoveLayerDown()));
    +
    323 
    +
    324  //Create Color Actions here
    +
    325  actionColorPickerFirstColor = new QAction(tr("&Main"), this);
    +
    326  connect(actionColorPickerFirstColor, SIGNAL(triggered()), this, SLOT(slotSetFirstColor()));
    +
    327 
    +
    328  actionColorPickerSecondColor = new QAction(tr("&Secondary"), this);
    +
    329  connect(actionColorPickerSecondColor, SIGNAL(triggered()), this, SLOT(slotSetSecondColor()));
    +
    330 
    +
    331  actionColorSwitch = new QAction(tr("&Switch"), this);
    +
    332  actionColorSwitch->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_S));
    +
    333  connect(actionColorSwitch, SIGNAL(triggered()), this, SLOT(slotSwitchColor()));
    +
    334 
    +
    335  //Create Tool actions down here
    +
    336  actionCreatePlainTool = new QAction(tr("&Plain"), this);
    +
    337  connect(actionCreatePlainTool, SIGNAL(triggered()), this, SLOT(slotCreatePlainTool()));
    +
    338 
    +
    339  actionCreatePenTool = new QAction(tr("&Pen"),this);
    +
    340  connect(actionCreatePenTool, SIGNAL(triggered()), this, SLOT(slotCreatePenTool()));
    +
    341 
    +
    342  actionCreateLineTool = new QAction(tr("&Line"), this);
    +
    343  connect(actionCreateLineTool, SIGNAL(triggered()), this, SLOT(slotCreateLineTool()));
    344 
    -
    345 
    -
    346  // Attach all actions to File
    -
    347  fileMenu = new QMenu(tr("&File"), this);
    -
    348  fileMenu->addAction(actionOpen);
    -
    349  fileMenu->addMenu(saveAsMenu);
    -
    350  fileMenu->addSeparator();
    -
    351  fileMenu->addAction(actionExit);
    -
    352 
    -
    353  // Attach all actions to Options
    -
    354  optionMenu = new QMenu(tr("&Options"), this);
    -
    355  optionMenu->addAction(actionSetActiveLayer);
    -
    356  optionMenu->addAction(actionSetActiveAlpha);
    -
    357  optionMenu->addAction(actionMovePositionUp);
    -
    358  optionMenu->addAction(actionMovePositionDown);
    -
    359  optionMenu->addAction(actionMovePositionLeft);
    -
    360  optionMenu->addAction(actionMovePositionRight);
    -
    361  optionMenu->addAction(actionMoveLayerUp);
    -
    362  optionMenu->addAction(actionMoveLayerDown);
    -
    363 
    -
    364  // Attach all actions to Layer
    -
    365  layerMenu = new QMenu(tr("&Layer"), this);
    -
    366  layerMenu->addAction(actionCreateNewLayer);
    -
    367  layerMenu->addAction(actionDeleteLayer);
    -
    368 
    -
    369  //Attach all Color Options
    -
    370  colorMenu = new QMenu(tr("&Color"), this);
    -
    371  colorMenu->addAction(actionColorPickerFirstColor);
    -
    372  colorMenu->addAction(actionColorPickerSecondColor);
    -
    373  colorMenu->addAction(actionColorSwitch);
    -
    374 
    -
    375  //Attach all Tool Options
    -
    376  toolMenu = new QMenu(tr("&Tools"), this);
    -
    377  toolMenu->addAction(actionCreatePenTool);
    -
    378  toolMenu->addAction(actionCreatePlainTool);
    -
    379  toolMenu->addAction(actionCreateLineTool);
    -
    380  toolMenu->addSeparator();
    -
    381  toolMenu->addMenu(colorMenu);
    -
    382 
    -
    383  // Attach all actions to Help
    -
    384  helpMenu = new QMenu(tr("&Help"), this);
    -
    385  helpMenu->addAction(actionAboutDialog);
    -
    386  helpMenu->addAction(actionAboutQtDialog);
    -
    387 
    -
    388  // Add menu items to the menubar
    -
    389  menuBar()->addMenu(fileMenu);
    -
    390  menuBar()->addMenu(optionMenu);
    -
    391  menuBar()->addMenu(layerMenu);
    -
    392  menuBar()->addMenu(toolMenu);
    -
    393  menuBar()->addMenu(helpMenu);
    -
    394 }
    -
    395 
    -
    396 void IntelliPhotoGui::createGui(){
    -
    397  // create a central widget to work on
    -
    398  centralGuiWidget = new QWidget(this);
    -
    399  setCentralWidget(centralGuiWidget);
    -
    400 
    -
    401  // create the grid for the layout
    -
    402  mainLayout = new QGridLayout(centralGuiWidget);
    -
    403  centralGuiWidget->setLayout(mainLayout);
    -
    404 
    -
    405  // create Gui elements
    -
    406  paintingArea = new PaintingArea();
    -
    407 
    -
    408  // set gui elements
    -
    409  mainLayout->addWidget(paintingArea);
    -
    410 }
    -
    411 
    -
    412 void IntelliPhotoGui::setIntelliStyle(){
    -
    413  // Set the title
    -
    414  setWindowTitle("IntelliPhoto Prototype");
    -
    415  // Set style sheet
    -
    416  this->setStyleSheet("background-color:rgb(64,64,64)");
    -
    417  this->centralGuiWidget->setStyleSheet("color:rgb(255,255,255)");
    -
    418  this->menuBar()->setStyleSheet("color:rgb(255,255,255)");
    -
    419 }
    -
    420 
    -
    421 bool IntelliPhotoGui::maybeSave(){
    -
    422  // Check for changes since last save
    -
    423 
    -
    424  // TODO insert variable for modified status here to make an save exit message
    -
    425  if (false) {
    -
    426  QMessageBox::StandardButton ret;
    +
    345  actionCreateCircleTool = new QAction(tr("&Circle"), this);
    +
    346  connect(actionCreateCircleTool, SIGNAL(triggered()), this, SLOT(slotCreateCircleTool()));
    +
    347 
    +
    348  actionCreateRectangleTool = new QAction(tr("&Rectangle"), this);
    +
    349  connect(actionCreateRectangleTool, SIGNAL(triggered()), this, SLOT(slotCreateRectangleTool()));
    +
    350 
    +
    351  actionCreatePolygonTool = new QAction(tr("&Polygon"), this);
    +
    352  connect(actionCreatePolygonTool, SIGNAL(triggered()), this, SLOT(slotCreatePolygonTool()));
    +
    353 
    +
    354  actionCreateFloodFillTool = new QAction(tr("&FloodFill"), this);
    +
    355  connect(actionCreateFloodFillTool, SIGNAL(triggered()), this, SLOT(slotCreateFloodFillTool()));
    +
    356 
    +
    357  // Create about action and tie to IntelliPhotoGui::about()
    +
    358  actionAboutDialog = new QAction(tr("&About"), this);
    +
    359  connect(actionAboutDialog, SIGNAL(triggered()), this, SLOT(slotAboutDialog()));
    +
    360 
    +
    361  // Create about Qt action and tie to IntelliPhotoGui::aboutQt()
    +
    362  actionAboutQtDialog = new QAction(tr("About &Qt"), this);
    +
    363  connect(actionAboutQtDialog, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
    +
    364 }
    +
    365 
    +
    366 // Create the menubar
    +
    367 void IntelliPhotoGui::createMenus(){
    +
    368  // Create Save As option and the list of file types
    +
    369  saveAsMenu = new QMenu(tr("&Save As"), this);
    +
    370  foreach (QAction *action, actionSaveAs)
    +
    371  saveAsMenu->addAction(action);
    +
    372 
    +
    373 
    +
    374  // Attach all actions to File
    +
    375  fileMenu = new QMenu(tr("&File"), this);
    +
    376  fileMenu->addAction(actionOpen);
    +
    377  fileMenu->addMenu(saveAsMenu);
    +
    378  fileMenu->addSeparator();
    +
    379  fileMenu->addAction(actionExit);
    +
    380 
    +
    381  // Attach all actions to Options
    +
    382  optionMenu = new QMenu(tr("&Options"), this);
    +
    383  optionMenu->addAction(actionSetActiveLayer);
    +
    384  optionMenu->addAction(actionSetActiveAlpha);
    +
    385  optionMenu->addAction(actionMovePositionUp);
    +
    386  optionMenu->addAction(actionMovePositionDown);
    +
    387  optionMenu->addAction(actionMovePositionLeft);
    +
    388  optionMenu->addAction(actionMovePositionRight);
    +
    389  optionMenu->addAction(actionMoveLayerUp);
    +
    390  optionMenu->addAction(actionMoveLayerDown);
    +
    391 
    +
    392  // Attach all actions to Layer
    +
    393  layerMenu = new QMenu(tr("&Layer"), this);
    +
    394  layerMenu->addAction(actionCreateNewLayer);
    +
    395  layerMenu->addAction(actionDeleteLayer);
    +
    396 
    +
    397  //Attach all Color Options
    +
    398  colorMenu = new QMenu(tr("&Color"), this);
    +
    399  colorMenu->addAction(actionColorPickerFirstColor);
    +
    400  colorMenu->addAction(actionColorPickerSecondColor);
    +
    401  colorMenu->addAction(actionColorSwitch);
    +
    402 
    +
    403  //Attach all Tool Options
    +
    404  toolMenu = new QMenu(tr("&Tools"), this);
    +
    405  toolMenu->addAction(actionCreatePenTool);
    +
    406  toolMenu->addAction(actionCreatePlainTool);
    +
    407  toolMenu->addAction(actionCreateLineTool);
    +
    408  toolMenu->addAction(actionCreateRectangleTool);
    +
    409  toolMenu->addAction(actionCreateCircleTool);
    +
    410  toolMenu->addAction(actionCreatePolygonTool);
    +
    411  toolMenu->addAction(actionCreateFloodFillTool);
    +
    412  toolMenu->addSeparator();
    +
    413  toolMenu->addMenu(colorMenu);
    +
    414 
    +
    415  // Attach all actions to Help
    +
    416  helpMenu = new QMenu(tr("&Help"), this);
    +
    417  helpMenu->addAction(actionAboutDialog);
    +
    418  helpMenu->addAction(actionAboutQtDialog);
    +
    419 
    +
    420  // Add menu items to the menubar
    +
    421  menuBar()->addMenu(fileMenu);
    +
    422  menuBar()->addMenu(optionMenu);
    +
    423  menuBar()->addMenu(layerMenu);
    +
    424  menuBar()->addMenu(toolMenu);
    +
    425  menuBar()->addMenu(helpMenu);
    +
    426 }
    427 
    -
    428  // Painting is the title of the window
    -
    429  // Add text and the buttons
    -
    430  ret = QMessageBox::warning(this, tr("Painting"),
    -
    431  tr("The image has been modified.\n"
    -
    432  "Do you want to save your changes?"),
    -
    433  QMessageBox::Save | QMessageBox::Discard
    -
    434  | QMessageBox::Cancel);
    -
    435 
    -
    436  // If save button clicked call for file to be saved
    -
    437  if (ret == QMessageBox::Save) {
    -
    438  return saveFile("png");
    +
    428 void IntelliPhotoGui::createGui(){
    +
    429  // create a central widget to work on
    +
    430  centralGuiWidget = new QWidget(this);
    +
    431  setCentralWidget(centralGuiWidget);
    +
    432 
    +
    433  // create the grid for the layout
    +
    434  mainLayout = new QGridLayout(centralGuiWidget);
    +
    435  centralGuiWidget->setLayout(mainLayout);
    +
    436 
    +
    437  // create Gui elements
    +
    438  paintingArea = new PaintingArea();
    439 
    -
    440  // If cancel do nothing
    -
    441  } else if (ret == QMessageBox::Cancel) {
    -
    442  return false;
    -
    443  }
    -
    444  }
    -
    445  return true;
    -
    446 }
    -
    447 
    -
    448 bool IntelliPhotoGui::saveFile(const QByteArray &fileFormat){
    -
    449  // Define path, name and default file type
    -
    450  QString initialPath = QDir::currentPath() + "/untitled." + fileFormat;
    -
    451 
    -
    452  // Get selected file from dialog
    -
    453  // Add the proper file formats and extensions
    -
    454  QString fileName = QFileDialog::getSaveFileName(this, tr("Save As"),
    -
    455  initialPath,
    -
    456  tr("%1 Files (*.%2);;All Files (*)")
    -
    457  .arg(QString::fromLatin1(fileFormat.toUpper()))
    -
    458  .arg(QString::fromLatin1(fileFormat)), nullptr, QFileDialog::DontUseNativeDialog);
    +
    440  // set gui elements
    +
    441  mainLayout->addWidget(paintingArea);
    +
    442 }
    +
    443 
    +
    444 void IntelliPhotoGui::setIntelliStyle(){
    +
    445  // Set the title
    +
    446  setWindowTitle("IntelliPhoto Prototype");
    +
    447  // Set style sheet
    +
    448  this->setStyleSheet("background-color:rgb(64,64,64)");
    +
    449  this->centralGuiWidget->setStyleSheet("color:rgb(255,255,255)");
    +
    450  this->menuBar()->setStyleSheet("color:rgb(255,255,255)");
    +
    451 }
    +
    452 
    +
    453 bool IntelliPhotoGui::maybeSave(){
    +
    454  // Check for changes since last save
    +
    455 
    +
    456  // TODO insert variable for modified status here to make an save exit message
    +
    457  if (false) {
    +
    458  QMessageBox::StandardButton ret;
    459 
    -
    460  // If no file do nothing
    -
    461  if (fileName.isEmpty()) {
    -
    462  return false;
    -
    463  } else {
    -
    464  // Call for the file to be saved
    -
    465  return paintingArea->save(fileName, fileFormat.constData());
    -
    466  }
    -
    467 }
    +
    460  // Painting is the title of the window
    +
    461  // Add text and the buttons
    +
    462  ret = QMessageBox::warning(this, tr("Painting"),
    +
    463  tr("The image has been modified.\n"
    +
    464  "Do you want to save your changes?"),
    +
    465  QMessageBox::Save | QMessageBox::Discard
    +
    466  | QMessageBox::Cancel);
    +
    467 
    +
    468  // If save button clicked call for file to be saved
    +
    469  if (ret == QMessageBox::Save) {
    +
    470  return saveFile("png");
    +
    471 
    +
    472  // If cancel do nothing
    +
    473  } else if (ret == QMessageBox::Cancel) {
    +
    474  return false;
    +
    475  }
    +
    476  }
    +
    477  return true;
    +
    478 }
    +
    479 
    +
    480 bool IntelliPhotoGui::saveFile(const QByteArray &fileFormat){
    +
    481  // Define path, name and default file type
    +
    482  QString initialPath = QDir::currentPath() + "/untitled." + fileFormat;
    +
    483 
    +
    484  // Get selected file from dialog
    +
    485  // Add the proper file formats and extensions
    +
    486  QString fileName = QFileDialog::getSaveFileName(this, tr("Save As"),
    +
    487  initialPath,
    +
    488  tr("%1 Files (*.%2);;All Files (*)")
    +
    489  .arg(QString::fromLatin1(fileFormat.toUpper()))
    +
    490  .arg(QString::fromLatin1(fileFormat)), nullptr, QFileDialog::DontUseNativeDialog);
    +
    491 
    +
    492  // If no file do nothing
    +
    493  if (fileName.isEmpty()) {
    +
    494  return false;
    +
    495  } else {
    +
    496  // Call for the file to be saved
    +
    497  return paintingArea->save(fileName, fileFormat.constData());
    +
    498  }
    +
    499 }
    -
    int addLayer(int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
    -
    bool open(const QString &fileName)
    -
    void setLayerToActive(int index)
    -
    void floodFill(int r, int g, int b, int a)
    -
    bool save(const QString &fileName, const char *fileFormat)
    -
    void createPlainTool()
    - - -
    void deleteLayer(int index)
    -
    void createPenTool()
    -
    void createLineTool()
    -
    void colorPickerSetSecondColor()
    -
    void colorPickerSetFirstColor()
    -
    void colorPickerSwitchColor()
    +
    void createCircleTool()
    +
    int addLayer(int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
    The addLayer adds a layer to the current project/ painting area.
    +
    void createRectangleTool()
    +
    bool open(const QString &fileName)
    The open method is used for loading a picture into the current layer.
    +
    void setLayerToActive(int index)
    The setLayerToActive method marks a specific layer as active.
    +
    void floodFill(int r, int g, int b, int a)
    The floodFill method fills a the active layer with a given color.
    +
    bool save(const QString &fileName, const char *fileFormat)
    The save method is used for exporting the current project as one picture.
    +
    void createPlainTool()
    +
    IntelliPhotoGui()
    The IntelliPhotoGui method is the constructor and is used to create a new instance of the main progra...
    +
    The PaintingArea class manages the methods and stores information about the current painting area,...
    Definition: PaintingArea.h:36
    +
    void deleteLayer(int index)
    The deleteLayer method removes a layer at a given index.
    +
    void createPenTool()
    +
    void createLineTool()
    +
    void colorPickerSetSecondColor()
    The colorPickerSetSecondColor calls the QTColorPicker to determine the secondary drawing color.
    +
    void colorPickerSetFirstColor()
    The colorPickerSetFirstColor calls the QTColorPicker to determine the primary drawing color.
    +
    void colorPickerSwitchColor()
    The colorPickerSwitchColor swaps the primary color with the secondary drawing color.
    void closeEvent(QCloseEvent *event) override
    -
    void moveActiveLayer(int idx)
    +
    void createPolygonTool()
    +
    void moveActiveLayer(int idx)
    The moveActiveLayer moves the active layer to a specific position in the layer stack.
    -
    void slotActivateLayer(int a)
    -
    void setAlphaOfLayer(int index, int alpha)
    -
    void movePositionActive(int x, int y)
    +
    void createFloodFillTool()
    +
    void slotActivateLayer(int a)
    The slotActivateLayer method handles the event of selecting one layer as active.
    +
    void setAlphaOfLayer(int index, int alpha)
    The setAlphaOfLayer method sets the alpha value of a specific layer.
    +
    void movePositionActive(int x, int y)
    The movePositionActive method moves the active layer to certain position.

    Classes

    class  IntelliPhotoGui + The IntelliPhotoGui class handles the graphical user interface for the intelliPhoto program. More...
      diff --git a/docs/html/_intelli_photo_gui_8h_source.html b/docs/html/_intelli_photo_gui_8h_source.html index 9628d3c..73cc16d 100644 --- a/docs/html/_intelli_photo_gui_8h_source.html +++ b/docs/html/_intelli_photo_gui_8h_source.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -108,120 +108,128 @@ $(document).ready(function(){initNavTree('_intelli_photo_gui_8h_source.html','')
    16 
    17 class IntelliColorPicker;
    18 
    -
    19 class IntelliPhotoGui : public QMainWindow{
    -
    20  // Declares our class as a QObject which is the base class
    -
    21  // for all Qt objects
    -
    22  // QObjects handle events
    -
    23  Q_OBJECT
    -
    24 public:
    - -
    26 
    -
    27 protected:
    -
    28  // Function used to close an event
    -
    29  void closeEvent(QCloseEvent *event) override;
    -
    30 
    -
    31 private slots:
    -
    32  // meta slots here (need further )
    -
    33  void slotOpen();
    -
    34  void slotSave();
    -
    35 
    -
    36  // layer slots here
    -
    37  void slotCreateNewLayer();
    -
    38  void slotDeleteLayer();
    -
    39  void slotClearActiveLayer();
    -
    40  void slotSetActiveLayer();
    -
    41  void slotSetActiveAlpha();
    -
    42  void slotPositionMoveUp();
    -
    43  void slotPositionMoveDown();
    -
    44  void slotPositionMoveLeft();
    -
    45  void slotPositionMoveRight();
    -
    46  void slotMoveLayerUp();
    -
    47  void slotMoveLayerDown();
    -
    48 
    -
    49  // color Picker slots here
    -
    50  void slotSetFirstColor();
    -
    51  void slotSetSecondColor();
    -
    52  void slotSwitchColor();
    -
    53 
    -
    54  // tool slots here
    -
    55  void slotCreatePenTool();
    -
    56  void slotCreatePlainTool();
    -
    57  void slotCreateLineTool();
    -
    58 
    -
    59  // slots for dialogs
    -
    60  void slotAboutDialog();
    -
    61 
    -
    62 private:
    -
    63  // Will tie user actions to functions
    -
    64  void createActions();
    -
    65  void createMenus();
    -
    66  // setup GUI elements
    -
    67  void createGui();
    -
    68  // set style of the GUI
    -
    69  void setIntelliStyle();
    -
    70 
    -
    71  // Will check if changes have occurred since last save
    -
    72  bool maybeSave();
    -
    73  // Opens the Save dialog and saves
    -
    74  bool saveFile(const QByteArray &fileFormat);
    -
    75 
    -
    76  // What we'll draw on
    -
    77  PaintingArea* paintingArea;
    -
    78 
    -
    79  // The menu widgets
    -
    80  QMenu *saveAsMenu;
    -
    81  QMenu *fileMenu;
    -
    82  QMenu *optionMenu;
    -
    83  QMenu *layerMenu;
    -
    84  QMenu *colorMenu;
    -
    85  QMenu *toolMenu;
    -
    86  QMenu *helpMenu;
    -
    87 
    -
    88  // All the actions that can occur
    -
    89  // meta image actions (need further modularisation)
    -
    90  QAction *actionOpen;
    -
    91  QAction *actionExit;
    -
    92 
    -
    93  // color Picker actions
    -
    94  QAction *actionColorPickerFirstColor;
    -
    95  QAction *actionColorPickerSecondColor;
    -
    96  QAction *actionColorSwitch;
    +
    22 class IntelliPhotoGui : public QMainWindow {
    +
    23 // Declares our class as a QObject which is the base class
    +
    24 // for all Qt objects
    +
    25 // QObjects handle events
    +
    26 Q_OBJECT
    +
    27 public:
    + +
    32 
    +
    33 protected:
    +
    34 // Function used to close an event
    +
    35 void closeEvent(QCloseEvent*event) override;
    +
    36 
    +
    37 private slots:
    +
    38 // meta slots here (need further )
    +
    39 void slotOpen();
    +
    40 void slotSave();
    +
    41 
    +
    42 // layer slots here
    +
    43 void slotCreateNewLayer();
    +
    44 void slotDeleteLayer();
    +
    45 void slotClearActiveLayer();
    +
    46 void slotSetActiveLayer();
    +
    47 void slotSetActiveAlpha();
    +
    48 void slotPositionMoveUp();
    +
    49 void slotPositionMoveDown();
    +
    50 void slotPositionMoveLeft();
    +
    51 void slotPositionMoveRight();
    +
    52 void slotMoveLayerUp();
    +
    53 void slotMoveLayerDown();
    +
    54 
    +
    55 // color Picker slots here
    +
    56 void slotSetFirstColor();
    +
    57 void slotSetSecondColor();
    +
    58 void slotSwitchColor();
    +
    59 
    +
    60 // tool slots here
    +
    61 void slotCreatePenTool();
    +
    62 void slotCreatePlainTool();
    +
    63 void slotCreateLineTool();
    +
    64 void slotCreateRectangleTool();
    +
    65 void slotCreateCircleTool();
    +
    66 void slotCreatePolygonTool();
    +
    67 void slotCreateFloodFillTool();
    +
    68 
    +
    69 // slots for dialogs
    +
    70 void slotAboutDialog();
    +
    71 
    +
    72 private:
    +
    73 // Will tie user actions to functions
    +
    74 void createActions();
    +
    75 void createMenus();
    +
    76 // setup GUI elements
    +
    77 void createGui();
    +
    78 // set style of the GUI
    +
    79 void setIntelliStyle();
    +
    80 
    +
    81 // Will check if changes have occurred since last save
    +
    82 bool maybeSave();
    +
    83 // Opens the Save dialog and saves
    +
    84 bool saveFile(const QByteArray &fileFormat);
    +
    85 
    +
    86 // What we'll draw on
    +
    87 PaintingArea* paintingArea;
    +
    88 
    +
    89 // The menu widgets
    +
    90 QMenu*saveAsMenu;
    +
    91 QMenu*fileMenu;
    +
    92 QMenu*optionMenu;
    +
    93 QMenu*layerMenu;
    +
    94 QMenu*colorMenu;
    +
    95 QMenu*toolMenu;
    +
    96 QMenu*helpMenu;
    97 
    -
    98  // tool actions
    -
    99  QAction *actionCreatePenTool;
    -
    100  QAction *actionCreatePlainTool;
    -
    101  QAction *actionCreateLineTool;
    +
    98 // All the actions that can occur
    +
    99 // meta image actions (need further modularisation)
    +
    100 QAction*actionOpen;
    +
    101 QAction*actionExit;
    102 
    -
    103  // dialog actions
    -
    104  QAction *actionAboutDialog;
    -
    105  QAction *actionAboutQtDialog;
    -
    106 
    -
    107  // layer change actions
    -
    108  QAction *actionCreateNewLayer;
    -
    109  QAction *actionDeleteLayer;
    -
    110  QAction* actionSetActiveLayer;
    -
    111  QAction* actionSetActiveAlpha;
    -
    112  QAction* actionMovePositionUp;
    -
    113  QAction* actionMovePositionDown;
    -
    114  QAction* actionMovePositionLeft;
    -
    115  QAction* actionMovePositionRight;
    -
    116  QAction* actionMoveLayerUp;
    -
    117  QAction* actionMoveLayerDown;
    -
    118 
    -
    119  // Actions tied to specific file formats
    -
    120  QList<QAction *> actionSaveAs;
    -
    121 
    -
    122  // main GUI elements
    -
    123  QWidget* centralGuiWidget;
    -
    124  QGridLayout *mainLayout;
    -
    125 };
    -
    126 
    -
    127 #endif
    +
    103 // color Picker actions
    +
    104 QAction*actionColorPickerFirstColor;
    +
    105 QAction*actionColorPickerSecondColor;
    +
    106 QAction*actionColorSwitch;
    +
    107 
    +
    108 // tool actions
    +
    109 QAction*actionCreatePenTool;
    +
    110 QAction*actionCreatePlainTool;
    +
    111 QAction*actionCreateLineTool;
    +
    112 QAction*actionCreateRectangleTool;
    +
    113 QAction*actionCreateCircleTool;
    +
    114 QAction*actionCreatePolygonTool;
    +
    115 QAction*actionCreateFloodFillTool;
    +
    116 
    +
    117 // dialog actions
    +
    118 QAction*actionAboutDialog;
    +
    119 QAction*actionAboutQtDialog;
    +
    120 
    +
    121 // layer change actions
    +
    122 QAction*actionCreateNewLayer;
    +
    123 QAction*actionDeleteLayer;
    +
    124 QAction* actionSetActiveLayer;
    +
    125 QAction* actionSetActiveAlpha;
    +
    126 QAction* actionMovePositionUp;
    +
    127 QAction* actionMovePositionDown;
    +
    128 QAction* actionMovePositionLeft;
    +
    129 QAction* actionMovePositionRight;
    +
    130 QAction* actionMoveLayerUp;
    +
    131 QAction* actionMoveLayerDown;
    +
    132 
    +
    133 // Actions tied to specific file formats
    +
    134 QList<QAction*> actionSaveAs;
    +
    135 
    +
    136 // main GUI elements
    +
    137 QWidget* centralGuiWidget;
    +
    138 QGridLayout*mainLayout;
    +
    139 };
    +
    140 
    +
    141 #endif
    - - - +
    The IntelliPhotoGui class handles the graphical user interface for the intelliPhoto program.
    +
    IntelliPhotoGui()
    The IntelliPhotoGui method is the constructor and is used to create a new instance of the main progra...
    +
    The PaintingArea class manages the methods and stores information about the current painting area,...
    Definition: PaintingArea.h:36
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    void closeEvent(QCloseEvent *event) override
    The IntelliColorPicker manages the selected colors for one whole project.
    diff --git a/docs/html/_intelli_raster_image_8cpp.html b/docs/html/_intelli_raster_image_8cpp.html index dd0cace..180a1b7 100644 --- a/docs/html/_intelli_raster_image_8cpp.html +++ b/docs/html/_intelli_raster_image_8cpp.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/_intelli_raster_image_8cpp_source.html b/docs/html/_intelli_raster_image_8cpp_source.html index 1505657..44473a2 100644 --- a/docs/html/_intelli_raster_image_8cpp_source.html +++ b/docs/html/_intelli_raster_image_8cpp_source.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -90,13 +90,13 @@ $(document).ready(function(){initNavTree('_intelli_raster_image_8cpp_source.html
    IntelliRasterImage.cpp
    -Go to the documentation of this file.
    -
    2 #include<QPainter>
    -
    3 #include<QRect>
    -
    4 #include<QDebug>
    +Go to the documentation of this file.
    +
    2 #include <QPainter>
    +
    3 #include <QRect>
    +
    4 #include <QDebug>
    5 
    -
    7  :IntelliImage(weight, height){
    +
    7  : IntelliImage(weight, height){
    8 
    9 }
    10 
    @@ -105,34 +105,34 @@ $(document).ready(function(){initNavTree('_intelli_raster_image_8cpp_source.html
    13 }
    14 
    -
    16  IntelliRasterImage* raster = new IntelliRasterImage(imageData.width(), imageData.height());
    -
    17  raster->imageData.fill(Qt::transparent);
    -
    18  return raster;
    +
    16  IntelliRasterImage* raster = new IntelliRasterImage(imageData.width(), imageData.height());
    +
    17  raster->imageData.fill(Qt::transparent);
    +
    18  return raster;
    19 }
    20 
    -
    22  // not used in raster image
    +
    22  // not used in raster image
    23 }
    24 
    -
    26  return getDisplayable(imageData.size(), alpha);
    +
    26  return getDisplayable(imageData.size(), alpha);
    27 }
    28 
    29 QImage IntelliRasterImage::getDisplayable(const QSize& displaySize, int alpha){
    -
    30  QImage copy = imageData;
    -
    31  for(int y = 0; y<copy.height(); y++){
    -
    32  for(int x = 0; x<copy.width(); x++){
    -
    33  QColor clr = copy.pixelColor(x,y);
    -
    34  clr.setAlpha(std::min(alpha, clr.alpha()));
    -
    35  copy.setPixelColor(x,y, clr);
    -
    36  }
    -
    37  }
    -
    38  return copy.scaled(displaySize,Qt::IgnoreAspectRatio);
    +
    30  QImage copy = imageData;
    +
    31  for(int y = 0; y<copy.height(); y++) {
    +
    32  for(int x = 0; x<copy.width(); x++) {
    +
    33  QColor clr = copy.pixelColor(x,y);
    +
    34  clr.setAlpha(std::min(alpha, clr.alpha()));
    +
    35  copy.setPixelColor(x,y, clr);
    +
    36  }
    +
    37  }
    +
    38  return copy.scaled(displaySize,Qt::IgnoreAspectRatio);
    39 }
    40 
    41 void IntelliRasterImage::setPolygon(const std::vector<QPoint>& polygonData){
    -
    42  qDebug() << "Raster Image has no polygon data " << polygonData.size() <<"\n";
    -
    43  return;
    +
    42  qDebug() << "Raster Image has no polygon data " << polygonData.size() <<"\n";
    +
    43  return;
    44 }
    diff --git a/docs/html/_intelli_raster_image_8h.html b/docs/html/_intelli_raster_image_8h.html index 27f4ca3..f9b8aa7 100644 --- a/docs/html/_intelli_raster_image_8h.html +++ b/docs/html/_intelli_raster_image_8h.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/_intelli_raster_image_8h_source.html b/docs/html/_intelli_raster_image_8h_source.html index 9724a25..974c110 100644 --- a/docs/html/_intelli_raster_image_8h_source.html +++ b/docs/html/_intelli_raster_image_8h_source.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -93,24 +93,24 @@ $(document).ready(function(){initNavTree('_intelli_raster_image_8h_source.html', Go to the documentation of this file.
    1 #ifndef INTELLIRASTER_H
    2 #define INTELLIRASTER_H
    3 
    -
    4 #include"Image/IntelliImage.h"
    +
    4 #include "Image/IntelliImage.h"
    5 
    - -
    10  friend IntelliTool;
    + +
    10 friend IntelliTool;
    11 protected:
    -
    15  virtual void calculateVisiblity() override;
    +
    15 virtual void calculateVisiblity() override;
    16 public:
    -
    22  IntelliRasterImage(int weight, int height);
    +
    22 IntelliRasterImage(int weight, int height);
    23 
    -
    27  virtual ~IntelliRasterImage() override;
    +
    27 virtual ~IntelliRasterImage() override;
    28 
    -
    35  virtual QImage getDisplayable(const QSize& displaySize,int alpha) override;
    +
    35 virtual QImage getDisplayable(const QSize& displaySize,int alpha) override;
    36 
    -
    42  virtual QImage getDisplayable(int alpha=255) override;
    +
    42 virtual QImage getDisplayable(int alpha=255) override;
    43 
    -
    48  virtual IntelliImage* getDeepCopy() override;
    +
    48 virtual IntelliImage* getDeepCopy() override;
    49 
    -
    54  virtual void setPolygon(const std::vector<QPoint>& polygonData) override;
    +
    54 virtual void setPolygon(const std::vector<QPoint>& polygonData) override;
    55 };
    56 
    57 #endif
    diff --git a/docs/html/_intelli_shaped_image_8cpp.html b/docs/html/_intelli_shaped_image_8cpp.html index b3e12a0..6412dc2 100644 --- a/docs/html/_intelli_shaped_image_8cpp.html +++ b/docs/html/_intelli_shaped_image_8cpp.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/_intelli_shaped_image_8cpp_source.html b/docs/html/_intelli_shaped_image_8cpp_source.html index f839ba3..d464d5f 100644 --- a/docs/html/_intelli_shaped_image_8cpp_source.html +++ b/docs/html/_intelli_shaped_image_8cpp_source.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -90,14 +90,14 @@ $(document).ready(function(){initNavTree('_intelli_shaped_image_8cpp_source.html
    IntelliShapedImage.cpp
    -Go to the documentation of this file.
    - -
    3 #include<QPainter>
    -
    4 #include<QRect>
    -
    5 #include<QDebug>
    +Go to the documentation of this file.
    + +
    3 #include <QPainter>
    +
    4 #include <QRect>
    +
    5 #include <QDebug>
    6 
    -
    8  :IntelliRasterImage(weight, height){
    +
    8  : IntelliRasterImage(weight, height){
    9 }
    10 
    @@ -105,68 +105,68 @@ $(document).ready(function(){initNavTree('_intelli_shaped_image_8cpp_source.html
    13 }
    14 
    -
    16  return getDisplayable(imageData.size(),alpha);
    +
    16  return getDisplayable(imageData.size(),alpha);
    17 }
    18 
    -
    20  IntelliShapedImage* shaped = new IntelliShapedImage(imageData.width(), imageData.height());
    -
    21  shaped->setPolygon(this->polygonData);
    -
    22  shaped->imageData.fill(Qt::transparent);
    -
    23  return shaped;
    +
    20  IntelliShapedImage* shaped = new IntelliShapedImage(imageData.width(), imageData.height());
    +
    21  shaped->setPolygon(this->polygonData);
    +
    22  shaped->imageData.fill(Qt::transparent);
    +
    23  return shaped;
    24 }
    25 
    26 void IntelliShapedImage::calculateVisiblity(){
    -
    27  if(polygonData.size()<=2){
    -
    28  QColor clr;
    -
    29  for(int y=0; y<imageData.height(); y++){
    -
    30  for(int x=0; x<imageData.width(); x++){
    -
    31  clr = imageData.pixel(x,y);
    -
    32  clr.setAlpha(255);
    -
    33  imageData.setPixelColor(x,y,clr);
    -
    34  }
    -
    35  }
    -
    36  return;
    -
    37  }
    -
    38  QColor clr;
    -
    39  for(int y=0; y<imageData.height(); y++){
    -
    40  for(int x=0; x<imageData.width(); x++){
    -
    41  QPoint ptr(x,y);
    -
    42  clr = imageData.pixelColor(x,y);
    -
    43  bool isInPolygon = IntelliHelper::isInPolygon(triangles, ptr);
    -
    44  if(isInPolygon){
    -
    45  clr.setAlpha(std::min(255, clr.alpha()));
    -
    46  }else{
    -
    47  clr.setAlpha(0);
    -
    48  }
    -
    49  imageData.setPixelColor(x,y,clr);
    -
    50  }
    -
    51  }
    +
    27  if(polygonData.size()<=2) {
    +
    28  QColor clr;
    +
    29  for(int y=0; y<imageData.height(); y++) {
    +
    30  for(int x=0; x<imageData.width(); x++) {
    +
    31  clr = imageData.pixel(x,y);
    +
    32  clr.setAlpha(255);
    +
    33  imageData.setPixelColor(x,y,clr);
    +
    34  }
    +
    35  }
    +
    36  return;
    +
    37  }
    +
    38  QColor clr;
    +
    39  for(int y=0; y<imageData.height(); y++) {
    +
    40  for(int x=0; x<imageData.width(); x++) {
    +
    41  QPoint ptr(x,y);
    +
    42  clr = imageData.pixelColor(x,y);
    +
    43  bool isInPolygon = IntelliHelper::isInPolygon(triangles, ptr);
    +
    44  if(isInPolygon) {
    +
    45  clr.setAlpha(std::min(255, clr.alpha()));
    +
    46  }else{
    +
    47  clr.setAlpha(0);
    +
    48  }
    +
    49  imageData.setPixelColor(x,y,clr);
    +
    50  }
    +
    51  }
    52 }
    53 
    54 QImage IntelliShapedImage::getDisplayable(const QSize& displaySize, int alpha){
    -
    55  QImage copy = imageData;
    -
    56  for(int y = 0; y<copy.height(); y++){
    -
    57  for(int x = 0; x<copy.width(); x++){
    -
    58  QColor clr = copy.pixelColor(x,y);
    -
    59  clr.setAlpha(std::min(alpha,clr.alpha()));
    -
    60  copy.setPixelColor(x,y, clr);
    -
    61  }
    -
    62  }
    -
    63  return copy.scaled(displaySize,Qt::IgnoreAspectRatio);
    +
    55  QImage copy = imageData;
    +
    56  for(int y = 0; y<copy.height(); y++) {
    +
    57  for(int x = 0; x<copy.width(); x++) {
    +
    58  QColor clr = copy.pixelColor(x,y);
    +
    59  clr.setAlpha(std::min(alpha,clr.alpha()));
    +
    60  copy.setPixelColor(x,y, clr);
    +
    61  }
    +
    62  }
    +
    63  return copy.scaled(displaySize,Qt::IgnoreAspectRatio);
    64 }
    65 
    66 void IntelliShapedImage::setPolygon(const std::vector<QPoint>& polygonData){
    -
    67  if(polygonData.size()<3){
    -
    68  this->polygonData.clear();
    -
    69  }else{
    -
    70  this->polygonData.clear();
    -
    71  for(auto element:polygonData){
    -
    72  this->polygonData.push_back(QPoint(element.x(), element.y()));
    -
    73  }
    - -
    75  }
    -
    76  calculateVisiblity();
    -
    77  return;
    +
    67  if(polygonData.size()<3) {
    +
    68  this->polygonData.clear();
    +
    69  }else{
    +
    70  this->polygonData.clear();
    +
    71  for(auto element:polygonData) {
    +
    72  this->polygonData.push_back(QPoint(element.x(), element.y()));
    +
    73  }
    + +
    75  }
    +
    76  calculateVisiblity();
    +
    77  return;
    78 }
    @@ -175,7 +175,7 @@ $(document).ready(function(){initNavTree('_intelli_shaped_image_8cpp_source.html
    The IntelliShapedImage manages a Shapedimage.
    virtual IntelliImage * getDeepCopy() override
    A function that copys all that returns a [allocated] Image.
    -
    bool isInPolygon(std::vector< Triangle > &triangles, QPoint &point)
    A function to check if a point lies in a polygon by checking its spanning triangles.
    +
    bool isInPolygon(std::vector< Triangle > &triangles, QPoint &point)
    A function to check if a point lies in a polygon by checking its spanning triangles.
    std::vector< Triangle > calculateTriangles(std::vector< QPoint > polyPoints)
    A function to split a polygon in its spanning traingles by using Meisters Theorem of graph theory by ...
    QImage imageData
    The underlying image data.
    Definition: IntelliImage.h:32
    An abstract class which manages the basic IntelliImage operations.
    Definition: IntelliImage.h:24
    diff --git a/docs/html/_intelli_shaped_image_8h.html b/docs/html/_intelli_shaped_image_8h.html index a96f338..c0f00a7 100644 --- a/docs/html/_intelli_shaped_image_8h.html +++ b/docs/html/_intelli_shaped_image_8h.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/_intelli_shaped_image_8h_source.html b/docs/html/_intelli_shaped_image_8h_source.html index 7197324..6712513 100644 --- a/docs/html/_intelli_shaped_image_8h_source.html +++ b/docs/html/_intelli_shaped_image_8h_source.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -93,36 +93,38 @@ $(document).ready(function(){initNavTree('_intelli_shaped_image_8h_source.html', Go to the documentation of this file.
    1 #ifndef INTELLISHAPE_H
    2 #define INTELLISHAPE_H
    3 
    - -
    5 #include<vector>
    - + +
    5 #include <vector>
    +
    7 
    - -
    12  friend IntelliTool;
    + +
    12 friend IntelliTool;
    13 private:
    -
    17  std::vector<Triangle> triangles;
    +
    17 std::vector<Triangle> triangles;
    18 
    -
    22  virtual void calculateVisiblity() override;
    +
    22 virtual void calculateVisiblity() override;
    23 protected:
    24 
    -
    28  std::vector<QPoint> polygonData;
    +
    28 std::vector<QPoint> polygonData;
    29 public:
    -
    35  IntelliShapedImage(int weight, int height);
    +
    35 IntelliShapedImage(int weight, int height);
    36 
    -
    40  virtual ~IntelliShapedImage() override;
    +
    40 virtual ~IntelliShapedImage() override;
    41 
    -
    48  virtual QImage getDisplayable(const QSize& displaySize, int alpha=255) override;
    +
    48 virtual QImage getDisplayable(const QSize& displaySize, int alpha=255) override;
    49 
    -
    55  virtual QImage getDisplayable(int alpha=255) override;
    +
    55 virtual QImage getDisplayable(int alpha=255) override;
    56 
    -
    61  virtual IntelliImage* getDeepCopy() override;
    +
    61 virtual IntelliImage* getDeepCopy() override;
    62 
    -
    67  virtual std::vector<QPoint> getPolygonData() override{return polygonData;}
    -
    68 
    -
    73  virtual void setPolygon(const std::vector<QPoint>& polygonData) override;
    -
    74 };
    -
    75 
    -
    76 #endif
    +
    67 virtual std::vector<QPoint> getPolygonData() override {
    +
    68  return polygonData;
    +
    69 }
    +
    70 
    +
    75 virtual void setPolygon(const std::vector<QPoint>& polygonData) override;
    +
    76 };
    +
    77 
    +
    78 #endif
    virtual QImage getDisplayable(const QSize &displaySize, int alpha=255) override
    A function returning the displayable ImageData in a requested transparence and size.
    diff --git a/docs/html/_intelli_tool_8cpp.html b/docs/html/_intelli_tool_8cpp.html index 2d2240c..129fdfc 100644 --- a/docs/html/_intelli_tool_8cpp.html +++ b/docs/html/_intelli_tool_8cpp.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/_intelli_tool_8cpp_source.html b/docs/html/_intelli_tool_8cpp_source.html index 281b201..f0a418f 100644 --- a/docs/html/_intelli_tool_8cpp_source.html +++ b/docs/html/_intelli_tool_8cpp_source.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -90,12 +90,12 @@ $(document).ready(function(){initNavTree('_intelli_tool_8cpp_source.html','');})
    IntelliTool.cpp
    -Go to the documentation of this file.
    1 #include"IntelliTool.h"
    -
    2 #include"Layer/PaintingArea.h"
    +Go to the documentation of this file.
    1 #include "IntelliTool.h"
    +
    2 #include "Layer/PaintingArea.h"
    3 
    -
    5  this->Area=Area;
    -
    6  this->colorPicker=colorPicker;
    +
    5  this->Area=Area;
    +
    6  this->colorPicker=colorPicker;
    7 }
    8 
    9 
    @@ -104,74 +104,73 @@ $(document).ready(function(){initNavTree('_intelli_tool_8cpp_source.html','');})
    12 }
    13 
    -
    15  if(drawing){
    -
    16  drawing=false;
    -
    17  this->deleteToolLayer();
    -
    18  }
    +
    15  if(drawing) {
    +
    16  drawing=false;
    +
    17  this->deleteToolLayer();
    +
    18  }
    19 }
    20 
    -
    22  //optional for tool
    +
    22  //optional for tool
    23 }
    24 
    -
    26  this->drawing=true;
    -
    27  //create drawing layer
    -
    28  this->createToolLayer();
    - +
    26  this->drawing=true;
    +
    27  //create drawing layer
    +
    28  this->createToolLayer();
    +
    30 }
    31 
    -
    33  if(drawing){
    -
    34  drawing=false;
    -
    35  this->mergeToolLayer();
    -
    36  this->deleteToolLayer();
    - -
    38  }
    +
    33  if(drawing) {
    +
    34  drawing=false;
    +
    35  this->mergeToolLayer();
    +
    36  this->deleteToolLayer();
    + +
    38  }
    39 }
    40 
    41 void IntelliTool::onMouseMoved(int x, int y){
    -
    42  if(drawing)
    - +
    42  if(drawing)
    +
    44 }
    45 
    -
    47  //if needed for future general tasks implement in here
    +
    47  //if needed for future general tasks implement in here
    48 }
    49 
    50 void IntelliTool::createToolLayer(){
    -
    51  Area->createTempLayerAfter(Area->activeLayer);
    -
    52  this->Active=&Area->layerBundle[Area->activeLayer];
    -
    53  this->Canvas=&Area->layerBundle[Area->activeLayer+1];
    +
    51  Area->createTempLayerAfter(Area->activeLayer);
    +
    52  this->Active=&Area->layerBundle[Area->activeLayer];
    +
    53  this->Canvas=&Area->layerBundle[Area->activeLayer+1];
    54 }
    55 
    56 void IntelliTool::mergeToolLayer(){
    -
    57  QColor clr_0;
    -
    58  QColor clr_1;
    -
    59  for(int y=0; y<Active->hight; y++){
    -
    60  for(int x=0; x<Active->width; x++){
    -
    61  clr_0=Active->image->imageData.pixelColor(x,y);
    -
    62  clr_1=Canvas->image->imageData.pixelColor(x,y);
    -
    63  float t = static_cast<float>(clr_1.alpha())/255.f;
    -
    64  int r =static_cast<int>(static_cast<float>(clr_1.red())*(t)+static_cast<float>(clr_0.red())*(1.f-t)+0.5f);
    -
    65  int g =static_cast<int>(static_cast<float>(clr_1.green())*(t)+static_cast<float>(clr_0.green())*(1.f-t)+0.5f);
    -
    66  int b =static_cast<int>(static_cast<float>(clr_1.blue())*(t)+static_cast<float>(clr_0.blue()*(1.f-t))+0.5f);
    -
    67  int a =std::min(clr_0.alpha()+clr_1.alpha(), 255);
    -
    68  clr_0.setRed(r);
    -
    69  clr_0.setGreen(g);
    -
    70  clr_0.setBlue(b);
    -
    71  clr_0.setAlpha(a);
    +
    57  QColor clr_0;
    +
    58  QColor clr_1;
    +
    59  for(int y=0; y<Active->height; y++) {
    +
    60  for(int x=0; x<Active->width; x++) {
    +
    61  clr_0=Active->image->imageData.pixelColor(x,y);
    +
    62  clr_1=Canvas->image->imageData.pixelColor(x,y);
    +
    63  float t = static_cast<float>(clr_1.alpha())/255.f;
    +
    64  int r =static_cast<int>(static_cast<float>(clr_1.red())*(t)+static_cast<float>(clr_0.red())*(1.f-t)+0.5f);
    +
    65  int g =static_cast<int>(static_cast<float>(clr_1.green())*(t)+static_cast<float>(clr_0.green())*(1.f-t)+0.5f);
    +
    66  int b =static_cast<int>(static_cast<float>(clr_1.blue())*(t)+static_cast<float>(clr_0.blue()*(1.f-t))+0.5f);
    +
    67  int a =std::min(clr_0.alpha()+clr_1.alpha(), 255);
    +
    68  clr_0.setRed(r);
    +
    69  clr_0.setGreen(g);
    +
    70  clr_0.setBlue(b);
    +
    71  clr_0.setAlpha(a);
    72 
    -
    73  Active->image->imageData.setPixelColor(x, y, clr_0);
    -
    74  }
    -
    75  }
    +
    73  Active->image->imageData.setPixelColor(x, y, clr_0);
    +
    74  }
    +
    75  }
    76 }
    77 
    78 void IntelliTool::deleteToolLayer(){
    -
    79  Area->deleteLayer(Area->activeLayer+1);
    -
    80  this->Canvas=nullptr;
    +
    79  Area->deleteLayer(Area->activeLayer+1);
    +
    80  this->Canvas=nullptr;
    81 }
    -
    82 
    virtual void onMouseRightPressed(int x, int y)
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    Definition: IntelliTool.cpp:14
    @@ -181,17 +180,17 @@ $(document).ready(function(){initNavTree('_intelli_tool_8cpp_source.html','');})
    virtual void onMouseLeftPressed(int x, int y)
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    Definition: IntelliTool.cpp:25
    IntelliTool(PaintingArea *Area, IntelliColorPicker *colorPicker)
    A constructor setting the general Painting Area and colorPicker.
    Definition: IntelliTool.cpp:4
    PaintingArea * Area
    A pointer to the general PaintingArea to interact with.
    Definition: IntelliTool.h:33
    - -
    void deleteLayer(int index)
    +
    The PaintingArea class manages the methods and stores information about the current painting area,...
    Definition: PaintingArea.h:36
    +
    void deleteLayer(int index)
    The deleteLayer method removes a layer at a given index.
    virtual void onMouseRightReleased(int x, int y)
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    Definition: IntelliTool.cpp:21
    LayerObject * Canvas
    A pointer to the drawing canvas of the tool, work on this.
    Definition: IntelliTool.h:48
    - +
    bool drawing
    A flag checking if the user is currently drawing or not.
    Definition: IntelliTool.h:53
    - +
    The IntelliColorPicker manages the selected colors for one whole project.
    QImage imageData
    The underlying image data.
    Definition: IntelliImage.h:32
    -
    IntelliImage * image
    Definition: PaintingArea.h:17
    +
    IntelliImage * image
    Definition: PaintingArea.h:25
    LayerObject * Active
    A pointer to the underlying active Layer, do not work on this. This is used for data grabbing or prev...
    Definition: IntelliTool.h:43
    virtual void onMouseMoved(int x, int y)
    A function managing the mouse moved event. Call this in child classes!
    Definition: IntelliTool.cpp:41
    virtual void calculateVisiblity()=0
    An abstract function that calculates the visiblity of the Image data if needed.
    diff --git a/docs/html/_intelli_tool_8h.html b/docs/html/_intelli_tool_8h.html index e42c792..91ddb2b 100644 --- a/docs/html/_intelli_tool_8h.html +++ b/docs/html/_intelli_tool_8h.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/_intelli_tool_8h_source.html b/docs/html/_intelli_tool_8h_source.html index 976661a..541cb15 100644 --- a/docs/html/_intelli_tool_8h_source.html +++ b/docs/html/_intelli_tool_8h_source.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -99,40 +99,40 @@ $(document).ready(function(){initNavTree('_intelli_tool_8h_source.html','');});
    7 class LayerObject;
    8 class PaintingArea;
    9 
    - +
    13 class IntelliTool {
    14 private:
    -
    18  void createToolLayer();
    +
    18 void createToolLayer();
    19 
    -
    23  void mergeToolLayer();
    +
    23 void mergeToolLayer();
    24 
    -
    28  void deleteToolLayer();
    +
    28 void deleteToolLayer();
    29 protected:
    - +
    34 
    - +
    39 
    - +
    44 
    - +
    49 
    -
    53  bool drawing = false;
    +
    53 bool drawing = false;
    54 
    55 public:
    - +
    62 
    -
    66  virtual ~IntelliTool() = 0;
    +
    66 virtual ~IntelliTool() = 0;
    67 
    -
    73  virtual void onMouseRightPressed(int x, int y);
    +
    73 virtual void onMouseRightPressed(int x, int y);
    74 
    -
    80  virtual void onMouseRightReleased(int x, int y);
    +
    80 virtual void onMouseRightReleased(int x, int y);
    81 
    -
    87  virtual void onMouseLeftPressed(int x, int y);
    +
    87 virtual void onMouseLeftPressed(int x, int y);
    88 
    -
    94  virtual void onMouseLeftReleased(int x, int y);
    +
    94 virtual void onMouseLeftReleased(int x, int y);
    95 
    -
    100  virtual void onWheelScrolled(int value);
    +
    100 virtual void onWheelScrolled(int value);
    101 
    -
    107  virtual void onMouseMoved(int x, int y);
    +
    107 virtual void onMouseMoved(int x, int y);
    108 
    109 
    110 };
    @@ -145,8 +145,8 @@ $(document).ready(function(){initNavTree('_intelli_tool_8h_source.html','');});
    virtual void onMouseLeftPressed(int x, int y)
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    Definition: IntelliTool.cpp:25
    IntelliTool(PaintingArea *Area, IntelliColorPicker *colorPicker)
    A constructor setting the general Painting Area and colorPicker.
    Definition: IntelliTool.cpp:4
    PaintingArea * Area
    A pointer to the general PaintingArea to interact with.
    Definition: IntelliTool.h:33
    - - +
    The PaintingArea class manages the methods and stores information about the current painting area,...
    Definition: PaintingArea.h:36
    +
    The LayerObject struct holds all the information needed to construct a layer.
    Definition: PaintingArea.h:24
    virtual void onMouseRightReleased(int x, int y)
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    Definition: IntelliTool.cpp:21
    LayerObject * Canvas
    A pointer to the drawing canvas of the tool, work on this.
    Definition: IntelliTool.h:48
    diff --git a/docs/html/_intelli_tool_circle_8cpp.html b/docs/html/_intelli_tool_circle_8cpp.html index 205c93d..f059236 100644 --- a/docs/html/_intelli_tool_circle_8cpp.html +++ b/docs/html/_intelli_tool_circle_8cpp.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/_intelli_tool_circle_8cpp_source.html b/docs/html/_intelli_tool_circle_8cpp_source.html index 4603593..3406c64 100644 --- a/docs/html/_intelli_tool_circle_8cpp_source.html +++ b/docs/html/_intelli_tool_circle_8cpp_source.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -96,9 +96,9 @@ $(document).ready(function(){initNavTree('_intelli_tool_circle_8cpp_source.html'
    4 #include <cmath>
    5 
    -
    7  :IntelliTool(Area, colorPicker){
    -
    8  this->alphaInner = QInputDialog::getInt(nullptr,"Inner Alpha Value", "Value:", 0,0,255,1);
    -
    9  this->edgeWidth = QInputDialog::getInt(nullptr,"Outer edge width", "Value:", 0,1,255,1);
    +
    7  : IntelliTool(Area, colorPicker){
    +
    8  this->alphaInner = QInputDialog::getInt(nullptr,"Inner Alpha Value", "Value:", 0,0,255,1);
    +
    9  this->edgeWidth = QInputDialog::getInt(nullptr,"Outer edge width", "Value:", 0,1,255,1);
    10 }
    11 
    @@ -106,76 +106,76 @@ $(document).ready(function(){initNavTree('_intelli_tool_circle_8cpp_source.html'
    14 }
    15 
    16 void IntelliToolCircle::drawCyrcle(int radius){
    -
    17  int outer = radius+20;
    -
    18  QColor inner = this->colorPicker->getSecondColor();
    -
    19  inner.setAlpha(alphaInner);
    -
    20  int yMin, yMax, xMin, xMax;
    -
    21  yMin = Middle.y()-radius;
    -
    22  yMax = Middle.y()+radius;
    -
    23  // x = x0+-sqrt(r2-(y-y0)2)
    -
    24  for(int i=yMin; i<=yMax; i++){
    -
    25  xMin = Middle.x()-sqrt(pow(radius,2)-pow(i-Middle.y(),2));
    -
    26  xMax = Middle.x()+sqrt(pow(radius,2)-pow(i-Middle.y(),2));
    -
    27  this->Canvas->image->drawLine(QPoint(xMin,i), QPoint(xMax,i),inner,1);
    -
    28  }
    +
    17  int outer = radius+20;
    +
    18  QColor inner = this->colorPicker->getSecondColor();
    +
    19  inner.setAlpha(alphaInner);
    +
    20  int yMin, yMax, xMin, xMax;
    +
    21  yMin = Middle.y()-radius;
    +
    22  yMax = Middle.y()+radius;
    +
    23  // x = x0+-sqrt(r2-(y-y0)2)
    +
    24  for(int i=yMin; i<=yMax; i++) {
    +
    25  xMin = Middle.x()-sqrt(pow(radius,2)-pow(i-Middle.y(),2));
    +
    26  xMax = Middle.x()+sqrt(pow(radius,2)-pow(i-Middle.y(),2));
    +
    27  this->Canvas->image->drawLine(QPoint(xMin,i), QPoint(xMax,i),inner,1);
    +
    28  }
    29 
    -
    30  //TODO implement circle drawing algorithm bresenham
    -
    31  radius = radius +(this->edgeWidth/2.)-1.;
    -
    32  yMin = (Middle.y()-radius);
    -
    33  yMax = (Middle.y()+radius);
    -
    34  for(int i=yMin; i<=yMax; i++){
    -
    35  xMin = Middle.x()-sqrt(pow(radius,2)-pow(i-Middle.y(),2));
    -
    36  xMax = Middle.x()+sqrt(pow(radius,2)-pow(i-Middle.y(),2));
    -
    37  this->Canvas->image->drawPoint(QPoint(xMin,i), colorPicker->getFirstColor(),edgeWidth);
    -
    38  this->Canvas->image->drawPoint(QPoint(xMax,i), colorPicker->getFirstColor(),edgeWidth);
    -
    39  }
    +
    30  //TODO implement circle drawing algorithm bresenham
    +
    31  radius = radius +(this->edgeWidth/2.)-1.;
    +
    32  yMin = (Middle.y()-radius);
    +
    33  yMax = (Middle.y()+radius);
    +
    34  for(int i=yMin; i<=yMax; i++) {
    +
    35  xMin = Middle.x()-sqrt(pow(radius,2)-pow(i-Middle.y(),2));
    +
    36  xMax = Middle.x()+sqrt(pow(radius,2)-pow(i-Middle.y(),2));
    +
    37  this->Canvas->image->drawPoint(QPoint(xMin,i), colorPicker->getFirstColor(),edgeWidth);
    +
    38  this->Canvas->image->drawPoint(QPoint(xMax,i), colorPicker->getFirstColor(),edgeWidth);
    +
    39  }
    40 
    -
    41  xMin = (Middle.x()-radius);
    -
    42  xMax = (Middle.x()+radius);
    -
    43  for(int i=xMin; i<=xMax; i++){
    -
    44  int yMin = Middle.y()-sqrt(pow(radius,2)-pow(i-Middle.x(),2));
    -
    45  int yMax = Middle.y()+sqrt(pow(radius,2)-pow(i-Middle.x(),2));
    -
    46  this->Canvas->image->drawPoint(QPoint(i, yMin), colorPicker->getFirstColor(),edgeWidth);
    -
    47  this->Canvas->image->drawPoint(QPoint(i, yMax), colorPicker->getFirstColor(),edgeWidth);
    -
    48  }
    +
    41  xMin = (Middle.x()-radius);
    +
    42  xMax = (Middle.x()+radius);
    +
    43  for(int i=xMin; i<=xMax; i++) {
    +
    44  int yMin = Middle.y()-sqrt(pow(radius,2)-pow(i-Middle.x(),2));
    +
    45  int yMax = Middle.y()+sqrt(pow(radius,2)-pow(i-Middle.x(),2));
    +
    46  this->Canvas->image->drawPoint(QPoint(i, yMin), colorPicker->getFirstColor(),edgeWidth);
    +
    47  this->Canvas->image->drawPoint(QPoint(i, yMax), colorPicker->getFirstColor(),edgeWidth);
    +
    48  }
    49 }
    50 
    - +
    53 }
    54 
    - +
    57 }
    58 
    - -
    61  this->Middle=QPoint(x,y);
    -
    62  int radius = 1;
    -
    63  drawCyrcle(radius);
    - + +
    61  this->Middle=QPoint(x,y);
    +
    62  int radius = 1;
    +
    63  drawCyrcle(radius);
    +
    65 }
    66 
    - +
    69 }
    70 
    - -
    73  this->edgeWidth+=value;
    -
    74  if(this->edgeWidth<=0){
    -
    75  this->edgeWidth=1;
    -
    76  }
    + +
    73  this->edgeWidth+=value;
    +
    74  if(this->edgeWidth<=0) {
    +
    75  this->edgeWidth=1;
    +
    76  }
    77 }
    78 
    -
    80  if(this->drawing){
    -
    81  this->Canvas->image->drawPlain(Qt::transparent);
    -
    82  QPoint next(x,y);
    -
    83  int radius = static_cast<int>(sqrt(pow((Middle.x()-x),2)+pow((Middle.y()-y),2)));
    -
    84  drawCyrcle(radius);
    -
    85  }
    - +
    80  if(this->drawing) {
    +
    81  this->Canvas->image->drawPlain(Qt::transparent);
    +
    82  QPoint next(x,y);
    +
    83  int radius = static_cast<int>(sqrt(pow((Middle.x()-x),2)+pow((Middle.y()-y),2)));
    +
    84  drawCyrcle(radius);
    +
    85  }
    +
    87 }
    @@ -188,7 +188,7 @@ $(document).ready(function(){initNavTree('_intelli_tool_circle_8cpp_source.html'
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. Changing the edge Width relative to value.
    virtual void onMouseLeftPressed(int x, int y)
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    Definition: IntelliTool.cpp:25
    QColor getSecondColor()
    A function to read the secondary selected color.
    - +
    The PaintingArea class manages the methods and stores information about the current painting area,...
    Definition: PaintingArea.h:36
    virtual void drawPoint(const QPoint &p1, const QColor &color, const int &penWidth)
    A.
    virtual void onMouseRightReleased(int x, int y)
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    Definition: IntelliTool.cpp:21
    LayerObject * Canvas
    A pointer to the drawing canvas of the tool, work on this.
    Definition: IntelliTool.h:48
    @@ -200,7 +200,7 @@ $(document).ready(function(){initNavTree('_intelli_tool_circle_8cpp_source.html'
    The IntelliColorPicker manages the selected colors for one whole project.
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event. Draws a circle with radius of eulerian norm of mouse posit...
    IntelliToolCircle(PaintingArea *Area, IntelliColorPicker *colorPicker)
    A constructor setting the general paintingArea and colorPicker. And reading in the inner alpha and ed...
    -
    IntelliImage * image
    Definition: PaintingArea.h:17
    +
    IntelliImage * image
    Definition: PaintingArea.h:25
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click released of a mouse.
    virtual void onMouseMoved(int x, int y)
    A function managing the mouse moved event. Call this in child classes!
    Definition: IntelliTool.cpp:41
    virtual void calculateVisiblity()=0
    An abstract function that calculates the visiblity of the Image data if needed.
    diff --git a/docs/html/_intelli_tool_circle_8h.html b/docs/html/_intelli_tool_circle_8h.html index 67de9a2..30a6019 100644 --- a/docs/html/_intelli_tool_circle_8h.html +++ b/docs/html/_intelli_tool_circle_8h.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/_intelli_tool_circle_8h_source.html b/docs/html/_intelli_tool_circle_8h_source.html index e6ea705..2860189 100644 --- a/docs/html/_intelli_tool_circle_8h_source.html +++ b/docs/html/_intelli_tool_circle_8h_source.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -96,30 +96,30 @@ $(document).ready(function(){initNavTree('_intelli_tool_circle_8h_source.html','
    4 
    5 #include "QColor"
    6 #include "QPoint"
    - -
    15  void drawCyrcle(int radius);
    + +
    15 void drawCyrcle(int radius);
    16 
    -
    20  QPoint Middle;
    +
    20 QPoint Middle;
    21 
    -
    25  int alphaInner;
    +
    25 int alphaInner;
    26 
    -
    30  int edgeWidth;
    +
    30 int edgeWidth;
    31 public:
    - +
    38 
    -
    42  virtual ~IntelliToolCircle() override;
    +
    42 virtual ~IntelliToolCircle() override;
    43 
    -
    49  virtual void onMouseRightPressed(int x, int y) override;
    +
    49 virtual void onMouseRightPressed(int x, int y) override;
    50 
    -
    56  virtual void onMouseRightReleased(int x, int y) override;
    +
    56 virtual void onMouseRightReleased(int x, int y) override;
    57 
    -
    63  virtual void onMouseLeftPressed(int x, int y) override;
    +
    63 virtual void onMouseLeftPressed(int x, int y) override;
    64 
    -
    70  virtual void onMouseLeftReleased(int x, int y) override;
    +
    70 virtual void onMouseLeftReleased(int x, int y) override;
    71 
    -
    76  virtual void onWheelScrolled(int value) override;
    +
    76 virtual void onWheelScrolled(int value) override;
    77 
    -
    83  virtual void onMouseMoved(int x, int y) override;
    +
    83 virtual void onMouseMoved(int x, int y) override;
    84 };
    85 
    86 #endif // INTELLITOOLCIRCLE_H
    @@ -131,7 +131,7 @@ $(document).ready(function(){initNavTree('_intelli_tool_circle_8h_source.html','
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. Changing the edge Width relative to value.
    PaintingArea * Area
    A pointer to the general PaintingArea to interact with.
    Definition: IntelliTool.h:33
    - +
    The PaintingArea class manages the methods and stores information about the current painting area,...
    Definition: PaintingArea.h:36
    virtual ~IntelliToolCircle() override
    A Destructor.
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    The IntelliColorPicker manages the selected colors for one whole project.
    diff --git a/docs/html/_intelli_tool_flood_fill_8cpp.html b/docs/html/_intelli_tool_flood_fill_8cpp.html index 01eb49f..082f627 100644 --- a/docs/html/_intelli_tool_flood_fill_8cpp.html +++ b/docs/html/_intelli_tool_flood_fill_8cpp.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/_intelli_tool_flood_fill_8cpp_source.html b/docs/html/_intelli_tool_flood_fill_8cpp_source.html index 945444a..461a7a7 100644 --- a/docs/html/_intelli_tool_flood_fill_8cpp_source.html +++ b/docs/html/_intelli_tool_flood_fill_8cpp_source.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -98,102 +98,104 @@ $(document).ready(function(){initNavTree('_intelli_tool_flood_fill_8cpp_source.h
    6 #include <queue>
    7 
    -
    9  :IntelliTool(Area, colorPicker){
    +
    9  : IntelliTool(Area, colorPicker){
    10 }
    11 
    13 
    14 }
    15 
    -
    16 
    - - -
    19 }
    -
    20 
    - - -
    23 }
    -
    24 
    - - -
    27 
    -
    28  QPoint start(x,y);
    -
    29  std::queue<QPoint> Q;
    -
    30  Q.push(start);
    -
    31 
    -
    32  QColor oldColor = this->Active->image->getPixelColor(start);
    -
    33  QColor newColor = this->colorPicker->getFirstColor();
    -
    34  Canvas->image->drawPixel(start,newColor);
    -
    35 
    -
    36  QPoint left, right, top, down;
    -
    37  while(!Q.empty()){
    -
    38  QPoint Current = Q.front();
    -
    39  Q.pop();
    -
    40 
    -
    41  left = QPoint(Current.x()-1,Current.y() );
    -
    42  right = QPoint(Current.x()+1,Current.y() );
    -
    43  top = QPoint(Current.x() ,Current.y()-1);
    -
    44  down = QPoint(Current.x() ,Current.y()+1);
    -
    45  if((right.x() < Canvas->width) && (Canvas->image->getPixelColor(right) != newColor) && (Active->image->getPixelColor(right) == oldColor)){
    -
    46  Canvas->image->drawPixel(right,newColor);
    -
    47  Q.push(right);
    -
    48  }
    -
    49  if((left.x() >= 0) && (Canvas->image->getPixelColor(left) != newColor) && (Active->image->getPixelColor(left) == oldColor)){
    -
    50  Canvas->image->drawPixel(left,newColor);
    -
    51  Q.push(left);
    -
    52  }
    -
    53  if((top.y() < Canvas->hight) && (Canvas->image->getPixelColor(top) != newColor) && (Active->image->getPixelColor(top) == oldColor)){
    -
    54  Canvas->image->drawPixel(top,newColor);
    -
    55  Q.push(top);
    -
    56  }
    -
    57  if((down.y() >= 0) && (Canvas->image->getPixelColor(down) != newColor) && (Active->image->getPixelColor(down) == oldColor)){
    -
    58  Canvas->image->drawPixel(down,newColor);
    -
    59  Q.push(down);
    -
    60  }
    -
    61  }
    -
    62 
    - -
    64 }
    -
    65 
    - - -
    68 }
    -
    69 
    - - -
    72 
    -
    73 }
    + + +
    18 }
    +
    19 
    + + +
    22 }
    +
    23 
    + +
    25  if(!(x>=0 && x<Area->getWidthOfActive() && y>=0 && y<Area->getHeightOfActive())) {
    +
    26  return;
    +
    27  }
    + +
    29 
    +
    30  QPoint start(x,y);
    +
    31  std::queue<QPoint> Q;
    +
    32  Q.push(start);
    +
    33 
    +
    34  QColor oldColor = this->Active->image->getPixelColor(start);
    +
    35  QColor newColor = this->colorPicker->getFirstColor();
    +
    36  Canvas->image->drawPixel(start,newColor);
    +
    37 
    +
    38  QPoint left, right, top, down;
    +
    39  while(!Q.empty()) {
    +
    40  QPoint Current = Q.front();
    +
    41  Q.pop();
    +
    42 
    +
    43  left = QPoint(Current.x()-1,Current.y() );
    +
    44  right = QPoint(Current.x()+1,Current.y() );
    +
    45  top = QPoint(Current.x(),Current.y()-1);
    +
    46  down = QPoint(Current.x(),Current.y()+1);
    +
    47  if((right.x() < Canvas->width) && (Canvas->image->getPixelColor(right) != newColor) && (Active->image->getPixelColor(right) == oldColor)) {
    +
    48  Canvas->image->drawPixel(right,newColor);
    +
    49  Q.push(right);
    +
    50  }
    +
    51  if((left.x() >= 0) && (Canvas->image->getPixelColor(left) != newColor) && (Active->image->getPixelColor(left) == oldColor)) {
    +
    52  Canvas->image->drawPixel(left,newColor);
    +
    53  Q.push(left);
    +
    54  }
    +
    55  if((top.y() >= 0) && (Canvas->image->getPixelColor(top) != newColor) && (Active->image->getPixelColor(top) == oldColor)) {
    +
    56  Canvas->image->drawPixel(top,newColor);
    +
    57  Q.push(top);
    +
    58  }
    +
    59  if((down.y() < Canvas->height) && (Canvas->image->getPixelColor(down) != newColor) && (Active->image->getPixelColor(down) == oldColor)) {
    +
    60  Canvas->image->drawPixel(down,newColor);
    +
    61  Q.push(down);
    +
    62  }
    +
    63  }
    +
    64 
    + +
    66 }
    +
    67 
    + + +
    70 }
    +
    71 
    + +
    74 
    - - -
    77 }
    +
    75 }
    +
    76 
    + + +
    79 }
    virtual void onMouseRightPressed(int x, int y)
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    Definition: IntelliTool.cpp:14
    virtual void onMouseLeftReleased(int x, int y)
    A function managing the left click Released of a Mouse. Call this in child classes!
    Definition: IntelliTool.cpp:32
    IntelliColorPicker * colorPicker
    A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors.
    Definition: IntelliTool.h:38
    -
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click released of a mouse.
    +
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click released of a mouse.
    virtual void onMouseLeftPressed(int x, int y)
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    Definition: IntelliTool.cpp:25
    virtual void drawPixel(const QPoint &p1, const QColor &color)
    A funtcion used to draw a pixel on the Image with the given Color.
    -
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click released of a mouse.
    -
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event.
    +
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click released of a mouse.
    +
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event.
    -
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click pressed of a mouse. Sets the point to flood fill around and does t...
    - +
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click pressed of a mouse. Sets the point to flood fill around and does t...
    +
    The PaintingArea class manages the methods and stores information about the current painting area,...
    Definition: PaintingArea.h:36
    virtual ~IntelliToolFloodFill() override
    A Destructor.
    IntelliToolFloodFill(PaintingArea *Area, IntelliColorPicker *colorPicker)
    A constructor setting the general paintingArea and colorPicker.
    virtual void onMouseRightReleased(int x, int y)
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    Definition: IntelliTool.cpp:21
    LayerObject * Canvas
    A pointer to the drawing canvas of the tool, work on this.
    Definition: IntelliTool.h:48
    - -
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event.
    + +
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event.
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    QColor getFirstColor()
    A function to read the primary selected color.
    virtual QColor getPixelColor(QPoint &point)
    A function that returns the pixelcolor at a certain point.
    - +
    The IntelliColorPicker manages the selected colors for one whole project.
    -
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click pressed of a mouse. Clearing the canvas.
    -
    IntelliImage * image
    Definition: PaintingArea.h:17
    +
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click pressed of a mouse. Clearing the canvas.
    +
    IntelliImage * image
    Definition: PaintingArea.h:25
    LayerObject * Active
    A pointer to the underlying active Layer, do not work on this. This is used for data grabbing or prev...
    Definition: IntelliTool.h:43
    virtual void onMouseMoved(int x, int y)
    A function managing the mouse moved event. Call this in child classes!
    Definition: IntelliTool.cpp:41
    virtual void calculateVisiblity()=0
    An abstract function that calculates the visiblity of the Image data if needed.
    diff --git a/docs/html/_intelli_tool_flood_fill_8h.html b/docs/html/_intelli_tool_flood_fill_8h.html index 8027a39..652953c 100644 --- a/docs/html/_intelli_tool_flood_fill_8h.html +++ b/docs/html/_intelli_tool_flood_fill_8h.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/_intelli_tool_flood_fill_8h_source.html b/docs/html/_intelli_tool_flood_fill_8h_source.html index eda6a57..67e8e60 100644 --- a/docs/html/_intelli_tool_flood_fill_8h_source.html +++ b/docs/html/_intelli_tool_flood_fill_8h_source.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -96,43 +96,43 @@ $(document).ready(function(){initNavTree('_intelli_tool_flood_fill_8h_source.htm
    4 
    5 #include "QColor"
    6 
    - +
    11 public:
    - +
    18 
    -
    22  virtual ~IntelliToolFloodFill() override;
    +
    22 virtual ~IntelliToolFloodFill() override;
    23 
    24 
    -
    30  virtual void onMouseRightPressed(int x, int y) override;
    +
    30 virtual void onMouseRightPressed(int x, int y) override;
    31 
    -
    37  virtual void onMouseRightReleased(int x, int y) override;
    +
    37 virtual void onMouseRightReleased(int x, int y) override;
    38 
    -
    44  virtual void onMouseLeftPressed(int x, int y) override;
    +
    44 virtual void onMouseLeftPressed(int x, int y) override;
    45 
    -
    51  virtual void onMouseLeftReleased(int x, int y) override;
    +
    51 virtual void onMouseLeftReleased(int x, int y) override;
    52 
    -
    57  virtual void onWheelScrolled(int value) override;
    +
    57 virtual void onWheelScrolled(int value) override;
    58 
    -
    64  virtual void onMouseMoved(int x, int y) override;
    +
    64 virtual void onMouseMoved(int x, int y) override;
    65 };
    66 
    67 #endif // INTELLITOOLFLOODFILL_H
    IntelliColorPicker * colorPicker
    A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors.
    Definition: IntelliTool.h:38
    -
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click released of a mouse.
    +
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click released of a mouse.
    -
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click released of a mouse.
    -
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event.
    +
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click released of a mouse.
    +
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event.
    PaintingArea * Area
    A pointer to the general PaintingArea to interact with.
    Definition: IntelliTool.h:33
    -
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click pressed of a mouse. Sets the point to flood fill around and does t...
    - +
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click pressed of a mouse. Sets the point to flood fill around and does t...
    +
    The PaintingArea class manages the methods and stores information about the current painting area,...
    Definition: PaintingArea.h:36
    virtual ~IntelliToolFloodFill() override
    A Destructor.
    IntelliToolFloodFill(PaintingArea *Area, IntelliColorPicker *colorPicker)
    A constructor setting the general paintingArea and colorPicker.
    -
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event.
    +
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event.
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    The IntelliColorPicker manages the selected colors for one whole project.
    -
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click pressed of a mouse. Clearing the canvas.
    +
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click pressed of a mouse. Clearing the canvas.
    The IntelliToolFloodFill class represents a tool to flood FIll a certian area.
    virtual void onMouseRightPressed(int x, int y)
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    Definition: IntelliTool.cpp:14
    @@ -161,17 +160,17 @@ $(document).ready(function(){initNavTree('_intelli_tool_line_8cpp_source.html','
    virtual void drawLine(const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth)
    A function that draws A Line between two given Points in a given color.
    virtual void onMouseLeftPressed(int x, int y)
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    Definition: IntelliTool.cpp:25
    -
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event. Drawing a Line from the startpoint to the current mouse po...
    -
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. Changing the lineWidth relative to value.
    -
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click released of a mouse.
    +
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event. Drawing a Line from the startpoint to the current mouse po...
    +
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. Changing the lineWidth relative to value.
    +
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click released of a mouse.
    IntelliToolLine(PaintingArea *Area, IntelliColorPicker *colorPicker)
    A constructor setting the general paintingArea and colorPicker. And reading in the lineWidth and line...
    - +
    The PaintingArea class manages the methods and stores information about the current painting area,...
    Definition: PaintingArea.h:36
    virtual ~IntelliToolLine() override
    An abstract Destructor.
    virtual void drawPoint(const QPoint &p1, const QColor &color, const int &penWidth)
    A.
    -
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click released of a mouse.
    -
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click pressed of a mouse. Clearing the canvas.
    +
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click released of a mouse.
    +
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click pressed of a mouse. Clearing the canvas.
    virtual void onMouseRightReleased(int x, int y)
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    Definition: IntelliTool.cpp:21
    LayerObject * Canvas
    A pointer to the drawing canvas of the tool, work on this.
    Definition: IntelliTool.h:48
    bool drawing
    A flag checking if the user is currently drawing or not.
    Definition: IntelliTool.h:53
    @@ -179,8 +178,8 @@ $(document).ready(function(){initNavTree('_intelli_tool_line_8cpp_source.html','
    QColor getFirstColor()
    A function to read the primary selected color.
    The IntelliColorPicker manages the selected colors for one whole project.
    -
    IntelliImage * image
    Definition: PaintingArea.h:17
    -
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click pressed of a mouse. Sets the starting point of the line.
    +
    IntelliImage * image
    Definition: PaintingArea.h:25
    +
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click pressed of a mouse. Sets the starting point of the line.
    virtual void onMouseMoved(int x, int y)
    A function managing the mouse moved event. Call this in child classes!
    Definition: IntelliTool.cpp:41
    virtual void calculateVisiblity()=0
    An abstract function that calculates the visiblity of the Image data if needed.
    virtual void onWheelScrolled(int value)
    A function managing the scroll event. A positive value means scrolling outwards. Call this in child c...
    Definition: IntelliTool.cpp:46
    diff --git a/docs/html/_intelli_tool_line_8h.html b/docs/html/_intelli_tool_line_8h.html index 60987b6..12c615c 100644 --- a/docs/html/_intelli_tool_line_8h.html +++ b/docs/html/_intelli_tool_line_8h.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/_intelli_tool_line_8h_source.html b/docs/html/_intelli_tool_line_8h_source.html index 4f94bd7..4a95c19 100644 --- a/docs/html/_intelli_tool_line_8h_source.html +++ b/docs/html/_intelli_tool_line_8h_source.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -96,34 +96,34 @@ $(document).ready(function(){initNavTree('_intelli_tool_line_8h_source.html','')
    4 
    5 #include "QPoint"
    6 
    -
    10 enum class LineStyle{
    -
    11  SOLID_LINE,
    - +
    10 enum class LineStyle {
    +
    11  SOLID_LINE,
    +
    13 };
    14 
    - -
    22  QPoint start;
    +
    18 class IntelliToolLine : public IntelliTool {
    +
    22 QPoint start;
    23 
    -
    27  int lineWidth;
    +
    27 int lineWidth;
    28 
    -
    32  LineStyle lineStyle;
    +
    32 LineStyle lineStyle;
    33 public:
    34 
    - +
    41 
    -
    45  virtual ~IntelliToolLine() override;
    +
    45 virtual ~IntelliToolLine() override;
    46 
    -
    52  virtual void onMouseRightPressed(int x, int y) override;
    +
    52 virtual void onMouseRightPressed(int x, int y) override;
    53 
    -
    59  virtual void onMouseRightReleased(int x, int y) override;
    +
    59 virtual void onMouseRightReleased(int x, int y) override;
    60 
    -
    66  virtual void onMouseLeftPressed(int x, int y) override;
    +
    66 virtual void onMouseLeftPressed(int x, int y) override;
    67 
    -
    73  virtual void onMouseLeftReleased(int x, int y) override;
    +
    73 virtual void onMouseLeftReleased(int x, int y) override;
    74 
    -
    79  virtual void onWheelScrolled(int value) override;
    +
    79 virtual void onWheelScrolled(int value) override;
    80 
    -
    86  virtual void onMouseMoved(int x, int y) override;
    +
    86 virtual void onMouseMoved(int x, int y) override;
    87 };
    88 
    89 #endif // INTELLITOOLLINE_H
    @@ -133,19 +133,19 @@ $(document).ready(function(){initNavTree('_intelli_tool_line_8h_source.html','')
    LineStyle
    The LineStyle enum classifing all ways of drawing a line.
    -
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event. Drawing a Line from the startpoint to the current mouse po...
    -
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. Changing the lineWidth relative to value.
    -
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click released of a mouse.
    +
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event. Drawing a Line from the startpoint to the current mouse po...
    +
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. Changing the lineWidth relative to value.
    +
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click released of a mouse.
    PaintingArea * Area
    A pointer to the general PaintingArea to interact with.
    Definition: IntelliTool.h:33
    IntelliToolLine(PaintingArea *Area, IntelliColorPicker *colorPicker)
    A constructor setting the general paintingArea and colorPicker. And reading in the lineWidth and line...
    - +
    The PaintingArea class manages the methods and stores information about the current painting area,...
    Definition: PaintingArea.h:36
    virtual ~IntelliToolLine() override
    An abstract Destructor.
    -
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click released of a mouse.
    -
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click pressed of a mouse. Clearing the canvas.
    +
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click released of a mouse.
    +
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click pressed of a mouse. Clearing the canvas.
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    The IntelliColorPicker manages the selected colors for one whole project.
    -
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click pressed of a mouse. Sets the starting point of the line.
    +
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click pressed of a mouse. Sets the starting point of the line.
    The IntelliToolFloodFill class represents a tool to draw a line.
    @@ -150,9 +150,9 @@ $(document).ready(function(){initNavTree('_intelli_tool_pen_8cpp_source.html',''
    virtual ~IntelliToolPen() override
    A Destructor.
    virtual void drawPixel(const QPoint &p1, const QColor &color)
    A funtcion used to draw a pixel on the Image with the given Color.
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event. To draw the line.
    -
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click pressed of a mouse.Resetting the current draw.
    +
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click pressed of a mouse. Resetting the current draw.
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click released of a mouse.
    - +
    The PaintingArea class manages the methods and stores information about the current painting area,...
    Definition: PaintingArea.h:36
    virtual void onMouseRightReleased(int x, int y)
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    Definition: IntelliTool.cpp:21
    LayerObject * Canvas
    A pointer to the drawing canvas of the tool, work on this.
    Definition: IntelliTool.h:48
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. Changing penWidth relativ to value.
    @@ -162,7 +162,7 @@ $(document).ready(function(){initNavTree('_intelli_tool_pen_8cpp_source.html',''
    QColor getFirstColor()
    A function to read the primary selected color.
    The IntelliColorPicker manages the selected colors for one whole project.
    -
    IntelliImage * image
    Definition: PaintingArea.h:17
    +
    IntelliImage * image
    Definition: PaintingArea.h:25
    virtual void onMouseMoved(int x, int y)
    A function managing the mouse moved event. Call this in child classes!
    Definition: IntelliTool.cpp:41
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click pressed of a mouse. Starting the drawing procedure.
    diff --git a/docs/html/_intelli_tool_pen_8h.html b/docs/html/_intelli_tool_pen_8h.html index 6bb690b..8b05351 100644 --- a/docs/html/_intelli_tool_pen_8h.html +++ b/docs/html/_intelli_tool_pen_8h.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/_intelli_tool_pen_8h_source.html b/docs/html/_intelli_tool_pen_8h_source.html index 158ddfe..3687463 100644 --- a/docs/html/_intelli_tool_pen_8h_source.html +++ b/docs/html/_intelli_tool_pen_8h_source.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -93,27 +93,27 @@ $(document).ready(function(){initNavTree('_intelli_tool_pen_8h_source.html',''); Go to the documentation of this file.
    1 #ifndef INTELLITOOLPEN_H
    2 #define INTELLITOOLPEN_H
    3 
    -
    4 #include"IntelliTool.h"
    -
    5 #include"QColor"
    -
    6 #include"QPoint"
    -
    10 class IntelliToolPen : public IntelliTool{
    -
    14  int penWidth;
    -
    18  QPoint point;
    +
    4 #include "IntelliTool.h"
    +
    5 #include "QColor"
    +
    6 #include "QPoint"
    +
    10 class IntelliToolPen : public IntelliTool {
    +
    14 int penWidth;
    +
    18 QPoint point;
    19 public:
    - -
    29  virtual ~IntelliToolPen() override;
    + +
    29 virtual ~IntelliToolPen() override;
    30 
    -
    36  virtual void onMouseRightPressed(int x, int y) override;
    +
    36 virtual void onMouseRightPressed(int x, int y) override;
    37 
    -
    43  virtual void onMouseRightReleased(int x, int y) override;
    +
    43 virtual void onMouseRightReleased(int x, int y) override;
    44 
    -
    50  virtual void onMouseLeftPressed(int x, int y) override;
    +
    50 virtual void onMouseLeftPressed(int x, int y) override;
    51 
    -
    57  virtual void onMouseLeftReleased(int x, int y) override;
    +
    57 virtual void onMouseLeftReleased(int x, int y) override;
    58 
    -
    63  virtual void onWheelScrolled(int value) override;
    +
    63 virtual void onWheelScrolled(int value) override;
    64 
    -
    70  virtual void onMouseMoved(int x, int y) override;
    +
    70 virtual void onMouseMoved(int x, int y) override;
    71 };
    72 
    73 #endif // INTELLITOOLPEN_H
    @@ -124,9 +124,9 @@ $(document).ready(function(){initNavTree('_intelli_tool_pen_8h_source.html','');
    virtual ~IntelliToolPen() override
    A Destructor.
    PaintingArea * Area
    A pointer to the general PaintingArea to interact with.
    Definition: IntelliTool.h:33
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event. To draw the line.
    -
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click pressed of a mouse.Resetting the current draw.
    +
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click pressed of a mouse. Resetting the current draw.
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click released of a mouse.
    - +
    The PaintingArea class manages the methods and stores information about the current painting area,...
    Definition: PaintingArea.h:36
    The IntelliToolPen class represents a tool to draw a line.
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. Changing penWidth relativ to value.
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    diff --git a/docs/html/_intelli_tool_plain_8cpp.html b/docs/html/_intelli_tool_plain_8cpp.html index 0fc0639..ac169df 100644 --- a/docs/html/_intelli_tool_plain_8cpp.html +++ b/docs/html/_intelli_tool_plain_8cpp.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/_intelli_tool_plain_8cpp_source.html b/docs/html/_intelli_tool_plain_8cpp_source.html index 46b3c37..ec61d45 100644 --- a/docs/html/_intelli_tool_plain_8cpp_source.html +++ b/docs/html/_intelli_tool_plain_8cpp_source.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -95,7 +95,7 @@ $(document).ready(function(){initNavTree('_intelli_tool_plain_8cpp_source.html',
    3 #include "QColorDialog"
    4 
    -
    6  :IntelliTool(Area, colorPicker){
    +
    6  : IntelliTool(Area, colorPicker){
    7 }
    8 
    @@ -103,31 +103,30 @@ $(document).ready(function(){initNavTree('_intelli_tool_plain_8cpp_source.html',
    11 }
    12 
    - - - + + +
    17 }
    18 
    - +
    21 }
    22 
    - +
    25 }
    26 
    - +
    29 }
    30 
    -
    31 
    - - -
    34 }
    -
    35 
    - - -
    38 }
    + + +
    33 }
    +
    34 
    + + +
    37 }
    virtual void onMouseRightPressed(int x, int y)
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    Definition: IntelliTool.cpp:14
    @@ -135,9 +134,9 @@ $(document).ready(function(){initNavTree('_intelli_tool_plain_8cpp_source.html',
    IntelliColorPicker * colorPicker
    A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors.
    Definition: IntelliTool.h:38
    virtual void onMouseLeftPressed(int x, int y)
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    Definition: IntelliTool.cpp:25
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click released of a mouse. Merging the fill to the active layer.
    -
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event.
    +
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event.
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click released of a mouse.
    - +
    The PaintingArea class manages the methods and stores information about the current painting area,...
    Definition: PaintingArea.h:36
    IntelliToolPlainTool(PaintingArea *Area, IntelliColorPicker *colorPicker)
    A constructor setting the general paintingArea and colorPicker.
    virtual void onMouseRightReleased(int x, int y)
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    Definition: IntelliTool.cpp:21
    @@ -147,9 +146,9 @@ $(document).ready(function(){initNavTree('_intelli_tool_plain_8cpp_source.html',
    QColor getFirstColor()
    A function to read the primary selected color.
    The IntelliColorPicker manages the selected colors for one whole project.
    -
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click pressed of a mouse.Resetting the current fill.
    -
    IntelliImage * image
    Definition: PaintingArea.h:17
    -
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event.
    +
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click pressed of a mouse. Resetting the current fill.
    +
    IntelliImage * image
    Definition: PaintingArea.h:25
    +
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event.
    virtual void onMouseMoved(int x, int y)
    A function managing the mouse moved event. Call this in child classes!
    Definition: IntelliTool.cpp:41
    virtual void calculateVisiblity()=0
    An abstract function that calculates the visiblity of the Image data if needed.
    virtual ~IntelliToolPlainTool() override
    A Destructor.
    diff --git a/docs/html/_intelli_tool_plain_8h.html b/docs/html/_intelli_tool_plain_8h.html index d018f83..c74044a 100644 --- a/docs/html/_intelli_tool_plain_8h.html +++ b/docs/html/_intelli_tool_plain_8h.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/_intelli_tool_plain_8h_source.html b/docs/html/_intelli_tool_plain_8h_source.html index 4afbc6f..7043743 100644 --- a/docs/html/_intelli_tool_plain_8h_source.html +++ b/docs/html/_intelli_tool_plain_8h_source.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -95,22 +95,22 @@ $(document).ready(function(){initNavTree('_intelli_tool_plain_8h_source.html',''
    3 
    4 #include "IntelliTool.h"
    5 #include "QColor"
    - +
    10 public:
    - -
    20  virtual ~IntelliToolPlainTool() override;
    + +
    20 virtual ~IntelliToolPlainTool() override;
    21 
    -
    27  virtual void onMouseRightPressed(int x, int y) override;
    +
    27 virtual void onMouseRightPressed(int x, int y) override;
    28 
    -
    34  virtual void onMouseRightReleased(int x, int y) override;
    +
    34 virtual void onMouseRightReleased(int x, int y) override;
    35 
    -
    41  virtual void onMouseLeftPressed(int x, int y) override;
    +
    41 virtual void onMouseLeftPressed(int x, int y) override;
    42 
    -
    48  virtual void onMouseLeftReleased(int x, int y) override;
    +
    48 virtual void onMouseLeftReleased(int x, int y) override;
    49 
    -
    54  virtual void onWheelScrolled(int value) override;
    +
    54 virtual void onWheelScrolled(int value) override;
    55 
    -
    61  virtual void onMouseMoved(int x, int y) override;
    +
    61 virtual void onMouseMoved(int x, int y) override;
    62 
    63 };
    64 
    @@ -122,15 +122,15 @@ $(document).ready(function(){initNavTree('_intelli_tool_plain_8h_source.html',''
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click released of a mouse. Merging the fill to the active layer.
    PaintingArea * Area
    A pointer to the general PaintingArea to interact with.
    Definition: IntelliTool.h:33
    The IntelliToolPlainTool class represents a tool to fill the whole canvas with one color.
    -
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event.
    +
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event.
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click released of a mouse.
    - +
    The PaintingArea class manages the methods and stores information about the current painting area,...
    Definition: PaintingArea.h:36
    IntelliToolPlainTool(PaintingArea *Area, IntelliColorPicker *colorPicker)
    A constructor setting the general paintingArea and colorPicker.
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click pressed of a mouse. Filling the whole canvas.
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    The IntelliColorPicker manages the selected colors for one whole project.
    -
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click pressed of a mouse.Resetting the current fill.
    -
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event.
    +
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click pressed of a mouse. Resetting the current fill.
    +
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event.
    virtual ~IntelliToolPlainTool() override
    A Destructor.
    Include dependency graph for IntelliToolPolygon.cpp:
    diff --git a/docs/html/_intelli_tool_polygon_8cpp__incl.dot b/docs/html/_intelli_tool_polygon_8cpp__incl.dot index e3f2d1c..a34e276 100644 --- a/docs/html/_intelli_tool_polygon_8cpp__incl.dot +++ b/docs/html/_intelli_tool_polygon_8cpp__incl.dot @@ -57,4 +57,6 @@ digraph "intelliphoto/src/Tool/IntelliToolPolygon.cpp" Node18 [label="QDebug",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; Node1 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node19 [label="QCursor",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; + Node1 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 [label="QInputDialog",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; } diff --git a/docs/html/_intelli_tool_polygon_8cpp_source.html b/docs/html/_intelli_tool_polygon_8cpp_source.html index e077e1b..7879dc7 100644 --- a/docs/html/_intelli_tool_polygon_8cpp_source.html +++ b/docs/html/_intelli_tool_polygon_8cpp_source.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -94,139 +94,146 @@ $(document).ready(function(){initNavTree('_intelli_tool_polygon_8cpp_source.html
    2 #include "Layer/PaintingArea.h"
    3 #include <QDebug>
    4 #include <QCursor>
    -
    5 
    - -
    7  :IntelliTool(Area, colorPicker){
    -
    8  lineWidth = 5;
    -
    9  isDrawing = false;
    -
    10  PointIsNearStart = false;
    -
    11  drawingPoint.setX(0);
    -
    12  drawingPoint.setY(0);
    -
    13  Point.setX(0);
    -
    14  Point.setY(0);
    -
    15 }
    +
    5 #include <QInputDialog>
    +
    6 
    + +
    8  : IntelliTool(Area, colorPicker){
    +
    9  this->alphaInner = QInputDialog::getInt(nullptr,"Inner Alpha Value", "Value:", 0,0,255,1);
    +
    10  lineWidth = QInputDialog::getInt(nullptr,"Line Width Input", "Width",1,1,50,1);;
    +
    11  PointIsNearStart = false;
    +
    12  isDrawing = false;
    +
    13 }
    +
    14 
    +
    16 
    - -
    18  if(!isDrawing){
    -
    19  width = Area->getWidthActiveLayer();
    -
    20  height = Area->getHeightActiveLayer();
    -
    21  }
    -
    22  if(!isDrawing && x > 0 && y > 0 && x < width && y < height){
    -
    23  isDrawing = true;
    -
    24  drawingPoint.setX(x);
    -
    25  drawingPoint.setY(y);
    -
    26  QPointList.push_back(drawingPoint);
    - -
    28  this->Canvas->image->drawPlain(Qt::transparent);
    -
    29  this->Canvas->image->drawPoint(QPointList.back(), colorPicker->getFirstColor(), lineWidth);
    - -
    31  }
    -
    32  else if(isDrawing && isNearStart(x,y,QPointList.front())){
    -
    33  PointIsNearStart = isNearStart(x,y,QPointList.front());
    -
    34  this->Canvas->image->drawLine(QPointList.back(), QPointList.front(), colorPicker->getFirstColor(), lineWidth);
    - -
    36  }
    -
    37  else if(isDrawing){
    -
    38  drawingPoint.setX(x);
    -
    39  drawingPoint.setY(y);
    -
    40  QPointList.push_back(drawingPoint);
    -
    41  this->Canvas->image->drawLine(QPointList.operator[](QPointList.size() - 2), QPointList.back(), colorPicker->getFirstColor(), lineWidth);
    - -
    43  }
    -
    44 }
    -
    45 
    - -
    47  isDrawing = false;
    -
    48  PointIsNearStart = false;
    -
    49  QPointList.clear();
    - -
    51 }
    -
    52 
    - -
    54  if(PointIsNearStart && QPointList.size() > 1){
    - -
    56  PointIsNearStart = false;
    -
    57  isDrawing = false;
    -
    58  Triangles = IntelliHelper::calculateTriangles(QPointList);
    -
    59  for(int i = 0; i < width; i++){
    -
    60  for(int j = 0; j < height; j++){
    -
    61  Point.setX(i);
    -
    62  Point.setY(j);
    -
    63  if(IntelliHelper::isInPolygon(Triangles,Point)){
    -
    64  this->Canvas->image->drawPixel(QPoint(i,j), colorPicker->getFirstColor());
    +
    17 }
    +
    18 
    + +
    20  if(!isDrawing && x > 0 && y > 0 && x<Area->getWidthOfActive() && y<Area->getHeightOfActive()) {
    + +
    22  QPoint drawingPoint = QPoint(x,y);
    +
    23 
    +
    24  isDrawing = true;
    +
    25  QPointList.push_back(drawingPoint);
    +
    26 
    +
    27  this->Canvas->image->drawPoint(QPointList.back(), colorPicker->getFirstColor(), lineWidth);
    + +
    29  }
    +
    30  else if(isDrawing && isNearStart(x,y,QPointList.front())) {
    +
    31  PointIsNearStart = true;
    +
    32  this->Canvas->image->drawLine(QPointList.back(), QPointList.front(), colorPicker->getFirstColor(), lineWidth);
    + +
    34  }
    +
    35  else if(isDrawing) {
    +
    36  QPoint drawingPoint(x,y);
    +
    37  QPointList.push_back(drawingPoint);
    +
    38  this->Canvas->image->drawLine(QPointList[QPointList.size() - 2], QPointList[QPointList.size() - 1], colorPicker->getFirstColor(), lineWidth);
    + +
    40  }
    +
    41 }
    +
    42 
    + +
    44  isDrawing = false;
    +
    45  PointIsNearStart = false;
    +
    46  QPointList.clear();
    + +
    48 }
    +
    49 
    + +
    51  if(PointIsNearStart && QPointList.size() > 1) {
    +
    52  PointIsNearStart = false;
    +
    53  isDrawing = false;
    +
    54  std::vector<Triangle> Triangles = IntelliHelper::calculateTriangles(QPointList);
    +
    55  QPoint Point;
    +
    56  QColor colorTwo(colorPicker->getSecondColor());
    +
    57  colorTwo.setAlpha(alphaInner);
    +
    58  for(int i = 0; i < Active->width; i++) {
    +
    59  for(int j = 0; j < Active->height; j++) {
    +
    60  Point = QPoint(i,j);
    +
    61  if(IntelliHelper::isInPolygon(Triangles,Point)) {
    +
    62  this->Canvas->image->drawPixel(Point, colorTwo);
    +
    63  }
    +
    64  }
    65  }
    -
    66  }
    -
    67  }
    -
    68  QPointList.clear();
    - -
    70  }
    -
    71 }
    -
    72 
    - +
    66  for(int i=0; i<QPointList.size(); i++) {
    +
    67  int next = (i+1)%QPointList.size();
    +
    68  this->Canvas->image->drawLine(QPointList[i], QPointList[next], colorPicker->getFirstColor(), lineWidth);
    +
    69  }
    +
    70  QPointList.clear();
    + +
    72  }
    +
    73 }
    74 
    -
    75 }
    -
    76 
    - -
    78  if(!isDrawing){
    -
    79  if(lineWidth + value < 10){
    -
    80  lineWidth += value;
    -
    81  }
    -
    82  if(lineWidth < 1){
    -
    83  lineWidth = 1;
    -
    84  }
    -
    85  }
    -
    86 }
    -
    87 
    - -
    89 
    -
    90 }
    -
    91 
    -
    92 bool IntelliToolPolygon::isNearStart(int x, int y, QPoint Startpoint){
    -
    93  bool isNear = false;
    -
    94  int StartX = Startpoint.x();
    -
    95  int StartY = Startpoint.y();
    -
    96  int valueToNear = 10;
    -
    97 
    -
    98  for(int i = StartX - valueToNear; i < StartX + valueToNear; i++){
    -
    99  for(int j = StartY - valueToNear; j < StartY + valueToNear; j++){
    -
    100  if((i == x) && (j == y)){
    -
    101  isNear = true;
    -
    102  }
    -
    103  }
    -
    104  }
    -
    105  return isNear;
    -
    106 }
    + + +
    77 }
    +
    78 
    + + +
    81  if(!isDrawing) {
    +
    82  if(lineWidth + value < 10) {
    +
    83  lineWidth += value;
    +
    84  }
    +
    85  if(lineWidth < 1) {
    +
    86  lineWidth = 1;
    +
    87  }
    +
    88  }
    +
    89 }
    +
    90 
    + + +
    93 }
    +
    94 
    +
    95 bool IntelliToolPolygon::isNearStart(int x, int y, QPoint Startpoint){
    +
    96  bool isNear = false;
    +
    97  int StartX = Startpoint.x();
    +
    98  int StartY = Startpoint.y();
    +
    99  int valueToNear = 10;
    +
    100 
    +
    101  for(int i = StartX - valueToNear; i < StartX + valueToNear; i++) {
    +
    102  for(int j = StartY - valueToNear; j < StartY + valueToNear; j++) {
    +
    103  if((i == x) && (j == y)) {
    +
    104  isNear = true;
    +
    105  }
    +
    106  }
    +
    107  }
    +
    108  return isNear;
    +
    109 }
    virtual void onMouseRightPressed(int x, int y)
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    Definition: IntelliTool.cpp:14
    virtual void onMouseLeftReleased(int x, int y)
    A function managing the left click Released of a Mouse. Call this in child classes!
    Definition: IntelliTool.cpp:32
    -
    int getWidthActiveLayer()
    IntelliColorPicker * colorPicker
    A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors.
    Definition: IntelliTool.h:38
    virtual void drawLine(const QPoint &p1, const QPoint &p2, const QColor &color, const int &penWidth)
    A function that draws A Line between two given Points in a given color.
    virtual void onMouseLeftPressed(int x, int y)
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    Definition: IntelliTool.cpp:25
    virtual void drawPixel(const QPoint &p1, const QColor &color)
    A funtcion used to draw a pixel on the Image with the given Color.
    -
    PaintingArea * Area
    A pointer to the general PaintingArea to interact with.
    Definition: IntelliTool.h:33
    -
    int getHeightActiveLayer()
    -
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event. Call this in child classes!
    - +
    QColor getSecondColor()
    A function to read the secondary selected color.
    +
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event.
    +
    The PaintingArea class manages the methods and stores information about the current painting area,...
    Definition: PaintingArea.h:36
    virtual void drawPoint(const QPoint &p1, const QColor &color, const int &penWidth)
    A.
    +
    virtual void onMouseRightReleased(int x, int y)
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    Definition: IntelliTool.cpp:21
    LayerObject * Canvas
    A pointer to the drawing canvas of the tool, work on this.
    Definition: IntelliTool.h:48
    +
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    -
    bool isInPolygon(std::vector< Triangle > &triangles, QPoint &point)
    A function to check if a point lies in a polygon by checking its spanning triangles.
    -
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    +
    bool isInPolygon(std::vector< Triangle > &triangles, QPoint &point)
    A function to check if a point lies in a polygon by checking its spanning triangles.
    +
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click pressed of a mouse. Resetting the current fill.
    QColor getFirstColor()
    A function to read the primary selected color.
    +
    The IntelliColorPicker manages the selected colors for one whole project.
    std::vector< Triangle > calculateTriangles(std::vector< QPoint > polyPoints)
    A function to split a polygon in its spanning traingles by using Meisters Theorem of graph theory by ...
    -
    IntelliImage * image
    Definition: PaintingArea.h:17
    -
    IntelliToolPolygon(PaintingArea *Area, IntelliColorPicker *colorPicker)
    IntelliToolPolygon Constructor Define the Tool-intern Parameters.
    -
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    -
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    -
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click Released of a Mouse. Call this in child classes!
    +
    ~IntelliToolPolygon() override
    A Destructor.
    +
    IntelliImage * image
    Definition: PaintingArea.h:25
    +
    LayerObject * Active
    A pointer to the underlying active Layer, do not work on this. This is used for data grabbing or prev...
    Definition: IntelliTool.h:43
    +
    IntelliToolPolygon(PaintingArea *Area, IntelliColorPicker *colorPicker)
    A constructor setting the general paintingArea and colorPicker.
    +
    virtual void onMouseMoved(int x, int y)
    A function managing the mouse moved event. Call this in child classes!
    Definition: IntelliTool.cpp:41
    +
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click pressed of a mouse. Setting polygon points.
    +
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click released of a mouse.
    +
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click released of a mouse. Merging the fill to the active layer.
    virtual void calculateVisiblity()=0
    An abstract function that calculates the visiblity of the Image data if needed.
    -
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. A positive value means scrolling outwards. Call this in child c...
    -
    virtual void drawPlain(const QColor &color)
    A function that clears the whole image in a given Color.
    +
    virtual void onWheelScrolled(int value)
    A function managing the scroll event. A positive value means scrolling outwards. Call this in child c...
    Definition: IntelliTool.cpp:46
    +
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. CHanging the lineWidth relative to value.
    IntelliColorPicker * colorPicker
    A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors.
    Definition: IntelliTool.h:38
    PaintingArea * Area
    A pointer to the general PaintingArea to interact with.
    Definition: IntelliTool.h:33
    -
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event. Call this in child classes!
    - +
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event.
    +
    The PaintingArea class manages the methods and stores information about the current painting area,...
    Definition: PaintingArea.h:36
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    -
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    +
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click pressed of a mouse. Resetting the current fill.
    The IntelliColorPicker manages the selected colors for one whole project.
    -
    IntelliToolPolygon(PaintingArea *Area, IntelliColorPicker *colorPicker)
    IntelliToolPolygon Constructor Define the Tool-intern Parameters.
    -
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    -
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    +
    ~IntelliToolPolygon() override
    A Destructor.
    +
    IntelliToolPolygon(PaintingArea *Area, IntelliColorPicker *colorPicker)
    A constructor setting the general paintingArea and colorPicker.
    +
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click pressed of a mouse. Setting polygon points.
    +
    virtual void onMouseRightReleased(int x, int y) override
    A function managing the right click released of a mouse.
    The IntelliToolPolygon managed the Drawing of Polygonforms.
    -
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click Released of a Mouse. Call this in child classes!
    -
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. A positive value means scrolling outwards. Call this in child c...
    +
    virtual void onMouseLeftReleased(int x, int y) override
    A function managing the left click released of a mouse. Merging the fill to the active layer.
    +
    virtual void onWheelScrolled(int value) override
    A function managing the scroll event. CHanging the lineWidth relative to value.
    -Go to the documentation of this file.
    +Go to the documentation of this file.
    1 #include "IntelliToolRectangle.h"
    2 #include "Layer/PaintingArea.h"
    3 #include "QInputDialog"
    4 
    -
    6  :IntelliTool(Area, colorPicker){
    -
    7  this->alphaInner = QInputDialog::getInt(nullptr,"Inner Alpha Value", "Value:", 0,0,255,1);
    -
    8  this->edgeWidth = QInputDialog::getInt(nullptr,"Outer edge width", "Value:", 0,1,255,1);
    +
    6  : IntelliTool(Area, colorPicker){
    +
    7  this->alphaInner = QInputDialog::getInt(nullptr,"Inner Alpha Value", "Value:", 0,0,255,1);
    +
    8  this->edgeWidth = QInputDialog::getInt(nullptr,"Outer edge width", "Value:", 0,1,255,1);
    9 }
    10 
    @@ -105,57 +105,57 @@ $(document).ready(function(){initNavTree('_intelli_tool_rectangle_8cpp_source.ht
    13 }
    14 
    15 void IntelliToolRectangle::drawRectangle(QPoint otherCornor){
    -
    16  int xMin = std::min(originCornor.x(), otherCornor.x());
    -
    17  int xMax = std::max(originCornor.x(), otherCornor.x());
    +
    16  int xMin = std::min(originCornor.x(), otherCornor.x());
    +
    17  int xMax = std::max(originCornor.x(), otherCornor.x());
    18 
    -
    19  int yMin = std::min(originCornor.y(), otherCornor.y());
    -
    20  int yMax = std::max(originCornor.y(), otherCornor.y());
    +
    19  int yMin = std::min(originCornor.y(), otherCornor.y());
    +
    20  int yMax = std::max(originCornor.y(), otherCornor.y());
    21 
    -
    22  QColor clr = colorPicker->getSecondColor();
    -
    23  clr.setAlpha(alphaInner);
    -
    24  for(int y=yMin; y<=yMax; y++){
    -
    25  this->Canvas->image->drawLine(QPoint(xMin,y), QPoint(xMax, y), clr, 1);
    -
    26  }
    -
    27  this->Canvas->image->drawLine(QPoint(xMin, yMin),QPoint(xMin, yMax), this->colorPicker->getFirstColor(), edgeWidth);
    -
    28  this->Canvas->image->drawLine(QPoint(xMin, yMin),QPoint(xMax, yMin), this->colorPicker->getFirstColor(), edgeWidth);
    -
    29  this->Canvas->image->drawLine(QPoint(xMax, yMax),QPoint(xMin, yMax), this->colorPicker->getFirstColor(), edgeWidth);
    -
    30  this->Canvas->image->drawLine(QPoint(xMax, yMax),QPoint(xMax, yMin), this->colorPicker->getFirstColor(), edgeWidth);
    +
    22  QColor clr = colorPicker->getSecondColor();
    +
    23  clr.setAlpha(alphaInner);
    +
    24  for(int y=yMin; y<=yMax; y++) {
    +
    25  this->Canvas->image->drawLine(QPoint(xMin,y), QPoint(xMax, y), clr, 1);
    +
    26  }
    +
    27  this->Canvas->image->drawLine(QPoint(xMin, yMin),QPoint(xMin, yMax), this->colorPicker->getFirstColor(), edgeWidth);
    +
    28  this->Canvas->image->drawLine(QPoint(xMin, yMin),QPoint(xMax, yMin), this->colorPicker->getFirstColor(), edgeWidth);
    +
    29  this->Canvas->image->drawLine(QPoint(xMax, yMax),QPoint(xMin, yMax), this->colorPicker->getFirstColor(), edgeWidth);
    +
    30  this->Canvas->image->drawLine(QPoint(xMax, yMax),QPoint(xMax, yMin), this->colorPicker->getFirstColor(), edgeWidth);
    31 }
    32 
    - +
    35 }
    36 
    - +
    39 }
    40 
    - -
    43  this->originCornor=QPoint(x,y);
    -
    44  drawRectangle(originCornor);
    - + +
    43  this->originCornor=QPoint(x,y);
    +
    44  drawRectangle(originCornor);
    +
    46 }
    47 
    - +
    50 }
    51 
    -
    53  if(this->drawing){
    -
    54  this->Canvas->image->drawPlain(Qt::transparent);
    -
    55  QPoint next(x,y);
    -
    56  drawRectangle(next);
    -
    57  }
    - +
    53  if(this->drawing) {
    +
    54  this->Canvas->image->drawPlain(Qt::transparent);
    +
    55  QPoint next(x,y);
    +
    56  drawRectangle(next);
    +
    57  }
    +
    59 }
    60 
    - -
    63  this->edgeWidth+=value;
    -
    64  if(this->edgeWidth<=0){
    -
    65  this->edgeWidth=1;
    -
    66  }
    + +
    63  this->edgeWidth+=value;
    +
    64  if(this->edgeWidth<=0) {
    +
    65  this->edgeWidth=1;
    +
    66  }
    67 }
    @@ -170,7 +170,7 @@ $(document).ready(function(){initNavTree('_intelli_tool_rectangle_8cpp_source.ht
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click pressed of a mouse. Setting the originCorner and draws a rectangle...
    QColor getSecondColor()
    A function to read the secondary selected color.
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click pressed of a mouse.Resetting the current draw.
    - +
    The PaintingArea class manages the methods and stores information about the current painting area,...
    Definition: PaintingArea.h:36
    virtual void onMouseRightReleased(int x, int y)
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    Definition: IntelliTool.cpp:21
    LayerObject * Canvas
    A pointer to the drawing canvas of the tool, work on this.
    Definition: IntelliTool.h:48
    @@ -180,7 +180,7 @@ $(document).ready(function(){initNavTree('_intelli_tool_rectangle_8cpp_source.ht
    QColor getFirstColor()
    A function to read the primary selected color.
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event.Drawing a rectangle to currrent mouse position.
    The IntelliColorPicker manages the selected colors for one whole project.
    -
    IntelliImage * image
    Definition: PaintingArea.h:17
    +
    IntelliImage * image
    Definition: PaintingArea.h:25
    virtual void onMouseMoved(int x, int y)
    A function managing the mouse moved event. Call this in child classes!
    Definition: IntelliTool.cpp:41
    IntelliToolRectangle(PaintingArea *Area, IntelliColorPicker *colorPicker)
    A constructor setting the general paintingArea and colorPicker. And reading in the alphaInner and edg...
    virtual void calculateVisiblity()=0
    An abstract function that calculates the visiblity of the Image data if needed.
    diff --git a/docs/html/_intelli_tool_rectangle_8h.html b/docs/html/_intelli_tool_rectangle_8h.html index 7fe2d37..628c17a 100644 --- a/docs/html/_intelli_tool_rectangle_8h.html +++ b/docs/html/_intelli_tool_rectangle_8h.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/_intelli_tool_rectangle_8h_source.html b/docs/html/_intelli_tool_rectangle_8h_source.html index 89e35c2..9b1c7f3 100644 --- a/docs/html/_intelli_tool_rectangle_8h_source.html +++ b/docs/html/_intelli_tool_rectangle_8h_source.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -97,27 +97,27 @@ $(document).ready(function(){initNavTree('_intelli_tool_rectangle_8h_source.html
    5 
    6 #include "QColor"
    7 #include "QPoint"
    - -
    16  void drawRectangle(QPoint otherCornor);
    + +
    16 void drawRectangle(QPoint otherCornor);
    17 
    -
    21  QPoint originCornor;
    -
    25  int alphaInner;
    -
    29  int edgeWidth;
    +
    21 QPoint originCornor;
    +
    25 int alphaInner;
    +
    29 int edgeWidth;
    30 public:
    - -
    40  virtual ~IntelliToolRectangle() override;
    + +
    40 virtual ~IntelliToolRectangle() override;
    41 
    -
    47  virtual void onMouseRightPressed(int x, int y) override;
    +
    47 virtual void onMouseRightPressed(int x, int y) override;
    48 
    -
    54  virtual void onMouseRightReleased(int x, int y) override;
    +
    54 virtual void onMouseRightReleased(int x, int y) override;
    55 
    -
    61  virtual void onMouseLeftPressed(int x, int y) override;
    +
    61 virtual void onMouseLeftPressed(int x, int y) override;
    62 
    -
    68  virtual void onMouseLeftReleased(int x, int y) override;
    +
    68 virtual void onMouseLeftReleased(int x, int y) override;
    69 
    -
    74  virtual void onWheelScrolled(int value) override;
    +
    74 virtual void onWheelScrolled(int value) override;
    75 
    -
    81  virtual void onMouseMoved(int x, int y) override;
    +
    81 virtual void onMouseMoved(int x, int y) override;
    82 };
    83 
    84 #endif // INTELLIRECTANGLETOOL_H
    @@ -131,7 +131,7 @@ $(document).ready(function(){initNavTree('_intelli_tool_rectangle_8h_source.html
    virtual void onMouseLeftPressed(int x, int y) override
    A function managing the left click pressed of a mouse. Setting the originCorner and draws a rectangle...
    PaintingArea * Area
    A pointer to the general PaintingArea to interact with.
    Definition: IntelliTool.h:33
    virtual void onMouseRightPressed(int x, int y) override
    A function managing the right click pressed of a mouse.Resetting the current draw.
    - +
    The PaintingArea class manages the methods and stores information about the current painting area,...
    Definition: PaintingArea.h:36
    The IntelliToolRectangle class represents a tool to draw a rectangle.
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    virtual void onMouseMoved(int x, int y) override
    A function managing the mouse moved event.Drawing a rectangle to currrent mouse position.
    diff --git a/docs/html/_painting_area_8cpp.html b/docs/html/_painting_area_8cpp.html index f8102ea..416bf72 100644 --- a/docs/html/_painting_area_8cpp.html +++ b/docs/html/_painting_area_8cpp.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/_painting_area_8cpp_source.html b/docs/html/_painting_area_8cpp_source.html index bcb9b0e..780fcb6 100644 --- a/docs/html/_painting_area_8cpp_source.html +++ b/docs/html/_painting_area_8cpp_source.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -110,389 +110,413 @@ $(document).ready(function(){initNavTree('_painting_area_8cpp_source.html','');}
    20 
    -
    21 PaintingArea::PaintingArea(int maxWidth, int maxHeight, QWidget *parent)
    -
    22  :QWidget(parent){
    -
    23  // Testing Area
    -
    24  // test yout tool here and reset after accomplished test
    -
    25  this->Tool = new IntelliToolFloodFill(this, &colorPicker);
    -
    26  this->setUp(maxWidth, maxHeight);
    -
    27  this->addLayer(200,200,0,0,ImageType::Shaped_Image);
    -
    28  layerBundle[0].image->drawPlain(QColor(0,0,255,255));
    -
    29  std::vector<QPoint> polygon;
    -
    30  polygon.push_back(QPoint(100,000));
    -
    31  polygon.push_back(QPoint(200,100));
    -
    32  polygon.push_back(QPoint(100,200));
    -
    33  polygon.push_back(QPoint(000,100));
    -
    34  layerBundle[0].image->setPolygon(polygon);
    -
    35 
    -
    36  this->addLayer(200,200,150,150);
    -
    37  layerBundle[1].image->drawPlain(QColor(0,255,0,255));
    -
    38  layerBundle[1].alpha=200;
    -
    39 
    -
    40  activeLayer=0;
    -
    41 }
    -
    42 
    - -
    44  delete Tool;
    -
    45 }
    -
    46 
    -
    47 void PaintingArea::setUp(int maxWidth, int maxHeight){
    -
    48  //set standart parameter
    -
    49  this->maxWidth = maxWidth;
    -
    50  this->maxHeight = maxHeight;
    -
    51  Canvas = new QImage(maxWidth,maxHeight, QImage::Format_ARGB32);
    -
    52 
    -
    53  // Roots the widget to the top left even if resized
    -
    54  setAttribute(Qt::WA_StaticContents);
    +
    21 PaintingArea::PaintingArea(int maxWidth, int maxHeight, QWidget*parent)
    +
    22  : QWidget(parent){
    +
    23  this->Tool = nullptr;
    +
    24  this->setUp(maxWidth, maxHeight);
    +
    25  this->addLayer(200,200,0,0,ImageType::Shaped_Image);
    +
    26  layerBundle[0].image->drawPlain(QColor(0,0,255,255));
    +
    27  std::vector<QPoint> polygon;
    +
    28  polygon.push_back(QPoint(100,000));
    +
    29  polygon.push_back(QPoint(200,100));
    +
    30  polygon.push_back(QPoint(100,200));
    +
    31  polygon.push_back(QPoint(000,100));
    +
    32  layerBundle[0].image->setPolygon(polygon);
    +
    33 
    +
    34  this->addLayer(200,200,150,150);
    +
    35  layerBundle[1].image->drawPlain(QColor(0,255,0,255));
    +
    36  layerBundle[1].alpha=200;
    +
    37 
    +
    38  activeLayer=0;
    +
    39 }
    +
    40 
    + +
    42  delete Tool;
    +
    43 }
    +
    44 
    +
    45 void PaintingArea::setUp(int maxWidth, int maxHeight){
    +
    46  //set standart parameter
    +
    47  this->maxWidth = maxWidth;
    +
    48  this->maxHeight = maxHeight;
    +
    49  Canvas = new QImage(maxWidth,maxHeight, QImage::Format_ARGB32);
    +
    50 
    +
    51  // Roots the widget to the top left even if resized
    +
    52  setAttribute(Qt::WA_StaticContents);
    +
    53 
    +
    54 }
    55 
    -
    56 }
    -
    57 
    -
    58 int PaintingArea::addLayer(int width, int height, int widthOffset, int heightOffset, ImageType type){
    -
    59  LayerObject newLayer;
    -
    60  newLayer.width = width;
    -
    61  newLayer.hight = height;
    -
    62  newLayer.widthOffset = widthOffset;
    -
    63  newLayer.hightOffset = heightOffset;
    -
    64  if(type==ImageType::Raster_Image){
    -
    65  newLayer.image = new IntelliRasterImage(width,height);
    -
    66  }else if(type==ImageType::Shaped_Image){
    -
    67  newLayer.image = new IntelliShapedImage(width, height);
    -
    68  }
    -
    69  newLayer.alpha = 255;
    -
    70  this->layerBundle.push_back(newLayer);
    -
    71  return static_cast<int>(layerBundle.size())-1;
    -
    72 }
    -
    73 
    -
    74 
    -
    75 void PaintingArea::deleteLayer(int index){
    -
    76  if(index<static_cast<int>(layerBundle.size())){
    -
    77  this->layerBundle.erase(layerBundle.begin()+index);
    -
    78  if(activeLayer>=index){
    -
    79  activeLayer--;
    -
    80  }
    -
    81  }
    -
    82 }
    -
    83 
    - -
    85  if(activeLayer>=0 && activeLayer < static_cast<int>(layerBundle.size())){
    -
    86  this->layerBundle.erase(layerBundle.begin()+activeLayer);
    -
    87  activeLayer--;
    -
    88  }
    -
    89 }
    -
    90 
    - -
    92  if(index>=0&&index<static_cast<int>(layerBundle.size())){
    -
    93  this->activeLayer=index;
    -
    94  }
    -
    95 }
    -
    96 
    -
    97 void PaintingArea::setAlphaOfLayer(int index, int alpha){
    -
    98  if(index>=0&&index<static_cast<int>(layerBundle.size())){
    -
    99  layerBundle[static_cast<size_t>(index)].alpha=alpha;
    -
    100  }
    -
    101 }
    -
    102 
    -
    103 // Used to load the image and place it in the widget
    -
    104 bool PaintingArea::open(const QString &fileName){
    -
    105  if(this->activeLayer==-1){
    -
    106  return false;
    -
    107  }
    -
    108  IntelliImage* active = layerBundle[static_cast<size_t>(activeLayer)].image;
    -
    109  bool open = active->loadImage(fileName);
    -
    110  active->calculateVisiblity();
    -
    111  update();
    -
    112  return open;
    -
    113 }
    -
    114 
    -
    115 // Save the current image
    -
    116 bool PaintingArea::save(const QString &fileName, const char *fileFormat){
    -
    117  if(layerBundle.size()==0){
    -
    118  return false;
    -
    119  }
    -
    120  this->assembleLayers(true);
    -
    121 
    -
    122  if(!strcmp(fileFormat,"PNG")){
    -
    123  QImage visibleImage = Canvas->convertToFormat(QImage::Format_Indexed8);
    -
    124  fileFormat = "png";
    -
    125  if (visibleImage.save(fileName, fileFormat)) {
    -
    126  return true;
    -
    127  } else {
    -
    128  return false;
    -
    129  }
    -
    130  }
    -
    131 
    -
    132  if (Canvas->save(fileName, fileFormat)) {
    -
    133  return true;
    -
    134  } else {
    -
    135  return false;
    -
    136  }
    -
    137 }
    -
    138 
    -
    139 // Color the image area with white
    -
    140 void PaintingArea::floodFill(int r, int g, int b, int a){
    -
    141  if(this->activeLayer==-1){
    -
    142  return;
    -
    143  }
    -
    144  IntelliImage* active = layerBundle[static_cast<size_t>(activeLayer)].image;
    -
    145  active->drawPlain(QColor(r, g, b, a));
    -
    146  update();
    -
    147 }
    -
    148 
    - -
    150  layerBundle[static_cast<size_t>(activeLayer)].widthOffset += x;
    -
    151  layerBundle[static_cast<size_t>(activeLayer)].hightOffset += y;
    -
    152 }
    -
    153 
    - -
    155  if(idx==1){
    -
    156  this->activateUpperLayer();
    -
    157  }else if(idx==-1){
    -
    158  this->activateLowerLayer();
    -
    159  }
    -
    160 }
    -
    161 
    - -
    163  if(a>=0 && a < static_cast<int>(layerBundle.size())){
    -
    164  this->setLayerToActive(a);
    -
    165  }
    -
    166 }
    -
    167 
    - -
    169  QColor clr = QColorDialog::getColor(colorPicker.getFirstColor(), nullptr, "Main Color", QColorDialog::DontUseNativeDialog);
    -
    170  this->colorPicker.setFirstColor(clr);
    -
    171 }
    -
    172 
    - -
    174  QColor clr = QColorDialog::getColor(colorPicker.getSecondColor(), nullptr, "Secondary Color", QColorDialog::DontUseNativeDialog);
    -
    175  this->colorPicker.setSecondColor(clr);
    -
    176 }
    -
    177 
    - -
    179  this->colorPicker.switchColors();
    -
    180 }
    -
    181 
    - -
    183  delete this->Tool;
    -
    184  Tool = new IntelliToolPen(this, &colorPicker);
    -
    185 }
    -
    186 
    - -
    188  delete this->Tool;
    -
    189  Tool = new IntelliToolPlainTool(this, &colorPicker);
    -
    190 }
    -
    191 
    - -
    193  delete this->Tool;
    -
    194  Tool = new IntelliToolLine(this, &colorPicker);
    -
    195 }
    -
    196 
    - -
    198  return layerBundle.operator[](activeLayer).width;
    -
    199 }
    -
    200 
    - -
    202  return layerBundle.operator[](activeLayer).hight;
    +
    56 int PaintingArea::addLayer(int width, int height, int widthOffset, int heightOffset, ImageType type){
    +
    57  LayerObject newLayer;
    +
    58  newLayer.width = width;
    +
    59  newLayer.height = height;
    +
    60  newLayer.widthOffset = widthOffset;
    +
    61  newLayer.heightOffset = heightOffset;
    +
    62  if(type==ImageType::Raster_Image) {
    +
    63  newLayer.image = new IntelliRasterImage(width,height);
    +
    64  }else if(type==ImageType::Shaped_Image) {
    +
    65  newLayer.image = new IntelliShapedImage(width, height);
    +
    66  }
    +
    67  newLayer.alpha = 255;
    +
    68  this->layerBundle.push_back(newLayer);
    +
    69  return static_cast<int>(layerBundle.size())-1;
    +
    70 }
    +
    71 
    +
    72 
    +
    73 void PaintingArea::deleteLayer(int index){
    +
    74  if(index<static_cast<int>(layerBundle.size())) {
    +
    75  this->layerBundle.erase(layerBundle.begin()+index);
    +
    76  if(activeLayer>=index) {
    +
    77  activeLayer--;
    +
    78  }
    +
    79  }
    +
    80 }
    +
    81 
    + +
    83  if(activeLayer>=0 && activeLayer < static_cast<int>(layerBundle.size())) {
    +
    84  this->layerBundle.erase(layerBundle.begin()+activeLayer);
    +
    85  activeLayer--;
    +
    86  }
    +
    87 }
    +
    88 
    + +
    90  if(index>=0&&index<static_cast<int>(layerBundle.size())) {
    +
    91  this->activeLayer=index;
    +
    92  }
    +
    93 }
    +
    94 
    +
    95 void PaintingArea::setAlphaOfLayer(int index, int alpha){
    +
    96  if(index>=0&&index<static_cast<int>(layerBundle.size())) {
    +
    97  layerBundle[static_cast<size_t>(index)].alpha=alpha;
    +
    98  }
    +
    99 }
    +
    100 
    +
    101 // Used to load the image and place it in the widget
    +
    102 bool PaintingArea::open(const QString &fileName){
    +
    103  if(this->activeLayer==-1) {
    +
    104  return false;
    +
    105  }
    +
    106  IntelliImage* active = layerBundle[static_cast<size_t>(activeLayer)].image;
    +
    107  bool open = active->loadImage(fileName);
    +
    108  active->calculateVisiblity();
    +
    109  update();
    +
    110  return open;
    +
    111 }
    +
    112 
    +
    113 // Save the current image
    +
    114 bool PaintingArea::save(const QString &fileName, const char*fileFormat){
    +
    115  if(layerBundle.size()==0) {
    +
    116  return false;
    +
    117  }
    +
    118  this->assembleLayers(true);
    +
    119 
    +
    120  if(!strcmp(fileFormat,"PNG")) {
    +
    121  QImage visibleImage = Canvas->convertToFormat(QImage::Format_Indexed8);
    +
    122  fileFormat = "png";
    +
    123  if (visibleImage.save(fileName, fileFormat)) {
    +
    124  return true;
    +
    125  } else {
    +
    126  return false;
    +
    127  }
    +
    128  }
    +
    129 
    +
    130  if (Canvas->save(fileName, fileFormat)) {
    +
    131  return true;
    +
    132  } else {
    +
    133  return false;
    +
    134  }
    +
    135 }
    +
    136 
    +
    137 // Color the image area with white
    +
    138 void PaintingArea::floodFill(int r, int g, int b, int a){
    +
    139  if(this->activeLayer==-1) {
    +
    140  return;
    +
    141  }
    +
    142  IntelliImage* active = layerBundle[static_cast<size_t>(activeLayer)].image;
    +
    143  active->drawPlain(QColor(r, g, b, a));
    +
    144  update();
    +
    145 }
    +
    146 
    + +
    148  layerBundle[static_cast<size_t>(activeLayer)].widthOffset += x;
    +
    149  layerBundle[static_cast<size_t>(activeLayer)].heightOffset += y;
    +
    150 }
    +
    151 
    + +
    153  if(idx==1) {
    +
    154  this->activateUpperLayer();
    +
    155  }else if(idx==-1) {
    +
    156  this->activateLowerLayer();
    +
    157  }
    +
    158 }
    +
    159 
    + +
    161  if(a>=0 && a < static_cast<int>(layerBundle.size())) {
    +
    162  this->setLayerToActive(a);
    +
    163  }
    +
    164 }
    +
    165 
    + +
    167  QColor clr = QColorDialog::getColor(colorPicker.getFirstColor(), nullptr, "Main Color", QColorDialog::DontUseNativeDialog);
    +
    168  this->colorPicker.setFirstColor(clr);
    +
    169 }
    +
    170 
    + +
    172  QColor clr = QColorDialog::getColor(colorPicker.getSecondColor(), nullptr, "Secondary Color", QColorDialog::DontUseNativeDialog);
    +
    173  this->colorPicker.setSecondColor(clr);
    +
    174 }
    +
    175 
    + +
    177  this->colorPicker.switchColors();
    +
    178 }
    +
    179 
    + +
    181  delete this->Tool;
    +
    182  Tool = new IntelliToolPen(this, &colorPicker);
    +
    183 }
    +
    184 
    + +
    186  delete this->Tool;
    +
    187  Tool = new IntelliToolPlainTool(this, &colorPicker);
    +
    188 }
    +
    189 
    + +
    191  delete this->Tool;
    +
    192  Tool = new IntelliToolLine(this, &colorPicker);
    +
    193 }
    +
    194 
    + +
    196  delete this->Tool;
    +
    197  Tool = new IntelliToolRectangle(this, &colorPicker);
    +
    198 }
    +
    199 
    + +
    201  delete this->Tool;
    +
    202  Tool = new IntelliToolCircle(this, &colorPicker);
    203 }
    -
    204 
    -
    205 // If a mouse button is pressed check if it was the
    -
    206 // left button and if so store the current position
    -
    207 // Set that we are currently drawing
    -
    208 void PaintingArea::mousePressEvent(QMouseEvent *event){
    -
    209  if(Tool == nullptr)
    -
    210  return;
    -
    211  int x = event->x()-layerBundle[activeLayer].widthOffset;
    -
    212  int y = event->y()-layerBundle[activeLayer].hightOffset;
    -
    213  if(event->button() == Qt::LeftButton){
    -
    214  Tool->onMouseLeftPressed(x, y);
    -
    215  }else if(event->button() == Qt::RightButton){
    -
    216  Tool->onMouseRightPressed(x, y);
    -
    217  }
    -
    218  update();
    -
    219 }
    -
    220 
    -
    221 // When the mouse moves if the left button is clicked
    -
    222 // we call the drawline function which draws a line
    -
    223 // from the last position to the current
    -
    224 void PaintingArea::mouseMoveEvent(QMouseEvent *event){
    -
    225  if(Tool == nullptr)
    -
    226  return;
    -
    227  int x = event->x()-layerBundle[activeLayer].widthOffset;
    -
    228  int y = event->y()-layerBundle[activeLayer].hightOffset;
    -
    229  Tool->onMouseMoved(x, y);
    -
    230  update();
    -
    231 }
    -
    232 
    -
    233 // If the button is released we set variables to stop drawing
    -
    234 void PaintingArea::mouseReleaseEvent(QMouseEvent *event){
    -
    235  if(Tool == nullptr)
    -
    236  return;
    -
    237  int x = event->x()-layerBundle[activeLayer].widthOffset;
    -
    238  int y = event->y()-layerBundle[activeLayer].hightOffset;
    -
    239  if(event->button() == Qt::LeftButton){
    -
    240  Tool->onMouseLeftReleased(x, y);
    -
    241  }else if(event->button() == Qt::RightButton){
    -
    242  Tool->onMouseRightReleased(x, y);
    -
    243  }
    -
    244  update();
    -
    245 }
    -
    246 
    -
    247 void PaintingArea::wheelEvent(QWheelEvent *event){
    -
    248  QPoint numDegrees = event->angleDelta() / 8;
    -
    249  if(!numDegrees.isNull()){
    -
    250  QPoint numSteps = numDegrees / 15;
    -
    251  Tool->onWheelScrolled(numSteps.y()*-1);
    -
    252  }
    -
    253 }
    -
    254 
    -
    255 // QPainter provides functions to draw on the widget
    -
    256 // The QPaintEvent is sent to widgets that need to
    -
    257 // update themselves
    -
    258 void PaintingArea::paintEvent(QPaintEvent *event){
    -
    259  this->assembleLayers();
    -
    260 
    -
    261  QPainter painter(this);
    -
    262  QRect dirtyRec = event->rect();
    -
    263  painter.drawImage(dirtyRec, *Canvas, dirtyRec);
    -
    264  update();
    -
    265 }
    -
    266 
    -
    267 // Resize the image to slightly larger then the main window
    -
    268 // to cut down on the need to resize the image
    -
    269 void PaintingArea::resizeEvent(QResizeEvent *event){
    -
    270  //TODO wait till tool works
    -
    271  update();
    -
    272 }
    -
    273 
    -
    274 void PaintingArea::resizeImage(QImage *image_res, const QSize &newSize){
    -
    275  //TODO implement
    -
    276 }
    + +
    205  delete this->Tool;
    +
    206  Tool = new IntelliToolPolygon(this, &colorPicker);
    +
    207 }
    +
    208 
    + +
    210  delete this->Tool;
    +
    211  Tool = new IntelliToolFloodFill(this, &colorPicker);
    +
    212 }
    +
    213 
    + +
    215  return this->layerBundle[activeLayer].width;
    +
    216 }
    +
    217 
    + +
    219  return this->layerBundle[activeLayer].height;
    +
    220 }
    +
    221 
    +
    222 // If a mouse button is pressed check if it was the
    +
    223 // left button and if so store the current position
    +
    224 // Set that we are currently drawing
    +
    225 void PaintingArea::mousePressEvent(QMouseEvent*event){
    +
    226  if(Tool == nullptr)
    +
    227  return;
    +
    228  int x = event->x()-layerBundle[activeLayer].widthOffset;
    +
    229  int y = event->y()-layerBundle[activeLayer].heightOffset;
    +
    230  if(event->button() == Qt::LeftButton) {
    +
    231  Tool->onMouseLeftPressed(x, y);
    +
    232  }else if(event->button() == Qt::RightButton) {
    +
    233  Tool->onMouseRightPressed(x, y);
    +
    234  }
    +
    235  update();
    +
    236 }
    +
    237 
    +
    238 // When the mouse moves if the left button is clicked
    +
    239 // we call the drawline function which draws a line
    +
    240 // from the last position to the current
    +
    241 void PaintingArea::mouseMoveEvent(QMouseEvent*event){
    +
    242  if(Tool == nullptr)
    +
    243  return;
    +
    244  int x = event->x()-layerBundle[activeLayer].widthOffset;
    +
    245  int y = event->y()-layerBundle[activeLayer].heightOffset;
    +
    246  Tool->onMouseMoved(x, y);
    +
    247  update();
    +
    248 }
    +
    249 
    +
    250 // If the button is released we set variables to stop drawing
    +
    251 void PaintingArea::mouseReleaseEvent(QMouseEvent*event){
    +
    252  if(Tool == nullptr)
    +
    253  return;
    +
    254  int x = event->x()-layerBundle[activeLayer].widthOffset;
    +
    255  int y = event->y()-layerBundle[activeLayer].heightOffset;
    +
    256  if(event->button() == Qt::LeftButton) {
    +
    257  Tool->onMouseLeftReleased(x, y);
    +
    258  }else if(event->button() == Qt::RightButton) {
    +
    259  Tool->onMouseRightReleased(x, y);
    +
    260  }
    +
    261  update();
    +
    262 }
    +
    263 
    +
    264 void PaintingArea::wheelEvent(QWheelEvent*event){
    +
    265  QPoint numDegrees = event->angleDelta() / 8;
    +
    266  if(!numDegrees.isNull()) {
    +
    267  QPoint numSteps = numDegrees / 15;
    +
    268  Tool->onWheelScrolled(numSteps.y()* -1);
    +
    269  }
    +
    270 }
    +
    271 
    +
    272 // QPainter provides functions to draw on the widget
    +
    273 // The QPaintEvent is sent to widgets that need to
    +
    274 // update themselves
    +
    275 void PaintingArea::paintEvent(QPaintEvent*event){
    +
    276  this->assembleLayers();
    277 
    -
    278 void PaintingArea::activateUpperLayer(){
    -
    279  if(activeLayer!=-1 && activeLayer<layerBundle.size()-1){
    -
    280  std::swap(layerBundle[activeLayer], layerBundle[activeLayer+1]);
    -
    281  activeLayer++;
    -
    282  }
    -
    283 }
    -
    284 
    -
    285 void PaintingArea::activateLowerLayer(){
    -
    286  if(activeLayer!=-1 && activeLayer>0){
    -
    287  std::swap(layerBundle[activeLayer], layerBundle[activeLayer-1]);
    -
    288  activeLayer--;
    -
    289  }
    -
    290 }
    -
    291 
    -
    292 void PaintingArea::assembleLayers(bool forSaving){
    -
    293  if(forSaving){
    -
    294  Canvas->fill(Qt::GlobalColor::transparent);
    -
    295  }else{
    -
    296  Canvas->fill(Qt::GlobalColor::black);
    -
    297  }
    -
    298  for(size_t i=0; i<layerBundle.size(); i++){
    -
    299  LayerObject layer = layerBundle[i];
    -
    300  QImage cpy = layer.image->getDisplayable(layer.alpha);
    -
    301  QColor clr_0;
    -
    302  QColor clr_1;
    -
    303  for(int y=0; y<layer.hight; y++){
    -
    304  if(layer.hightOffset+y<0) continue;
    -
    305  if(layer.hightOffset+y>=maxHeight) break;
    -
    306  for(int x=0; x<layer.width; x++){
    -
    307  if(layer.widthOffset+x<0) continue;
    -
    308  if(layer.widthOffset+x>=maxWidth) break;
    -
    309  clr_0=Canvas->pixelColor(layer.widthOffset+x, layer.hightOffset+y);
    -
    310  clr_1=cpy.pixelColor(x,y);
    -
    311  float t = static_cast<float>(clr_1.alpha())/255.f;
    -
    312  int r =static_cast<int>(static_cast<float>(clr_1.red())*(t)+static_cast<float>(clr_0.red())*(1.f-t)+0.5f);
    -
    313  int g =static_cast<int>(static_cast<float>(clr_1.green())*(t)+static_cast<float>(clr_0.green())*(1.f-t)+0.5f);
    -
    314  int b =static_cast<int>(static_cast<float>(clr_1.blue())*(t)+static_cast<float>(clr_0.blue()*(1.f-t))+0.5f);
    -
    315  int a =std::min(clr_0.alpha()+clr_1.alpha(), 255);
    -
    316  clr_0.setRed(r);
    -
    317  clr_0.setGreen(g);
    -
    318  clr_0.setBlue(b);
    -
    319  clr_0.setAlpha(a);
    -
    320 
    -
    321  Canvas->setPixelColor(layer.widthOffset+x, layer.hightOffset+y, clr_0);
    -
    322  }
    -
    323  }
    -
    324  }
    -
    325 }
    -
    326 
    -
    327 void PaintingArea::createTempLayerAfter(int idx){
    -
    328  if(idx>=0){
    -
    329  LayerObject newLayer;
    -
    330  newLayer.alpha = 255;
    -
    331  newLayer.hight = layerBundle[idx].hight;
    -
    332  newLayer.width = layerBundle[idx].width;
    -
    333  newLayer.hightOffset = layerBundle[idx].hightOffset;
    -
    334  newLayer.widthOffset = layerBundle[idx].widthOffset;
    -
    335  newLayer.image = layerBundle[idx].image->getDeepCopy();
    -
    336  layerBundle.insert(layerBundle.begin()+idx+1,newLayer);
    -
    337  }
    -
    338 }
    +
    278  QPainter painter(this);
    +
    279  QRect dirtyRec = event->rect();
    +
    280  painter.drawImage(dirtyRec, *Canvas, dirtyRec);
    +
    281  update();
    +
    282 }
    +
    283 
    +
    284 // Resize the image to slightly larger then the main window
    +
    285 // to cut down on the need to resize the image
    +
    286 void PaintingArea::resizeEvent(QResizeEvent*event){
    +
    287  //TODO wait till tool works
    +
    288  update();
    +
    289 }
    +
    290 
    +
    291 void PaintingArea::resizeImage(QImage*image_res, const QSize &newSize){
    +
    292  //TODO implement
    +
    293 }
    +
    294 
    +
    295 void PaintingArea::activateUpperLayer(){
    +
    296  if(activeLayer!=-1 && activeLayer<layerBundle.size()-1) {
    +
    297  std::swap(layerBundle[activeLayer], layerBundle[activeLayer+1]);
    +
    298  activeLayer++;
    +
    299  }
    +
    300 }
    +
    301 
    +
    302 void PaintingArea::activateLowerLayer(){
    +
    303  if(activeLayer!=-1 && activeLayer>0) {
    +
    304  std::swap(layerBundle[activeLayer], layerBundle[activeLayer-1]);
    +
    305  activeLayer--;
    +
    306  }
    +
    307 }
    +
    308 
    +
    309 void PaintingArea::assembleLayers(bool forSaving){
    +
    310  if(forSaving) {
    +
    311  Canvas->fill(Qt::GlobalColor::transparent);
    +
    312  }else{
    +
    313  Canvas->fill(Qt::GlobalColor::black);
    +
    314  }
    +
    315  for(size_t i=0; i<layerBundle.size(); i++) {
    +
    316  LayerObject layer = layerBundle[i];
    +
    317  QImage cpy = layer.image->getDisplayable(layer.alpha);
    +
    318  QColor clr_0;
    +
    319  QColor clr_1;
    +
    320  for(int y=0; y<layer.height; y++) {
    +
    321  if(layer.heightOffset+y<0) continue;
    +
    322  if(layer.heightOffset+y>=maxHeight) break;
    +
    323  for(int x=0; x<layer.width; x++) {
    +
    324  if(layer.widthOffset+x<0) continue;
    +
    325  if(layer.widthOffset+x>=maxWidth) break;
    +
    326  clr_0=Canvas->pixelColor(layer.widthOffset+x, layer.heightOffset+y);
    +
    327  clr_1=cpy.pixelColor(x,y);
    +
    328  float t = static_cast<float>(clr_1.alpha())/255.f;
    +
    329  int r =static_cast<int>(static_cast<float>(clr_1.red())*(t)+static_cast<float>(clr_0.red())*(1.f-t)+0.5f);
    +
    330  int g =static_cast<int>(static_cast<float>(clr_1.green())*(t)+static_cast<float>(clr_0.green())*(1.f-t)+0.5f);
    +
    331  int b =static_cast<int>(static_cast<float>(clr_1.blue())*(t)+static_cast<float>(clr_0.blue()*(1.f-t))+0.5f);
    +
    332  int a =std::min(clr_0.alpha()+clr_1.alpha(), 255);
    +
    333  clr_0.setRed(r);
    +
    334  clr_0.setGreen(g);
    +
    335  clr_0.setBlue(b);
    +
    336  clr_0.setAlpha(a);
    +
    337 
    +
    338  Canvas->setPixelColor(layer.widthOffset+x, layer.heightOffset+y, clr_0);
    +
    339  }
    +
    340  }
    +
    341  }
    +
    342 }
    +
    343 
    +
    344 void PaintingArea::createTempLayerAfter(int idx){
    +
    345  if(idx>=0) {
    +
    346  LayerObject newLayer;
    +
    347  newLayer.alpha = 255;
    +
    348  newLayer.height = layerBundle[idx].height;
    +
    349  newLayer.width = layerBundle[idx].width;
    +
    350  newLayer.heightOffset = layerBundle[idx].heightOffset;
    +
    351  newLayer.widthOffset = layerBundle[idx].widthOffset;
    +
    352  newLayer.image = layerBundle[idx].image->getDeepCopy();
    +
    353  layerBundle.insert(layerBundle.begin()+idx+1,newLayer);
    +
    354  }
    +
    355 }
    +
    int getWidthOfActive()
    The getWidthOfActive gets the horizontal dimensions of the active layer.
    +
    void createCircleTool()
    virtual void onMouseRightPressed(int x, int y)
    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on....
    Definition: IntelliTool.cpp:14
    virtual void onMouseLeftReleased(int x, int y)
    A function managing the left click Released of a Mouse. Call this in child classes!
    Definition: IntelliTool.cpp:32
    ImageType
    The Types, which an Image can be.
    Definition: IntelliImage.h:14
    -
    int addLayer(int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
    -
    int getWidthActiveLayer()
    -
    void mouseReleaseEvent(QMouseEvent *event) override
    +
    int addLayer(int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
    The addLayer adds a layer to the current project/ painting area.
    +
    void mouseReleaseEvent(QMouseEvent *event) override
    +
    void createRectangleTool()
    virtual void onMouseLeftPressed(int x, int y)
    A function managing the left click Pressed of a Mouse. Resetting the current draw....
    Definition: IntelliTool.cpp:25
    -
    bool open(const QString &fileName)
    - +
    bool open(const QString &fileName)
    The open method is used for loading a picture into the current layer.
    +
    virtual bool loadImage(const QString &fileName)
    A function that loads and sclaes an image to the fitting dimensions.
    -
    void setLayerToActive(int index)
    -
    int getHeightActiveLayer()
    -
    void floodFill(int r, int g, int b, int a)
    +
    void setLayerToActive(int index)
    The setLayerToActive method marks a specific layer as active.
    +
    void floodFill(int r, int g, int b, int a)
    The floodFill method fills a the active layer with a given color.
    The IntelliToolPlainTool class represents a tool to fill the whole canvas with one color.
    void setSecondColor(QColor Color)
    A function to set the secondary color.
    The IntelliShapedImage manages a Shapedimage.
    QColor getSecondColor()
    A function to read the secondary selected color.
    -
    bool save(const QString &fileName, const char *fileFormat)
    +
    int heightOffset
    Definition: PaintingArea.h:29
    +
    bool save(const QString &fileName, const char *fileFormat)
    The save method is used for exporting the current project as one picture.
    +
    int getHeightOfActive()
    The getHeightOfActive gets the vertical dimensions of the active layer.
    void switchColors()
    A function switching primary and secondary color.
    virtual QImage getDisplayable(const QSize &displaySize, int alpha)=0
    A function returning the displayable ImageData in a requested transparence and size.
    -
    void createPlainTool()
    -
    void wheelEvent(QWheelEvent *event) override
    - -
    void deleteLayer(int index)
    -
    void createPenTool()
    +
    void createPlainTool()
    +
    void wheelEvent(QWheelEvent *event) override
    +
    The LayerObject struct holds all the information needed to construct a layer.
    Definition: PaintingArea.h:24
    +
    void deleteLayer(int index)
    The deleteLayer method removes a layer at a given index.
    +
    void createPenTool()
    -
    void mousePressEvent(QMouseEvent *event) override
    +
    void mousePressEvent(QMouseEvent *event) override
    - -
    void createLineTool()
    + +
    The IntelliToolRectangle class represents a tool to draw a rectangle.
    +
    void createLineTool()
    The IntelliToolPen class represents a tool to draw a line.
    -
    void colorPickerSetSecondColor()
    +
    void colorPickerSetSecondColor()
    The colorPickerSetSecondColor calls the QTColorPicker to determine the secondary drawing color.
    virtual void onMouseRightReleased(int x, int y)
    A function managing the right click Released of a Mouse. Merging the Canvas to Active....
    Definition: IntelliTool.cpp:21
    -
    void colorPickerSetFirstColor()
    -
    void colorPickerSwitchColor()
    - +
    void colorPickerSetFirstColor()
    The colorPickerSetFirstColor calls the QTColorPicker to determine the primary drawing color.
    +
    void colorPickerSwitchColor()
    The colorPickerSwitchColor swaps the primary color with the secondary drawing color.
    + -
    ~PaintingArea() override
    -
    void mouseMoveEvent(QMouseEvent *event) override
    +
    ~PaintingArea() override
    This deconstructor is used to clear up the memory and remove the currently active window.
    +
    void mouseMoveEvent(QMouseEvent *event) override
    void setFirstColor(QColor Color)
    A function to set the primary color.
    -
    void slotDeleteActiveLayer()
    +
    void slotDeleteActiveLayer()
    The slotDeleteActiveLayer method handles the deletion of the active layer.
    -
    void moveActiveLayer(int idx)
    -
    PaintingArea(int maxWidth=600, int maxHeight=600, QWidget *parent=nullptr)
    +
    void createPolygonTool()
    +
    void moveActiveLayer(int idx)
    The moveActiveLayer moves the active layer to a specific position in the layer stack.
    +
    PaintingArea(int maxWidth=600, int maxHeight=600, QWidget *parent=nullptr)
    PaintingArea is the constructor of the PaintingArea class, which initiates the working environment.
    QColor getFirstColor()
    A function to read the primary selected color.
    - -
    void slotActivateLayer(int a)
    -
    void paintEvent(QPaintEvent *event) override
    -
    void setAlphaOfLayer(int index, int alpha)
    -
    IntelliImage * image
    Definition: PaintingArea.h:17
    -
    void resizeEvent(QResizeEvent *event) override
    + +
    void createFloodFillTool()
    +
    void slotActivateLayer(int a)
    The slotActivateLayer method handles the event of selecting one layer as active.
    +
    void paintEvent(QPaintEvent *event) override
    +
    void setAlphaOfLayer(int index, int alpha)
    The setAlphaOfLayer method sets the alpha value of a specific layer.
    +
    IntelliImage * image
    Definition: PaintingArea.h:25
    +
    void resizeEvent(QResizeEvent *event) override
    The IntelliToolFloodFill class represents a tool to flood FIll a certian area.
    -
    void movePositionActive(int x, int y)
    +
    The IntelliToolCircle class represents a tool to draw a circle.
    +
    void movePositionActive(int x, int y)
    The movePositionActive method moves the active layer to certain position.
    An abstract class which manages the basic IntelliImage operations.
    Definition: IntelliImage.h:24
    virtual void onMouseMoved(int x, int y)
    A function managing the mouse moved event. Call this in child classes!
    Definition: IntelliTool.cpp:41
    - +
    The IntelliToolPolygon managed the Drawing of Polygonforms.
    virtual void calculateVisiblity()=0
    An abstract function that calculates the visiblity of the Image data if needed.
    virtual void onWheelScrolled(int value)
    A function managing the scroll event. A positive value means scrolling outwards. Call this in child c...
    Definition: IntelliTool.cpp:46
    The IntelliRasterImage manages a Rasterimage.
    diff --git a/docs/html/_painting_area_8h.html b/docs/html/_painting_area_8h.html index bb57f2f..258489a 100644 --- a/docs/html/_painting_area_8h.html +++ b/docs/html/_painting_area_8h.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -118,8 +118,10 @@ This graph shows which files directly or indirectly include this file:

    Classes

    struct  LayerObject + The LayerObject struct holds all the information needed to construct a layer. More...
      class  PaintingArea + The PaintingArea class manages the methods and stores information about the current painting area, which is the currently opened project. More...
      diff --git a/docs/html/_painting_area_8h_source.html b/docs/html/_painting_area_8h_source.html index e1874c1..21a5b94 100644 --- a/docs/html/_painting_area_8h_source.html +++ b/docs/html/_painting_area_8h_source.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -105,143 +105,152 @@ $(document).ready(function(){initNavTree('_painting_area_8h_source.html','');});
    13 #include "Tool/IntelliTool.h"
    15 
    -
    16 struct LayerObject{
    - -
    18  int width;
    -
    19  int hight;
    - - -
    22  int alpha=255;
    -
    23 };
    -
    24 
    -
    25 class PaintingArea : public QWidget
    -
    26 {
    -
    27  // Declares our class as a QObject which is the base class
    -
    28  // for all Qt objects
    -
    29  // QObjects handle events
    -
    30  Q_OBJECT
    -
    31  friend IntelliTool;
    -
    32 public:
    -
    33  PaintingArea(int maxWidth=600, int maxHeight=600, QWidget *parent = nullptr);
    -
    34  ~PaintingArea() override;
    -
    35 
    -
    36  // Handles all events
    -
    37  bool open(const QString &fileName);
    -
    38  bool save(const QString &fileName, const char *fileFormat);
    -
    39 
    -
    40  int addLayer(int width, int height, int widthOffset=0, int heightOffset=0, ImageType type = ImageType::Raster_Image);
    -
    41  int addLayerAt(int idx, int width, int height, int widthOffset=0, int heightOffset=0, ImageType type = ImageType::Raster_Image);
    -
    42  void deleteLayer(int index);
    -
    43  void setLayerToActive(int index);
    -
    44  void setAlphaOfLayer(int index, int alpha);
    -
    45  void floodFill(int r, int g, int b, int a);
    -
    46  void movePositionActive(int x, int y);
    -
    47  void moveActiveLayer(int idx);
    -
    48 
    -
    49  //change properties of colorPicker
    - - - -
    53 
    -
    54  //create tools
    -
    55  void createPenTool();
    -
    56  void createPlainTool();
    -
    57  void createLineTool();
    +
    24 struct LayerObject{
    + +
    26  int width;
    +
    27  int height;
    + + +
    30  int alpha=255;
    +
    31 };
    +
    32 
    +
    36 class PaintingArea : public QWidget
    +
    37 {
    +
    38  // Declares our class as a QObject which is the base class
    +
    39  // for all Qt objects
    +
    40  // QObjects handle events
    +
    41  Q_OBJECT
    +
    42  friend IntelliTool;
    +
    43 public:
    +
    50  PaintingArea(int maxWidth=600, int maxHeight=600, QWidget *parent = nullptr);
    +
    51 
    +
    55  ~PaintingArea() override;
    +
    56 
    +
    57  // Handles all events
    58 
    -
    59  //get Width and Height of active Layer
    -
    60  int getWidthActiveLayer();
    - -
    62 
    -
    63 public slots:
    -
    64  // Events to handle
    -
    65  void slotActivateLayer(int a);
    -
    66  void slotDeleteActiveLayer();
    -
    67 
    -
    68 protected:
    -
    69  void mousePressEvent(QMouseEvent *event) override;
    -
    70  void mouseMoveEvent(QMouseEvent *event) override;
    -
    71  void mouseReleaseEvent(QMouseEvent *event) override;
    +
    64  bool open(const QString &fileName);
    +
    71  bool save(const QString &fileName, const char *fileFormat);
    72 
    -
    73  void wheelEvent(QWheelEvent *event) override;
    -
    74  // Updates the painting area where we are painting
    -
    75  void paintEvent(QPaintEvent *event) override;
    -
    76 
    -
    77  // Makes sure the area we are drawing on remains
    -
    78  // as large as the widget
    -
    79  void resizeEvent(QResizeEvent *event) override;
    -
    80 
    -
    81 private:
    -
    82  void setUp(int maxWidth, int maxHeight);
    -
    83  void activateUpperLayer();
    -
    84  void activateLowerLayer();
    -
    85 
    -
    86  QImage* Canvas;
    -
    87  int maxWidth;
    -
    88  int maxHeight;
    -
    89 
    -
    90  IntelliTool* Tool;
    -
    91  IntelliColorPicker colorPicker;
    -
    92 
    -
    93  std::vector<LayerObject> layerBundle;
    -
    94  int activeLayer=-1;
    -
    95 
    -
    96  void assembleLayers(bool forSaving=false);
    -
    97 
    -
    98  void resizeImage(QImage *image_res, const QSize &newSize);
    -
    99 
    -
    100  //Helper for Tool
    -
    101  void createTempLayerAfter(int idx);
    -
    102 };
    -
    103 
    -
    104 #endif
    +
    82  int addLayer(int width, int height, int widthOffset=0, int heightOffset=0, ImageType type = ImageType::Raster_Image);
    +
    93  int addLayerAt(int idx, int width, int height, int widthOffset=0, int heightOffset=0, ImageType type = ImageType::Raster_Image);
    +
    98  void deleteLayer(int index);
    +
    103  void setLayerToActive(int index);
    +
    109  void setAlphaOfLayer(int index, int alpha);
    +
    117  void floodFill(int r, int g, int b, int a);
    +
    123  void movePositionActive(int x, int y);
    +
    128  void moveActiveLayer(int idx);
    +
    129 
    +
    130  //change properties of colorPicker
    + + +
    142  void colorPickerSwitchColor();
    +
    143 
    +
    144  // Create tools
    +
    145  void createPenTool();
    +
    146  void createPlainTool();
    +
    147  void createLineTool();
    +
    148  void createRectangleTool();
    +
    149  void createCircleTool();
    +
    150  void createPolygonTool();
    +
    151  void createFloodFillTool();
    +
    152 
    +
    157  int getWidthOfActive();
    +
    162  int getHeightOfActive();
    +
    163 
    +
    164 public slots:
    +
    165  // Events to handle
    +
    170  void slotActivateLayer(int a);
    +
    174  void slotDeleteActiveLayer();
    +
    175 
    +
    176 protected:
    +
    177  void mousePressEvent(QMouseEvent *event) override;
    +
    178  void mouseMoveEvent(QMouseEvent *event) override;
    +
    179  void mouseReleaseEvent(QMouseEvent *event) override;
    +
    180 
    +
    181  void wheelEvent(QWheelEvent *event) override;
    +
    182  // Updates the painting area where we are painting
    +
    183  void paintEvent(QPaintEvent *event) override;
    +
    184 
    +
    185  // Makes sure the area we are drawing on remains
    +
    186  // as large as the widget
    +
    187  void resizeEvent(QResizeEvent *event) override;
    +
    188 
    +
    189 private:
    +
    190  void setUp(int maxWidth, int maxHeight);
    +
    191  void activateUpperLayer();
    +
    192  void activateLowerLayer();
    +
    193 
    +
    194  QImage* Canvas;
    +
    195  int maxWidth;
    +
    196  int maxHeight;
    +
    197 
    +
    198  IntelliTool* Tool;
    +
    199  IntelliColorPicker colorPicker;
    +
    200 
    +
    201  std::vector<LayerObject> layerBundle;
    +
    202  int activeLayer=-1;
    +
    203 
    +
    204  void assembleLayers(bool forSaving=false);
    +
    205 
    +
    206  void resizeImage(QImage *image_res, const QSize &newSize);
    +
    207 
    +
    208  // Helper for Tool
    +
    209  void createTempLayerAfter(int idx);
    +
    210 };
    +
    211 
    +
    212 #endif
    +
    int getWidthOfActive()
    The getWidthOfActive gets the horizontal dimensions of the active layer.
    +
    void createCircleTool()
    ImageType
    The Types, which an Image can be.
    Definition: IntelliImage.h:14
    -
    int addLayer(int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
    -
    int getWidthActiveLayer()
    -
    void mouseReleaseEvent(QMouseEvent *event) override
    +
    int addLayer(int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
    The addLayer adds a layer to the current project/ painting area.
    +
    void mouseReleaseEvent(QMouseEvent *event) override
    +
    void createRectangleTool()
    -
    bool open(const QString &fileName)
    - -
    void setLayerToActive(int index)
    -
    int getHeightActiveLayer()
    -
    void floodFill(int r, int g, int b, int a)
    -
    bool save(const QString &fileName, const char *fileFormat)
    -
    void createPlainTool()
    -
    void wheelEvent(QWheelEvent *event) override
    - - -
    void deleteLayer(int index)
    -
    void createPenTool()
    -
    void mousePressEvent(QMouseEvent *event) override
    +
    bool open(const QString &fileName)
    The open method is used for loading a picture into the current layer.
    + +
    void setLayerToActive(int index)
    The setLayerToActive method marks a specific layer as active.
    +
    void floodFill(int r, int g, int b, int a)
    The floodFill method fills a the active layer with a given color.
    +
    int heightOffset
    Definition: PaintingArea.h:29
    +
    bool save(const QString &fileName, const char *fileFormat)
    The save method is used for exporting the current project as one picture.
    +
    int getHeightOfActive()
    The getHeightOfActive gets the vertical dimensions of the active layer.
    +
    void createPlainTool()
    +
    void wheelEvent(QWheelEvent *event) override
    +
    The PaintingArea class manages the methods and stores information about the current painting area,...
    Definition: PaintingArea.h:36
    +
    The LayerObject struct holds all the information needed to construct a layer.
    Definition: PaintingArea.h:24
    +
    void deleteLayer(int index)
    The deleteLayer method removes a layer at a given index.
    +
    void createPenTool()
    +
    void mousePressEvent(QMouseEvent *event) override
    - -
    void createLineTool()
    -
    void colorPickerSetSecondColor()
    -
    void colorPickerSetFirstColor()
    -
    void colorPickerSwitchColor()
    + +
    void createLineTool()
    +
    void colorPickerSetSecondColor()
    The colorPickerSetSecondColor calls the QTColorPicker to determine the secondary drawing color.
    +
    void colorPickerSetFirstColor()
    The colorPickerSetFirstColor calls the QTColorPicker to determine the primary drawing color.
    +
    void colorPickerSwitchColor()
    The colorPickerSwitchColor swaps the primary color with the secondary drawing color.
    - -
    ~PaintingArea() override
    -
    void mouseMoveEvent(QMouseEvent *event) override
    + +
    ~PaintingArea() override
    This deconstructor is used to clear up the memory and remove the currently active window.
    +
    void mouseMoveEvent(QMouseEvent *event) override
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    -
    void slotDeleteActiveLayer()
    -
    int addLayerAt(int idx, int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
    -
    void moveActiveLayer(int idx)
    -
    PaintingArea(int maxWidth=600, int maxHeight=600, QWidget *parent=nullptr)
    - -
    void slotActivateLayer(int a)
    +
    void slotDeleteActiveLayer()
    The slotDeleteActiveLayer method handles the deletion of the active layer.
    +
    void createPolygonTool()
    +
    int addLayerAt(int idx, int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
    The addLayerAt adds a layer to the current project/ painting area at a specific position in the layer...
    +
    void moveActiveLayer(int idx)
    The moveActiveLayer moves the active layer to a specific position in the layer stack.
    +
    PaintingArea(int maxWidth=600, int maxHeight=600, QWidget *parent=nullptr)
    PaintingArea is the constructor of the PaintingArea class, which initiates the working environment.
    + +
    void createFloodFillTool()
    +
    void slotActivateLayer(int a)
    The slotActivateLayer method handles the event of selecting one layer as active.
    The IntelliColorPicker manages the selected colors for one whole project.
    -
    void paintEvent(QPaintEvent *event) override
    -
    void setAlphaOfLayer(int index, int alpha)
    -
    IntelliImage * image
    Definition: PaintingArea.h:17
    -
    void resizeEvent(QResizeEvent *event) override
    -
    void movePositionActive(int x, int y)
    +
    void paintEvent(QPaintEvent *event) override
    +
    void setAlphaOfLayer(int index, int alpha)
    The setAlphaOfLayer method sets the alpha value of a specific layer.
    +
    IntelliImage * image
    Definition: PaintingArea.h:25
    +
    void resizeEvent(QResizeEvent *event) override
    +
    void movePositionActive(int x, int y)
    The movePositionActive method moves the active layer to certain position.
    An abstract class which manages the basic IntelliImage operations.
    Definition: IntelliImage.h:24
    -
    virtual ~IntelliColorPicker()
    IntelliColorPicker destructor clears up his used memory, if there is some.
    QColor getSecondColor()
    A function to read the secondary selected color.
    - +
    The PaintingArea class manages the methods and stores information about the current painting area,...
    Definition: PaintingArea.h:36
    An abstract class that manages the basic events, like mouse clicks or scrolls events.
    Definition: IntelliTool.h:13
    QColor getFirstColor()
    A function to read the primary selected color.
    diff --git a/docs/html/annotated.html b/docs/html/annotated.html index 655f234..817bc92 100644 --- a/docs/html/annotated.html +++ b/docs/html/annotated.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -94,7 +94,7 @@ $(document).ready(function(){initNavTree('annotated.html','');}); - + @@ -105,8 +105,8 @@ $(document).ready(function(){initNavTree('annotated.html','');}); - - + +
     CIntelliColorPickerThe IntelliColorPicker manages the selected colors for one whole project
     CIntelliImageAn abstract class which manages the basic IntelliImage operations
     CIntelliPhotoGui
     CIntelliPhotoGuiHandles the graphical user interface for the intelliPhoto program
     CIntelliRasterImageThe IntelliRasterImage manages a Rasterimage
     CIntelliShapedImageThe IntelliShapedImage manages a Shapedimage
     CIntelliToolAn abstract class that manages the basic events, like mouse clicks or scrolls events
     CIntelliToolPlainToolTool to fill the whole canvas with one color
     CIntelliToolPolygonThe IntelliToolPolygon managed the Drawing of Polygonforms
     CIntelliToolRectangleTool to draw a rectangle
     CLayerObject
     CPaintingArea
     CLayerObjectThe LayerObject struct holds all the information needed to construct a layer
     CPaintingAreaManages the methods and stores information about the current painting area, which is the currently opened project
     CTriangleThe Triangle struct holds the 3 vertices of a triangle
    diff --git a/docs/html/class_intelli_color_picker-members.html b/docs/html/class_intelli_color_picker-members.html index 45f31dc..3548ba9 100644 --- a/docs/html/class_intelli_color_picker-members.html +++ b/docs/html/class_intelli_color_picker-members.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/class_intelli_color_picker.html b/docs/html/class_intelli_color_picker.html index e004316..087b636 100644 --- a/docs/html/class_intelli_color_picker.html +++ b/docs/html/class_intelli_color_picker.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/class_intelli_color_picker_a437a6f20bf2fc0a4cbaf4c030c2a26d9_icgraph.dot b/docs/html/class_intelli_color_picker_a437a6f20bf2fc0a4cbaf4c030c2a26d9_icgraph.dot index 6b738d0..3370f98 100644 --- a/docs/html/class_intelli_color_picker_a437a6f20bf2fc0a4cbaf4c030c2a26d9_icgraph.dot +++ b/docs/html/class_intelli_color_picker_a437a6f20bf2fc0a4cbaf4c030c2a26d9_icgraph.dot @@ -6,5 +6,5 @@ digraph "IntelliColorPicker::switchColors" rankdir="RL"; Node1 [label="IntelliColorPicker\l::switchColors",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function switching primary and secondary color."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="PaintingArea::colorPicker\lSwitchColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a66115307ff4a99cd7ca16423c5c8ecfb",tooltip=" "]; + Node2 [label="PaintingArea::colorPicker\lSwitchColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a66115307ff4a99cd7ca16423c5c8ecfb",tooltip="The colorPickerSwitchColor swaps the primary color with the secondary drawing color."]; } diff --git a/docs/html/class_intelli_color_picker_a55568fbf5dc783f06284b7031ffe9415_icgraph.dot b/docs/html/class_intelli_color_picker_a55568fbf5dc783f06284b7031ffe9415_icgraph.dot index b8eaa57..7857846 100644 --- a/docs/html/class_intelli_color_picker_a55568fbf5dc783f06284b7031ffe9415_icgraph.dot +++ b/docs/html/class_intelli_color_picker_a55568fbf5dc783f06284b7031ffe9415_icgraph.dot @@ -6,5 +6,7 @@ digraph "IntelliColorPicker::getSecondColor" rankdir="RL"; Node1 [label="IntelliColorPicker\l::getSecondColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function to read the secondary selected color."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="PaintingArea::colorPicker\lSetSecondColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#ae261acaaa346610dfed489dbac17e789",tooltip=" "]; + Node2 [label="PaintingArea::colorPicker\lSetSecondColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#ae261acaaa346610dfed489dbac17e789",tooltip="The colorPickerSetSecondColor calls the QTColorPicker to determine the secondary drawing color."]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliToolPolygon\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21",tooltip="A function managing the left click released of a mouse. Merging the fill to the active layer."]; } diff --git a/docs/html/class_intelli_color_picker_a7e2ddbbbfbed383f06b24e5bf6b27ae8_icgraph.dot b/docs/html/class_intelli_color_picker_a7e2ddbbbfbed383f06b24e5bf6b27ae8_icgraph.dot index 92e64b9..cc08d61 100644 --- a/docs/html/class_intelli_color_picker_a7e2ddbbbfbed383f06b24e5bf6b27ae8_icgraph.dot +++ b/docs/html/class_intelli_color_picker_a7e2ddbbbfbed383f06b24e5bf6b27ae8_icgraph.dot @@ -6,5 +6,5 @@ digraph "IntelliColorPicker::setFirstColor" rankdir="RL"; Node1 [label="IntelliColorPicker\l::setFirstColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function to set the primary color."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="PaintingArea::colorPicker\lSetFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a4735d4cf1dc58a9096d904e74c39c4df",tooltip=" "]; + Node2 [label="PaintingArea::colorPicker\lSetFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a4735d4cf1dc58a9096d904e74c39c4df",tooltip="The colorPickerSetFirstColor calls the QTColorPicker to determine the primary drawing color."]; } diff --git a/docs/html/class_intelli_color_picker_a86bf4a940e4a0e465e30cbdf28748931_icgraph.dot b/docs/html/class_intelli_color_picker_a86bf4a940e4a0e465e30cbdf28748931_icgraph.dot index 0f85c43..a271fd7 100644 --- a/docs/html/class_intelli_color_picker_a86bf4a940e4a0e465e30cbdf28748931_icgraph.dot +++ b/docs/html/class_intelli_color_picker_a86bf4a940e4a0e465e30cbdf28748931_icgraph.dot @@ -6,5 +6,5 @@ digraph "IntelliColorPicker::setSecondColor" rankdir="RL"; Node1 [label="IntelliColorPicker\l::setSecondColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function to set the secondary color."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="PaintingArea::colorPicker\lSetSecondColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#ae261acaaa346610dfed489dbac17e789",tooltip=" "]; + Node2 [label="PaintingArea::colorPicker\lSetSecondColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#ae261acaaa346610dfed489dbac17e789",tooltip="The colorPickerSetSecondColor calls the QTColorPicker to determine the secondary drawing color."]; } diff --git a/docs/html/class_intelli_color_picker_aae2eb27b928fe9388b9398b0556303b7_icgraph.dot b/docs/html/class_intelli_color_picker_aae2eb27b928fe9388b9398b0556303b7_icgraph.dot index 518b1da..26e1cc5 100644 --- a/docs/html/class_intelli_color_picker_aae2eb27b928fe9388b9398b0556303b7_icgraph.dot +++ b/docs/html/class_intelli_color_picker_aae2eb27b928fe9388b9398b0556303b7_icgraph.dot @@ -6,19 +6,19 @@ digraph "IntelliColorPicker::getFirstColor" rankdir="RL"; Node1 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function to read the primary selected color."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="PaintingArea::colorPicker\lSetFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a4735d4cf1dc58a9096d904e74c39c4df",tooltip=" "]; + Node2 [label="PaintingArea::colorPicker\lSetFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a4735d4cf1dc58a9096d904e74c39c4df",tooltip="The colorPickerSetFirstColor calls the QTColorPicker to determine the primary drawing color."]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolPolygon\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node3 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9",tooltip="A function managing the left click pressed of a mouse. Filling the whole canvas."]; Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9",tooltip="A function managing the left click pressed of a mouse. Filling the whole canvas."]; + Node4 [label="IntelliToolFloodFill\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961",tooltip="A function managing the left click pressed of a mouse. Sets the point to flood fill around and does t..."]; Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliToolFloodFill\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961",tooltip="A function managing the left click pressed of a mouse. Sets the point to flood fill around and does t..."]; + Node5 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205",tooltip="A function managing the left click pressed of a mouse. Starting the drawing procedure."]; Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node6 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205",tooltip="A function managing the left click pressed of a mouse. Starting the drawing procedure."]; + Node6 [label="IntelliToolPolygon\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d",tooltip="A function managing the left click pressed of a mouse. Setting polygon points."]; Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node7 [label="IntelliToolLine::onMouse\lLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846",tooltip="A function managing the left click pressed of a mouse. Sets the starting point of the line."]; Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node8 [label="IntelliToolPolygon\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node8 [label="IntelliToolPolygon\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21",tooltip="A function managing the left click released of a mouse. Merging the fill to the active layer."]; Node1 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node9 [label="IntelliToolPen::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2",tooltip="A function managing the mouse moved event. To draw the line."]; Node1 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; diff --git a/docs/html/class_intelli_image-members.html b/docs/html/class_intelli_image-members.html index c3adfde..1381841 100644 --- a/docs/html/class_intelli_image-members.html +++ b/docs/html/class_intelli_image-members.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/class_intelli_image.html b/docs/html/class_intelli_image.html index c3d302a..db8463b 100644 --- a/docs/html/class_intelli_image.html +++ b/docs/html/class_intelli_image.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/class_intelli_image_a2e787f1b333b59401643936ebb3dcfe1_icgraph.dot b/docs/html/class_intelli_image_a2e787f1b333b59401643936ebb3dcfe1_icgraph.dot index ebea63b..40e51a4 100644 --- a/docs/html/class_intelli_image_a2e787f1b333b59401643936ebb3dcfe1_icgraph.dot +++ b/docs/html/class_intelli_image_a2e787f1b333b59401643936ebb3dcfe1_icgraph.dot @@ -6,7 +6,7 @@ digraph "IntelliImage::drawPoint" rankdir="RL"; Node1 [label="IntelliImage::drawPoint",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliToolPolygon\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node2 [label="IntelliToolPolygon\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d",tooltip="A function managing the left click pressed of a mouse. Setting polygon points."]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node3 [label="IntelliToolLine::onMouse\lLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846",tooltip="A function managing the left click pressed of a mouse. Sets the starting point of the line."]; } diff --git a/docs/html/class_intelli_image_a6be622810dc2bc756054bb5769becb06_icgraph.dot b/docs/html/class_intelli_image_a6be622810dc2bc756054bb5769becb06_icgraph.dot index d5716af..ac57cc0 100644 --- a/docs/html/class_intelli_image_a6be622810dc2bc756054bb5769becb06_icgraph.dot +++ b/docs/html/class_intelli_image_a6be622810dc2bc756054bb5769becb06_icgraph.dot @@ -6,15 +6,13 @@ digraph "IntelliImage::drawPlain" rankdir="RL"; Node1 [label="IntelliImage::drawPlain",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function that clears the whole image in a given Color."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="PaintingArea::floodFill",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#aeb5eb394b979ea90f2be9849fdda1774",tooltip=" "]; + Node2 [label="PaintingArea::floodFill",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#aeb5eb394b979ea90f2be9849fdda1774",tooltip="The floodFill method fills a the active layer with a given color."]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolPolygon\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node3 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9",tooltip="A function managing the left click pressed of a mouse. Filling the whole canvas."]; Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9",tooltip="A function managing the left click pressed of a mouse. Filling the whole canvas."]; + Node4 [label="IntelliToolRectangle\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#a4b5931071e21eb6949ffe357315e408b",tooltip="A function managing the mouse moved event.Drawing a rectangle to currrent mouse position."]; Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliToolRectangle\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#a4b5931071e21eb6949ffe357315e408b",tooltip="A function managing the mouse moved event.Drawing a rectangle to currrent mouse position."]; + Node5 [label="IntelliToolCircle::\lonMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#a90ee58c5390a86afc75c14ca79b91d7b",tooltip="A function managing the mouse moved event. Draws a circle with radius of eulerian norm of mouse posit..."]; Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node6 [label="IntelliToolCircle::\lonMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#a90ee58c5390a86afc75c14ca79b91d7b",tooltip="A function managing the mouse moved event. Draws a circle with radius of eulerian norm of mouse posit..."]; - Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node7 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip="A function managing the mouse moved event. Drawing a Line from the startpoint to the current mouse po..."]; + Node6 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip="A function managing the mouse moved event. Drawing a Line from the startpoint to the current mouse po..."]; } diff --git a/docs/html/class_intelli_image_aebbced93f4744fad81b7f141b21f4ab2_icgraph.dot b/docs/html/class_intelli_image_aebbced93f4744fad81b7f141b21f4ab2_icgraph.dot index a28d0a3..8765154 100644 --- a/docs/html/class_intelli_image_aebbced93f4744fad81b7f141b21f4ab2_icgraph.dot +++ b/docs/html/class_intelli_image_aebbced93f4744fad81b7f141b21f4ab2_icgraph.dot @@ -6,15 +6,15 @@ digraph "IntelliImage::calculateVisiblity" rankdir="RL"; Node1 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliToolPolygon\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node2 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9",tooltip="A function managing the left click pressed of a mouse. Filling the whole canvas."]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9",tooltip="A function managing the left click pressed of a mouse. Filling the whole canvas."]; + Node3 [label="IntelliToolFloodFill\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961",tooltip="A function managing the left click pressed of a mouse. Sets the point to flood fill around and does t..."]; Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolFloodFill\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961",tooltip="A function managing the left click pressed of a mouse. Sets the point to flood fill around and does t..."]; + Node4 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205",tooltip="A function managing the left click pressed of a mouse. Starting the drawing procedure."]; Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205",tooltip="A function managing the left click pressed of a mouse. Starting the drawing procedure."]; + Node5 [label="IntelliToolRectangle\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#ae03c307ccf66cbe3fd59e3657712368d",tooltip="A function managing the left click pressed of a mouse. Setting the originCorner and draws a rectangle..."]; Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node6 [label="IntelliToolRectangle\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#ae03c307ccf66cbe3fd59e3657712368d",tooltip="A function managing the left click pressed of a mouse. Setting the originCorner and draws a rectangle..."]; + Node6 [label="IntelliToolPolygon\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d",tooltip="A function managing the left click pressed of a mouse. Setting polygon points."]; Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node7 [label="IntelliToolCircle::\lonMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#ae883b8ae833c78a8867e626c600f9639",tooltip="A function managing the left click pressed of a mouse. Sets the middle point of the cricle."]; Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; @@ -27,27 +27,26 @@ digraph "IntelliImage::calculateVisiblity" Node9 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node9 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node9 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node9 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node9 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node9 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node1 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node11 [label="IntelliToolPolygon\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; - Node1 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node12 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; - Node12 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node13 [label="PaintingArea::mouseRelease\lEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a35b5df914acb608cc29717659793359c",tooltip=" "]; - Node12 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node12 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node14 [label="IntelliToolPlainTool\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ac23f5d0f07e42fd7c2ea3fc1347da400",tooltip="A function managing the left click released of a mouse. Merging the fill to the active layer."]; - Node12 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node15 [label="IntelliToolFloodFill\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#a7438ef96c6c36068bce76e2364e8594c",tooltip="A function managing the left click released of a mouse."]; - Node12 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node16 [label="IntelliToolPen::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#abda7a22b9766fa4ad254324a53cab94d",tooltip="A function managing the left click released of a mouse. Merging the drawing to the active layer."]; - Node12 -> Node17 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node17 [label="IntelliToolRectangle\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#a94460e3ff1c19e80bde922c55f53cc43",tooltip="A function managing the left click released of a mouse. Merging the draw to the active layer."]; - Node12 -> Node18 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node18 [label="IntelliToolCircle::\lonMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#ad8e438ec997c57262b5efc2db4cee1a3",tooltip="A function managing the left click released of a mouse."]; - Node12 -> Node19 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node11 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="PaintingArea::mouseRelease\lEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a35b5df914acb608cc29717659793359c",tooltip=" "]; + Node11 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="IntelliToolPlainTool\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ac23f5d0f07e42fd7c2ea3fc1347da400",tooltip="A function managing the left click released of a mouse. Merging the fill to the active layer."]; + Node11 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="IntelliToolFloodFill\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#a7438ef96c6c36068bce76e2364e8594c",tooltip="A function managing the left click released of a mouse."]; + Node11 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="IntelliToolPen::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#abda7a22b9766fa4ad254324a53cab94d",tooltip="A function managing the left click released of a mouse. Merging the drawing to the active layer."]; + Node11 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="IntelliToolRectangle\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#a94460e3ff1c19e80bde922c55f53cc43",tooltip="A function managing the left click released of a mouse. Merging the draw to the active layer."]; + Node11 -> Node17 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="IntelliToolCircle::\lonMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#ad8e438ec997c57262b5efc2db4cee1a3",tooltip="A function managing the left click released of a mouse."]; + Node11 -> Node18 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 [label="IntelliToolPolygon\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21",tooltip="A function managing the left click released of a mouse. Merging the fill to the active layer."]; + Node11 -> Node19 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node19 [label="IntelliToolLine::onMouse\lLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#ac93f76ff20a1c111a403b298bab02482",tooltip="A function managing the left click released of a mouse."]; Node1 -> Node20 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node20 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639",tooltip="A function managing the mouse moved event. Call this in child classes!"]; @@ -65,6 +64,8 @@ digraph "IntelliImage::calculateVisiblity" Node26 [label="IntelliToolCircle::\lonMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#a90ee58c5390a86afc75c14ca79b91d7b",tooltip="A function managing the mouse moved event. Draws a circle with radius of eulerian norm of mouse posit..."]; Node20 -> Node27 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node27 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip="A function managing the mouse moved event. Drawing a Line from the startpoint to the current mouse po..."]; - Node1 -> Node28 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node28 [label="PaintingArea::open",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a1f597740b4d7b4bc2e24c51f8cb0b6eb",tooltip=" "]; + Node20 -> Node28 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node28 [label="IntelliToolPolygon\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a0e3a1135f04c73c159137ae219a38922",tooltip="A function managing the mouse moved event."]; + Node1 -> Node29 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node29 [label="PaintingArea::open",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a1f597740b4d7b4bc2e24c51f8cb0b6eb",tooltip="The open method is used for loading a picture into the current layer."]; } diff --git a/docs/html/class_intelli_image_aec0e9c8184d89dee33fd9adefbd2f8aa_icgraph.dot b/docs/html/class_intelli_image_aec0e9c8184d89dee33fd9adefbd2f8aa_icgraph.dot index d4c90ac..4e1d41c 100644 --- a/docs/html/class_intelli_image_aec0e9c8184d89dee33fd9adefbd2f8aa_icgraph.dot +++ b/docs/html/class_intelli_image_aec0e9c8184d89dee33fd9adefbd2f8aa_icgraph.dot @@ -6,5 +6,5 @@ digraph "IntelliImage::loadImage" rankdir="RL"; Node1 [label="IntelliImage::loadImage",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function that loads and sclaes an image to the fitting dimensions."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="PaintingArea::open",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a1f597740b4d7b4bc2e24c51f8cb0b6eb",tooltip=" "]; + Node2 [label="PaintingArea::open",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a1f597740b4d7b4bc2e24c51f8cb0b6eb",tooltip="The open method is used for loading a picture into the current layer."]; } diff --git a/docs/html/class_intelli_image_af3c859f5c409e37051edfd9e9fbca056_icgraph.dot b/docs/html/class_intelli_image_af3c859f5c409e37051edfd9e9fbca056_icgraph.dot index d91134d..09a88c6 100644 --- a/docs/html/class_intelli_image_af3c859f5c409e37051edfd9e9fbca056_icgraph.dot +++ b/docs/html/class_intelli_image_af3c859f5c409e37051edfd9e9fbca056_icgraph.dot @@ -10,5 +10,5 @@ digraph "IntelliImage::drawPixel" Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node3 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205",tooltip="A function managing the left click pressed of a mouse. Starting the drawing procedure."]; Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolPolygon\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node4 [label="IntelliToolPolygon\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21",tooltip="A function managing the left click released of a mouse. Merging the fill to the active layer."]; } diff --git a/docs/html/class_intelli_image_af8eddbd9aa54c8d37590d1d4bf8dce31_icgraph.dot b/docs/html/class_intelli_image_af8eddbd9aa54c8d37590d1d4bf8dce31_icgraph.dot index 660dc65..1ba597e 100644 --- a/docs/html/class_intelli_image_af8eddbd9aa54c8d37590d1d4bf8dce31_icgraph.dot +++ b/docs/html/class_intelli_image_af8eddbd9aa54c8d37590d1d4bf8dce31_icgraph.dot @@ -6,9 +6,11 @@ digraph "IntelliImage::drawLine" rankdir="RL"; Node1 [label="IntelliImage::drawLine",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function that draws A Line between two given Points in a given color."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliToolPolygon\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node2 [label="IntelliToolPolygon\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d",tooltip="A function managing the left click pressed of a mouse. Setting polygon points."]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolPen::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2",tooltip="A function managing the mouse moved event. To draw the line."]; + Node3 [label="IntelliToolPolygon\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21",tooltip="A function managing the left click released of a mouse. Merging the fill to the active layer."]; Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip="A function managing the mouse moved event. Drawing a Line from the startpoint to the current mouse po..."]; + Node4 [label="IntelliToolPen::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2",tooltip="A function managing the mouse moved event. To draw the line."]; + Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip="A function managing the mouse moved event. Drawing a Line from the startpoint to the current mouse po..."]; } diff --git a/docs/html/class_intelli_photo_gui-members.html b/docs/html/class_intelli_photo_gui-members.html index 7034aba..bbb5fa7 100644 --- a/docs/html/class_intelli_photo_gui-members.html +++ b/docs/html/class_intelli_photo_gui-members.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/class_intelli_photo_gui.html b/docs/html/class_intelli_photo_gui.html index 152a525..1ea221b 100644 --- a/docs/html/class_intelli_photo_gui.html +++ b/docs/html/class_intelli_photo_gui.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -95,6 +95,9 @@ $(document).ready(function(){initNavTree('class_intelli_photo_gui.html','');});
    +

    The IntelliPhotoGui class handles the graphical user interface for the intelliPhoto program. + More...

    +

    #include <IntelliPhotoGui.h>

    Inheritance diagram for IntelliPhotoGui:
    @@ -110,6 +113,7 @@ Collaboration diagram for IntelliPhotoGui:

    Public Member Functions

     IntelliPhotoGui () + The IntelliPhotoGui method is the constructor and is used to create a new instance of the main program window. More...
     

    @@ -118,8 +122,9 @@ Protected Member Functions

     

    Detailed Description

    -
    -

    Definition at line 19 of file IntelliPhotoGui.h.

    +

    The IntelliPhotoGui class handles the graphical user interface for the intelliPhoto program.

    + +

    Definition at line 22 of file IntelliPhotoGui.h.

    Constructor & Destructor Documentation

    ◆ IntelliPhotoGui()

    @@ -136,6 +141,8 @@ Protected Member Functions
    +

    The IntelliPhotoGui method is the constructor and is used to create a new instance of the main program window.

    +

    Definition at line 10 of file IntelliPhotoGui.cpp.

    diff --git a/docs/html/class_intelli_photo_gui__coll__graph.dot b/docs/html/class_intelli_photo_gui__coll__graph.dot index 524d737..3aec454 100644 --- a/docs/html/class_intelli_photo_gui__coll__graph.dot +++ b/docs/html/class_intelli_photo_gui__coll__graph.dot @@ -3,7 +3,7 @@ digraph "IntelliPhotoGui" // LATEX_PDF_SIZE edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; - Node1 [label="IntelliPhotoGui",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliPhotoGui",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The IntelliPhotoGui class handles the graphical user interface for the intelliPhoto program."]; Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="QMainWindow",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; } diff --git a/docs/html/class_intelli_photo_gui__inherit__graph.dot b/docs/html/class_intelli_photo_gui__inherit__graph.dot index 524d737..3aec454 100644 --- a/docs/html/class_intelli_photo_gui__inherit__graph.dot +++ b/docs/html/class_intelli_photo_gui__inherit__graph.dot @@ -3,7 +3,7 @@ digraph "IntelliPhotoGui" // LATEX_PDF_SIZE edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; - Node1 [label="IntelliPhotoGui",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="IntelliPhotoGui",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The IntelliPhotoGui class handles the graphical user interface for the intelliPhoto program."]; Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="QMainWindow",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; } diff --git a/docs/html/class_intelli_raster_image-members.html b/docs/html/class_intelli_raster_image-members.html index 0b7cec4..b029ead 100644 --- a/docs/html/class_intelli_raster_image-members.html +++ b/docs/html/class_intelli_raster_image-members.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/class_intelli_raster_image.html b/docs/html/class_intelli_raster_image.html index b3bd2a1..010eecb 100644 --- a/docs/html/class_intelli_raster_image.html +++ b/docs/html/class_intelli_raster_image.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/class_intelli_shaped_image-members.html b/docs/html/class_intelli_shaped_image-members.html index 4098b26..b2a018f 100644 --- a/docs/html/class_intelli_shaped_image-members.html +++ b/docs/html/class_intelli_shaped_image-members.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/class_intelli_shaped_image.html b/docs/html/class_intelli_shaped_image.html index 4a2806e..6fed452 100644 --- a/docs/html/class_intelli_shaped_image.html +++ b/docs/html/class_intelli_shaped_image.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/class_intelli_tool-members.html b/docs/html/class_intelli_tool-members.html index 989d5e1..8072345 100644 --- a/docs/html/class_intelli_tool-members.html +++ b/docs/html/class_intelli_tool-members.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/class_intelli_tool.html b/docs/html/class_intelli_tool.html index a58a7b2..a5f8194 100644 --- a/docs/html/class_intelli_tool.html +++ b/docs/html/class_intelli_tool.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -140,10 +140,10 @@ Public Member Functions

    Protected Attributes

    PaintingAreaArea - A pointer to the general PaintingArea to interact with. More...
    + A pointer to the general PaintingArea to interact with. More...
      IntelliColorPickercolorPicker - A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors. More...
    + A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors. More...
      LayerObjectActive  A pointer to the underlying active Layer, do not work on this. This is used for data grabbing or previews. More...
    @@ -189,7 +189,7 @@ Protected Attributes

    A constructor setting the general Painting Area and colorPicker.

    Parameters
    - +
    Area- The general PaintingArea used by the project.
    Area- The general PaintingArea used by the project.
    colorPicker- The general colorPicker used by the project.
    @@ -272,7 +272,7 @@ Protected Attributes
    -

    Reimplemented in IntelliToolLine, IntelliToolCircle, IntelliToolRectangle, IntelliToolPen, IntelliToolFloodFill, IntelliToolPlainTool, and IntelliToolPolygon.

    +

    Reimplemented in IntelliToolLine, IntelliToolCircle, IntelliToolPolygon, IntelliToolRectangle, IntelliToolPen, IntelliToolFloodFill, and IntelliToolPlainTool.

    Definition at line 25 of file IntelliTool.cpp.

    @@ -331,7 +331,7 @@ Here is the caller graph for this function:
    -

    Reimplemented in IntelliToolLine, IntelliToolCircle, IntelliToolRectangle, IntelliToolPen, IntelliToolFloodFill, IntelliToolPlainTool, and IntelliToolPolygon.

    +

    Reimplemented in IntelliToolLine, IntelliToolCircle, IntelliToolPolygon, IntelliToolRectangle, IntelliToolPen, IntelliToolFloodFill, and IntelliToolPlainTool.

    Definition at line 32 of file IntelliTool.cpp.

    @@ -390,7 +390,7 @@ Here is the caller graph for this function:
    -

    Reimplemented in IntelliToolLine, IntelliToolCircle, IntelliToolRectangle, IntelliToolPen, IntelliToolFloodFill, IntelliToolPlainTool, and IntelliToolPolygon.

    +

    Reimplemented in IntelliToolPolygon, IntelliToolLine, IntelliToolCircle, IntelliToolRectangle, IntelliToolPen, IntelliToolFloodFill, and IntelliToolPlainTool.

    Definition at line 41 of file IntelliTool.cpp.

    @@ -449,7 +449,7 @@ Here is the caller graph for this function:
    -

    Reimplemented in IntelliToolLine, IntelliToolCircle, IntelliToolRectangle, IntelliToolPen, IntelliToolFloodFill, IntelliToolPlainTool, and IntelliToolPolygon.

    +

    Reimplemented in IntelliToolPolygon, IntelliToolLine, IntelliToolCircle, IntelliToolRectangle, IntelliToolPen, IntelliToolFloodFill, and IntelliToolPlainTool.

    Definition at line 14 of file IntelliTool.cpp.

    @@ -503,7 +503,7 @@ Here is the caller graph for this function:
    -

    Reimplemented in IntelliToolLine, IntelliToolCircle, IntelliToolRectangle, IntelliToolPen, IntelliToolFloodFill, IntelliToolPlainTool, and IntelliToolPolygon.

    +

    Reimplemented in IntelliToolPolygon, IntelliToolLine, IntelliToolCircle, IntelliToolRectangle, IntelliToolPen, IntelliToolFloodFill, and IntelliToolPlainTool.

    Definition at line 21 of file IntelliTool.cpp.

    @@ -546,7 +546,7 @@ Here is the caller graph for this function:
    -

    Reimplemented in IntelliToolLine, IntelliToolCircle, IntelliToolRectangle, IntelliToolPen, IntelliToolFloodFill, IntelliToolPlainTool, and IntelliToolPolygon.

    +

    Reimplemented in IntelliToolPolygon, IntelliToolLine, IntelliToolCircle, IntelliToolRectangle, IntelliToolPen, IntelliToolFloodFill, and IntelliToolPlainTool.

    Definition at line 46 of file IntelliTool.cpp.

    @@ -604,7 +604,7 @@ Here is the caller graph for this function:
    -

    A pointer to the general PaintingArea to interact with.

    +

    A pointer to the general PaintingArea to interact with.

    Definition at line 33 of file IntelliTool.h.

    @@ -656,7 +656,7 @@ Here is the caller graph for this function:
    -

    A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors.

    +

    A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors.

    Definition at line 38 of file IntelliTool.h.

    diff --git a/docs/html/class_intelli_tool__coll__graph.dot b/docs/html/class_intelli_tool__coll__graph.dot index f5165d5..39aefd0 100644 --- a/docs/html/class_intelli_tool__coll__graph.dot +++ b/docs/html/class_intelli_tool__coll__graph.dot @@ -5,13 +5,13 @@ digraph "IntelliTool" node [fontname="Helvetica",fontsize="10",shape=record]; Node1 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; Node2 -> Node1 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Area" ,fontname="Helvetica"]; - Node2 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip=" "]; + Node2 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip="The PaintingArea class manages the methods and stores information about the current painting area,..."]; Node3 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node3 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; Node4 -> Node1 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" colorPicker" ,fontname="Helvetica"]; Node4 [label="IntelliColorPicker",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html",tooltip="The IntelliColorPicker manages the selected colors for one whole project."]; Node5 -> Node1 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Canvas\nActive" ,fontname="Helvetica"]; - Node5 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip=" "]; + Node5 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip="The LayerObject struct holds all the information needed to construct a layer."]; Node6 -> Node5 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" image" ,fontname="Helvetica"]; Node6 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip="An abstract class which manages the basic IntelliImage operations."]; } diff --git a/docs/html/class_intelli_tool_a16189b00307c6d7e89f28198f54404b0_icgraph.dot b/docs/html/class_intelli_tool_a16189b00307c6d7e89f28198f54404b0_icgraph.dot index 0e124e9..f5999ab 100644 --- a/docs/html/class_intelli_tool_a16189b00307c6d7e89f28198f54404b0_icgraph.dot +++ b/docs/html/class_intelli_tool_a16189b00307c6d7e89f28198f54404b0_icgraph.dot @@ -19,4 +19,6 @@ digraph "IntelliTool::onMouseRightReleased" Node7 [label="IntelliToolCircle::\lonMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#aca07540f2f7ccb3d2c0b84890c1afc4c",tooltip="A function managing the right click released of a mouse."]; Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node8 [label="IntelliToolLine::onMouse\lRightReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a6214918cba5753f89d97de4559a2b9b2",tooltip="A function managing the right click released of a mouse."]; + Node1 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="IntelliToolPolygon\l::onMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a47cad87cd02b128b02dc929713bd1d1b",tooltip="A function managing the right click released of a mouse."]; } diff --git a/docs/html/class_intelli_tool_a1e6aa68ac5f3c2ca02319e5ef3f0c966_icgraph.dot b/docs/html/class_intelli_tool_a1e6aa68ac5f3c2ca02319e5ef3f0c966_icgraph.dot index d220b5b..d2bf790 100644 --- a/docs/html/class_intelli_tool_a1e6aa68ac5f3c2ca02319e5ef3f0c966_icgraph.dot +++ b/docs/html/class_intelli_tool_a1e6aa68ac5f3c2ca02319e5ef3f0c966_icgraph.dot @@ -8,17 +8,17 @@ digraph "IntelliTool::onMouseRightPressed" Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="PaintingArea::mousePress\lEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15",tooltip=" "]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolPolygon\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#aa36b012b48311c36e7cd6771a5081427",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; + Node3 [label="IntelliToolPlainTool\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#acb0c46e16d2c09370a2244a936de38b1",tooltip="A function managing the right click pressed of a mouse. Resetting the current fill."]; Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolPlainTool\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#acb0c46e16d2c09370a2244a936de38b1",tooltip="A function managing the right click pressed of a mouse.Resetting the current fill."]; + Node4 [label="IntelliToolFloodFill\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#ada0f7154d119102410a55038763a17e4",tooltip="A function managing the right click pressed of a mouse. Clearing the canvas."]; Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliToolFloodFill\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#ada0f7154d119102410a55038763a17e4",tooltip="A function managing the right click pressed of a mouse. Clearing the canvas."]; + Node5 [label="IntelliToolPen::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a1751e3864a0d36ef42ca55021cae73ce",tooltip="A function managing the right click pressed of a mouse. Resetting the current draw."]; Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node6 [label="IntelliToolPen::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a1751e3864a0d36ef42ca55021cae73ce",tooltip="A function managing the right click pressed of a mouse.Resetting the current draw."]; + Node6 [label="IntelliToolRectangle\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#a480c6804a4963c5a1c3f7ef84b63c1a8",tooltip="A function managing the right click pressed of a mouse.Resetting the current draw."]; Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node7 [label="IntelliToolRectangle\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#a480c6804a4963c5a1c3f7ef84b63c1a8",tooltip="A function managing the right click pressed of a mouse.Resetting the current draw."]; + Node7 [label="IntelliToolCircle::\lonMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#a29d7b9ed4960e6fe1f31ff620363e429",tooltip="A function managing the right click pressed of a mouse. Clearing the canvas layer."]; Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node8 [label="IntelliToolCircle::\lonMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#a29d7b9ed4960e6fe1f31ff620363e429",tooltip="A function managing the right click pressed of a mouse. Clearing the canvas layer."]; + Node8 [label="IntelliToolLine::onMouse\lRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a6cce59f3017936214b10b47252a898a3",tooltip="A function managing the right click pressed of a mouse. Clearing the canvas."]; Node1 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node9 [label="IntelliToolLine::onMouse\lRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a6cce59f3017936214b10b47252a898a3",tooltip="A function managing the right click pressed of a mouse. Clearing the canvas."]; + Node9 [label="IntelliToolPolygon\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#aa36b012b48311c36e7cd6771a5081427",tooltip="A function managing the right click pressed of a mouse. Resetting the current fill."]; } diff --git a/docs/html/class_intelli_tool_a34b7ef1dde96b94a0ce450a25ae1778c_icgraph.dot b/docs/html/class_intelli_tool_a34b7ef1dde96b94a0ce450a25ae1778c_icgraph.dot index 4b3c709..2c9eec4 100644 --- a/docs/html/class_intelli_tool_a34b7ef1dde96b94a0ce450a25ae1778c_icgraph.dot +++ b/docs/html/class_intelli_tool_a34b7ef1dde96b94a0ce450a25ae1778c_icgraph.dot @@ -8,17 +8,17 @@ digraph "IntelliTool::onMouseLeftPressed" Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="PaintingArea::mousePress\lEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15",tooltip=" "]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolPolygon\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node3 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9",tooltip="A function managing the left click pressed of a mouse. Filling the whole canvas."]; Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolPlainTool\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9",tooltip="A function managing the left click pressed of a mouse. Filling the whole canvas."]; + Node4 [label="IntelliToolFloodFill\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961",tooltip="A function managing the left click pressed of a mouse. Sets the point to flood fill around and does t..."]; Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliToolFloodFill\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961",tooltip="A function managing the left click pressed of a mouse. Sets the point to flood fill around and does t..."]; + Node5 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205",tooltip="A function managing the left click pressed of a mouse. Starting the drawing procedure."]; Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node6 [label="IntelliToolPen::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205",tooltip="A function managing the left click pressed of a mouse. Starting the drawing procedure."]; + Node6 [label="IntelliToolRectangle\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#ae03c307ccf66cbe3fd59e3657712368d",tooltip="A function managing the left click pressed of a mouse. Setting the originCorner and draws a rectangle..."]; Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node7 [label="IntelliToolRectangle\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#ae03c307ccf66cbe3fd59e3657712368d",tooltip="A function managing the left click pressed of a mouse. Setting the originCorner and draws a rectangle..."]; + Node7 [label="IntelliToolCircle::\lonMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#ae883b8ae833c78a8867e626c600f9639",tooltip="A function managing the left click pressed of a mouse. Sets the middle point of the cricle."]; Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node8 [label="IntelliToolCircle::\lonMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#ae883b8ae833c78a8867e626c600f9639",tooltip="A function managing the left click pressed of a mouse. Sets the middle point of the cricle."]; + Node8 [label="IntelliToolPolygon\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d",tooltip="A function managing the left click pressed of a mouse. Setting polygon points."]; Node1 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node9 [label="IntelliToolLine::onMouse\lLeftPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846",tooltip="A function managing the left click pressed of a mouse. Sets the starting point of the line."]; } diff --git a/docs/html/class_intelli_tool_a4dccfd4460255ccb866f336406a33574_icgraph.dot b/docs/html/class_intelli_tool_a4dccfd4460255ccb866f336406a33574_icgraph.dot index ca36644..5120fd4 100644 --- a/docs/html/class_intelli_tool_a4dccfd4460255ccb866f336406a33574_icgraph.dot +++ b/docs/html/class_intelli_tool_a4dccfd4460255ccb866f336406a33574_icgraph.dot @@ -18,5 +18,7 @@ digraph "IntelliTool::onWheelScrolled" Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node7 [label="IntelliToolLine::onWheel\lScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#aaf1d686e1ec43f41b5186ccfd806b125",tooltip="A function managing the scroll event. Changing the lineWidth relative to value."]; Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node8 [label="PaintingArea::wheelEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a632848d99f44d33d7da2618fbc6775a4",tooltip=" "]; + Node8 [label="IntelliToolPolygon\l::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a713103300c9f023d64d9eec5ac05dd17",tooltip="A function managing the scroll event. CHanging the lineWidth relative to value."]; + Node1 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="PaintingArea::wheelEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a632848d99f44d33d7da2618fbc6775a4",tooltip=" "]; } diff --git a/docs/html/class_intelli_tool_a906a2575c16c8a33cb2a5197f8d8cc5b_icgraph.dot b/docs/html/class_intelli_tool_a906a2575c16c8a33cb2a5197f8d8cc5b_icgraph.dot index 3c23d31..a8fd3c5 100644 --- a/docs/html/class_intelli_tool_a906a2575c16c8a33cb2a5197f8d8cc5b_icgraph.dot +++ b/docs/html/class_intelli_tool_a906a2575c16c8a33cb2a5197f8d8cc5b_icgraph.dot @@ -8,17 +8,17 @@ digraph "IntelliTool::onMouseLeftReleased" Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="PaintingArea::mouseRelease\lEvent",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a35b5df914acb608cc29717659793359c",tooltip=" "]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolPolygon\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node3 [label="IntelliToolPlainTool\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ac23f5d0f07e42fd7c2ea3fc1347da400",tooltip="A function managing the left click released of a mouse. Merging the fill to the active layer."]; Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolPlainTool\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_plain_tool.html#ac23f5d0f07e42fd7c2ea3fc1347da400",tooltip="A function managing the left click released of a mouse. Merging the fill to the active layer."]; + Node4 [label="IntelliToolFloodFill\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#a7438ef96c6c36068bce76e2364e8594c",tooltip="A function managing the left click released of a mouse."]; Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliToolFloodFill\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_flood_fill.html#a7438ef96c6c36068bce76e2364e8594c",tooltip="A function managing the left click released of a mouse."]; + Node5 [label="IntelliToolPen::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#abda7a22b9766fa4ad254324a53cab94d",tooltip="A function managing the left click released of a mouse. Merging the drawing to the active layer."]; Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node6 [label="IntelliToolPen::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_pen.html#abda7a22b9766fa4ad254324a53cab94d",tooltip="A function managing the left click released of a mouse. Merging the drawing to the active layer."]; + Node6 [label="IntelliToolRectangle\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#a94460e3ff1c19e80bde922c55f53cc43",tooltip="A function managing the left click released of a mouse. Merging the draw to the active layer."]; Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node7 [label="IntelliToolRectangle\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_rectangle.html#a94460e3ff1c19e80bde922c55f53cc43",tooltip="A function managing the left click released of a mouse. Merging the draw to the active layer."]; + Node7 [label="IntelliToolCircle::\lonMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#ad8e438ec997c57262b5efc2db4cee1a3",tooltip="A function managing the left click released of a mouse."]; Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node8 [label="IntelliToolCircle::\lonMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#ad8e438ec997c57262b5efc2db4cee1a3",tooltip="A function managing the left click released of a mouse."]; + Node8 [label="IntelliToolPolygon\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21",tooltip="A function managing the left click released of a mouse. Merging the fill to the active layer."]; Node1 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node9 [label="IntelliToolLine::onMouse\lLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#ac93f76ff20a1c111a403b298bab02482",tooltip="A function managing the left click released of a mouse."]; } diff --git a/docs/html/class_intelli_tool_ac10e20414cd8855a2f9b103fb6408639_icgraph.dot b/docs/html/class_intelli_tool_ac10e20414cd8855a2f9b103fb6408639_icgraph.dot index ec2757d..965ae9b 100644 --- a/docs/html/class_intelli_tool_ac10e20414cd8855a2f9b103fb6408639_icgraph.dot +++ b/docs/html/class_intelli_tool_ac10e20414cd8855a2f9b103fb6408639_icgraph.dot @@ -19,4 +19,6 @@ digraph "IntelliTool::onMouseMoved" Node7 [label="IntelliToolCircle::\lonMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_circle.html#a90ee58c5390a86afc75c14ca79b91d7b",tooltip="A function managing the mouse moved event. Draws a circle with radius of eulerian norm of mouse posit..."]; Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node8 [label="IntelliToolLine::onMouse\lMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b",tooltip="A function managing the mouse moved event. Drawing a Line from the startpoint to the current mouse po..."]; + Node1 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="IntelliToolPolygon\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a0e3a1135f04c73c159137ae219a38922",tooltip="A function managing the mouse moved event."]; } diff --git a/docs/html/class_intelli_tool_circle-members.html b/docs/html/class_intelli_tool_circle-members.html index e74c856..b783ca6 100644 --- a/docs/html/class_intelli_tool_circle-members.html +++ b/docs/html/class_intelli_tool_circle-members.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/class_intelli_tool_circle.html b/docs/html/class_intelli_tool_circle.html index 7636d1d..9462b65 100644 --- a/docs/html/class_intelli_tool_circle.html +++ b/docs/html/class_intelli_tool_circle.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -147,10 +147,10 @@ Public Member Functions Additional Inherited Members - Protected Attributes inherited from IntelliTool PaintingAreaArea - A pointer to the general PaintingArea to interact with. More...
    + A pointer to the general PaintingArea to interact with. More...
      IntelliColorPickercolorPicker - A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors. More...
    + A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors. More...
      LayerObjectActive  A pointer to the underlying active Layer, do not work on this. This is used for data grabbing or previews. More...
    diff --git a/docs/html/class_intelli_tool_circle__coll__graph.dot b/docs/html/class_intelli_tool_circle__coll__graph.dot index b9c16ac..bc26aef 100644 --- a/docs/html/class_intelli_tool_circle__coll__graph.dot +++ b/docs/html/class_intelli_tool_circle__coll__graph.dot @@ -7,13 +7,13 @@ digraph "IntelliToolCircle" Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; Node3 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Area" ,fontname="Helvetica"]; - Node3 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip=" "]; + Node3 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip="The PaintingArea class manages the methods and stores information about the current painting area,..."]; Node4 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node4 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; Node5 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" colorPicker" ,fontname="Helvetica"]; Node5 [label="IntelliColorPicker",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html",tooltip="The IntelliColorPicker manages the selected colors for one whole project."]; Node6 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Canvas\nActive" ,fontname="Helvetica"]; - Node6 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip=" "]; + Node6 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip="The LayerObject struct holds all the information needed to construct a layer."]; Node7 -> Node6 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" image" ,fontname="Helvetica"]; Node7 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip="An abstract class which manages the basic IntelliImage operations."]; } diff --git a/docs/html/class_intelli_tool_flood_fill-members.html b/docs/html/class_intelli_tool_flood_fill-members.html index 3004cf0..a3929a0 100644 --- a/docs/html/class_intelli_tool_flood_fill-members.html +++ b/docs/html/class_intelli_tool_flood_fill-members.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/class_intelli_tool_flood_fill.html b/docs/html/class_intelli_tool_flood_fill.html index ae79756..b2f7ad6 100644 --- a/docs/html/class_intelli_tool_flood_fill.html +++ b/docs/html/class_intelli_tool_flood_fill.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -147,10 +147,10 @@ Public Member Functions Additional Inherited Members - Protected Attributes inherited from IntelliTool PaintingAreaArea - A pointer to the general PaintingArea to interact with. More...
    + A pointer to the general PaintingArea to interact with. More...
      IntelliColorPickercolorPicker - A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors. More...
    + A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors. More...
      LayerObjectActive  A pointer to the underlying active Layer, do not work on this. This is used for data grabbing or previews. More...
    @@ -281,7 +281,7 @@ Additional Inherited Members

    Reimplemented from IntelliTool.

    -

    Definition at line 25 of file IntelliToolFloodFill.cpp.

    +

    Definition at line 24 of file IntelliToolFloodFill.cpp.

    Here is the call graph for this function:
    @@ -335,7 +335,7 @@ Here is the call graph for this function:

    Reimplemented from IntelliTool.

    -

    Definition at line 66 of file IntelliToolFloodFill.cpp.

    +

    Definition at line 68 of file IntelliToolFloodFill.cpp.

    Here is the call graph for this function:
    @@ -389,7 +389,7 @@ Here is the call graph for this function:

    Reimplemented from IntelliTool.

    -

    Definition at line 75 of file IntelliToolFloodFill.cpp.

    +

    Definition at line 77 of file IntelliToolFloodFill.cpp.

    Here is the call graph for this function:
    @@ -443,7 +443,7 @@ Here is the call graph for this function:

    Reimplemented from IntelliTool.

    -

    Definition at line 17 of file IntelliToolFloodFill.cpp.

    +

    Definition at line 16 of file IntelliToolFloodFill.cpp.

    Here is the call graph for this function:
    @@ -497,7 +497,7 @@ Here is the call graph for this function:

    Reimplemented from IntelliTool.

    -

    Definition at line 21 of file IntelliToolFloodFill.cpp.

    +

    Definition at line 20 of file IntelliToolFloodFill.cpp.

    Here is the call graph for this function:
    @@ -540,7 +540,7 @@ Here is the call graph for this function:

    Reimplemented from IntelliTool.

    -

    Definition at line 70 of file IntelliToolFloodFill.cpp.

    +

    Definition at line 72 of file IntelliToolFloodFill.cpp.

    Here is the call graph for this function:
    diff --git a/docs/html/class_intelli_tool_flood_fill__coll__graph.dot b/docs/html/class_intelli_tool_flood_fill__coll__graph.dot index 92a429d..93a8abc 100644 --- a/docs/html/class_intelli_tool_flood_fill__coll__graph.dot +++ b/docs/html/class_intelli_tool_flood_fill__coll__graph.dot @@ -7,13 +7,13 @@ digraph "IntelliToolFloodFill" Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; Node3 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Area" ,fontname="Helvetica"]; - Node3 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip=" "]; + Node3 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip="The PaintingArea class manages the methods and stores information about the current painting area,..."]; Node4 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node4 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; Node5 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" colorPicker" ,fontname="Helvetica"]; Node5 [label="IntelliColorPicker",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html",tooltip="The IntelliColorPicker manages the selected colors for one whole project."]; Node6 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Canvas\nActive" ,fontname="Helvetica"]; - Node6 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip=" "]; + Node6 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip="The LayerObject struct holds all the information needed to construct a layer."]; Node7 -> Node6 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" image" ,fontname="Helvetica"]; Node7 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip="An abstract class which manages the basic IntelliImage operations."]; } diff --git a/docs/html/class_intelli_tool_line-members.html b/docs/html/class_intelli_tool_line-members.html index b7d7265..af26209 100644 --- a/docs/html/class_intelli_tool_line-members.html +++ b/docs/html/class_intelli_tool_line-members.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/class_intelli_tool_line.html b/docs/html/class_intelli_tool_line.html index 72bf0b9..6f85211 100644 --- a/docs/html/class_intelli_tool_line.html +++ b/docs/html/class_intelli_tool_line.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -147,10 +147,10 @@ Public Member Functions Additional Inherited Members - Protected Attributes inherited from IntelliTool PaintingAreaArea - A pointer to the general PaintingArea to interact with. More...
    + A pointer to the general PaintingArea to interact with. More...
      IntelliColorPickercolorPicker - A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors. More...
    + A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors. More...
      LayerObjectActive  A pointer to the underlying active Layer, do not work on this. This is used for data grabbing or previews. More...
    @@ -281,7 +281,7 @@ Additional Inherited Members

    Reimplemented from IntelliTool.

    -

    Definition at line 26 of file IntelliToolLine.cpp.

    +

    Definition at line 25 of file IntelliToolLine.cpp.

    Here is the call graph for this function:
    @@ -335,7 +335,7 @@ Here is the call graph for this function:

    Reimplemented from IntelliTool.

    -

    Definition at line 33 of file IntelliToolLine.cpp.

    +

    Definition at line 32 of file IntelliToolLine.cpp.

    Here is the call graph for this function:
    @@ -389,7 +389,7 @@ Here is the call graph for this function:

    Reimplemented from IntelliTool.

    -

    Definition at line 45 of file IntelliToolLine.cpp.

    +

    Definition at line 44 of file IntelliToolLine.cpp.

    Here is the call graph for this function:
    @@ -443,7 +443,7 @@ Here is the call graph for this function:

    Reimplemented from IntelliTool.

    -

    Definition at line 18 of file IntelliToolLine.cpp.

    +

    Definition at line 17 of file IntelliToolLine.cpp.

    Here is the call graph for this function:
    @@ -497,7 +497,7 @@ Here is the call graph for this function:

    Reimplemented from IntelliTool.

    -

    Definition at line 22 of file IntelliToolLine.cpp.

    +

    Definition at line 21 of file IntelliToolLine.cpp.

    Here is the call graph for this function:
    @@ -540,7 +540,7 @@ Here is the call graph for this function:

    Reimplemented from IntelliTool.

    -

    Definition at line 37 of file IntelliToolLine.cpp.

    +

    Definition at line 36 of file IntelliToolLine.cpp.

    Here is the call graph for this function:
    diff --git a/docs/html/class_intelli_tool_line__coll__graph.dot b/docs/html/class_intelli_tool_line__coll__graph.dot index e7f5dbc..be334ec 100644 --- a/docs/html/class_intelli_tool_line__coll__graph.dot +++ b/docs/html/class_intelli_tool_line__coll__graph.dot @@ -7,13 +7,13 @@ digraph "IntelliToolLine" Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; Node3 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Area" ,fontname="Helvetica"]; - Node3 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip=" "]; + Node3 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip="The PaintingArea class manages the methods and stores information about the current painting area,..."]; Node4 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node4 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; Node5 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" colorPicker" ,fontname="Helvetica"]; Node5 [label="IntelliColorPicker",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html",tooltip="The IntelliColorPicker manages the selected colors for one whole project."]; Node6 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Canvas\nActive" ,fontname="Helvetica"]; - Node6 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip=" "]; + Node6 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip="The LayerObject struct holds all the information needed to construct a layer."]; Node7 -> Node6 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" image" ,fontname="Helvetica"]; Node7 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip="An abstract class which manages the basic IntelliImage operations."]; } diff --git a/docs/html/class_intelli_tool_pen-members.html b/docs/html/class_intelli_tool_pen-members.html index bb9b3eb..1f749b0 100644 --- a/docs/html/class_intelli_tool_pen-members.html +++ b/docs/html/class_intelli_tool_pen-members.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/class_intelli_tool_pen.html b/docs/html/class_intelli_tool_pen.html index 86dba05..70b6112 100644 --- a/docs/html/class_intelli_tool_pen.html +++ b/docs/html/class_intelli_tool_pen.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -118,7 +118,7 @@ Public Member Functions  A Destructor. More...
      virtual void onMouseRightPressed (int x, int y) override - A function managing the right click pressed of a mouse.Resetting the current draw. More...
    + A function managing the right click pressed of a mouse. Resetting the current draw. More...
      virtual void onMouseRightReleased (int x, int y) override  A function managing the right click released of a mouse. More...
    @@ -147,10 +147,10 @@ Public Member Functions Additional Inherited Members - Protected Attributes inherited from IntelliTool PaintingAreaArea - A pointer to the general PaintingArea to interact with. More...
    + A pointer to the general PaintingArea to interact with. More...
      IntelliColorPickercolorPicker - A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors. More...
    + A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors. More...
      LayerObjectActive  A pointer to the underlying active Layer, do not work on this. This is used for data grabbing or previews. More...
    @@ -196,7 +196,7 @@ Additional Inherited Members

    A constructor setting the general paintingArea and colorPicker. Reading the penWidth.

    Parameters
    - +
    Area- The general PaintingArea used by the project.
    Area- The general PaintingArea used by the project.
    colorPicker- The general colorPicker used by the project.
    @@ -432,7 +432,7 @@ Here is the call graph for this function:
    -

    A function managing the right click pressed of a mouse.Resetting the current draw.

    +

    A function managing the right click pressed of a mouse. Resetting the current draw.

    Parameters
    diff --git a/docs/html/class_intelli_tool_pen__coll__graph.dot b/docs/html/class_intelli_tool_pen__coll__graph.dot index 63a3f0c..c70e465 100644 --- a/docs/html/class_intelli_tool_pen__coll__graph.dot +++ b/docs/html/class_intelli_tool_pen__coll__graph.dot @@ -7,13 +7,13 @@ digraph "IntelliToolPen" Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; Node3 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Area" ,fontname="Helvetica"]; - Node3 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip=" "]; + Node3 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip="The PaintingArea class manages the methods and stores information about the current painting area,..."]; Node4 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node4 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; Node5 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" colorPicker" ,fontname="Helvetica"]; Node5 [label="IntelliColorPicker",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html",tooltip="The IntelliColorPicker manages the selected colors for one whole project."]; Node6 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Canvas\nActive" ,fontname="Helvetica"]; - Node6 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip=" "]; + Node6 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip="The LayerObject struct holds all the information needed to construct a layer."]; Node7 -> Node6 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" image" ,fontname="Helvetica"]; Node7 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip="An abstract class which manages the basic IntelliImage operations."]; } diff --git a/docs/html/class_intelli_tool_pen_a1751e3864a0d36ef42ca55021cae73ce_cgraph.dot b/docs/html/class_intelli_tool_pen_a1751e3864a0d36ef42ca55021cae73ce_cgraph.dot index 944c897..693f9a8 100644 --- a/docs/html/class_intelli_tool_pen_a1751e3864a0d36ef42ca55021cae73ce_cgraph.dot +++ b/docs/html/class_intelli_tool_pen_a1751e3864a0d36ef42ca55021cae73ce_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolPen::onMouseRightPressed" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolPen::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click pressed of a mouse.Resetting the current draw."]; + Node1 [label="IntelliToolPen::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click pressed of a mouse. Resetting the current draw."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; } diff --git a/docs/html/class_intelli_tool_plain_tool-members.html b/docs/html/class_intelli_tool_plain_tool-members.html index c4c5088..7ef7717 100644 --- a/docs/html/class_intelli_tool_plain_tool-members.html +++ b/docs/html/class_intelli_tool_plain_tool-members.html @@ -30,7 +30,7 @@ diff --git a/docs/html/class_intelli_tool_plain_tool.html b/docs/html/class_intelli_tool_plain_tool.html index 41b2f4f..4de1bac 100644 --- a/docs/html/class_intelli_tool_plain_tool.html +++ b/docs/html/class_intelli_tool_plain_tool.html @@ -30,7 +30,7 @@ @@ -118,7 +118,7 @@ Public Member Functions - + @@ -147,10 +147,10 @@ Public Member Functions Additional Inherited Members - + - + @@ -389,7 +389,7 @@ Here is the call graph for this function:

    Reimplemented from IntelliTool.

    -

    Definition at line 32 of file IntelliToolPlain.cpp.

    +

    Definition at line 31 of file IntelliToolPlain.cpp.

    Here is the call graph for this function:
    @@ -432,7 +432,7 @@ Here is the call graph for this function:
    x- The x coordinate relative to the active/canvas layer.
    IntelliPhoto -  0.4 +  0.5
    IntelliPhoto -  0.4 +  0.5
     A Destructor. More...
     
    virtual void onMouseRightPressed (int x, int y) override
     A function managing the right click pressed of a mouse.Resetting the current fill. More...
     A function managing the right click pressed of a mouse. Resetting the current fill. More...
     
    virtual void onMouseRightReleased (int x, int y) override
     A function managing the right click released of a mouse. More...
    - Protected Attributes inherited from IntelliTool
    PaintingAreaArea
     A pointer to the general PaintingArea to interact with. More...
     A pointer to the general PaintingArea to interact with. More...
     
    IntelliColorPickercolorPicker
     A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors. More...
     A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors. More...
     
    LayerObjectActive
     A pointer to the underlying active Layer, do not work on this. This is used for data grabbing or previews. More...
    -

    A function managing the right click pressed of a mouse.Resetting the current fill.

    +

    A function managing the right click pressed of a mouse. Resetting the current fill.

    Parameters
    @@ -540,7 +540,7 @@ Here is the call graph for this function:

    Reimplemented from IntelliTool.

    -

    Definition at line 36 of file IntelliToolPlain.cpp.

    +

    Definition at line 35 of file IntelliToolPlain.cpp.

    Here is the call graph for this function:
    diff --git a/docs/html/class_intelli_tool_plain_tool__coll__graph.dot b/docs/html/class_intelli_tool_plain_tool__coll__graph.dot index 182c33c..414c45b 100644 --- a/docs/html/class_intelli_tool_plain_tool__coll__graph.dot +++ b/docs/html/class_intelli_tool_plain_tool__coll__graph.dot @@ -7,13 +7,13 @@ digraph "IntelliToolPlainTool" Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; Node3 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Area" ,fontname="Helvetica"]; - Node3 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip=" "]; + Node3 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip="The PaintingArea class manages the methods and stores information about the current painting area,..."]; Node4 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node4 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; Node5 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" colorPicker" ,fontname="Helvetica"]; Node5 [label="IntelliColorPicker",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html",tooltip="The IntelliColorPicker manages the selected colors for one whole project."]; Node6 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Canvas\nActive" ,fontname="Helvetica"]; - Node6 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip=" "]; + Node6 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip="The LayerObject struct holds all the information needed to construct a layer."]; Node7 -> Node6 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" image" ,fontname="Helvetica"]; Node7 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip="An abstract class which manages the basic IntelliImage operations."]; } diff --git a/docs/html/class_intelli_tool_plain_tool_acb0c46e16d2c09370a2244a936de38b1_cgraph.dot b/docs/html/class_intelli_tool_plain_tool_acb0c46e16d2c09370a2244a936de38b1_cgraph.dot index 2740da5..92d51ca 100644 --- a/docs/html/class_intelli_tool_plain_tool_acb0c46e16d2c09370a2244a936de38b1_cgraph.dot +++ b/docs/html/class_intelli_tool_plain_tool_acb0c46e16d2c09370a2244a936de38b1_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolPlainTool::onMouseRightPressed" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolPlainTool\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click pressed of a mouse.Resetting the current fill."]; + Node1 [label="IntelliToolPlainTool\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click pressed of a mouse. Resetting the current fill."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; } diff --git a/docs/html/class_intelli_tool_polygon-members.html b/docs/html/class_intelli_tool_polygon-members.html index 0cffcbb..975fc52 100644 --- a/docs/html/class_intelli_tool_polygon-members.html +++ b/docs/html/class_intelli_tool_polygon-members.html @@ -30,7 +30,7 @@
    @@ -107,6 +107,7 @@ $(document).ready(function(){initNavTree('class_intelli_tool_polygon.html','');} +
    x- The x coordinate relative to the active/canvas layer.
    IntelliPhoto -  0.4 +  0.5
    onMouseRightReleased(int x, int y) overrideIntelliToolPolygonvirtual
    onWheelScrolled(int value) overrideIntelliToolPolygonvirtual
    ~IntelliTool()=0IntelliToolpure virtual
    ~IntelliToolPolygon() overrideIntelliToolPolygon
    diff --git a/docs/html/class_intelli_tool_polygon.html b/docs/html/class_intelli_tool_polygon.html index eba785f..f9de686 100644 --- a/docs/html/class_intelli_tool_polygon.html +++ b/docs/html/class_intelli_tool_polygon.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -112,25 +112,28 @@ Collaboration diagram for IntelliToolPolygon:

    Public Member Functions

     IntelliToolPolygon (PaintingArea *Area, IntelliColorPicker *colorPicker) - IntelliToolPolygon Constructor Define the Tool-intern Parameters. More...
    + A constructor setting the general paintingArea and colorPicker. More...
      + ~IntelliToolPolygon () override + A Destructor. More...
    +  virtual void onMouseLeftPressed (int x, int y) override - A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes! More...
    + A function managing the left click pressed of a mouse. Setting polygon points. More...
      virtual void onMouseLeftReleased (int x, int y) override - A function managing the left click Released of a Mouse. Call this in child classes! More...
    + A function managing the left click released of a mouse. Merging the fill to the active layer. More...
      virtual void onMouseRightPressed (int x, int y) override - A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes! More...
    + A function managing the right click pressed of a mouse. Resetting the current fill. More...
      virtual void onMouseRightReleased (int x, int y) override - A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes! More...
    + A function managing the right click released of a mouse. More...
      virtual void onWheelScrolled (int value) override - A function managing the scroll event. A positive value means scrolling outwards. Call this in child classes! More...
    + A function managing the scroll event. CHanging the lineWidth relative to value. More...
      virtual void onMouseMoved (int x, int y) override - A function managing the mouse moved event. Call this in child classes! More...
    + A function managing the mouse moved event. More...
      - Public Member Functions inherited from IntelliTool  IntelliTool (PaintingArea *Area, IntelliColorPicker *colorPicker) @@ -144,10 +147,10 @@ Public Member Functions Additional Inherited Members - Protected Attributes inherited from IntelliTool PaintingAreaArea - A pointer to the general PaintingArea to interact with. More...
    + A pointer to the general PaintingArea to interact with. More...
      IntelliColorPickercolorPicker - A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors. More...
    + A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors. More...
      LayerObjectActive  A pointer to the underlying active Layer, do not work on this. This is used for data grabbing or previews. More...
    @@ -190,16 +193,45 @@ Additional Inherited Members
    -

    IntelliToolPolygon Constructor Define the Tool-intern Parameters.

    +

    A constructor setting the general paintingArea and colorPicker.

    Parameters
    - - + +
    Area
    colorPicker
    Area- The general paintingArea used by the project.
    colorPicker- The general colorPicker used by the project.
    -

    Definition at line 6 of file IntelliToolPolygon.cpp.

    +

    Definition at line 7 of file IntelliToolPolygon.cpp.

    + +
    + + +

    ◆ ~IntelliToolPolygon()

    + +
    +
    + + + + + +
    + + + + + + + +
    IntelliToolPolygon::~IntelliToolPolygon ()
    +
    +override
    +
    + +

    A Destructor.

    + +

    Definition at line 15 of file IntelliToolPolygon.cpp.

    @@ -238,7 +270,7 @@ Additional Inherited Members
    -

    A function managing the left click Pressed of a Mouse. Resetting the current draw. Call this in child classes!

    +

    A function managing the left click pressed of a mouse. Setting polygon points.

    Parameters
    @@ -249,7 +281,7 @@ Additional Inherited Members

    Reimplemented from IntelliTool.

    -

    Definition at line 17 of file IntelliToolPolygon.cpp.

    +

    Definition at line 19 of file IntelliToolPolygon.cpp.

    Here is the call graph for this function:
    @@ -292,7 +324,7 @@ Here is the call graph for this function:
    x- The x coordinate relative to the active/canvas layer.
    -

    A function managing the left click Released of a Mouse. Call this in child classes!

    +

    A function managing the left click released of a mouse. Merging the fill to the active layer.

    Parameters
    @@ -303,7 +335,7 @@ Here is the call graph for this function:

    Reimplemented from IntelliTool.

    -

    Definition at line 53 of file IntelliToolPolygon.cpp.

    +

    Definition at line 50 of file IntelliToolPolygon.cpp.

    Here is the call graph for this function:
    @@ -346,7 +378,7 @@ Here is the call graph for this function:
    x- The x coordinate relative to the active/canvas layer.
    -

    A function managing the mouse moved event. Call this in child classes!

    +

    A function managing the mouse moved event.

    Parameters
    @@ -357,7 +389,12 @@ Here is the call graph for this function:

    Reimplemented from IntelliTool.

    -

    Definition at line 88 of file IntelliToolPolygon.cpp.

    +

    Definition at line 91 of file IntelliToolPolygon.cpp.

    +
    +Here is the call graph for this function:
    +
    +
    +
    @@ -395,7 +432,7 @@ Here is the call graph for this function:
    x- The x coordinate of the new mouse position.
    -

    A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on. Call this in child classes!

    +

    A function managing the right click pressed of a mouse. Resetting the current fill.

    Parameters
    @@ -406,7 +443,7 @@ Here is the call graph for this function:

    Reimplemented from IntelliTool.

    -

    Definition at line 46 of file IntelliToolPolygon.cpp.

    +

    Definition at line 43 of file IntelliToolPolygon.cpp.

    Here is the call graph for this function:
    @@ -449,7 +486,7 @@ Here is the call graph for this function:
    x- The x coordinate relative to the active/canvas layer.
    -

    A function managing the right click Released of a Mouse. Merging the Canvas to Active. Call this in child classes!

    +

    A function managing the right click released of a mouse.

    Parameters
    @@ -460,7 +497,12 @@ Here is the call graph for this function:

    Reimplemented from IntelliTool.

    -

    Definition at line 73 of file IntelliToolPolygon.cpp.

    +

    Definition at line 75 of file IntelliToolPolygon.cpp.

    +
    +Here is the call graph for this function:
    +
    +
    +
    @@ -488,7 +530,7 @@ Here is the call graph for this function:
    x- The x coordinate relative to the active/canvas layer.
    -

    A function managing the scroll event. A positive value means scrolling outwards. Call this in child classes!

    +

    A function managing the scroll event. CHanging the lineWidth relative to value.

    Parameters
    @@ -498,7 +540,12 @@ Here is the call graph for this function:

    Reimplemented from IntelliTool.

    -

    Definition at line 77 of file IntelliToolPolygon.cpp.

    +

    Definition at line 79 of file IntelliToolPolygon.cpp.

    +
    +Here is the call graph for this function:
    +
    +
    +
    diff --git a/docs/html/class_intelli_tool_polygon.js b/docs/html/class_intelli_tool_polygon.js index 39b5450..b8a0c43 100644 --- a/docs/html/class_intelli_tool_polygon.js +++ b/docs/html/class_intelli_tool_polygon.js @@ -1,6 +1,7 @@ var class_intelli_tool_polygon = [ [ "IntelliToolPolygon", "class_intelli_tool_polygon.html#ae6e5f07fdf88d12029410a032dc4921d", null ], + [ "~IntelliToolPolygon", "class_intelli_tool_polygon.html#a087cbf2254010989df6106a357471499", null ], [ "onMouseLeftPressed", "class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d", null ], [ "onMouseLeftReleased", "class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21", null ], [ "onMouseMoved", "class_intelli_tool_polygon.html#a0e3a1135f04c73c159137ae219a38922", null ], diff --git a/docs/html/class_intelli_tool_polygon__coll__graph.dot b/docs/html/class_intelli_tool_polygon__coll__graph.dot index 09cd694..6faf754 100644 --- a/docs/html/class_intelli_tool_polygon__coll__graph.dot +++ b/docs/html/class_intelli_tool_polygon__coll__graph.dot @@ -7,13 +7,13 @@ digraph "IntelliToolPolygon" Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; Node3 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Area" ,fontname="Helvetica"]; - Node3 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip=" "]; + Node3 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip="The PaintingArea class manages the methods and stores information about the current painting area,..."]; Node4 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node4 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; Node5 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" colorPicker" ,fontname="Helvetica"]; Node5 [label="IntelliColorPicker",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html",tooltip="The IntelliColorPicker manages the selected colors for one whole project."]; Node6 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Canvas\nActive" ,fontname="Helvetica"]; - Node6 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip=" "]; + Node6 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip="The LayerObject struct holds all the information needed to construct a layer."]; Node7 -> Node6 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" image" ,fontname="Helvetica"]; Node7 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip="An abstract class which manages the basic IntelliImage operations."]; } diff --git a/docs/html/class_intelli_tool_polygon_a0e3a1135f04c73c159137ae219a38922_cgraph.dot b/docs/html/class_intelli_tool_polygon_a0e3a1135f04c73c159137ae219a38922_cgraph.dot new file mode 100644 index 0000000..123d693 --- /dev/null +++ b/docs/html/class_intelli_tool_polygon_a0e3a1135f04c73c159137ae219a38922_cgraph.dot @@ -0,0 +1,12 @@ +digraph "IntelliToolPolygon::onMouseMoved" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolPolygon\l::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the mouse moved event."]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onMouseMoved",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639",tooltip="A function managing the mouse moved event. Call this in child classes!"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; +} diff --git a/docs/html/class_intelli_tool_polygon_a47cad87cd02b128b02dc929713bd1d1b_cgraph.dot b/docs/html/class_intelli_tool_polygon_a47cad87cd02b128b02dc929713bd1d1b_cgraph.dot new file mode 100644 index 0000000..f55be23 --- /dev/null +++ b/docs/html/class_intelli_tool_polygon_a47cad87cd02b128b02dc929713bd1d1b_cgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliToolPolygon::onMouseRightReleased" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolPolygon\l::onMouseRightReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click released of a mouse."]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onMouseRight\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0",tooltip="A function managing the right click Released of a Mouse. Merging the Canvas to Active...."]; +} diff --git a/docs/html/class_intelli_tool_polygon_a4e1473ff408ae2e11cf6a43f6f575f21_cgraph.dot b/docs/html/class_intelli_tool_polygon_a4e1473ff408ae2e11cf6a43f6f575f21_cgraph.dot index bbac393..f8717dc 100644 --- a/docs/html/class_intelli_tool_polygon_a4e1473ff408ae2e11cf6a43f6f575f21_cgraph.dot +++ b/docs/html/class_intelli_tool_polygon_a4e1473ff408ae2e11cf6a43f6f575f21_cgraph.dot @@ -4,22 +4,25 @@ digraph "IntelliToolPolygon::onMouseLeftReleased" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolPolygon\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node1 [label="IntelliToolPolygon\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click released of a mouse. Merging the fill to the active layer."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliHelper::calculate\lTriangles",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$namespace_intelli_helper.html#a214dc3624ba4562a03dc922e3dd7b617",tooltip="A function to split a polygon in its spanning traingles by using Meisters Theorem of graph theory by ..."]; Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; + Node3 [label="IntelliImage::drawLine",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31",tooltip="A function that draws A Line between two given Points in a given color."]; Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node4 [label="IntelliImage::drawPixel",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#af3c859f5c409e37051edfd9e9fbca056",tooltip="A funtcion used to draw a pixel on the Image with the given Color."]; Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node5 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7",tooltip="A function to read the primary selected color."]; Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node6 [label="IntelliHelper::isInPolygon",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$namespace_intelli_helper.html#a44d516b3e619e2a743e9c98dd75cf901",tooltip="A function to check if a point lies in a polygon by checking its spanning triangles."]; - Node6 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node7 [label="IntelliHelper::isInTriangle",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$namespace_intelli_helper.html#a9fcfe72f00e870be4a8ab9f2e17483c9",tooltip="A function to check if a given point is in a triangle."]; + Node6 [label="IntelliColorPicker\l::getSecondColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#a55568fbf5dc783f06284b7031ffe9415",tooltip="A function to read the secondary selected color."]; + Node1 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="IntelliHelper::isInPolygon",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$namespace_intelli_helper.html#a44d516b3e619e2a743e9c98dd75cf901",tooltip="A function to check if a point lies in a polygon by checking its spanning triangles."]; Node7 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node8 [label="IntelliHelper::sign",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$namespace_intelli_helper.html#afdd9fe78cc5d21b59642910220768149",tooltip="A function to get the 2*area of a traingle, using its determinat."]; - Node1 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node9 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; - Node9 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="IntelliHelper::isInTriangle",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$namespace_intelli_helper.html#a9fcfe72f00e870be4a8ab9f2e17483c9",tooltip="A function to check if a given point is in a triangle."]; + Node8 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="IntelliHelper::sign",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$namespace_intelli_helper.html#afdd9fe78cc5d21b59642910220768149",tooltip="A function to get the 2*area of a traingle, using its determinat."]; + Node1 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="IntelliTool::onMouseLeft\lReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node10 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; } diff --git a/docs/html/class_intelli_tool_polygon_a713103300c9f023d64d9eec5ac05dd17_cgraph.dot b/docs/html/class_intelli_tool_polygon_a713103300c9f023d64d9eec5ac05dd17_cgraph.dot new file mode 100644 index 0000000..ecdef01 --- /dev/null +++ b/docs/html/class_intelli_tool_polygon_a713103300c9f023d64d9eec5ac05dd17_cgraph.dot @@ -0,0 +1,10 @@ +digraph "IntelliToolPolygon::onWheelScrolled" +{ + // LATEX_PDF_SIZE + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="IntelliToolPolygon\l::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the scroll event. CHanging the lineWidth relative to value."]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="IntelliTool::onWheelScrolled",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574",tooltip="A function managing the scroll event. A positive value means scrolling outwards. Call this in child c..."]; +} diff --git a/docs/html/class_intelli_tool_polygon_aa36b012b48311c36e7cd6771a5081427_cgraph.dot b/docs/html/class_intelli_tool_polygon_aa36b012b48311c36e7cd6771a5081427_cgraph.dot index 3077f0c..0639fba 100644 --- a/docs/html/class_intelli_tool_polygon_aa36b012b48311c36e7cd6771a5081427_cgraph.dot +++ b/docs/html/class_intelli_tool_polygon_aa36b012b48311c36e7cd6771a5081427_cgraph.dot @@ -4,7 +4,7 @@ digraph "IntelliToolPolygon::onMouseRightPressed" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolPolygon\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; + Node1 [label="IntelliToolPolygon\l::onMouseRightPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the right click pressed of a mouse. Resetting the current fill."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool::onMouseRight\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966",tooltip="A function managing the right click Pressed of a Mouse. Constructing the Canvas to draw on...."]; } diff --git a/docs/html/class_intelli_tool_polygon_ad5d3b741be6d0647a9cdc9da2cb8bc3d_cgraph.dot b/docs/html/class_intelli_tool_polygon_ad5d3b741be6d0647a9cdc9da2cb8bc3d_cgraph.dot index 7d2af7b..20f9501 100644 --- a/docs/html/class_intelli_tool_polygon_ad5d3b741be6d0647a9cdc9da2cb8bc3d_cgraph.dot +++ b/docs/html/class_intelli_tool_polygon_ad5d3b741be6d0647a9cdc9da2cb8bc3d_cgraph.dot @@ -4,22 +4,16 @@ digraph "IntelliToolPolygon::onMouseLeftPressed" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="IntelliToolPolygon\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node1 [label="IntelliToolPolygon\l::onMouseLeftPressed",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function managing the left click pressed of a mouse. Setting polygon points."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node3 [label="IntelliImage::drawLine",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31",tooltip="A function that draws A Line between two given Points in a given color."]; Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliImage::drawPlain",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#a6be622810dc2bc756054bb5769becb06",tooltip="A function that clears the whole image in a given Color."]; + Node4 [label="IntelliImage::drawPoint",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#a2e787f1b333b59401643936ebb3dcfe1",tooltip="A."]; Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node5 [label="IntelliImage::drawPoint",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#a2e787f1b333b59401643936ebb3dcfe1",tooltip="A."]; + Node5 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7",tooltip="A function to read the primary selected color."]; Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node6 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7",tooltip="A function to read the primary selected color."]; - Node1 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node7 [label="PaintingArea::getHeightActive\lLayer",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a1511a534e206089fff1d325e7ec7a8eb",tooltip=" "]; - Node1 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node8 [label="PaintingArea::getWidthActive\lLayer",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a427c5fc26480c7ae80b3480e85510bda",tooltip=" "]; - Node1 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node9 [label="IntelliTool::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; - Node9 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="IntelliTool::onMouseLeft\lPressed",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c",tooltip="A function managing the left click Pressed of a Mouse. Resetting the current draw...."]; + Node6 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; } diff --git a/docs/html/class_intelli_tool_rectangle-members.html b/docs/html/class_intelli_tool_rectangle-members.html index f442df9..b532908 100644 --- a/docs/html/class_intelli_tool_rectangle-members.html +++ b/docs/html/class_intelli_tool_rectangle-members.html @@ -30,7 +30,7 @@ diff --git a/docs/html/class_intelli_tool_rectangle.html b/docs/html/class_intelli_tool_rectangle.html index 3f8e633..1b57256 100644 --- a/docs/html/class_intelli_tool_rectangle.html +++ b/docs/html/class_intelli_tool_rectangle.html @@ -30,7 +30,7 @@ @@ -147,10 +147,10 @@ Public Member Functions Additional Inherited Members - + - + diff --git a/docs/html/class_intelli_tool_rectangle__coll__graph.dot b/docs/html/class_intelli_tool_rectangle__coll__graph.dot index 0334832..7695fd2 100644 --- a/docs/html/class_intelli_tool_rectangle__coll__graph.dot +++ b/docs/html/class_intelli_tool_rectangle__coll__graph.dot @@ -7,13 +7,13 @@ digraph "IntelliToolRectangle" Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliTool",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool.html",tooltip="An abstract class that manages the basic events, like mouse clicks or scrolls events."]; Node3 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Area" ,fontname="Helvetica"]; - Node3 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip=" "]; + Node3 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip="The PaintingArea class manages the methods and stores information about the current painting area,..."]; Node4 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node4 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; Node5 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" colorPicker" ,fontname="Helvetica"]; Node5 [label="IntelliColorPicker",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html",tooltip="The IntelliColorPicker manages the selected colors for one whole project."]; Node6 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" Canvas\nActive" ,fontname="Helvetica"]; - Node6 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip=" "]; + Node6 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip="The LayerObject struct holds all the information needed to construct a layer."]; Node7 -> Node6 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" image" ,fontname="Helvetica"]; Node7 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip="An abstract class which manages the basic IntelliImage operations."]; } diff --git a/docs/html/class_painting_area-members.html b/docs/html/class_painting_area-members.html index 0727276..c5dd00b 100644 --- a/docs/html/class_painting_area-members.html +++ b/docs/html/class_painting_area-members.html @@ -30,7 +30,7 @@ @@ -98,13 +98,17 @@ $(document).ready(function(){initNavTree('class_painting_area.html','');}); + + + + - - + + diff --git a/docs/html/class_painting_area.html b/docs/html/class_painting_area.html index db0260d..312e51c 100644 --- a/docs/html/class_painting_area.html +++ b/docs/html/class_painting_area.html @@ -30,7 +30,7 @@ @@ -96,6 +96,9 @@ $(document).ready(function(){initNavTree('class_painting_area.html','');});
    +

    The PaintingArea class manages the methods and stores information about the current painting area, which is the currently opened project. + More...

    +

    #include <PaintingArea.h>

    Inheritance diagram for PaintingArea:
    @@ -111,41 +114,58 @@ Collaboration diagram for PaintingArea:
    + +
    value- The absolute the scroll has changed.
    IntelliPhoto -  0.4 +  0.5
    IntelliPhoto -  0.4 +  0.5
    - Protected Attributes inherited from IntelliTool
    PaintingAreaArea
     A pointer to the general PaintingArea to interact with. More...
     A pointer to the general PaintingArea to interact with. More...
     
    IntelliColorPickercolorPicker
     A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors. More...
     A pointer to the IntelliColorPicker of the PaintingArea to interact with, and get the colors. More...
     
    LayerObjectActive
     A pointer to the underlying active Layer, do not work on this. This is used for data grabbing or previews. More...
    IntelliPhoto -  0.4 +  0.5
    colorPickerSetFirstColor()PaintingArea
    colorPickerSetSecondColor()PaintingArea
    colorPickerSwitchColor()PaintingArea
    createCircleTool()PaintingArea
    createFloodFillTool()PaintingArea
    createLineTool()PaintingArea
    createPenTool()PaintingArea
    createPlainTool()PaintingArea
    createPolygonTool()PaintingArea
    createRectangleTool()PaintingArea
    deleteLayer(int index)PaintingArea
    floodFill(int r, int g, int b, int a)PaintingArea
    getHeightActiveLayer()PaintingArea
    getWidthActiveLayer()PaintingArea
    getHeightOfActive()PaintingArea
    getWidthOfActive()PaintingArea
    mouseMoveEvent(QMouseEvent *event) overridePaintingAreaprotected
    mousePressEvent(QMouseEvent *event) overridePaintingAreaprotected
    mouseReleaseEvent(QMouseEvent *event) overridePaintingAreaprotected
    IntelliPhoto -  0.4 +  0.5

    Public Slots

    void slotActivateLayer (int a)
     The slotActivateLayer method handles the event of selecting one layer as active. More...
     
    void slotDeleteActiveLayer ()
     The slotDeleteActiveLayer method handles the deletion of the active layer. More...
     
    + + + + + + + + + + + + + + + @@ -153,10 +173,20 @@ Public Member Functions - - - - + + + + + + + + + + + + + +

    Public Member Functions

     PaintingArea (int maxWidth=600, int maxHeight=600, QWidget *parent=nullptr)
     PaintingArea is the constructor of the PaintingArea class, which initiates the working environment. More...
     
     ~PaintingArea () override
     This deconstructor is used to clear up the memory and remove the currently active window. More...
     
    bool open (const QString &fileName)
     The open method is used for loading a picture into the current layer. More...
     
    bool save (const QString &fileName, const char *fileFormat)
     The save method is used for exporting the current project as one picture. More...
     
    int addLayer (int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
     The addLayer adds a layer to the current project/ painting area. More...
     
    int addLayerAt (int idx, int width, int height, int widthOffset=0, int heightOffset=0, ImageType type=ImageType::Raster_Image)
     The addLayerAt adds a layer to the current project/ painting area at a specific position in the layer stack. More...
     
    void deleteLayer (int index)
     The deleteLayer method removes a layer at a given index. More...
     
    void setLayerToActive (int index)
     The setLayerToActive method marks a specific layer as active. More...
     
    void setAlphaOfLayer (int index, int alpha)
     The setAlphaOfLayer method sets the alpha value of a specific layer. More...
     
    void floodFill (int r, int g, int b, int a)
     The floodFill method fills a the active layer with a given color. More...
     
    void movePositionActive (int x, int y)
     The movePositionActive method moves the active layer to certain position. More...
     
    void moveActiveLayer (int idx)
     The moveActiveLayer moves the active layer to a specific position in the layer stack. More...
     
    void colorPickerSetFirstColor ()
     The colorPickerSetFirstColor calls the QTColorPicker to determine the primary drawing color. More...
     
    void colorPickerSetSecondColor ()
     The colorPickerSetSecondColor calls the QTColorPicker to determine the secondary drawing color. More...
     
    void colorPickerSwitchColor ()
     The colorPickerSwitchColor swaps the primary color with the secondary drawing color. More...
     
    void createPenTool ()
     
     
    void createLineTool ()
     
    int getWidthActiveLayer ()
     
    int getHeightActiveLayer ()
     
    void createRectangleTool ()
     
    void createCircleTool ()
     
    void createPolygonTool ()
     
    void createFloodFillTool ()
     
    int getWidthOfActive ()
     The getWidthOfActive gets the horizontal dimensions of the active layer. More...
     
    int getHeightOfActive ()
     The getHeightOfActive gets the vertical dimensions of the active layer. More...
     
    @@ -174,8 +204,9 @@ Protected Member Functions

    Protected Member Functions

     

    Detailed Description

    -
    -

    Definition at line 25 of file PaintingArea.h.

    +

    The PaintingArea class manages the methods and stores information about the current painting area, which is the currently opened project.

    + +

    Definition at line 36 of file PaintingArea.h.

    Constructor & Destructor Documentation

    ◆ PaintingArea()

    @@ -209,6 +240,16 @@ Protected Member Functions
    +

    PaintingArea is the constructor of the PaintingArea class, which initiates the working environment.

    +
    Parameters
    + + + + +
    maxWidth- The maximum amount of pixles that are inside painting area from left to right (default=600px)
    maxHeight- The maximum amount of pixles that are inside painting area from top to bottom (default=600px)
    parent- The parent window of the main window (default=nullptr)
    +
    +
    +

    Definition at line 21 of file PaintingArea.cpp.

    Here is the call graph for this function:
    @@ -241,7 +282,9 @@ Here is the call graph for this function:
    -

    Definition at line 43 of file PaintingArea.cpp.

    +

    This deconstructor is used to clear up the memory and remove the currently active window.

    + +

    Definition at line 41 of file PaintingArea.cpp.

    @@ -290,7 +333,20 @@ Here is the call graph for this function:
    -

    Definition at line 58 of file PaintingArea.cpp.

    +

    The addLayer adds a layer to the current project/ painting area.

    +
    Parameters
    + + + + + + +
    width- Width of the layer in pixles
    height- Height of the layer in pixles
    widthOffset- Offset of the layer measured to the left border of the painting area in pixles
    heightOffset- Offset of the layer measured to the top border of the painting area in pixles
    type- Defining the ImageType of the new layer
    +
    +
    +
    Returns
    Returns the number of layers in the project
    + +

    Definition at line 56 of file PaintingArea.cpp.

    Here is the caller graph for this function:
    @@ -349,6 +405,20 @@ Here is the caller graph for this function:
    +

    The addLayerAt adds a layer to the current project/ painting area at a specific position in the layer stack.

    +
    Parameters
    + + + + + + + +
    idx- ID of the position the new layer should be added
    width- Width of the layer in pixles
    height- Height of the layer in pixles
    widthOffset- Offset of the layer measured to the left border of the painting area in pixles
    heightOffset- Offset of the layer measured to the top border of the painting area in pixles
    type- Defining the ImageType of the new layer
    +
    +
    +
    Returns
    Returns the id of the layer position
    +
    @@ -366,7 +436,9 @@ Here is the caller graph for this function:
    -

    Definition at line 168 of file PaintingArea.cpp.

    +

    The colorPickerSetFirstColor calls the QTColorPicker to determine the primary drawing color.

    + +

    Definition at line 166 of file PaintingArea.cpp.

    Here is the call graph for this function:
    @@ -390,7 +462,9 @@ Here is the call graph for this function:
    -

    Definition at line 173 of file PaintingArea.cpp.

    +

    The colorPickerSetSecondColor calls the QTColorPicker to determine the secondary drawing color.

    + +

    Definition at line 171 of file PaintingArea.cpp.

    Here is the call graph for this function:
    @@ -414,13 +488,53 @@ Here is the call graph for this function:
    -

    Definition at line 178 of file PaintingArea.cpp.

    +

    The colorPickerSwitchColor swaps the primary color with the secondary drawing color.

    + +

    Definition at line 176 of file PaintingArea.cpp.

    Here is the call graph for this function:
    +
    + + +

    ◆ createCircleTool()

    + +
    +
    + + + + + + + +
    void PaintingArea::createCircleTool ()
    +
    + +

    Definition at line 200 of file PaintingArea.cpp.

    + +
    +
    + +

    ◆ createFloodFillTool()

    + +
    +
    + + + + + + + +
    void PaintingArea::createFloodFillTool ()
    +
    + +

    Definition at line 209 of file PaintingArea.cpp.

    +
    @@ -438,7 +552,7 @@ Here is the call graph for this function:
    -

    Definition at line 192 of file PaintingArea.cpp.

    +

    Definition at line 190 of file PaintingArea.cpp.

    @@ -457,7 +571,7 @@ Here is the call graph for this function:
    -

    Definition at line 182 of file PaintingArea.cpp.

    +

    Definition at line 180 of file PaintingArea.cpp.

    @@ -476,7 +590,45 @@ Here is the call graph for this function:
    -

    Definition at line 187 of file PaintingArea.cpp.

    +

    Definition at line 185 of file PaintingArea.cpp.

    + +
    + + +

    ◆ createPolygonTool()

    + +
    +
    + + + + + + + +
    void PaintingArea::createPolygonTool ()
    +
    + +

    Definition at line 204 of file PaintingArea.cpp.

    + +
    +
    + +

    ◆ createRectangleTool()

    + +
    +
    + + + + + + + +
    void PaintingArea::createRectangleTool ()
    +
    + +

    Definition at line 195 of file PaintingArea.cpp.

    @@ -496,7 +648,15 @@ Here is the call graph for this function:
    -

    Definition at line 75 of file PaintingArea.cpp.

    +

    The deleteLayer method removes a layer at a given index.

    +
    Parameters
    + + +
    index- The index of the layer to be removed
    +
    +
    + +

    Definition at line 73 of file PaintingArea.cpp.

    @@ -538,7 +698,18 @@ Here is the call graph for this function:
    -

    Definition at line 140 of file PaintingArea.cpp.

    +

    The floodFill method fills a the active layer with a given color.

    +
    Parameters
    + + + + + +
    r- Red value of the color the layer should be filled with
    g- Green value of the color the layer should be filled with
    b- Blue value of the color the layer should be filled with
    a- Alpha value of the color the layer should be filled with
    +
    +
    + +

    Definition at line 138 of file PaintingArea.cpp.

    Here is the call graph for this function:
    @@ -547,14 +718,14 @@ Here is the call graph for this function:
    - -

    ◆ getHeightActiveLayer()

    + +

    ◆ getHeightOfActive()

    - + @@ -562,23 +733,21 @@ Here is the call graph for this function:
    int PaintingArea::getHeightActiveLayer int PaintingArea::getHeightOfActive ( )
    -

    Definition at line 201 of file PaintingArea.cpp.

    -
    -Here is the caller graph for this function:
    -
    -
    -
    +

    The getHeightOfActive gets the vertical dimensions of the active layer.

    +
    Returns
    Returns the vertical pixle count of the active layer
    + +

    Definition at line 218 of file PaintingArea.cpp.

    - -

    ◆ getWidthActiveLayer()

    + +

    ◆ getWidthOfActive()

    - + @@ -586,12 +755,10 @@ Here is the caller graph for this function:
    int PaintingArea::getWidthActiveLayer int PaintingArea::getWidthOfActive ( )
    -

    Definition at line 197 of file PaintingArea.cpp.

    -
    -Here is the caller graph for this function:
    -
    -
    -
    +

    The getWidthOfActive gets the horizontal dimensions of the active layer.

    +
    Returns
    Returns the horizontal pixle count of the active layer
    + +

    Definition at line 214 of file PaintingArea.cpp.

    @@ -619,7 +786,7 @@ Here is the caller graph for this function:
    -

    Definition at line 224 of file PaintingArea.cpp.

    +

    Definition at line 241 of file PaintingArea.cpp.

    Here is the call graph for this function:
    @@ -652,7 +819,7 @@ Here is the call graph for this function:
    -

    Definition at line 208 of file PaintingArea.cpp.

    +

    Definition at line 225 of file PaintingArea.cpp.

    Here is the call graph for this function:
    @@ -685,7 +852,7 @@ Here is the call graph for this function:
    -

    Definition at line 234 of file PaintingArea.cpp.

    +

    Definition at line 251 of file PaintingArea.cpp.

    Here is the call graph for this function:
    @@ -710,7 +877,15 @@ Here is the call graph for this function:
    -

    Definition at line 154 of file PaintingArea.cpp.

    +

    The moveActiveLayer moves the active layer to a specific position in the layer stack.

    +
    Parameters
    + + +
    idx- The id of the new position the layer should be in
    +
    +
    + +

    Definition at line 152 of file PaintingArea.cpp.

    @@ -740,7 +915,16 @@ Here is the call graph for this function:
    -

    Definition at line 149 of file PaintingArea.cpp.

    +

    The movePositionActive method moves the active layer to certain position.

    +
    Parameters
    + + + +
    x- The x value the new center of the layer should be at
    y- The y value the new center of the layer should be at
    +
    +
    + +

    Definition at line 147 of file PaintingArea.cpp.

    @@ -760,7 +944,16 @@ Here is the call graph for this function:
    -

    Definition at line 104 of file PaintingArea.cpp.

    +

    The open method is used for loading a picture into the current layer.

    +
    Parameters
    + + +
    fileName- Path and filename which are used to determine where the to-be-opened file is stored
    +
    +
    +
    Returns
    Returns a boolean variable whether the file was successfully opened or not
    + +

    Definition at line 102 of file PaintingArea.cpp.

    Here is the call graph for this function:
    @@ -793,7 +986,7 @@ Here is the call graph for this function:
    -

    Definition at line 258 of file PaintingArea.cpp.

    +

    Definition at line 275 of file PaintingArea.cpp.

    @@ -821,7 +1014,7 @@ Here is the call graph for this function:
    -

    Definition at line 269 of file PaintingArea.cpp.

    +

    Definition at line 286 of file PaintingArea.cpp.

    @@ -851,7 +1044,17 @@ Here is the call graph for this function:
    -

    Definition at line 116 of file PaintingArea.cpp.

    +

    The save method is used for exporting the current project as one picture.

    +
    Parameters
    + + + +
    fileName
    fileFormat
    +
    +
    +
    Returns
    Returns a boolean variable, true if the file was saved successfully, false if not
    + +

    Definition at line 114 of file PaintingArea.cpp.

    @@ -881,7 +1084,16 @@ Here is the call graph for this function:
    -

    Definition at line 97 of file PaintingArea.cpp.

    +

    The setAlphaOfLayer method sets the alpha value of a specific layer.

    +
    Parameters
    + + + +
    index- Index of the layer where the change should be applied
    alpha- New alpha value of the layer
    +
    +
    + +

    Definition at line 95 of file PaintingArea.cpp.

    @@ -901,7 +1113,15 @@ Here is the call graph for this function:
    -

    Definition at line 91 of file PaintingArea.cpp.

    +

    The setLayerToActive method marks a specific layer as active.

    +
    Parameters
    + + +
    index- Index of the layer to be active
    +
    +
    + +

    Definition at line 89 of file PaintingArea.cpp.

    Here is the caller graph for this function:
    @@ -934,7 +1154,15 @@ Here is the caller graph for this function:
    -

    Definition at line 162 of file PaintingArea.cpp.

    +

    The slotActivateLayer method handles the event of selecting one layer as active.

    +
    Parameters
    + + +
    a- Index of the layer to be active
    +
    +
    + +

    Definition at line 160 of file PaintingArea.cpp.

    Here is the call graph for this function:
    @@ -966,7 +1194,9 @@ Here is the call graph for this function:
    -

    Definition at line 84 of file PaintingArea.cpp.

    +

    The slotDeleteActiveLayer method handles the deletion of the active layer.

    + +

    Definition at line 82 of file PaintingArea.cpp.

    @@ -994,7 +1224,7 @@ Here is the call graph for this function:
    -

    Definition at line 247 of file PaintingArea.cpp.

    +

    Definition at line 264 of file PaintingArea.cpp.

    Here is the call graph for this function:
    diff --git a/docs/html/class_painting_area.js b/docs/html/class_painting_area.js index 3ea95c4..8a0e1aa 100644 --- a/docs/html/class_painting_area.js +++ b/docs/html/class_painting_area.js @@ -7,13 +7,17 @@ var class_painting_area = [ "colorPickerSetFirstColor", "class_painting_area.html#a4735d4cf1dc58a9096d904e74c39c4df", null ], [ "colorPickerSetSecondColor", "class_painting_area.html#ae261acaaa346610dfed489dbac17e789", null ], [ "colorPickerSwitchColor", "class_painting_area.html#a66115307ff4a99cd7ca16423c5c8ecfb", null ], + [ "createCircleTool", "class_painting_area.html#a2d9f4b3585f7dd1acb11f432ca503466", null ], + [ "createFloodFillTool", "class_painting_area.html#a0b22e18069b524f3e75857d203baf256", null ], [ "createLineTool", "class_painting_area.html#a240c33a7875addac86080cdfb0db036a", null ], [ "createPenTool", "class_painting_area.html#a96c6248e343e44b61cf2625cb6d21353", null ], [ "createPlainTool", "class_painting_area.html#a3de83443d2d5cf460ff48d0602070938", null ], + [ "createPolygonTool", "class_painting_area.html#a13c2f94644bea9c2d3123d0b7898f34b", null ], + [ "createRectangleTool", "class_painting_area.html#a5b04ce62ce024e307f54e0281f7ae4bd", null ], [ "deleteLayer", "class_painting_area.html#a6efad6f8ea060674b157b42b431cd173", null ], [ "floodFill", "class_painting_area.html#aeb5eb394b979ea90f2be9849fdda1774", null ], - [ "getHeightActiveLayer", "class_painting_area.html#a1511a534e206089fff1d325e7ec7a8eb", null ], - [ "getWidthActiveLayer", "class_painting_area.html#a427c5fc26480c7ae80b3480e85510bda", null ], + [ "getHeightOfActive", "class_painting_area.html#ac576f58aad03b4dcd47611b6a4b9abb4", null ], + [ "getWidthOfActive", "class_painting_area.html#a675ee91b26b1c58be6d833f279d81597", null ], [ "mouseMoveEvent", "class_painting_area.html#aa22e274b6094a9619f196cd7b49526b5", null ], [ "mousePressEvent", "class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15", null ], [ "mouseReleaseEvent", "class_painting_area.html#a35b5df914acb608cc29717659793359c", null ], diff --git a/docs/html/class_painting_area__coll__graph.dot b/docs/html/class_painting_area__coll__graph.dot index bbbc79f..17b1cda 100644 --- a/docs/html/class_painting_area__coll__graph.dot +++ b/docs/html/class_painting_area__coll__graph.dot @@ -3,7 +3,7 @@ digraph "PaintingArea" // LATEX_PDF_SIZE edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; - Node1 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The PaintingArea class manages the methods and stores information about the current painting area,..."]; Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; } diff --git a/docs/html/class_painting_area__inherit__graph.dot b/docs/html/class_painting_area__inherit__graph.dot index bbbc79f..17b1cda 100644 --- a/docs/html/class_painting_area__inherit__graph.dot +++ b/docs/html/class_painting_area__inherit__graph.dot @@ -3,7 +3,7 @@ digraph "PaintingArea" // LATEX_PDF_SIZE edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; - Node1 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The PaintingArea class manages the methods and stores information about the current painting area,..."]; Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; } diff --git a/docs/html/class_painting_area_a1d6d86c25efdce9fe9031a9cd01c74c8_icgraph.dot b/docs/html/class_painting_area_a1d6d86c25efdce9fe9031a9cd01c74c8_icgraph.dot index 4954290..3f0d948 100644 --- a/docs/html/class_painting_area_a1d6d86c25efdce9fe9031a9cd01c74c8_icgraph.dot +++ b/docs/html/class_painting_area_a1d6d86c25efdce9fe9031a9cd01c74c8_icgraph.dot @@ -4,7 +4,7 @@ digraph "PaintingArea::setLayerToActive" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="RL"; - Node1 [label="PaintingArea::setLayerTo\lActive",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="PaintingArea::setLayerTo\lActive",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The setLayerToActive method marks a specific layer as active."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="PaintingArea::slotActivate\lLayer",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a71ac281e0de263208d4a3b9de74258ec",tooltip=" "]; + Node2 [label="PaintingArea::slotActivate\lLayer",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a71ac281e0de263208d4a3b9de74258ec",tooltip="The slotActivateLayer method handles the event of selecting one layer as active."]; } diff --git a/docs/html/class_painting_area_a1f597740b4d7b4bc2e24c51f8cb0b6eb_cgraph.dot b/docs/html/class_painting_area_a1f597740b4d7b4bc2e24c51f8cb0b6eb_cgraph.dot index e2bd596..9be7a8f 100644 --- a/docs/html/class_painting_area_a1f597740b4d7b4bc2e24c51f8cb0b6eb_cgraph.dot +++ b/docs/html/class_painting_area_a1f597740b4d7b4bc2e24c51f8cb0b6eb_cgraph.dot @@ -4,7 +4,7 @@ digraph "PaintingArea::open" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="PaintingArea::open",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="PaintingArea::open",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The open method is used for loading a picture into the current layer."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliImage::calculateVisiblity",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2",tooltip="An abstract function that calculates the visiblity of the Image data if needed."]; Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; diff --git a/docs/html/class_painting_area_a39ad76e1319659bfa38eee88ef33d395_icgraph.dot b/docs/html/class_painting_area_a39ad76e1319659bfa38eee88ef33d395_icgraph.dot index 1f5dc6b..5bc9f21 100644 --- a/docs/html/class_painting_area_a39ad76e1319659bfa38eee88ef33d395_icgraph.dot +++ b/docs/html/class_painting_area_a39ad76e1319659bfa38eee88ef33d395_icgraph.dot @@ -4,7 +4,7 @@ digraph "PaintingArea::addLayer" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="RL"; - Node1 [label="PaintingArea::addLayer",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="PaintingArea::addLayer",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The addLayer adds a layer to the current project/ painting area."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="PaintingArea::PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a4fa0ec23e78cc59f28c823584c721460",tooltip=" "]; + Node2 [label="PaintingArea::PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a4fa0ec23e78cc59f28c823584c721460",tooltip="PaintingArea is the constructor of the PaintingArea class, which initiates the working environment."]; } diff --git a/docs/html/class_painting_area_a4735d4cf1dc58a9096d904e74c39c4df_cgraph.dot b/docs/html/class_painting_area_a4735d4cf1dc58a9096d904e74c39c4df_cgraph.dot index 8b56d93..5f9be65 100644 --- a/docs/html/class_painting_area_a4735d4cf1dc58a9096d904e74c39c4df_cgraph.dot +++ b/docs/html/class_painting_area_a4735d4cf1dc58a9096d904e74c39c4df_cgraph.dot @@ -4,7 +4,7 @@ digraph "PaintingArea::colorPickerSetFirstColor" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="PaintingArea::colorPicker\lSetFirstColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="PaintingArea::colorPicker\lSetFirstColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The colorPickerSetFirstColor calls the QTColorPicker to determine the primary drawing color."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliColorPicker\l::getFirstColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7",tooltip="A function to read the primary selected color."]; Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; diff --git a/docs/html/class_painting_area_a4fa0ec23e78cc59f28c823584c721460_cgraph.dot b/docs/html/class_painting_area_a4fa0ec23e78cc59f28c823584c721460_cgraph.dot index 565e40e..2e73c54 100644 --- a/docs/html/class_painting_area_a4fa0ec23e78cc59f28c823584c721460_cgraph.dot +++ b/docs/html/class_painting_area_a4fa0ec23e78cc59f28c823584c721460_cgraph.dot @@ -4,7 +4,7 @@ digraph "PaintingArea::PaintingArea" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="PaintingArea::PaintingArea",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="PaintingArea::PaintingArea",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="PaintingArea is the constructor of the PaintingArea class, which initiates the working environment."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="PaintingArea::addLayer",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a39ad76e1319659bfa38eee88ef33d395",tooltip=" "]; + Node2 [label="PaintingArea::addLayer",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a39ad76e1319659bfa38eee88ef33d395",tooltip="The addLayer adds a layer to the current project/ painting area."]; } diff --git a/docs/html/class_painting_area_a66115307ff4a99cd7ca16423c5c8ecfb_cgraph.dot b/docs/html/class_painting_area_a66115307ff4a99cd7ca16423c5c8ecfb_cgraph.dot index f798aff..8d4eb30 100644 --- a/docs/html/class_painting_area_a66115307ff4a99cd7ca16423c5c8ecfb_cgraph.dot +++ b/docs/html/class_painting_area_a66115307ff4a99cd7ca16423c5c8ecfb_cgraph.dot @@ -4,7 +4,7 @@ digraph "PaintingArea::colorPickerSwitchColor" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="PaintingArea::colorPicker\lSwitchColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="PaintingArea::colorPicker\lSwitchColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The colorPickerSwitchColor swaps the primary color with the secondary drawing color."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliColorPicker\l::switchColors",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#a437a6f20bf2fc0a4cbaf4c030c2a26d9",tooltip="A function switching primary and secondary color."]; } diff --git a/docs/html/class_painting_area_a71ac281e0de263208d4a3b9de74258ec_cgraph.dot b/docs/html/class_painting_area_a71ac281e0de263208d4a3b9de74258ec_cgraph.dot index fe57809..ebfbcb4 100644 --- a/docs/html/class_painting_area_a71ac281e0de263208d4a3b9de74258ec_cgraph.dot +++ b/docs/html/class_painting_area_a71ac281e0de263208d4a3b9de74258ec_cgraph.dot @@ -4,7 +4,7 @@ digraph "PaintingArea::slotActivateLayer" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="PaintingArea::slotActivate\lLayer",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="PaintingArea::slotActivate\lLayer",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The slotActivateLayer method handles the event of selecting one layer as active."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="PaintingArea::setLayerTo\lActive",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a1d6d86c25efdce9fe9031a9cd01c74c8",tooltip=" "]; + Node2 [label="PaintingArea::setLayerTo\lActive",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html#a1d6d86c25efdce9fe9031a9cd01c74c8",tooltip="The setLayerToActive method marks a specific layer as active."]; } diff --git a/docs/html/class_painting_area_ae261acaaa346610dfed489dbac17e789_cgraph.dot b/docs/html/class_painting_area_ae261acaaa346610dfed489dbac17e789_cgraph.dot index 41ee9e5..1325336 100644 --- a/docs/html/class_painting_area_ae261acaaa346610dfed489dbac17e789_cgraph.dot +++ b/docs/html/class_painting_area_ae261acaaa346610dfed489dbac17e789_cgraph.dot @@ -4,7 +4,7 @@ digraph "PaintingArea::colorPickerSetSecondColor" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="PaintingArea::colorPicker\lSetSecondColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="PaintingArea::colorPicker\lSetSecondColor",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The colorPickerSetSecondColor calls the QTColorPicker to determine the secondary drawing color."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliColorPicker\l::getSecondColor",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_color_picker.html#a55568fbf5dc783f06284b7031ffe9415",tooltip="A function to read the secondary selected color."]; Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; diff --git a/docs/html/class_painting_area_aeb5eb394b979ea90f2be9849fdda1774_cgraph.dot b/docs/html/class_painting_area_aeb5eb394b979ea90f2be9849fdda1774_cgraph.dot index 47b25d5..862e21e 100644 --- a/docs/html/class_painting_area_aeb5eb394b979ea90f2be9849fdda1774_cgraph.dot +++ b/docs/html/class_painting_area_aeb5eb394b979ea90f2be9849fdda1774_cgraph.dot @@ -4,7 +4,7 @@ digraph "PaintingArea::floodFill" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node1 [label="PaintingArea::floodFill",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="PaintingArea::floodFill",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The floodFill method fills a the active layer with a given color."]; Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliImage::drawPlain",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html#a6be622810dc2bc756054bb5769becb06",tooltip="A function that clears the whole image in a given Color."]; } diff --git a/docs/html/classes.html b/docs/html/classes.html index 2cbe10b..6b48435 100644 --- a/docs/html/classes.html +++ b/docs/html/classes.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/dir_000001_000002.html b/docs/html/dir_000001_000002.html index cb9561a..db127b7 100644 --- a/docs/html/dir_000001_000002.html +++ b/docs/html/dir_000001_000002.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/dir_000002_000006.html b/docs/html/dir_000002_000006.html index 374d590..1d9a22f 100644 --- a/docs/html/dir_000002_000006.html +++ b/docs/html/dir_000002_000006.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/dir_000003_000004.html b/docs/html/dir_000003_000004.html index fd0926b..e873f5c 100644 --- a/docs/html/dir_000003_000004.html +++ b/docs/html/dir_000003_000004.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/dir_000005_000004.html b/docs/html/dir_000005_000004.html index 0712604..5e6c776 100644 --- a/docs/html/dir_000005_000004.html +++ b/docs/html/dir_000005_000004.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/dir_000005_000006.html b/docs/html/dir_000005_000006.html index 9794adf..787fe4e 100644 --- a/docs/html/dir_000005_000006.html +++ b/docs/html/dir_000005_000006.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/dir_000006_000003.html b/docs/html/dir_000006_000003.html index 28c8d1c..3614e26 100644 --- a/docs/html/dir_000006_000003.html +++ b/docs/html/dir_000006_000003.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/dir_000006_000004.html b/docs/html/dir_000006_000004.html index 98789fb..ce51023 100644 --- a/docs/html/dir_000006_000004.html +++ b/docs/html/dir_000006_000004.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/dir_000006_000005.html b/docs/html/dir_000006_000005.html index 9699e4c..ab452cc 100644 --- a/docs/html/dir_000006_000005.html +++ b/docs/html/dir_000006_000005.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/dir_544f9dcb748f922e4bb3be2540380bf2.html b/docs/html/dir_544f9dcb748f922e4bb3be2540380bf2.html index 7f55492..131776e 100644 --- a/docs/html/dir_544f9dcb748f922e4bb3be2540380bf2.html +++ b/docs/html/dir_544f9dcb748f922e4bb3be2540380bf2.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/dir_5dabb14988a75c922e285f444641a133.html b/docs/html/dir_5dabb14988a75c922e285f444641a133.html index efdf2cf..aef6509 100644 --- a/docs/html/dir_5dabb14988a75c922e285f444641a133.html +++ b/docs/html/dir_5dabb14988a75c922e285f444641a133.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/dir_83a4347d11f2ba6343d546ab133722d2.html b/docs/html/dir_83a4347d11f2ba6343d546ab133722d2.html index d6e83ac..25ae04d 100644 --- a/docs/html/dir_83a4347d11f2ba6343d546ab133722d2.html +++ b/docs/html/dir_83a4347d11f2ba6343d546ab133722d2.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/dir_8db5f55022e7670536cbc9a6a1d6f01c.html b/docs/html/dir_8db5f55022e7670536cbc9a6a1d6f01c.html index 4abc834..d5a13c5 100644 --- a/docs/html/dir_8db5f55022e7670536cbc9a6a1d6f01c.html +++ b/docs/html/dir_8db5f55022e7670536cbc9a6a1d6f01c.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/dir_941490de56ac122cf77df9922cbcc750.html b/docs/html/dir_941490de56ac122cf77df9922cbcc750.html index f6acff6..f8d19cd 100644 --- a/docs/html/dir_941490de56ac122cf77df9922cbcc750.html +++ b/docs/html/dir_941490de56ac122cf77df9922cbcc750.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/dir_e6d96184223881d115efa44ca0dfa844.html b/docs/html/dir_e6d96184223881d115efa44ca0dfa844.html index a6c5309..8c9cebb 100644 --- a/docs/html/dir_e6d96184223881d115efa44ca0dfa844.html +++ b/docs/html/dir_e6d96184223881d115efa44ca0dfa844.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/dir_f50aa5156fe016a259583c412dbf440c.html b/docs/html/dir_f50aa5156fe016a259583c412dbf440c.html index 32b81c4..d052bde 100644 --- a/docs/html/dir_f50aa5156fe016a259583c412dbf440c.html +++ b/docs/html/dir_f50aa5156fe016a259583c412dbf440c.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/files.html b/docs/html/files.html index bb367d2..a909a2f 100644 --- a/docs/html/files.html +++ b/docs/html/files.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/functions.html b/docs/html/functions.html index fd10ff8..e4f084f 100644 --- a/docs/html/functions.html +++ b/docs/html/functions.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -143,6 +143,12 @@ $(document).ready(function(){initNavTree('functions.html','');});
  • colorPickerSwitchColor() : PaintingArea
  • +
  • createCircleTool() +: PaintingArea +
  • +
  • createFloodFillTool() +: PaintingArea +
  • createLineTool() : PaintingArea
  • @@ -152,6 +158,12 @@ $(document).ready(function(){initNavTree('functions.html','');});
  • createPlainTool() : PaintingArea
  • +
  • createPolygonTool() +: PaintingArea +
  • +
  • createRectangleTool() +: PaintingArea +
  • @@ -198,8 +210,8 @@ $(document).ready(function(){initNavTree('functions.html','');});
  • getFirstColor() : IntelliColorPicker
  • -
  • getHeightActiveLayer() -: PaintingArea +
  • getHeightOfActive() +: PaintingArea
  • getPixelColor() : IntelliImage @@ -211,18 +223,18 @@ $(document).ready(function(){initNavTree('functions.html','');});
  • getSecondColor() : IntelliColorPicker
  • -
  • getWidthActiveLayer() -: PaintingArea +
  • getWidthOfActive() +: PaintingArea
  • - h -

    @@ -469,6 +481,9 @@ $(document).ready(function(){initNavTree('functions.html','');});
  • ~IntelliToolPlainTool() : IntelliToolPlainTool
  • +
  • ~IntelliToolPolygon() +: IntelliToolPolygon +
  • ~IntelliToolRectangle() : IntelliToolRectangle
  • diff --git a/docs/html/functions_func.html b/docs/html/functions_func.html index 74d29d3..2dc3470 100644 --- a/docs/html/functions_func.html +++ b/docs/html/functions_func.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -115,6 +115,12 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
  • colorPickerSwitchColor() : PaintingArea
  • +
  • createCircleTool() +: PaintingArea +
  • +
  • createFloodFillTool() +: PaintingArea +
  • createLineTool() : PaintingArea
  • @@ -124,6 +130,12 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
  • createPlainTool() : PaintingArea
  • +
  • createPolygonTool() +: PaintingArea +
  • +
  • createRectangleTool() +: PaintingArea +
  • @@ -167,8 +179,8 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
  • getFirstColor() : IntelliColorPicker
  • -
  • getHeightActiveLayer() -: PaintingArea +
  • getHeightOfActive() +: PaintingArea
  • getPixelColor() : IntelliImage @@ -180,8 +192,8 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
  • getSecondColor() : IntelliColorPicker
  • -
  • getWidthActiveLayer() -: PaintingArea +
  • getWidthOfActive() +: PaintingArea
  • @@ -413,6 +425,9 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
  • ~IntelliToolPlainTool() : IntelliToolPlainTool
  • +
  • ~IntelliToolPolygon() +: IntelliToolPolygon +
  • ~IntelliToolRectangle() : IntelliToolRectangle
  • diff --git a/docs/html/functions_vars.html b/docs/html/functions_vars.html index 1842639..f3acbbc 100644 --- a/docs/html/functions_vars.html +++ b/docs/html/functions_vars.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -114,11 +114,11 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
  • drawing : IntelliTool
  • -
  • hight -: LayerObject +
  • height +: LayerObject
  • -
  • hightOffset -: LayerObject +
  • heightOffset +: LayerObject
  • image : LayerObject diff --git a/docs/html/globals.html b/docs/html/globals.html index 0b756c7..72b8b1c 100644 --- a/docs/html/globals.html +++ b/docs/html/globals.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/globals_enum.html b/docs/html/globals_enum.html index a5751ae..e6ce088 100644 --- a/docs/html/globals_enum.html +++ b/docs/html/globals_enum.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/globals_func.html b/docs/html/globals_func.html index 84487a8..fbf9e27 100644 --- a/docs/html/globals_func.html +++ b/docs/html/globals_func.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/graph_legend.html b/docs/html/graph_legend.html index f131b74..c07e6b7 100644 --- a/docs/html/graph_legend.html +++ b/docs/html/graph_legend.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/hierarchy.html b/docs/html/hierarchy.html index 0a72852..dc9a917 100644 --- a/docs/html/hierarchy.html +++ b/docs/html/hierarchy.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -106,11 +106,11 @@ This inheritance list is sorted roughly, but not completely, alphabetically: CIntelliToolPlainToolTool to fill the whole canvas with one color  CIntelliToolPolygonThe IntelliToolPolygon managed the Drawing of Polygonforms  CIntelliToolRectangleTool to draw a rectangle - CLayerObject + CLayerObjectThe LayerObject struct holds all the information needed to construct a layer  CQMainWindow - CIntelliPhotoGui + CIntelliPhotoGuiHandles the graphical user interface for the intelliPhoto program  CQWidget - CPaintingArea + CPaintingAreaManages the methods and stores information about the current painting area, which is the currently opened project  CTriangleThe Triangle struct holds the 3 vertices of a triangle diff --git a/docs/html/index.html b/docs/html/index.html index 1bf53be..a5c415e 100644 --- a/docs/html/index.html +++ b/docs/html/index.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/inherit_graph_2.dot b/docs/html/inherit_graph_2.dot index 3dc081c..5cd3f36 100644 --- a/docs/html/inherit_graph_2.dot +++ b/docs/html/inherit_graph_2.dot @@ -6,5 +6,5 @@ digraph "Graphical Class Hierarchy" rankdir="LR"; Node4 [label="QMainWindow",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; Node4 -> Node0 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node0 [label="IntelliPhotoGui",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_photo_gui.html",tooltip=" "]; + Node0 [label="IntelliPhotoGui",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_photo_gui.html",tooltip="The IntelliPhotoGui class handles the graphical user interface for the intelliPhoto program."]; } diff --git a/docs/html/inherit_graph_4.dot b/docs/html/inherit_graph_4.dot index 6da9d0d..cb85543 100644 --- a/docs/html/inherit_graph_4.dot +++ b/docs/html/inherit_graph_4.dot @@ -4,5 +4,5 @@ digraph "Graphical Class Hierarchy" edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; rankdir="LR"; - Node0 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip=" "]; + Node0 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$struct_layer_object.html",tooltip="The LayerObject struct holds all the information needed to construct a layer."]; } diff --git a/docs/html/inherit_graph_5.dot b/docs/html/inherit_graph_5.dot index e4093fd..88ed036 100644 --- a/docs/html/inherit_graph_5.dot +++ b/docs/html/inherit_graph_5.dot @@ -6,5 +6,5 @@ digraph "Graphical Class Hierarchy" rankdir="LR"; Node2 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "]; Node2 -> Node0 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node0 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip=" "]; + Node0 [label="PaintingArea",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_painting_area.html",tooltip="The PaintingArea class manages the methods and stores information about the current painting area,..."]; } diff --git a/docs/html/inherits.html b/docs/html/inherits.html index ea2edc0..7e22006 100644 --- a/docs/html/inherits.html +++ b/docs/html/inherits.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/main_8cpp.html b/docs/html/main_8cpp.html index a44d423..0bddc79 100644 --- a/docs/html/main_8cpp.html +++ b/docs/html/main_8cpp.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/main_8cpp_source.html b/docs/html/main_8cpp_source.html index 923916c..0a1d9f3 100644 --- a/docs/html/main_8cpp_source.html +++ b/docs/html/main_8cpp_source.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -94,22 +94,21 @@ $(document).ready(function(){initNavTree('main_8cpp_source.html','');});
    2 #include <QApplication>
    3 #include <QDebug>
    -
    5 #include<vector>
    +
    5 #include <vector>
    6 
    -
    7 int main(int argc, char *argv[]){
    -
    8  // The main application
    -
    9  QApplication app(argc, argv);
    +
    7 int main(int argc, char*argv[]){
    +
    8  // The main application
    +
    9  QApplication app(argc, argv);
    10 
    -
    11  //some nice ass looking comment
    -
    12  // Create and open the main window
    -
    13  IntelliPhotoGui window;
    -
    14  window.show();
    -
    15 
    -
    16  return app.exec();
    -
    17 }
    +
    11  // Create and open the main window
    +
    12  IntelliPhotoGui window;
    +
    13  window.show();
    +
    14 
    +
    15  return app.exec();
    +
    16 }
    - +
    The IntelliPhotoGui class handles the graphical user interface for the intelliPhoto program.
    int main(int argc, char *argv[])
    Definition: main.cpp:7
    diff --git a/docs/html/namespace_intelli_helper.html b/docs/html/namespace_intelli_helper.html index 8754cd8..fb35f79 100644 --- a/docs/html/namespace_intelli_helper.html +++ b/docs/html/namespace_intelli_helper.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -179,7 +179,7 @@ Here is the caller graph for this function:
    Returns
    Returns true if the point lies in the üpolygon, otherwise false.
    -

    Definition at line 115 of file IntelliHelper.cpp.

    +

    Definition at line 116 of file IntelliHelper.cpp.

    Here is the call graph for this function:
    diff --git a/docs/html/namespace_intelli_helper_a214dc3624ba4562a03dc922e3dd7b617_icgraph.dot b/docs/html/namespace_intelli_helper_a214dc3624ba4562a03dc922e3dd7b617_icgraph.dot index 2b66e54..b7b7796 100644 --- a/docs/html/namespace_intelli_helper_a214dc3624ba4562a03dc922e3dd7b617_icgraph.dot +++ b/docs/html/namespace_intelli_helper_a214dc3624ba4562a03dc922e3dd7b617_icgraph.dot @@ -6,7 +6,7 @@ digraph "IntelliHelper::calculateTriangles" rankdir="RL"; Node1 [label="IntelliHelper::calculate\lTriangles",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function to split a polygon in its spanning traingles by using Meisters Theorem of graph theory by ..."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliToolPolygon\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node2 [label="IntelliToolPolygon\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21",tooltip="A function managing the left click released of a mouse. Merging the fill to the active layer."]; Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node3 [label="IntelliShapedImage\l::setPolygon",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_shaped_image.html#a4b69d75de7a3b85032482982f249458e",tooltip="A function that sets the data of the visible Polygon."]; Node3 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; diff --git a/docs/html/namespace_intelli_helper_a44d516b3e619e2a743e9c98dd75cf901_icgraph.dot b/docs/html/namespace_intelli_helper_a44d516b3e619e2a743e9c98dd75cf901_icgraph.dot index 8e38406..90d49af 100644 --- a/docs/html/namespace_intelli_helper_a44d516b3e619e2a743e9c98dd75cf901_icgraph.dot +++ b/docs/html/namespace_intelli_helper_a44d516b3e619e2a743e9c98dd75cf901_icgraph.dot @@ -6,5 +6,5 @@ digraph "IntelliHelper::isInPolygon" rankdir="RL"; Node1 [label="IntelliHelper::isInPolygon",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="A function to check if a point lies in a polygon by checking its spanning triangles."]; Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node2 [label="IntelliToolPolygon\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node2 [label="IntelliToolPolygon\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21",tooltip="A function managing the left click released of a mouse. Merging the fill to the active layer."]; } diff --git a/docs/html/namespace_intelli_helper_a9fcfe72f00e870be4a8ab9f2e17483c9_icgraph.dot b/docs/html/namespace_intelli_helper_a9fcfe72f00e870be4a8ab9f2e17483c9_icgraph.dot index 8bb3cf6..91522d0 100644 --- a/docs/html/namespace_intelli_helper_a9fcfe72f00e870be4a8ab9f2e17483c9_icgraph.dot +++ b/docs/html/namespace_intelli_helper_a9fcfe72f00e870be4a8ab9f2e17483c9_icgraph.dot @@ -8,5 +8,5 @@ digraph "IntelliHelper::isInTriangle" Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node2 [label="IntelliHelper::isInPolygon",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$namespace_intelli_helper.html#a44d516b3e619e2a743e9c98dd75cf901",tooltip="A function to check if a point lies in a polygon by checking its spanning triangles."]; Node2 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node3 [label="IntelliToolPolygon\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node3 [label="IntelliToolPolygon\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21",tooltip="A function managing the left click released of a mouse. Merging the fill to the active layer."]; } diff --git a/docs/html/namespace_intelli_helper_afdd9fe78cc5d21b59642910220768149_icgraph.dot b/docs/html/namespace_intelli_helper_afdd9fe78cc5d21b59642910220768149_icgraph.dot index 2e582d4..cee7661 100644 --- a/docs/html/namespace_intelli_helper_afdd9fe78cc5d21b59642910220768149_icgraph.dot +++ b/docs/html/namespace_intelli_helper_afdd9fe78cc5d21b59642910220768149_icgraph.dot @@ -10,5 +10,5 @@ digraph "IntelliHelper::sign" Node2 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; Node3 [label="IntelliHelper::isInPolygon",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$namespace_intelli_helper.html#a44d516b3e619e2a743e9c98dd75cf901",tooltip="A function to check if a point lies in a polygon by checking its spanning triangles."]; Node3 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; - Node4 [label="IntelliToolPolygon\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21",tooltip="A function managing the left click Released of a Mouse. Call this in child classes!"]; + Node4 [label="IntelliToolPolygon\l::onMouseLeftReleased",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21",tooltip="A function managing the left click released of a mouse. Merging the fill to the active layer."]; } diff --git a/docs/html/namespacemembers.html b/docs/html/namespacemembers.html index 7afc321..598a5ef 100644 --- a/docs/html/namespacemembers.html +++ b/docs/html/namespacemembers.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/namespacemembers_func.html b/docs/html/namespacemembers_func.html index a86ac32..6f55519 100644 --- a/docs/html/namespacemembers_func.html +++ b/docs/html/namespacemembers_func.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/namespaces.html b/docs/html/namespaces.html index b255d4d..442f96e 100644 --- a/docs/html/namespaces.html +++ b/docs/html/namespaces.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/navtreedata.js b/docs/html/navtreedata.js index fbfe306..e6aefa6 100644 --- a/docs/html/navtreedata.js +++ b/docs/html/navtreedata.js @@ -54,7 +54,7 @@ var NAVTREE = var NAVTREEINDEX = [ "_intelli_color_picker_8h.html", -"struct_layer_object.html#a4b1729dbf7d3490e4c2776e29ffef8b0" +"namespacemembers_func.html" ]; var SYNCONMSG = 'click to disable panel synchronisation'; diff --git a/docs/html/navtreeindex0.js b/docs/html/navtreeindex0.js index 8f12a09..2a1d8f4 100644 --- a/docs/html/navtreeindex0.js +++ b/docs/html/navtreeindex0.js @@ -178,12 +178,13 @@ var NAVTREEINDEX0 = "class_intelli_tool_plain_tool.html#ad7546a6335bb3bb4cbf0e1883788d41c":[1,0,10,4], "class_intelli_tool_plain_tool.html#adc004ea421e2cc0ac39cc7a6b6d43d0d":[1,0,10,7], "class_intelli_tool_polygon.html":[1,0,11], -"class_intelli_tool_polygon.html#a0e3a1135f04c73c159137ae219a38922":[1,0,11,3], -"class_intelli_tool_polygon.html#a47cad87cd02b128b02dc929713bd1d1b":[1,0,11,5], -"class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21":[1,0,11,2], -"class_intelli_tool_polygon.html#a713103300c9f023d64d9eec5ac05dd17":[1,0,11,6], -"class_intelli_tool_polygon.html#aa36b012b48311c36e7cd6771a5081427":[1,0,11,4], -"class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d":[1,0,11,1], +"class_intelli_tool_polygon.html#a087cbf2254010989df6106a357471499":[1,0,11,1], +"class_intelli_tool_polygon.html#a0e3a1135f04c73c159137ae219a38922":[1,0,11,4], +"class_intelli_tool_polygon.html#a47cad87cd02b128b02dc929713bd1d1b":[1,0,11,6], +"class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21":[1,0,11,3], +"class_intelli_tool_polygon.html#a713103300c9f023d64d9eec5ac05dd17":[1,0,11,7], +"class_intelli_tool_polygon.html#aa36b012b48311c36e7cd6771a5081427":[1,0,11,5], +"class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d":[1,0,11,2], "class_intelli_tool_polygon.html#ae6e5f07fdf88d12029410a032dc4921d":[1,0,11,0], "class_intelli_tool_rectangle.html":[1,0,12], "class_intelli_tool_rectangle.html#a445c53a56e859f970e59f5036e221e0c":[1,0,12,7], @@ -195,34 +196,38 @@ var NAVTREEINDEX0 = "class_intelli_tool_rectangle.html#ad43f653256a6516b9398f82054be0d7f":[1,0,12,6], "class_intelli_tool_rectangle.html#ae03c307ccf66cbe3fd59e3657712368d":[1,0,12,2], "class_painting_area.html":[1,0,14], -"class_painting_area.html#a1511a534e206089fff1d325e7ec7a8eb":[1,0,14,12], -"class_painting_area.html#a1d6d86c25efdce9fe9031a9cd01c74c8":[1,0,14,24], -"class_painting_area.html#a1f597740b4d7b4bc2e24c51f8cb0b6eb":[1,0,14,19], -"class_painting_area.html#a1ff0b9c1227531943c9cec2c546fae5e":[1,0,14,26], -"class_painting_area.html#a240c33a7875addac86080cdfb0db036a":[1,0,14,7], -"class_painting_area.html#a35b5df914acb608cc29717659793359c":[1,0,14,16], +"class_painting_area.html#a0b22e18069b524f3e75857d203baf256":[1,0,14,8], +"class_painting_area.html#a13c2f94644bea9c2d3123d0b7898f34b":[1,0,14,12], +"class_painting_area.html#a1d6d86c25efdce9fe9031a9cd01c74c8":[1,0,14,28], +"class_painting_area.html#a1f597740b4d7b4bc2e24c51f8cb0b6eb":[1,0,14,23], +"class_painting_area.html#a1ff0b9c1227531943c9cec2c546fae5e":[1,0,14,30], +"class_painting_area.html#a240c33a7875addac86080cdfb0db036a":[1,0,14,9], +"class_painting_area.html#a2d9f4b3585f7dd1acb11f432ca503466":[1,0,14,7], +"class_painting_area.html#a35b5df914acb608cc29717659793359c":[1,0,14,20], "class_painting_area.html#a39ad76e1319659bfa38eee88ef33d395":[1,0,14,2], -"class_painting_area.html#a3de83443d2d5cf460ff48d0602070938":[1,0,14,9], -"class_painting_area.html#a427c5fc26480c7ae80b3480e85510bda":[1,0,14,13], +"class_painting_area.html#a3de83443d2d5cf460ff48d0602070938":[1,0,14,11], "class_painting_area.html#a4735d4cf1dc58a9096d904e74c39c4df":[1,0,14,4], -"class_painting_area.html#a4a8138b9508ee4ec87a7fca9160368a7":[1,0,14,20], +"class_painting_area.html#a4a8138b9508ee4ec87a7fca9160368a7":[1,0,14,24], "class_painting_area.html#a4fa0ec23e78cc59f28c823584c721460":[1,0,14,0], -"class_painting_area.html#a612176cc9d629d22fd3fe1a746cce564":[1,0,14,22], -"class_painting_area.html#a632848d99f44d33d7da2618fbc6775a4":[1,0,14,27], +"class_painting_area.html#a5b04ce62ce024e307f54e0281f7ae4bd":[1,0,14,13], +"class_painting_area.html#a612176cc9d629d22fd3fe1a746cce564":[1,0,14,26], +"class_painting_area.html#a632848d99f44d33d7da2618fbc6775a4":[1,0,14,31], "class_painting_area.html#a66115307ff4a99cd7ca16423c5c8ecfb":[1,0,14,6], -"class_painting_area.html#a6efad6f8ea060674b157b42b431cd173":[1,0,14,10], -"class_painting_area.html#a71ac281e0de263208d4a3b9de74258ec":[1,0,14,25], -"class_painting_area.html#a96c6248e343e44b61cf2625cb6d21353":[1,0,14,8], -"class_painting_area.html#aa22e274b6094a9619f196cd7b49526b5":[1,0,14,14], +"class_painting_area.html#a675ee91b26b1c58be6d833f279d81597":[1,0,14,17], +"class_painting_area.html#a6efad6f8ea060674b157b42b431cd173":[1,0,14,14], +"class_painting_area.html#a71ac281e0de263208d4a3b9de74258ec":[1,0,14,29], +"class_painting_area.html#a96c6248e343e44b61cf2625cb6d21353":[1,0,14,10], +"class_painting_area.html#aa22e274b6094a9619f196cd7b49526b5":[1,0,14,18], "class_painting_area.html#aa32adc113f77031945f73e33051931e8":[1,0,14,1], -"class_painting_area.html#ab57e8ccda60fff7187463a90e65c5335":[1,0,14,21], -"class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15":[1,0,14,15], -"class_painting_area.html#ac6d089f4357b22d9a9906fd4771de3e7":[1,0,14,18], -"class_painting_area.html#ae05f6893fb44bfcb34018573a609cd1a":[1,0,14,17], +"class_painting_area.html#ab57e8ccda60fff7187463a90e65c5335":[1,0,14,25], +"class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15":[1,0,14,19], +"class_painting_area.html#ac576f58aad03b4dcd47611b6a4b9abb4":[1,0,14,16], +"class_painting_area.html#ac6d089f4357b22d9a9906fd4771de3e7":[1,0,14,22], +"class_painting_area.html#ae05f6893fb44bfcb34018573a609cd1a":[1,0,14,21], "class_painting_area.html#ae261acaaa346610dfed489dbac17e789":[1,0,14,5], "class_painting_area.html#ae756003b49aead863b49616ea7a44cc0":[1,0,14,3], -"class_painting_area.html#aeb5eb394b979ea90f2be9849fdda1774":[1,0,14,11], -"class_painting_area.html#aec59be20f1c27135700754882dd6383d":[1,0,14,23], +"class_painting_area.html#aeb5eb394b979ea90f2be9849fdda1774":[1,0,14,15], +"class_painting_area.html#aec59be20f1c27135700754882dd6383d":[1,0,14,27], "classes.html":[1,1], "dir_544f9dcb748f922e4bb3be2540380bf2.html":[2,0,0,0,1], "dir_5dabb14988a75c922e285f444641a133.html":[2,0,0,0,0], @@ -244,10 +249,5 @@ var NAVTREEINDEX0 = "main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97":[2,0,0,0,5,0], "main_8cpp_source.html":[2,0,0,0,5], "namespace_intelli_helper.html":[0,0,0], -"namespacemembers.html":[0,1,0], -"namespacemembers_func.html":[0,1,1], -"namespaces.html":[0,0], -"pages.html":[], -"struct_layer_object.html":[1,0,13], -"struct_layer_object.html#a402cb1d9f20436032fe080681b80eb56":[1,0,13,0] +"namespacemembers.html":[0,1,0] }; diff --git a/docs/html/navtreeindex1.js b/docs/html/navtreeindex1.js index 8002805..12c8363 100644 --- a/docs/html/navtreeindex1.js +++ b/docs/html/navtreeindex1.js @@ -1,8 +1,13 @@ var NAVTREEINDEX1 = { -"struct_layer_object.html#a4b1729dbf7d3490e4c2776e29ffef8b0":[1,0,13,1], -"struct_layer_object.html#a6256486a76c38baa3f1c664f4d190743":[1,0,13,2], +"namespacemembers_func.html":[0,1,1], +"namespaces.html":[0,0], +"pages.html":[], +"struct_layer_object.html":[1,0,13], +"struct_layer_object.html#a08bacdcd64a0ae0eb5376f55329954bc":[1,0,13,2], +"struct_layer_object.html#a402cb1d9f20436032fe080681b80eb56":[1,0,13,0], "struct_layer_object.html#a72b44d27c7bbb60dde14f04ec240ab96":[1,0,13,5], +"struct_layer_object.html#ae0003fb815e50ed587a9897988befc90":[1,0,13,1], "struct_layer_object.html#af01a139bc8edfdbb338393874e89bd83":[1,0,13,3], "struct_layer_object.html#af261813df52ff0b0c82bfa57efeb9897":[1,0,13,4], "struct_triangle.html":[1,0,15], diff --git a/docs/html/search/all_10.js b/docs/html/search/all_10.js index fc37c6f..deecf15 100644 --- a/docs/html/search/all_10.js +++ b/docs/html/search/all_10.js @@ -1,15 +1,16 @@ var searchData= [ - ['_7eintellicolorpicker_125',['~IntelliColorPicker',['../class_intelli_color_picker.html#a40b975268a1f05249e8a49dde9a862ff',1,'IntelliColorPicker']]], - ['_7eintelliimage_126',['~IntelliImage',['../class_intelli_image.html#ac398bfa9ddd3185508a1e36ee15d80cc',1,'IntelliImage']]], - ['_7eintellirasterimage_127',['~IntelliRasterImage',['../class_intelli_raster_image.html#a844a2b58c43f7e01f2ca116286371bc8',1,'IntelliRasterImage']]], - ['_7eintellishapedimage_128',['~IntelliShapedImage',['../class_intelli_shaped_image.html#a43d63d8a814852d377ee2030658fbab9',1,'IntelliShapedImage']]], - ['_7eintellitool_129',['~IntelliTool',['../class_intelli_tool.html#a57fb1b27d364c9e3696eb928b75fa9f2',1,'IntelliTool']]], - ['_7eintellitoolcircle_130',['~IntelliToolCircle',['../class_intelli_tool_circle.html#a7a03b65b95d7b5d72e6a92c95f068954',1,'IntelliToolCircle']]], - ['_7eintellitoolfloodfill_131',['~IntelliToolFloodFill',['../class_intelli_tool_flood_fill.html#a83b1bd8be0cbb32cdf61a9597ec849ba',1,'IntelliToolFloodFill']]], - ['_7eintellitoolline_132',['~IntelliToolLine',['../class_intelli_tool_line.html#acb600b0f4e9225ebce2937c2b7abb4c2',1,'IntelliToolLine']]], - ['_7eintellitoolpen_133',['~IntelliToolPen',['../class_intelli_tool_pen.html#ac77a025515d0fed6954556fe2b444818',1,'IntelliToolPen']]], - ['_7eintellitoolplaintool_134',['~IntelliToolPlainTool',['../class_intelli_tool_plain_tool.html#a91fe568be05c075814d67440472bb658',1,'IntelliToolPlainTool']]], - ['_7eintellitoolrectangle_135',['~IntelliToolRectangle',['../class_intelli_tool_rectangle.html#a7dc1463e726a21255e6297241dc71fb1',1,'IntelliToolRectangle']]], - ['_7epaintingarea_136',['~PaintingArea',['../class_painting_area.html#aa32adc113f77031945f73e33051931e8',1,'PaintingArea']]] + ['_7eintellicolorpicker_129',['~IntelliColorPicker',['../class_intelli_color_picker.html#a40b975268a1f05249e8a49dde9a862ff',1,'IntelliColorPicker']]], + ['_7eintelliimage_130',['~IntelliImage',['../class_intelli_image.html#ac398bfa9ddd3185508a1e36ee15d80cc',1,'IntelliImage']]], + ['_7eintellirasterimage_131',['~IntelliRasterImage',['../class_intelli_raster_image.html#a844a2b58c43f7e01f2ca116286371bc8',1,'IntelliRasterImage']]], + ['_7eintellishapedimage_132',['~IntelliShapedImage',['../class_intelli_shaped_image.html#a43d63d8a814852d377ee2030658fbab9',1,'IntelliShapedImage']]], + ['_7eintellitool_133',['~IntelliTool',['../class_intelli_tool.html#a57fb1b27d364c9e3696eb928b75fa9f2',1,'IntelliTool']]], + ['_7eintellitoolcircle_134',['~IntelliToolCircle',['../class_intelli_tool_circle.html#a7a03b65b95d7b5d72e6a92c95f068954',1,'IntelliToolCircle']]], + ['_7eintellitoolfloodfill_135',['~IntelliToolFloodFill',['../class_intelli_tool_flood_fill.html#a83b1bd8be0cbb32cdf61a9597ec849ba',1,'IntelliToolFloodFill']]], + ['_7eintellitoolline_136',['~IntelliToolLine',['../class_intelli_tool_line.html#acb600b0f4e9225ebce2937c2b7abb4c2',1,'IntelliToolLine']]], + ['_7eintellitoolpen_137',['~IntelliToolPen',['../class_intelli_tool_pen.html#ac77a025515d0fed6954556fe2b444818',1,'IntelliToolPen']]], + ['_7eintellitoolplaintool_138',['~IntelliToolPlainTool',['../class_intelli_tool_plain_tool.html#a91fe568be05c075814d67440472bb658',1,'IntelliToolPlainTool']]], + ['_7eintellitoolpolygon_139',['~IntelliToolPolygon',['../class_intelli_tool_polygon.html#a087cbf2254010989df6106a357471499',1,'IntelliToolPolygon']]], + ['_7eintellitoolrectangle_140',['~IntelliToolRectangle',['../class_intelli_tool_rectangle.html#a7dc1463e726a21255e6297241dc71fb1',1,'IntelliToolRectangle']]], + ['_7epaintingarea_141',['~PaintingArea',['../class_painting_area.html#aa32adc113f77031945f73e33051931e8',1,'PaintingArea']]] ]; diff --git a/docs/html/search/all_2.js b/docs/html/search/all_2.js index a4e8070..2624e5b 100644 --- a/docs/html/search/all_2.js +++ b/docs/html/search/all_2.js @@ -9,7 +9,11 @@ var searchData= ['colorpickersetfirstcolor_13',['colorPickerSetFirstColor',['../class_painting_area.html#a4735d4cf1dc58a9096d904e74c39c4df',1,'PaintingArea']]], ['colorpickersetsecondcolor_14',['colorPickerSetSecondColor',['../class_painting_area.html#ae261acaaa346610dfed489dbac17e789',1,'PaintingArea']]], ['colorpickerswitchcolor_15',['colorPickerSwitchColor',['../class_painting_area.html#a66115307ff4a99cd7ca16423c5c8ecfb',1,'PaintingArea']]], - ['createlinetool_16',['createLineTool',['../class_painting_area.html#a240c33a7875addac86080cdfb0db036a',1,'PaintingArea']]], - ['createpentool_17',['createPenTool',['../class_painting_area.html#a96c6248e343e44b61cf2625cb6d21353',1,'PaintingArea']]], - ['createplaintool_18',['createPlainTool',['../class_painting_area.html#a3de83443d2d5cf460ff48d0602070938',1,'PaintingArea']]] + ['createcircletool_16',['createCircleTool',['../class_painting_area.html#a2d9f4b3585f7dd1acb11f432ca503466',1,'PaintingArea']]], + ['createfloodfilltool_17',['createFloodFillTool',['../class_painting_area.html#a0b22e18069b524f3e75857d203baf256',1,'PaintingArea']]], + ['createlinetool_18',['createLineTool',['../class_painting_area.html#a240c33a7875addac86080cdfb0db036a',1,'PaintingArea']]], + ['createpentool_19',['createPenTool',['../class_painting_area.html#a96c6248e343e44b61cf2625cb6d21353',1,'PaintingArea']]], + ['createplaintool_20',['createPlainTool',['../class_painting_area.html#a3de83443d2d5cf460ff48d0602070938',1,'PaintingArea']]], + ['createpolygontool_21',['createPolygonTool',['../class_painting_area.html#a13c2f94644bea9c2d3123d0b7898f34b',1,'PaintingArea']]], + ['createrectangletool_22',['createRectangleTool',['../class_painting_area.html#a5b04ce62ce024e307f54e0281f7ae4bd',1,'PaintingArea']]] ]; diff --git a/docs/html/search/all_3.js b/docs/html/search/all_3.js index 9a63d54..70617b0 100644 --- a/docs/html/search/all_3.js +++ b/docs/html/search/all_3.js @@ -1,10 +1,10 @@ var searchData= [ - ['deletelayer_19',['deleteLayer',['../class_painting_area.html#a6efad6f8ea060674b157b42b431cd173',1,'PaintingArea']]], - ['dotted_5fline_20',['DOTTED_LINE',['../_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7a7660f396543c877e45d443f99d02bd0e',1,'IntelliToolLine.h']]], - ['drawing_21',['drawing',['../class_intelli_tool.html#af256de16e9825922d20a23d11617b51b',1,'IntelliTool']]], - ['drawline_22',['drawLine',['../class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31',1,'IntelliImage']]], - ['drawpixel_23',['drawPixel',['../class_intelli_image.html#af3c859f5c409e37051edfd9e9fbca056',1,'IntelliImage']]], - ['drawplain_24',['drawPlain',['../class_intelli_image.html#a6be622810dc2bc756054bb5769becb06',1,'IntelliImage']]], - ['drawpoint_25',['drawPoint',['../class_intelli_image.html#a2e787f1b333b59401643936ebb3dcfe1',1,'IntelliImage']]] + ['deletelayer_23',['deleteLayer',['../class_painting_area.html#a6efad6f8ea060674b157b42b431cd173',1,'PaintingArea']]], + ['dotted_5fline_24',['DOTTED_LINE',['../_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7a7660f396543c877e45d443f99d02bd0e',1,'IntelliToolLine.h']]], + ['drawing_25',['drawing',['../class_intelli_tool.html#af256de16e9825922d20a23d11617b51b',1,'IntelliTool']]], + ['drawline_26',['drawLine',['../class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31',1,'IntelliImage']]], + ['drawpixel_27',['drawPixel',['../class_intelli_image.html#af3c859f5c409e37051edfd9e9fbca056',1,'IntelliImage']]], + ['drawplain_28',['drawPlain',['../class_intelli_image.html#a6be622810dc2bc756054bb5769becb06',1,'IntelliImage']]], + ['drawpoint_29',['drawPoint',['../class_intelli_image.html#a2e787f1b333b59401643936ebb3dcfe1',1,'IntelliImage']]] ]; diff --git a/docs/html/search/all_4.js b/docs/html/search/all_4.js index d454894..85100ac 100644 --- a/docs/html/search/all_4.js +++ b/docs/html/search/all_4.js @@ -1,4 +1,4 @@ var searchData= [ - ['floodfill_26',['floodFill',['../class_painting_area.html#aeb5eb394b979ea90f2be9849fdda1774',1,'PaintingArea']]] + ['floodfill_30',['floodFill',['../class_painting_area.html#aeb5eb394b979ea90f2be9849fdda1774',1,'PaintingArea']]] ]; diff --git a/docs/html/search/all_5.js b/docs/html/search/all_5.js index 5608f57..e7a6602 100644 --- a/docs/html/search/all_5.js +++ b/docs/html/search/all_5.js @@ -1,11 +1,11 @@ var searchData= [ - ['getdeepcopy_27',['getDeepCopy',['../class_intelli_image.html#af6381067bdf565669f856bb589008ae9',1,'IntelliImage::getDeepCopy()'],['../class_intelli_raster_image.html#a8f901301b106504de3c27308ade897dc',1,'IntelliRasterImage::getDeepCopy()'],['../class_intelli_shaped_image.html#aed0b31e0fa771104399d1f5ff39a0337',1,'IntelliShapedImage::getDeepCopy()']]], - ['getdisplayable_28',['getDisplayable',['../class_intelli_image.html#a21c7e65b59a26db45aac3880133ef21d',1,'IntelliImage::getDisplayable(const QSize &displaySize, int alpha)=0'],['../class_intelli_image.html#a9d4daf3c48c64695105689f61c21bae0',1,'IntelliImage::getDisplayable(int alpha=255)=0'],['../class_intelli_raster_image.html#ae43393397b0141a8033fe34d3a1b1884',1,'IntelliRasterImage::getDisplayable(const QSize &displaySize, int alpha) override'],['../class_intelli_raster_image.html#a612d79124f0e2c158a4f0abbe4b5f97f',1,'IntelliRasterImage::getDisplayable(int alpha=255) override'],['../class_intelli_shaped_image.html#a68cf374247c16f07fd84d50e4cd05630',1,'IntelliShapedImage::getDisplayable(const QSize &displaySize, int alpha=255) override'],['../class_intelli_shaped_image.html#ac6a99e1a96134073bceea252b37636cc',1,'IntelliShapedImage::getDisplayable(int alpha=255) override']]], - ['getfirstcolor_29',['getFirstColor',['../class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7',1,'IntelliColorPicker']]], - ['getheightactivelayer_30',['getHeightActiveLayer',['../class_painting_area.html#a1511a534e206089fff1d325e7ec7a8eb',1,'PaintingArea']]], - ['getpixelcolor_31',['getPixelColor',['../class_intelli_image.html#a4576ebb6d863321c816293d7b7f9fd3f',1,'IntelliImage']]], - ['getpolygondata_32',['getPolygonData',['../class_intelli_image.html#aaf9f3e8db8666850024bee9aad9966ba',1,'IntelliImage::getPolygonData()'],['../class_intelli_shaped_image.html#ae4518c7f5a105cc4f33fabb60c794a93',1,'IntelliShapedImage::getPolygonData()']]], - ['getsecondcolor_33',['getSecondColor',['../class_intelli_color_picker.html#a55568fbf5dc783f06284b7031ffe9415',1,'IntelliColorPicker']]], - ['getwidthactivelayer_34',['getWidthActiveLayer',['../class_painting_area.html#a427c5fc26480c7ae80b3480e85510bda',1,'PaintingArea']]] + ['getdeepcopy_31',['getDeepCopy',['../class_intelli_image.html#af6381067bdf565669f856bb589008ae9',1,'IntelliImage::getDeepCopy()'],['../class_intelli_raster_image.html#a8f901301b106504de3c27308ade897dc',1,'IntelliRasterImage::getDeepCopy()'],['../class_intelli_shaped_image.html#aed0b31e0fa771104399d1f5ff39a0337',1,'IntelliShapedImage::getDeepCopy()']]], + ['getdisplayable_32',['getDisplayable',['../class_intelli_image.html#a21c7e65b59a26db45aac3880133ef21d',1,'IntelliImage::getDisplayable(const QSize &displaySize, int alpha)=0'],['../class_intelli_image.html#a9d4daf3c48c64695105689f61c21bae0',1,'IntelliImage::getDisplayable(int alpha=255)=0'],['../class_intelli_raster_image.html#ae43393397b0141a8033fe34d3a1b1884',1,'IntelliRasterImage::getDisplayable(const QSize &displaySize, int alpha) override'],['../class_intelli_raster_image.html#a612d79124f0e2c158a4f0abbe4b5f97f',1,'IntelliRasterImage::getDisplayable(int alpha=255) override'],['../class_intelli_shaped_image.html#a68cf374247c16f07fd84d50e4cd05630',1,'IntelliShapedImage::getDisplayable(const QSize &displaySize, int alpha=255) override'],['../class_intelli_shaped_image.html#ac6a99e1a96134073bceea252b37636cc',1,'IntelliShapedImage::getDisplayable(int alpha=255) override']]], + ['getfirstcolor_33',['getFirstColor',['../class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7',1,'IntelliColorPicker']]], + ['getheightofactive_34',['getHeightOfActive',['../class_painting_area.html#ac576f58aad03b4dcd47611b6a4b9abb4',1,'PaintingArea']]], + ['getpixelcolor_35',['getPixelColor',['../class_intelli_image.html#a4576ebb6d863321c816293d7b7f9fd3f',1,'IntelliImage']]], + ['getpolygondata_36',['getPolygonData',['../class_intelli_image.html#aaf9f3e8db8666850024bee9aad9966ba',1,'IntelliImage::getPolygonData()'],['../class_intelli_shaped_image.html#ae4518c7f5a105cc4f33fabb60c794a93',1,'IntelliShapedImage::getPolygonData()']]], + ['getsecondcolor_37',['getSecondColor',['../class_intelli_color_picker.html#a55568fbf5dc783f06284b7031ffe9415',1,'IntelliColorPicker']]], + ['getwidthofactive_38',['getWidthOfActive',['../class_painting_area.html#a675ee91b26b1c58be6d833f279d81597',1,'PaintingArea']]] ]; diff --git a/docs/html/search/all_6.js b/docs/html/search/all_6.js index 0da1a9f..be53981 100644 --- a/docs/html/search/all_6.js +++ b/docs/html/search/all_6.js @@ -1,5 +1,5 @@ var searchData= [ - ['hight_35',['hight',['../struct_layer_object.html#a4b1729dbf7d3490e4c2776e29ffef8b0',1,'LayerObject']]], - ['hightoffset_36',['hightOffset',['../struct_layer_object.html#a6256486a76c38baa3f1c664f4d190743',1,'LayerObject']]] + ['height_39',['height',['../struct_layer_object.html#ae0003fb815e50ed587a9897988befc90',1,'LayerObject']]], + ['heightoffset_40',['heightOffset',['../struct_layer_object.html#a08bacdcd64a0ae0eb5376f55329954bc',1,'LayerObject']]] ]; diff --git a/docs/html/search/all_7.js b/docs/html/search/all_7.js index a4df120..69b12fc 100644 --- a/docs/html/search/all_7.js +++ b/docs/html/search/all_7.js @@ -1,50 +1,50 @@ var searchData= [ - ['image_37',['image',['../struct_layer_object.html#af01a139bc8edfdbb338393874e89bd83',1,'LayerObject']]], - ['imagedata_38',['imageData',['../class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2',1,'IntelliImage']]], - ['imagetype_39',['ImageType',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0',1,'IntelliImage.h']]], - ['intellicolorpicker_40',['IntelliColorPicker',['../class_intelli_color_picker.html',1,'IntelliColorPicker'],['../class_intelli_color_picker.html#a0d1247bdd87add1396ea5d9acaad79ae',1,'IntelliColorPicker::IntelliColorPicker()']]], - ['intellicolorpicker_2ecpp_41',['IntelliColorPicker.cpp',['../_intelli_helper_2_intelli_color_picker_8cpp.html',1,'(Global Namespace)'],['../_tool_2_intelli_color_picker_8cpp.html',1,'(Global Namespace)']]], - ['intellicolorpicker_2eh_42',['IntelliColorPicker.h',['../_intelli_color_picker_8h.html',1,'']]], - ['intellihelper_43',['IntelliHelper',['../namespace_intelli_helper.html',1,'']]], - ['intellihelper_2ecpp_44',['IntelliHelper.cpp',['../_intelli_helper_8cpp.html',1,'']]], - ['intellihelper_2eh_45',['IntelliHelper.h',['../_intelli_helper_8h.html',1,'']]], - ['intelliimage_46',['IntelliImage',['../class_intelli_image.html',1,'IntelliImage'],['../class_intelli_image.html#a47084f1cb668ea0242ab95162cf9e902',1,'IntelliImage::IntelliImage()']]], - ['intelliimage_2ecpp_47',['IntelliImage.cpp',['../_intelli_image_8cpp.html',1,'']]], - ['intelliimage_2eh_48',['IntelliImage.h',['../_intelli_image_8h.html',1,'']]], - ['intelliphotogui_49',['IntelliPhotoGui',['../class_intelli_photo_gui.html',1,'IntelliPhotoGui'],['../class_intelli_photo_gui.html#ad2aaec3c1517a9aaa461b54e341b97e0',1,'IntelliPhotoGui::IntelliPhotoGui()']]], - ['intelliphotogui_2ecpp_50',['IntelliPhotoGui.cpp',['../_intelli_photo_gui_8cpp.html',1,'']]], - ['intelliphotogui_2eh_51',['IntelliPhotoGui.h',['../_intelli_photo_gui_8h.html',1,'']]], - ['intellirasterimage_52',['IntelliRasterImage',['../class_intelli_raster_image.html',1,'IntelliRasterImage'],['../class_intelli_raster_image.html#aad9b561fe499a4da3c6ef98971aa3468',1,'IntelliRasterImage::IntelliRasterImage()']]], - ['intellirasterimage_2ecpp_53',['IntelliRasterImage.cpp',['../_intelli_raster_image_8cpp.html',1,'']]], - ['intellirasterimage_2eh_54',['IntelliRasterImage.h',['../_intelli_raster_image_8h.html',1,'']]], - ['intellishapedimage_55',['IntelliShapedImage',['../class_intelli_shaped_image.html',1,'IntelliShapedImage'],['../class_intelli_shaped_image.html#a0f834c3f255baeb50c98ef335a6d0ea9',1,'IntelliShapedImage::IntelliShapedImage()']]], - ['intellishapedimage_2ecpp_56',['IntelliShapedImage.cpp',['../_intelli_shaped_image_8cpp.html',1,'']]], - ['intellishapedimage_2eh_57',['IntelliShapedImage.h',['../_intelli_shaped_image_8h.html',1,'']]], - ['intellitool_58',['IntelliTool',['../class_intelli_tool.html',1,'IntelliTool'],['../class_intelli_tool.html#a346dd55d489fced38e7bb46f9168af91',1,'IntelliTool::IntelliTool()']]], - ['intellitool_2ecpp_59',['IntelliTool.cpp',['../_intelli_tool_8cpp.html',1,'']]], - ['intellitool_2eh_60',['IntelliTool.h',['../_intelli_tool_8h.html',1,'']]], - ['intellitoolcircle_61',['IntelliToolCircle',['../class_intelli_tool_circle.html',1,'IntelliToolCircle'],['../class_intelli_tool_circle.html#a9b185b9d327f8602d0b7f667b8d1d32a',1,'IntelliToolCircle::IntelliToolCircle()']]], - ['intellitoolcircle_2ecpp_62',['IntelliToolCircle.cpp',['../_intelli_tool_circle_8cpp.html',1,'']]], - ['intellitoolcircle_2eh_63',['IntelliToolCircle.h',['../_intelli_tool_circle_8h.html',1,'']]], - ['intellitoolfloodfill_64',['IntelliToolFloodFill',['../class_intelli_tool_flood_fill.html',1,'IntelliToolFloodFill'],['../class_intelli_tool_flood_fill.html#a83b51838da304e274bf866cf2fd5407a',1,'IntelliToolFloodFill::IntelliToolFloodFill()']]], - ['intellitoolfloodfill_2ecpp_65',['IntelliToolFloodFill.cpp',['../_intelli_tool_flood_fill_8cpp.html',1,'']]], - ['intellitoolfloodfill_2eh_66',['IntelliToolFloodFill.h',['../_intelli_tool_flood_fill_8h.html',1,'']]], - ['intellitoolline_67',['IntelliToolLine',['../class_intelli_tool_line.html',1,'IntelliToolLine'],['../class_intelli_tool_line.html#a9b2d4bcd69409a21f6080edfea4ae2a2',1,'IntelliToolLine::IntelliToolLine()']]], - ['intellitoolline_2ecpp_68',['IntelliToolLine.cpp',['../_intelli_tool_line_8cpp.html',1,'']]], - ['intellitoolline_2eh_69',['IntelliToolLine.h',['../_intelli_tool_line_8h.html',1,'']]], - ['intellitoolpen_70',['IntelliToolPen',['../class_intelli_tool_pen.html',1,'IntelliToolPen'],['../class_intelli_tool_pen.html#a889891b3ae7cdefb881aed2e7fff9b47',1,'IntelliToolPen::IntelliToolPen()']]], - ['intellitoolpen_2ecpp_71',['IntelliToolPen.cpp',['../_intelli_tool_pen_8cpp.html',1,'']]], - ['intellitoolpen_2eh_72',['IntelliToolPen.h',['../_intelli_tool_pen_8h.html',1,'']]], - ['intellitoolplain_2ecpp_73',['IntelliToolPlain.cpp',['../_intelli_tool_plain_8cpp.html',1,'']]], - ['intellitoolplain_2eh_74',['IntelliToolPlain.h',['../_intelli_tool_plain_8h.html',1,'']]], - ['intellitoolplaintool_75',['IntelliToolPlainTool',['../class_intelli_tool_plain_tool.html',1,'IntelliToolPlainTool'],['../class_intelli_tool_plain_tool.html#a0ff0b9f7b78b763683076e4417236859',1,'IntelliToolPlainTool::IntelliToolPlainTool()']]], - ['intellitoolpolygon_76',['IntelliToolPolygon',['../class_intelli_tool_polygon.html',1,'IntelliToolPolygon'],['../class_intelli_tool_polygon.html#ae6e5f07fdf88d12029410a032dc4921d',1,'IntelliToolPolygon::IntelliToolPolygon()']]], - ['intellitoolpolygon_2ecpp_77',['IntelliToolPolygon.cpp',['../_intelli_tool_polygon_8cpp.html',1,'']]], - ['intellitoolpolygon_2eh_78',['IntelliToolPolygon.h',['../_intelli_tool_polygon_8h.html',1,'']]], - ['intellitoolrectangle_79',['IntelliToolRectangle',['../class_intelli_tool_rectangle.html',1,'IntelliToolRectangle'],['../class_intelli_tool_rectangle.html#aa9823939a8b8924520a2943cf6335c11',1,'IntelliToolRectangle::IntelliToolRectangle()']]], - ['intellitoolrectangle_2ecpp_80',['IntelliToolRectangle.cpp',['../_intelli_tool_rectangle_8cpp.html',1,'']]], - ['intellitoolrectangle_2eh_81',['IntelliToolRectangle.h',['../_intelli_tool_rectangle_8h.html',1,'']]], - ['isinpolygon_82',['isInPolygon',['../namespace_intelli_helper.html#a44d516b3e619e2a743e9c98dd75cf901',1,'IntelliHelper']]], - ['isintriangle_83',['isInTriangle',['../namespace_intelli_helper.html#a9fcfe72f00e870be4a8ab9f2e17483c9',1,'IntelliHelper']]] + ['image_41',['image',['../struct_layer_object.html#af01a139bc8edfdbb338393874e89bd83',1,'LayerObject']]], + ['imagedata_42',['imageData',['../class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2',1,'IntelliImage']]], + ['imagetype_43',['ImageType',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0',1,'IntelliImage.h']]], + ['intellicolorpicker_44',['IntelliColorPicker',['../class_intelli_color_picker.html',1,'IntelliColorPicker'],['../class_intelli_color_picker.html#a0d1247bdd87add1396ea5d9acaad79ae',1,'IntelliColorPicker::IntelliColorPicker()']]], + ['intellicolorpicker_2ecpp_45',['IntelliColorPicker.cpp',['../_intelli_helper_2_intelli_color_picker_8cpp.html',1,'(Global Namespace)'],['../_tool_2_intelli_color_picker_8cpp.html',1,'(Global Namespace)']]], + ['intellicolorpicker_2eh_46',['IntelliColorPicker.h',['../_intelli_color_picker_8h.html',1,'']]], + ['intellihelper_47',['IntelliHelper',['../namespace_intelli_helper.html',1,'']]], + ['intellihelper_2ecpp_48',['IntelliHelper.cpp',['../_intelli_helper_8cpp.html',1,'']]], + ['intellihelper_2eh_49',['IntelliHelper.h',['../_intelli_helper_8h.html',1,'']]], + ['intelliimage_50',['IntelliImage',['../class_intelli_image.html',1,'IntelliImage'],['../class_intelli_image.html#a47084f1cb668ea0242ab95162cf9e902',1,'IntelliImage::IntelliImage()']]], + ['intelliimage_2ecpp_51',['IntelliImage.cpp',['../_intelli_image_8cpp.html',1,'']]], + ['intelliimage_2eh_52',['IntelliImage.h',['../_intelli_image_8h.html',1,'']]], + ['intelliphotogui_53',['IntelliPhotoGui',['../class_intelli_photo_gui.html',1,'IntelliPhotoGui'],['../class_intelli_photo_gui.html#ad2aaec3c1517a9aaa461b54e341b97e0',1,'IntelliPhotoGui::IntelliPhotoGui()']]], + ['intelliphotogui_2ecpp_54',['IntelliPhotoGui.cpp',['../_intelli_photo_gui_8cpp.html',1,'']]], + ['intelliphotogui_2eh_55',['IntelliPhotoGui.h',['../_intelli_photo_gui_8h.html',1,'']]], + ['intellirasterimage_56',['IntelliRasterImage',['../class_intelli_raster_image.html',1,'IntelliRasterImage'],['../class_intelli_raster_image.html#aad9b561fe499a4da3c6ef98971aa3468',1,'IntelliRasterImage::IntelliRasterImage()']]], + ['intellirasterimage_2ecpp_57',['IntelliRasterImage.cpp',['../_intelli_raster_image_8cpp.html',1,'']]], + ['intellirasterimage_2eh_58',['IntelliRasterImage.h',['../_intelli_raster_image_8h.html',1,'']]], + ['intellishapedimage_59',['IntelliShapedImage',['../class_intelli_shaped_image.html',1,'IntelliShapedImage'],['../class_intelli_shaped_image.html#a0f834c3f255baeb50c98ef335a6d0ea9',1,'IntelliShapedImage::IntelliShapedImage()']]], + ['intellishapedimage_2ecpp_60',['IntelliShapedImage.cpp',['../_intelli_shaped_image_8cpp.html',1,'']]], + ['intellishapedimage_2eh_61',['IntelliShapedImage.h',['../_intelli_shaped_image_8h.html',1,'']]], + ['intellitool_62',['IntelliTool',['../class_intelli_tool.html',1,'IntelliTool'],['../class_intelli_tool.html#a346dd55d489fced38e7bb46f9168af91',1,'IntelliTool::IntelliTool()']]], + ['intellitool_2ecpp_63',['IntelliTool.cpp',['../_intelli_tool_8cpp.html',1,'']]], + ['intellitool_2eh_64',['IntelliTool.h',['../_intelli_tool_8h.html',1,'']]], + ['intellitoolcircle_65',['IntelliToolCircle',['../class_intelli_tool_circle.html',1,'IntelliToolCircle'],['../class_intelli_tool_circle.html#a9b185b9d327f8602d0b7f667b8d1d32a',1,'IntelliToolCircle::IntelliToolCircle()']]], + ['intellitoolcircle_2ecpp_66',['IntelliToolCircle.cpp',['../_intelli_tool_circle_8cpp.html',1,'']]], + ['intellitoolcircle_2eh_67',['IntelliToolCircle.h',['../_intelli_tool_circle_8h.html',1,'']]], + ['intellitoolfloodfill_68',['IntelliToolFloodFill',['../class_intelli_tool_flood_fill.html',1,'IntelliToolFloodFill'],['../class_intelli_tool_flood_fill.html#a83b51838da304e274bf866cf2fd5407a',1,'IntelliToolFloodFill::IntelliToolFloodFill()']]], + ['intellitoolfloodfill_2ecpp_69',['IntelliToolFloodFill.cpp',['../_intelli_tool_flood_fill_8cpp.html',1,'']]], + ['intellitoolfloodfill_2eh_70',['IntelliToolFloodFill.h',['../_intelli_tool_flood_fill_8h.html',1,'']]], + ['intellitoolline_71',['IntelliToolLine',['../class_intelli_tool_line.html',1,'IntelliToolLine'],['../class_intelli_tool_line.html#a9b2d4bcd69409a21f6080edfea4ae2a2',1,'IntelliToolLine::IntelliToolLine()']]], + ['intellitoolline_2ecpp_72',['IntelliToolLine.cpp',['../_intelli_tool_line_8cpp.html',1,'']]], + ['intellitoolline_2eh_73',['IntelliToolLine.h',['../_intelli_tool_line_8h.html',1,'']]], + ['intellitoolpen_74',['IntelliToolPen',['../class_intelli_tool_pen.html',1,'IntelliToolPen'],['../class_intelli_tool_pen.html#a889891b3ae7cdefb881aed2e7fff9b47',1,'IntelliToolPen::IntelliToolPen()']]], + ['intellitoolpen_2ecpp_75',['IntelliToolPen.cpp',['../_intelli_tool_pen_8cpp.html',1,'']]], + ['intellitoolpen_2eh_76',['IntelliToolPen.h',['../_intelli_tool_pen_8h.html',1,'']]], + ['intellitoolplain_2ecpp_77',['IntelliToolPlain.cpp',['../_intelli_tool_plain_8cpp.html',1,'']]], + ['intellitoolplain_2eh_78',['IntelliToolPlain.h',['../_intelli_tool_plain_8h.html',1,'']]], + ['intellitoolplaintool_79',['IntelliToolPlainTool',['../class_intelli_tool_plain_tool.html',1,'IntelliToolPlainTool'],['../class_intelli_tool_plain_tool.html#a0ff0b9f7b78b763683076e4417236859',1,'IntelliToolPlainTool::IntelliToolPlainTool()']]], + ['intellitoolpolygon_80',['IntelliToolPolygon',['../class_intelli_tool_polygon.html',1,'IntelliToolPolygon'],['../class_intelli_tool_polygon.html#ae6e5f07fdf88d12029410a032dc4921d',1,'IntelliToolPolygon::IntelliToolPolygon()']]], + ['intellitoolpolygon_2ecpp_81',['IntelliToolPolygon.cpp',['../_intelli_tool_polygon_8cpp.html',1,'']]], + ['intellitoolpolygon_2eh_82',['IntelliToolPolygon.h',['../_intelli_tool_polygon_8h.html',1,'']]], + ['intellitoolrectangle_83',['IntelliToolRectangle',['../class_intelli_tool_rectangle.html',1,'IntelliToolRectangle'],['../class_intelli_tool_rectangle.html#aa9823939a8b8924520a2943cf6335c11',1,'IntelliToolRectangle::IntelliToolRectangle()']]], + ['intellitoolrectangle_2ecpp_84',['IntelliToolRectangle.cpp',['../_intelli_tool_rectangle_8cpp.html',1,'']]], + ['intellitoolrectangle_2eh_85',['IntelliToolRectangle.h',['../_intelli_tool_rectangle_8h.html',1,'']]], + ['isinpolygon_86',['isInPolygon',['../namespace_intelli_helper.html#a44d516b3e619e2a743e9c98dd75cf901',1,'IntelliHelper']]], + ['isintriangle_87',['isInTriangle',['../namespace_intelli_helper.html#a9fcfe72f00e870be4a8ab9f2e17483c9',1,'IntelliHelper']]] ]; diff --git a/docs/html/search/all_8.js b/docs/html/search/all_8.js index ae5832f..50c4cae 100644 --- a/docs/html/search/all_8.js +++ b/docs/html/search/all_8.js @@ -1,6 +1,6 @@ var searchData= [ - ['layerobject_84',['LayerObject',['../struct_layer_object.html',1,'']]], - ['linestyle_85',['LineStyle',['../_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7',1,'IntelliToolLine.h']]], - ['loadimage_86',['loadImage',['../class_intelli_image.html#aec0e9c8184d89dee33fd9adefbd2f8aa',1,'IntelliImage']]] + ['layerobject_88',['LayerObject',['../struct_layer_object.html',1,'']]], + ['linestyle_89',['LineStyle',['../_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7',1,'IntelliToolLine.h']]], + ['loadimage_90',['loadImage',['../class_intelli_image.html#aec0e9c8184d89dee33fd9adefbd2f8aa',1,'IntelliImage']]] ]; diff --git a/docs/html/search/all_9.js b/docs/html/search/all_9.js index e39dbfa..c3bdfaf 100644 --- a/docs/html/search/all_9.js +++ b/docs/html/search/all_9.js @@ -1,10 +1,10 @@ var searchData= [ - ['main_87',['main',['../main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main.cpp']]], - ['main_2ecpp_88',['main.cpp',['../main_8cpp.html',1,'']]], - ['mousemoveevent_89',['mouseMoveEvent',['../class_painting_area.html#aa22e274b6094a9619f196cd7b49526b5',1,'PaintingArea']]], - ['mousepressevent_90',['mousePressEvent',['../class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15',1,'PaintingArea']]], - ['mousereleaseevent_91',['mouseReleaseEvent',['../class_painting_area.html#a35b5df914acb608cc29717659793359c',1,'PaintingArea']]], - ['moveactivelayer_92',['moveActiveLayer',['../class_painting_area.html#ae05f6893fb44bfcb34018573a609cd1a',1,'PaintingArea']]], - ['movepositionactive_93',['movePositionActive',['../class_painting_area.html#ac6d089f4357b22d9a9906fd4771de3e7',1,'PaintingArea']]] + ['main_91',['main',['../main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main.cpp']]], + ['main_2ecpp_92',['main.cpp',['../main_8cpp.html',1,'']]], + ['mousemoveevent_93',['mouseMoveEvent',['../class_painting_area.html#aa22e274b6094a9619f196cd7b49526b5',1,'PaintingArea']]], + ['mousepressevent_94',['mousePressEvent',['../class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15',1,'PaintingArea']]], + ['mousereleaseevent_95',['mouseReleaseEvent',['../class_painting_area.html#a35b5df914acb608cc29717659793359c',1,'PaintingArea']]], + ['moveactivelayer_96',['moveActiveLayer',['../class_painting_area.html#ae05f6893fb44bfcb34018573a609cd1a',1,'PaintingArea']]], + ['movepositionactive_97',['movePositionActive',['../class_painting_area.html#ac6d089f4357b22d9a9906fd4771de3e7',1,'PaintingArea']]] ]; diff --git a/docs/html/search/all_a.js b/docs/html/search/all_a.js index ca4ea4c..8e50acd 100644 --- a/docs/html/search/all_a.js +++ b/docs/html/search/all_a.js @@ -1,10 +1,10 @@ var searchData= [ - ['onmouseleftpressed_94',['onMouseLeftPressed',['../class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c',1,'IntelliTool::onMouseLeftPressed()'],['../class_intelli_tool_circle.html#ae883b8ae833c78a8867e626c600f9639',1,'IntelliToolCircle::onMouseLeftPressed()'],['../class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961',1,'IntelliToolFloodFill::onMouseLeftPressed()'],['../class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846',1,'IntelliToolLine::onMouseLeftPressed()'],['../class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205',1,'IntelliToolPen::onMouseLeftPressed()'],['../class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9',1,'IntelliToolPlainTool::onMouseLeftPressed()'],['../class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d',1,'IntelliToolPolygon::onMouseLeftPressed()'],['../class_intelli_tool_rectangle.html#ae03c307ccf66cbe3fd59e3657712368d',1,'IntelliToolRectangle::onMouseLeftPressed()']]], - ['onmouseleftreleased_95',['onMouseLeftReleased',['../class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b',1,'IntelliTool::onMouseLeftReleased()'],['../class_intelli_tool_circle.html#ad8e438ec997c57262b5efc2db4cee1a3',1,'IntelliToolCircle::onMouseLeftReleased()'],['../class_intelli_tool_flood_fill.html#a7438ef96c6c36068bce76e2364e8594c',1,'IntelliToolFloodFill::onMouseLeftReleased()'],['../class_intelli_tool_line.html#ac93f76ff20a1c111a403b298bab02482',1,'IntelliToolLine::onMouseLeftReleased()'],['../class_intelli_tool_pen.html#abda7a22b9766fa4ad254324a53cab94d',1,'IntelliToolPen::onMouseLeftReleased()'],['../class_intelli_tool_plain_tool.html#ac23f5d0f07e42fd7c2ea3fc1347da400',1,'IntelliToolPlainTool::onMouseLeftReleased()'],['../class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21',1,'IntelliToolPolygon::onMouseLeftReleased()'],['../class_intelli_tool_rectangle.html#a94460e3ff1c19e80bde922c55f53cc43',1,'IntelliToolRectangle::onMouseLeftReleased()']]], - ['onmousemoved_96',['onMouseMoved',['../class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639',1,'IntelliTool::onMouseMoved()'],['../class_intelli_tool_circle.html#a90ee58c5390a86afc75c14ca79b91d7b',1,'IntelliToolCircle::onMouseMoved()'],['../class_intelli_tool_flood_fill.html#a3cd42cea99bc7583875abcc0c274c668',1,'IntelliToolFloodFill::onMouseMoved()'],['../class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b',1,'IntelliToolLine::onMouseMoved()'],['../class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2',1,'IntelliToolPen::onMouseMoved()'],['../class_intelli_tool_plain_tool.html#ad7546a6335bb3bb4cbf0e1883788d41c',1,'IntelliToolPlainTool::onMouseMoved()'],['../class_intelli_tool_polygon.html#a0e3a1135f04c73c159137ae219a38922',1,'IntelliToolPolygon::onMouseMoved()'],['../class_intelli_tool_rectangle.html#a4b5931071e21eb6949ffe357315e408b',1,'IntelliToolRectangle::onMouseMoved()']]], - ['onmouserightpressed_97',['onMouseRightPressed',['../class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966',1,'IntelliTool::onMouseRightPressed()'],['../class_intelli_tool_circle.html#a29d7b9ed4960e6fe1f31ff620363e429',1,'IntelliToolCircle::onMouseRightPressed()'],['../class_intelli_tool_flood_fill.html#ada0f7154d119102410a55038763a17e4',1,'IntelliToolFloodFill::onMouseRightPressed()'],['../class_intelli_tool_line.html#a6cce59f3017936214b10b47252a898a3',1,'IntelliToolLine::onMouseRightPressed()'],['../class_intelli_tool_pen.html#a1751e3864a0d36ef42ca55021cae73ce',1,'IntelliToolPen::onMouseRightPressed()'],['../class_intelli_tool_plain_tool.html#acb0c46e16d2c09370a2244a936de38b1',1,'IntelliToolPlainTool::onMouseRightPressed()'],['../class_intelli_tool_polygon.html#aa36b012b48311c36e7cd6771a5081427',1,'IntelliToolPolygon::onMouseRightPressed()'],['../class_intelli_tool_rectangle.html#a480c6804a4963c5a1c3f7ef84b63c1a8',1,'IntelliToolRectangle::onMouseRightPressed()']]], - ['onmouserightreleased_98',['onMouseRightReleased',['../class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0',1,'IntelliTool::onMouseRightReleased()'],['../class_intelli_tool_circle.html#aca07540f2f7ccb3d2c0b84890c1afc4c',1,'IntelliToolCircle::onMouseRightReleased()'],['../class_intelli_tool_flood_fill.html#a39cf49c0ce46f96be3510f0b70c9d892',1,'IntelliToolFloodFill::onMouseRightReleased()'],['../class_intelli_tool_line.html#a6214918cba5753f89d97de4559a2b9b2',1,'IntelliToolLine::onMouseRightReleased()'],['../class_intelli_tool_pen.html#abf8562e8cd2da586afdf4d47b3a4ff13',1,'IntelliToolPen::onMouseRightReleased()'],['../class_intelli_tool_plain_tool.html#a2ae458f1b04eb77a47f6dca5e91e33b8',1,'IntelliToolPlainTool::onMouseRightReleased()'],['../class_intelli_tool_polygon.html#a47cad87cd02b128b02dc929713bd1d1b',1,'IntelliToolPolygon::onMouseRightReleased()'],['../class_intelli_tool_rectangle.html#ad43f653256a6516b9398f82054be0d7f',1,'IntelliToolRectangle::onMouseRightReleased()']]], - ['onwheelscrolled_99',['onWheelScrolled',['../class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574',1,'IntelliTool::onWheelScrolled()'],['../class_intelli_tool_circle.html#ae2d9b0fb6695c184c4cb507a5fb75506',1,'IntelliToolCircle::onWheelScrolled()'],['../class_intelli_tool_flood_fill.html#ad58cc7c065123beb6b0270f99e99b991',1,'IntelliToolFloodFill::onWheelScrolled()'],['../class_intelli_tool_line.html#aaf1d686e1ec43f41b5186ccfd806b125',1,'IntelliToolLine::onWheelScrolled()'],['../class_intelli_tool_pen.html#afe3626ddff440ab125f4a2465c45427a',1,'IntelliToolPen::onWheelScrolled()'],['../class_intelli_tool_plain_tool.html#adc004ea421e2cc0ac39cc7a6b6d43d0d',1,'IntelliToolPlainTool::onWheelScrolled()'],['../class_intelli_tool_polygon.html#a713103300c9f023d64d9eec5ac05dd17',1,'IntelliToolPolygon::onWheelScrolled()'],['../class_intelli_tool_rectangle.html#a445c53a56e859f970e59f5036e221e0c',1,'IntelliToolRectangle::onWheelScrolled()']]], - ['open_100',['open',['../class_painting_area.html#a1f597740b4d7b4bc2e24c51f8cb0b6eb',1,'PaintingArea']]] + ['onmouseleftpressed_98',['onMouseLeftPressed',['../class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c',1,'IntelliTool::onMouseLeftPressed()'],['../class_intelli_tool_circle.html#ae883b8ae833c78a8867e626c600f9639',1,'IntelliToolCircle::onMouseLeftPressed()'],['../class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961',1,'IntelliToolFloodFill::onMouseLeftPressed()'],['../class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846',1,'IntelliToolLine::onMouseLeftPressed()'],['../class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205',1,'IntelliToolPen::onMouseLeftPressed()'],['../class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9',1,'IntelliToolPlainTool::onMouseLeftPressed()'],['../class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d',1,'IntelliToolPolygon::onMouseLeftPressed()'],['../class_intelli_tool_rectangle.html#ae03c307ccf66cbe3fd59e3657712368d',1,'IntelliToolRectangle::onMouseLeftPressed()']]], + ['onmouseleftreleased_99',['onMouseLeftReleased',['../class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b',1,'IntelliTool::onMouseLeftReleased()'],['../class_intelli_tool_circle.html#ad8e438ec997c57262b5efc2db4cee1a3',1,'IntelliToolCircle::onMouseLeftReleased()'],['../class_intelli_tool_flood_fill.html#a7438ef96c6c36068bce76e2364e8594c',1,'IntelliToolFloodFill::onMouseLeftReleased()'],['../class_intelli_tool_line.html#ac93f76ff20a1c111a403b298bab02482',1,'IntelliToolLine::onMouseLeftReleased()'],['../class_intelli_tool_pen.html#abda7a22b9766fa4ad254324a53cab94d',1,'IntelliToolPen::onMouseLeftReleased()'],['../class_intelli_tool_plain_tool.html#ac23f5d0f07e42fd7c2ea3fc1347da400',1,'IntelliToolPlainTool::onMouseLeftReleased()'],['../class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21',1,'IntelliToolPolygon::onMouseLeftReleased()'],['../class_intelli_tool_rectangle.html#a94460e3ff1c19e80bde922c55f53cc43',1,'IntelliToolRectangle::onMouseLeftReleased()']]], + ['onmousemoved_100',['onMouseMoved',['../class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639',1,'IntelliTool::onMouseMoved()'],['../class_intelli_tool_circle.html#a90ee58c5390a86afc75c14ca79b91d7b',1,'IntelliToolCircle::onMouseMoved()'],['../class_intelli_tool_flood_fill.html#a3cd42cea99bc7583875abcc0c274c668',1,'IntelliToolFloodFill::onMouseMoved()'],['../class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b',1,'IntelliToolLine::onMouseMoved()'],['../class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2',1,'IntelliToolPen::onMouseMoved()'],['../class_intelli_tool_plain_tool.html#ad7546a6335bb3bb4cbf0e1883788d41c',1,'IntelliToolPlainTool::onMouseMoved()'],['../class_intelli_tool_polygon.html#a0e3a1135f04c73c159137ae219a38922',1,'IntelliToolPolygon::onMouseMoved()'],['../class_intelli_tool_rectangle.html#a4b5931071e21eb6949ffe357315e408b',1,'IntelliToolRectangle::onMouseMoved()']]], + ['onmouserightpressed_101',['onMouseRightPressed',['../class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966',1,'IntelliTool::onMouseRightPressed()'],['../class_intelli_tool_circle.html#a29d7b9ed4960e6fe1f31ff620363e429',1,'IntelliToolCircle::onMouseRightPressed()'],['../class_intelli_tool_flood_fill.html#ada0f7154d119102410a55038763a17e4',1,'IntelliToolFloodFill::onMouseRightPressed()'],['../class_intelli_tool_line.html#a6cce59f3017936214b10b47252a898a3',1,'IntelliToolLine::onMouseRightPressed()'],['../class_intelli_tool_pen.html#a1751e3864a0d36ef42ca55021cae73ce',1,'IntelliToolPen::onMouseRightPressed()'],['../class_intelli_tool_plain_tool.html#acb0c46e16d2c09370a2244a936de38b1',1,'IntelliToolPlainTool::onMouseRightPressed()'],['../class_intelli_tool_polygon.html#aa36b012b48311c36e7cd6771a5081427',1,'IntelliToolPolygon::onMouseRightPressed()'],['../class_intelli_tool_rectangle.html#a480c6804a4963c5a1c3f7ef84b63c1a8',1,'IntelliToolRectangle::onMouseRightPressed()']]], + ['onmouserightreleased_102',['onMouseRightReleased',['../class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0',1,'IntelliTool::onMouseRightReleased()'],['../class_intelli_tool_circle.html#aca07540f2f7ccb3d2c0b84890c1afc4c',1,'IntelliToolCircle::onMouseRightReleased()'],['../class_intelli_tool_flood_fill.html#a39cf49c0ce46f96be3510f0b70c9d892',1,'IntelliToolFloodFill::onMouseRightReleased()'],['../class_intelli_tool_line.html#a6214918cba5753f89d97de4559a2b9b2',1,'IntelliToolLine::onMouseRightReleased()'],['../class_intelli_tool_pen.html#abf8562e8cd2da586afdf4d47b3a4ff13',1,'IntelliToolPen::onMouseRightReleased()'],['../class_intelli_tool_plain_tool.html#a2ae458f1b04eb77a47f6dca5e91e33b8',1,'IntelliToolPlainTool::onMouseRightReleased()'],['../class_intelli_tool_polygon.html#a47cad87cd02b128b02dc929713bd1d1b',1,'IntelliToolPolygon::onMouseRightReleased()'],['../class_intelli_tool_rectangle.html#ad43f653256a6516b9398f82054be0d7f',1,'IntelliToolRectangle::onMouseRightReleased()']]], + ['onwheelscrolled_103',['onWheelScrolled',['../class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574',1,'IntelliTool::onWheelScrolled()'],['../class_intelli_tool_circle.html#ae2d9b0fb6695c184c4cb507a5fb75506',1,'IntelliToolCircle::onWheelScrolled()'],['../class_intelli_tool_flood_fill.html#ad58cc7c065123beb6b0270f99e99b991',1,'IntelliToolFloodFill::onWheelScrolled()'],['../class_intelli_tool_line.html#aaf1d686e1ec43f41b5186ccfd806b125',1,'IntelliToolLine::onWheelScrolled()'],['../class_intelli_tool_pen.html#afe3626ddff440ab125f4a2465c45427a',1,'IntelliToolPen::onWheelScrolled()'],['../class_intelli_tool_plain_tool.html#adc004ea421e2cc0ac39cc7a6b6d43d0d',1,'IntelliToolPlainTool::onWheelScrolled()'],['../class_intelli_tool_polygon.html#a713103300c9f023d64d9eec5ac05dd17',1,'IntelliToolPolygon::onWheelScrolled()'],['../class_intelli_tool_rectangle.html#a445c53a56e859f970e59f5036e221e0c',1,'IntelliToolRectangle::onWheelScrolled()']]], + ['open_104',['open',['../class_painting_area.html#a1f597740b4d7b4bc2e24c51f8cb0b6eb',1,'PaintingArea']]] ]; diff --git a/docs/html/search/all_b.js b/docs/html/search/all_b.js index 804aa23..a356257 100644 --- a/docs/html/search/all_b.js +++ b/docs/html/search/all_b.js @@ -1,8 +1,8 @@ var searchData= [ - ['paintevent_101',['paintEvent',['../class_painting_area.html#a4a8138b9508ee4ec87a7fca9160368a7',1,'PaintingArea']]], - ['paintingarea_102',['PaintingArea',['../class_painting_area.html',1,'PaintingArea'],['../class_painting_area.html#a4fa0ec23e78cc59f28c823584c721460',1,'PaintingArea::PaintingArea()']]], - ['paintingarea_2ecpp_103',['PaintingArea.cpp',['../_painting_area_8cpp.html',1,'']]], - ['paintingarea_2eh_104',['PaintingArea.h',['../_painting_area_8h.html',1,'']]], - ['polygondata_105',['polygonData',['../class_intelli_shaped_image.html#a727d19ce314c0874be6b0633a3a603c8',1,'IntelliShapedImage']]] + ['paintevent_105',['paintEvent',['../class_painting_area.html#a4a8138b9508ee4ec87a7fca9160368a7',1,'PaintingArea']]], + ['paintingarea_106',['PaintingArea',['../class_painting_area.html',1,'PaintingArea'],['../class_painting_area.html#a4fa0ec23e78cc59f28c823584c721460',1,'PaintingArea::PaintingArea()']]], + ['paintingarea_2ecpp_107',['PaintingArea.cpp',['../_painting_area_8cpp.html',1,'']]], + ['paintingarea_2eh_108',['PaintingArea.h',['../_painting_area_8h.html',1,'']]], + ['polygondata_109',['polygonData',['../class_intelli_shaped_image.html#a727d19ce314c0874be6b0633a3a603c8',1,'IntelliShapedImage']]] ]; diff --git a/docs/html/search/all_c.js b/docs/html/search/all_c.js index ff66b9d..a895f69 100644 --- a/docs/html/search/all_c.js +++ b/docs/html/search/all_c.js @@ -1,6 +1,6 @@ var searchData= [ - ['raster_5fimage_106',['Raster_Image',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0a80e1612d2117f2b25530317279ffe7b3',1,'IntelliImage.h']]], - ['resizeevent_107',['resizeEvent',['../class_painting_area.html#ab57e8ccda60fff7187463a90e65c5335',1,'PaintingArea']]], - ['resizeimage_108',['resizeImage',['../class_intelli_image.html#a177403ab9585d4ba31984a644c54d310',1,'IntelliImage']]] + ['raster_5fimage_110',['Raster_Image',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0a80e1612d2117f2b25530317279ffe7b3',1,'IntelliImage.h']]], + ['resizeevent_111',['resizeEvent',['../class_painting_area.html#ab57e8ccda60fff7187463a90e65c5335',1,'PaintingArea']]], + ['resizeimage_112',['resizeImage',['../class_intelli_image.html#a177403ab9585d4ba31984a644c54d310',1,'IntelliImage']]] ]; diff --git a/docs/html/search/all_d.js b/docs/html/search/all_d.js index a8bdd2d..123a72f 100644 --- a/docs/html/search/all_d.js +++ b/docs/html/search/all_d.js @@ -1,15 +1,15 @@ var searchData= [ - ['save_109',['save',['../class_painting_area.html#a612176cc9d629d22fd3fe1a746cce564',1,'PaintingArea']]], - ['setalphaoflayer_110',['setAlphaOfLayer',['../class_painting_area.html#aec59be20f1c27135700754882dd6383d',1,'PaintingArea']]], - ['setfirstcolor_111',['setFirstColor',['../class_intelli_color_picker.html#a7e2ddbbbfbed383f06b24e5bf6b27ae8',1,'IntelliColorPicker']]], - ['setlayertoactive_112',['setLayerToActive',['../class_painting_area.html#a1d6d86c25efdce9fe9031a9cd01c74c8',1,'PaintingArea']]], - ['setpolygon_113',['setPolygon',['../class_intelli_image.html#aa4b3f4631bd972456917275afb9fd309',1,'IntelliImage::setPolygon()'],['../class_intelli_raster_image.html#a6462fa5f94c5e64e9e1f0c4658e0507b',1,'IntelliRasterImage::setPolygon()'],['../class_intelli_shaped_image.html#a4b69d75de7a3b85032482982f249458e',1,'IntelliShapedImage::setPolygon()']]], - ['setsecondcolor_114',['setSecondColor',['../class_intelli_color_picker.html#a86bf4a940e4a0e465e30cbdf28748931',1,'IntelliColorPicker']]], - ['shaped_5fimage_115',['Shaped_Image',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0ab7e2d2c1c171e5a0e0b6b548449df79d',1,'IntelliImage.h']]], - ['sign_116',['sign',['../namespace_intelli_helper.html#afdd9fe78cc5d21b59642910220768149',1,'IntelliHelper']]], - ['slotactivatelayer_117',['slotActivateLayer',['../class_painting_area.html#a71ac281e0de263208d4a3b9de74258ec',1,'PaintingArea']]], - ['slotdeleteactivelayer_118',['slotDeleteActiveLayer',['../class_painting_area.html#a1ff0b9c1227531943c9cec2c546fae5e',1,'PaintingArea']]], - ['solid_5fline_119',['SOLID_LINE',['../_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7ae45e1e6b2e6dde14829d057a4ef44199',1,'IntelliToolLine.h']]], - ['switchcolors_120',['switchColors',['../class_intelli_color_picker.html#a437a6f20bf2fc0a4cbaf4c030c2a26d9',1,'IntelliColorPicker']]] + ['save_113',['save',['../class_painting_area.html#a612176cc9d629d22fd3fe1a746cce564',1,'PaintingArea']]], + ['setalphaoflayer_114',['setAlphaOfLayer',['../class_painting_area.html#aec59be20f1c27135700754882dd6383d',1,'PaintingArea']]], + ['setfirstcolor_115',['setFirstColor',['../class_intelli_color_picker.html#a7e2ddbbbfbed383f06b24e5bf6b27ae8',1,'IntelliColorPicker']]], + ['setlayertoactive_116',['setLayerToActive',['../class_painting_area.html#a1d6d86c25efdce9fe9031a9cd01c74c8',1,'PaintingArea']]], + ['setpolygon_117',['setPolygon',['../class_intelli_image.html#aa4b3f4631bd972456917275afb9fd309',1,'IntelliImage::setPolygon()'],['../class_intelli_raster_image.html#a6462fa5f94c5e64e9e1f0c4658e0507b',1,'IntelliRasterImage::setPolygon()'],['../class_intelli_shaped_image.html#a4b69d75de7a3b85032482982f249458e',1,'IntelliShapedImage::setPolygon()']]], + ['setsecondcolor_118',['setSecondColor',['../class_intelli_color_picker.html#a86bf4a940e4a0e465e30cbdf28748931',1,'IntelliColorPicker']]], + ['shaped_5fimage_119',['Shaped_Image',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0ab7e2d2c1c171e5a0e0b6b548449df79d',1,'IntelliImage.h']]], + ['sign_120',['sign',['../namespace_intelli_helper.html#afdd9fe78cc5d21b59642910220768149',1,'IntelliHelper']]], + ['slotactivatelayer_121',['slotActivateLayer',['../class_painting_area.html#a71ac281e0de263208d4a3b9de74258ec',1,'PaintingArea']]], + ['slotdeleteactivelayer_122',['slotDeleteActiveLayer',['../class_painting_area.html#a1ff0b9c1227531943c9cec2c546fae5e',1,'PaintingArea']]], + ['solid_5fline_123',['SOLID_LINE',['../_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7ae45e1e6b2e6dde14829d057a4ef44199',1,'IntelliToolLine.h']]], + ['switchcolors_124',['switchColors',['../class_intelli_color_picker.html#a437a6f20bf2fc0a4cbaf4c030c2a26d9',1,'IntelliColorPicker']]] ]; diff --git a/docs/html/search/all_e.js b/docs/html/search/all_e.js index 5e7fdd5..dfed3ce 100644 --- a/docs/html/search/all_e.js +++ b/docs/html/search/all_e.js @@ -1,4 +1,4 @@ var searchData= [ - ['triangle_121',['Triangle',['../struct_triangle.html',1,'']]] + ['triangle_125',['Triangle',['../struct_triangle.html',1,'']]] ]; diff --git a/docs/html/search/all_f.js b/docs/html/search/all_f.js index b851b8b..5720a84 100644 --- a/docs/html/search/all_f.js +++ b/docs/html/search/all_f.js @@ -1,6 +1,6 @@ var searchData= [ - ['wheelevent_122',['wheelEvent',['../class_painting_area.html#a632848d99f44d33d7da2618fbc6775a4',1,'PaintingArea']]], - ['width_123',['width',['../struct_layer_object.html#af261813df52ff0b0c82bfa57efeb9897',1,'LayerObject']]], - ['widthoffset_124',['widthOffset',['../struct_layer_object.html#a72b44d27c7bbb60dde14f04ec240ab96',1,'LayerObject']]] + ['wheelevent_126',['wheelEvent',['../class_painting_area.html#a632848d99f44d33d7da2618fbc6775a4',1,'PaintingArea']]], + ['width_127',['width',['../struct_layer_object.html#af261813df52ff0b0c82bfa57efeb9897',1,'LayerObject']]], + ['widthoffset_128',['widthOffset',['../struct_layer_object.html#a72b44d27c7bbb60dde14f04ec240ab96',1,'LayerObject']]] ]; diff --git a/docs/html/search/classes_0.js b/docs/html/search/classes_0.js index cd9dba3..2b71e5b 100644 --- a/docs/html/search/classes_0.js +++ b/docs/html/search/classes_0.js @@ -1,16 +1,16 @@ var searchData= [ - ['intellicolorpicker_137',['IntelliColorPicker',['../class_intelli_color_picker.html',1,'']]], - ['intelliimage_138',['IntelliImage',['../class_intelli_image.html',1,'']]], - ['intelliphotogui_139',['IntelliPhotoGui',['../class_intelli_photo_gui.html',1,'']]], - ['intellirasterimage_140',['IntelliRasterImage',['../class_intelli_raster_image.html',1,'']]], - ['intellishapedimage_141',['IntelliShapedImage',['../class_intelli_shaped_image.html',1,'']]], - ['intellitool_142',['IntelliTool',['../class_intelli_tool.html',1,'']]], - ['intellitoolcircle_143',['IntelliToolCircle',['../class_intelli_tool_circle.html',1,'']]], - ['intellitoolfloodfill_144',['IntelliToolFloodFill',['../class_intelli_tool_flood_fill.html',1,'']]], - ['intellitoolline_145',['IntelliToolLine',['../class_intelli_tool_line.html',1,'']]], - ['intellitoolpen_146',['IntelliToolPen',['../class_intelli_tool_pen.html',1,'']]], - ['intellitoolplaintool_147',['IntelliToolPlainTool',['../class_intelli_tool_plain_tool.html',1,'']]], - ['intellitoolpolygon_148',['IntelliToolPolygon',['../class_intelli_tool_polygon.html',1,'']]], - ['intellitoolrectangle_149',['IntelliToolRectangle',['../class_intelli_tool_rectangle.html',1,'']]] + ['intellicolorpicker_142',['IntelliColorPicker',['../class_intelli_color_picker.html',1,'']]], + ['intelliimage_143',['IntelliImage',['../class_intelli_image.html',1,'']]], + ['intelliphotogui_144',['IntelliPhotoGui',['../class_intelli_photo_gui.html',1,'']]], + ['intellirasterimage_145',['IntelliRasterImage',['../class_intelli_raster_image.html',1,'']]], + ['intellishapedimage_146',['IntelliShapedImage',['../class_intelli_shaped_image.html',1,'']]], + ['intellitool_147',['IntelliTool',['../class_intelli_tool.html',1,'']]], + ['intellitoolcircle_148',['IntelliToolCircle',['../class_intelli_tool_circle.html',1,'']]], + ['intellitoolfloodfill_149',['IntelliToolFloodFill',['../class_intelli_tool_flood_fill.html',1,'']]], + ['intellitoolline_150',['IntelliToolLine',['../class_intelli_tool_line.html',1,'']]], + ['intellitoolpen_151',['IntelliToolPen',['../class_intelli_tool_pen.html',1,'']]], + ['intellitoolplaintool_152',['IntelliToolPlainTool',['../class_intelli_tool_plain_tool.html',1,'']]], + ['intellitoolpolygon_153',['IntelliToolPolygon',['../class_intelli_tool_polygon.html',1,'']]], + ['intellitoolrectangle_154',['IntelliToolRectangle',['../class_intelli_tool_rectangle.html',1,'']]] ]; diff --git a/docs/html/search/classes_1.js b/docs/html/search/classes_1.js index 367b478..454443a 100644 --- a/docs/html/search/classes_1.js +++ b/docs/html/search/classes_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['layerobject_150',['LayerObject',['../struct_layer_object.html',1,'']]] + ['layerobject_155',['LayerObject',['../struct_layer_object.html',1,'']]] ]; diff --git a/docs/html/search/classes_2.js b/docs/html/search/classes_2.js index cae10b6..bcb4b7a 100644 --- a/docs/html/search/classes_2.js +++ b/docs/html/search/classes_2.js @@ -1,4 +1,4 @@ var searchData= [ - ['paintingarea_151',['PaintingArea',['../class_painting_area.html',1,'']]] + ['paintingarea_156',['PaintingArea',['../class_painting_area.html',1,'']]] ]; diff --git a/docs/html/search/classes_3.js b/docs/html/search/classes_3.js index 771af75..96c6367 100644 --- a/docs/html/search/classes_3.js +++ b/docs/html/search/classes_3.js @@ -1,4 +1,4 @@ var searchData= [ - ['triangle_152',['Triangle',['../struct_triangle.html',1,'']]] + ['triangle_157',['Triangle',['../struct_triangle.html',1,'']]] ]; diff --git a/docs/html/search/enums_0.js b/docs/html/search/enums_0.js index 6e1453a..5a92e19 100644 --- a/docs/html/search/enums_0.js +++ b/docs/html/search/enums_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['imagetype_282',['ImageType',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0',1,'IntelliImage.h']]] + ['imagetype_292',['ImageType',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0',1,'IntelliImage.h']]] ]; diff --git a/docs/html/search/enums_1.js b/docs/html/search/enums_1.js index 41e758e..c187cbf 100644 --- a/docs/html/search/enums_1.js +++ b/docs/html/search/enums_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['linestyle_283',['LineStyle',['../_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7',1,'IntelliToolLine.h']]] + ['linestyle_293',['LineStyle',['../_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7',1,'IntelliToolLine.h']]] ]; diff --git a/docs/html/search/enumvalues_0.js b/docs/html/search/enumvalues_0.js index 7f894a9..fb8b634 100644 --- a/docs/html/search/enumvalues_0.js +++ b/docs/html/search/enumvalues_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['dotted_5fline_284',['DOTTED_LINE',['../_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7a7660f396543c877e45d443f99d02bd0e',1,'IntelliToolLine.h']]] + ['dotted_5fline_294',['DOTTED_LINE',['../_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7a7660f396543c877e45d443f99d02bd0e',1,'IntelliToolLine.h']]] ]; diff --git a/docs/html/search/enumvalues_1.js b/docs/html/search/enumvalues_1.js index 0696843..e029230 100644 --- a/docs/html/search/enumvalues_1.js +++ b/docs/html/search/enumvalues_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['raster_5fimage_285',['Raster_Image',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0a80e1612d2117f2b25530317279ffe7b3',1,'IntelliImage.h']]] + ['raster_5fimage_295',['Raster_Image',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0a80e1612d2117f2b25530317279ffe7b3',1,'IntelliImage.h']]] ]; diff --git a/docs/html/search/enumvalues_2.js b/docs/html/search/enumvalues_2.js index 5ef04a4..0120145 100644 --- a/docs/html/search/enumvalues_2.js +++ b/docs/html/search/enumvalues_2.js @@ -1,5 +1,5 @@ var searchData= [ - ['shaped_5fimage_286',['Shaped_Image',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0ab7e2d2c1c171e5a0e0b6b548449df79d',1,'IntelliImage.h']]], - ['solid_5fline_287',['SOLID_LINE',['../_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7ae45e1e6b2e6dde14829d057a4ef44199',1,'IntelliToolLine.h']]] + ['shaped_5fimage_296',['Shaped_Image',['../_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0ab7e2d2c1c171e5a0e0b6b548449df79d',1,'IntelliImage.h']]], + ['solid_5fline_297',['SOLID_LINE',['../_intelli_tool_line_8h.html#a86e0f5648542856159bb40775c854aa7ae45e1e6b2e6dde14829d057a4ef44199',1,'IntelliToolLine.h']]] ]; diff --git a/docs/html/search/files_0.js b/docs/html/search/files_0.js index 7ecb811..8f60b7b 100644 --- a/docs/html/search/files_0.js +++ b/docs/html/search/files_0.js @@ -1,31 +1,31 @@ var searchData= [ - ['intellicolorpicker_2ecpp_154',['IntelliColorPicker.cpp',['../_intelli_helper_2_intelli_color_picker_8cpp.html',1,'(Global Namespace)'],['../_tool_2_intelli_color_picker_8cpp.html',1,'(Global Namespace)']]], - ['intellicolorpicker_2eh_155',['IntelliColorPicker.h',['../_intelli_color_picker_8h.html',1,'']]], - ['intellihelper_2ecpp_156',['IntelliHelper.cpp',['../_intelli_helper_8cpp.html',1,'']]], - ['intellihelper_2eh_157',['IntelliHelper.h',['../_intelli_helper_8h.html',1,'']]], - ['intelliimage_2ecpp_158',['IntelliImage.cpp',['../_intelli_image_8cpp.html',1,'']]], - ['intelliimage_2eh_159',['IntelliImage.h',['../_intelli_image_8h.html',1,'']]], - ['intelliphotogui_2ecpp_160',['IntelliPhotoGui.cpp',['../_intelli_photo_gui_8cpp.html',1,'']]], - ['intelliphotogui_2eh_161',['IntelliPhotoGui.h',['../_intelli_photo_gui_8h.html',1,'']]], - ['intellirasterimage_2ecpp_162',['IntelliRasterImage.cpp',['../_intelli_raster_image_8cpp.html',1,'']]], - ['intellirasterimage_2eh_163',['IntelliRasterImage.h',['../_intelli_raster_image_8h.html',1,'']]], - ['intellishapedimage_2ecpp_164',['IntelliShapedImage.cpp',['../_intelli_shaped_image_8cpp.html',1,'']]], - ['intellishapedimage_2eh_165',['IntelliShapedImage.h',['../_intelli_shaped_image_8h.html',1,'']]], - ['intellitool_2ecpp_166',['IntelliTool.cpp',['../_intelli_tool_8cpp.html',1,'']]], - ['intellitool_2eh_167',['IntelliTool.h',['../_intelli_tool_8h.html',1,'']]], - ['intellitoolcircle_2ecpp_168',['IntelliToolCircle.cpp',['../_intelli_tool_circle_8cpp.html',1,'']]], - ['intellitoolcircle_2eh_169',['IntelliToolCircle.h',['../_intelli_tool_circle_8h.html',1,'']]], - ['intellitoolfloodfill_2ecpp_170',['IntelliToolFloodFill.cpp',['../_intelli_tool_flood_fill_8cpp.html',1,'']]], - ['intellitoolfloodfill_2eh_171',['IntelliToolFloodFill.h',['../_intelli_tool_flood_fill_8h.html',1,'']]], - ['intellitoolline_2ecpp_172',['IntelliToolLine.cpp',['../_intelli_tool_line_8cpp.html',1,'']]], - ['intellitoolline_2eh_173',['IntelliToolLine.h',['../_intelli_tool_line_8h.html',1,'']]], - ['intellitoolpen_2ecpp_174',['IntelliToolPen.cpp',['../_intelli_tool_pen_8cpp.html',1,'']]], - ['intellitoolpen_2eh_175',['IntelliToolPen.h',['../_intelli_tool_pen_8h.html',1,'']]], - ['intellitoolplain_2ecpp_176',['IntelliToolPlain.cpp',['../_intelli_tool_plain_8cpp.html',1,'']]], - ['intellitoolplain_2eh_177',['IntelliToolPlain.h',['../_intelli_tool_plain_8h.html',1,'']]], - ['intellitoolpolygon_2ecpp_178',['IntelliToolPolygon.cpp',['../_intelli_tool_polygon_8cpp.html',1,'']]], - ['intellitoolpolygon_2eh_179',['IntelliToolPolygon.h',['../_intelli_tool_polygon_8h.html',1,'']]], - ['intellitoolrectangle_2ecpp_180',['IntelliToolRectangle.cpp',['../_intelli_tool_rectangle_8cpp.html',1,'']]], - ['intellitoolrectangle_2eh_181',['IntelliToolRectangle.h',['../_intelli_tool_rectangle_8h.html',1,'']]] + ['intellicolorpicker_2ecpp_159',['IntelliColorPicker.cpp',['../_intelli_helper_2_intelli_color_picker_8cpp.html',1,'(Global Namespace)'],['../_tool_2_intelli_color_picker_8cpp.html',1,'(Global Namespace)']]], + ['intellicolorpicker_2eh_160',['IntelliColorPicker.h',['../_intelli_color_picker_8h.html',1,'']]], + ['intellihelper_2ecpp_161',['IntelliHelper.cpp',['../_intelli_helper_8cpp.html',1,'']]], + ['intellihelper_2eh_162',['IntelliHelper.h',['../_intelli_helper_8h.html',1,'']]], + ['intelliimage_2ecpp_163',['IntelliImage.cpp',['../_intelli_image_8cpp.html',1,'']]], + ['intelliimage_2eh_164',['IntelliImage.h',['../_intelli_image_8h.html',1,'']]], + ['intelliphotogui_2ecpp_165',['IntelliPhotoGui.cpp',['../_intelli_photo_gui_8cpp.html',1,'']]], + ['intelliphotogui_2eh_166',['IntelliPhotoGui.h',['../_intelli_photo_gui_8h.html',1,'']]], + ['intellirasterimage_2ecpp_167',['IntelliRasterImage.cpp',['../_intelli_raster_image_8cpp.html',1,'']]], + ['intellirasterimage_2eh_168',['IntelliRasterImage.h',['../_intelli_raster_image_8h.html',1,'']]], + ['intellishapedimage_2ecpp_169',['IntelliShapedImage.cpp',['../_intelli_shaped_image_8cpp.html',1,'']]], + ['intellishapedimage_2eh_170',['IntelliShapedImage.h',['../_intelli_shaped_image_8h.html',1,'']]], + ['intellitool_2ecpp_171',['IntelliTool.cpp',['../_intelli_tool_8cpp.html',1,'']]], + ['intellitool_2eh_172',['IntelliTool.h',['../_intelli_tool_8h.html',1,'']]], + ['intellitoolcircle_2ecpp_173',['IntelliToolCircle.cpp',['../_intelli_tool_circle_8cpp.html',1,'']]], + ['intellitoolcircle_2eh_174',['IntelliToolCircle.h',['../_intelli_tool_circle_8h.html',1,'']]], + ['intellitoolfloodfill_2ecpp_175',['IntelliToolFloodFill.cpp',['../_intelli_tool_flood_fill_8cpp.html',1,'']]], + ['intellitoolfloodfill_2eh_176',['IntelliToolFloodFill.h',['../_intelli_tool_flood_fill_8h.html',1,'']]], + ['intellitoolline_2ecpp_177',['IntelliToolLine.cpp',['../_intelli_tool_line_8cpp.html',1,'']]], + ['intellitoolline_2eh_178',['IntelliToolLine.h',['../_intelli_tool_line_8h.html',1,'']]], + ['intellitoolpen_2ecpp_179',['IntelliToolPen.cpp',['../_intelli_tool_pen_8cpp.html',1,'']]], + ['intellitoolpen_2eh_180',['IntelliToolPen.h',['../_intelli_tool_pen_8h.html',1,'']]], + ['intellitoolplain_2ecpp_181',['IntelliToolPlain.cpp',['../_intelli_tool_plain_8cpp.html',1,'']]], + ['intellitoolplain_2eh_182',['IntelliToolPlain.h',['../_intelli_tool_plain_8h.html',1,'']]], + ['intellitoolpolygon_2ecpp_183',['IntelliToolPolygon.cpp',['../_intelli_tool_polygon_8cpp.html',1,'']]], + ['intellitoolpolygon_2eh_184',['IntelliToolPolygon.h',['../_intelli_tool_polygon_8h.html',1,'']]], + ['intellitoolrectangle_2ecpp_185',['IntelliToolRectangle.cpp',['../_intelli_tool_rectangle_8cpp.html',1,'']]], + ['intellitoolrectangle_2eh_186',['IntelliToolRectangle.h',['../_intelli_tool_rectangle_8h.html',1,'']]] ]; diff --git a/docs/html/search/files_1.js b/docs/html/search/files_1.js index 3feae41..0861fdb 100644 --- a/docs/html/search/files_1.js +++ b/docs/html/search/files_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['main_2ecpp_182',['main.cpp',['../main_8cpp.html',1,'']]] + ['main_2ecpp_187',['main.cpp',['../main_8cpp.html',1,'']]] ]; diff --git a/docs/html/search/files_2.js b/docs/html/search/files_2.js index c7a376d..deeaab4 100644 --- a/docs/html/search/files_2.js +++ b/docs/html/search/files_2.js @@ -1,5 +1,5 @@ var searchData= [ - ['paintingarea_2ecpp_183',['PaintingArea.cpp',['../_painting_area_8cpp.html',1,'']]], - ['paintingarea_2eh_184',['PaintingArea.h',['../_painting_area_8h.html',1,'']]] + ['paintingarea_2ecpp_188',['PaintingArea.cpp',['../_painting_area_8cpp.html',1,'']]], + ['paintingarea_2eh_189',['PaintingArea.h',['../_painting_area_8h.html',1,'']]] ]; diff --git a/docs/html/search/functions_0.js b/docs/html/search/functions_0.js index e6cd7b2..9302cbc 100644 --- a/docs/html/search/functions_0.js +++ b/docs/html/search/functions_0.js @@ -1,5 +1,5 @@ var searchData= [ - ['addlayer_185',['addLayer',['../class_painting_area.html#a39ad76e1319659bfa38eee88ef33d395',1,'PaintingArea']]], - ['addlayerat_186',['addLayerAt',['../class_painting_area.html#ae756003b49aead863b49616ea7a44cc0',1,'PaintingArea']]] + ['addlayer_190',['addLayer',['../class_painting_area.html#a39ad76e1319659bfa38eee88ef33d395',1,'PaintingArea']]], + ['addlayerat_191',['addLayerAt',['../class_painting_area.html#ae756003b49aead863b49616ea7a44cc0',1,'PaintingArea']]] ]; diff --git a/docs/html/search/functions_1.js b/docs/html/search/functions_1.js index 35ef9ba..a0f86a7 100644 --- a/docs/html/search/functions_1.js +++ b/docs/html/search/functions_1.js @@ -1,12 +1,16 @@ var searchData= [ - ['calculatetriangles_187',['calculateTriangles',['../namespace_intelli_helper.html#a214dc3624ba4562a03dc922e3dd7b617',1,'IntelliHelper']]], - ['calculatevisiblity_188',['calculateVisiblity',['../class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2',1,'IntelliImage::calculateVisiblity()'],['../class_intelli_raster_image.html#a87cf2d360c129d64a5db0db85818eb60',1,'IntelliRasterImage::calculateVisiblity()']]], - ['closeevent_189',['closeEvent',['../class_intelli_photo_gui.html#a2cf48070236ae8b35245e7f30482ef13',1,'IntelliPhotoGui']]], - ['colorpickersetfirstcolor_190',['colorPickerSetFirstColor',['../class_painting_area.html#a4735d4cf1dc58a9096d904e74c39c4df',1,'PaintingArea']]], - ['colorpickersetsecondcolor_191',['colorPickerSetSecondColor',['../class_painting_area.html#ae261acaaa346610dfed489dbac17e789',1,'PaintingArea']]], - ['colorpickerswitchcolor_192',['colorPickerSwitchColor',['../class_painting_area.html#a66115307ff4a99cd7ca16423c5c8ecfb',1,'PaintingArea']]], - ['createlinetool_193',['createLineTool',['../class_painting_area.html#a240c33a7875addac86080cdfb0db036a',1,'PaintingArea']]], - ['createpentool_194',['createPenTool',['../class_painting_area.html#a96c6248e343e44b61cf2625cb6d21353',1,'PaintingArea']]], - ['createplaintool_195',['createPlainTool',['../class_painting_area.html#a3de83443d2d5cf460ff48d0602070938',1,'PaintingArea']]] + ['calculatetriangles_192',['calculateTriangles',['../namespace_intelli_helper.html#a214dc3624ba4562a03dc922e3dd7b617',1,'IntelliHelper']]], + ['calculatevisiblity_193',['calculateVisiblity',['../class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2',1,'IntelliImage::calculateVisiblity()'],['../class_intelli_raster_image.html#a87cf2d360c129d64a5db0db85818eb60',1,'IntelliRasterImage::calculateVisiblity()']]], + ['closeevent_194',['closeEvent',['../class_intelli_photo_gui.html#a2cf48070236ae8b35245e7f30482ef13',1,'IntelliPhotoGui']]], + ['colorpickersetfirstcolor_195',['colorPickerSetFirstColor',['../class_painting_area.html#a4735d4cf1dc58a9096d904e74c39c4df',1,'PaintingArea']]], + ['colorpickersetsecondcolor_196',['colorPickerSetSecondColor',['../class_painting_area.html#ae261acaaa346610dfed489dbac17e789',1,'PaintingArea']]], + ['colorpickerswitchcolor_197',['colorPickerSwitchColor',['../class_painting_area.html#a66115307ff4a99cd7ca16423c5c8ecfb',1,'PaintingArea']]], + ['createcircletool_198',['createCircleTool',['../class_painting_area.html#a2d9f4b3585f7dd1acb11f432ca503466',1,'PaintingArea']]], + ['createfloodfilltool_199',['createFloodFillTool',['../class_painting_area.html#a0b22e18069b524f3e75857d203baf256',1,'PaintingArea']]], + ['createlinetool_200',['createLineTool',['../class_painting_area.html#a240c33a7875addac86080cdfb0db036a',1,'PaintingArea']]], + ['createpentool_201',['createPenTool',['../class_painting_area.html#a96c6248e343e44b61cf2625cb6d21353',1,'PaintingArea']]], + ['createplaintool_202',['createPlainTool',['../class_painting_area.html#a3de83443d2d5cf460ff48d0602070938',1,'PaintingArea']]], + ['createpolygontool_203',['createPolygonTool',['../class_painting_area.html#a13c2f94644bea9c2d3123d0b7898f34b',1,'PaintingArea']]], + ['createrectangletool_204',['createRectangleTool',['../class_painting_area.html#a5b04ce62ce024e307f54e0281f7ae4bd',1,'PaintingArea']]] ]; diff --git a/docs/html/search/functions_2.js b/docs/html/search/functions_2.js index 7a4517e..3aea88a 100644 --- a/docs/html/search/functions_2.js +++ b/docs/html/search/functions_2.js @@ -1,8 +1,8 @@ var searchData= [ - ['deletelayer_196',['deleteLayer',['../class_painting_area.html#a6efad6f8ea060674b157b42b431cd173',1,'PaintingArea']]], - ['drawline_197',['drawLine',['../class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31',1,'IntelliImage']]], - ['drawpixel_198',['drawPixel',['../class_intelli_image.html#af3c859f5c409e37051edfd9e9fbca056',1,'IntelliImage']]], - ['drawplain_199',['drawPlain',['../class_intelli_image.html#a6be622810dc2bc756054bb5769becb06',1,'IntelliImage']]], - ['drawpoint_200',['drawPoint',['../class_intelli_image.html#a2e787f1b333b59401643936ebb3dcfe1',1,'IntelliImage']]] + ['deletelayer_205',['deleteLayer',['../class_painting_area.html#a6efad6f8ea060674b157b42b431cd173',1,'PaintingArea']]], + ['drawline_206',['drawLine',['../class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31',1,'IntelliImage']]], + ['drawpixel_207',['drawPixel',['../class_intelli_image.html#af3c859f5c409e37051edfd9e9fbca056',1,'IntelliImage']]], + ['drawplain_208',['drawPlain',['../class_intelli_image.html#a6be622810dc2bc756054bb5769becb06',1,'IntelliImage']]], + ['drawpoint_209',['drawPoint',['../class_intelli_image.html#a2e787f1b333b59401643936ebb3dcfe1',1,'IntelliImage']]] ]; diff --git a/docs/html/search/functions_3.js b/docs/html/search/functions_3.js index 94e0cf9..06156fd 100644 --- a/docs/html/search/functions_3.js +++ b/docs/html/search/functions_3.js @@ -1,4 +1,4 @@ var searchData= [ - ['floodfill_201',['floodFill',['../class_painting_area.html#aeb5eb394b979ea90f2be9849fdda1774',1,'PaintingArea']]] + ['floodfill_210',['floodFill',['../class_painting_area.html#aeb5eb394b979ea90f2be9849fdda1774',1,'PaintingArea']]] ]; diff --git a/docs/html/search/functions_4.js b/docs/html/search/functions_4.js index 153ae70..ac5af75 100644 --- a/docs/html/search/functions_4.js +++ b/docs/html/search/functions_4.js @@ -1,11 +1,11 @@ var searchData= [ - ['getdeepcopy_202',['getDeepCopy',['../class_intelli_image.html#af6381067bdf565669f856bb589008ae9',1,'IntelliImage::getDeepCopy()'],['../class_intelli_raster_image.html#a8f901301b106504de3c27308ade897dc',1,'IntelliRasterImage::getDeepCopy()'],['../class_intelli_shaped_image.html#aed0b31e0fa771104399d1f5ff39a0337',1,'IntelliShapedImage::getDeepCopy()']]], - ['getdisplayable_203',['getDisplayable',['../class_intelli_image.html#a21c7e65b59a26db45aac3880133ef21d',1,'IntelliImage::getDisplayable(const QSize &displaySize, int alpha)=0'],['../class_intelli_image.html#a9d4daf3c48c64695105689f61c21bae0',1,'IntelliImage::getDisplayable(int alpha=255)=0'],['../class_intelli_raster_image.html#ae43393397b0141a8033fe34d3a1b1884',1,'IntelliRasterImage::getDisplayable(const QSize &displaySize, int alpha) override'],['../class_intelli_raster_image.html#a612d79124f0e2c158a4f0abbe4b5f97f',1,'IntelliRasterImage::getDisplayable(int alpha=255) override'],['../class_intelli_shaped_image.html#a68cf374247c16f07fd84d50e4cd05630',1,'IntelliShapedImage::getDisplayable(const QSize &displaySize, int alpha=255) override'],['../class_intelli_shaped_image.html#ac6a99e1a96134073bceea252b37636cc',1,'IntelliShapedImage::getDisplayable(int alpha=255) override']]], - ['getfirstcolor_204',['getFirstColor',['../class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7',1,'IntelliColorPicker']]], - ['getheightactivelayer_205',['getHeightActiveLayer',['../class_painting_area.html#a1511a534e206089fff1d325e7ec7a8eb',1,'PaintingArea']]], - ['getpixelcolor_206',['getPixelColor',['../class_intelli_image.html#a4576ebb6d863321c816293d7b7f9fd3f',1,'IntelliImage']]], - ['getpolygondata_207',['getPolygonData',['../class_intelli_image.html#aaf9f3e8db8666850024bee9aad9966ba',1,'IntelliImage::getPolygonData()'],['../class_intelli_shaped_image.html#ae4518c7f5a105cc4f33fabb60c794a93',1,'IntelliShapedImage::getPolygonData()']]], - ['getsecondcolor_208',['getSecondColor',['../class_intelli_color_picker.html#a55568fbf5dc783f06284b7031ffe9415',1,'IntelliColorPicker']]], - ['getwidthactivelayer_209',['getWidthActiveLayer',['../class_painting_area.html#a427c5fc26480c7ae80b3480e85510bda',1,'PaintingArea']]] + ['getdeepcopy_211',['getDeepCopy',['../class_intelli_image.html#af6381067bdf565669f856bb589008ae9',1,'IntelliImage::getDeepCopy()'],['../class_intelli_raster_image.html#a8f901301b106504de3c27308ade897dc',1,'IntelliRasterImage::getDeepCopy()'],['../class_intelli_shaped_image.html#aed0b31e0fa771104399d1f5ff39a0337',1,'IntelliShapedImage::getDeepCopy()']]], + ['getdisplayable_212',['getDisplayable',['../class_intelli_image.html#a21c7e65b59a26db45aac3880133ef21d',1,'IntelliImage::getDisplayable(const QSize &displaySize, int alpha)=0'],['../class_intelli_image.html#a9d4daf3c48c64695105689f61c21bae0',1,'IntelliImage::getDisplayable(int alpha=255)=0'],['../class_intelli_raster_image.html#ae43393397b0141a8033fe34d3a1b1884',1,'IntelliRasterImage::getDisplayable(const QSize &displaySize, int alpha) override'],['../class_intelli_raster_image.html#a612d79124f0e2c158a4f0abbe4b5f97f',1,'IntelliRasterImage::getDisplayable(int alpha=255) override'],['../class_intelli_shaped_image.html#a68cf374247c16f07fd84d50e4cd05630',1,'IntelliShapedImage::getDisplayable(const QSize &displaySize, int alpha=255) override'],['../class_intelli_shaped_image.html#ac6a99e1a96134073bceea252b37636cc',1,'IntelliShapedImage::getDisplayable(int alpha=255) override']]], + ['getfirstcolor_213',['getFirstColor',['../class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7',1,'IntelliColorPicker']]], + ['getheightofactive_214',['getHeightOfActive',['../class_painting_area.html#ac576f58aad03b4dcd47611b6a4b9abb4',1,'PaintingArea']]], + ['getpixelcolor_215',['getPixelColor',['../class_intelli_image.html#a4576ebb6d863321c816293d7b7f9fd3f',1,'IntelliImage']]], + ['getpolygondata_216',['getPolygonData',['../class_intelli_image.html#aaf9f3e8db8666850024bee9aad9966ba',1,'IntelliImage::getPolygonData()'],['../class_intelli_shaped_image.html#ae4518c7f5a105cc4f33fabb60c794a93',1,'IntelliShapedImage::getPolygonData()']]], + ['getsecondcolor_217',['getSecondColor',['../class_intelli_color_picker.html#a55568fbf5dc783f06284b7031ffe9415',1,'IntelliColorPicker']]], + ['getwidthofactive_218',['getWidthOfActive',['../class_painting_area.html#a675ee91b26b1c58be6d833f279d81597',1,'PaintingArea']]] ]; diff --git a/docs/html/search/functions_5.js b/docs/html/search/functions_5.js index 3234f3f..cd12695 100644 --- a/docs/html/search/functions_5.js +++ b/docs/html/search/functions_5.js @@ -1,18 +1,18 @@ var searchData= [ - ['intellicolorpicker_210',['IntelliColorPicker',['../class_intelli_color_picker.html#a0d1247bdd87add1396ea5d9acaad79ae',1,'IntelliColorPicker']]], - ['intelliimage_211',['IntelliImage',['../class_intelli_image.html#a47084f1cb668ea0242ab95162cf9e902',1,'IntelliImage']]], - ['intelliphotogui_212',['IntelliPhotoGui',['../class_intelli_photo_gui.html#ad2aaec3c1517a9aaa461b54e341b97e0',1,'IntelliPhotoGui']]], - ['intellirasterimage_213',['IntelliRasterImage',['../class_intelli_raster_image.html#aad9b561fe499a4da3c6ef98971aa3468',1,'IntelliRasterImage']]], - ['intellishapedimage_214',['IntelliShapedImage',['../class_intelli_shaped_image.html#a0f834c3f255baeb50c98ef335a6d0ea9',1,'IntelliShapedImage']]], - ['intellitool_215',['IntelliTool',['../class_intelli_tool.html#a346dd55d489fced38e7bb46f9168af91',1,'IntelliTool']]], - ['intellitoolcircle_216',['IntelliToolCircle',['../class_intelli_tool_circle.html#a9b185b9d327f8602d0b7f667b8d1d32a',1,'IntelliToolCircle']]], - ['intellitoolfloodfill_217',['IntelliToolFloodFill',['../class_intelli_tool_flood_fill.html#a83b51838da304e274bf866cf2fd5407a',1,'IntelliToolFloodFill']]], - ['intellitoolline_218',['IntelliToolLine',['../class_intelli_tool_line.html#a9b2d4bcd69409a21f6080edfea4ae2a2',1,'IntelliToolLine']]], - ['intellitoolpen_219',['IntelliToolPen',['../class_intelli_tool_pen.html#a889891b3ae7cdefb881aed2e7fff9b47',1,'IntelliToolPen']]], - ['intellitoolplaintool_220',['IntelliToolPlainTool',['../class_intelli_tool_plain_tool.html#a0ff0b9f7b78b763683076e4417236859',1,'IntelliToolPlainTool']]], - ['intellitoolpolygon_221',['IntelliToolPolygon',['../class_intelli_tool_polygon.html#ae6e5f07fdf88d12029410a032dc4921d',1,'IntelliToolPolygon']]], - ['intellitoolrectangle_222',['IntelliToolRectangle',['../class_intelli_tool_rectangle.html#aa9823939a8b8924520a2943cf6335c11',1,'IntelliToolRectangle']]], - ['isinpolygon_223',['isInPolygon',['../namespace_intelli_helper.html#a44d516b3e619e2a743e9c98dd75cf901',1,'IntelliHelper']]], - ['isintriangle_224',['isInTriangle',['../namespace_intelli_helper.html#a9fcfe72f00e870be4a8ab9f2e17483c9',1,'IntelliHelper']]] + ['intellicolorpicker_219',['IntelliColorPicker',['../class_intelli_color_picker.html#a0d1247bdd87add1396ea5d9acaad79ae',1,'IntelliColorPicker']]], + ['intelliimage_220',['IntelliImage',['../class_intelli_image.html#a47084f1cb668ea0242ab95162cf9e902',1,'IntelliImage']]], + ['intelliphotogui_221',['IntelliPhotoGui',['../class_intelli_photo_gui.html#ad2aaec3c1517a9aaa461b54e341b97e0',1,'IntelliPhotoGui']]], + ['intellirasterimage_222',['IntelliRasterImage',['../class_intelli_raster_image.html#aad9b561fe499a4da3c6ef98971aa3468',1,'IntelliRasterImage']]], + ['intellishapedimage_223',['IntelliShapedImage',['../class_intelli_shaped_image.html#a0f834c3f255baeb50c98ef335a6d0ea9',1,'IntelliShapedImage']]], + ['intellitool_224',['IntelliTool',['../class_intelli_tool.html#a346dd55d489fced38e7bb46f9168af91',1,'IntelliTool']]], + ['intellitoolcircle_225',['IntelliToolCircle',['../class_intelli_tool_circle.html#a9b185b9d327f8602d0b7f667b8d1d32a',1,'IntelliToolCircle']]], + ['intellitoolfloodfill_226',['IntelliToolFloodFill',['../class_intelli_tool_flood_fill.html#a83b51838da304e274bf866cf2fd5407a',1,'IntelliToolFloodFill']]], + ['intellitoolline_227',['IntelliToolLine',['../class_intelli_tool_line.html#a9b2d4bcd69409a21f6080edfea4ae2a2',1,'IntelliToolLine']]], + ['intellitoolpen_228',['IntelliToolPen',['../class_intelli_tool_pen.html#a889891b3ae7cdefb881aed2e7fff9b47',1,'IntelliToolPen']]], + ['intellitoolplaintool_229',['IntelliToolPlainTool',['../class_intelli_tool_plain_tool.html#a0ff0b9f7b78b763683076e4417236859',1,'IntelliToolPlainTool']]], + ['intellitoolpolygon_230',['IntelliToolPolygon',['../class_intelli_tool_polygon.html#ae6e5f07fdf88d12029410a032dc4921d',1,'IntelliToolPolygon']]], + ['intellitoolrectangle_231',['IntelliToolRectangle',['../class_intelli_tool_rectangle.html#aa9823939a8b8924520a2943cf6335c11',1,'IntelliToolRectangle']]], + ['isinpolygon_232',['isInPolygon',['../namespace_intelli_helper.html#a44d516b3e619e2a743e9c98dd75cf901',1,'IntelliHelper']]], + ['isintriangle_233',['isInTriangle',['../namespace_intelli_helper.html#a9fcfe72f00e870be4a8ab9f2e17483c9',1,'IntelliHelper']]] ]; diff --git a/docs/html/search/functions_6.js b/docs/html/search/functions_6.js index eaaa202..4d04877 100644 --- a/docs/html/search/functions_6.js +++ b/docs/html/search/functions_6.js @@ -1,4 +1,4 @@ var searchData= [ - ['loadimage_225',['loadImage',['../class_intelli_image.html#aec0e9c8184d89dee33fd9adefbd2f8aa',1,'IntelliImage']]] + ['loadimage_234',['loadImage',['../class_intelli_image.html#aec0e9c8184d89dee33fd9adefbd2f8aa',1,'IntelliImage']]] ]; diff --git a/docs/html/search/functions_7.js b/docs/html/search/functions_7.js index c28c131..28eff31 100644 --- a/docs/html/search/functions_7.js +++ b/docs/html/search/functions_7.js @@ -1,9 +1,9 @@ var searchData= [ - ['main_226',['main',['../main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main.cpp']]], - ['mousemoveevent_227',['mouseMoveEvent',['../class_painting_area.html#aa22e274b6094a9619f196cd7b49526b5',1,'PaintingArea']]], - ['mousepressevent_228',['mousePressEvent',['../class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15',1,'PaintingArea']]], - ['mousereleaseevent_229',['mouseReleaseEvent',['../class_painting_area.html#a35b5df914acb608cc29717659793359c',1,'PaintingArea']]], - ['moveactivelayer_230',['moveActiveLayer',['../class_painting_area.html#ae05f6893fb44bfcb34018573a609cd1a',1,'PaintingArea']]], - ['movepositionactive_231',['movePositionActive',['../class_painting_area.html#ac6d089f4357b22d9a9906fd4771de3e7',1,'PaintingArea']]] + ['main_235',['main',['../main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main.cpp']]], + ['mousemoveevent_236',['mouseMoveEvent',['../class_painting_area.html#aa22e274b6094a9619f196cd7b49526b5',1,'PaintingArea']]], + ['mousepressevent_237',['mousePressEvent',['../class_painting_area.html#abfe445f8d9b70ae42bfeda874127dd15',1,'PaintingArea']]], + ['mousereleaseevent_238',['mouseReleaseEvent',['../class_painting_area.html#a35b5df914acb608cc29717659793359c',1,'PaintingArea']]], + ['moveactivelayer_239',['moveActiveLayer',['../class_painting_area.html#ae05f6893fb44bfcb34018573a609cd1a',1,'PaintingArea']]], + ['movepositionactive_240',['movePositionActive',['../class_painting_area.html#ac6d089f4357b22d9a9906fd4771de3e7',1,'PaintingArea']]] ]; diff --git a/docs/html/search/functions_8.js b/docs/html/search/functions_8.js index 8b9eacd..a9815e5 100644 --- a/docs/html/search/functions_8.js +++ b/docs/html/search/functions_8.js @@ -1,10 +1,10 @@ var searchData= [ - ['onmouseleftpressed_232',['onMouseLeftPressed',['../class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c',1,'IntelliTool::onMouseLeftPressed()'],['../class_intelli_tool_circle.html#ae883b8ae833c78a8867e626c600f9639',1,'IntelliToolCircle::onMouseLeftPressed()'],['../class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961',1,'IntelliToolFloodFill::onMouseLeftPressed()'],['../class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846',1,'IntelliToolLine::onMouseLeftPressed()'],['../class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205',1,'IntelliToolPen::onMouseLeftPressed()'],['../class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9',1,'IntelliToolPlainTool::onMouseLeftPressed()'],['../class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d',1,'IntelliToolPolygon::onMouseLeftPressed()'],['../class_intelli_tool_rectangle.html#ae03c307ccf66cbe3fd59e3657712368d',1,'IntelliToolRectangle::onMouseLeftPressed()']]], - ['onmouseleftreleased_233',['onMouseLeftReleased',['../class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b',1,'IntelliTool::onMouseLeftReleased()'],['../class_intelli_tool_circle.html#ad8e438ec997c57262b5efc2db4cee1a3',1,'IntelliToolCircle::onMouseLeftReleased()'],['../class_intelli_tool_flood_fill.html#a7438ef96c6c36068bce76e2364e8594c',1,'IntelliToolFloodFill::onMouseLeftReleased()'],['../class_intelli_tool_line.html#ac93f76ff20a1c111a403b298bab02482',1,'IntelliToolLine::onMouseLeftReleased()'],['../class_intelli_tool_pen.html#abda7a22b9766fa4ad254324a53cab94d',1,'IntelliToolPen::onMouseLeftReleased()'],['../class_intelli_tool_plain_tool.html#ac23f5d0f07e42fd7c2ea3fc1347da400',1,'IntelliToolPlainTool::onMouseLeftReleased()'],['../class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21',1,'IntelliToolPolygon::onMouseLeftReleased()'],['../class_intelli_tool_rectangle.html#a94460e3ff1c19e80bde922c55f53cc43',1,'IntelliToolRectangle::onMouseLeftReleased()']]], - ['onmousemoved_234',['onMouseMoved',['../class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639',1,'IntelliTool::onMouseMoved()'],['../class_intelli_tool_circle.html#a90ee58c5390a86afc75c14ca79b91d7b',1,'IntelliToolCircle::onMouseMoved()'],['../class_intelli_tool_flood_fill.html#a3cd42cea99bc7583875abcc0c274c668',1,'IntelliToolFloodFill::onMouseMoved()'],['../class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b',1,'IntelliToolLine::onMouseMoved()'],['../class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2',1,'IntelliToolPen::onMouseMoved()'],['../class_intelli_tool_plain_tool.html#ad7546a6335bb3bb4cbf0e1883788d41c',1,'IntelliToolPlainTool::onMouseMoved()'],['../class_intelli_tool_polygon.html#a0e3a1135f04c73c159137ae219a38922',1,'IntelliToolPolygon::onMouseMoved()'],['../class_intelli_tool_rectangle.html#a4b5931071e21eb6949ffe357315e408b',1,'IntelliToolRectangle::onMouseMoved()']]], - ['onmouserightpressed_235',['onMouseRightPressed',['../class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966',1,'IntelliTool::onMouseRightPressed()'],['../class_intelli_tool_circle.html#a29d7b9ed4960e6fe1f31ff620363e429',1,'IntelliToolCircle::onMouseRightPressed()'],['../class_intelli_tool_flood_fill.html#ada0f7154d119102410a55038763a17e4',1,'IntelliToolFloodFill::onMouseRightPressed()'],['../class_intelli_tool_line.html#a6cce59f3017936214b10b47252a898a3',1,'IntelliToolLine::onMouseRightPressed()'],['../class_intelli_tool_pen.html#a1751e3864a0d36ef42ca55021cae73ce',1,'IntelliToolPen::onMouseRightPressed()'],['../class_intelli_tool_plain_tool.html#acb0c46e16d2c09370a2244a936de38b1',1,'IntelliToolPlainTool::onMouseRightPressed()'],['../class_intelli_tool_polygon.html#aa36b012b48311c36e7cd6771a5081427',1,'IntelliToolPolygon::onMouseRightPressed()'],['../class_intelli_tool_rectangle.html#a480c6804a4963c5a1c3f7ef84b63c1a8',1,'IntelliToolRectangle::onMouseRightPressed()']]], - ['onmouserightreleased_236',['onMouseRightReleased',['../class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0',1,'IntelliTool::onMouseRightReleased()'],['../class_intelli_tool_circle.html#aca07540f2f7ccb3d2c0b84890c1afc4c',1,'IntelliToolCircle::onMouseRightReleased()'],['../class_intelli_tool_flood_fill.html#a39cf49c0ce46f96be3510f0b70c9d892',1,'IntelliToolFloodFill::onMouseRightReleased()'],['../class_intelli_tool_line.html#a6214918cba5753f89d97de4559a2b9b2',1,'IntelliToolLine::onMouseRightReleased()'],['../class_intelli_tool_pen.html#abf8562e8cd2da586afdf4d47b3a4ff13',1,'IntelliToolPen::onMouseRightReleased()'],['../class_intelli_tool_plain_tool.html#a2ae458f1b04eb77a47f6dca5e91e33b8',1,'IntelliToolPlainTool::onMouseRightReleased()'],['../class_intelli_tool_polygon.html#a47cad87cd02b128b02dc929713bd1d1b',1,'IntelliToolPolygon::onMouseRightReleased()'],['../class_intelli_tool_rectangle.html#ad43f653256a6516b9398f82054be0d7f',1,'IntelliToolRectangle::onMouseRightReleased()']]], - ['onwheelscrolled_237',['onWheelScrolled',['../class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574',1,'IntelliTool::onWheelScrolled()'],['../class_intelli_tool_circle.html#ae2d9b0fb6695c184c4cb507a5fb75506',1,'IntelliToolCircle::onWheelScrolled()'],['../class_intelli_tool_flood_fill.html#ad58cc7c065123beb6b0270f99e99b991',1,'IntelliToolFloodFill::onWheelScrolled()'],['../class_intelli_tool_line.html#aaf1d686e1ec43f41b5186ccfd806b125',1,'IntelliToolLine::onWheelScrolled()'],['../class_intelli_tool_pen.html#afe3626ddff440ab125f4a2465c45427a',1,'IntelliToolPen::onWheelScrolled()'],['../class_intelli_tool_plain_tool.html#adc004ea421e2cc0ac39cc7a6b6d43d0d',1,'IntelliToolPlainTool::onWheelScrolled()'],['../class_intelli_tool_polygon.html#a713103300c9f023d64d9eec5ac05dd17',1,'IntelliToolPolygon::onWheelScrolled()'],['../class_intelli_tool_rectangle.html#a445c53a56e859f970e59f5036e221e0c',1,'IntelliToolRectangle::onWheelScrolled()']]], - ['open_238',['open',['../class_painting_area.html#a1f597740b4d7b4bc2e24c51f8cb0b6eb',1,'PaintingArea']]] + ['onmouseleftpressed_241',['onMouseLeftPressed',['../class_intelli_tool.html#a34b7ef1dde96b94a0ce450a25ae1778c',1,'IntelliTool::onMouseLeftPressed()'],['../class_intelli_tool_circle.html#ae883b8ae833c78a8867e626c600f9639',1,'IntelliToolCircle::onMouseLeftPressed()'],['../class_intelli_tool_flood_fill.html#ac85e3cb6233508ff9612833a8d9e3961',1,'IntelliToolFloodFill::onMouseLeftPressed()'],['../class_intelli_tool_line.html#a155d676a5f98311217eb095be4759846',1,'IntelliToolLine::onMouseLeftPressed()'],['../class_intelli_tool_pen.html#a8ff40aef6d38eb55af31a19322429205',1,'IntelliToolPen::onMouseLeftPressed()'],['../class_intelli_tool_plain_tool.html#ab786dd5fa80af863246013d43c4b7ac9',1,'IntelliToolPlainTool::onMouseLeftPressed()'],['../class_intelli_tool_polygon.html#ad5d3b741be6d0647a9cdc9da2cb8bc3d',1,'IntelliToolPolygon::onMouseLeftPressed()'],['../class_intelli_tool_rectangle.html#ae03c307ccf66cbe3fd59e3657712368d',1,'IntelliToolRectangle::onMouseLeftPressed()']]], + ['onmouseleftreleased_242',['onMouseLeftReleased',['../class_intelli_tool.html#a906a2575c16c8a33cb2a5197f8d8cc5b',1,'IntelliTool::onMouseLeftReleased()'],['../class_intelli_tool_circle.html#ad8e438ec997c57262b5efc2db4cee1a3',1,'IntelliToolCircle::onMouseLeftReleased()'],['../class_intelli_tool_flood_fill.html#a7438ef96c6c36068bce76e2364e8594c',1,'IntelliToolFloodFill::onMouseLeftReleased()'],['../class_intelli_tool_line.html#ac93f76ff20a1c111a403b298bab02482',1,'IntelliToolLine::onMouseLeftReleased()'],['../class_intelli_tool_pen.html#abda7a22b9766fa4ad254324a53cab94d',1,'IntelliToolPen::onMouseLeftReleased()'],['../class_intelli_tool_plain_tool.html#ac23f5d0f07e42fd7c2ea3fc1347da400',1,'IntelliToolPlainTool::onMouseLeftReleased()'],['../class_intelli_tool_polygon.html#a4e1473ff408ae2e11cf6a43f6f575f21',1,'IntelliToolPolygon::onMouseLeftReleased()'],['../class_intelli_tool_rectangle.html#a94460e3ff1c19e80bde922c55f53cc43',1,'IntelliToolRectangle::onMouseLeftReleased()']]], + ['onmousemoved_243',['onMouseMoved',['../class_intelli_tool.html#ac10e20414cd8855a2f9b103fb6408639',1,'IntelliTool::onMouseMoved()'],['../class_intelli_tool_circle.html#a90ee58c5390a86afc75c14ca79b91d7b',1,'IntelliToolCircle::onMouseMoved()'],['../class_intelli_tool_flood_fill.html#a3cd42cea99bc7583875abcc0c274c668',1,'IntelliToolFloodFill::onMouseMoved()'],['../class_intelli_tool_line.html#abc6324ef0778823fe7e35aef8ae37f9b',1,'IntelliToolLine::onMouseMoved()'],['../class_intelli_tool_pen.html#a58d1d636497b630647ce0c4d652737c2',1,'IntelliToolPen::onMouseMoved()'],['../class_intelli_tool_plain_tool.html#ad7546a6335bb3bb4cbf0e1883788d41c',1,'IntelliToolPlainTool::onMouseMoved()'],['../class_intelli_tool_polygon.html#a0e3a1135f04c73c159137ae219a38922',1,'IntelliToolPolygon::onMouseMoved()'],['../class_intelli_tool_rectangle.html#a4b5931071e21eb6949ffe357315e408b',1,'IntelliToolRectangle::onMouseMoved()']]], + ['onmouserightpressed_244',['onMouseRightPressed',['../class_intelli_tool.html#a1e6aa68ac5f3c2ca02319e5ef3f0c966',1,'IntelliTool::onMouseRightPressed()'],['../class_intelli_tool_circle.html#a29d7b9ed4960e6fe1f31ff620363e429',1,'IntelliToolCircle::onMouseRightPressed()'],['../class_intelli_tool_flood_fill.html#ada0f7154d119102410a55038763a17e4',1,'IntelliToolFloodFill::onMouseRightPressed()'],['../class_intelli_tool_line.html#a6cce59f3017936214b10b47252a898a3',1,'IntelliToolLine::onMouseRightPressed()'],['../class_intelli_tool_pen.html#a1751e3864a0d36ef42ca55021cae73ce',1,'IntelliToolPen::onMouseRightPressed()'],['../class_intelli_tool_plain_tool.html#acb0c46e16d2c09370a2244a936de38b1',1,'IntelliToolPlainTool::onMouseRightPressed()'],['../class_intelli_tool_polygon.html#aa36b012b48311c36e7cd6771a5081427',1,'IntelliToolPolygon::onMouseRightPressed()'],['../class_intelli_tool_rectangle.html#a480c6804a4963c5a1c3f7ef84b63c1a8',1,'IntelliToolRectangle::onMouseRightPressed()']]], + ['onmouserightreleased_245',['onMouseRightReleased',['../class_intelli_tool.html#a16189b00307c6d7e89f28198f54404b0',1,'IntelliTool::onMouseRightReleased()'],['../class_intelli_tool_circle.html#aca07540f2f7ccb3d2c0b84890c1afc4c',1,'IntelliToolCircle::onMouseRightReleased()'],['../class_intelli_tool_flood_fill.html#a39cf49c0ce46f96be3510f0b70c9d892',1,'IntelliToolFloodFill::onMouseRightReleased()'],['../class_intelli_tool_line.html#a6214918cba5753f89d97de4559a2b9b2',1,'IntelliToolLine::onMouseRightReleased()'],['../class_intelli_tool_pen.html#abf8562e8cd2da586afdf4d47b3a4ff13',1,'IntelliToolPen::onMouseRightReleased()'],['../class_intelli_tool_plain_tool.html#a2ae458f1b04eb77a47f6dca5e91e33b8',1,'IntelliToolPlainTool::onMouseRightReleased()'],['../class_intelli_tool_polygon.html#a47cad87cd02b128b02dc929713bd1d1b',1,'IntelliToolPolygon::onMouseRightReleased()'],['../class_intelli_tool_rectangle.html#ad43f653256a6516b9398f82054be0d7f',1,'IntelliToolRectangle::onMouseRightReleased()']]], + ['onwheelscrolled_246',['onWheelScrolled',['../class_intelli_tool.html#a4dccfd4460255ccb866f336406a33574',1,'IntelliTool::onWheelScrolled()'],['../class_intelli_tool_circle.html#ae2d9b0fb6695c184c4cb507a5fb75506',1,'IntelliToolCircle::onWheelScrolled()'],['../class_intelli_tool_flood_fill.html#ad58cc7c065123beb6b0270f99e99b991',1,'IntelliToolFloodFill::onWheelScrolled()'],['../class_intelli_tool_line.html#aaf1d686e1ec43f41b5186ccfd806b125',1,'IntelliToolLine::onWheelScrolled()'],['../class_intelli_tool_pen.html#afe3626ddff440ab125f4a2465c45427a',1,'IntelliToolPen::onWheelScrolled()'],['../class_intelli_tool_plain_tool.html#adc004ea421e2cc0ac39cc7a6b6d43d0d',1,'IntelliToolPlainTool::onWheelScrolled()'],['../class_intelli_tool_polygon.html#a713103300c9f023d64d9eec5ac05dd17',1,'IntelliToolPolygon::onWheelScrolled()'],['../class_intelli_tool_rectangle.html#a445c53a56e859f970e59f5036e221e0c',1,'IntelliToolRectangle::onWheelScrolled()']]], + ['open_247',['open',['../class_painting_area.html#a1f597740b4d7b4bc2e24c51f8cb0b6eb',1,'PaintingArea']]] ]; diff --git a/docs/html/search/functions_9.js b/docs/html/search/functions_9.js index 1c5fa95..d4d4e61 100644 --- a/docs/html/search/functions_9.js +++ b/docs/html/search/functions_9.js @@ -1,5 +1,5 @@ var searchData= [ - ['paintevent_239',['paintEvent',['../class_painting_area.html#a4a8138b9508ee4ec87a7fca9160368a7',1,'PaintingArea']]], - ['paintingarea_240',['PaintingArea',['../class_painting_area.html#a4fa0ec23e78cc59f28c823584c721460',1,'PaintingArea']]] + ['paintevent_248',['paintEvent',['../class_painting_area.html#a4a8138b9508ee4ec87a7fca9160368a7',1,'PaintingArea']]], + ['paintingarea_249',['PaintingArea',['../class_painting_area.html#a4fa0ec23e78cc59f28c823584c721460',1,'PaintingArea']]] ]; diff --git a/docs/html/search/functions_a.js b/docs/html/search/functions_a.js index 796a1ae..2e4e571 100644 --- a/docs/html/search/functions_a.js +++ b/docs/html/search/functions_a.js @@ -1,5 +1,5 @@ var searchData= [ - ['resizeevent_241',['resizeEvent',['../class_painting_area.html#ab57e8ccda60fff7187463a90e65c5335',1,'PaintingArea']]], - ['resizeimage_242',['resizeImage',['../class_intelli_image.html#a177403ab9585d4ba31984a644c54d310',1,'IntelliImage']]] + ['resizeevent_250',['resizeEvent',['../class_painting_area.html#ab57e8ccda60fff7187463a90e65c5335',1,'PaintingArea']]], + ['resizeimage_251',['resizeImage',['../class_intelli_image.html#a177403ab9585d4ba31984a644c54d310',1,'IntelliImage']]] ]; diff --git a/docs/html/search/functions_b.js b/docs/html/search/functions_b.js index 35a9bcf..c0906ad 100644 --- a/docs/html/search/functions_b.js +++ b/docs/html/search/functions_b.js @@ -1,13 +1,13 @@ var searchData= [ - ['save_243',['save',['../class_painting_area.html#a612176cc9d629d22fd3fe1a746cce564',1,'PaintingArea']]], - ['setalphaoflayer_244',['setAlphaOfLayer',['../class_painting_area.html#aec59be20f1c27135700754882dd6383d',1,'PaintingArea']]], - ['setfirstcolor_245',['setFirstColor',['../class_intelli_color_picker.html#a7e2ddbbbfbed383f06b24e5bf6b27ae8',1,'IntelliColorPicker']]], - ['setlayertoactive_246',['setLayerToActive',['../class_painting_area.html#a1d6d86c25efdce9fe9031a9cd01c74c8',1,'PaintingArea']]], - ['setpolygon_247',['setPolygon',['../class_intelli_image.html#aa4b3f4631bd972456917275afb9fd309',1,'IntelliImage::setPolygon()'],['../class_intelli_raster_image.html#a6462fa5f94c5e64e9e1f0c4658e0507b',1,'IntelliRasterImage::setPolygon()'],['../class_intelli_shaped_image.html#a4b69d75de7a3b85032482982f249458e',1,'IntelliShapedImage::setPolygon()']]], - ['setsecondcolor_248',['setSecondColor',['../class_intelli_color_picker.html#a86bf4a940e4a0e465e30cbdf28748931',1,'IntelliColorPicker']]], - ['sign_249',['sign',['../namespace_intelli_helper.html#afdd9fe78cc5d21b59642910220768149',1,'IntelliHelper']]], - ['slotactivatelayer_250',['slotActivateLayer',['../class_painting_area.html#a71ac281e0de263208d4a3b9de74258ec',1,'PaintingArea']]], - ['slotdeleteactivelayer_251',['slotDeleteActiveLayer',['../class_painting_area.html#a1ff0b9c1227531943c9cec2c546fae5e',1,'PaintingArea']]], - ['switchcolors_252',['switchColors',['../class_intelli_color_picker.html#a437a6f20bf2fc0a4cbaf4c030c2a26d9',1,'IntelliColorPicker']]] + ['save_252',['save',['../class_painting_area.html#a612176cc9d629d22fd3fe1a746cce564',1,'PaintingArea']]], + ['setalphaoflayer_253',['setAlphaOfLayer',['../class_painting_area.html#aec59be20f1c27135700754882dd6383d',1,'PaintingArea']]], + ['setfirstcolor_254',['setFirstColor',['../class_intelli_color_picker.html#a7e2ddbbbfbed383f06b24e5bf6b27ae8',1,'IntelliColorPicker']]], + ['setlayertoactive_255',['setLayerToActive',['../class_painting_area.html#a1d6d86c25efdce9fe9031a9cd01c74c8',1,'PaintingArea']]], + ['setpolygon_256',['setPolygon',['../class_intelli_image.html#aa4b3f4631bd972456917275afb9fd309',1,'IntelliImage::setPolygon()'],['../class_intelli_raster_image.html#a6462fa5f94c5e64e9e1f0c4658e0507b',1,'IntelliRasterImage::setPolygon()'],['../class_intelli_shaped_image.html#a4b69d75de7a3b85032482982f249458e',1,'IntelliShapedImage::setPolygon()']]], + ['setsecondcolor_257',['setSecondColor',['../class_intelli_color_picker.html#a86bf4a940e4a0e465e30cbdf28748931',1,'IntelliColorPicker']]], + ['sign_258',['sign',['../namespace_intelli_helper.html#afdd9fe78cc5d21b59642910220768149',1,'IntelliHelper']]], + ['slotactivatelayer_259',['slotActivateLayer',['../class_painting_area.html#a71ac281e0de263208d4a3b9de74258ec',1,'PaintingArea']]], + ['slotdeleteactivelayer_260',['slotDeleteActiveLayer',['../class_painting_area.html#a1ff0b9c1227531943c9cec2c546fae5e',1,'PaintingArea']]], + ['switchcolors_261',['switchColors',['../class_intelli_color_picker.html#a437a6f20bf2fc0a4cbaf4c030c2a26d9',1,'IntelliColorPicker']]] ]; diff --git a/docs/html/search/functions_c.js b/docs/html/search/functions_c.js index ae5f05e..1d5446d 100644 --- a/docs/html/search/functions_c.js +++ b/docs/html/search/functions_c.js @@ -1,4 +1,4 @@ var searchData= [ - ['wheelevent_253',['wheelEvent',['../class_painting_area.html#a632848d99f44d33d7da2618fbc6775a4',1,'PaintingArea']]] + ['wheelevent_262',['wheelEvent',['../class_painting_area.html#a632848d99f44d33d7da2618fbc6775a4',1,'PaintingArea']]] ]; diff --git a/docs/html/search/functions_d.js b/docs/html/search/functions_d.js index bd24f64..fcd9747 100644 --- a/docs/html/search/functions_d.js +++ b/docs/html/search/functions_d.js @@ -1,15 +1,16 @@ var searchData= [ - ['_7eintellicolorpicker_254',['~IntelliColorPicker',['../class_intelli_color_picker.html#a40b975268a1f05249e8a49dde9a862ff',1,'IntelliColorPicker']]], - ['_7eintelliimage_255',['~IntelliImage',['../class_intelli_image.html#ac398bfa9ddd3185508a1e36ee15d80cc',1,'IntelliImage']]], - ['_7eintellirasterimage_256',['~IntelliRasterImage',['../class_intelli_raster_image.html#a844a2b58c43f7e01f2ca116286371bc8',1,'IntelliRasterImage']]], - ['_7eintellishapedimage_257',['~IntelliShapedImage',['../class_intelli_shaped_image.html#a43d63d8a814852d377ee2030658fbab9',1,'IntelliShapedImage']]], - ['_7eintellitool_258',['~IntelliTool',['../class_intelli_tool.html#a57fb1b27d364c9e3696eb928b75fa9f2',1,'IntelliTool']]], - ['_7eintellitoolcircle_259',['~IntelliToolCircle',['../class_intelli_tool_circle.html#a7a03b65b95d7b5d72e6a92c95f068954',1,'IntelliToolCircle']]], - ['_7eintellitoolfloodfill_260',['~IntelliToolFloodFill',['../class_intelli_tool_flood_fill.html#a83b1bd8be0cbb32cdf61a9597ec849ba',1,'IntelliToolFloodFill']]], - ['_7eintellitoolline_261',['~IntelliToolLine',['../class_intelli_tool_line.html#acb600b0f4e9225ebce2937c2b7abb4c2',1,'IntelliToolLine']]], - ['_7eintellitoolpen_262',['~IntelliToolPen',['../class_intelli_tool_pen.html#ac77a025515d0fed6954556fe2b444818',1,'IntelliToolPen']]], - ['_7eintellitoolplaintool_263',['~IntelliToolPlainTool',['../class_intelli_tool_plain_tool.html#a91fe568be05c075814d67440472bb658',1,'IntelliToolPlainTool']]], - ['_7eintellitoolrectangle_264',['~IntelliToolRectangle',['../class_intelli_tool_rectangle.html#a7dc1463e726a21255e6297241dc71fb1',1,'IntelliToolRectangle']]], - ['_7epaintingarea_265',['~PaintingArea',['../class_painting_area.html#aa32adc113f77031945f73e33051931e8',1,'PaintingArea']]] + ['_7eintellicolorpicker_263',['~IntelliColorPicker',['../class_intelli_color_picker.html#a40b975268a1f05249e8a49dde9a862ff',1,'IntelliColorPicker']]], + ['_7eintelliimage_264',['~IntelliImage',['../class_intelli_image.html#ac398bfa9ddd3185508a1e36ee15d80cc',1,'IntelliImage']]], + ['_7eintellirasterimage_265',['~IntelliRasterImage',['../class_intelli_raster_image.html#a844a2b58c43f7e01f2ca116286371bc8',1,'IntelliRasterImage']]], + ['_7eintellishapedimage_266',['~IntelliShapedImage',['../class_intelli_shaped_image.html#a43d63d8a814852d377ee2030658fbab9',1,'IntelliShapedImage']]], + ['_7eintellitool_267',['~IntelliTool',['../class_intelli_tool.html#a57fb1b27d364c9e3696eb928b75fa9f2',1,'IntelliTool']]], + ['_7eintellitoolcircle_268',['~IntelliToolCircle',['../class_intelli_tool_circle.html#a7a03b65b95d7b5d72e6a92c95f068954',1,'IntelliToolCircle']]], + ['_7eintellitoolfloodfill_269',['~IntelliToolFloodFill',['../class_intelli_tool_flood_fill.html#a83b1bd8be0cbb32cdf61a9597ec849ba',1,'IntelliToolFloodFill']]], + ['_7eintellitoolline_270',['~IntelliToolLine',['../class_intelli_tool_line.html#acb600b0f4e9225ebce2937c2b7abb4c2',1,'IntelliToolLine']]], + ['_7eintellitoolpen_271',['~IntelliToolPen',['../class_intelli_tool_pen.html#ac77a025515d0fed6954556fe2b444818',1,'IntelliToolPen']]], + ['_7eintellitoolplaintool_272',['~IntelliToolPlainTool',['../class_intelli_tool_plain_tool.html#a91fe568be05c075814d67440472bb658',1,'IntelliToolPlainTool']]], + ['_7eintellitoolpolygon_273',['~IntelliToolPolygon',['../class_intelli_tool_polygon.html#a087cbf2254010989df6106a357471499',1,'IntelliToolPolygon']]], + ['_7eintellitoolrectangle_274',['~IntelliToolRectangle',['../class_intelli_tool_rectangle.html#a7dc1463e726a21255e6297241dc71fb1',1,'IntelliToolRectangle']]], + ['_7epaintingarea_275',['~PaintingArea',['../class_painting_area.html#aa32adc113f77031945f73e33051931e8',1,'PaintingArea']]] ]; diff --git a/docs/html/search/namespaces_0.js b/docs/html/search/namespaces_0.js index 387dc83..b04b785 100644 --- a/docs/html/search/namespaces_0.js +++ b/docs/html/search/namespaces_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['intellihelper_153',['IntelliHelper',['../namespace_intelli_helper.html',1,'']]] + ['intellihelper_158',['IntelliHelper',['../namespace_intelli_helper.html',1,'']]] ]; diff --git a/docs/html/search/variables_0.js b/docs/html/search/variables_0.js index 4655c35..5b52b7e 100644 --- a/docs/html/search/variables_0.js +++ b/docs/html/search/variables_0.js @@ -1,7 +1,7 @@ var searchData= [ - ['a_266',['A',['../struct_triangle.html#a4fe8b39e0144ebff908b7718c2f2751b',1,'Triangle']]], - ['active_267',['Active',['../class_intelli_tool.html#a13512e95d21a9934ecb36d73b118c25f',1,'IntelliTool']]], - ['alpha_268',['alpha',['../struct_layer_object.html#a402cb1d9f20436032fe080681b80eb56',1,'LayerObject']]], - ['area_269',['Area',['../class_intelli_tool.html#ab4c2698a0f9f25fb6639ec760d2d0289',1,'IntelliTool']]] + ['a_276',['A',['../struct_triangle.html#a4fe8b39e0144ebff908b7718c2f2751b',1,'Triangle']]], + ['active_277',['Active',['../class_intelli_tool.html#a13512e95d21a9934ecb36d73b118c25f',1,'IntelliTool']]], + ['alpha_278',['alpha',['../struct_layer_object.html#a402cb1d9f20436032fe080681b80eb56',1,'LayerObject']]], + ['area_279',['Area',['../class_intelli_tool.html#ab4c2698a0f9f25fb6639ec760d2d0289',1,'IntelliTool']]] ]; diff --git a/docs/html/search/variables_1.js b/docs/html/search/variables_1.js index 7f7d970..a2b29fc 100644 --- a/docs/html/search/variables_1.js +++ b/docs/html/search/variables_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['b_270',['B',['../struct_triangle.html#a64fa6a90a6131f12a1a3054bf86647d7',1,'Triangle']]] + ['b_280',['B',['../struct_triangle.html#a64fa6a90a6131f12a1a3054bf86647d7',1,'Triangle']]] ]; diff --git a/docs/html/search/variables_2.js b/docs/html/search/variables_2.js index 344d2a5..9c0a3cc 100644 --- a/docs/html/search/variables_2.js +++ b/docs/html/search/variables_2.js @@ -1,6 +1,6 @@ var searchData= [ - ['c_271',['C',['../struct_triangle.html#addb8aaab314d79f3617acca01e12872a',1,'Triangle']]], - ['canvas_272',['Canvas',['../class_intelli_tool.html#a144d469cc03584f501194529a1b53c77',1,'IntelliTool']]], - ['colorpicker_273',['colorPicker',['../class_intelli_tool.html#ae2e0ac394611a361ab4ef2fe55c03fef',1,'IntelliTool']]] + ['c_281',['C',['../struct_triangle.html#addb8aaab314d79f3617acca01e12872a',1,'Triangle']]], + ['canvas_282',['Canvas',['../class_intelli_tool.html#a144d469cc03584f501194529a1b53c77',1,'IntelliTool']]], + ['colorpicker_283',['colorPicker',['../class_intelli_tool.html#ae2e0ac394611a361ab4ef2fe55c03fef',1,'IntelliTool']]] ]; diff --git a/docs/html/search/variables_3.js b/docs/html/search/variables_3.js index 9cb803f..11f31da 100644 --- a/docs/html/search/variables_3.js +++ b/docs/html/search/variables_3.js @@ -1,4 +1,4 @@ var searchData= [ - ['drawing_274',['drawing',['../class_intelli_tool.html#af256de16e9825922d20a23d11617b51b',1,'IntelliTool']]] + ['drawing_284',['drawing',['../class_intelli_tool.html#af256de16e9825922d20a23d11617b51b',1,'IntelliTool']]] ]; diff --git a/docs/html/search/variables_4.js b/docs/html/search/variables_4.js index 06ea30e..0d0c5be 100644 --- a/docs/html/search/variables_4.js +++ b/docs/html/search/variables_4.js @@ -1,5 +1,5 @@ var searchData= [ - ['hight_275',['hight',['../struct_layer_object.html#a4b1729dbf7d3490e4c2776e29ffef8b0',1,'LayerObject']]], - ['hightoffset_276',['hightOffset',['../struct_layer_object.html#a6256486a76c38baa3f1c664f4d190743',1,'LayerObject']]] + ['height_285',['height',['../struct_layer_object.html#ae0003fb815e50ed587a9897988befc90',1,'LayerObject']]], + ['heightoffset_286',['heightOffset',['../struct_layer_object.html#a08bacdcd64a0ae0eb5376f55329954bc',1,'LayerObject']]] ]; diff --git a/docs/html/search/variables_5.js b/docs/html/search/variables_5.js index 7b91b4a..1f735ac 100644 --- a/docs/html/search/variables_5.js +++ b/docs/html/search/variables_5.js @@ -1,5 +1,5 @@ var searchData= [ - ['image_277',['image',['../struct_layer_object.html#af01a139bc8edfdbb338393874e89bd83',1,'LayerObject']]], - ['imagedata_278',['imageData',['../class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2',1,'IntelliImage']]] + ['image_287',['image',['../struct_layer_object.html#af01a139bc8edfdbb338393874e89bd83',1,'LayerObject']]], + ['imagedata_288',['imageData',['../class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2',1,'IntelliImage']]] ]; diff --git a/docs/html/search/variables_6.js b/docs/html/search/variables_6.js index 01b1461..fc61886 100644 --- a/docs/html/search/variables_6.js +++ b/docs/html/search/variables_6.js @@ -1,4 +1,4 @@ var searchData= [ - ['polygondata_279',['polygonData',['../class_intelli_shaped_image.html#a727d19ce314c0874be6b0633a3a603c8',1,'IntelliShapedImage']]] + ['polygondata_289',['polygonData',['../class_intelli_shaped_image.html#a727d19ce314c0874be6b0633a3a603c8',1,'IntelliShapedImage']]] ]; diff --git a/docs/html/search/variables_7.js b/docs/html/search/variables_7.js index a957d63..4da23c3 100644 --- a/docs/html/search/variables_7.js +++ b/docs/html/search/variables_7.js @@ -1,5 +1,5 @@ var searchData= [ - ['width_280',['width',['../struct_layer_object.html#af261813df52ff0b0c82bfa57efeb9897',1,'LayerObject']]], - ['widthoffset_281',['widthOffset',['../struct_layer_object.html#a72b44d27c7bbb60dde14f04ec240ab96',1,'LayerObject']]] + ['width_290',['width',['../struct_layer_object.html#af261813df52ff0b0c82bfa57efeb9897',1,'LayerObject']]], + ['widthoffset_291',['widthOffset',['../struct_layer_object.html#a72b44d27c7bbb60dde14f04ec240ab96',1,'LayerObject']]] ]; diff --git a/docs/html/struct_layer_object-members.html b/docs/html/struct_layer_object-members.html index 8009fdb..702a111 100644 --- a/docs/html/struct_layer_object-members.html +++ b/docs/html/struct_layer_object-members.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    @@ -94,8 +94,8 @@ $(document).ready(function(){initNavTree('struct_layer_object.html','');});

    This is the complete list of members for LayerObject, including all inherited members.

    - - + + diff --git a/docs/html/struct_layer_object.html b/docs/html/struct_layer_object.html index d282e62..537455d 100644 --- a/docs/html/struct_layer_object.html +++ b/docs/html/struct_layer_object.html @@ -30,7 +30,7 @@ @@ -94,6 +94,9 @@ $(document).ready(function(){initNavTree('struct_layer_object.html','');});
    +

    The LayerObject struct holds all the information needed to construct a layer. + More...

    +

    #include <PaintingArea.h>

    Collaboration diagram for LayerObject:
    @@ -107,18 +110,29 @@ Public Attributes
    - - + + - - + +
    alphaLayerObject
    hightLayerObject
    hightOffsetLayerObject
    heightLayerObject
    heightOffsetLayerObject
    imageLayerObject
    widthLayerObject
    widthOffsetLayerObject
    IntelliPhoto -  0.4 +  0.5
     
    int width
     
    int hight
     
    int height
     
    int widthOffset
     
    int hightOffset
     
    int heightOffset
     
    int alpha =255
     

    Detailed Description

    -
    -

    Definition at line 16 of file PaintingArea.h.

    +

    The LayerObject struct holds all the information needed to construct a layer.

    +
    Parameters
    + + + + + + +
    width- Stores the width of a layer in pixels
    height- Stores the height of a layer in pixels
    alpha- Stores the alpha value of the layer (default=255)
    widthOffset- Stores the number of pixles from the left side of the painting area
    heightOffset- Stores the number of pixles from the top of the painting area
    +
    +
    + +

    Definition at line 24 of file PaintingArea.h.

    Member Data Documentation

    ◆ alpha

    @@ -132,39 +146,39 @@ Public Attributes
    -

    Definition at line 22 of file PaintingArea.h.

    +

    Definition at line 30 of file PaintingArea.h.

    - -

    ◆ hight

    + +

    ◆ height

    - +
    int LayerObject::hightint LayerObject::height
    -

    Definition at line 19 of file PaintingArea.h.

    +

    Definition at line 27 of file PaintingArea.h.

    - -

    ◆ hightOffset

    + +

    ◆ heightOffset

    - +
    int LayerObject::hightOffsetint LayerObject::heightOffset
    -

    Definition at line 21 of file PaintingArea.h.

    +

    Definition at line 29 of file PaintingArea.h.

    @@ -180,7 +194,7 @@ Public Attributes
    -

    Definition at line 17 of file PaintingArea.h.

    +

    Definition at line 25 of file PaintingArea.h.

    @@ -196,7 +210,7 @@ Public Attributes
    -

    Definition at line 18 of file PaintingArea.h.

    +

    Definition at line 26 of file PaintingArea.h.

    @@ -212,7 +226,7 @@ Public Attributes
    -

    Definition at line 20 of file PaintingArea.h.

    +

    Definition at line 28 of file PaintingArea.h.

    diff --git a/docs/html/struct_layer_object.js b/docs/html/struct_layer_object.js index 34361c9..c686168 100644 --- a/docs/html/struct_layer_object.js +++ b/docs/html/struct_layer_object.js @@ -1,8 +1,8 @@ var struct_layer_object = [ [ "alpha", "struct_layer_object.html#a402cb1d9f20436032fe080681b80eb56", null ], - [ "hight", "struct_layer_object.html#a4b1729dbf7d3490e4c2776e29ffef8b0", null ], - [ "hightOffset", "struct_layer_object.html#a6256486a76c38baa3f1c664f4d190743", null ], + [ "height", "struct_layer_object.html#ae0003fb815e50ed587a9897988befc90", null ], + [ "heightOffset", "struct_layer_object.html#a08bacdcd64a0ae0eb5376f55329954bc", null ], [ "image", "struct_layer_object.html#af01a139bc8edfdbb338393874e89bd83", null ], [ "width", "struct_layer_object.html#af261813df52ff0b0c82bfa57efeb9897", null ], [ "widthOffset", "struct_layer_object.html#a72b44d27c7bbb60dde14f04ec240ab96", null ] diff --git a/docs/html/struct_layer_object__coll__graph.dot b/docs/html/struct_layer_object__coll__graph.dot index 16b2ac5..780664f 100644 --- a/docs/html/struct_layer_object__coll__graph.dot +++ b/docs/html/struct_layer_object__coll__graph.dot @@ -3,7 +3,7 @@ digraph "LayerObject" // LATEX_PDF_SIZE edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; node [fontname="Helvetica",fontsize="10",shape=record]; - Node1 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "]; + Node1 [label="LayerObject",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip="The LayerObject struct holds all the information needed to construct a layer."]; Node2 -> Node1 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" image" ,fontname="Helvetica"]; Node2 [label="IntelliImage",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$class_intelli_image.html",tooltip="An abstract class which manages the basic IntelliImage operations."]; } diff --git a/docs/html/struct_triangle-members.html b/docs/html/struct_triangle-members.html index 713afee..883f66a 100644 --- a/docs/html/struct_triangle-members.html +++ b/docs/html/struct_triangle-members.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5
    diff --git a/docs/html/struct_triangle.html b/docs/html/struct_triangle.html index 446a4b0..f0e832d 100644 --- a/docs/html/struct_triangle.html +++ b/docs/html/struct_triangle.html @@ -30,7 +30,7 @@
    IntelliPhoto -  0.4 +  0.5