欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

UE4 笔记_修改用户界面并添加新功能

最编程 2024-03-23 17:36:10
...
1 #include "DJWScrollBox.h" 2 #include "Components/ScrollBoxSlot.h" 3 #include "NEWScrollBox.h" 4 5 UDJWScrollBox::UDJWScrollBox(const FObjectInitializer& ObjectInitializer) 6 : Super(ObjectInitializer) 7 {} 8 9 void UDJWScrollBox::SlateHandleMouseUp() 10 { 11 OnScrollMouseButtonDownEvent.Broadcast(); 12 } 13 14 void UDJWScrollBox::SlateHandleMouseDown() 15 { 16 OnScrollMouseButtonUpEvent.Broadcast(); 17 } 18 19 TSharedRef<SWidget> UDJWScrollBox::RebuildWidget() 20 { 21 MyScrollBox = SNew(NEWScrollBox) 22 .Style(&WidgetStyle) 23 .ScrollBarStyle(&WidgetBarStyle) 24 .Orientation(Orientation) 25 .ConsumeMouseWheel(ConsumeMouseWheel) 26 .NavigationDestination(NavigationDestination) 27 .NavigationScrollPadding(NavigationScrollPadding) 28 .AnimateWheelScrolling(bAnimateWheelScrolling) 29 .WheelScrollMultiplier(WheelScrollMultiplier) 30 .OnUserScrolled(BIND_UOBJECT_DELEGATE(FOnUserScrolled, SlateHandleUserScrolled)); 31 32 for (UPanelSlot* PanelSlot : Slots) 33 { 34 if (UScrollBoxSlot* TypedSlot = Cast<UScrollBoxSlot>(PanelSlot)) 35 { 36 TypedSlot->Parent = this; 37 TypedSlot->BuildSlot(MyScrollBox.ToSharedRef()); 38 } 39 } 40 NEWScrollBox* NewScroll = static_cast<NEWScrollBox*>(MyScrollBox.Get()); 41 if (NewScroll) 42 { 43 NewScroll->OnScrollMouseButtonDown.BindUObject(this, &UDJWScrollBox::SlateHandleMouseDown); 44 NewScroll->OnScrollMouseButtonUp.BindUObject(this, &UDJWScrollBox::SlateHandleMouseUp); 45 } 46 return MyScrollBox.ToSharedRef(); 47 }