| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2008 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 442 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 453 type = Condition::EventBase; | 453 type = Condition::EventBase; |
| 454 | 454 |
| 455 m_conditions.append(Condition(type, beginOrEnd, baseID, nameString, offset,
repeat)); | 455 m_conditions.append(Condition(type, beginOrEnd, baseID, nameString, offset,
repeat)); |
| 456 | 456 |
| 457 if (type == Condition::EventBase && beginOrEnd == End) | 457 if (type == Condition::EventBase && beginOrEnd == End) |
| 458 m_hasEndEventConditions = true; | 458 m_hasEndEventConditions = true; |
| 459 | 459 |
| 460 return true; | 460 return true; |
| 461 } | 461 } |
| 462 | 462 |
| 463 bool SVGSMILElement::isSMILElement(Node* node) | |
| 464 { | |
| 465 if (!node) | |
| 466 return false; | |
| 467 return node->hasTagName(SVGNames::setTag) || node->hasTagName(SVGNames::anim
ateTag) || node->hasTagName(SVGNames::animateMotionTag) | |
| 468 || node->hasTagName(SVGNames::animateTransformTag) || node->hasTagNa
me(SVGNames::animateColorTag); | |
| 469 } | |
| 470 | |
| 471 void SVGSMILElement::parseBeginOrEnd(const String& parseString, BeginOrEnd begin
OrEnd) | 463 void SVGSMILElement::parseBeginOrEnd(const String& parseString, BeginOrEnd begin
OrEnd) |
| 472 { | 464 { |
| 473 Vector<SMILTimeWithOrigin>& timeList = beginOrEnd == Begin ? m_beginTimes :
m_endTimes; | 465 Vector<SMILTimeWithOrigin>& timeList = beginOrEnd == Begin ? m_beginTimes :
m_endTimes; |
| 474 if (beginOrEnd == End) | 466 if (beginOrEnd == End) |
| 475 m_hasEndEventConditions = false; | 467 m_hasEndEventConditions = false; |
| 476 HashSet<double> existing; | 468 HashSet<double> existing; |
| 477 for (unsigned n = 0; n < timeList.size(); ++n) | 469 for (unsigned n = 0; n < timeList.size(); ++n) |
| 478 existing.add(timeList[n].time().value()); | 470 existing.add(timeList[n].time().value()); |
| 479 Vector<String> splitString; | 471 Vector<String> splitString; |
| 480 parseString.split(';', splitString); | 472 parseString.split(';', splitString); |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 579 ASSERT(!condition.m_syncbase); | 571 ASSERT(!condition.m_syncbase); |
| 580 Element* eventBase = eventBaseFor(condition); | 572 Element* eventBase = eventBaseFor(condition); |
| 581 if (!eventBase) | 573 if (!eventBase) |
| 582 continue; | 574 continue; |
| 583 ASSERT(!condition.m_eventListener); | 575 ASSERT(!condition.m_eventListener); |
| 584 condition.m_eventListener = ConditionEventListener::create(this, &co
ndition); | 576 condition.m_eventListener = ConditionEventListener::create(this, &co
ndition); |
| 585 eventBase->addEventListener(condition.m_name, condition.m_eventListe
ner, false); | 577 eventBase->addEventListener(condition.m_name, condition.m_eventListe
ner, false); |
| 586 } else if (condition.m_type == Condition::Syncbase) { | 578 } else if (condition.m_type == Condition::Syncbase) { |
| 587 ASSERT(!condition.m_baseID.isEmpty()); | 579 ASSERT(!condition.m_baseID.isEmpty()); |
| 588 condition.m_syncbase = treeScope().getElementById(condition.m_baseID
); | 580 condition.m_syncbase = treeScope().getElementById(condition.m_baseID
); |
| 589 if (!isSMILElement(condition.m_syncbase.get())) { | 581 if (!isSVGSMILElement(condition.m_syncbase.get())) { |
| 590 condition.m_syncbase = 0; | 582 condition.m_syncbase = 0; |
| 591 continue; | 583 continue; |
| 592 } | 584 } |
| 593 toSVGSMILElement(condition.m_syncbase.get())->addTimeDependent(this)
; | 585 toSVGSMILElement(condition.m_syncbase.get())->addTimeDependent(this)
; |
| 594 } | 586 } |
| 595 } | 587 } |
| 596 } | 588 } |
| 597 | 589 |
| 598 void SVGSMILElement::disconnectConditions() | 590 void SVGSMILElement::disconnectConditions() |
| 599 { | 591 { |
| (...skipping 687 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1287 if (eventType == "repeatn") { | 1279 if (eventType == "repeatn") { |
| 1288 unsigned repeatEventCount = m_repeatEventCountList.first(); | 1280 unsigned repeatEventCount = m_repeatEventCountList.first(); |
| 1289 m_repeatEventCountList.remove(0); | 1281 m_repeatEventCountList.remove(0); |
| 1290 dispatchEvent(RepeatEvent::create(eventType, repeatEventCount)); | 1282 dispatchEvent(RepeatEvent::create(eventType, repeatEventCount)); |
| 1291 } else { | 1283 } else { |
| 1292 dispatchEvent(Event::create(eventType)); | 1284 dispatchEvent(Event::create(eventType)); |
| 1293 } | 1285 } |
| 1294 } | 1286 } |
| 1295 | 1287 |
| 1296 } | 1288 } |
| OLD | NEW |