/// <inheritoc/>
        protected internal override void Initialize(int layoutIndex)
        {
            if (property != null)
            {
                guiDistributionField              = new GUIVector2DistributionField(new GUIContent(title));
                guiDistributionField.OnChanged   += OnFieldValueChanged;
                guiDistributionField.OnConfirmed += OnFieldValueConfirm;
                guiDistributionField.OnFocusLost += OnFieldValueConfirm;

                layout.AddElement(layoutIndex, guiDistributionField);
            }
        }
        /// <inheritoc/>
        protected internal override void Initialize(int layoutIndex)
        {
            if (property != null)
            {
                guiDistributionField = new GUIVector2DistributionField(new GUIContent(title));
                guiDistributionField.OnCurveChanged += () =>
                {
                    StartUndo();
                    property.SetValue(guiDistributionField.Value);
                    state |= InspectableState.ModifyInProgress;
                    EndUndo();
                };

                guiDistributionField.OnConstantModified  += (x, y) => OnFieldValueChanged();
                guiDistributionField.OnConstantConfirmed += (rangeComp, vectorComp) =>
                {
                    OnFieldValueConfirm();

                    if (rangeComp == RangeComponent.Min)
                    {
                        StartUndo("min." + vectorComp.ToString());
                    }
                    else
                    {
                        StartUndo("max." + vectorComp.ToString());
                    }
                };
                guiDistributionField.OnConstantFocusChanged += (focus, rangeComp, vectorComp) =>
                {
                    if (focus)
                    {
                        if (rangeComp == RangeComponent.Min)
                        {
                            StartUndo("min." + vectorComp.ToString());
                        }
                        else
                        {
                            StartUndo("max." + vectorComp.ToString());
                        }
                    }
                    else
                    {
                        OnFieldValueConfirm();
                    }
                };

                layout.AddElement(layoutIndex, guiDistributionField);
            }
        }
 private static extern void Internal_create3(GUIVector2DistributionField managedInstance, string style);
 private static extern void Internal_create2(GUIVector2DistributionField managedInstance, LocString labelText, string style);
 private static extern void Internal_create0(GUIVector2DistributionField managedInstance, ref GUIContent labelContent, string style);