예제 #1
0
        void PrepareRenameEvent(MEventDef eventDef)
        {
            if (eventDef.IsVirtual())
            {
                throw new ApplicationException("Can't rename virtual events here");
            }
            var eventInfo = Event(eventDef);

            if (eventInfo.renamed)
            {
                return;
            }

            string eventName = eventInfo.oldName;

            if (!NameChecker.IsValidEventName(eventName))
            {
                eventName = eventInfo.suggestedName;
            }
            if (!NameChecker.IsValidEventName(eventName))
            {
                eventName = variableNameState.GetNewEventName(eventDef.EventDef);
            }
            variableNameState.AddEventName(eventName);
            eventInfo.Rename(eventName);

            RenameSpecialMethod(eventDef.AddMethod, "add_" + eventName);
            RenameSpecialMethod(eventDef.RemoveMethod, "remove_" + eventName);
            RenameSpecialMethod(eventDef.RaiseMethod, "raise_" + eventName);
        }
예제 #2
0
        public MEventDef Create(EventDef newEvent)
        {
            if (FindAny(newEvent) != null)
            {
                throw new ApplicationException("Can't add an event when it's already been added");
            }

            var eventDef = new MEventDef(newEvent, this, events.Count);

            Add(eventDef);
            TypeDef.Events.Add(newEvent);
            return(eventDef);
        }
예제 #3
0
 public void Add(MEventDef e) => events.Add(e);
예제 #4
0
 public EventInfo Event(MEventDef evt) => memberInfos.Event(evt);
예제 #5
0
 public void Add(MEventDef evt)
 {
     allEventInfos[evt] = new EventInfo(evt);
 }
예제 #6
0
 public EventInfo(MEventDef eventDef)
     : base(eventDef)
 {
 }
예제 #7
0
 public EventInfo Event(MEventDef evt)
 {
     return(allEventInfos[evt]);
 }
예제 #8
0
 public bool TryGetEvent(MEventDef e, out EventInfo info)
 {
     return(allEventInfos.TryGetValue(e, out info));
 }
예제 #9
0
 public EventInfo Event(MEventDef evt)
 {
     return(memberInfos.Event(evt));
 }
예제 #10
0
 public EventInfo Event(MEventDef evt) => allEventInfos[evt];
예제 #11
0
 public bool TryGetEvent(MEventDef e, out EventInfo info) => allEventInfos.TryGetValue(e, out info);