Files
UnrealEngineUWP/Engine/Source/Editor/MaterialEditor/Private/MaterialEditorInstanceDetailCustomization.h
Allan Bentham 2044edb26d Fix missing Font sample parameter in material instances.
#TTP 340962 - LIVE: RENDERING: Font Sample Parameter Behavior in MIC
Created sub struct for UDEditorFontParameterValue to contain the font parameter fields.
Removed font specific widget construction as it can now use the generic CreateParameterValueWidget function to build the UI.

[CL 2238120 by Allan Bentham in Main branch]
2014-07-31 06:03:12 -04:00

69 lines
3.1 KiB
C++

// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved.
#pragma once
DECLARE_DELEGATE_OneParam(FGetShowHiddenParameters, bool&);
/*-----------------------------------------------------------------------------
FMaterialInstanceParameterDetails
-----------------------------------------------------------------------------*/
class FMaterialInstanceParameterDetails : public IDetailCustomization
{
public:
/** Makes a new instance of this detail layout class for a specific detail view requesting it */
static TSharedRef<class IDetailCustomization> MakeInstance(UMaterialEditorInstanceConstant* MaterialInstance, FGetShowHiddenParameters InShowHiddenDelegate);
/** Constructor */
FMaterialInstanceParameterDetails(UMaterialEditorInstanceConstant* MaterialInstance, FGetShowHiddenParameters InShowHiddenDelegate);
/** IDetailCustomization interface */
virtual void CustomizeDetails(IDetailLayoutBuilder& DetailLayout) override;
static TOptional<float> OnGetValue(TSharedRef<IPropertyHandle> PropertyHandle);
static void OnValueCommitted(float NewValue, ETextCommit::Type CommitType, TSharedRef<IPropertyHandle> PropertyHandle);
private:
/** Builds the custom parameter groups category */
void CreateGroupsWidget(TSharedRef<IPropertyHandle> ParameterGroupsProperty, class IDetailCategoryBuilder& GroupsCategory);
/** Builds the widget for an individual parameter group */
void CreateSingleGroupWidget(struct FEditorParameterGroup& ParameterGroup, TSharedPtr<IPropertyHandle> ParameterGroupProperty, class IDetailGroup& DetailGroup );
/** These methods generate the custom widgets for the various parameter types */
void CreateParameterValueWidget(class UDEditorParameterValue* Parameter, TSharedPtr<IPropertyHandle> ParameterProperty, IDetailGroup& DetailGroup );
void CreateMaskParameterValueWidget(class UDEditorParameterValue* Parameter, TSharedPtr<IPropertyHandle> ParameterProperty, IDetailGroup& DetailGroup );
/** Returns true if the parameter is in the visible expressions list */
bool IsVisibleExpression(class UDEditorParameterValue* Parameter);
/** Returns true if the parameter should be displayed */
EVisibility ShouldShowExpression(class UDEditorParameterValue* Parameter) const;
/** Returns true if the parameter is being overridden */
bool IsOverriddenExpression(class UDEditorParameterValue* Parameter);
/** Gets the expression description of this parameter from the the base material */
FString GetParameterExpressionDescription(class UDEditorParameterValue* Parameter) const;
/**
* Called when a parameter is overridden;
*/
void OnOverrideParameter(bool NewValue, class UDEditorParameterValue* Parameter);
/** Reset to default implementation. Resets Parameter to default */
void ResetToDefault( class UDEditorParameterValue* Parameter );
/** Returns true if the refraction options should be displayed */
EVisibility ShouldShowMaterialRefractionSettings() const;
private:
/** Object that stores all of the possible parameters we can edit */
UMaterialEditorInstanceConstant* MaterialEditorInstance;
/** Delegate to call to determine if hidden parameters should be shown */
FGetShowHiddenParameters ShowHiddenDelegate;
};