summaryrefslogtreecommitdiff
path: root/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Utils/UpperLeftWidgetHelper.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Utils/UpperLeftWidgetHelper.cs')
-rw-r--r--Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Utils/UpperLeftWidgetHelper.cs91
1 files changed, 91 insertions, 0 deletions
diff --git a/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Utils/UpperLeftWidgetHelper.cs b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Utils/UpperLeftWidgetHelper.cs
new file mode 100644
index 00000000..9e92fe2d
--- /dev/null
+++ b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Utils/UpperLeftWidgetHelper.cs
@@ -0,0 +1,91 @@
+using System;
+using UnityEngine;
+using UnityEditor;
+
+namespace AmplifyShaderEditor
+{
+ public class UpperLeftWidgetHelper
+ {
+ public int DrawWidget( ParentNode owner, int selectedIndex, GUIContent[] displayedOptions )
+ {
+ if( owner.DropdownEditing )
+ {
+ int newValue = owner.EditorGUIPopup( owner.DropdownRect, selectedIndex, displayedOptions, UIUtils.PropertyPopUp );
+ if( newValue != selectedIndex )
+ {
+ owner.DropdownEditing = false;
+ }
+ return newValue;
+ }
+ return selectedIndex;
+ }
+
+ public int DrawWidget( ParentNode owner, int selectedIndex, string[] displayedOptions )
+ {
+ if( owner.DropdownEditing )
+ {
+ int newValue = owner.EditorGUIPopup( owner.DropdownRect, selectedIndex, displayedOptions, UIUtils.PropertyPopUp );
+ if( newValue != selectedIndex )
+ {
+ owner.DropdownEditing = false;
+ }
+ return newValue;
+ }
+ return selectedIndex;
+ }
+
+ public int DrawWidget( ParentNode owner, int selectedIndex, string[] displayedOptions, int[] optionValues )
+ {
+ if( owner.DropdownEditing )
+ {
+ int newValue = owner.EditorGUIIntPopup( owner.DropdownRect, selectedIndex, displayedOptions, optionValues, UIUtils.PropertyPopUp );
+ if( newValue != selectedIndex )
+ {
+ owner.DropdownEditing = false;
+ }
+ return newValue;
+ }
+ return selectedIndex;
+ }
+
+ // GC free version
+ public void DrawWidget<TEnum>( ref TEnum selectedIndex, ParentNode owner, Action<ParentNode> callback ) where TEnum : struct
+ {
+ if( owner.DropdownEditing )
+ {
+ Enum asEnumType = selectedIndex as Enum;
+ if( asEnumType != null )
+ {
+ EditorGUI.BeginChangeCheck();
+ selectedIndex = ( owner.EditorGUIEnumPopup( owner.DropdownRect, asEnumType, UIUtils.PropertyPopUp ) as TEnum? ).Value;
+ if( EditorGUI.EndChangeCheck() )
+ {
+ owner.DropdownEditing = false;
+ if( callback != null )
+ callback( owner );
+ }
+ }
+ }
+ }
+
+ /*
+ * USE THIS OVERRIDE IN CASE THE NODE DOESN'T HAVE PREVIEW
+ */
+ //public override void AfterCommonInit()
+ //{
+ // base.AfterCommonInit();
+ // if( PaddingTitleLeft == 0 )
+ // {
+ // PaddingTitleLeft = Constants.PropertyPickerWidth + Constants.IconsLeftRightMargin;
+ // if( PaddingTitleRight == 0 )
+ // PaddingTitleRight = Constants.PropertyPickerWidth + Constants.IconsLeftRightMargin;
+ // }
+ //}
+
+
+ /*
+ * USE THE SOURCE CODE BELOW INTO THE NODE YOU WANT THE WIDGET TO SHOW
+ */
+ //private UpperLeftWidgetHelper m_upperLeftWidget = new UpperLeftWidgetHelper();
+ }
+}