"""ContainerWidget class. Represents a container that can be used to group other widgets. """ #----------------------------------------------------------------------------- # Copyright (c) 2013, the IPython Development Team. # # Distributed under the terms of the Modified BSD License. # # The full license is in the file COPYING.txt, distributed with this software. #----------------------------------------------------------------------------- #----------------------------------------------------------------------------- # Imports #----------------------------------------------------------------------------- from widget import Widget from IPython.utils.traitlets import Unicode, Bool #----------------------------------------------------------------------------- # Classes #----------------------------------------------------------------------------- class ContainerWidget(Widget): target_name = Unicode('ContainerWidgetModel') default_view_name = Unicode('ContainerView') # Keys, all private and managed by helper methods. Flexible box model # classes... _keys = ['_vbox', '_hbox', '_start', '_end', '_center'] _hbox = Bool(False) _vbox = Bool(False) _start = Bool(False) _end = Bool(False) _center = Bool(False) def hbox(self, enabled=True): """Make this container an hbox. Automatically disables conflicting features. Parameters ---------- enabled: bool (optional) Enabled or disable the hbox feature of the container, defaults to True.""" self._hbox = enabled if enabled: self._vbox = False def vbox(self, enabled=True): """Make this container an vbox. Automatically disables conflicting features. Parameters ---------- enabled: bool (optional) Enabled or disable the vbox feature of the container, defaults to True.""" self._vbox = enabled if enabled: self._hbox = False def start(self, enabled=True): """Make the contents of this container align to the start of the axis. Automatically disables conflicting alignments. Parameters ---------- enabled: bool (optional) Enabled or disable the start alignment of the container, defaults to True.""" self._start = enabled if enabled: self._end = False self._center = False def end(self, enabled=True): """Make the contents of this container align to the end of the axis. Automatically disables conflicting alignments. Parameters ---------- enabled: bool (optional) Enabled or disable the end alignment of the container, defaults to True.""" self._end = enabled if enabled: self._start = False self._center = False def center(self, enabled=True): """Make the contents of this container align to the center of the axis. Automatically disables conflicting alignments. Parameters ---------- enabled: bool (optional) Enabled or disable the center alignment of the container, defaults to True.""" self._center = enabled if enabled: self._start = False self._end = False