  
          if sysbrowser is not None:
              self.add_browser_buttons(frame, sysbrowser, var)
  
          ctlkwargs = {'variable': var} if control == tk.Checkbutton else {'textvariable': var}
          packkwargs = {'anchor': tk.W} if control == tk.Checkbutton else {'fill': tk.X}
  
          if control == ttk.Combobox: #TODO: Remove this hacky fix to force the width of the frame
              ctlkwargs['width'] = 40
  
          ctl = control(frame, **ctlkwargs)
          
          if control == ttk.Combobox:
              ctl['values'] = [choice for choice in choices]
          
 
</s> remove         
        ctl.pack(padx=5, pady=5, **packkwargs)
 </s> add  </s> remove         var = tk.BooleanVar(frame) if control == tk.Checkbutton else tk.StringVar(frame)
 </s> add         var = tk.BooleanVar(
            frame) if control == ttk.Checkbutton else tk.StringVar(frame) </s> remove         ctlframe = self.build_control_frame(option_frame)
        
        dflt = option.get('default', False) if ctl == tk.Checkbutton else option.get('default', '')
        choices = option['choices'] if ctl == ttk.Combobox else None

        self.build_control_label(ctlframe, ctltitle)
        option['value'] = self.build_control(ctlframe, ctl, dflt, ctlhelp, choices, sysbrowser)

    def build_control_frame(self, option_frame):
        ''' Build the frame to hold the control '''
        frame = tk.Frame(option_frame)
        frame.pack(fill=tk.X)
 </s> add         ctlframe = self.build_one_control_frame()
        dflt = self.option.get('default', '')
        dflt = self.option.get('default', False) if ctl == ttk.Checkbutton else dflt
        choices = self.option['choices'] if ctl == ttk.Combobox else None

        self.build_one_control_label(ctlframe, ctltitle)
        self.option['value'] = self.build_one_control(ctlframe,
                                                      ctl,
                                                      dflt,
                                                      ctlhelp,
                                                      choices,
                                                      sysbrowser)

    def build_one_control_frame(self):
        """ Build the frame to hold the control """
        frame = ttk.Frame(self.option_frame)
        frame.pack(fill=tk.X, expand=True) </s> remove         self.gui.bind_help(ctl, helptext)
        return(var)
 </s> add         ctl.pack(padx=5, pady=5, **packkwargs)
        Tooltip(ctl, text=helptext, wraplength=200)
        return var </s> remove     @staticmethod
    def update_scrollbar(event, canvas):
        canvas.configure(scrollregion=canvas.bbox('all'))

# Build the Right Frame Options
    def build_tabs(self, option, option_frame):
        ''' Build the correct control type for the option passed through '''
        ctl = option['control']
        ctltitle = option['control_title']
        sysbrowser = option['filesystem_browser']
        ctlhelp = ' '.join(option.get('help', '').split())
 </s> add     def resize_frame(self, event):
        """ Resize the options frame to fit the canvas """
        canvas_width = event.width
        self.canvas.itemconfig(self.optscanvas, width=canvas_width)

class OptionControl(object):
    """ Build the correct control for the option parsed and place it on the
    frame """

    def __init__(self, utils, option, option_frame):
        self.utils = utils
        self.option = option
        self.option_frame = option_frame

    def build_full_control(self):
        """ Build the correct control type for the option passed through """
        ctl = self.option['control']
        ctltitle = self.option['control_title']
        sysbrowser = self.option['filesystem_browser']
        ctlhelp = ' '.join(self.option.get('help', '').split())
        ctlkwargs = {'variable': var} if control == ttk.Checkbutton else {
            'textvariable': var}
        packkwargs = {'anchor': tk.W} if control == ttk.Checkbutton else {
            'fill': tk.X, 'expand': True}
  
          if sysbrowser is not None:
              self.add_browser_buttons(frame, sysbrowser, var)
  
        ctlkwargs = {'variable': var} if control == ttk.Checkbutton else {
            'textvariable': var}
        packkwargs = {'anchor': tk.W} if control == ttk.Checkbutton else {
            'fill': tk.X, 'expand': True}
        ctlkwargs = {'variable': var} if control == ttk.Checkbutton else {
            'textvariable': var}
        packkwargs = {'anchor': tk.W} if control == ttk.Checkbutton else {
            'fill': tk.X, 'expand': True}
        ctlkwargs = {'variable': var} if control == ttk.Checkbutton else {
            'textvariable': var}
        packkwargs = {'anchor': tk.W} if control == ttk.Checkbutton else {
            'fill': tk.X, 'expand': True}
        ctlkwargs = {'variable': var} if control == ttk.Checkbutton else {
            'textvariable': var}
        packkwargs = {'anchor': tk.W} if control == ttk.Checkbutton else {
            'fill': tk.X, 'expand': True}
        ctlkwargs = {'variable': var} if control == ttk.Checkbutton else {
            'textvariable': var}
        packkwargs = {'anchor': tk.W} if control == ttk.Checkbutton else {
            'fill': tk.X, 'expand': True}
        ctlkwargs = {'variable': var} if control == ttk.Checkbutton else {
            'textvariable': var}
        packkwargs = {'anchor': tk.W} if control == ttk.Checkbutton else {
            'fill': tk.X, 'expand': True}
          ctl = control(frame, **ctlkwargs)
          
          if control == ttk.Combobox:
              ctl['values'] = [choice for choice in choices]
          
keep keep keep keep replace replace replace replace replace replace keep keep keep keep keep
 GUI v0.2.1b (#352)

* Code refactor

* Console Added

* Add graphing with matplotlib

* Add GUI preview support

* Improve import handling.

* Add GUI integration for tools.py (Launch tools.py with the gui command)

* Reformat to conform to PEP8.

* Add Tooltips, 

* Make panels user adjustable

* Fix convert.py Sharpen default value 
scripts/gui.py