  
      def __init__(self, parent, options,  # pylint:disable=too-many-arguments
                   label_width=20, columns=1, option_columns=4, header_text=None, blank_nones=True):
          logger.debug("Initializing %s: (parent: '%s', options: %s, label_width: %s, columns: %s, "
                       "option_columns: %s, header_text: %s, blank_nones: %s)",
                       self.__class__.__name__, parent, options, label_width, columns,
                       option_columns, header_text, blank_nones)
          super().__init__(parent)
  
          self.pack(side=tk.TOP, fill=tk.BOTH, expand=True)
  
          self.options = options
 
</s> remove                  label_width=20, columns=1, option_columns=4, header_text=None, blank_nones=True):
 </s> add                  label_width=20, columns=1, max_columns=4, option_columns=4, header_text=None,
                 blank_nones=True, scrollbar=True): </s> remove     def __init__(self, parent, columns):
        logger.debug("Initializing: %s: (parent: %s, columns: %s)", self.__class__.__name__,
                     parent, columns)
        self.max_columns = 4
 </s> add     def __init__(self, parent, initial_columns, max_columns):
        logger.debug("Initializing: %s: (parent: %s, initial_columns: %s, max_columns: %s)",
                     self.__class__.__name__, parent, initial_columns, max_columns)
        self.max_columns = max_columns
        self.columns = initial_columns
        self.parent = parent
#        self.columns = min(columns, self.max_columns) </s> remove         self.canvas = tk.Canvas(self, bd=0, highlightthickness=0)
        self.canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
 </s> add         self._canvas = tk.Canvas(self, bd=0, highlightthickness=0)
        self._canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
                     "max_columns: %s, option_columns: %s, header_text: %s, blank_nones: %s, "
                     "scrollbar: %s)",
                     self.__class__.__name__, parent, options, label_width, columns, max_columns,
                     option_columns, header_text, blank_nones, scrollbar)
  
      def __init__(self, parent, options,  # pylint:disable=too-many-arguments
                   label_width=20, columns=1, option_columns=4, header_text=None, blank_nones=True):
          logger.debug("Initializing %s: (parent: '%s', options: %s, label_width: %s, columns: %s, "
                     "max_columns: %s, option_columns: %s, header_text: %s, blank_nones: %s, "
                     "scrollbar: %s)",
                     self.__class__.__name__, parent, options, label_width, columns, max_columns,
                     option_columns, header_text, blank_nones, scrollbar)
                     "max_columns: %s, option_columns: %s, header_text: %s, blank_nones: %s, "
                     "scrollbar: %s)",
                     self.__class__.__name__, parent, options, label_width, columns, max_columns,
                     option_columns, header_text, blank_nones, scrollbar)
                     "max_columns: %s, option_columns: %s, header_text: %s, blank_nones: %s, "
                     "scrollbar: %s)",
                     self.__class__.__name__, parent, options, label_width, columns, max_columns,
                     option_columns, header_text, blank_nones, scrollbar)
          super().__init__(parent)
  
          self.pack(side=tk.TOP, fill=tk.BOTH, expand=True)
  
          self.options = options
keep keep keep keep replace replace replace keep keep keep keep keep
 Core updates (#982)

* plugins.extract.align
  - Expose normalization method

* lib.gui core updates
  - Minor updates to support future development. 
lib/gui/control_helper.py