U
    a+dD                     @   s*   d dl mZ d dlmZmZ dddZdS )    N)ButtonSliderFc                    sD  t |}d| }td\}}|jd j  | \}}td| d}|j||dd |	d |
 d | d g t|D ]f\}	}
td	d
d|	d  |  dd| g}t|
tsttddddg|
}
tf d|i|
 q fddfdd}|jd| |s8D ]}| q&t  dS )a   A light GUI to manually explore and tune the outputs of 
        a function.
        slider_properties is a list of dicts (arguments for Slider )
        
        def volume(x,y,z):
            return x*y*z
    
        intervals = [ { 'label' :  'width',  'valmin': 1 , 'valmax': 5 },
                  { 'label' :  'height',  'valmin': 1 , 'valmax': 5 },
                  { 'label' :  'depth',  'valmin': 1 , 'valmax': 5 } ]
        inputExplorer(volume,intervals)
    g      ?   zInputs for '%s'g      ?   T)ZforwardFg?gffffff?g?g?labelZvalminZvalmaxZvalinitaxc                    s&    dd D  }|d k	r"t | d S )Nc                 s   s   | ]}|j V  qd S )N)val).0s r   </tmp/pip-unpacked-wheel-0yp4gafk/moviepy/video/io/sliders.py	<genexpr>8   s     z.sliders.<locals>.on_changed.<locals>.<genexpr>)print)eventres)fslidersr   r   
on_changed7   s    zsliders.<locals>.on_changedc                    s   | j dkr |  d S )NZenter)key)r   )r   r   r   on_key_press<   s    
zsliders.<locals>.on_key_pressZkey_press_eventN)lenpltZsubplotsZcanvasZset_window_title	func_nameZget_size_inchesminZset_size_inchesZset_frame_onZ	get_xaxisZset_visibleZ	get_yaxis	enumerateZaxes
isinstancedictzipappendr   Zmpl_connectr   show)r   Zsliders_propertiesZwait_for_validationZnVarsZslider_widthfigurer   widthheightiZ
propertiesr   r
   r   )r   r   r   r   r      s8    
 
r   )F)Zmatplotlib.pyplotZpyplotr   Zmatplotlib.widgetsr   r   r   r   r   r   r   <module>   s   