#include #include #include #include "GWt_abstractElementFactory.h" #include "GWt_dropZoneLigneFaisceau.h" #include "GWt_ligneFaisceau.h" #include "GWt_console.h" #include "nomdElements.h" GWt_dropZoneLigneFaisceau::GWt_dropZoneLigneFaisceau( PspaApplication* pspa,GWt_LigneFaisceau* parent) : WContainerWidget(), parent_(parent) { initialise(pspa); } GWt_dropZoneLigneFaisceau::~GWt_dropZoneLigneFaisceau() { } void GWt_dropZoneLigneFaisceau::initialise( PspaApplication* pspa) { // connect mouse events mouseWentOver().connect(this, &GWt_dropZoneLigneFaisceau::mouseOver); mouseWentUp().connect(this, &GWt_dropZoneLigneFaisceau::mouseUp); mouseWentDown().connect(this, &GWt_dropZoneLigneFaisceau::mouseDown); mouseWentOut().connect(this, &GWt_dropZoneLigneFaisceau::mouseOut); mouseDragged().connect(this, &GWt_dropZoneLigneFaisceau::mouseIsDragged); // accept drops vector elems = pspa->getAbstractElementFactory()->getAllElements(); for(int a = 0; a < elems.size(); a++) { acceptDrops(elems[a]->getMimeType()); } setMinimumSize(10,32); } void GWt_dropZoneLigneFaisceau::mouseOver(const WMouseEvent& e) { } void GWt_dropZoneLigneFaisceau::mouseOut(const WMouseEvent& e) { decorationStyle().setCursor(ArrowCursor); } void GWt_dropZoneLigneFaisceau::mouseIsDragged(const WMouseEvent& e) { decorationStyle().setCursor(OpenHandCursor); } void GWt_dropZoneLigneFaisceau::mouseUp(const WMouseEvent& e) { } void GWt_dropZoneLigneFaisceau::mouseDown(const WMouseEvent& e) { } void GWt_dropZoneLigneFaisceau::dropEvent(WDropEvent evt) { // get the type of element nomdElements e(evt.mimeType()); nomdElements::typedElement eType = e.getElementType(); getParent()->addElement(eType, this); }