Пример #1
0
Widget * Gui::CreateWidget(const Widget::WidgetDef & a_def, Widget * a_parent, bool a_startActive)
{
	// Check for a valid parent
	if (a_parent == NULL) 
	{	
		Log::Get().Write(LogLevel::Error, LogCategory::Engine, "Widget creation failed due to an invalid parent.");
		return NULL;
	}

	// Copy properties over to the managed element
	Widget * newWidget = new Widget();
	newWidget->SetName(a_def.m_name);
	newWidget->SetColour(a_def.m_colour);
	newWidget->SetSize(a_def.m_size);
	newWidget->SetOffset(a_def.m_pos);
	newWidget->SetAlignment(a_def.m_pos.GetAlignment());
	newWidget->SetAlignmentAnchor(a_def.m_pos.GetAlignmentAnchor());
	newWidget->SetFontName(a_def.m_fontNameHash);
	newWidget->SetFontSize(a_def.m_fontSize <= 0.5f ? 1.0f : a_def.m_fontSize);
	newWidget->SetSelectFlags(a_def.m_selectFlags);
	newWidget->SetActive(a_startActive);

	a_parent->AddChild(newWidget);
	
	return newWidget;
}