##// END OF EJS Templates
Separate the display from the models on the python side, creating a BaseWidget class....
Separate the display from the models on the python side, creating a BaseWidget class. Conflicts: IPython/html/widgets/widget.py

File last commit:

r14409:82a6e995
r14485:9811ba70
Show More
widget_container.py
200 lines | 6.8 KiB | text/x-python | PythonLexer
Jonathan Frederic
Cleaned up Python widget code.
r14283 """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
#-----------------------------------------------------------------------------
Jonathan Frederic
More relative imports, Travis w/ Py3.3
r14308 from .widget import Widget
Jonathan Frederic
Attempt 1, HBox and VBox implementation.
r14268 from IPython.utils.traitlets import Unicode, Bool
Jonathan Frederic
Add container widget
r14239
Jonathan Frederic
Cleaned up Python widget code.
r14283 #-----------------------------------------------------------------------------
# Classes
#-----------------------------------------------------------------------------
Jonathan Frederic
Add container widget
r14239 class ContainerWidget(Widget):
Jonathan Frederic
Made registered model name look like other model names
r14275 target_name = Unicode('ContainerWidgetModel')
Jonathan Frederic
Add container widget
r14239 default_view_name = Unicode('ContainerView')
Jonathan Frederic
Attempt 1, HBox and VBox implementation.
r14268
Jonathan Frederic
Cleaned up Python widget code.
r14283 # Keys, all private and managed by helper methods. Flexible box model
# classes...
Jonathan Frederic
Added flexible box model align properties.
r14333 _keys = ['_vbox', '_hbox', '_align_start', '_align_end', '_align_center',
Jonathan Frederic
Added flex properties to container....
r14335 '_pack_start', '_pack_end', '_pack_center', '_flex0', '_flex1',
Jonathan Frederic
Added ModalView
r14409 '_flex2', 'description', 'button_text']
description = Unicode()
button_text = Unicode()
Jonathan Frederic
Flex box system improvements...
r14269 _hbox = Bool(False)
_vbox = Bool(False)
Jonathan Frederic
Added flexible box model align properties.
r14333 _align_start = Bool(False)
_align_end = Bool(False)
_align_center = Bool(False)
_pack_start = Bool(False)
_pack_end = Bool(False)
_pack_center = Bool(False)
Jonathan Frederic
Added flex properties to container....
r14335 _flex0 = Bool(False)
_flex1 = Bool(False)
_flex2 = Bool(False)
Jonathan Frederic
Flex box system improvements...
r14269
def hbox(self, enabled=True):
Jonathan Frederic
Cleaned up Python widget code.
r14283 """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."""
Jonathan Frederic
Flex box system improvements...
r14269 self._hbox = enabled
if enabled:
self._vbox = False
def vbox(self, enabled=True):
Jonathan Frederic
Cleaned up Python widget code.
r14283 """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."""
Jonathan Frederic
Flex box system improvements...
r14269 self._vbox = enabled
if enabled:
self._hbox = False
Jonathan Frederic
Added flexible box model align properties.
r14333 def align_start(self, enabled=True):
Jonathan Frederic
Cleaned up Python widget code.
r14283 """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."""
Jonathan Frederic
Added flexible box model align properties.
r14333 self._align_start = enabled
Jonathan Frederic
Flex box system improvements...
r14269 if enabled:
Jonathan Frederic
Added flexible box model align properties.
r14333 self._align_end = False
self._align_center = False
Jonathan Frederic
Flex box system improvements...
r14269
Jonathan Frederic
Added flexible box model align properties.
r14333 def align_end(self, enabled=True):
Jonathan Frederic
Cleaned up Python widget code.
r14283 """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."""
Jonathan Frederic
Added flexible box model align properties.
r14333 self._align_end = enabled
Jonathan Frederic
Flex box system improvements...
r14269 if enabled:
Jonathan Frederic
Added flexible box model align properties.
r14333 self._align_start = False
self._align_center = False
Jonathan Frederic
Flex box system improvements...
r14269
Jonathan Frederic
Added flexible box model align properties.
r14333 def align_center(self, enabled=True):
Jonathan Frederic
Cleaned up Python widget code.
r14283 """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."""
Jonathan Frederic
Added flexible box model align properties.
r14333 self._align_center = enabled
Jonathan Frederic
Flex box system improvements...
r14269 if enabled:
Jonathan Frederic
Added flexible box model align properties.
r14333 self._align_start = False
self._align_end = False
def pack_start(self, enabled=True):
"""Make the contents of this container pack to the start of the axis.
Automatically disables conflicting packings.
Parameters
----------
enabled: bool (optional)
Enabled or disable the start packing of the container, defaults to
True."""
self._pack_start = enabled
if enabled:
self._pack_end = False
self._pack_center = False
def pack_end(self, enabled=True):
"""Make the contents of this container pack to the end of the axis.
Automatically disables conflicting packings.
Parameters
----------
enabled: bool (optional)
Enabled or disable the end packing of the container, defaults to
True."""
self._pack_end = enabled
if enabled:
self._pack_start = False
self._pack_center = False
def pack_center(self, enabled=True):
"""Make the contents of this container pack to the center of the axis.
Automatically disables conflicting packings.
Parameters
----------
enabled: bool (optional)
Enabled or disable the center packing of the container, defaults to
True."""
self._pack_center = enabled
if enabled:
self._pack_start = False
self._pack_end = False
Jonathan Frederic
Added flex properties to container....
r14335
def flex0(self, enabled=True):
"""Put this container in flex0 mode. Automatically disables conflicting
flex modes. See the widget tutorial part 5 example notebook for more
information.
Parameters
----------
enabled: bool (optional)
Enabled or disable the flex0 attribute of the container, defaults to
True."""
self._flex0 = enabled
if enabled:
self._flex1 = False
self._flex2 = False
def flex1(self, enabled=True):
"""Put this container in flex1 mode. Automatically disables conflicting
flex modes. See the widget tutorial part 5 example notebook for more
information.
Parameters
----------
enabled: bool (optional)
Enabled or disable the flex1 attribute of the container, defaults to
True."""
self._flex1 = enabled
if enabled:
self._flex0 = False
self._flex2 = False
def flex2(self, enabled=True):
"""Put this container in flex2 mode. Automatically disables conflicting
flex modes. See the widget tutorial part 5 example notebook for more
information.
Parameters
----------
enabled: bool (optional)
Enabled or disable the flex2 attribute of the container, defaults to
True."""
self._flex2 = enabled
if enabled:
self._flex0 = False
self._flex1 = False