All Classes Namespaces Functions Variables Enumerations Properties Pages
buckettool.h
1 /*
2 
3 Pencil2D - Traditional Animation Software
4 Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
5 Copyright (C) 2012-2020 Matthew Chiawen Chang
6 
7 This program is free software; you can redistribute it and/or
8 modify it under the terms of the GNU General Public License
9 as published by the Free Software Foundation; version 2 of the License.
10 
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15 
16 */
17 
18 #ifndef BUCKETTOOL_H
19 #define BUCKETTOOL_H
20 
21 #include "stroketool.h"
22 
23 #include "bitmapimage.h"
24 #include "bitmapbucket.h"
25 
26 class Layer;
27 class VectorImage;
28 
29 class BucketTool : public StrokeTool
30 {
31  Q_OBJECT
32 public:
33  explicit BucketTool(QObject* parent = nullptr);
34  ToolType type() override;
35  void loadSettings() override;
36  void resetToDefault() override;
37  QCursor cursor() override;
38 
39  void pointerPressEvent(PointerEvent*) override;
40  void pointerMoveEvent(PointerEvent*) override;
41  void pointerReleaseEvent(PointerEvent*) override;
42 
43  bool startAdjusting(Qt::KeyboardModifiers modifiers, qreal argStep) override;
44 
45  void setTolerance(const int tolerance) override;
46  void setToleranceEnabled(const bool enabled) override;
47  void setWidth(const qreal width) override;
48  void setFillExpand(const int fillExpandValue) override;
49  void setFillExpandEnabled(const bool enabled) override;
50  void setFillToLayer(int layerIndex) override;
51  void setFillReferenceMode(int referenceMode) override;
52  void setFillMode(int mode) override;
53 
54  void paintBitmap();
55  void paintVector(Layer* layer);
56  void drawStroke();
57 
58  void applyChanges();
59 
60 private:
61 
62  BitmapBucket mBitmapBucket;
63  VectorImage* vectorImage = nullptr;
64 
65  bool mFilledOnMove = false;
66 };
67 
68 #endif // BUCKETTOOL_H
void setWidth(const qreal width) override
BrushTool::setWidth.
Definition: buckettool.cpp:113
typedef KeyboardModifiers
Q_OBJECTQ_OBJECT
Definition: layer.h:38
QObject * parent() const const