本文整理汇总了C++中rocket::core::Element::GetPreviousSibling方法的典型用法代码示例。如果您正苦于以下问题:C++ Element::GetPreviousSibling方法的具体用法?C++ Element::GetPreviousSibling怎么用?C++ Element::GetPreviousSibling使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类rocket::core::Element
的用法示例。
在下文中一共展示了Element::GetPreviousSibling方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: shortcutClicked
void ShortcutBar::shortcutClicked(Rocket::Core::Event& event)
{
Rocket::Core::Element* shortcutElement = event.GetTargetElement();
while(shortcutElement != nullptr && shortcutElement->GetParentNode() != m_shortcutContainer)
{
shortcutElement = shortcutElement->GetParentNode();
}
// Only handle the click if it went to a shortcut
// (direct child of the shortcut bar container)
if (shortcutElement != nullptr)
{
// Find the index of the shortcut
int shortcutIndex = 0;
for(;;)
{
shortcutElement = shortcutElement->GetPreviousSibling();
if (shortcutElement == nullptr) break;
++shortcutIndex;
}
bool shortcutInvoked = invokeShortcut(shortcutIndex);
if (shortcutInvoked)
{
refresh();
}
}
}
示例2: listKeyDown
void SaveMenu::listKeyDown(Rocket::Core::Event& event)
{
Rocket::Core::Input::KeyIdentifier key = static_cast<Rocket::Core::Input::KeyIdentifier>(event.GetParameter<int>("key_identifier", Rocket::Core::Input::KI_UNKNOWN));
switch(key)
{
case Rocket::Core::Input::KI_UP:
case Rocket::Core::Input::KI_DOWN:
case Rocket::Core::Input::KI_RETURN:
break;
default:
return;
}
Rocket::Core::Element* list = m_menuDocument->GetElementById("menu");
if(list == nullptr)
{
return;
}
Rocket::Core::Element* child = list->GetFirstChild();
while(child != nullptr)
{
if(child->IsClassSet("selected"))
{
break;
}
child = child->GetNextSibling();
}
if(child == nullptr)
{
return;
}
if(key == Rocket::Core::Input::KI_RETURN)
{
child->Click();
}
else if(key == Rocket::Core::Input::KI_UP)
{
Rocket::Core::Element* previousSibling = child->GetPreviousSibling();
if(previousSibling != nullptr)
{
child->SetClass("selected", false /*activate*/);
previousSibling->SetClass("selected", true /*activate*/);
}
}
else if(key == Rocket::Core::Input::KI_DOWN)
{
Rocket::Core::Element* nextSibling = child->GetNextSibling();
if(nextSibling != nullptr)
{
child->SetClass("selected", false /*activate*/);
nextSibling->SetClass("selected", true /*activate*/);
}
}
}
示例3: while
Rocket::Core::Element* RocketMenuPlugin::FindPreviousItem(Rocket::Core::Element *menu_item) {
Rocket::Core::Element *next = menu_item;
do {
next = next->GetPreviousSibling();
if (next == NULL) {
next = menu_item->GetParentNode()->GetChild(menu_item->GetParentNode()->GetNumChildren()-1);
}
} while (next->IsClassSet("disabled") && next != menu_item);
return next;
}
示例4: usableDropped
void ShortcutBar::usableDropped(Rocket::Core::Event& event)
{
Rocket::Core::Element* dragElement = static_cast<Rocket::Core::Element*>(event.GetParameter< void* >("drag_element", nullptr));
if (dragElement != nullptr)
{
const bool isItem = dragElement->HasAttribute("itemId");
const bool isSkill = dragElement->HasAttribute("skillId") && dragElement->HasAttribute("characterId");
UsableId usableId = 0;
if(isItem)
{
usableId = static_cast<UsableId>(dragElement->GetAttribute<int>("itemId", 0));
}
else if(isSkill)
{
usableId = static_cast<UsableId>(dragElement->GetAttribute<int>("skillId", 0));
}
if(usableId > 0)
{
Rocket::Core::Element* dropElement = event.GetTargetElement();
// Only drops on direct children of the shortcut container count as
// shortcut drops
if(dropElement->GetParentNode() == m_shortcutContainer)
{
// Find the index of the shortcut
int dropTargetIndex = 0;
for(;;)
{
dropElement = dropElement->GetPreviousSibling();
if (dropElement == nullptr) break;
++dropTargetIndex;
}
bool isShortcutSet = false;
if(isItem)
{
DEBUG("Dropping item %d on shortcut index %d.", usableId, dropTargetIndex);
m_playerData.setShortcut(dropTargetIndex, usableId);
isShortcutSet = true;
}
else if(isSkill)
{
const std::string characterId = dragElement->GetAttribute<Rocket::Core::String>("characterId", "").CString();
Character* character = m_playerData.getRoster()->getCharacter(characterId);
if(character != nullptr)
{
DEBUG("Dropping skill %d on shortcut index %d.", usableId, dropTargetIndex);
m_playerData.setShortcut(dropTargetIndex, usableId, characterId);
isShortcutSet = true;
}
}
if(isShortcutSet)
{
// If the drag was initiated from the shortcut bar, then
// clear out the shortcut's original slot
if (dragElement->GetParentNode() == m_shortcutContainer)
{
int dragTargetIndex = 0;
for(;;)
{
dragElement = dragElement->GetPreviousSibling();
if (dragElement == nullptr) break;
++dragTargetIndex;
}
m_playerData.clearShortcut(dragTargetIndex);
}
}
refresh();
}
}
}
}