public bool RegisterDisabler(UIElementDisabler disabler)
 {
     bool result = false;
     if (!string.IsNullOrEmpty(disabler.UIElementID) && (!disablerMap.ContainsKey(disabler.UIElementID) || disabler.GiveUniqueID))
     {
         if (disablerMap.ContainsKey(disabler.UIElementID))
         {
             int num = 0;
             string text;
             do
             {
                 text = $"{disabler.UIElementID}_{num}";
                 num++;
             }
             while (disablerMap.ContainsKey(text));
             disabler.UIElementID = text;
         }
         disablerMap[disabler.UIElementID] = disabler;
         result = true;
         if (disabledElements.ContainsKey(disabler.UIElementID))
         {
             disabler.DisableElement(disabledElements[disabler.UIElementID]);
         }
         else
         {
             foreach (string key in disabledGroups.Keys)
             {
                 if (disablerGroupMap.ContainsKey(key) && disablerGroupMap[key].ContainsElement(disabler))
                 {
                     disabler.DisableElement(disabledGroups[key]);
                 }
             }
         }
         if (isShowingDebugLabels)
         {
             disabler.ShowDebugIDLabel();
         }
     }
     return result;
 }