@register('IPython.ToggleButton') class ToggleButton(_Bool): """Displays a boolean `value` in the form of a toggle button. Parameters ---------- value : {True,False} value of the toggle button: True-pressed, False-unpressed description : str description displayed next to the button tooltip: str tooltip caption of the toggle button icon: str font-awesome icon name """ _view_name = Unicode('ToggleButtonView', sync=True) tooltip = Unicode(help="Tooltip caption of the toggle button.", sync=True) icon = Unicode('', help= "Font-awesome icon.", sync=True) button_style = CaselessStrEnum( values=['primary', 'success', 'info', 'warning', 'danger', ''], default_value='', allow_none=True, sync=True, help="""Use a predefined styling for the button.""") # Remove in IPython 4.0 CheckboxWidget = DeprecatedClass(Checkbox, 'CheckboxWidget') ToggleButtonWidget = DeprecatedClass(ToggleButton, 'ToggleButtonWidget')
default_value='', allow_none=True, sync=True, help="""Use a predefined styling for the buttons.""") class Dropdown(_Selection): """Allows you to select a single item from a dropdown.""" _view_name = Unicode('DropdownView', sync=True) button_style = CaselessStrEnum( values=['primary', 'success', 'info', 'warning', 'danger', ''], default_value='', allow_none=True, sync=True, help="""Use a predefined styling for the buttons.""") class RadioButtons(_Selection): """Group of radio buttons that represent an enumeration. Only one radio button can be toggled at any point in time.""" _view_name = Unicode('RadioButtonsView', sync=True) class Select(_Selection): """Listbox that only allows one item to be selected at any given time.""" _view_name = Unicode('SelectView', sync=True) # Remove in IPython 4.0 ToggleButtonsWidget = DeprecatedClass(ToggleButtons, 'ToggleButtonsWidget') DropdownWidget = DeprecatedClass(Dropdown, 'DropdownWidget') RadioButtonsWidget = DeprecatedClass(RadioButtons, 'RadioButtonsWidget') SelectWidget = DeprecatedClass(Select, 'SelectWidget')
step of the trackbar description : str name of the slider orientation : {'vertical', 'horizontal}, optional default is horizontal readout : {True, False}, optional default is True, display the current value of the slider next to it slider_color : str Unicode color code (eg. '#C13535'), optional color of the slider color : str Unicode color code (eg. '#C13535'), optional color of the value displayed (if readout == True) """ _view_name = Unicode('FloatSliderView', sync=True) orientation = CaselessStrEnum(values=['horizontal', 'vertical'], default_value='horizontal', help="Vertical or horizontal.", sync=True) _range = Bool(True, help="Display a range selector", sync=True) readout = Bool(True, help="Display the current value of the slider next to it.", sync=True) slider_color = Unicode(sync=True) # Remove in IPython 4.0 FloatTextWidget = DeprecatedClass(FloatText, 'FloatTextWidget') BoundedFloatTextWidget = DeprecatedClass(BoundedFloatText, 'BoundedFloatTextWidget') FloatSliderWidget = DeprecatedClass(FloatSlider, 'FloatSliderWidget') FloatProgressWidget = DeprecatedClass(FloatProgress, 'FloatProgressWidget')
new = min(max(0, new), 2) if self.flex != new: self.flex = new _locations = ['start', 'center', 'end', 'baseline', 'stretch'] pack = CaselessStrEnum(values=_locations, default_value='start', allow_none=False, sync=True) align = CaselessStrEnum(values=_locations, default_value='start', allow_none=False, sync=True) def VBox(*pargs, **kwargs): """Displays multiple widgets vertically using the flexible box model.""" kwargs['orientation'] = 'vertical' return FlexBox(*pargs, **kwargs) def HBox(*pargs, **kwargs): """Displays multiple widgets horizontally using the flexible box model.""" kwargs['orientation'] = 'horizontal' return FlexBox(*pargs, **kwargs) # Remove in IPython 4.0 ContainerWidget = DeprecatedClass(Box, 'ContainerWidget') PopupWidget = DeprecatedClass(Popup, 'PopupWidget')
low = max(self.min, min(low, self.max)) high = min(self.max, max(high, self.min)) # determine the order in which we should update the # lower, upper traits to avoid a temporary inverted overlap lower_first = high < self.lower self.value = (low, high) if lower_first: self.lower = low self.upper = high else: self.upper = high self.lower = low @register('IPython.IntRangeSlider') class IntRangeSlider(_BoundedIntRange): """Slider widget that represents a pair of ints between a minimum and maximum value.""" _view_name = Unicode('IntSliderView', sync=True) orientation = CaselessStrEnum(values=['horizontal', 'vertical'], default_value='horizontal', help="Vertical or horizontal.", sync=True) _range = Bool(True, help="Display a range selector", sync=True) readout = Bool(True, help="Display the current value of the slider next to it.", sync=True) slider_color = Color(None, allow_none=True, sync=True) # Remove in IPython 4.0 IntTextWidget = DeprecatedClass(IntText, 'IntTextWidget') BoundedIntTextWidget = DeprecatedClass(BoundedIntText, 'BoundedIntTextWidget') IntSliderWidget = DeprecatedClass(IntSlider, 'IntSliderWidget') IntProgressWidget = DeprecatedClass(IntProgress, 'IntProgressWidget')
"""Constructor""" super(Button, self).__init__(**kwargs) self._click_handlers = CallbackDispatcher() self.on_msg(self._handle_button_msg) def on_click(self, callback, remove=False): """Register a callback to execute when the button is clicked. The callback will be called with one argument, the clicked button widget instance. Parameters ---------- remove : bool (optional) Set to true to remove the callback from the list of callbacks.""" self._click_handlers.register_callback(callback, remove=remove) def _handle_button_msg(self, _, content): """Handle a msg from the front-end. Parameters ---------- content: dict Content of the msg.""" if content.get('event', '') == 'click': self._click_handlers(self) # Remove in IPython 4.0 ButtonWidget = DeprecatedClass(Button, 'ButtonWidget')
def _handle_string_msg(self, _, content): """Handle a msg from the front-end. Parameters ---------- content: dict Content of the msg.""" if content.get('event', '') == 'submit': self._submission_callbacks(self) def on_submit(self, callback, remove=False): """(Un)Register a callback to handle text submission. Triggered when the user clicks enter. Parameters ---------- callback: callable Will be called with exactly one argument: the Widget instance remove: bool (optional) Whether to unregister the callback""" self._submission_callbacks.register_callback(callback, remove=remove) # Remove in IPython 4.0 HTMLWidget = DeprecatedClass(HTML, 'HTMLWidget') LatexWidget = DeprecatedClass(Latex, 'LatexWidget') TextareaWidget = DeprecatedClass(Textarea, 'TextareaWidget') TextWidget = DeprecatedClass(Text, 'TextWidget')
New title""" self._titles[index] = title self.send_state('_titles') def get_title(self, index): """Gets the title of a container pages. Parameters ---------- index : int Index of the container page""" if index in self._titles: return self._titles[index] else: return None class Accordion(_SelectionContainer): """Displays children each on a separate accordion page.""" _view_name = Unicode('AccordionView', sync=True) class Tab(_SelectionContainer): """Displays children each on a separate accordion tab.""" _view_name = Unicode('TabView', sync=True) # Remove in IPython 4.0 AccordionWidget = DeprecatedClass(Accordion, 'AccordionWidget') TabWidget = DeprecatedClass(Tab, 'TabWidget')
flex = Int(0, sync=True, help="""Specify the flexible-ness of the model.""") def _flex_changed(self, name, old, new): new = min(max(0, new), 2) if self.flex != new: self.flex = new _locations = ['start', 'center', 'end', 'baseline', 'stretch'] pack = CaselessStrEnum(values=_locations, default_value='start', sync=True) align = CaselessStrEnum(values=_locations, default_value='start', sync=True) def VBox(*pargs, **kwargs): """Displays multiple widgets vertically using the flexible box model.""" kwargs['orientation'] = 'vertical' return FlexBox(*pargs, **kwargs) def HBox(*pargs, **kwargs): """Displays multiple widgets horizontally using the flexible box model.""" kwargs['orientation'] = 'horizontal' return FlexBox(*pargs, **kwargs) # Remove in IPython 4.0 ContainerWidget = DeprecatedClass(Box, 'ContainerWidget')
from IPython.utils.warn import DeprecatedClass #----------------------------------------------------------------------------- # Classes #----------------------------------------------------------------------------- @register('IPython.Image') class Image(DOMWidget): """Displays an image as a widget. The `value` of this widget accepts a byte string. The byte string is the raw image data that you want the browser to display. You can explicitly define the format of the byte string using the `format` trait (which defaults to "png").""" _view_name = Unicode('ImageView', sync=True) # Define the custom state properties to sync with the front-end format = Unicode('png', sync=True) width = CUnicode(sync=True) height = CUnicode(sync=True) _b64value = Unicode(sync=True) value = Bytes() def _value_changed(self, name, old, new): self._b64value = base64.b64encode(new) # Remove in IPython 4.0 ImageWidget = DeprecatedClass(Image, 'ImageWidget')