libscratchcpp
A library for C++ based Scratch project players
Loading...
Searching...
No Matches
variable.h
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
2
3#pragma once
4
5#include <string>
6#include <scratchcpp/value.h>
7#include <scratchcpp/entity.h>
8
9namespace libscratchcpp
10{
11
12class Target;
13class Monitor;
14class VariablePrivate;
15
18{
19 public:
20 Variable(const std::string &id, const std::string &name, const Value &value = Value(), bool isCloudVariable = false);
21 Variable(const Variable &) = delete;
22
23 const std::string &name() const;
24
25 const Value &value() const;
26
27 Value *valuePtr();
28
29 void setValue(const Value &value);
30
31 bool isCloudVariable() const;
33
34 Target *target() const;
35 void setTarget(Target *target);
36
37 Monitor *monitor() const;
39
40 std::shared_ptr<Variable> clone();
41
42 private:
43 spimpl::unique_impl_ptr<VariablePrivate> impl;
44};
45
46} // namespace libscratchcpp
Entity(const std::string &id)
Definition entity.cpp:10
The Monitor class represents a stage monitor.
Definition monitor.h:23
The Target class is the Stage or a Sprite.
Definition target.h:28
The Value class represents a Scratch value.
Definition value.h:22
Variable(const Variable &)=delete
Variable(const std::string &id, const std::string &name, const Value &value=Value(), bool isCloudVariable=false)
Definition variable.cpp:10
Value * valuePtr()
Definition variable.cpp:29
const Value & value() const
Definition variable.cpp:23
const std::string & name() const
Definition variable.cpp:17
std::shared_ptr< Variable > clone()
Definition variable.cpp:77
void setMonitor(Monitor *monitor)
Definition variable.cpp:71
void setValue(const Value &value)
Definition variable.cpp:35
void setIsCloudVariable(bool isCloudVariable)
Definition variable.cpp:47
bool isCloudVariable() const
Definition variable.cpp:41
Monitor * monitor() const
Definition variable.cpp:65
void setTarget(Target *target)
Definition variable.cpp:59
Target * target() const
Definition variable.cpp:53
#define LIBSCRATCHCPP_EXPORT
Definition global.h:17
The main namespace of the library.
Definition asset.h:10