Source code for pygvisuals.designs

"""
Package providing design templates for applications with widgets.
"""

__all__ = ["setDefaultDesign", "getDefaultDesign", "getFallbackDesign",
           "getDesignRegister", "registerDesign", "getRegisteredDesign"]

from .design import Design

__fallback_design = Design()
"""
The fallback-design to be used as fallback for all default-designs.
Widgets should define design-attributes with a default here by asigning a value to a new attribute.
"""
__default_design = Design(fallback=__fallback_design)
"""
The default-design to be used for defaults for all widgets.
"""
__design_register = {}

[docs]def setDefaultDesign(design): """ Set the default-design to a copy of the given design. The fallback will be replaced by an internal fallback. Args: design: A PyGVisuals-design to set as default. """ global __default_design design = design.copy() design.fallback = __fallback_design __default_design = design
[docs]def getDefaultDesign(): """ Return the default-design to be used for defaults for all widgets. Returns: A PyGVisuals-design that is being used as default. """ return __default_design
[docs]def getFallbackDesign(): """ Return the fallback-design to be used as fallback for all default-designs. Widgets should define design-attributes with a default here by asigning a value to a new attribute. e.g.: getFallbackDesign().attribute = value Returns: A PyGVisuals-design that is being used as fallback. """ return __fallback_design
[docs]def getDesignRegister(): """ Return a copy of the design-register. As the register is a dict, this can be used to list all available designs, e.g.: getDesignRegister().items() Returns: A dict which represents the design-register. """ return __design_register.copy()
[docs]def registerDesign(name, design): """ Register a design in the design-register. Args: name: A string to use as a reference/name for the design in the register. design: The design to register. """ global __design_register __design_register[str(name)] = design
[docs]def getRegisteredDesign(name): """ Return a design from the design-register by its reference. Args: name: A string used as a reference/name for the design in the register. """ return __design_register[str(name)]
# register some hardcoded designs registerDesign("default", __fallback_design) from . import hardcoded_designs for name, value in vars(hardcoded_designs).items(): if isinstance(value, Design): registerDesign(name, value)