Skip to content

Commit 6061e9c

Browse files
committed
Add IRenderedTarget interface
1 parent e3947f5 commit 6061e9c

File tree

3 files changed

+75
-28
lines changed

3 files changed

+75
-28
lines changed

ScratchCPPGui/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ qt_add_qml_module(libscratchcpp-gui
1717
stagemodel.h
1818
spritemodel.cpp
1919
spritemodel.h
20+
irenderedtarget.h
2021
renderedtarget.cpp
2122
renderedtarget.h
2223
targetpainter.cpp

ScratchCPPGui/irenderedtarget.h

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
// SPDX-License-Identifier: LGPL-3.0-or-later
2+
3+
#pragma once
4+
5+
class QBuffer;
6+
class QString;
7+
8+
namespace libscratchcpp
9+
{
10+
11+
class Costume;
12+
class IEngine;
13+
class Target;
14+
15+
} // namespace libscratchcpp
16+
17+
namespace scratchcppgui
18+
{
19+
20+
class StageModel;
21+
class SpriteModel;
22+
23+
class IRenderedTarget
24+
{
25+
public:
26+
virtual ~IRenderedTarget() { }
27+
28+
virtual void loadProperties() = 0;
29+
virtual void loadCostume(libscratchcpp::Costume *costume) = 0;
30+
virtual void updateProperties() = 0;
31+
32+
virtual libscratchcpp::IEngine *engine() const = 0;
33+
virtual void setEngine(libscratchcpp::IEngine *newEngine) = 0;
34+
35+
virtual StageModel *stageModel() const = 0;
36+
virtual void setStageModel(StageModel *newStageModel) = 0;
37+
38+
virtual SpriteModel *spriteModel() const = 0;
39+
virtual void setSpriteModel(SpriteModel *newSpriteModel) = 0;
40+
41+
virtual libscratchcpp::Target *scratchTarget() const = 0;
42+
43+
virtual unsigned char *svgBitmap() const = 0;
44+
virtual QBuffer *bitmapBuffer() = 0;
45+
virtual const QString &bitmapUniqueKey() const = 0;
46+
47+
virtual void lockCostume() = 0;
48+
virtual void unlockCostume() = 0;
49+
50+
virtual bool mirrorHorizontally() const = 0;
51+
};
52+
53+
} // namespace scratchcppgui

ScratchCPPGui/renderedtarget.h

Lines changed: 21 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,21 @@
22

33
#pragma once
44

5-
#include <scratchcpp/iimageformat.h>
6-
#include <scratchcpp/iengine.h>
75
#include <qnanoquickitem.h>
8-
#include <qnanoimage.h>
96
#include <QBuffer>
107
#include <QMutex>
118

9+
#include "irenderedtarget.h"
10+
1211
Q_MOC_INCLUDE("stagemodel.h");
1312
Q_MOC_INCLUDE("spritemodel.h");
1413

15-
namespace libscratchcpp
16-
{
17-
class Costume;
18-
}
19-
2014
namespace scratchcppgui
2115
{
2216

23-
class StageModel;
24-
class SpriteModel;
25-
26-
class RenderedTarget : public QNanoQuickItem
17+
class RenderedTarget
18+
: public QNanoQuickItem
19+
, public IRenderedTarget
2720
{
2821
Q_OBJECT
2922
QML_ELEMENT
@@ -36,29 +29,29 @@ class RenderedTarget : public QNanoQuickItem
3629
RenderedTarget(QNanoQuickItem *parent = nullptr);
3730
~RenderedTarget();
3831

39-
Q_INVOKABLE void loadProperties();
40-
void loadCostume(libscratchcpp::Costume *costume);
41-
Q_INVOKABLE void updateProperties();
32+
Q_INVOKABLE void loadProperties() override;
33+
void loadCostume(libscratchcpp::Costume *costume) override;
34+
Q_INVOKABLE void updateProperties() override;
4235

43-
libscratchcpp::IEngine *engine() const;
44-
void setEngine(libscratchcpp::IEngine *newEngine);
36+
libscratchcpp::IEngine *engine() const override;
37+
void setEngine(libscratchcpp::IEngine *newEngine) override;
4538

46-
StageModel *stageModel() const;
47-
void setStageModel(StageModel *newStageModel);
39+
StageModel *stageModel() const override;
40+
void setStageModel(StageModel *newStageModel) override;
4841

49-
SpriteModel *spriteModel() const;
50-
void setSpriteModel(SpriteModel *newSpriteModel);
42+
SpriteModel *spriteModel() const override;
43+
void setSpriteModel(SpriteModel *newSpriteModel) override;
5144

52-
libscratchcpp::Target *scratchTarget() const;
45+
libscratchcpp::Target *scratchTarget() const override;
5346

54-
unsigned char *svgBitmap() const;
55-
QBuffer *bitmapBuffer();
56-
const QString &bitmapUniqueKey() const;
47+
unsigned char *svgBitmap() const override;
48+
QBuffer *bitmapBuffer() override;
49+
const QString &bitmapUniqueKey() const override;
5750

58-
void lockCostume();
59-
void unlockCostume();
51+
void lockCostume() override;
52+
void unlockCostume() override;
6053

61-
bool mirrorHorizontally() const;
54+
bool mirrorHorizontally() const override;
6255

6356
signals:
6457
void engineChanged();

0 commit comments

Comments
 (0)