
    \
j#                         d dl Z d dlZd dlmZ d dlmZmZmZ d dlmZ	 e	j
        Z
d Zd Zd Zd Zd	 Zd
 Zd Z G d de          Z G d de          Z G d d          Zd Zd Zd ZddZdS )    N)DeviceOpenException)TabletTabletCursorTabletCanvas)	libwintabc                     t                               | |d           }|t          j        |          k    sJ t                               | |t          j        |                     |S N)libWTInfoWctypessizeofbyref)categoryindexbuffersizes       M/DATA/AppData/hermes/venv/lib/python3.11/site-packages/pyglet/input/wintab.pywtinfor   /   sW    ;;x--D6=((((((KK%f!5!5666M    c                     t                               | |d           }t          j        |          }t                               | ||           |j        S r	   )r
   r   r   create_unicode_buffervalue)r   r   r   r   s       r   wtinfo_stringr   6   sE    ;;x--D)$//FKK%(((<r   c                     t          j                    }t                              | |t	          j        |                     |j        S r	   )wintabUINTr
   r   r   r   r   r   r   r   s      r   wtinfo_uintr   =   5    []]FKK%f!5!5666<r   c                     t          j                    }t                              | |t	          j        |                     |j        S r	   )r   WORDr
   r   r   r   r   r   s      r   wtinfo_wordr"   C   r   r   c                     t          j                    }t                              | |t	          j        |                     |j        S r	   )r   DWORDr
   r   r   r   r   r   s      r   wtinfo_dwordr%   I   5    \^^FKK%f!5!5666<r   c                     t          j                    }t                              | |t	          j        |                     |j        S r	   )r   WTPKTr
   r   r   r   r   r   s      r   wtinfo_wtpktr)   O   r&   r   c                     t          j                    }t                              | |t	          j        |                     t          |j                  S r	   )r   BOOLr
   r   r   r   boolr   r   s      r   wtinfo_boolr-   U   s=    []]FKK%f!5!5666r   c                       e Zd Zd Zd ZdS )WintabTabletc                    t           j        |z   | _        t          | j        t           j                                                  | _        t          | j        t           j                  | _        t          | j        t           j
                  }t          | j        t           j                  }t          | j        t           j                  }t          | j        t           j        t          j                              | _        g | _        i | _        t'          |          D ]C}t)          | ||z             }|j        s'| j                            |           || j        ||z   <   Dd S r	   )r   WTI_DEVICES_devicer   DVC_NAMEstripname	DVC_PNPIDidr   DVC_HARDWAREDVC_NCSRTYPESDVC_FIRSTCSRr   DVC_NPRESSUREAXISpressure_axiscursors_cursor_maprangeWintabTabletCursorbogusappend)selfr   hardware	n_cursorsfirst_cursoricursors          r   __init__zWintabTablet.__init__\   s   )E1!$,@@FFHH	f.>??t|V-@AA  f.BCC	"4<1DEE#DL&2FVVy!! 	< 	<A'a,.>??F< <##F+++5; \!12		< 	<r   c                 "    t          | |          S r	   )WintabTabletCanvas)rD   windows     r   openzWintabTablet.openr   s    !$///r   N)__name__
__module____qualname__rJ   rN    r   r   r/   r/   [   s2        < < <,0 0 0 0 0r   r/   c                        e Zd Zej        f fd	Zd Zd Zej	        j
                            d          d             Zej	        j
                            d          d             Z xZS )rL   c                    t          t          |                               |           || _        || _        t          j                    x| _        }t          t
          j	        d|           ||_
        |xj        t
          j        z  c_        t
          j        t
          j        z  t
          j        z  t
          j        z  t
          j        z  t
          j        z  t
          j        z  t
          j        z  t
          j        z  |_        d|_        t0                              |j        t7          j        |          d          | _        | j        st=          d          | j        |j         |t
          j!        z   <   | j"        |j         |t
          j#        z   <   d | _$        |j%        &                                | _'        |j%        (                                | _)        d S )Nr   TzCouldn't open tablet context)*superrL   rJ   devicemsg_baser   
LOGCONTEXTcontext_infor   WTI_DEFSYSCTX	lcMsgBase	lcOptionsCXO_MESSAGES
PK_CHANGED	PK_CURSOR
PK_BUTTONSPK_XPK_YPK_ZPK_NORMAL_PRESSUREPK_TANGENT_PRESSUREPK_ORIENTATION	lcPktData	lcPktModer
   WTOpenW_hwndr   r   _contextr   _event_wt_packet_event_handlers	WT_PACKET_event_wt_proximityWT_PROXIMITY_current_cursorr=   	get_scale_pressure_scaleget_bias_pressure_bias)rD   rV   rM   rW   rY   	__class__s        r   rJ   zWintabTabletCanvas.__init__w   s    $''00888 
 ,2+<+>+>>Lv#Q555!)&"55 !F$44v7HH$k*,2K8)*,2,FG %& 	
 "#FL&,|2L2LdSS} 	F%&DEEE>B>Sx&*::;AEAYx&*==>#%3==??$2;;==r   c                     t                               | j                   d | _        | j        j        | j        t          j        z   = | j        j        | j        t          j        z   = d S r	   )	r
   WTCloserk   rM   rm   rW   r   rn   rp   rD   s    r   closezWintabTabletCanvas.close   sQ    DM"""K'8H(HIK'8K(KLLLr   c                     | j         r|                     d| j                    | j        j                            |d           | _         | j         r|                     d| j                    d S d S )Non_leaveon_enter)rq   dispatch_eventrV   r?   get)rD   cursor_types     r   _set_current_cursorz&WintabTabletCanvas._set_current_cursor   s{     	B
D,@AAA#{6::;MM 	B
D,@AAAAA	B 	Br   r   c           	      D   || j         k    rd S t          j                    }t                              | j         |t          j        |                    dk    rd S |j        sd S | j        	                                \  }}| j        j
        j        |z
  | j        j        z
  }|j        |z
  }|j        |z
  }|j        | j        z   | j        z  }	| j        |                     |j                   |                     d| j        |||	dd           t+          |j                   d S )Nr   	on_motiong        )rk   r   PACKETr
   WTPacketr   r   	pkChangedrM   get_locationscreenheightpkXpkYpkNormalPressureru   rs   rq   r   pkCursorr~   print	pkButtons)
rD   msgwParamlParampacketwindow_xwindow_yxypressures
             r   rl   z#WintabTabletCanvas._event_wt_packet   s   T]""F<<vv|F/C/CDDIIF 	F![5577(;%,x7$+:LLJ!J!+d.AATEYY'$$V_555K)=q!XrSUVVVfr   c                 |    || j         k    rd S |dz  sd S |dz  s|                     d| j                   d | _        d S )Nl      i  r|   )rk   r~   rq   )rD   r   r   r   s       r   ro   z&WintabTabletCanvas._event_wt_proximity   s\    T]""F
" 	F 	B
D,@AAA  $r   )rO   rP   rQ   r   
WT_DEFBASErJ   rz   r   pygletrM   win32Win32EventHandlerrl   ro   __classcell__)rv   s   @r   rL   rL   v   s        060A > > > > > >BM M MB B B ]**1--    .- 0 ]**1--$ $ .-$ $ $ $ $r   rL   c                       e Zd Zd Zd ZdS )rA   c                    || _         t          j        |z   | _        t	          | j        t          j                                                  | _        t          | j        t          j	                  | _
        t          | j        t          j                  }|t          j        z  o|t          j        z   | _        | j        rd S t!          | j        t          j                  dz  t!          | j        t          j                  z  | _        d S )N    )rV   r   WTI_CURSORS_cursorr   CSR_NAMEr4   r5   r-   
CSR_ACTIVEactiver)   CSR_PKTDATAra   rb   rB   r%   CSR_TYPE
CSR_PHYSIDr7   )rD   rV   r   pktdatas       r   rJ   zWintabTabletCursor.__init__   s    )E1!$,@@FFHH	!$,0ABBt|V-?@@
 "FK/IGfk4IJ
: 	Ffo>>"Dt|V->??@r   c                     d| j         z  S )NzWintabCursor(%r))r5   ry   s    r   __repr__zWintabTabletCursor.__repr__   s    !DI--r   N)rO   rP   rQ   rJ   r   rR   r   r   rA   rA      s5        @ @ @$. . . . .r   rA   c                  N    t          t          j        t          j                  } | S r	   )r"   r   WTI_INTERFACEIFC_SPECVERSION)spec_versions    r   get_spec_versionr          v3V5KLLLr   c                  N    t          t          j        t          j                  } | S r	   )r   r   r   IFC_WINTABID)interface_names    r   get_interface_namer      s    "6#79LMMNr   c                  N    t          t          j        t          j                  } | S r	   )r"   r   r   IFC_IMPLVERSION)impl_versions    r   get_implementation_versionr      r   r   c                     t                      dk     rg S t          t          j        t          j                  }d t          |          D             }|S )Ni  c                 ,    g | ]}t          |          S rR   )r/   ).0rH   s     r   
<listcomp>zget_tablets.<locals>.<listcomp>   s    9991|A999r   )r   r   r   r   IFC_NDEVICESr@   )display	n_devicesdevicess      r   get_tabletsr      sM    E!!	F0&2EFFI99i(8(8999GNr   r	   )r   r   pyglet.input.baser   r   r   r   pyglet.libs.win32r   r   r
   r   r   r   r"   r%   r)   r-   r/   rL   rA   r   r   r   r   rR   r   r   <module>r      s  H   1 1 1 1 1 1 @ @ @ @ @ @ @ @ @ @ 1 1 1 1 1 1j              0 0 0 0 06 0 0 06Z$ Z$ Z$ Z$ Z$ Z$ Z$ Z$z. . . . . . . ..  
  
  
     r   