libscratchcpp
A library for C++ based Scratch project players
Loading...
Searching...
No Matches
input.h
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
2
3#pragma once
4
5#include "global.h"
6#include "spimpl.h"
7
8namespace libscratchcpp
9{
10
11class InputValue;
12class Value;
13class Block;
14class InputPrivate;
15
18{
19 public:
20 enum class Type
21 {
22 Shadow = 1, // an editable input, can point to a dropdown menu
23 NoShadow = 2, // points to another block?
24 ObscuredShadow = 3 // there's a block inside the shadow block
25 };
26
27 Input(const std::string &name, Type type);
28 Input(const Input &) = delete;
29
30 const std::string &name() const;
31
32 Type type() const;
33
36
37 void setPrimaryValue(const Value &value);
38 void setSecondaryValue(const Value &value);
39
40 Block *valueBlock() const;
41 const std::string &valueBlockId() const;
42 void setValueBlock(Block *block);
43 void setValueBlockId(const std::string &id);
44
45 bool pointsToDropdownMenu() const;
46 std::string selectedMenuItem() const;
47
48 private:
49 spimpl::unique_impl_ptr<InputPrivate> impl;
50};
51
52} // namespace libscratchcpp
The Block class represents a Scratch block.
Definition block.h:24
The InputValue class provides methods for the value of an Input.
Definition inputvalue.h:20
The Input class represents a Scratch block input.
Definition input.h:18
bool pointsToDropdownMenu() const
Definition input.cpp:91
void setValueBlockId(const std::string &id)
Definition input.cpp:81
Input(const Input &)=delete
void setSecondaryValue(const Value &value)
Definition input.cpp:50
InputValue * primaryValue()
Definition input.cpp:32
Block * valueBlock() const
Definition input.cpp:56
InputValue * secondaryValue()
Definition input.cpp:38
void setPrimaryValue(const Value &value)
Definition input.cpp:44
const std::string & name() const
Definition input.cpp:20
Type type() const
Definition input.cpp:26
std::string selectedMenuItem() const
Definition input.cpp:111
void setValueBlock(Block *block)
Definition input.cpp:75
Type
Definition input.h:21
@ Shadow
Definition input.h:22
@ NoShadow
Definition input.h:23
@ ObscuredShadow
Definition input.h:24
const std::string & valueBlockId() const
Definition input.cpp:63
Input(const std::string &name, Type type)
Definition input.cpp:14
The Value class represents a Scratch value.
Definition value.h:22
#define LIBSCRATCHCPP_EXPORT
Definition global.h:17
The main namespace of the library.
Definition asset.h:10