File tree Expand file tree Collapse file tree 4 files changed +27
-0
lines changed Expand file tree Collapse file tree 4 files changed +27
-0
lines changed Original file line number Diff line number Diff line change 33#pragma once
44
55#include " global.h"
6+ #include " signal.h"
67#include " spimpl.h"
78
89namespace libscratchcpp
@@ -27,6 +28,7 @@ class LIBSCRATCHCPP_EXPORT Drawable
2728
2829 int layerOrder () const ;
2930 virtual void setLayerOrder (int newLayerOrder);
31+ sigslot::signal<int > &layerOrderChanged () const ;
3032
3133 IEngine *engine () const ;
3234 virtual void setEngine (IEngine *engine);
Original file line number Diff line number Diff line change @@ -22,6 +22,13 @@ int Drawable::layerOrder() const
2222void Drawable::setLayerOrder (int newLayerOrder)
2323{
2424 impl->layerOrder = newLayerOrder;
25+ impl->layerOrderChanged (newLayerOrder);
26+ }
27+
28+ /* ! Emits when the layer number changes. */
29+ sigslot::signal<int > &Drawable::layerOrderChanged () const
30+ {
31+ return impl->layerOrderChanged ;
2532}
2633
2734/* ! Returns the engine. */
Original file line number Diff line number Diff line change 22
33#pragma once
44
5+ #include < scratchcpp/signal.h>
6+
57namespace libscratchcpp
68{
79
@@ -11,6 +13,7 @@ struct DrawablePrivate
1113{
1214 int layerOrder = 0 ;
1315 IEngine *engine = nullptr ;
16+ mutable sigslot::signal<int > layerOrderChanged;
1417};
1518
1619} // namespace libscratchcpp
Original file line number Diff line number Diff line change 55
66using namespace libscratchcpp ;
77
8+ class LayerOrderMock
9+ {
10+ public:
11+ MOCK_METHOD (void , f, (int ));
12+ };
13+
814TEST (DrawableTest, IsTarget)
915{
1016 Drawable drawable;
@@ -21,8 +27,17 @@ TEST(DrawableTest, LayerOrder)
2127{
2228 Drawable drawable;
2329 ASSERT_EQ (drawable.layerOrder (), 0 );
30+
31+ LayerOrderMock spy;
32+ drawable.layerOrderChanged ().connect (&LayerOrderMock::f, &spy);
33+
34+ EXPECT_CALL (spy, f (2 ));
2435 drawable.setLayerOrder (2 );
2536 ASSERT_EQ (drawable.layerOrder (), 2 );
37+
38+ EXPECT_CALL (spy, f (0 ));
39+ drawable.setLayerOrder (0 );
40+ ASSERT_EQ (drawable.layerOrder (), 0 );
2641}
2742
2843TEST (TargetTest, Engine)
You can’t perform that action at this time.
0 commit comments