本文整理汇总了C++中Widget::SetActive方法的典型用法代码示例。如果您正苦于以下问题:C++ Widget::SetActive方法的具体用法?C++ Widget::SetActive怎么用?C++ Widget::SetActive使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Widget
的用法示例。
在下文中一共展示了Widget::SetActive方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Widget
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;
}
示例2: WidgetVector
Widget * DebugMenuCommand::CreateButton(const char * a_name, Widget * a_parent, Colour a_colour)
{
// All debug menu elements are created equal
Widget::WidgetDef curItem;
curItem.m_size = WidgetVector(0.2f, 0.1f);
curItem.m_pos = WidgetVector(0.0f, 0.0f);
curItem.m_pos.SetAlignment(AlignX::Left, AlignY::Top);
curItem.m_pos.SetAlignmentAnchor(AlignX::Left, AlignY::Top);
curItem.m_selectFlags = SelectionFlags::Rollover;
curItem.m_colour = a_colour;
curItem.m_name = a_name;
// Check for a loaded debug font
if (StringHash * debugFont = FontManager::Get().GetDebugFontName())
{
curItem.m_fontNameHash = debugFont->GetHash();
}
Widget * retWidget = Gui::Get().CreateWidget(curItem, a_parent, false);
retWidget->SetDebugWidget();
retWidget->SetActive(false);
return retWidget;
}
示例3: LoadMenu
bool Gui::LoadMenu(const GameFile & a_menuFile, const DataPack * a_dataPack)
{
// Load the menu file
Widget * createdMenu = NULL;
if (a_menuFile.IsLoaded())
{
// Create a new widget and copy properties from file
if (GameFile::Object * menuObject = a_menuFile.FindObject("menu"))
{
if (GameFile::Property * nameProp = menuObject->FindProperty("name"))
{
createdMenu = new Widget();
createdMenu->SetName(a_menuFile.GetString("menu", "name"));
if (a_dataPack == NULL || !a_dataPack->IsLoaded())
{
char menuFilePath[StringUtils::s_maxCharsPerLine];
sprintf(menuFilePath, "%s%s.mnu", m_guiPath, createdMenu->GetName());
createdMenu->SetFilePath(menuFilePath);
}
createdMenu->SetActive(false);
// TODO Support for non fullscreen menus
createdMenu->SetSize(Vector2(2.0f, 2.0f));
createdMenu->SetDrawPos(Vector2(-1.0, 1.0));
// Load child elements of the menu
LinkedListNode<GameFile::Object> * childWidget = menuObject->GetChildren();
while (childWidget != NULL)
{
GameFile::Object * curObject = childWidget->GetData();
Widget * newChild = CreateWidget(curObject, createdMenu);
// If not specified in the file, align child widgets to the parent menu
if (!newChild->HasAlignTo())
{
newChild->SetAlignTo(createdMenu);
}
childWidget = childWidget->GetNext();
}
// Add to list of menus
m_menus.InsertNew(createdMenu);
}
else // No properties present
{
Log::Get().Write(LogLevel::Error, LogCategory::Engine, "Error loading menu file %s, menu does not have a name property.", a_menuFile);
}
// Set the active menu to the last menu with the begin loaded property
if (createdMenu != NULL && menuObject->FindProperty("beginLoaded"))
{
if (menuObject->FindProperty("beginLoaded")->GetBool())
{
m_startupMenu = createdMenu;
}
}
}
else // Unexpected file format, no root element
{
Log::Get().Write(LogLevel::Error, LogCategory::Engine, "Error loading menu file %s, no valid menu parent element.", a_menuFile);
}
return true;
}
return false;
}
示例4: Startup
bool Gui::Startup(const char * a_guiPath, const DataPack * a_dataPack)
{
// Cache off the gui path for later use when loading menus
strncpy(m_guiPath, a_guiPath, strlen(a_guiPath) + 1);
// Load in the gui config file
char fileName[StringUtils::s_maxCharsPerLine];
sprintf(fileName, "%s%s", a_guiPath, "gui.cfg");
if (a_dataPack != NULL && a_dataPack->IsLoaded())
{
if (DataPackEntry * guiConfig = a_dataPack->GetEntry(fileName))
{
m_configFile.Load(guiConfig);
}
}
else
{
m_configFile.Load(fileName);
}
// Setup the debug menu root element
m_debugRoot.SetName("DebugMenu");
m_debugRoot.SetActive(false);
m_debugRoot.SetDebugWidget();
// Load menus from data
LoadMenus(a_guiPath, a_dataPack);
// There are no menus loaded
if (m_menus.GetLength() == 0)
{
Log::Get().Write(LogLevel::Warning, LogCategory::Engine, "No menus loaded, a default menu has been created.");
// Create one and add it to the list
Widget * defaultMenu = new Widget();
defaultMenu->SetName("New Menu");
sprintf(fileName, "%s%s", a_guiPath, "newMenu.mnu");
defaultMenu->SetFilePath(fileName);
defaultMenu->SetActive(false);
MenuListNode * newMenuNode = new MenuListNode();
newMenuNode->SetData(defaultMenu);
m_menus.Insert(newMenuNode);
}
// Default the active menu
if (m_startupMenu == NULL)
{
Log::Get().WriteGameErrorNoParams("No menu found with beginLoaded set to true, defaulting to the first menu loaded!");
m_startupMenu = m_menus.GetHead()->GetData();
}
m_activeMenu = m_startupMenu;
m_activeMenu->SetActive();
// Setup the mouse cursor element if present in config file
m_cursor.SetActive(false);
if (GameFile::Object * configObj = m_configFile.FindObject("config"))
{
if (GameFile::Property * mouseCursorProp = configObj->FindProperty("mouseCursorTexture"))
{
m_cursor.SetTexture(TextureManager::Get().GetTexture(mouseCursorProp->GetString(), TextureCategory::Gui));
m_cursor.SetAlignment(AlignX::Middle, AlignY::Centre);
m_cursor.SetOffset(Vector2(0.0f, 0.0f));
m_cursor.SetSize(Vector2(0.16f / RenderManager::Get().GetViewAspect(), 0.16f));
m_cursor.SetActive(true);
}
}
// Setup input callbacks for handling events, left mouse buttons activate gui elements
InputManager & inMan = InputManager::Get();
inMan.RegisterMouseCallback(this, &Gui::MouseInputHandler, MouseButton::Left);
inMan.RegisterMouseCallback(this, &Gui::MouseInputHandler, MouseButton::Right);
return true;
}