Ejemplo n.º 1
0
Decorator *
DecorInfo::Instantiate(Desktop* desktop, DrawingEngine* engine, BRect rect,
	const char *title, window_look look, uint32 flags)
{
	if (!desktop->LockSingleWindow())
		return NULL;

	DesktopSettings settings(desktop);
	Decorator *decorator;
	
	try {
		if (fAllocator != NULL)
			decorator = fAllocator(settings, rect, look, flags);
		else
			decorator = new DefaultDecorator(settings, rect, look, flags);
	} catch (...) {
		desktop->UnlockSingleWindow();
		return NULL;
	}

	desktop->UnlockSingleWindow();

	decorator->SetDrawingEngine(engine);
	decorator->SetTitle(title);

	return decorator;
}
Ejemplo n.º 2
0
Decorator*
DecorAddOn::AllocateDecorator(Desktop* desktop, DrawingEngine* engine,
	BRect rect, const char* title, window_look look, uint32 flags)
{
	if (!desktop->LockSingleWindow())
		return NULL;

	DesktopSettings settings(desktop);
	Decorator* decorator;
	decorator = _AllocateDecorator(settings, rect, look, flags);

	desktop->UnlockSingleWindow();

	if (!decorator)
		return NULL;

	decorator->SetDrawingEngine(engine);
	decorator->SetTitle(title);

	return decorator;
}