|
|
- 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();
- }
- }
|