          Sets the width of the control. Default is to auto expand
      blank_nones: bool, optional
          Sets selected values to an empty string rather than None if this is true. Default is true
      """
      def __init__(self, parent, title, dtype, default,
                   selected_value=None, choices=None, is_radio=False, rounding=None,
                   min_max=None, sysbrowser=None, helptext=None, option_columns=3, label_width=20,
                   checkbuttons_frame=None, control_width=None, blank_nones=True):
          logger.debug("Initializing %s: (parent: %s, title: %s, dtype: %s, default: %s, "
                       "selected_value: %s, choices: %s, is_radio: %s, rounding: %s, min_max: %s, "
                       "sysbrowser: %s, helptext: %s, option_columns: %s, label_width: %s, "
                       "checkbuttons_frame: %s, control_width: %s, blank_nones: %s)",
                       self.__class__.__name__, parent, title, dtype, default, selected_value,
                       choices, is_radio, rounding, min_max, sysbrowser, helptext, option_columns,
                       label_width, checkbuttons_frame, control_width, blank_nones)
  
          self.title = title
          self.default = default
          self.helptext = self.format_helptext(helptext)
          self.helpset = False
          self.label_width = label_width
          self.filebrowser = None
  
          self.frame = self.control_frame(parent)
 
</s> remove     control_width: int, optional
        Sets the width of the control. Default is to auto expand
    blank_nones: bool, optional
        Sets selected values to an empty string rather than None if this is true. Default is true
 </s> add     blank_nones: bool
        Sets selected values to an empty string rather than None if this is true. </s> remove     def build_one_control(self, choices, dtype, rounding, min_max,
                          sysbrowser, option_columns, control_width):
 </s> add     def build_one_control(self): </s> remove         logger.debug("Build control: (title: '%s', control: %s, choices: %s, dtype: %s, "
                     "rounding: %s, sysbrowser: %s, min_max: %s: option_columns: %s, "
                     "control_width: %s)", self.title, self.control, choices, dtype, rounding,
                     sysbrowser, min_max, option_columns, control_width)
        if self.control == ttk.Scale:
            ctl = self.slider_control(dtype, rounding, min_max)
        elif self.control == ttk.Radiobutton:
            ctl = self.radio_control(choices, option_columns)
        elif self.control == ttk.Checkbutton:
 </s> add         logger.debug("Build control: '%s')", self.option.name)
        if self.option.control == ttk.Scale:
            ctl = self.slider_control()
        elif self.option.control == ttk.Radiobutton:
            ctl = self.radio_control()
        elif self.option.control == ttk.Checkbutton: </s> remove     def __init__(self, parent, options, label_width=20, columns=1, option_columns=4,
                 header_text=None, blank_nones=True):
 </s> add     Parameters
    ----------
    parent: tk object
        Parent widget that should hold this control panel
    options: list of  ControlPanelOptions objects
        The list of controls that are to be built into this control panel
    label_width: int, optional
        The width that labels for controls should be set to.
        Defaults to 20
    columns: int, optional
        The maximum number of columns that this control panel should be able
        to accomodate. Setting to 1 means that there will only be 1 column
        regardless of how wide the control panel is. Higher numbers will
        dynamically fill extra columns if space permits. Defaults to 1
    option_columns: int, optional
        For checkbutton and radiobutton containers, how many options should
        be displayed on each row. Defaults to 4
    header_text: str, optional
        If provided, will place an information box at the top of the control
        panel with these contents.
    blank_nones: bool, optional
        How the control panel should handle Nones. If set to True then Nones
        will be converted to empty strings. Default: False
    """

    def __init__(self, parent, options,  # pylint:disable=too-many-arguments
                 label_width=20, columns=1, option_columns=4, header_text=None, blank_nones=True): </s> remove         if self.helptext is not None:
            get_tooltip(lbl, text=self.helptext, wraplength=600)
        logger.debug("Built control label: '%s'", self.title)
 </s> add         if self.option.helptext is not None:
            get_tooltip(lbl, text=self.option.helptext, wraplength=600)
        logger.debug("Built control label: (widget: '%s', title: '%s'",
                     self.option.name, self.option.title)
    def __init__(self, parent, option, option_columns, label_width,  # pylint: disable=too-many-arguments
                 checkbuttons_frame, blank_nones):
        logger.debug("Initializing %s: (parent: %s, option: %s, option_columns: %s, "
                     "label_width: %s, checkbuttons_frame: %s, blank_nones: %s)",
                     self.__class__.__name__, parent, option, option_columns, label_width,
                     checkbuttons_frame, blank_nones)

        self.option = option
        self.option_columns = option_columns
          Sets the width of the control. Default is to auto expand
      blank_nones: bool, optional
          Sets selected values to an empty string rather than None if this is true. Default is true
      """
    def __init__(self, parent, option, option_columns, label_width,  # pylint: disable=too-many-arguments
                 checkbuttons_frame, blank_nones):
        logger.debug("Initializing %s: (parent: %s, option: %s, option_columns: %s, "
                     "label_width: %s, checkbuttons_frame: %s, blank_nones: %s)",
                     self.__class__.__name__, parent, option, option_columns, label_width,
                     checkbuttons_frame, blank_nones)

        self.option = option
        self.option_columns = option_columns
    def __init__(self, parent, option, option_columns, label_width,  # pylint: disable=too-many-arguments
                 checkbuttons_frame, blank_nones):
        logger.debug("Initializing %s: (parent: %s, option: %s, option_columns: %s, "
                     "label_width: %s, checkbuttons_frame: %s, blank_nones: %s)",
                     self.__class__.__name__, parent, option, option_columns, label_width,
                     checkbuttons_frame, blank_nones)

        self.option = option
        self.option_columns = option_columns
    def __init__(self, parent, option, option_columns, label_width,  # pylint: disable=too-many-arguments
                 checkbuttons_frame, blank_nones):
        logger.debug("Initializing %s: (parent: %s, option: %s, option_columns: %s, "
                     "label_width: %s, checkbuttons_frame: %s, blank_nones: %s)",
                     self.__class__.__name__, parent, option, option_columns, label_width,
                     checkbuttons_frame, blank_nones)

        self.option = option
        self.option_columns = option_columns
    def __init__(self, parent, option, option_columns, label_width,  # pylint: disable=too-many-arguments
                 checkbuttons_frame, blank_nones):
        logger.debug("Initializing %s: (parent: %s, option: %s, option_columns: %s, "
                     "label_width: %s, checkbuttons_frame: %s, blank_nones: %s)",
                     self.__class__.__name__, parent, option, option_columns, label_width,
                     checkbuttons_frame, blank_nones)

        self.option = option
        self.option_columns = option_columns
    def __init__(self, parent, option, option_columns, label_width,  # pylint: disable=too-many-arguments
                 checkbuttons_frame, blank_nones):
        logger.debug("Initializing %s: (parent: %s, option: %s, option_columns: %s, "
                     "label_width: %s, checkbuttons_frame: %s, blank_nones: %s)",
                     self.__class__.__name__, parent, option, option_columns, label_width,
                     checkbuttons_frame, blank_nones)

        self.option = option
        self.option_columns = option_columns
    def __init__(self, parent, option, option_columns, label_width,  # pylint: disable=too-many-arguments
                 checkbuttons_frame, blank_nones):
        logger.debug("Initializing %s: (parent: %s, option: %s, option_columns: %s, "
                     "label_width: %s, checkbuttons_frame: %s, blank_nones: %s)",
                     self.__class__.__name__, parent, option, option_columns, label_width,
                     checkbuttons_frame, blank_nones)

        self.option = option
        self.option_columns = option_columns
    def __init__(self, parent, option, option_columns, label_width,  # pylint: disable=too-many-arguments
                 checkbuttons_frame, blank_nones):
        logger.debug("Initializing %s: (parent: %s, option: %s, option_columns: %s, "
                     "label_width: %s, checkbuttons_frame: %s, blank_nones: %s)",
                     self.__class__.__name__, parent, option, option_columns, label_width,
                     checkbuttons_frame, blank_nones)

        self.option = option
        self.option_columns = option_columns
    def __init__(self, parent, option, option_columns, label_width,  # pylint: disable=too-many-arguments
                 checkbuttons_frame, blank_nones):
        logger.debug("Initializing %s: (parent: %s, option: %s, option_columns: %s, "
                     "label_width: %s, checkbuttons_frame: %s, blank_nones: %s)",
                     self.__class__.__name__, parent, option, option_columns, label_width,
                     checkbuttons_frame, blank_nones)

        self.option = option
        self.option_columns = option_columns
    def __init__(self, parent, option, option_columns, label_width,  # pylint: disable=too-many-arguments
                 checkbuttons_frame, blank_nones):
        logger.debug("Initializing %s: (parent: %s, option: %s, option_columns: %s, "
                     "label_width: %s, checkbuttons_frame: %s, blank_nones: %s)",
                     self.__class__.__name__, parent, option, option_columns, label_width,
                     checkbuttons_frame, blank_nones)

        self.option = option
        self.option_columns = option_columns
    def __init__(self, parent, option, option_columns, label_width,  # pylint: disable=too-many-arguments
                 checkbuttons_frame, blank_nones):
        logger.debug("Initializing %s: (parent: %s, option: %s, option_columns: %s, "
                     "label_width: %s, checkbuttons_frame: %s, blank_nones: %s)",
                     self.__class__.__name__, parent, option, option_columns, label_width,
                     checkbuttons_frame, blank_nones)

        self.option = option
        self.option_columns = option_columns
    def __init__(self, parent, option, option_columns, label_width,  # pylint: disable=too-many-arguments
                 checkbuttons_frame, blank_nones):
        logger.debug("Initializing %s: (parent: %s, option: %s, option_columns: %s, "
                     "label_width: %s, checkbuttons_frame: %s, blank_nones: %s)",
                     self.__class__.__name__, parent, option, option_columns, label_width,
                     checkbuttons_frame, blank_nones)

        self.option = option
        self.option_columns = option_columns
    def __init__(self, parent, option, option_columns, label_width,  # pylint: disable=too-many-arguments
                 checkbuttons_frame, blank_nones):
        logger.debug("Initializing %s: (parent: %s, option: %s, option_columns: %s, "
                     "label_width: %s, checkbuttons_frame: %s, blank_nones: %s)",
                     self.__class__.__name__, parent, option, option_columns, label_width,
                     checkbuttons_frame, blank_nones)

        self.option = option
        self.option_columns = option_columns
    def __init__(self, parent, option, option_columns, label_width,  # pylint: disable=too-many-arguments
                 checkbuttons_frame, blank_nones):
        logger.debug("Initializing %s: (parent: %s, option: %s, option_columns: %s, "
                     "label_width: %s, checkbuttons_frame: %s, blank_nones: %s)",
                     self.__class__.__name__, parent, option, option_columns, label_width,
                     checkbuttons_frame, blank_nones)

        self.option = option
        self.option_columns = option_columns
    def __init__(self, parent, option, option_columns, label_width,  # pylint: disable=too-many-arguments
                 checkbuttons_frame, blank_nones):
        logger.debug("Initializing %s: (parent: %s, option: %s, option_columns: %s, "
                     "label_width: %s, checkbuttons_frame: %s, blank_nones: %s)",
                     self.__class__.__name__, parent, option, option_columns, label_width,
                     checkbuttons_frame, blank_nones)

        self.option = option
        self.option_columns = option_columns
    def __init__(self, parent, option, option_columns, label_width,  # pylint: disable=too-many-arguments
                 checkbuttons_frame, blank_nones):
        logger.debug("Initializing %s: (parent: %s, option: %s, option_columns: %s, "
                     "label_width: %s, checkbuttons_frame: %s, blank_nones: %s)",
                     self.__class__.__name__, parent, option, option_columns, label_width,
                     checkbuttons_frame, blank_nones)

        self.option = option
        self.option_columns = option_columns
          self.helpset = False
          self.label_width = label_width
          self.filebrowser = None
  
          self.frame = self.control_frame(parent)
keep keep keep keep replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace keep keep keep keep keep
 GUI Fixups

- GUI Bugfix: Startup options - fix min/max thresholds
- GUI Bugfix: Make console read-only
- GUI Bugfix: Rightclick menu for recreated widgets
- Enhancement: Create ControlPanelOptions Class + migrate options 
lib/gui/control_helper.py