Skip to content

Commit e61b78f

Browse files
committed
Add isBackdropBroadcast property to Broadcast
1 parent 2bc7038 commit e61b78f

File tree

6 files changed

+41
-9
lines changed

6 files changed

+41
-9
lines changed

include/scratchcpp/broadcast.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,14 @@ class BroadcastPrivate;
1313
class LIBSCRATCHCPP_EXPORT Broadcast : public Entity
1414
{
1515
public:
16-
Broadcast(const std::string &id, const std::string &name);
16+
Broadcast(const std::string &id, const std::string &name, bool isBackdropBroadcast = false);
1717
Broadcast(const Broadcast &) = delete;
1818

1919
const std::string &name() const;
2020
void setName(const std::string &newName);
2121

22+
bool isBackdropBroadcast() const;
23+
2224
private:
2325
spimpl::unique_impl_ptr<BroadcastPrivate> impl;
2426
};

src/scratch/broadcast.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
using namespace libscratchcpp;
88

99
/*! Constructs Broadcast. */
10-
Broadcast::Broadcast(const std::string &id, const std::string &name) :
10+
Broadcast::Broadcast(const std::string &id, const std::string &name, bool isBackdropBroadcast) :
1111
Entity(id),
12-
impl(spimpl::make_unique_impl<BroadcastPrivate>(name))
12+
impl(spimpl::make_unique_impl<BroadcastPrivate>(name, isBackdropBroadcast))
1313
{
1414
}
1515

@@ -24,3 +24,9 @@ void Broadcast::setName(const std::string &newName)
2424
{
2525
impl->name = newName;
2626
}
27+
28+
/*! Returns true if this broadcast belongs to a backdrop. */
29+
bool Broadcast::isBackdropBroadcast() const
30+
{
31+
return impl->isBackdropBroadcast;
32+
}

src/scratch/broadcast_p.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
namespace libscratchcpp
66
{
77

8-
BroadcastPrivate::BroadcastPrivate(const std::string &name) :
9-
name(name)
8+
BroadcastPrivate::BroadcastPrivate(const std::string &name, bool isBackdropBroadcast) :
9+
name(name),
10+
isBackdropBroadcast(isBackdropBroadcast)
1011
{
1112
}
1213

src/scratch/broadcast_p.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,11 @@ namespace libscratchcpp
99

1010
struct BroadcastPrivate
1111
{
12-
BroadcastPrivate(const std::string &name);
12+
BroadcastPrivate(const std::string &name, bool isBackdropBroadcast);
1313
BroadcastPrivate(const BroadcastPrivate &) = delete;
1414

1515
std::string name;
16+
bool isBackdropBroadcast = false;
1617
};
1718

1819
} // namespace libscratchcpp

test/load_project/load_project_test.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include <scratchcpp/sprite.h>
1313
#include <scratchcpp/inputvalue.h>
1414
#include <scratchcpp/comment.h>
15+
#include <scratchcpp/broadcast.h>
1516
#include <projectdownloaderfactorymock.h>
1617
#include <projectdownloadermock.h>
1718

@@ -498,6 +499,10 @@ TEST(LoadProjectTest, ProjectTest)
498499
ASSERT_EQ(engine->extensions().size(), 0);
499500
ASSERT_EQ(engine->broadcasts().size(), 1);
500501

502+
auto broadcast = engine->broadcastAt(0);
503+
ASSERT_EQ(broadcast->name(), "message1");
504+
ASSERT_FALSE(broadcast->isBackdropBroadcast());
505+
501506
i++;
502507
}
503508
}

test/scratch_classes/broadcast_test.cpp

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,26 @@ using namespace libscratchcpp;
66

77
TEST(BroadcastTest, Constructors)
88
{
9-
Broadcast broadcast("a", "message1");
10-
ASSERT_EQ(broadcast.id(), "a");
11-
ASSERT_EQ(broadcast.name(), "message1");
9+
{
10+
Broadcast broadcast("a", "message1");
11+
ASSERT_EQ(broadcast.id(), "a");
12+
ASSERT_EQ(broadcast.name(), "message1");
13+
ASSERT_FALSE(broadcast.isBackdropBroadcast());
14+
}
15+
16+
{
17+
Broadcast broadcast("a", "message1", false);
18+
ASSERT_EQ(broadcast.id(), "a");
19+
ASSERT_EQ(broadcast.name(), "message1");
20+
ASSERT_FALSE(broadcast.isBackdropBroadcast());
21+
}
22+
23+
{
24+
Broadcast broadcast("a", "message1", true);
25+
ASSERT_EQ(broadcast.id(), "a");
26+
ASSERT_EQ(broadcast.name(), "message1");
27+
ASSERT_TRUE(broadcast.isBackdropBroadcast());
28+
}
1229
}
1330

1431
TEST(BroadcastTest, Name)

0 commit comments

Comments
 (0)