本文整理汇总了C++中UIElement::IsVisible方法的典型用法代码示例。如果您正苦于以下问题:C++ UIElement::IsVisible方法的具体用法?C++ UIElement::IsVisible怎么用?C++ UIElement::IsVisible使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类UIElement
的用法示例。
在下文中一共展示了UIElement::IsVisible方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ChangeSelection
void ListView::ChangeSelection(int delta, bool additive)
{
if (selections_.Empty())
return;
if (!multiselect_)
additive = false;
// If going downwards, use the last selection as a base. Otherwise use first
unsigned selection = delta > 0 ? selections_.Back() : selections_.Front();
int direction = delta > 0 ? 1 : -1;
unsigned numItems = GetNumItems();
unsigned newSelection = selection;
unsigned okSelection = selection;
PODVector<unsigned> indices = selections_;
while (delta != 0)
{
newSelection += direction;
if (newSelection >= numItems)
break;
UIElement* item = GetItem(newSelection);
if (item->IsVisible())
{
indices.Push(okSelection = newSelection);
delta -= direction;
}
}
if (!additive)
SetSelection(okSelection);
else
SetSelections(indices);
}
示例2: HandleUpdate
void UIDrag::HandleUpdate(StringHash eventType, VariantMap& eventData)
{
auto* ui = GetSubsystem<UI>();
UIElement* root = ui->GetRoot();
auto* input = GetSubsystem<Input>();
unsigned n = input->GetNumTouches();
for (unsigned i = 0; i < n; i++)
{
Text* t = (Text*)root->GetChild("Touch " + String(i));
TouchState* ts = input->GetTouch(i);
t->SetText("Touch " + String(ts->touchID_));
IntVector2 pos = ts->position_;
pos.y_ -= 30;
t->SetPosition(pos);
t->SetVisible(true);
}
for (unsigned i = n; i < 10; i++)
{
Text* t = (Text*)root->GetChild("Touch " + String(i));
t->SetVisible(false);
}
if (input->GetKeyPress(KEY_SPACE))
{
PODVector<UIElement*> elements;
root->GetChildrenWithTag(elements, "SomeTag");
for (PODVector<UIElement*>::ConstIterator i = elements.Begin(); i != elements.End(); ++i)
{
UIElement* element = *i;
element->SetVisible(!element->IsVisible());
}
}
}
示例3: OnKey
void ListView::OnKey(int key, int buttons, int qualifiers)
{
// If no selection, can not move with keys
unsigned numItems = GetNumItems();
unsigned selection = GetSelection();
// If either shift or ctrl held down, add to selection if multiselect enabled
bool additive = multiselect_ && qualifiers & (QUAL_SHIFT | QUAL_CTRL);
int delta = M_MAX_INT;
int pageDirection = 1;
if (numItems)
{
if (selection != M_MAX_UNSIGNED && qualifiers & QUAL_CTRL && key == KEY_C)
{
CopySelectedItemsToClipboard();
return;
}
switch (key)
{
case KEY_LEFT:
case KEY_RIGHT:
if (selection != M_MAX_UNSIGNED && hierarchyMode_)
{
Expand(selection, key == KEY_RIGHT);
return;
}
break;
case KEY_RETURN:
case KEY_RETURN2:
case KEY_KP_ENTER:
if (selection != M_MAX_UNSIGNED && hierarchyMode_)
{
ToggleExpand(selection);
return;
}
break;
case KEY_UP:
delta = -1;
break;
case KEY_DOWN:
delta = 1;
break;
case KEY_PAGEUP:
pageDirection = -1;
// Fallthru
case KEY_PAGEDOWN:
{
// Convert page step to pixels and see how many items have to be skipped to reach that many pixels
if (selection == M_MAX_UNSIGNED)
selection = 0; // Assume as if first item is selected
int stepPixels = ((int)(pageStep_ * scrollPanel_->GetHeight())) - contentElement_->GetChild(selection)->GetHeight();
unsigned newSelection = selection;
unsigned okSelection = selection;
unsigned invisible = 0;
while (newSelection < numItems)
{
UIElement* item = GetItem(newSelection);
int height = 0;
if (item->IsVisible())
{
height = item->GetHeight();
okSelection = newSelection;
}
else
++invisible;
if (stepPixels < height)
break;
stepPixels -= height;
newSelection += pageDirection;
}
delta = okSelection - selection - pageDirection * invisible;
}
break;
case KEY_HOME:
delta = -(int)GetNumItems();
break;
case KEY_END:
delta = GetNumItems();
break;
default: break;
}
}
if (delta != M_MAX_INT)
{
ChangeSelection(delta, additive);
return;
}
using namespace UnhandledKey;
//.........这里部分代码省略.........