Files
Avancerad_CPP/Lab7/cmpstcmp.cpp
2026-03-05 13:16:26 +01:00

125 lines
3.3 KiB
C++

//## 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