          default = default if default is not None else ''
          etyvar = tk.StringVar(frame)
          etyvar.set(default)
  
          if opentype is not None:
              self.add_browser_buttons(frame, opentype, etyvar)
  
          etybox = tk.Entry(frame, textvariable=etyvar)
          etybox.pack(fill=tk.X, padx=5, pady=5)
  
          self.bind_help(etybox, helptext)
 
</s> remove         etyvar = tk.StringVar(frame)
        etyvar.set(default)
 </s> add  </s> remove         etybox = tk.Entry(frame, textvariable=etyvar)
        etybox.pack(fill=tk.X, padx=5, pady=5)
 </s> add         ctlkwargs = {'variable': var} if control == tk.Checkbutton else {'textvariable': var}
        packkwargs = {'anchor': tk.W} if control == tk.Checkbutton else {'fill': tk.X} </s> remove     def build_entrybox(self, frame, helptext, default, opentype = None):
        ''' Build and place entry controls '''
 </s> add     def build_control(self, frame, control, default, helptext, choices, sysbrowser):
        ''' Build and place the option controls ''' </s> remove         label = tk.Label(frame, text=title, width=15, anchor=tk.W)
        label.pack(padx=5, pady=5, side=tk.LEFT, anchor=tk.N)

    def build_combobox(self, frame, helptext, default, items):
        ''' Build and place combobox controls '''
        default = default if default in items else ''
        cmbvar = tk.StringVar(frame)
        cmbvar.set(default)
                        
        cmbbox = ttk.Combobox(frame, textvariable=cmbvar, width=40)
        cmbbox['values'] = [item for item in items]
        cmbbox.pack(fill=tk.X, padx=5, pady=5)

        self.bind_help(cmbbox, helptext)
        return cmbvar

    def build_checkbox(self, frame, helptext, default, title):
        ''' Build and place checkbox controls '''
        chkvar = tk.BooleanVar(frame)
        chkvar.set(default)

        chkbox = tk.Checkbutton(frame, variable=chkvar)
        chkbox.pack(padx=5, pady=5, anchor=tk.W)
        
        self.bind_help(chkbox, helptext)
        return chkvar
 </s> add         lbl = tk.Label(frame, text=control_title, width=15, anchor=tk.W)
        lbl.pack(padx=5, pady=5, side=tk.LEFT, anchor=tk.N) </s> remove         self.bind_help(etybox, helptext)
        return etyvar
 </s> add         if control == ttk.Combobox: #TODO: Remove this hacky fix to force the width of the frame
            ctlkwargs['width'] = 40
        var = tk.BooleanVar(frame) if control == tk.Checkbutton else tk.StringVar(frame)
        var.set(default)

        if sysbrowser is not None:
            self.add_browser_buttons(frame, sysbrowser, var)
          default = default if default is not None else ''
          etyvar = tk.StringVar(frame)
          etyvar.set(default)
  
        var = tk.BooleanVar(frame) if control == tk.Checkbutton else tk.StringVar(frame)
        var.set(default)

        if sysbrowser is not None:
            self.add_browser_buttons(frame, sysbrowser, var)
        var = tk.BooleanVar(frame) if control == tk.Checkbutton else tk.StringVar(frame)
        var.set(default)

        if sysbrowser is not None:
            self.add_browser_buttons(frame, sysbrowser, var)
  
          etybox = tk.Entry(frame, textvariable=etyvar)
          etybox.pack(fill=tk.X, padx=5, pady=5)
  
          self.bind_help(etybox, helptext)
keep keep keep keep replace 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