本文整理汇总了C++中OverlayComp::GetClassId方法的典型用法代码示例。如果您正苦于以下问题:C++ OverlayComp::GetClassId方法的具体用法?C++ OverlayComp::GetClassId怎么用?C++ OverlayComp::GetClassId使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OverlayComp
的用法示例。
在下文中一共展示了OverlayComp::GetClassId方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetGraphic
boolean OverlayComp::operator == (OverlayComp& comp) {
Graphic* gr = GetGraphic();
Graphic* test = comp.GetGraphic();
return
GetClassId() == comp.GetClassId() &&
GraphicEquals(gr, test);
}
示例2: switch
/* virtual */ void ComEditor::ExecuteCmd(Command* cmd) {
if(!whiteboard())
/* normal Unidraw command execution */
OverlayEditor::ExecuteCmd(cmd);
else {
/* indirect command execution, all by script */
std::ostrstream sbuf;
boolean oldflag = OverlayScript::ptlist_parens();
OverlayScript::ptlist_parens(false);
switch (cmd->GetClassId()) {
case PASTE_CMD:
{
boolean scripted = false;
Clipboard* cb = cmd->GetClipboard();
if (cb) {
Iterator it;
for (cb->First(it); !cb->Done(it); cb->Next(it)) {
OverlayComp* comp = (OverlayComp*)cb->GetComp(it);
if (comp) {
Creator* creator = unidraw->GetCatalog()->GetCreator();
OverlayScript* scripter = (OverlayScript*)
creator->Create(Combine(comp->GetClassId(), SCRIPT_VIEW));
if (scripter) {
scripter->SetSubject(comp);
if (scripted)
sbuf << ';';
else
scripted = true;
boolean status = scripter->Definition(sbuf);
delete scripter;
}
}
}
}
if (!scripted)
sbuf << "print(\"Failed attempt to generate script for a PASTE_CMD\\n\" :err)";
sbuf.put('\0');
cout << sbuf.str() << "\n";
cout.flush();
GetComTerp()->run(sbuf.str());
delete cmd;
}
break;
default:
sbuf << "print(\"Attempt to convert unknown command (id == %d) to interpretable script\\n\" " << cmd->GetClassId() << " :err)";
cmd->Execute();
if (cmd->Reversible()) {
cmd->Log();
} else {
delete cmd;
}
break;
}
OverlayScript::ptlist_parens(oldflag);
}
}
示例3:
boolean TextFileComp::operator == (OverlayComp& comp) {
if (GetClassId() != comp.GetClassId()) return false;
return
strcmp(GetPathname(), ((TextFileComp&)comp).GetPathname()) &&
strcmp(GetBegstr(), ((TextFileComp&)comp).GetBegstr()) &&
strcmp(GetEndstr(), ((TextFileComp&)comp).GetEndstr()) &&
GetLineWidth() == ((TextFileComp&)comp).GetLineWidth() &&
OverlayComp::operator==(comp);
}
示例4: GetText
boolean TextOvComp::operator == (OverlayComp& comp) {
if (GetClassId() != comp.GetClassId()) return false;
TextGraphic* texta = GetText();
TextGraphic* textb = ((TextOvComp&)comp).GetText();
int lha = texta->GetLineHeight();
int lhb = textb->GetLineHeight();
return
lha == lhb &&
strcmp(texta->GetOriginal(), textb->GetOriginal()) == 0 &&
OverlayComp::operator==(comp);
}
示例5:
boolean OverlayFileComp::operator == (OverlayComp& comp) {
if (GetClassId() != comp.GetClassId()) return false;
return
strcmp(GetPathName(), ((OverlayFileComp&)comp).GetPathName()) &&
OverlayComp::operator==(comp);
}
示例6: SamePicture
boolean OverlaysComp::operator == (OverlayComp& comp) {
if (GetClassId() != comp.GetClassId()) return false;
return SamePicture(&(OverlaysComp&)comp) &&
OverlayComp::operator==(comp);
}
示例7: ExecuteCmd
void DrawServ::ExecuteCmd(Command* cmd) {
static int grid_sym = symbol_add("grid");
static int sid_sym = symbol_add("sid");
boolean original = false;
unsigned int from_sid = 0;
if(!_linklist || _linklist->Number()==0)
/* normal Unidraw command execution */
Unidraw::ExecuteCmd(cmd);
else {
/* indirect command execution, all by script */
std::ostrstream sbuf;
boolean oldflag = OverlayScript::ptlist_parens();
OverlayScript::ptlist_parens(false);
switch (cmd->GetClassId()) {
case PASTE_CMD:
{
boolean scripted = false;
Clipboard* cb = cmd->GetClipboard();
if (cb) {
Iterator it;
for (cb->First(it); !cb->Done(it); cb->Next(it)) {
OverlayComp* comp = (OverlayComp*)cb->GetComp(it);
AttributeList* al = comp->GetAttributeList();
AttributeValue* idv = al->find(grid_sym);
AttributeValue* sidv = al->find(sid_sym);
from_sid = sidv ? sidv->uint_val() : 0;
/* unique id already remotely assigned */
if (idv && idv->uint_val() !=0 && sidv && sidv->uint_val() !=0) {
GraphicId* graphicid = new GraphicId();
graphicid->grcomp(comp);
graphicid->id(idv->uint_val());
graphicid->selector(sidv->uint_val());
graphicid->selected(LinkSelection::RemotelySelected);
}
/* generate unique id and add as attribute */
/* also mark with selector id */
else {
GraphicId* graphicid = new GraphicId(sessionid());
graphicid->grcomp(comp);
graphicid->selector(((DrawServ*)unidraw)->sessionid());
AttributeValue* gridv = new AttributeValue(graphicid->id(), AttributeValue::UIntType);
gridv->state(AttributeValue::HexState);
al->add_attr(grid_sym, gridv);
AttributeValue* sidv = new AttributeValue(graphicid->selector(), AttributeValue::UIntType);
sidv->state(AttributeValue::HexState);
al->add_attr(sid_sym, sidv);
original = true;
}
if (comp && (original || linklist()->Number()>1)) {
Creator* creator = unidraw->GetCatalog()->GetCreator();
OverlayScript* scripter = (OverlayScript*)
creator->Create(Combine(comp->GetClassId(), SCRIPT_VIEW));
if (scripter) {
scripter->SetSubject(comp);
if (scripted)
sbuf << ';';
else
scripted = true;
boolean status = scripter->Definition(sbuf);
delete scripter;
}
}
}
}
if (original || linklist()->Number()>1) {
if (!scripted)
sbuf << "print(\"Failed attempt to generate script for a PASTE_CMD\\n\" :err)";
sbuf.put('\0');
cout << sbuf.str() << "\n";
cout.flush();
}
/* first execute here */
#if 0
((ComEditor*)cmd->GetEditor())->GetComTerp()->run(sbuf.str());
((PasteCmd*)cmd)->executed(true);
#else
cmd->Execute();
#endif
/* then send everywhere else */
if (original || linklist()->Number()>1)
DistributeCmdString(sbuf.str(), linkget(from_sid));
}
break;
default:
sbuf << "print(\"Attempt to convert unknown command (id == %d) to interpretable script\\n\" " << cmd->GetClassId() << " :err)";
cmd->Execute();
break;
}
if (cmd->Reversible()) {
//.........这里部分代码省略.........