Enhanced print command
parent
8b7d496eab
commit
c9f5a48886
|
@ -272,8 +272,71 @@ Command* CommandParser::parseCommand()
|
|||
else if (commandName == "print")
|
||||
{
|
||||
string text;
|
||||
string origin;
|
||||
int horig = -1;
|
||||
int vorig = -1;
|
||||
double hoff = 0;
|
||||
double voff = 0;
|
||||
double duration = 1.0e9;
|
||||
paramList->getString("text", text);
|
||||
cmd = new CommandPrint(text);
|
||||
paramList->getString("origin", origin);
|
||||
paramList->getNumber("duration", duration);
|
||||
paramList->getNumber("row", voff);
|
||||
paramList->getNumber("column", hoff);
|
||||
if (compareIgnoringCase(origin, "left") == 0)
|
||||
{
|
||||
horig = -1;
|
||||
vorig = 0;
|
||||
}
|
||||
else if (compareIgnoringCase(origin, "right") == 0)
|
||||
{
|
||||
horig = 1;
|
||||
vorig = 0;
|
||||
}
|
||||
else if (compareIgnoringCase(origin, "center") == 0)
|
||||
{
|
||||
horig = 0;
|
||||
vorig = 0;
|
||||
}
|
||||
else if (compareIgnoringCase(origin, "left") == 0)
|
||||
{
|
||||
horig = -1;
|
||||
vorig = 0;
|
||||
}
|
||||
else if (compareIgnoringCase(origin, "top") == 0)
|
||||
{
|
||||
horig = 0;
|
||||
vorig = 1;
|
||||
}
|
||||
else if (compareIgnoringCase(origin, "bottom") == 0)
|
||||
{
|
||||
horig = 0;
|
||||
vorig = -1;
|
||||
}
|
||||
else if (compareIgnoringCase(origin, "topright") == 0)
|
||||
{
|
||||
horig = 1;
|
||||
vorig = 1;
|
||||
}
|
||||
else if (compareIgnoringCase(origin, "topleft") == 0)
|
||||
{
|
||||
horig = -1;
|
||||
vorig = 1;
|
||||
}
|
||||
else if (compareIgnoringCase(origin, "bottomleft") == 0)
|
||||
{
|
||||
horig = -1;
|
||||
vorig = -1;
|
||||
}
|
||||
else if (compareIgnoringCase(origin, "bottomright") == 0)
|
||||
{
|
||||
horig = 1;
|
||||
vorig = -1;
|
||||
}
|
||||
|
||||
cmd = new CommandPrint(text,
|
||||
horig, vorig, (int) hoff, (int) -voff,
|
||||
duration);
|
||||
}
|
||||
else if (commandName == "cls")
|
||||
{
|
||||
|
|
|
@ -236,13 +236,19 @@ void CommandCancel::process(ExecutionEnvironment& env)
|
|||
////////////////
|
||||
// Print command: print text to the console
|
||||
|
||||
CommandPrint::CommandPrint(string _text) : text(_text)
|
||||
CommandPrint::CommandPrint(string _text,
|
||||
int horig, int vorig, int hoff, int voff,
|
||||
double _duration
|
||||
) : text(_text),
|
||||
hOrigin(horig), vOrigin(vorig),
|
||||
hOffset(hoff), vOffset(voff),
|
||||
duration(_duration)
|
||||
{
|
||||
}
|
||||
|
||||
void CommandPrint::process(ExecutionEnvironment& env)
|
||||
{
|
||||
env.showText(text);
|
||||
env.showText(text, hOrigin, vOrigin, hOffset, vOffset, duration);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -208,11 +208,17 @@ class CommandCancel : public InstantaneousCommand
|
|||
class CommandPrint : public InstantaneousCommand
|
||||
{
|
||||
public:
|
||||
CommandPrint(std::string);
|
||||
CommandPrint(std::string, int horig, int vorig, int hoff, int voff,
|
||||
double duration);
|
||||
void process(ExecutionEnvironment&);
|
||||
|
||||
private:
|
||||
std::string text;
|
||||
int hOrigin;
|
||||
int vOrigin;
|
||||
int hOffset;
|
||||
int vOffset;
|
||||
double duration;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ class ExecutionEnvironment
|
|||
|
||||
virtual inline Simulation* getSimulation() const = 0;
|
||||
virtual inline Renderer* getRenderer() const = 0;
|
||||
virtual void showText(std::string) = 0;
|
||||
virtual void showText(std::string, int, int, int, int, double) = 0;
|
||||
};
|
||||
|
||||
#endif // _EXECENV_H_
|
||||
|
|
Loading…
Reference in New Issue