8 #include "AbstractFunctionMetadata.h"
13 #include "GDCore/Events/Instruction.h"
14 #include "GDCore/Extensions/Metadata/InstructionMetadata.h"
15 #include "GDCore/String.h"
27 : staticFunction(
false), hasCustomCodeGenerator(
false){};
33 bool hasCustomCodeGenerator;
34 std::function<
gd::String(
const std::vector<gd::Expression>& parameters,
38 std::vector<gd::String> includeFiles;
66 : returnType(
"unknown"), shown(false), isPrivate(false), relevantContext(
"Any"){};
73 ExpressionMetadata& SetHidden()
override;
80 deprecationMessage = message;
137 return relevantContext ==
"Any" || relevantContext ==
"Layout";
144 return relevantContext ==
"Any" || relevantContext ==
"Function";
151 return relevantContext ==
"Any" || relevantContext ==
"Function" ||
152 relevantContext ==
"AsynchronousFunction";
159 return relevantContext ==
"Any" || relevantContext ==
"Object";
166 relevantContext =
"Layout";
174 relevantContext =
"Function";
182 relevantContext =
"AsynchronousFunction";
190 relevantContext =
"Object";
199 const gd::String &supplementaryInformation =
"",
200 bool parameterIsOptional =
false)
override;
207 const gd::String &supplementaryInformation)
override;
216 if (parameters.GetParametersCount() > 0) {
230 if (parameters.GetParametersCount() > 0) {
231 parameters.GetInternalVector().back()->SetLongDescription(longDescription);
243 if (parameters.GetParametersCount() > 0) {
244 parameters.GetInternalVector().back()->SetHint(hint);
258 if (parameters.GetParametersCount() > 0) {
259 parameters.GetInternalVector().back()->SetExtraInfo(extraInfo);
278 return requiredBaseObjectCapability;
281 bool IsShown()
const {
return shown; }
282 const gd::String& GetReturnType()
const {
return returnType; }
283 const gd::String& GetFullName()
const {
return fullname; }
284 const gd::String& GetDescription()
const {
return description; }
285 const gd::String& GetGroup()
const {
return group; }
286 const gd::String& GetSmallIconFilename()
const {
return smallIconFilename; }
288 return parameters.GetParameter(
id);
291 return parameters.GetParameter(
id);
293 std::size_t GetParametersCount()
const {
return parameters.GetParametersCount(); };
304 codeExtraInformation.functionCallName = functionName;
313 return codeExtraInformation.functionCallName;
319 codeExtraInformation.staticFunction =
true;
330 codeExtraInformation.includeFiles.clear();
331 codeExtraInformation.includeFiles.push_back(includeFile);
340 if (std::find(codeExtraInformation.includeFiles.begin(), codeExtraInformation.includeFiles.end(), includeFile) ==
341 codeExtraInformation.includeFiles.end())
342 codeExtraInformation.includeFiles.push_back(includeFile);
351 return codeExtraInformation.includeFiles;
359 std::function<
gd::String(
const std::vector<gd::Expression>& parameters,
363 codeExtraInformation.hasCustomCodeGenerator =
true;
364 codeExtraInformation.customCodeGenerator = codeGenerator;
369 codeExtraInformation.hasCustomCodeGenerator =
false;
370 std::function<
gd::String(
const std::vector<gd::Expression>& parameters,
374 codeExtraInformation.customCodeGenerator = emptyFunction;
378 bool HasCustomCodeGenerator()
const {
return codeExtraInformation.hasCustomCodeGenerator; }
Used to manage the context when generating code for events.
Definition: EventsCodeGenerationContext.h:27
Internal class used to generate code from events.
Definition: EventsCodeGenerator.h:41
String represents an UTF8 encoded string.
Definition: String.h:33
Definition: CommonTools.h:24