// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved. #pragma once #include "IPropertyTableCustomColumn.h" #include "Editor/PropertyEditor/Private/UserInterface/PropertyTable/PropertyTableConstants.h" /** * A property table custom column used to display text cells in a chosen font */ class FCustomFontColumn : public IPropertyTableCustomColumn { public: FCustomFontColumn(FSlateFontInfo InFont = FEditorStyle::GetFontStyle( PropertyTableConstants::NormalFontStyle ), FOnClicked InOnChangeFontButtonClicked = NULL, FOnInt32ValueCommitted InOnFontSizeValueCommitted = NULL) : Font(InFont) , OnChangeFontButtonClicked(InOnChangeFontButtonClicked) , OnFontSizeValueCommitted(InOnFontSizeValueCommitted) {} /** Begin IPropertyTableCustomColumn interface */ virtual bool Supports( const TSharedRef< IPropertyTableColumn >& Column, const TSharedRef< IPropertyTableUtilities >& Utilities ) const OVERRIDE; virtual TSharedPtr< SWidget > CreateColumnLabel( const TSharedRef< IPropertyTableColumn >& Column, const TSharedRef< IPropertyTableUtilities >& Utilities, const FName& Style ) const OVERRIDE; virtual TSharedPtr< IPropertyTableCellPresenter > CreateCellPresenter( const TSharedRef< IPropertyTableCell >& Cell, const TSharedRef< IPropertyTableUtilities >& Utilities, const FName& Style ) const OVERRIDE; /** End IPropertyTableCustomColumn interface */ private: /** Font to use for this column's cells */ FSlateFontInfo Font; /** List of properties that this Custom Font Column should be used to display */ TArray SupportedProperties; /** Function to call when Change Font button clicked */ FOnClicked OnChangeFontButtonClicked; /** Function to call when Font Size SpinBox's Value is committed */ FOnInt32ValueCommitted OnFontSizeValueCommitted; public: void SetFont(FSlateFontInfo InFont) { Font = InFont; } void AddSupportedProperty(UProperty* Property) { SupportedProperties.Add(Property); } void SetOnChangeFontButtonClicked(FOnClicked InOnClicked) { OnChangeFontButtonClicked = InOnClicked; } void SetOnFontSizeValueCommitted(FOnInt32ValueCommitted InOnFontSizeValueCommitted) { OnFontSizeValueCommitted = InOnFontSizeValueCommitted; } };