[Igarden-commit] Garden/source/PlanTool WarningOverlay.h, 1.1.2.1, 1.1.2.2 WarningOverlay.cpp, 1.4.
Status: Beta
Brought to you by:
jlbedell
|
From: Jeffrey B. <jlb...@us...> - 2008-04-17 22:19:34
|
Update of /cvsroot/igarden/Garden/source/PlanTool In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv8869/source/PlanTool Modified Files: Tag: Release_branch_v1 WarningOverlay.h WarningOverlay.cpp Log Message: Fixes to overlap warnings Index: WarningOverlay.h =================================================================== RCS file: /cvsroot/igarden/Garden/source/PlanTool/WarningOverlay.h,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** WarningOverlay.h 17 Apr 2008 10:51:12 -0000 1.1.2.1 --- WarningOverlay.h 17 Apr 2008 22:18:20 -0000 1.1.2.2 *************** *** 55,60 **** yaaf::InfoPopupView* _curInfoView; yaaf::XGPopWindow* _popWindow; - bool _oneFound; // For callback - planPoint_t _point; // For callback }; --- 55,58 ---- Index: WarningOverlay.cpp =================================================================== RCS file: /cvsroot/igarden/Garden/source/PlanTool/WarningOverlay.cpp,v retrieving revision 1.4.2.6 retrieving revision 1.4.2.7 diff -C2 -d -r1.4.2.6 -r1.4.2.7 *** WarningOverlay.cpp 17 Apr 2008 10:51:10 -0000 1.4.2.6 --- WarningOverlay.cpp 17 Apr 2008 22:18:30 -0000 1.4.2.7 *************** *** 125,145 **** } void WarningOverlay::MouseMovedCallback(Element *element, void *ref) { ! WarningOverlay *overlay = reinterpret_cast<WarningOverlay*>(ref); long index; ! if(element->IsOverWarning(overlay->_point, overlay->_view->GetScale())) { // On warning if(overlay->_popWindow == NULL) ! overlay->RaiseWarningWindow(element, overlay->_view, kWarningOnly, overlay->_point); ! overlay->_oneFound = true; } ! else if(element->IsOverOverlap(overlay->_point, overlay->_scale, index)) { if(overlay->_popWindow == NULL) ! overlay->RaiseWarningWindow(element, overlay->_view, kOverlapOnly, overlay->_point, index); ! overlay->_oneFound = true; } } --- 125,159 ---- } + typedef struct + { + bool oneFound; // For callback + planPoint_t point; // For callback + WarningOverlay *overlay; + PlanView *view; + } mmcall_t; + void WarningOverlay::MouseMovedCallback(Element *element, void *ref) { ! mmcall_t *info = reinterpret_cast<mmcall_t*>(ref); ! WarningOverlay *overlay = info->overlay; ! PlanView *view = info->view; long index; + + PRECONDITION(info != NULL); + PRECONDITION(overlay != NULL); + PRECONDITION(view != NULL); ! if(element->IsOverWarning(info->point, overlay->_scale)) { // On warning if(overlay->_popWindow == NULL) ! overlay->RaiseWarningWindow(element, view, kWarningOnly, info->point); ! info->oneFound = true; } ! else if(element->IsOverOverlap(info->point, overlay->_scale, index)) { if(overlay->_popWindow == NULL) ! overlay->RaiseWarningWindow(element, view, kOverlapOnly, info->point, index); ! info->oneFound = true; } } *************** *** 152,166 **** { planRectangle_t rect; ! rect.xOffset = point.xOffset - (20*_scale); ! rect.xSize = (40*_scale); ! rect.yOffset = point.yOffset - (20*_scale); ! rect.ySize = (40*_scale); ! _oneFound = false; ! _point = point; ! _view->GetLayout()->ExecuteForEachElementWithin(MouseMovedCallback, this, rect); ! if(!_oneFound) RemoveWarningWindow(); } --- 166,184 ---- { planRectangle_t rect; ! mmcall_t cbInfo; ! ! rect.xOffset = point.xOffset - (kIconWidth*_scale); ! rect.xSize = (kIconWidth*2*_scale); ! rect.yOffset = point.yOffset - (kIconHeight*_scale); ! rect.ySize = (kIconHeight*2*_scale); ! cbInfo.oneFound = false; ! cbInfo.point = point; ! cbInfo.overlay = this; ! cbInfo.view = _view; ! _view->GetLayout()->ExecuteForEachElementWithin(MouseMovedCallback, &cbInfo, rect); ! if(!cbInfo.oneFound) RemoveWarningWindow(); } |