SPropertyComboBox::~SPropertyComboBox() { if (IsOpen()) { SetIsOpen(false); } }
void Popup::OnIsAttachedChanged (bool attached) { FrameworkElement::OnIsAttachedChanged (attached); if (!attached && GetIsOpen ()) SetIsOpen (false); }
SGraphNodeK2CreateDelegate::~SGraphNodeK2CreateDelegate() { auto SelectFunctionWidgetPtr = SelectFunctionWidget.Pin(); if(SelectFunctionWidgetPtr.IsValid()) { SelectFunctionWidgetPtr->SetIsOpen(false); } }
void SMenuAnchor::OnClickedOutsidePopup() { bDismissedThisTick = true; if (ensure(Method == UseCurrentWindow)) { FSlateApplication::Get().GetPopupSupport().UnregisterClickNotification( FOnClickedOutside::CreateSP(this, &SMenuAnchor::OnClickedOutsidePopup) ); SetIsOpen(false); } }
FReply STimelineLabelAnchor::OnMouseButtonDown(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent) { if (MouseEvent.GetEffectingButton() == EKeys::RightMouseButton && TimelineOwner.IsValid() && TimelineOwner.Pin()->IsSelected()) { SetIsOpen(!IsOpen()); return FReply::Handled(); } return FReply::Unhandled(); }
void SGraphNodeK2CreateDelegate::OnFunctionSelected(TSharedPtr<FFunctionItemData> FunctionItemData, ESelectInfo::Type SelectInfo) { if(FunctionItemData.IsValid()) { if(UK2Node_CreateDelegate* Node = Cast<UK2Node_CreateDelegate>(GraphNode)) { Node->SetFunction(FunctionItemData->Name); Node->HandleAnyChange(true); auto SelectFunctionWidgetPtr = SelectFunctionWidget.Pin(); if(SelectFunctionWidgetPtr.IsValid()) { SelectFunctionWidgetPtr->SetIsOpen(false); } } } }
void SComponentClassCombo::OnAddComponentSelectionChanged( FComponentClassComboEntryPtr InItem, ESelectInfo::Type SelectInfo ) { if ( InItem.IsValid() && InItem->IsClass() && SelectInfo != ESelectInfo::OnNavigation) { // We don't want the item to remain selected ClearSelection(); if ( InItem->IsClass() ) { // Neither do we want the combo dropdown staying open once the user has clicked on a valid option SetIsOpen(false, false); if( OnComponentClassSelected.IsBound() ) { UClass* ComponentClass = InItem->GetComponentClass(); if (ComponentClass == nullptr) { // The class is not loaded yet, so load it: const ELoadFlags LoadFlags = LOAD_None; UBlueprint* LoadedObject = LoadObject<UBlueprint>(NULL, *InItem->GetComponentPath(), NULL, LoadFlags, NULL); ComponentClass = GetAuthoritativeBlueprintClass(LoadedObject); } UActorComponent* NewActorComponent = OnComponentClassSelected.Execute(ComponentClass, InItem->GetComponentCreateAction(), InItem->GetAssetOverride()); if(NewActorComponent) { InItem->GetOnComponentCreated().ExecuteIfBound(NewActorComponent); } } } } else if ( InItem.IsValid() && SelectInfo != ESelectInfo::OnMouseClick ) { int32 SelectedIdx = INDEX_NONE; if (FilteredComponentClassList.Find(InItem, /*out*/ SelectedIdx)) { if (!InItem->IsClass()) { int32 SelectionDirection = SelectedIdx - PrevSelectedIndex; // Update the previous selected index PrevSelectedIndex = SelectedIdx; // Make sure we select past the category header if we started filtering with it selected somehow (avoiding the infinite loop selecting the same item forever) if (SelectionDirection == 0) { SelectionDirection = 1; } if(SelectedIdx + SelectionDirection >= 0 && SelectedIdx + SelectionDirection < FilteredComponentClassList.Num()) { ComponentClassListView->SetSelection(FilteredComponentClassList[SelectedIdx + SelectionDirection], ESelectInfo::OnNavigation); } } else { // Update the previous selected index PrevSelectedIndex = SelectedIdx; } } } }