2002-09-11 08:26:02 +00:00
|
|
|
#ifdef __GNUG__
|
|
|
|
#pragma implementation
|
|
|
|
#endif
|
2002-06-24 15:51:35 +00:00
|
|
|
|
|
|
|
#include "command_inset.h"
|
|
|
|
#include "math_mathmlstream.h"
|
2002-08-19 10:11:13 +00:00
|
|
|
#include "funcrequest.h"
|
2002-06-24 15:51:35 +00:00
|
|
|
|
|
|
|
|
|
|
|
CommandInset::CommandInset(string const & data)
|
|
|
|
{
|
|
|
|
lock_ = true;
|
|
|
|
|
|
|
|
string::size_type idx0 = data.find("|++|");
|
|
|
|
name_ = data.substr(0, idx0);
|
|
|
|
if (idx0 == string::npos)
|
|
|
|
return;
|
|
|
|
idx0 += 4;
|
|
|
|
string::size_type idx1 = data.find("|++|", idx0);
|
|
|
|
cell(0) = asArray(data.substr(idx0, idx1 - idx0));
|
|
|
|
if (idx1 == string::npos)
|
|
|
|
return;
|
|
|
|
cell(1) = asArray(data.substr(idx1 + 4));
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
MathInset * CommandInset::clone() const
|
|
|
|
{
|
|
|
|
return new CommandInset(*this);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2002-08-19 10:11:13 +00:00
|
|
|
MathInset::result_type
|
|
|
|
CommandInset::dispatch(FuncRequest const & cmd, idx_type & idx, pos_type & pos)
|
|
|
|
{
|
|
|
|
switch (cmd.action) {
|
|
|
|
default:
|
|
|
|
return ButtonInset::dispatch(cmd, idx, pos);
|
|
|
|
}
|
|
|
|
return UNDISPATCHED;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2002-06-24 15:51:35 +00:00
|
|
|
void CommandInset::write(WriteStream & os) const
|
|
|
|
{
|
2002-11-27 10:30:28 +00:00
|
|
|
os << '\\' << name_.c_str();
|
2002-06-24 15:51:35 +00:00
|
|
|
if (cell(1).size())
|
2002-11-27 10:30:28 +00:00
|
|
|
os << '[' << cell(1) << ']';
|
|
|
|
os << '{' << cell(0) << '}';
|
2002-06-24 15:51:35 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
string CommandInset::screenLabel() const
|
|
|
|
{
|
|
|
|
return name_;
|
|
|
|
}
|