
    +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
                            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 ][Z eee          Z eeej                  r< ee ede                     dd          z              eej!        e                     \eee         z  Z"eee         z  Z# G d d          Z$dS )    )TypeCallableDictOptional)partialmethodNVTK_MODULE_NAME
vtkmodules
vtk_module)vtkAbstractWidgetvtkWidgetRepresentation)
vtkCommand	VtkWidgettargetcallbackc                       fd}|S )Nc                  b     t          j        | d                   g| dd          R i | d S )N      )r   GetEventIdFromString)argskwargsr   r   s     V/DATA/AppData/hermes/venv/lib/python3.11/site-packages/trame_vtk/modules/vtk/widget.pywrapped_callbackz*callback_wrapper.<locals>.wrapped_callback   sC    0a996WDHWWWPVWWWWW     )r   r   r   s   `` r   callback_wrapperr      s0    X X X X X 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 | _        d S 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	    wr   c                 4    | j                                         S r    )r!   GetRepresentationr'   s    r   vtk_representationzVtkWidget.vtk_representation$   s    w((***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__(   si    4?D)) 	24?D111T,d33 	242D99977++D111r   c                 8    | j                                          d S r    )r!   Onr'   s    r   enablezVtkWidget.enable0   s    

r   c                 8    | j                                          d S r    )r!   Offr'   s    r   disablezVtkWidget.disable3   s    r   eventlistenerNc                       j                             i           } j                            t	                               }||<    fd}|S )Nc                  4                                     d S r    )remove_event_listener)r:   r;   r#   s   r   listener_removerz6VtkWidget.add_event_listener.<locals>.listener_remover?   s    &&uh77777r   )r"   
setdefaultr(   AddObserverr   )r#   r:   r;   	listenerstagr?   s   ```   r   add_event_listenerzVtkWidget.add_event_listener6   su     O..ub99	o))%1A$1Q1QRR!	(	8 	8 	8 	8 	8 	8 	8  r   c                 6   | j                             |i           }|G|                                D ]}| j                            |           |                                 d S |                    |d           }|| j                            |           d S d S r    )r"   getvaluesr(   RemoveObserverclearpop)r#   r:   r;   rB   rC   s        r   r>   zVtkWidget.remove_event_listenerD   s     O''r22	 '')) 4 4..s3333OO--$//C..s3333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      sC       R+ R R R R -    X +$; + + + X+2 2 2 2 2 2 2     ( 4A 	"d(	        OS4 4(44<]4K4 4 4 4 4 4 4 4r   sr%   c                 |    d}| D ]6}|                                 r|d|                                 z  }1||z  }7|S )N _)isupperlower)rS   outcs      r   _to_snake_caser[   U   sP    
C  99;; 	?qwwyy??"CC1HCCJr   onEventrU   c                   d    e Zd Zd Zed             Zed             Z	 d	dedee	         de
fdZdS )
WidgetManagerc                     || _         d S r    )	_renderer)r#   renderers     r   r$   zWidgetManager.__init__v   s    !r   c                 4    | j                                         S r    )ra   GetRenderWindowr'   s    r   _windowzWidgetManager._windowy   s    ~--///r   c                 4    | 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                    r4t          |t
                    r |            }|                                 n't          |t
                    r|}nt	          d          ||                    |           |                    | 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   s0    AEa 	:a1H#I#I 	!"233 	!"]k   a 	:a1B#C#C 	J224444,-- 	JJ_   )(();<<<  !1222:&&r   r    )rK   rL   rM   r$   rN   re   rh   WidgetParamr   RepresentationParamr   ru   r   r   r   r_   r_   u   s        " " " 0 0 X0 , , X, 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 1 1 1 1 1 1 1 1 1 1 # # # # # # 				     



*..!2LAA3I3ODDL        
 0 / / / / /*-x/DEtKL[ M    74 74 74 74 74 74 74 74t	c 	c 	 	 	 	" D 
 
DGJ%%Ez%,-- 
N4$,,w";";;<<M)6>>	
 	
 	
  $'8"99-5L0MM , , , , , , , , , ,r   