Example #1
0
    private void LinkEvents()
    {
        bool failed = false;

        if (!DoesObjectExist(_eventManager))
        {
            _eventManager = FindObjectOfType <EventManager>();

            if (!DoesObjectExist(_eventManager))
            {
                Debug.Log("WARNING: Cannot find Event Manager in scene!!!");
                failed = true;
                return;
            }
            else
            {
                _eventManager = FindObjectOfType <EventManager>();
            }
        }

        if (!failed)
        {
            EventLinker.LinkEvents(this, _eventManager);
        }
    }
Example #2
0
        private EventLinker EnsureEventLinker <T>(string eventName)
        {
            var eventLinker = GetEventLinker <T>(eventName);

            if (eventLinker == null)
            {
                eventLinker = new EventLinker(typeof(T));
                _events.Add(eventName, eventLinker);
            }
            return(eventLinker);
        }
        private static void OnEventsChanged([NotNull] DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            if (DesignerProperties.GetIsInDesignMode(d)) return;

            bool simpleMode = false;

            var newValue = e.NewValue as string;
            if(newValue == null) return;

            if (newValue.StartsWith("SimpleMode"))
            {
                simpleMode = true;
                newValue = newValue.Remove(0, 10);
            }

            var oldValue = e.OldValue as string;

            if (oldValue != null)
            {
                foreach (EventLinker linker in
                    EventLinkerCollection.Where(ele => ele.Commands == oldValue && Equals(ele.Target, d)))
                {
                    linker.Commands = newValue;
                    linker.SimpleMode = simpleMode;
                    linker.Bind();
                    return;
                }
            }

            if (newValue == null) return;

            var temp = new EventLinker(newValue, d, simpleMode);
            EventLinkerCollection.Add(temp);
            temp.Bind();
        }