          ''' Add a scrollbar to the options frame '''
          scrollbar = tk.Scrollbar(frame, command=canvas.yview)
          scrollbar.pack(side=tk.LEFT, fill='y')
          canvas.configure(yscrollcommand = scrollbar.set)
          canvas.bind('<Configure>', lambda event, opt_canvas=canvas: self.update_scrollbar(event, opt_canvas))
  
      @staticmethod
      def update_scrollbar(event, canvas):
          canvas.configure(scrollregion=canvas.bbox('all'))
  
 
</s> remove         return opts_frame
 </s> add         return optsframe </s> remove         opts_frame = tk.Frame(canvas)
        canvas.create_window((0,0), window=opts_frame, anchor=tk.NW)
 </s> add         optsframe = tk.Frame(canvas)
        canvas.create_window((0,0), window=optsframe, anchor=tk.NW) </s> remove     def build_tabs(self, option, page):
 </s> add     def build_tabs(self, option, option_frame): </s> remove     @staticmethod
    def add_frame_seperator(page):
        ''' Add a seperator between left and right frames '''
        separator = tk.Frame(page, width=2, bd=1, relief=tk.SUNKEN)
        separator.pack(fill=tk.Y, padx=5, side=tk.LEFT)

# Left Frame stuff
    def add_left_frame(self, page, title):
        ''' Add help display and execute button to the left frame of each page '''
        frame = tk.Frame(page)
 </s> add     def bind_help(self, control, helptext):
        ''' Controls the help text displayed on mouse hover '''
        for action in ('<Enter>', '<FocusIn>', '<Leave>', '<FocusOut>'):
            helptext = helptext if action in ('<Enter>', '<FocusIn>') else ''
            control.bind(action, lambda event, txt=helptext: self.helptext.set(txt))

    def execute_task(self, command):
        ''' Execute the task in Faceswap.py '''
        self.task.execute_script(self.opts, command, self.parser, self.statustext)

class ActionFrame(object):
    '''Action Frame - Displays information and action controls '''
    def __init__(self, gui, page, command):
        self.gui = gui
        self.page = page
        self.command = command
        self.title = command.title()

    def build_frame(self):
        ''' Add help display and Action buttons to the left frame of each page '''
        frame = tk.Frame(self.page) </s> remove         frame = tk.Frame(page)
 </s> add         frame = tk.Frame(option_frame)
        canvas.bind('<Configure>',lambda event, cvs=canvas: self.update_scrollbar(event, cvs))
          ''' Add a scrollbar to the options frame '''
          scrollbar = tk.Scrollbar(frame, command=canvas.yview)
          scrollbar.pack(side=tk.LEFT, fill='y')
          canvas.configure(yscrollcommand = scrollbar.set)
        canvas.bind('<Configure>',lambda event, cvs=canvas: self.update_scrollbar(event, cvs))
  
      @staticmethod
      def update_scrollbar(event, canvas):
          canvas.configure(scrollregion=canvas.bbox('all'))
  
keep keep keep keep replace keep keep keep keep keep
 GUI v0.1.0a (#336)

* Code clean up

* Code refactor

* bugfix: Find paths to icons when launched from outside faceswap dir

* Bugfix: Disable GUI if TkInter app not available

* BugFix: Disable GUI if $DISPLAY not detected

* Minor code ammends

* Code Refactor

* DISPLAY check fix 
scripts/gui.py