Skip to content

Commit 1b3de4b

Browse files
committed
Add sprite interface getter
1 parent d7e05e2 commit 1b3de4b

File tree

3 files changed

+18
-0
lines changed

3 files changed

+18
-0
lines changed

include/scratchcpp/sprite.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ class LIBSCRATCHCPP_EXPORT Sprite
2929
Sprite(const Sprite &) = delete;
3030

3131
void setInterface(ISpriteHandler *newInterface);
32+
ISpriteHandler *getInterface() const; // NOTE: This can't be called interface because of... Microsoft... (it wouldn't compile on Windows)
3233

3334
std::shared_ptr<Sprite> clone();
3435
void deleteClone();

src/scratch/sprite.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,12 @@ void Sprite::setInterface(ISpriteHandler *newInterface)
2929
impl->iface->init(this);
3030
}
3131

32+
/*! Returns the sprite interface. */
33+
ISpriteHandler *Sprite::getInterface() const
34+
{
35+
return impl->iface;
36+
}
37+
3238
/*! Creates a clone of the sprite. */
3339
std::shared_ptr<Sprite> Sprite::clone()
3440
{

test/scratch_classes/sprite_test.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,17 @@ TEST(SpriteTest, IsStage)
2323
ASSERT_FALSE(sprite.isStage());
2424
}
2525

26+
TEST(SpriteTest, Interface)
27+
{
28+
Sprite sprite;
29+
ASSERT_EQ(sprite.getInterface(), nullptr);
30+
31+
SpriteHandlerMock handler;
32+
EXPECT_CALL(handler, init);
33+
sprite.setInterface(&handler);
34+
ASSERT_EQ(sprite.getInterface(), &handler);
35+
}
36+
2637
TEST(SpriteTest, Visible)
2738
{
2839
Sprite sprite;

0 commit comments

Comments
 (0)