Source code for enaml.widgets.image_view

#------------------------------------------------------------------------------
#  Copyright (c) 2011, Enthought, Inc.
#  All rights reserved.
#------------------------------------------------------------------------------
from traits.api import Bool, Str

from .control import Control


[docs]class ImageView(Control): """ A widget which can display an Image with optional scaling. """ #: The source url of the image to load. source = Str #: Whether or not to scale the image with the size of the component. scale_to_fit = Bool(False) #: Whether to allow upscaling of an image if scale_to_fit is True. allow_upscaling = Bool(True) #: Whether or not to preserve the aspect ratio if scaling the image. preserve_aspect_ratio = Bool(True) #: An image view hugs its width weakly by default. hug_width = 'weak' #: An image view hugs its height weakly by default. hug_height = 'weak' #-------------------------------------------------------------------------- # Initialization #--------------------------------------------------------------------------
[docs] def snapshot(self): """ Returns the dict of creation attribute for the control. """ snap = super(ImageView, self).snapshot() snap['source'] = self.source snap['scale_to_fit'] = self.scale_to_fit snap['allow_upscaling'] = self.allow_upscaling snap['preserve_aspect_ratio'] = self.preserve_aspect_ratio return snap
[docs] def bind(self): """ A method called after initialization which allows the widget to bind any event handlers necessary. """ super(ImageView, self).bind() attrs = ( 'source', 'scale_to_fit', 'allow_upscaling', 'preserve_aspect_ratio', ) self.publish_attributes(*attrs)