Beispiel #1
0
//
// if the dockpanel is moving, and it's caused by us,
// then we need to decide whether to dock it or keep it floating
//
LRESULT DockPanel_OnMoving(DOCKPANEL *dppThis)
{
	POINT ptCurrent;
	RECT rect;
	POINT pt; 
	RECT r; 
	DOCKPANEL *dppUnder;
	UINT area;

	if(!dppThis->fDragging)
		return 0;

	GetCursorPos(&pt);
	area = GetDockTarget(dppThis->pDockServer, dppThis, pt, &r, &dppUnder);

	if(dppUnderLast != dppUnder || lastArea != area)
	{
		if(1)//dppUnderLast != dppUnder)
		{
			// kick off timer
			if(hwndTransPanel != 0)
			{
				hwndAnimPanel = hwndTransPanel;
				SetWindowLongPtr(hwndAnimPanel, GWLP_USERDATA, 255);
				SetTimer(dppThis->hwndPanel, (UINT_PTR)hwndAnimPanel, 10, 0);
				hwndTransPanel = 0;
			}
		}
		else
		{
			DestroyWindow(hwndTransPanel);
			hwndTransPanel = 0;
		}
	}

	dppUnderLast = dppUnder;
    lastArea = area;
	
	if(hwndTransPanel == 0)
	{
		hwndTransPanel = ShowTransWindow(dppThis, dppThis->hwndPanel, &r, 
        area ? area : DWS_DOCKED_MASK,
        area ? 3 : 0);
	}

	GetWindowRect(dppThis->hwndPanel, &rect);
	dppThis->xpos = rect.left;//(short)LOWORD(lParam);
	dppThis->ypos = rect.top;///(short)HIWORD(lParam);

	g_dppTargetDockPanel = 0;

	GetCursorPos(&ptCurrent);

	return 0;
}
Beispiel #2
0
void ShowSel(HWND hwnd)
{
	if(fTransSel)
	{
		hwndTransPanel = ShowTransWindow(hwnd);

		if(hwndTransPanel == 0)
		{
			fTransSel = FALSE;
			InvertWindow(hwnd, fShowHidden);
		}
	}
	else
	{			
		InvertWindow(hwnd, fShowHidden);
	}
}