Source code for enaml.layout.layout_helpers

#------------------------------------------------------------------------------
# Copyright (c) 2013, Nucleic Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
# The full license is in the file LICENSE, distributed with this software.
#------------------------------------------------------------------------------
from .constraint_helper import ConstraintHelper
from .factory_helper import FactoryHelper
from .grid_helper import GridHelper
from .linear_box_helper import LinearBoxHelper
from .sequence_helper import SequenceHelper
from .spacers import LayoutSpacer


spacer = LayoutSpacer(10)


[docs] def horizontal(*items, **config): """ Create a left-to-right SequenceHelper object. Parameters ---------- items The constraint items to pass to the helper. config Additional keyword arguments to pass to the helper. """ return SequenceHelper('right', 'left', items, **config)
[docs] def vertical(*items, **config): """ Create a top-to-bottom SequenceHelper object. Parameters ---------- items The constraint items to pass to the helper. config Additional keyword arguments to pass to the helper. """ return SequenceHelper('bottom', 'top', items, **config)
[docs] def hbox(*items, **config): """ Create a horizontal LinearBoxHelper object. Parameters ---------- items The constraint items to pass to the helper. config Additional keyword arguments to pass to the helper. """ return LinearBoxHelper('horizontal', items, **config)
[docs] def vbox(*items, **config): """ Create a vertical LinearBoxHelper object. Parameters ---------- items The constraint items to pass to the helper. config Additional keyword arguments to pass to the helper. """ return LinearBoxHelper('vertical', items, **config)
[docs] def align(anchor, *items, **config): """ Create a SequenceHelper with the given anchor object. Parameters ---------- anchor : str The name of the target anchor on the constrainable object. items The constraint items to pass to the helper. config Additional keyword arguments to pass to the helper. """ config.setdefault('spacing', 0) return SequenceHelper(anchor, anchor, items, **config)
[docs] def factory(func, *args, **kwargs): """ Create a FactoryHelper with the given factory function. Parameters ---------- func : callable The callable which will generate the list of constraints. The owner widget will be passed as the first argument. args Additional positional arguments to pass to the factory. kwargs Additional keyword arguments to pass to the factory. """ return FactoryHelper(func, *args, **kwargs)
[docs] def grid(*rows, **config): """ Create a GridHelper object with the given rows. Parameters ---------- rows Rows of identifier to use to build a grid. config Additional keyword arguments to pass to the helper. """ return GridHelper(rows, **config)
[docs] def expand_constraints(component, constraints): """ A function which expands any ConstraintHelper in the list. Parameters ---------- component : Constrainable The constrainable component with which the constraints are associated. This will be passed to the .create_constraints() method of any ConstraintHelper instance. constraints : list The list of constraints to expand. Returns ------- result : list The list of expanded constraints. """ cns = [] for cn in constraints: if isinstance(cn, ConstraintHelper): cns.extend(cn.create_constraints(component)) elif cn is not None: cns.append(cn) return cns