//## begin module.cm preserve=no // %X% %Q% %Z% %W% //## end module.cm //## begin module.cp preserve=no //## end module.cp //## Module: CompositeComponent; Pseudo Package body //## Subsystem: lab7 //## Source file: H:\kurs\avC++\lab7\CmpstCmp.cpp //## begin module.additionalIncludes preserve=no //## end module.additionalIncludes //## begin module.includes preserve=yes //## end module.includes // CompositeComponent #include "CmpstCmp.h" //## begin module.additionalDeclarations preserve=yes //## end module.additionalDeclarations // Class CompositeComponent CompositeComponent::CompositeComponent() //## begin CompositeComponent::CompositeComponent%.hasinit preserve=no //## end CompositeComponent::CompositeComponent%.hasinit //## begin CompositeComponent::CompositeComponent%.initialization preserve=yes //## end CompositeComponent::CompositeComponent%.initialization { //## begin CompositeComponent::CompositeComponent%.body preserve=yes //## end CompositeComponent::CompositeComponent%.body } CompositeComponent::~CompositeComponent() { //## begin CompositeComponent::~CompositeComponent%.body preserve=yes //## end CompositeComponent::~CompositeComponent%.body } //## Other Operations (implementation) void CompositeComponent::draw (Graphics& g) { //## begin CompositeComponent::draw%940929799.body preserve=yes Component *cTmp; if(!cList.isEmpty()){ cTmp = cList.getFirst(); cTmp->draw(g); while(!cList.isLast()){ cTmp = cList.getNext(); cTmp->draw(g); } } //## end CompositeComponent::draw%940929799.body } void CompositeComponent::add (Component* c) { //## begin CompositeComponent::add%940945810.body preserve=yes cList.addElement(c); active = c; //## end CompositeComponent::add%940945810.body } void CompositeComponent::handleKeyEvent (Event e) { //## begin CompositeComponent::handleKeyEvent%941013991.body preserve=yes //## end CompositeComponent::handleKeyEvent%941013991.body } void CompositeComponent::handleMouseEvent (Event e) { //## begin CompositeComponent::handleMouseEvent%941013992.body preserve=yes Component *cTmp; if(!cList.isEmpty()){ cTmp = cList.getFirst(); if(cTmp->isHit(e.getxpos()-xpos, e.getypos()-ypos)){ e.setxpos(e.getxpos()-xpos); e.setypos(e.getypos()-ypos); active = cTmp; cTmp->handleMouseEvent(e); } while(!cList.isLast()){ cTmp = cList.getNext(); if(cTmp->isHit(e.getxpos()-xpos, e.getypos()-ypos)){ e.setxpos(e.getxpos()-xpos); e.setypos(e.getypos()-ypos); active = cTmp; cTmp->handleMouseEvent(e); } } } //## end CompositeComponent::handleMouseEvent%941013992.body } bool CompositeComponent::isHit (int x, int y) { //## begin CompositeComponent::isHit%941013998.body preserve=yes return((x >= xpos) & (x < xpos + width) & (y >= ypos) & (y < ypos + height)); //## end CompositeComponent::isHit%941013998.body } // Additional Declarations //## begin CompositeComponent.declarations preserve=yes //## end CompositeComponent.declarations //## begin module.epilog preserve=yes //## end module.epilog