def load_gui_settings(self, lazy_only=False):
        """
        Loads the settings (if we're supposed to).
        
        Parameters
        ----------
        lazy_only=False
            If True, it will only load the settings into self._lazy_load, and
            not try to update the value. Presumably the widget will apply these
            settings later, e.g., when enough tabs exist to set the current
            tab in TabArea.
        """

        # only do this if we're supposed to
        if self._autosettings_path is not None:

            # Get the gui settings directory
            gui_settings_dir = _os.path.join(_cwd, 'egg_settings')

            # assemble the path with a sub-directory
            path = _os.path.join(gui_settings_dir, self._autosettings_path)

            # databox just for loading a cfg file
            d = _d.databox()

            # if the settings path exists
            if _os.path.exists(path):
                
                # Load the settings
                d.load_file(path, header_only=True, quiet=True)

                # Store the settings in the lazy dictionary
                self._lazy_load.update(d.headers)
                
                # Loop over the settings we're supposed to change
                # Note without specifying d, this will try to pop
                # the value off of self._lazy_load. If 
                #
                if not lazy_only:
                    for x in self._autosettings_controls: 
                        self._load_gui_setting(x)
Loads the settings (if we're supposed to).
        
        Parameters
        ----------
        lazy_only=False
            If True, it will only load the settings into self._lazy_load, and
            not try to update the value. Presumably the widget will apply these
            settings later, e.g., when enough tabs exist to set the current
            tab in TabArea.