|
KLingo Project Documentation 1.0.0
Unreal Engine 5.6 C++ Project Documentation
|
페이지 단위 스크롤 뷰 위젯 드래그 기반 스크롤과 자동 스냅 기능을 제공하는 메인 컨트롤러 위젯입니다. 더 자세히 ...
#include <UPageScrollView.h>
UPageScrollView에 대한 상속 다이어그램 :
UPageScrollView에 대한 협력 다이어그램:Public 멤버 함수 | |
| int32 | GetCurrentPage () const |
| 현재 페이지 인덱스를 반환합니다. | |
| UPageScrollItem * | GetPageAt (int32 Index) const |
| 특정 인덱스의 페이지 아이템을 반환합니다. | |
| int32 | GetTotalPages () const |
| 총 페이지 수를 반환합니다. | |
| void | MovePage (int32 PageIndex, bool bAnimate=true) |
| 특정 페이지로 이동합니다. | |
| void | NextPage () |
| 다음 페이지로 이동합니다. | |
| void | PrevPage () |
| 이전 페이지로 이동합니다. | |
| void | SetNumberOfPages (int32 ItemCount) |
| 페이지 개수를 설정하고 동적으로 생성합니다. | |
Public 속성 | |
| bool | bEnableScaleEffect = false |
| 중앙 스케일 효과 활성화 여부 | |
| int32 | DefaultPageIndex = 0 |
| 기본으로 선택될 페이지 인덱스 | |
| float | FastSwipeThreshold = 500.0f |
| 빠른 스와이프 인식 임계값 (픽셀/초) | |
| float | FocusScale = 1.0f |
| 중앙에 있는 페이지의 스케일 값 | |
| FOnPageChanged | OnPageChanged |
| 페이지 변경 이벤트 | |
| TObjectPtr< class UCanvasPanel > | PageContainer |
| 페이지 아이템들을 담을 컨테이너 (드래그로 위치 이동) | |
| TObjectPtr< class UPageScrollDot > | PageDotIndicator |
| 페이지 인디케이터 (선택적) | |
| TSubclassOf< class UPageScrollItem > | PageItemClass |
| 페이지 아이템으로 생성할 위젯 블루프린트 클래스 | |
| FVector2D | PageSize = FVector2D(1920.0f, 1080.0f) |
| 각 페이지의 크기 (Width × Height) | |
| float | PageSpacing = 0.0f |
| 페이지 간 간격 (픽셀) | |
| EPageScrollDirection | ScrollDirection = EPageScrollDirection::Horizontal |
| 스크롤 방향 (수평/수직) | |
| float | SideScale = 0.8f |
| 중앙에서 벗어난 페이지의 스케일 값 | |
| float | SnapAnimationSpeed = 0.3f |
| 스냅 애니메이션 속도 (초 단위) | |
Protected 멤버 함수 | |
| virtual void | NativeConstruct () override |
| virtual void | NativeDestruct () override |
| virtual FReply | NativeOnMouseButtonDown (const FGeometry &InGeometry, const FPointerEvent &InMouseEvent) override |
| 마우스 버튼 다운 이벤트 | |
| virtual FReply | NativeOnMouseButtonUp (const FGeometry &InGeometry, const FPointerEvent &InMouseEvent) override |
| 마우스 버튼 업 이벤트 | |
| virtual FReply | NativeOnMouseMove (const FGeometry &InGeometry, const FPointerEvent &InMouseEvent) override |
| 마우스 이동 이벤트 | |
Private 멤버 함수 | |
| int32 | CalculateTargetPage (FVector2D DragDelta, float Velocity) const |
| 드래그 종료 시 목표 페이지를 계산합니다. | |
| FVector2D | GetPagePosition (int32 PageIndex) const |
| 페이지 인덱스에 해당하는 목표 위치를 계산합니다. | |
| FORCEINLINE float | GetPageStride () const |
| 페이지 간 거리를 계산합니다. | |
| void | SetContainerPosition (FVector2D Position) |
| 컨테이너 위치를 설정합니다. | |
| void | StopAnimation () |
| 스냅 애니메이션을 중지합니다. | |
| void | TickSnapAnimation () |
| 스냅 애니메이션을 Tick합니다. | |
| void | UpdateContainerPositionDuringDrag () |
| 드래그 중 컨테이너 위치를 업데이트합니다. | |
| void | UpdateItemScales () |
| 페이지 아이템들의 스케일을 거리 기반으로 업데이트합니다. | |
| void | UpdatePageDotIndicator () |
| 페이지 인디케이터를 업데이트합니다. | |
Private 속성 | |
| float | animElapsedTime = 0.0f |
| FVector2D | animStartPosition = FVector2D::ZeroVector |
| FVector2D | animTargetPosition = FVector2D::ZeroVector |
| bool | bIsAnimating = false |
| bool | bIsDragging = false |
| 드래그 상태 추적 | |
| int32 | CurPageIndex = 0 |
| 현재 선택된 페이지 인덱스 | |
| FVector2D | dragCurrentPosition = FVector2D::ZeroVector |
| FVector2D | dragStartPosition = FVector2D::ZeroVector |
| float | dragStartTime = 0.0f |
| TArray< TObjectPtr< class UPageScrollItem > > | pageItemList |
| 생성된 페이지 아이템 목록 | |
| int32 | PrevPageIndex = 0 |
| 이전 페이지 인덱스 (스냅 계산용) | |
| FTimerHandle | snapAnimTimerHandle |
| 애니메이션 상태 | |
| FVector2D | ViewportSize = FVector2D::ZeroVector |
| 뷰포트 크기 (SizeBox에서 계산) | |
페이지 단위 스크롤 뷰 위젯 드래그 기반 스크롤과 자동 스냅 기능을 제공하는 메인 컨트롤러 위젯입니다.
UPageScrollView.h 파일의 18 번째 라인에서 정의되었습니다.
|
private |
드래그 종료 시 목표 페이지를 계산합니다.
| [in] | DragDelta | 드래그 이동 거리 |
| [in] | Velocity | 드래그 속도 (픽셀/초) |
UPageScrollView.cpp 파일의 236 번째 라인에서 정의되었습니다.
다음을 참조함 : CurPageIndex, FastSwipeThreshold, GetPageStride(), pageItemList, ScrollDirection.
다음에 의해서 참조됨 : NativeOnMouseButtonUp().
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:
|
inline |
|
inline |
특정 인덱스의 페이지 아이템을 반환합니다.
| [in] | Index | 페이지 인덱스 |
UPageScrollView.h 파일의 69 번째 라인에서 정의되었습니다.
|
private |
페이지 인덱스에 해당하는 목표 위치를 계산합니다.
| [in] | PageIndex | 페이지 인덱스 |
UPageScrollView.cpp 파일의 316 번째 라인에서 정의되었습니다.
다음을 참조함 : GetPageStride(), ScrollDirection.
다음에 의해서 참조됨 : MovePage(), UpdateContainerPositionDuringDrag().
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:
|
inlineprivate |
페이지 간 거리를 계산합니다.
UPageScrollView.h 파일의 94 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : CalculateTargetPage(), GetPagePosition(), SetNumberOfPages(), UpdateItemScales().
이 함수를 호출하는 함수들에 대한 그래프입니다.:
|
inline |
| void UPageScrollView::MovePage | ( | int32 | PageIndex, |
| bool | bAnimate = true |
||
| ) |
특정 페이지로 이동합니다.
| [in] | PageIndex | 이동할 페이지 인덱스 |
| [in] | bAnimate | 애니메이션 여부 |
UPageScrollView.cpp 파일의 109 번째 라인에서 정의되었습니다.
다음을 참조함 : animElapsedTime, animStartPosition, animTargetPosition, bEnableScaleEffect, bIsAnimating, CurPageIndex, GetPagePosition(), OnPageChanged, PageContainer, pageItemList, SetContainerPosition(), SnapAnimationSpeed, snapAnimTimerHandle, TickSnapAnimation(), UpdateItemScales(), UpdatePageDotIndicator().
다음에 의해서 참조됨 : NativeConstruct(), NativeOnMouseButtonUp(), NextPage(), PrevPage(), SetNumberOfPages().
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:
|
overrideprotectedvirtual |
UPageScrollView.cpp 파일의 10 번째 라인에서 정의되었습니다.
다음을 참조함 : DefaultPageIndex, MovePage(), pageItemList, PageSize, ViewportSize.
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
|
overrideprotectedvirtual |
UPageScrollView.cpp 파일의 33 번째 라인에서 정의되었습니다.
다음을 참조함 : StopAnimation().
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
|
overrideprotectedvirtual |
마우스 버튼 다운 이벤트
UPageScrollView.cpp 파일의 41 번째 라인에서 정의되었습니다.
다음을 참조함 : bIsDragging, CurPageIndex, dragCurrentPosition, dragStartPosition, dragStartTime, PrevPageIndex, StopAnimation().
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
|
overrideprotectedvirtual |
마우스 버튼 업 이벤트
UPageScrollView.cpp 파일의 66 번째 라인에서 정의되었습니다.
다음을 참조함 : bIsDragging, CalculateTargetPage(), dragCurrentPosition, dragStartPosition, dragStartTime, MovePage().
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
|
overrideprotectedvirtual |
마우스 이동 이벤트
UPageScrollView.cpp 파일의 96 번째 라인에서 정의되었습니다.
다음을 참조함 : bIsDragging, dragCurrentPosition, UpdateContainerPositionDuringDrag().
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:| void UPageScrollView::NextPage | ( | ) |
다음 페이지로 이동합니다.
UPageScrollView.cpp 파일의 224 번째 라인에서 정의되었습니다.
다음을 참조함 : CurPageIndex, MovePage(), pageItemList.
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:| void UPageScrollView::PrevPage | ( | ) |
이전 페이지로 이동합니다.
UPageScrollView.cpp 파일의 230 번째 라인에서 정의되었습니다.
다음을 참조함 : CurPageIndex, MovePage(), pageItemList.
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
|
private |
컨테이너 위치를 설정합니다.
| [in] | Position | 설정할 위치 |
UPageScrollView.cpp 파일의 324 번째 라인에서 정의되었습니다.
다음을 참조함 : PageContainer.
다음에 의해서 참조됨 : MovePage().
이 함수를 호출하는 함수들에 대한 그래프입니다.:| void UPageScrollView::SetNumberOfPages | ( | int32 | ItemCount | ) |
페이지 개수를 설정하고 동적으로 생성합니다.
| [in] | ItemCount | 생성할 페이지 수 |
UPageScrollView.cpp 파일의 168 번째 라인에서 정의되었습니다.
다음을 참조함 : DefaultPageIndex, GetPageStride(), UPageScrollItem::InitData(), MovePage(), PageContainer, PageDotIndicator, PageItemClass, pageItemList, PageSize, ScrollDirection.
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
|
private |
스냅 애니메이션을 중지합니다.
UPageScrollView.cpp 파일의 306 번째 라인에서 정의되었습니다.
다음을 참조함 : bIsAnimating, snapAnimTimerHandle.
다음에 의해서 참조됨 : NativeDestruct(), NativeOnMouseButtonDown(), TickSnapAnimation().
이 함수를 호출하는 함수들에 대한 그래프입니다.:
|
private |
스냅 애니메이션을 Tick합니다.
UPageScrollView.cpp 파일의 263 번째 라인에서 정의되었습니다.
다음을 참조함 : animElapsedTime, animStartPosition, animTargetPosition, bEnableScaleEffect, CurPageIndex, OnPageChanged, PageContainer, PrevPageIndex, SnapAnimationSpeed, StopAnimation(), UpdateItemScales(), UpdatePageDotIndicator().
다음에 의해서 참조됨 : MovePage().
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:
|
private |
드래그 중 컨테이너 위치를 업데이트합니다.
UPageScrollView.cpp 파일의 385 번째 라인에서 정의되었습니다.
다음을 참조함 : bEnableScaleEffect, bIsDragging, dragCurrentPosition, dragStartPosition, GetPagePosition(), PageContainer, PrevPageIndex, ScrollDirection, UpdateItemScales().
다음에 의해서 참조됨 : NativeOnMouseMove().
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:
|
private |
페이지 아이템들의 스케일을 거리 기반으로 업데이트합니다.
UPageScrollView.cpp 파일의 340 번째 라인에서 정의되었습니다.
다음을 참조함 : bEnableScaleEffect, FocusScale, GetPageStride(), PageContainer, pageItemList, PageSize, ScrollDirection, SideScale, UPageScrollItem::UpdateFocusState().
다음에 의해서 참조됨 : MovePage(), TickSnapAnimation(), UpdateContainerPositionDuringDrag().
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:
|
private |
페이지 인디케이터를 업데이트합니다.
UPageScrollView.cpp 파일의 332 번째 라인에서 정의되었습니다.
다음을 참조함 : CurPageIndex, PageDotIndicator.
다음에 의해서 참조됨 : MovePage(), TickSnapAnimation().
이 함수를 호출하는 함수들에 대한 그래프입니다.:
|
private |
UPageScrollView.h 파일의 188 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : MovePage(), TickSnapAnimation().
|
private |
UPageScrollView.h 파일의 186 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : MovePage(), TickSnapAnimation().
|
private |
UPageScrollView.h 파일의 187 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : MovePage(), TickSnapAnimation().
| bool UPageScrollView::bEnableScaleEffect = false |
중앙 스케일 효과 활성화 여부
UPageScrollView.h 파일의 137 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : MovePage(), TickSnapAnimation(), UpdateContainerPositionDuringDrag(), UpdateItemScales().
|
private |
UPageScrollView.h 파일의 189 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : MovePage(), StopAnimation().
|
private |
드래그 상태 추적
UPageScrollView.h 파일의 179 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : NativeOnMouseButtonDown(), NativeOnMouseButtonUp(), NativeOnMouseMove(), UpdateContainerPositionDuringDrag().
|
private |
현재 선택된 페이지 인덱스
UPageScrollView.h 파일의 169 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : CalculateTargetPage(), MovePage(), NativeOnMouseButtonDown(), NextPage(), PrevPage(), TickSnapAnimation(), UpdatePageDotIndicator().
| int32 UPageScrollView::DefaultPageIndex = 0 |
기본으로 선택될 페이지 인덱스
UPageScrollView.h 파일의 153 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : NativeConstruct(), SetNumberOfPages().
|
private |
UPageScrollView.h 파일의 181 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : NativeOnMouseButtonDown(), NativeOnMouseButtonUp(), NativeOnMouseMove(), UpdateContainerPositionDuringDrag().
|
private |
UPageScrollView.h 파일의 180 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : NativeOnMouseButtonDown(), NativeOnMouseButtonUp(), UpdateContainerPositionDuringDrag().
|
private |
UPageScrollView.h 파일의 182 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : NativeOnMouseButtonDown(), NativeOnMouseButtonUp().
| float UPageScrollView::FastSwipeThreshold = 500.0f |
빠른 스와이프 인식 임계값 (픽셀/초)
UPageScrollView.h 파일의 129 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : CalculateTargetPage().
| float UPageScrollView::FocusScale = 1.0f |
| FOnPageChanged UPageScrollView::OnPageChanged |
페이지 변경 이벤트
UPageScrollView.h 파일의 165 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : MovePage(), TickSnapAnimation().
| TObjectPtr<class UCanvasPanel> UPageScrollView::PageContainer |
페이지 아이템들을 담을 컨테이너 (드래그로 위치 이동)
UPageScrollView.h 파일의 157 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : MovePage(), SetContainerPosition(), SetNumberOfPages(), TickSnapAnimation(), UpdateContainerPositionDuringDrag(), UpdateItemScales().
| TObjectPtr<class UPageScrollDot> UPageScrollView::PageDotIndicator |
페이지 인디케이터 (선택적)
UPageScrollView.h 파일의 161 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : SetNumberOfPages(), UpdatePageDotIndicator().
| TSubclassOf<class UPageScrollItem> UPageScrollView::PageItemClass |
페이지 아이템으로 생성할 위젯 블루프린트 클래스
UPageScrollView.h 파일의 149 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : SetNumberOfPages().
|
private |
생성된 페이지 아이템 목록
UPageScrollView.h 파일의 176 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : CalculateTargetPage(), MovePage(), NativeConstruct(), NextPage(), PrevPage(), SetNumberOfPages(), UpdateItemScales().
| FVector2D UPageScrollView::PageSize = FVector2D(1920.0f, 1080.0f) |
각 페이지의 크기 (Width × Height)
UPageScrollView.h 파일의 121 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : NativeConstruct(), SetNumberOfPages(), UpdateItemScales().
| float UPageScrollView::PageSpacing = 0.0f |
페이지 간 간격 (픽셀)
UPageScrollView.h 파일의 125 번째 라인에서 정의되었습니다.
|
private |
이전 페이지 인덱스 (스냅 계산용)
UPageScrollView.h 파일의 172 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : NativeOnMouseButtonDown(), TickSnapAnimation(), UpdateContainerPositionDuringDrag().
| EPageScrollDirection UPageScrollView::ScrollDirection = EPageScrollDirection::Horizontal |
스크롤 방향 (수평/수직)
UPageScrollView.h 파일의 117 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : CalculateTargetPage(), GetPagePosition(), SetNumberOfPages(), UpdateContainerPositionDuringDrag(), UpdateItemScales().
| float UPageScrollView::SideScale = 0.8f |
| float UPageScrollView::SnapAnimationSpeed = 0.3f |
스냅 애니메이션 속도 (초 단위)
UPageScrollView.h 파일의 133 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : MovePage(), TickSnapAnimation().
|
private |
|
private |