/**
  * Remove a screen.
  *
  * @access public
  *
  * @param string $object_type Object type, set true to remove all screens.
  * @param string $id          Screen ID to remove, set true to remove all screens from an object.
  * @param string $object_name Object name (for post types and taxonomies), set true to remove to all objects from an object type.
  */
 public function remove_screen($object_type, $id, $object_name = null)
 {
     if (true === $object_type) {
         // Remove all screens
         self::$screens = array();
     } elseif (true === $object_name) {
         // Remove all screens for an object type
         if (isset(self::$screens[$object_type])) {
             unset(self::$screens[$object_type]);
         }
     } else {
         if (empty($object_name) && !empty($object_type)) {
             $object_name = '_' . $object_type;
             // Default to _object_type for internal handling
         }
         if (true === $id && null !== $object_name) {
             // Remove all screens for an object type
             if (isset(self::$screens[$object_type][$object_name])) {
                 unset(self::$screens[$object_type][$object_name]);
             }
         } elseif (isset(self::$screens[$object_type][$object_name][$id])) {
             // Remove screen from object type and name
             unset(self::$screens[$object_type][$object_name][$id]);
         }
     }
 }