class BasePlugin:

    def get_info(self):
        return self.fullname, self.description

    def __init__(self, gui, name, fullname, description):
        self.name = name
        self.fullname = fullname
        self.description = description
        self.gui = gui
        self.config = gui.config

    def requires_settings(self):
        return False

    def toggle(self):
        enabled = not self.is_enabled()
        self.set_enabled(enabled)
        self.init_gui()
        return enabled
    
    def init_gui(self):
        pass

    def is_enabled(self):
        return self.is_available() and self.config.get('use_'+self.name) is True

    def is_available(self):
        return True

    def set_enabled(self, enabled):
        self.config.set_key('use_'+self.name, enabled, True)

    def settings_dialog(self):
        pass