123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- // Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
- #pragma once
- #include "CoreMinimal.h"
- #include "Misc/Attribute.h"
- #include "Styling/SlateColor.h"
- #include "Input/Reply.h"
- #include "Layout/Margin.h"
- #include "Widgets/DeclarativeSyntaxSupport.h"
- #include "Widgets/SCompoundWidget.h"
- #include "Styling/SlateTypes.h"
- class IDocumentationPage;
- class SBox;
- class SVerticalBox;
- #include "DocumentationDefines.h"
- namespace EXT_DOC_NAMESPACE
- {
- class SExtDocumentationToolTip : public SCompoundWidget
- {
- public:
- SLATE_BEGIN_ARGS(SExtDocumentationToolTip)
- : _Text()
- , _Style(TEXT("Documentation.SDocumentationToolTip"))
- , _SubduedStyle(TEXT("Documentation.SDocumentationToolTipSubdued"))
- , _HyperlinkTextStyle(TEXT("Documentation.SDocumentationToolTipHyperlinkText"))
- , _HyperlinkButtonStyle(TEXT("Documentation.SDocumentationToolTipHyperlinkButton"))
- , _ColorAndOpacity(FLinearColor::Black)
- , _AddDocumentation(true)
- , _DocumentationMargin(0)
- , _AlwaysShowFullToolTip(false)
- , _Content()
- {}
- /** The text displayed in this tool tip */
- SLATE_ATTRIBUTE(FText, Text)
- /** The text style to use for this tool tip */
- SLATE_ARGUMENT(FName, Style)
- /** The text style to use for subdued footer text in this tool tip */
- SLATE_ARGUMENT(FName, SubduedStyle)
- /** The text style to use for hyperlinks in this tool tip */
- SLATE_ARGUMENT(FName, HyperlinkTextStyle)
- /** Hyperlink button style */
- SLATE_ARGUMENT(FName, HyperlinkButtonStyle)
- /** Font color and opacity */
- SLATE_ATTRIBUTE(FSlateColor, ColorAndOpacity)
- /** */
- SLATE_ARGUMENT(bool, AddDocumentation)
- SLATE_ARGUMENT(FMargin, DocumentationMargin)
- /** */
- SLATE_ARGUMENT(FString, DocumentationLink)
- /** */
- SLATE_ARGUMENT(FString, ExcerptName)
- /** */
- SLATE_ARGUMENT(bool, AlwaysShowFullToolTip)
- /** Arbitrary content to be displayed in the tool tip; overrides any text that may be set. */
- SLATE_DEFAULT_SLOT(FArguments, Content)
- SLATE_END_ARGS()
- /**
- * Construct this widget
- *
- * @param InArgs The declaration data for this widget
- */
- void Construct(const FArguments& InArgs);
- void Tick(const FGeometry& AllottedGeometry, const double InCurrentTime, const float InDeltaTime);
- bool IsInteractive() const;
- virtual const FText& GetTextTooltip() const
- {
- return TextContent.Get();
- }
- /**
- * Adds slots to the provided Vertical Box containing the documentation information.
- * If you specify not to add it (AddDocumentation = false) you may call this externally to do custom tooltip layout
- *
- * @param VerticalBox The vertical box to add it to
- */
- void AddDocumentation(TSharedPtr< SVerticalBox > VerticalBox);
- TSharedPtr< IDocumentationPage > GetDocumentationPage() { ReloadDocumentation(); return DocumentationPage; }
- TSharedPtr< SWidget > GetFullTipContent() { ReloadDocumentation(); return FullTipContent; }
- private:
- void ConstructSimpleTipContent();
- void ConstructFullTipContent();
- FReply ReloadDocumentation();
- void CreateExcerpt(FString FileSource, FString ExcerptName);
- private:
- /** Text block widget */
- TAttribute< FText > TextContent;
- TSharedPtr< SWidget > OverrideContent;
- FTextBlockStyle StyleInfo;
- FTextBlockStyle SubduedStyleInfo;
- FTextBlockStyle HyperlinkTextStyleInfo;
- FButtonStyle HyperlinkButtonStyleInfo;
- TAttribute< FSlateColor > ColorAndOpacity;
- /** The link to the documentation */
- FString DocumentationLink;
- FString ExcerptName;
- bool AlwaysShowFullToolTip;
- /** Content widget */
- TSharedPtr< SBox > WidgetContent;
- TSharedPtr< SWidget > SimpleTipContent;
- bool IsDisplayingDocumentationLink;
- TSharedPtr< SWidget > FullTipContent;
- TSharedPtr< IDocumentationPage > DocumentationPage;
- bool IsShowingFullTip;
- bool bAddDocumentation;
- FMargin DocumentationMargin;
- };
- }
|