a
    V$c                     @   s   d dl mZmZmZmZmZ d dlmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZ d dlZd dlZd dlZdag adadd ZejejgZdd Zejej ej!ej"ej#ejejgZ$d	d
 Z%da&da'dd Z(dd Z)dd Z*dS )    )divisionabsolute_importwith_statementprint_functionunicode_literals)PY2
basestringbchrbordchropenpystrrangeroundstrtobytesunicodeNFc                 C   s
   | ||fS )z5
    This is used when emulation is not desired.
     evxyr   r   renpy/display\emulator.pynull_emulator-   s    r   c                 C   s  t jjjr| ||fS | jtjkr6| jdkrd||fS n| jtjkrz| jdkrVd||fS tj	
tjdddd}|t jj_n| jtjkr| jd sd}d}nd| jtjkrts| jtj@ rq| jtvrd||fS n0| jtjkrts| jtj@ r| jtvrd||fS | ||fS )zT
    This emulates an android touch-screen device, like a tablet or smartphone.
       N)r   r   )r   r   r   )posrelbuttonsr   )renpydisplay	interface	text_recttypepygameMOUSEBUTTONDOWNbuttonMOUSEBUTTONUPeventEventMOUSEMOTIONpushed_eventr   KEYDOWNiosmod
KMOD_SHIFTkey
TOUCH_KEYSKEYUP)r   r   r   mover   r   r   touch_emulator7   s0    








r3   c                 C   s   | j tjkrd||fS | j tjkr,d||fS | j tjkrBd||fS | j tjkrd| jtvrd||fS n | j tjkr| jtvrd||fS | ||fS )z9
    This emulates a tv-based device, like the OUYA.
    N)r"   r#   r$   r&   r)   r+   r/   TV_KEYSr   r   r   r   tv_emulatora   s    





r5   c                 C   sX   t d u r<tjtjjddddtjjdddda tj atjj	j
rLt }nt}|d	fS )
Nz#0008g      ?g      ?)yalignymaximumzOn-Screen Keyboard      ?g      ?)xalignr6   gQ?)keyboardr   storeFixedSolidTextNullnullr   r    old_text_rect)statrvr   r   r   dynamic_keyboardz   s    

rE   c                  C   s   t jdd} | dkr*tatjtga	nf| dkrJtatjtga	da
nF| dkrtatjjjdddttjjd	 d
 tjjfdga	ntag a	dS )z
    Sets up the emulator.
    RENPY_EMULATOR touchz	ios-touchTtvz_tv_unsafe.pngr8   g      0@g      "@)r9   r6   sizeN)osenvirongetr3   emulatorr   r;   DynamicDisplayablerE   overlayr,   r5   r   motion	Transformintconfigscreen_heightr   namer   r   r   init_emulator   s$    	
rX   c                  C   sj   t jdd} | rfdtj_dtj_dtj_dtj_tj	dtj_
tj	dtj_tjj
p`tjjtj_d S )NrF   rG   Fandroidr,   )rK   rL   rM   r   exportswindowslinux	macintoshwebvariantrY   r,   mobilerV   r   r   r   early_init_emulator   s    ra   )+
__future__r   r   r   r   r   renpy.compatr   r   r	   r
   r   r   r   r   r   r   r   r   rK   pygame_sdl2r#   r   rN   rP   r,   r   K_ESCAPEK_PAGEUPr0   r3   K_LEFTK_RIGHTK_UPK_DOWNK_RETURNr4   r5   r:   r@   rE   rX   ra   r   r   r   r   <module>   s"   8' "