public void removeDelegate <T>(MyGUIEvent evt)
        {
            MyGUIWidgetEventTranslator trans;

            events.TryGetValue(typeof(T), out trans);
            if (trans != null)
            {
                trans.BoundEvent -= evt;
            }
        }
        public void addDelegate <T>(MyGUIEvent evt)
            where T : MyGUIWidgetEventTranslator, new()
        {
            MyGUIWidgetEventTranslator trans;

            events.TryGetValue(typeof(T), out trans);
            if (trans == null)
            {
                trans = new T();
                trans.initialize(widget);
                events.Add(typeof(T), trans);
            }
            trans.BoundEvent += evt;
        }