We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 2bc7038 commit e61b78fCopy full SHA for e61b78f
include/scratchcpp/broadcast.h
@@ -13,12 +13,14 @@ class BroadcastPrivate;
13
class LIBSCRATCHCPP_EXPORT Broadcast : public Entity
14
{
15
public:
16
- Broadcast(const std::string &id, const std::string &name);
+ Broadcast(const std::string &id, const std::string &name, bool isBackdropBroadcast = false);
17
Broadcast(const Broadcast &) = delete;
18
19
const std::string &name() const;
20
void setName(const std::string &newName);
21
22
+ bool isBackdropBroadcast() const;
23
+
24
private:
25
spimpl::unique_impl_ptr<BroadcastPrivate> impl;
26
};
src/scratch/broadcast.cpp
@@ -7,9 +7,9 @@
7
using namespace libscratchcpp;
8
9
/*! Constructs Broadcast. */
10
-Broadcast::Broadcast(const std::string &id, const std::string &name) :
+Broadcast::Broadcast(const std::string &id, const std::string &name, bool isBackdropBroadcast) :
11
Entity(id),
12
- impl(spimpl::make_unique_impl<BroadcastPrivate>(name))
+ impl(spimpl::make_unique_impl<BroadcastPrivate>(name, isBackdropBroadcast))
}
@@ -24,3 +24,9 @@ void Broadcast::setName(const std::string &newName)
impl->name = newName;
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
@@ -5,8 +5,9 @@
5
namespace libscratchcpp
6
-BroadcastPrivate::BroadcastPrivate(const std::string &name) :
- name(name)
+BroadcastPrivate::BroadcastPrivate(const std::string &name, bool isBackdropBroadcast) :
+ name(name),
+ isBackdropBroadcast(isBackdropBroadcast)
src/scratch/broadcast_p.h
@@ -9,10 +9,11 @@ namespace libscratchcpp
struct BroadcastPrivate
- BroadcastPrivate(const std::string &name);
+ BroadcastPrivate(const std::string &name, bool isBackdropBroadcast);
BroadcastPrivate(const BroadcastPrivate &) = delete;
std::string name;
+ bool isBackdropBroadcast = false;
} // namespace libscratchcpp
test/load_project/load_project_test.cpp
@@ -12,6 +12,7 @@
#include <scratchcpp/sprite.h>
#include <scratchcpp/inputvalue.h>
#include <scratchcpp/comment.h>
+#include <scratchcpp/broadcast.h>
#include <projectdownloaderfactorymock.h>
#include <projectdownloadermock.h>
@@ -498,6 +499,10 @@ TEST(LoadProjectTest, ProjectTest)
498
499
ASSERT_EQ(engine->extensions().size(), 0);
500
ASSERT_EQ(engine->broadcasts().size(), 1);
501
502
+ auto broadcast = engine->broadcastAt(0);
503
+ ASSERT_EQ(broadcast->name(), "message1");
504
+ ASSERT_FALSE(broadcast->isBackdropBroadcast());
505
506
i++;
507
508
test/scratch_classes/broadcast_test.cpp
@@ -6,9 +6,26 @@ using namespace libscratchcpp;
TEST(BroadcastTest, Constructors)
- Broadcast broadcast("a", "message1");
- ASSERT_EQ(broadcast.id(), "a");
- ASSERT_EQ(broadcast.name(), "message1");
+ {
+ Broadcast broadcast("a", "message1");
+ ASSERT_EQ(broadcast.id(), "a");
+ ASSERT_EQ(broadcast.name(), "message1");
+ ASSERT_FALSE(broadcast.isBackdropBroadcast());
+ }
+ Broadcast broadcast("a", "message1", false);
+ Broadcast broadcast("a", "message1", true);
+ ASSERT_TRUE(broadcast.isBackdropBroadcast());
TEST(BroadcastTest, Name)
0 commit comments