Example #1
0
        protected override void OnSingleInitialization()
        {
            ignored = DelegateSettings.IgnoredMethods;

            // initialize adding area and foldout keys
            adding       = new AddingData();
            kAdvanced    = id + "advanced";
            kAdd         = id + "add";
            kInvoke      = id + "invoke";
            headerString = string.Format("{0} ({1})", niceName, memberTypeName);

            // make sure delegate is not null
            if (memberValue == null)
            {
                memberValue = memberType.Instance <BaseDelegate>();
            }

            // initialize arguments data (used when invoking the delegate from the editor)
            int len = memberValue.ParamTypes.Length;

            argValues  = new object[len];
            argMembers = new EditorMember[len];

            for (int iLoop = 0; iLoop < len; iLoop++)
            {
                int i         = iLoop;
                var paramType = memberValue.ParamTypes[i];

                argValues[i] = paramType.GetDefaultValueEmptyIfString();

                var argMember = new ArgMember(
                    @getter: () => argValues[i],
                    @setter: x => argValues[i] = x,
                    @target: argValues,
                    @unityTarget: unityTarget,
                    @name: string.Format("({0})", paramType.GetNiceName()),
                    @id: id + i,
                    @dataType: paramType,
                    @attributes: null
                    );

                argMember.Target = rawTarget;

                argMembers[i] = argMember;
            }

#if DBG
            Log("Delegate drawer init. " + niceName);
#endif
        }
Example #2
0
        protected override void OnSingleInitialization()
        {
            adding     = new AddingData();
            kAdvanced  = RuntimeHelper.CombineHashCodes(id, "advanced");
            kAdd       = RuntimeHelper.CombineHashCodes(id, "add");
            kInvoke    = RuntimeHelper.CombineHashCodes(id, "invoke");
            kHeaderStr = string.Format("{0} ({1})", niceName, memberTypeName);

            if (memberValue == null)
            {
                memberValue = memberType.Instance <IBaseDelegate>();
            }

            int len = memberValue.ParamTypes.Length;

            argValues  = new object[len];
            argMembers = new EditorMember[len];

            for (int iLoop = 0; iLoop < len; iLoop++)
            {
                int i         = iLoop;
                var paramType = memberValue.ParamTypes[i];

                argValues[i] = paramType.GetDefaultValueEmptyIfString();

                var argMember = EditorMember.WrapGetSet(
                    @get: () => argValues[i],
                    @set: x => argValues[i] = x,
                    @rawTarget: argValues,
                    @unityTarget: unityTarget,
                    @name: string.Format("({0})", paramType.GetNiceName()),
                    @attributes: null,
                    @id: RuntimeHelper.CombineHashCodes(id, i),
                    @dataType: paramType
                    );

                argMember.RawTarget = rawTarget;
                argMembers[i]       = argMember;
            }

#if DBG
            Log("Delegate drawer init. " + niceName);
#endif
        }
Example #3
0
        protected override void OnSingleInitialization()
        {
            adding = new AddingData();

            kAdvanced  = RuntimeHelper.CombineHashCodes(id, "advanced");
            kAdd       = RuntimeHelper.CombineHashCodes(id, "add");
            kHeaderStr = string.Format("{0} ({1})", niceName, memberTypeName);

            if (memberValue == null)
            {
                memberValue = new uDelegate();
            }

            if (argValuesList == null)
            {
                argValuesList = new List <object[]>();
            }

            argMembersList = new List <EditorMember[]>();
#if DBG
            Log("Delegate drawer init. " + niceName);
#endif
        }