Widget XmGetDragContext( Widget w, Time time ) { XmDisplay xmDisplay; XmDragContext matchedDC = NULL, dc = NULL; Cardinal i; _XmWidgetToAppContext(w); _XmAppLock(app); xmDisplay = (XmDisplay)XmGetXmDisplay(XtDisplay(w)); for(i = 0; i < xmDisplay->composite.num_children; i++) { dc = (XmDragContext)(xmDisplay->composite.children[i]); if ((XmIsDragContext((Widget) dc)) && (CHECK_TIME(dc, time)) && ((!matchedDC) || (matchedDC->drag.dragStartTime < dc->drag.dragStartTime)) && !dc->core.being_destroyed) matchedDC = dc; } _XmAppUnlock(app); return((Widget)matchedDC); }
Widget XmGetDragContext(Widget w, Time time) { Widget disp = XmGetXmDisplay(XtDisplay(w)), dc = NULL; Cardinal i; DEBUGOUT(_LtDebug(__FILE__, w, "%s:XmGetDragContext(%d)\n", __FILE__, __LINE__)); for (i = 0; i < MGR_NumChildren(disp); i++) { if (XmIsDragContext(MGR_Children(disp)[i])) { /* too late */ if (DC_DragStartTime(MGR_Children(disp)[i]) > time) { continue; } /* too early */ if (DC_DragFinishTime(MGR_Children(disp)[i]) != CurrentTime && DC_DragFinishTime(MGR_Children(disp)[i]) < time) { continue; } /* either nothing yet, or later than what we have already */ if (dc == NULL || (DC_DragStartTime(MGR_Children(disp)[i]) >= DC_DragStartTime(dc))) { /* somebody's not doing a Cancel and it's not being removed */ if (!CoreBeingDestroyed(MGR_Children(disp)[i])) { dc = MGR_Children(disp)[i]; } } } } return dc; }
Widget _XmGetDragContextFromHandle( Widget w, Atom iccHandle ) { XmDisplay xmDisplay; XmDragContext dc; Cardinal i; xmDisplay = (XmDisplay)XmGetXmDisplay(XtDisplay(w)); for(i = 0; i < xmDisplay->composite.num_children; i++) { dc = (XmDragContext)(xmDisplay->composite.children[i]); if ((XmIsDragContext((Widget) dc)) && (dc->drag.iccHandle == iccHandle) && !dc->core.being_destroyed) return((Widget)dc); } return(NULL); }
Widget _XmGetDragContextFromHandle(Widget w, Atom iccHandle) { Widget disp = XmGetXmDisplay(XtDisplay(w)), dc; Cardinal c; DEBUGOUT(_LtDebug(__FILE__, w, "%s:_XmGetDragContextFromHandle(%d)\n", __FILE__, __LINE__)); for (c = 0; c < MGR_NumChildren(disp); c++) { dc = MGR_Children(disp)[c]; if (XmIsDragContext(dc)) { if (DC_ICCHandle(dc) == iccHandle && !CoreBeingDestroyed(dc)) { return dc; } } } return NULL; }