SDocumentationAnchor.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. // Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
  2. #pragma once
  3. #include "CoreMinimal.h"
  4. #include "Misc/Attribute.h"
  5. #include "Input/Reply.h"
  6. #include "Widgets/DeclarativeSyntaxSupport.h"
  7. #include "Widgets/SCompoundWidget.h"
  8. class IDocumentationPage;
  9. class SButton;
  10. class SImage;
  11. struct FSlateBrush;
  12. #include "DocumentationDefines.h"
  13. namespace EXT_DOC_NAMESPACE
  14. {
  15. class SExtDocumentationAnchor : public SCompoundWidget
  16. {
  17. public:
  18. SLATE_BEGIN_ARGS( SExtDocumentationAnchor )
  19. {}
  20. SLATE_ARGUMENT( FString, PreviewLink )
  21. SLATE_ARGUMENT( FString, PreviewExcerptName )
  22. /** The string for the link to follow when clicked */
  23. SLATE_ATTRIBUTE( FString, Link )
  24. /** The base URL for the Link, if any is needed */
  25. SLATE_ATTRIBUTE(FString, BaseUrlId)
  26. SLATE_END_ARGS()
  27. void Construct(const FArguments& InArgs);
  28. private:
  29. const FSlateBrush* GetButtonImage() const;
  30. FReply OnClicked() const;
  31. private:
  32. TAttribute<FString> Link;
  33. TSharedPtr< SButton > Button;
  34. TSharedPtr< SImage > ButtonImage;
  35. const FSlateBrush* Default;
  36. const FSlateBrush* Hovered;
  37. const FSlateBrush* Pressed;
  38. TSharedPtr< IDocumentationPage > DocumentationPage;
  39. };
  40. }