void FObjectMemoryAnalyzer::AnalyzeObjects(const TArray<class UObject*>& InObjectList)
{
	for (int32 i=0; i < InObjectList.Num(); ++i)
	{
		AnalyzeObject(InObjectList[i]);
	}
}
예제 #2
0
int CPropertyForm::DisplayPages(IUnknown *obj, IUnknown *filt, CString title, CGraphView *view)
{
	// create a new window
	BOOL bret = Create(IDD_DIALOG_PROPERTYPAGE);
	if (!bret) return -1;
	SetWindowText(title);

	// we need to set WS_EX_CONTROLPARENT for the tabs
	tabs.ModifyStyleEx(0, WS_EX_CONTROLPARENT);

	if (object) object->Release(); object = NULL;
	if (filter) filter->Release(); filter = NULL;

	object = obj;
	object->AddRef();
	this->view = view;

	if (filt) {
		filter = filt;
		filter->AddRef();
	}

	// compute alignment helpers
	CRect	rc_client;
	CRect	rc_display;

	GetWindowRect(&rc_client);

	CPoint	p1(0,0), p2(0,0);
	ClientToScreen(&p1);
	tabs.ClientToScreen(&p2);
	GetClientRect(&rc_client);
	tabs.GetWindowRect(&rc_display);
	tab_x = (p2.x-p1.x);		tab_y = (p2.y-p1.y);
	tab_cx = rc_client.Width() - rc_display.Width();
	tab_cy = rc_client.Height() - rc_display.Height();

	p2 = CPoint(0,0);
	button_ok.ClientToScreen(&p2);
	button_bottom_offset = p1.y + rc_client.Height() - p2.y;
	bok_cx = p1.x + rc_client.Width() - p2.x;

	p2 = CPoint(0,0);
	button_close.ClientToScreen(&p2);
	bcancel_cx = p1.x + rc_client.Width() - p2.x;

	p2 = CPoint(0,0);
	button_apply.ClientToScreen(&p2);
	bapply_cx = p1.x + rc_client.Width() - p2.x;


	// let's create a new container
	container = new CPageContainer(this);
	container->NonDelegatingAddRef();			// we may be exposing this object so make sure it won't go away

	int ret = AnalyzeObject(object);
	if (ret < 0) return -1;

	if (container->pages.GetCount() > 0) {
		container->ActivatePage(0);
	}

	// show page
	ShowWindow(SW_SHOW);
	return ret;
}