
    pju                     "   d dl mZmZmZmZ d dlmZ d dlZd dlZd dl	Z	ej                  j                  dd      Z ej                  e      e	j                  d<   d dlmZmZ d dlmZ eej(                  ed	   gdf   Zd
d	defdZ G d d	      ZdedefdZ ee      D ]S  Z eee      Z eeej(                        s  ee edejA                  dd      z          eejB                  e             U eee   z  Z"eee   z  Z# G d d      Z$y)    )TypeCallableDictOptional)partialmethodNVTK_MODULE_NAME
vtkmodules
vtk_module)vtkAbstractWidgetvtkWidgetRepresentation)
vtkCommand	VtkWidgettargetcallbackc                       fd}|S )Nc                  R     t        j                  | d         g| dd  i | y )N      )r   GetEventIdFromString)argskwargsr   r   s     I/DATA/.local/lib/python3.12/site-packages/trame_vtk/modules/vtk/widget.pywrapped_callbackz*callback_wrapper.<locals>.wrapped_callback   s-    00a96WDHWPVW     )r   r   r   s   `` r   callback_wrapperr      s    X r   c                        e Zd ZdefdZedefd       Zedefd       Zde	f fdZ
d Zd	 Zd
ej                  dedeg df   fdZ	 dd
ej                  dee   fdZ xZS )r   wc                      || _         i | _        y N)_w
_listeners)selfr   s     r   __init__zVtkWidget.__init__   s    OQr   returnc                     | j                   S r    )r!   r#   s    r   
vtk_widgetzVtkWidget.vtk_widget    s    wwr   c                 6    | j                   j                         S r    )r!   GetRepresentationr'   s    r   vtk_representationzVtkWidget.vtk_representation$   s    ww((**r   namec                     t        | j                  |      rt        | j                  |      S t        | j                  |      rt        | j                  |      S t        |   |      S r    )hasattrr(   getattrr+   super__getattribute__)r#   r,   	__class__s     r   __getattr__zVtkWidget.__getattr__(   sU    4??D)4??D11T,,d3422D997+D11r   c                 8    | j                   j                          y r    )r!   Onr'   s    r   enablezVtkWidget.enable0   s    

r   c                 8    | j                   j                          y r    )r!   Offr'   s    r   disablezVtkWidget.disable3   s    r   eventlistenerNc                       j                   j                  i       } j                  j                  t	                     }||<    fd}|S )Nc                  *    j                          y r    )remove_event_listener)r:   r;   r#   s   r   listener_removerz6VtkWidget.add_event_listener.<locals>.listener_remover?   s    &&uh7r   )r"   
setdefaultr(   AddObserverr   )r#   r:   r;   	listenerstagr?   s   ```   r   add_event_listenerzVtkWidget.add_event_listener6   sP     OO..ub9	oo))%1A$1QR!	(	8  r   c                 "   | j                   j                  |i       }|A|j                         D ]  }| j                  j	                  |        |j                          y |j                  |d       }|| j                  j	                  |       y y r    )r"   getvaluesr(   RemoveObserverclearpop)r#   r:   r;   rB   rC   s        r   r>   zVtkWidget.remove_event_listenerD   s}     OO''r2	 '')..s3 * OO--$/C..s3 r   r    )__name__
__module____qualname__r   r$   propertyr(   r   r+   strr3   r6   r9   r   EventIdsEventCallbackr   rD   r   r>   __classcell__)r2   s   @r   r   r      s    R+ R -   +$; + +2 2 (( 4A 	"d(	  OS4((44<]4K4r   sr%   c                 p    d}| D ].  }|j                         r|d|j                          z  }*||z  }0 |S )N _)isupperlower)rS   outcs      r   _to_snake_caser[   U   s@    
C99;Qqwwyk?"C1HC	  Jr   onEventrU   c                   P    e Zd Zd Zed        Zed        Z	 d	dedee	   de
fdZy)
WidgetManagerc                     || _         y r    )	_renderer)r#   renderers     r   r$   zWidgetManager.__init__v   s	    !r   c                 6    | j                   j                         S r    )ra   GetRenderWindowr'   s    r   _windowzWidgetManager._windowy   s    ~~--//r   c                 6    | j                   j                         S r    )re   GetInteractorr'   s    r   _interactorzWidgetManager._interactor}   s    ||))++r   Nr   rr%   c                    d }t        |t              rt        |t              r |       }n t        |t              r|}n|t	        d      t        |t              r(t        |t
              r |       }|j                          nt        |t
              r|}nt	        d      ||j                  |       |j                  | j                         t        |      }|S )NzYThe r parameter should be one of: vtkWidgetRepresentation | Type[vtkWidgetRepresentation]zMThe w parameter should be one of: vtkAbstractWidget | Type[vtkAbstractWidget])
isinstancetype
issubclassr   	TypeErrorr   CreateDefaultRepresentationSetRepresentationSetInteractorrh   r   )r#   r   ri   raw_representation
raw_widgetwidgets         r   
add_widgetzWidgetManager.add_widget   s     AEa:a1H#I!"23!"]k  a:a1B#CJ224,-J_  )(();<  !1!12:&r   r    )rK   rL   rM   r$   rN   re   rh   WidgetParamr   RepresentationParamr   ru   r   r   r   r_   r_   u   sY    " 0 0 , , BF  !)*=!> 	 r   r_   )%typingr   r   r   r   	functoolsr   os	importlibsysenvironrF   vtk_module_nameimport_modulemodules vtk_module.vtkInteractionWidgetsr   r   vtk_module.vtkCommonCorer   rP   rQ   r   r   rO   r[   varsr,   r/   valuerk   setattrreplacerD   rv   rw   r_   r   r   r   <module>r      s.   1 1 # 	  
**..!2LA3I33ODL 
 0*--x/DEtKL[ M 74 74t	c 	c 	" DJ%E%,,-4$,,w";;<)66>	
	   $'8"99-5L0MM , ,r   