void ArrowLineComp::Uninterpret (Command* cmd) { if (cmd->IsA(ARROW_CMD)) { ArrowLine* line = GetArrowLine(); if (line != nil) { _ArrowData* ad = (_ArrowData*) cmd->Recall(this); if (ad != nil) { line->SetArrows(ad->_head, ad->_tail); Notify(); } } } else { LineComp::Uninterpret(cmd); } }
void ArrowLineComp::Interpret (Command* cmd) { if (cmd->IsA(ARROW_CMD)) { ArrowLine* line = GetArrowLine(); if (line != nil) { ArrowCmd* arrowCmd = (ArrowCmd*) cmd; cmd->Store(this, new _ArrowData(line->Head(), line->Tail())); line->SetArrows(arrowCmd->Head(), arrowCmd->Tail()); Notify(); } } else if (cmd->IsA(PATTERN_CMD)) { GraphicComp::Interpret(cmd); } else { LineComp::Interpret(cmd); } }