8 [
Attribute(
"4",
desc:
"Speed value passed to WidgetAnimator, 1 = 1sec, higher = faster")]
9 private float m_iCardFadeInSpeed;
24 private string m_sLabelComponentWidget;
29 [
Attribute(defvalue:
"ResetFilterButton")]
33 private string m_sSearchEditBoxName;
36 private string m_sScrollLayoutName;
39 private string m_sContentLoadingWidgetName;
41 [
Attribute(defvalue:
"ToggleBetweenCardAndFilter")]
100 if (!placingManager)
return;
103 int prefabID = m_ContentBrowserManager.GetFilteredPrefabID(entryIndex);
105 ResourceName prefab = m_ContentBrowserManager.GetResourceNamePrefabID(prefabID);
121 if (m_ContentBrowserDialog)
122 m_ContentBrowserDialog.Close();
135 contentWidget.SetVisible(!showNoResults);
142 defaultCardPrefab = cardPrefabCandidate.m_sPrefab;
150 for (
int i = indexStart; i < indexEnd; i++)
152 int prefabID = m_ContentBrowserManager.GetFilteredPrefabID(i);
153 entityInfo = m_ContentBrowserManager.GetInfo(prefabID);
155 cardPrefab = m_sUndefinedCardPrefab;
158 cardPrefab = defaultCardPrefab;
161 if (cardPrefabCandidate.m_EntityType == entityInfo.
GetEntityType())
163 cardPrefab = cardPrefabCandidate.m_sPrefab;
170 Widget assetWidget = workspace.CreateWidgets(cardPrefab, contentWidget);
171 if (!assetWidget)
continue;
176 Print(
"Asset widget is missing SCR_AssetCardFrontUIComponent!",
LogLevel.ERROR);
177 assetWidget.RemoveFromHierarchy();
182 array<ref SCR_EntityBudgetValue> budgetCosts = { };
185 m_ContentBrowserManager.CanPlace(prefabID, budgetCosts, blockingBudgetInfo);
188 if (firstCard == null)
196 assetCard.InitCard(prefabID, entityInfo, m_ContentBrowserManager.GetResourceNamePrefabID(prefabID), blockingBudgetInfo, m_ContentBrowserManager);
201 assetWidget.SetOpacity(0);
202 int cardIndexOnPage = (i - indexStart);
204 callQueue.CallLater(
AnimateCardFadeIn, cardIndexOnPage * 20,
false, assetWidget);
231 return m_ContentBrowserManager.GetFilteredPrefabCount();
278 if (m_LabelsUIComponent)
279 workspace.SetFocusedWidget(m_LabelsUIComponent.GetLastFocusedLabel());
296 Widget focusedWidget = workspace.GetFocusedWidget();
323 m_ContentBrowserManager.SetCurrentSearch(
string.Empty);
324 m_ContentBrowserManager.SetPageIndex(0);
325 m_ContentBrowserManager.SaveBrowserState();
331 protected void FilterEntries(
bool resetPage =
true,
bool resetSearch =
true,
bool animateEntries =
false)
341 if (!searchInputText.IsEmpty() && searchInputText != m_ContentBrowserManager.GetCurrentSearch())
343 m_ContentBrowserManager.SetCurrentSearch(searchInputText);
349 m_ContentBrowserManager.SetPageIndex(0);
353 m_ContentBrowserManager.FilterEntries();
358 SetPage(m_ContentBrowserManager.GetPageIndex(),
true);
401 m_ContentBrowserManager.RefreshPreviewCost();
407 m_ContentBrowserManager.RefreshPreviewCost(prefabIndex);
425 m_ContentBrowserManager.RefreshPreviewCost();
433 m_ContentBrowserManager.RefreshPreviewCost(prefabIndex);
445 string search = text.Trim();
446 m_ContentBrowserManager.SetCurrentSearch(search);
459 SetPage(m_ContentBrowserManager.GetPageIndex(),
true);
472 if (m_ContentBrowserManager)
474 m_ContentBrowserManager.OnMenuClosed();
480 m_LabelsUIComponent.OnResetClicked();
481 m_ContentBrowserManager.ResetBrowserState(
false);
495 m_ContentBrowserManager.SetSaveStateTabsEnabled(!state);
506 Widget labelsWidget =
GetWidget().FindAnyWidget(m_sLabelComponentWidget);
507 if (!labelsWidget)
return;
510 if (!m_LabelsUIComponent)
return;
519 if (activeFilterComponent)
520 activeFilterComponent.
Init(m_LabelsUIComponent);
530 int newLabelGroupOrder;
532 int lowestGroupOrder =
int.MAX;
533 int lowestLabelOrder =
int.MAX;
539 m_ContentBrowserManager.GetLabelGroupType(label, groupLabel);
540 newLabelGroupOrder = m_ContentBrowserManager.GetLabelGroupOrder(groupLabel);
542 if (newLabelGroupOrder <= lowestGroupOrder)
544 newLabelOrder = m_ContentBrowserManager.GetLabelOrderInGroup(label);
546 if (newLabelOrder < lowestLabelOrder)
548 lowestGroupOrder = newLabelGroupOrder;
549 lowestLabelOrder = newLabelOrder;
550 highestOrderedLabel = label;
556 m_ContentBrowserManager.GetLabelUIInfo(highestOrderedLabel, uiInfo);
568 if (
SetPage(previousPageIndex))
570 m_ContentBrowserManager.SetPageIndex(previousPageIndex);
579 m_ContentBrowserManager.SetPageIndex(nextPageIndex);
585 super.HandlerAttachedScripted(w);
589 if (toggleBetweenCardAndFilter)
605 if (!m_ContentBrowserManager)
614 m_ContentBrowserDialog.GetOnMenuHide().Insert(
OnMenuClosed);
622 if (resetFiltersButton)
633 if (m_ContentBrowserManager.GetCurrentSearch())
641 Print(
"'SCR_ContentBrowserEditorUIComponent' cannot find 'm_ContentLoadingVisual'!",
LogLevel.WARNING);
656 if (m_ContentBrowserManager.GetContentBrowserDisplayConfig())
658 string header = m_ContentBrowserManager.GetContentBrowserDisplayConfig().GetHeader();
660 if (header !=
string.Empty)
665 headerWidget.SetText(header);
671 m_ContentBrowserManager.RefreshPreviewCost();
677 SetPage(m_ContentBrowserManager.GetPageIndex());
680 m_BudgetManager.DemandBudgetUpdateFromServer();
685 super.HandlerDeattached(w);
695 m_ContentBrowserDialog.GetOnMenuHide().Remove(
OnMenuClosed);
697 if (m_ContentBrowserManager)
699 m_ContentBrowserManager.SetExtendedEntity(null);
EEditableEntityLabelGroup
ArmaReforgerScripted GetGame()
SCR_AIAnimation_Loitering BaseContainerProps
Commanding menu commanding element class.
InputManager GetInputManager()
class SCR_CampaignHintStorage SCR_BaseContainerCustomTitleEnum(EHint, "m_eHintId")
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
ScriptInvoker GetOnFocus()
ScriptInvoker GetOnHover()
void Init(SCR_ContentBrowserFiltersEditorUIComponent contentBrowserFilterUiComponent)
void SetPageEntryCount(int pageEntryCount)
string m_sToggleSearchButton
SCR_InputButtonComponent m_wToggleCardFilterButton
void OnCardLMB(Widget assetWidget)
void OnBrowserStateCleared()
void GamePadToggleSearch(bool toggle, bool forceToggle=true)
Widget m_LastSelectedOnSearch
string m_sToggleCardFilterButton
void GamepadToggleSelectButtonSwap()
Widget m_wToggleSearchButton
void OnSearchConfirmed(SCR_EditBoxComponent editBox, string text)
void SwitchToAssetCards()
string m_sSfxOnOpenDialog
void OnCardHover(Widget card, int prefabIndex, bool hover)
Widget m_ToggleFilterdButton
bool m_bContentLoadingWidgetActive
SCR_UIInfo GetHighestOrderedLabelUIInfo(notnull array< EEditableEntityLabel > labels)
string m_sResetFiltersButtonName
void HandlerAttachedScripted(Widget w)
string m_sToggleFilterdButtonName
override void OnButtonNext()
bool m_bFocusingAssetCard
void OnInputDeviceIsGamepadScripted(bool isGamepad)
void GamePadSwitchToggleSearch()
void ToggleBetweenCardsAndFilters()
void OnCardFocus(Widget card, int prefabIndex, bool focus)
string m_sSelectCardButtonName
void OnShowLoadingCircle(bool state=true)
ref array< string > m_aLocalizationKeys
void CloseContentBrowser()
void FilterEntries(bool resetPage=true, bool resetSearch=true, bool animateEntries=false)
string m_sNoFilterResultsWidgetName
SCR_EditBoxComponent m_SearchEditBox
override void ShowEntries(Widget contentWidget, int indexStart, int indexEnd)
string m_sHeaderWidgetName
override int GetEntryCount()
void HandlerDeattached(Widget w)
void AnimateCardFadeIn(Widget cardWidget)
string m_sActiveFiltersName
void OnApplyLabelChanges()
Widget m_SelectCardButton
Widget m_NoFilterResultsWidget
override void OnButtonPrev()
Widget m_ContentLoadingVisual
void OnSearchFocusChanged(SCR_EditBoxComponent editBoxComponent, EditBoxWidget editBoxWidget, bool focus)
void OnBrowserEntriesFiltered()
ref array< ref SCR_ContentBrowserEditorCard > m_aCardPrefabs
bool m_bBudgetPreviewUpdateEnabled
ScrollLayoutWidget m_ScrollLayout
The Filter window of the Content Browser.
void SetContentBrowserCallbacks(ScriptInvoker showLoadingCallback, ScriptInvoker labelApplyCallback)
static SCR_EditBoxComponent GetEditBoxComponent(string name, Widget parent, bool searchAllChildren=true)
EEditableEntityType GetEntityType()
bool SetSelectedPrefab(ResourceName prefab="", bool onConfirm=false, bool showBudgetMaxNotification=true, set< SCR_EditableEntityComponent > recipients=null, SCR_BaseEditorAction sourceAction=null)
ScriptCallQueue Class provide "lazy" calls - when we don't want to execute function immediately but l...
proto void Print(void var, LogLevel level=LogLevel.NORMAL)
Prints content of variable to console/log.
LogLevel
Enum with severity of the logging message.
EEditableEntityType
Defines type of SCR_EditableEntityComponent. Assigned automatically based on IEntity inheritance.
SCR_FieldOfViewSettings Attribute