Exemplo n.º 1
0
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);
}
Exemplo n.º 2
0
Arquivo: Display.c Projeto: att/uwin
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;
}
Exemplo n.º 3
0
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);
}
Exemplo n.º 4
0
Arquivo: Display.c Projeto: att/uwin
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;
}