KLingo Project Documentation 1.0.0
Unreal Engine 5.6 C++ Project Documentation
로딩중...
검색중...
일치하는것 없음
UTabButtonGroup 클래스 참조

데이터를 기반으로 탭 버튼들을 동적으로 생성하고 관리하는 탭 그룹 위젯. 더 자세히 ...

#include <UTabButtonGroup.h>

+ UTabButtonGroup에 대한 상속 다이어그램 :
+ UTabButtonGroup에 대한 협력 다이어그램:

Public 멤버 함수

 DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam (FOnTabSelected, int32, TabIndex)
 탭 선택 이벤트 델리게이트
 
FLinearColor GetActivateColor (bool bSelect) const
 선택된 탭의 색상을 반환합니다.
 
FLinearColor GetTextColor (bool bSelect) const
 선택된 탭의 색상을 반환합니다.
 
void OnSelectTab (int32 TabIndex, bool bBroadcastEvent=true)
 특정 인덱스의 탭을 강제로 선택합니다.
 

Public 속성

FOnTabSelected OnTabSelected
 탭 선택이 변경될 때 발생하는 이벤트
 

Protected 멤버 함수

void ApplyTab ()
 TabLabels 데이터를 기반으로 탭 버튼들을 다시 생성하고 배치합니다.
 
virtual void NativeConstruct () override
 
virtual void NativePreConstruct () override
 
void OnTabClicked (int32 TabIndex)
 탭 버튼 중 하나가 클릭되었을 때 호출될 내부 핸들러.
 

Protected 속성

FLinearColor ActivateSelectColor = FLinearColor::White
 선택된 탭의 텍스트 색상.
 
FLinearColor ActivateUnselectColor = FLinearColor(0.5f, 0.5f, 0.5f)
 비선택된 탭의 텍스트 색상.
 
bool bAnimateIndicator = true
 선택 인디케이터의 이동 애니메이션 활성화 여부.
 
int32 DefaultTabIndex = 0
 위젯이 생성될 때 기본으로 선택될 탭의 인덱스.
 
float IndicatorAnimationSpeed = 0.15f
 선택 인디케이터의 애니메이션 속도 (초 단위).
 
TSubclassOf< class UTabButtonTabButtonClass
 탭 버튼으로 생성할 UTabButton 위젯 블루프린트 클래스.
 
TObjectPtr< class UHorizontalBox > TabContainer
 생성된 탭 버튼들이 추가될 컨테이너. 블루프린트에서 'TabContainer' 이름으로 생성해야 합니다.
 
TObjectPtr< class UTabIndicatorTabIndicator
 선택된 탭을 따라 움직이는 인디케이터 위젯. 블루프린트에서 'TabIndicator' 이름으로 생성해야 합니다.
 
TArray< FText > TabLabels
 각 탭에 표시될 텍스트 라벨 배열. 이 배열의 크기에 따라 탭이 생성됩니다.
 
FVector2D TabSize = FVector2D(300.0f, 75.0f)
 각 탭의 고정 크기 (Width × Height). TabIndicator 크기도 자동으로 이 값으로 설정됩니다.
 
FLinearColor TextSelectColor = FLinearColor::White
 선택된 탭의 텍스트 색상.
 
FLinearColor TextUnselectColor = FLinearColor(0.5f, 0.5f, 0.5f)
 비선택된 탭의 텍스트 색상.
 

Private 멤버 함수

void OnMoveCompleted ()
 인디케이터 이동 완료 시 호출될 핸들러
 
void UpdateIndicatorPosition ()
 선택 인디케이터의 위치를 현재 선택된 탭으로 업데이트합니다.
 

Private 속성

int32 CurTabIndex = -1
 현재 선택된 탭의 인덱스.
 
TArray< TObjectPtr< class UTabButton > > TabButtonList
 동적으로 생성되어 현재 관리 중인 탭 버튼 위젯 인스턴스 배열.
 

상세한 설명

데이터를 기반으로 탭 버튼들을 동적으로 생성하고 관리하는 탭 그룹 위젯.

UTabButtonGroup.h 파일의 13 번째 라인에서 정의되었습니다.

멤버 함수 문서화

◆ ApplyTab()

void UTabButtonGroup::ApplyTab ( )
protected

TabLabels 데이터를 기반으로 탭 버튼들을 다시 생성하고 배치합니다.

UTabButtonGroup.cpp 파일의 47 번째 라인에서 정의되었습니다.

48{
49 // TabButtonClass 유효성 검사
50 if (!TabButtonClass)
51 return;
52
53 // TabContainer 유효성 검사
54 if (!TabContainer)
55 return;
56
57 // 기존 탭 버튼들 제거
58 TabContainer->ClearChildren();
59 TabButtonList.Empty();
60
61 // TabLabels 배열을 순회하며 탭 버튼 생성
62 for (int32 i = 0; i < TabLabels.Num(); ++i)
63 {
64 // UTabButton 인스턴스 생성
65 UTabButton* newButton = CreateWidget<UTabButton>(this, TabButtonClass);
66 if (!newButton)
67 continue;
68
69 // 버튼 초기화
70 newButton->InitData(i, this);
71 newButton->SetLabel(TabLabels[i]);
72
73 // 클릭 이벤트 바인딩
74 newButton->OnTabButtonClicked.RemoveDynamic(this, &UTabButtonGroup::OnTabClicked);
75 newButton->OnTabButtonClicked.AddDynamic(this, &UTabButtonGroup::OnTabClicked);
76
77 // HorizontalBox에 추가
78 UHorizontalBoxSlot* slot = TabContainer->AddChildToHorizontalBox(newButton);
79 if (slot)
80 {
81 // 슬롯 설정 (균등 분배)
82 slot->SetHorizontalAlignment(HAlign_Fill);
83 slot->SetVerticalAlignment(VAlign_Fill);
84 slot->SetSize(FSlateChildSize(ESlateSizeRule::Fill));
85 }
86
87 // 인스턴스 배열에 추가
88 TabButtonList.Add(newButton);
89 }
90}
void OnTabClicked(int32 TabIndex)
탭 버튼 중 하나가 클릭되었을 때 호출될 내부 핸들러.
TArray< TObjectPtr< class UTabButton > > TabButtonList
동적으로 생성되어 현재 관리 중인 탭 버튼 위젯 인스턴스 배열.
TObjectPtr< class UHorizontalBox > TabContainer
생성된 탭 버튼들이 추가될 컨테이너. 블루프린트에서 'TabContainer' 이름으로 생성해야 합니다.
TSubclassOf< class UTabButton > TabButtonClass
탭 버튼으로 생성할 UTabButton 위젯 블루프린트 클래스.
TArray< FText > TabLabels
각 탭에 표시될 텍스트 라벨 배열. 이 배열의 크기에 따라 탭이 생성됩니다.
UTabButtonGroup에 의해 관리되는 개별 탭 버튼 위젯.
Definition UTabButton.h:15
void InitData(const int32 InTabIndex, class UTabButtonGroup *InOwnerGroup)
버튼을 초기화하는 함수. 부모 그룹에 의해 호출됩니다.
void SetLabel(const FText &InText) const
버튼의 텍스트 라벨을 설정합니다.
FOnTabButtonClicked OnTabButtonClicked
탭 버튼이 클릭되었을 때 발생하는 이벤트
Definition UTabButton.h:40

다음을 참조함 : UTabButton::InitData(), UTabButton::OnTabButtonClicked, OnTabClicked(), UTabButton::SetLabel(), TabButtonClass, TabButtonList, TabContainer, TabLabels.

다음에 의해서 참조됨 : NativeConstruct(), NativePreConstruct().

+ 이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
+ 이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam()

UTabButtonGroup::DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam ( FOnTabSelected  ,
int32  ,
TabIndex   
)

탭 선택 이벤트 델리게이트

◆ GetActivateColor()

FLinearColor UTabButtonGroup::GetActivateColor ( bool  bSelect) const
inline

선택된 탭의 색상을 반환합니다.

반환값
선택된 탭의 색상

UTabButtonGroup.h 파일의 40 번째 라인에서 정의되었습니다.

41 {
42 if ( bSelect )
44 else
46 }
FLinearColor ActivateSelectColor
선택된 탭의 텍스트 색상.
FLinearColor ActivateUnselectColor
비선택된 탭의 텍스트 색상.

◆ GetTextColor()

FLinearColor UTabButtonGroup::GetTextColor ( bool  bSelect) const
inline

선택된 탭의 색상을 반환합니다.

반환값
선택된 탭의 색상

UTabButtonGroup.h 파일의 30 번째 라인에서 정의되었습니다.

31 {
32 if ( bSelect )
33 return TextSelectColor;
34 else
35 return TextUnselectColor;
36 }
FLinearColor TextSelectColor
선택된 탭의 텍스트 색상.
FLinearColor TextUnselectColor
비선택된 탭의 텍스트 색상.

◆ NativeConstruct()

void UTabButtonGroup::NativeConstruct ( )
overrideprotectedvirtual

UTabButtonGroup.cpp 파일의 19 번째 라인에서 정의되었습니다.

20{
21 Super::NativeConstruct();
22
23 // 인디케이터 이동 완료 이벤트 바인딩 및 설정
24 if (TabIndicator)
25 {
26 TabIndicator->OnMoveCompleted.RemoveDynamic(this, &UTabButtonGroup::OnMoveCompleted);
27 TabIndicator->OnMoveCompleted.AddDynamic(this, &UTabButtonGroup::OnMoveCompleted);
28
29 // 애니메이션 속도 설정
30 TabIndicator->SetAnimationSpeed(IndicatorAnimationSpeed);
31
32 // TabIndicator 크기를 TabSize로 자동 설정
33 UCanvasPanelSlot* indicatorSlot = Cast<UCanvasPanelSlot>(TabIndicator->Slot);
34 if (indicatorSlot)
35 {
36 indicatorSlot->SetSize(TabSize);
37 }
38 }
39
40 // 탭 구성
41 ApplyTab();
42
43 // 기본 탭 선택 (이벤트는 발생시키지 않음)
45}
float IndicatorAnimationSpeed
선택 인디케이터의 애니메이션 속도 (초 단위).
void OnMoveCompleted()
인디케이터 이동 완료 시 호출될 핸들러
void ApplyTab()
TabLabels 데이터를 기반으로 탭 버튼들을 다시 생성하고 배치합니다.
FVector2D TabSize
각 탭의 고정 크기 (Width × Height). TabIndicator 크기도 자동으로 이 값으로 설정됩니다.
int32 DefaultTabIndex
위젯이 생성될 때 기본으로 선택될 탭의 인덱스.
void OnSelectTab(int32 TabIndex, bool bBroadcastEvent=true)
특정 인덱스의 탭을 강제로 선택합니다.
TObjectPtr< class UTabIndicator > TabIndicator
선택된 탭을 따라 움직이는 인디케이터 위젯. 블루프린트에서 'TabIndicator' 이름으로 생성해야 합니다.

다음을 참조함 : ApplyTab(), DefaultTabIndex, IndicatorAnimationSpeed, OnMoveCompleted(), OnSelectTab(), TabIndicator, TabSize.

+ 이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ NativePreConstruct()

void UTabButtonGroup::NativePreConstruct ( )
overrideprotectedvirtual

UTabButtonGroup.cpp 파일의 11 번째 라인에서 정의되었습니다.

12{
13 Super::NativePreConstruct();
14
15 // 에디터 프리뷰를 위해 탭을 재구성
16 ApplyTab();
17}

다음을 참조함 : ApplyTab().

+ 이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ OnMoveCompleted()

void UTabButtonGroup::OnMoveCompleted ( )
private

인디케이터 이동 완료 시 호출될 핸들러

UTabButtonGroup.cpp 파일의 140 번째 라인에서 정의되었습니다.

141{
142 // 인디케이터 이동이 완료되었을 때 수행할 작업
143 // 예: 사운드 재생, 추가 이벤트 발생 등
144}

다음에 의해서 참조됨 : NativeConstruct().

+ 이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnSelectTab()

void UTabButtonGroup::OnSelectTab ( int32  TabIndex,
bool  bBroadcastEvent = true 
)

특정 인덱스의 탭을 강제로 선택합니다.

매개변수
[in]TabIndex선택할 탭의 인덱스
[in]bBroadcastEventOnTabSelected 델리게이트를 호출할지 여부

UTabButtonGroup.cpp 파일의 97 번째 라인에서 정의되었습니다.

98{
99 // 인덱스 유효성 검사
100 if (!TabButtonList.IsValidIndex(TabIndex))
101 return;
102
103 // 이미 선택된 탭이면 무시
104 if (CurTabIndex == TabIndex)
105 return;
106
107 // 현재 탭 인덱스 업데이트
108 CurTabIndex = TabIndex;
109
110 // 모든 탭 버튼의 선택 상태 업데이트
111 for (int32 i = 0; i < TabButtonList.Num(); ++i)
112 {
113 if (TabButtonList[i])
114 {
115 TabButtonList[i]->SetSelected(i == CurTabIndex);
116 }
117 }
118
119 // 인디케이터 위치 업데이트
121
122 // 이벤트 브로드캐스트
123 if (bBroadcastEvent)
124 OnTabSelected.Broadcast(CurTabIndex);
125}
int32 CurTabIndex
현재 선택된 탭의 인덱스.
void UpdateIndicatorPosition()
선택 인디케이터의 위치를 현재 선택된 탭으로 업데이트합니다.
FOnTabSelected OnTabSelected
탭 선택이 변경될 때 발생하는 이벤트

다음을 참조함 : CurTabIndex, OnTabSelected, TabButtonList, UpdateIndicatorPosition().

다음에 의해서 참조됨 : NativeConstruct(), OnTabClicked().

+ 이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
+ 이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnTabClicked()

void UTabButtonGroup::OnTabClicked ( int32  TabIndex)
protected

탭 버튼 중 하나가 클릭되었을 때 호출될 내부 핸들러.

UTabButtonGroup.cpp 파일의 92 번째 라인에서 정의되었습니다.

93{
94 OnSelectTab(TabIndex, true);
95}

다음을 참조함 : OnSelectTab().

다음에 의해서 참조됨 : ApplyTab().

+ 이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
+ 이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ UpdateIndicatorPosition()

void UTabButtonGroup::UpdateIndicatorPosition ( )
private

선택 인디케이터의 위치를 현재 선택된 탭으로 업데이트합니다.

UTabButtonGroup.cpp 파일의 127 번째 라인에서 정의되었습니다.

128{
129 // 인디케이터 유효성 검사
130 if (!TabIndicator)
131 return;
132
133 // 고정 폭 기반으로 X 위치 계산: X = TabSize.X * TabIndex
134 FVector2D targetPosition(TabSize.X * CurTabIndex, 0.0f);
135
136 // UTabIndicator에게 이동 요청
137 TabIndicator->MoveTo(targetPosition, bAnimateIndicator);
138}
bool bAnimateIndicator
선택 인디케이터의 이동 애니메이션 활성화 여부.

다음을 참조함 : bAnimateIndicator, CurTabIndex, TabIndicator, TabSize.

다음에 의해서 참조됨 : OnSelectTab().

+ 이 함수를 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ ActivateSelectColor

FLinearColor UTabButtonGroup::ActivateSelectColor = FLinearColor::White
protected

선택된 탭의 텍스트 색상.

UTabButtonGroup.h 파일의 103 번째 라인에서 정의되었습니다.

◆ ActivateUnselectColor

FLinearColor UTabButtonGroup::ActivateUnselectColor = FLinearColor(0.5f, 0.5f, 0.5f)
protected

비선택된 탭의 텍스트 색상.

UTabButtonGroup.h 파일의 107 번째 라인에서 정의되었습니다.

◆ bAnimateIndicator

bool UTabButtonGroup::bAnimateIndicator = true
protected

선택 인디케이터의 이동 애니메이션 활성화 여부.

UTabButtonGroup.h 파일의 115 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : UpdateIndicatorPosition().

◆ CurTabIndex

int32 UTabButtonGroup::CurTabIndex = -1
private

현재 선택된 탭의 인덱스.

UTabButtonGroup.h 파일의 127 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : OnSelectTab(), UpdateIndicatorPosition().

◆ DefaultTabIndex

int32 UTabButtonGroup::DefaultTabIndex = 0
protected

위젯이 생성될 때 기본으로 선택될 탭의 인덱스.

UTabButtonGroup.h 파일의 91 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : NativeConstruct().

◆ IndicatorAnimationSpeed

float UTabButtonGroup::IndicatorAnimationSpeed = 0.15f
protected

선택 인디케이터의 애니메이션 속도 (초 단위).

UTabButtonGroup.h 파일의 119 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : NativeConstruct().

◆ OnTabSelected

FOnTabSelected UTabButtonGroup::OnTabSelected

탭 선택이 변경될 때 발생하는 이벤트

UTabButtonGroup.h 파일의 53 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : OnSelectTab().

◆ TabButtonClass

TSubclassOf<class UTabButton> UTabButtonGroup::TabButtonClass
protected

탭 버튼으로 생성할 UTabButton 위젯 블루프린트 클래스.

UTabButtonGroup.h 파일의 87 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ApplyTab().

◆ TabButtonList

TArray<TObjectPtr<class UTabButton> > UTabButtonGroup::TabButtonList
private

동적으로 생성되어 현재 관리 중인 탭 버튼 위젯 인스턴스 배열.

UTabButtonGroup.h 파일의 124 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ApplyTab(), OnSelectTab().

◆ TabContainer

TObjectPtr<class UHorizontalBox> UTabButtonGroup::TabContainer
protected

생성된 탭 버튼들이 추가될 컨테이너. 블루프린트에서 'TabContainer' 이름으로 생성해야 합니다.

UTabButtonGroup.h 파일의 75 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ApplyTab().

◆ TabIndicator

TObjectPtr<class UTabIndicator> UTabButtonGroup::TabIndicator
protected

선택된 탭을 따라 움직이는 인디케이터 위젯. 블루프린트에서 'TabIndicator' 이름으로 생성해야 합니다.

UTabButtonGroup.h 파일의 79 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : NativeConstruct(), UpdateIndicatorPosition().

◆ TabLabels

TArray<FText> UTabButtonGroup::TabLabels
protected

각 탭에 표시될 텍스트 라벨 배열. 이 배열의 크기에 따라 탭이 생성됩니다.

UTabButtonGroup.h 파일의 83 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ApplyTab().

◆ TabSize

FVector2D UTabButtonGroup::TabSize = FVector2D(300.0f, 75.0f)
protected

각 탭의 고정 크기 (Width × Height). TabIndicator 크기도 자동으로 이 값으로 설정됩니다.

UTabButtonGroup.h 파일의 111 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : NativeConstruct(), UpdateIndicatorPosition().

◆ TextSelectColor

FLinearColor UTabButtonGroup::TextSelectColor = FLinearColor::White
protected

선택된 탭의 텍스트 색상.

UTabButtonGroup.h 파일의 95 번째 라인에서 정의되었습니다.

◆ TextUnselectColor

FLinearColor UTabButtonGroup::TextUnselectColor = FLinearColor(0.5f, 0.5f, 0.5f)
protected

비선택된 탭의 텍스트 색상.

UTabButtonGroup.h 파일의 99 번째 라인에서 정의되었습니다.


이 클래스에 대한 문서화 페이지는 다음의 파일들로부터 생성되었습니다.: