You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
NOTE: Old tutorials not deprecated (yet), but widget highlights in old tutorials will stop working with this change! Added new Blueprintable UEditorTutorial object. Added suite of widgets and details customizations to display tutorials. New system is available on command line switch -NewTutorials. Slate changes: Tag names are now stored in SWidgets, rather than simply being discarded. Removed STutorialWrapper in favour of using Tags. Added Tags to more multibox widgets, so virtually all can now be picked. Added SWindow::HasOverlay so we dont attempt to add overlays to widows that cannot have them. [CL 2244216 by Thomas Sarkanen in Main branch]
70 lines
2.7 KiB
C++
70 lines
2.7 KiB
C++
// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "EditorTutorial.h"
|
|
|
|
class STutorialContent;
|
|
|
|
/** Delegate used when drawing/arranging widgets */
|
|
DECLARE_MULTICAST_DELEGATE_TwoParams(FOnPaintNamedWidget, TSharedRef<SWidget> /*InWidget*/, const FGeometry& /*InGeometry*/);
|
|
|
|
/** Delegate used to inform widgets of the current window size, so they can auto-adjust layout */
|
|
DECLARE_MULTICAST_DELEGATE_OneParam(FOnCacheWindowSize, const FVector2D& /*InWindowSize*/);
|
|
|
|
/**
|
|
* The widget which displays multiple 'floating' pieces of content overlaid onto the editor
|
|
*/
|
|
class STutorialOverlay : public SCompoundWidget
|
|
{
|
|
public:
|
|
SLATE_BEGIN_ARGS( STutorialOverlay )
|
|
{
|
|
_Visibility = EVisibility::SelfHitTestInvisible;
|
|
}
|
|
|
|
/** The window this content is displayed over */
|
|
SLATE_ARGUMENT(TWeakPtr<SWindow>, ParentWindow)
|
|
|
|
/** Whether this a standalone widget (with its own close button) or part of a group of other widgets, paired with tutorial navigation */
|
|
SLATE_ARGUMENT(bool, IsStandalone)
|
|
|
|
/** Delegate fired when the close button is clicked */
|
|
SLATE_ARGUMENT(FSimpleDelegate, OnClosed)
|
|
|
|
/** Whether we can show full window content in this overlay (i.e. in the same window as the navigation controls) */
|
|
SLATE_ARGUMENT(bool, AllowNonWidgetContent)
|
|
|
|
SLATE_END_ARGS()
|
|
|
|
void Construct(const FArguments& InArgs, FTutorialStage* const InStage);
|
|
|
|
/** SWidget implementation */
|
|
virtual int32 OnPaint( const FPaintArgs& Args, const FGeometry& AllottedGeometry, const FSlateRect& MyClippingRect, FSlateWindowElementList& OutDrawElements, int32 LayerId, const FWidgetStyle& InWidgetStyle, bool bParentEnabled ) const override;
|
|
|
|
private:
|
|
/** Recursive function used to re-generate widget geometry and forward the geometry of named widgets onto their respective content */
|
|
int32 TraverseWidgets(TSharedRef<SWidget> InWidget, const FGeometry& InGeometry, const FSlateRect& MyClippingRect, FSlateWindowElementList& OutDrawElements, int32 LayerId) const;
|
|
|
|
private:
|
|
/** Reference to the canvas we use to position our content widgets */
|
|
TSharedPtr<SCanvas> OverlayCanvas;
|
|
|
|
/** The window this content is displayed over */
|
|
TWeakPtr<SWindow> ParentWindow;
|
|
|
|
/** Whether this a standalone widget (with its own close button) or part of a group of other widgets, paired with tutorial navigation */
|
|
bool bIsStandalone;
|
|
|
|
/** Delegate fired when a cos ebutton is clicked in tutorial content */
|
|
FSimpleDelegate OnClosed;
|
|
|
|
/** Delegate used when drawing/arranging widgets */
|
|
FOnPaintNamedWidget OnPaintNamedWidget;
|
|
|
|
/** Delegate used to reset drawing of named widgets */
|
|
FSimpleMulticastDelegate OnResetNamedWidget;
|
|
|
|
/** Delegate used to inform widgets of the current window size, so they can auto-adjust layout */
|
|
FOnCacheWindowSize OnCacheWindowSize;
|
|
}; |