Skip to content

Commit 8ff1670

Browse files
committed
Add onLayerOrderChanged() to ISpriteHandler
1 parent 0fec169 commit 8ff1670

File tree

4 files changed

+13
-0
lines changed

4 files changed

+13
-0
lines changed

include/scratchcpp/ispritehandler.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@ class LIBSCRATCHCPP_EXPORT ISpriteHandler
4444
/*! Called when the rotation style changes. */
4545
virtual void onRotationStyleChanged(Sprite::RotationStyle rotationStyle) = 0;
4646

47+
/*! Called when the layer order changes. */
48+
virtual void onLayerOrderChanged(int layerOrder) = 0;
49+
4750
/*!
4851
* Called when the value of the given graphics effect changes.
4952
* \note This method isn't called when all effects are cleared, use onGraphicsEffectsCleared() for this.

src/scratch/sprite.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,9 @@ void Sprite::setRotationStyle(const char *newRotationStyle)
319319
void Sprite::setLayerOrder(int newLayerOrder)
320320
{
321321
Target::setLayerOrder(newLayerOrder);
322+
323+
if (impl->iface)
324+
impl->iface->onLayerOrderChanged(newLayerOrder);
322325
}
323326

324327
/*! Returns the bounding rectangle of the sprite. */

test/mocks/spritehandlermock.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ class SpriteHandlerMock : public ISpriteHandler
2121
MOCK_METHOD(void, onSizeChanged, (double), (override));
2222
MOCK_METHOD(void, onDirectionChanged, (double), (override));
2323
MOCK_METHOD(void, onRotationStyleChanged, (Sprite::RotationStyle), (override));
24+
MOCK_METHOD(void, onLayerOrderChanged, (int), (override));
2425
MOCK_METHOD(void, onGraphicsEffectChanged, (IGraphicsEffect *, double), (override));
2526
MOCK_METHOD(void, onGraphicsEffectsCleared, (), (override));
2627

test/target_interfaces/ispritehandler_test.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,12 @@ TEST_F(ISpriteHandlerTest, RotationStyle)
118118
m_sprite.setRotationStyle(Sprite::RotationStyle::LeftRight);
119119
}
120120

121+
TEST_F(ISpriteHandlerTest, LayerOrder)
122+
{
123+
EXPECT_CALL(m_handler, onLayerOrderChanged(7)).Times(1);
124+
m_sprite.setLayerOrder(7);
125+
}
126+
121127
TEST_F(ISpriteHandlerTest, Costume)
122128
{
123129
auto costume1 = std::make_shared<Costume>("", "", "");

0 commit comments

Comments
 (0)