docs: def __CheckValid(self, value):
          "check for validity of value"
          val = self.__val
          self.is_valid = True
          try:
              val = set_float(value)
              if self.__min is not None and (val < self.__min):
                  self.is_valid = False
                  val = self.__min
              if self.__max is not None and (val > self.__max):
                  self.is_valid = False
                  val = self.__max
          except:
              self.is_valid = False
          self.__bound_val = self.__val = val
          fgcol, bgcol = self.fgcol_valid, self.bgcol_valid
          if not self.is_valid:
              fgcol, bgcol = self.fgcol_invalid, self.bgcol_invalid
  
          self.SetForegroundColour(fgcol)
          self.SetBackgroundColour(bgcol)
          self.Refresh()