      def resize_frame(self, event):
          """ Resize the options frame to fit the canvas """
          logger.debug("Resize Config Frame")
          canvas_width = event.width
          self.canvas.itemconfig(self.optscanvas, width=canvas_width)
          self.optsframe.rearrange_columns(canvas_width)
          logger.debug("Resized Config Frame")
  
      def checkbuttons_frame(self, frame):
          """ Build and format frame for holding the check buttons
 
</s> remove         self.canvas.configure(scrollregion=self.canvas.bbox("all"))
 </s> add         self._canvas.configure(scrollregion=self._canvas.bbox("all")) </s> remove         self.add_scrollbar()
        self.canvas.bind("<Configure>", self.resize_frame)
 </s> add         if scrollbar:
            self.add_scrollbar()
        self._canvas.bind("<Configure>", self.resize_frame) </s> remove     def build_panel(self, blank_nones):
 </s> add     def build_panel(self, blank_nones, scrollbar): </s> remove         self.canvas.config(yscrollcommand=scrollbar.set)
 </s> add         self._canvas.config(yscrollcommand=scrollbar.set) </s> remove         scrollbar = ttk.Scrollbar(self, command=self.canvas.yview)
 </s> add         scrollbar = ttk.Scrollbar(self, command=self._canvas.yview)
        self._canvas.itemconfig(self._optscanvas, width=canvas_width)
      def resize_frame(self, event):
          """ Resize the options frame to fit the canvas """
          logger.debug("Resize Config Frame")
          canvas_width = event.width
        self._canvas.itemconfig(self._optscanvas, width=canvas_width)
          self.optsframe.rearrange_columns(canvas_width)
          logger.debug("Resized Config Frame")
  
      def checkbuttons_frame(self, frame):
          """ Build and format frame for holding the check buttons
keep keep keep keep 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