
j$Zc           @   s  d  d l  Z d  d l Z d  d l m Z m Z d  d l Z d  d l Z d   Z	 i  Z
 i  Z d   Z e d  Z d   Z d   Z d   Z d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z d e j j j f d     YZ d e j j j f d     YZ d e j j j f d     YZ d e j j j f d     YZ  d e j j j f d     YZ! e j" e j# e j$ e j% f Z& d e j j j' f d     YZ( d d e) d  Z* d  e( f d!     YZ+ d" e, f d#     YZ- e) a. e a/ e) a0 g  a1 g  a2 d$   Z3 d%   Z4 d& e j5 j5 j6 f d'     YZ7 i  Z8 d( e j, j9 f d)     YZ: d* e j j; j< f d+     YZ= d, e j j j> f d-     YZ? d. e j@ jA f d/     YZB d0 e j j j f d1     YZC d2 e j j; j< f d3     YZD d4 e j j; j< f d5     YZE d S(6   iN(   t   rendert   Renderc         C   s  t  |  t t f  rP |  s d Sd d j g  |  D] } t | |  ^ q/  d S|  t j j k ry t t j j |  |  S|  t j j k r t t j j |  |  S|  d k r d S|  j
 d  } | d d k r | r d t j t | d	  f Sd Sn  | d d
 k r1| r*d t j t | d	  f Sd Sn  | d d k sQ| d d k rUd S| rkd t j } n d t j } d d d d d d h } t   } x* | d | k r| j | j d   qWd | k r| d 7} n
 | d 7} d | k r	| d t j 7} n | d t j 7} d | k r:| d t j 7} n | d t j 7} d | k rk| d t j 7} n | d t j 7} d | k r| d t j 7} n  d | k r| d t j 7} n  t |  d	 k rt | d  d	 k r
t j j rt d |    q
d Sn  | d | d 7} n_ | d d k rUt j j rNt d |    qUd Sn  d j |  }  | d t t j |   7} | S(   s   
    Compiles a keymap entry into a python expression.

    keydown determines if we are dealing with keys going down (press),
    or keys going up (release).
    s   (False)t   (s    or t   )t   _i    t	   mousedowns#   (ev.type == %d and ev.button == %d)i   t   mouseupt   joyt   pads   (ev.type == %dt   repeatt   altt   metat   shiftt   noshiftt   ctrls    and (ev.repeat)s    and (not ev.repeat)s    and (ev.mod & %d)s    and not (ev.mod & %d)s   Invalid key specifier %ss    and ev.unicode == %r)t   Ks    and ev.key == %d)N(   t
   isinstancet   listt   tuplet   joint   compile_eventt   renpyt   configt   keymapt   default_keymapt   Nonet   splitt   pygamet   MOUSEBUTTONDOWNt   intt   MOUSEBUTTONUPt   KEYDOWNt   KEYUPt   sett   addt   popt   KMOD_ALTt	   KMOD_METAt	   KMOD_CTRLt
   KMOD_SHIFTt   lent	   developert	   Exceptiont   getattrt	   constants(   t   keyt   keydownt   it   partt   rvt	   MODIFIERSt	   modifiers(    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR   #   sr    	1 	
c           C   s   t  j   t j   d S(   s   
    :doc: other

    Clears the keymap cache. This allows changes to :var:`config.keymap` to
    take effect without restarting Ren'Py.
    N(   t   event_cachet   cleart   keyup_cache(    (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt   clear_keymap_cache   s    
c         K   s   t  j j s d St |  t t f  s1 |  g }  n  i |  d 6| d 6} | j |  t j j	 t  j j
 j |  } t j j |  d S(   sL  
    :doc: other

    Queues an event with the given name. `Name` should be one of the event
    names in :var:`config.keymap`, or a list of such names.

    `up`
        This should be false when the event begins (for example, when a keyboard
        button is pressed.) It should be true when the event ends (when the
        button is released.)

    The event is queued at the time this function is called. This function will
    not work to replace an event with another - doing so will change event order.
    (Use :var:`config.keymap` instead.)

    This method is threadsafe.
    Nt
   eventnamest   up(   R   t   displayt	   interfaceR   R   R   t   updateR   t   eventt   Eventt   coret	   EVENTNAMEt   post(   t   nameR9   t   kwargst   datat   ev(    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt   queue_event   s    c         C   s   |  j  t j j j k r9 | |  j k r5 |  j r5 t St St	 j
 | d  } | d k r t d t | t  t    } | t	 | <n  | |   S(   s#  
    :doc: udd_utility

    Returns true if the pygame event `ev` matches `keysym`

    `keysym`
        One of:

        * The name of a keybinding in :var:`config.keymap`.
        * A keysym, as documented in the :ref:`keymap` section.
        * A list containing one or more keysyms.
    s   lambda ev : N(   t   typeR   R:   R?   R@   R8   R9   t   Truet   FalseR4   t   getR   t   evalR   t   globals(   RE   t   keysymt
   check_code(    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt	   map_event   s    c         C   s   |  j  t j j j k r7 | |  j k r7 |  j r7 t Sn  t j	 | d  } | d k r t d t | t  t    } | t | <n  | |   S(   sC   Returns true if the event matches the named keycode being released.s   lambda ev : N(   RG   R   R:   R?   R@   R8   R9   RH   R6   RJ   R   RK   R   RI   RL   (   RE   RB   RN   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt	   map_keyup   s    c         C   s   t  j j s d St  j j s  d St |  d  rK d t  j _ t  j j   n  t	 |  d  si t |  d  r d t  j _ t  j j   n  d S(   s   
    This handles setting skipping in response to the press of one of the
    CONTROL keys. The library handles skipping in response to TAB.
    Nt   skipt   slowt   stop_skipping(   R   R   t   allow_skippingt   storet	   _skippingRO   t   skippingt   exportst   restart_interactionRP   R   (   RE   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyRW      s    c         C   s   t  |  d  S(   Nt	   inspector(   RO   (   RE   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyRZ      s    c         C   si   |  d k r d St |  t j j  r2 |  j   n  t |  t t f  re x |  D] } t |  qN Wn  d S(   sH   
    Predicts some of the actions that may be caused by a variable.
    N(	   R   R   R   t   uit   Actiont   predictR   R   t   predict_action(   t   varR/   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR^     s    c         O   st   |  d k r d St |  t t f  rg d } x5 |  D]- } t | | |  } | d k	 r2 | } q2 q2 W| S|  | |   S(   s#  
    :doc: run
    :name: renpy.run
    :args: (action)

    Run an action or list of actions. A single action is called with no
    arguments, a list of actions is run in order using this function, and
    None is ignored.

    Returns the result of the first action to return a value.
    N(   R   R   R   R   t   run(   t   actiont   argsRC   R1   R/   t   new_rv(    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR`     s    c         C   sp   |  d k r d St |  t t f  rD x |  D] } t |  q, Wd St |  d d  } | d k	 rl |   n  d S(   sC   
    Calls the unhovered method on the variable, if it exists.
    Nt	   unhovered(   R   R   R   R   t   run_unhoveredR+   (   R_   R/   t   f(    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyRe   5  s    c         C   s   t  |  t t f  r` d  } x> |  D]6 } t | |  } | d  k sO | | k  r" | } q" q" W| St  |  t j j  r |  j |  Sd  S(   N(	   R   R   R   R   t   run_periodicR   R[   R\   t   periodic(   R_   t   stR1   R/   t   v(    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyRg   H  s    c         C   s   t  |  t t f  rY x- |  D]% } t  | t j j  r | j   Sq Wt d   |  D  St  |  t j j	  rx |  j   St
 Sd S(   s_   
    :doc: run

    Returns true if `action` indicates it is selected, or false otherwise.
    c         s   s   |  ] } t  |  Vq d  S(   N(   t   is_selected(   t   .0R/   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pys	   <genexpr>d  s    N(   R   R   R   R   RU   t
   SelectedIft   get_selectedt   anyR[   R\   RI   (   Ra   R/   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyRk   Y  s    
c         C   s   t  |  t t f  rY x- |  D]% } t  | t j j  r | j   Sq Wt d   |  D  St  |  t j j	  rx |  j   St
 Sd S(   s`   
    :doc: run

    Returns true if `action` indicates it is sensitive, or False otherwise.
    c         s   s   |  ] } t  |  Vq d  S(   N(   t   is_sensitive(   Rl   R/   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pys	   <genexpr>w  s    N(   R   R   R   R   RU   t   SensitiveIft   get_sensitivet   allR[   R\   RH   (   Ra   R/   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyRp   l  s    
c         C   s   t  |  t t f  rn g  } x6 |  D]. } t |  } | d  k	 r" | j |  q" q" W| rg d j |  Sd  Sn  t  |  t j j	  r |  j Sd  Sd  S(   Nt    (
   R   R   R   R
   R   t   appendR   R   R[   R\   (   t   clickedR1   R/   t   t(    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR
     s    t   Keymapc           B   s/   e  Z d  Z d d d  Z d   Z d   Z RS(   s   
    This is a behavior that maps keys to actions that are called when
    the key is pressed. The keys are specified by giving the appropriate
    k_constant from pygame.constants, or the unicode for the key.
    c         K   sT   | d  k	 r. t t |   j d d d |  n t t |   j d d  | |  _ d  S(   Nt   stylet   defaultt   activate_sound(   R   t   superRx   t   __init__R   (   t   selft   replacesR{   R   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR}     s    "c         C   sz   xs |  j  j   D]b \ } } t | |  r t j j |  j j  t |  } | d  k	 r] | St j
 j j    q q Wd  S(   N(   R   t	   iteritemsRO   R   RX   t   playRy   R{   R`   R   R:   R?   t   IgnoreEvent(   R~   RE   t   xt   yRi   RB   Ra   R1   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR=     s    c         C   s(   x! |  j  j   D] } t |  q Wd  S(   N(   R   t
   itervaluesR^   (   R~   R/   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt   predict_one_action  s    N(   t   __name__t
   __module__t   __doc__R   R}   R=   R   (    (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyRx     s   	t   RollForwardc           B   s    e  Z d  Z d   Z d   Z RS(   s/   
    This behavior implements rollforward.
    c         K   s#   t  t |   j |   | |  _ d  S(   N(   R|   R   R}   t   value(   R~   R   t
   properties(    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR}     s    c         C   s&   t  | d  r" t j j |  j  Sd  S(   Nt   rollforward(   RO   R   RX   t   roll_forward_coreR   (   R~   RE   R   R   Ri   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR=     s    (   R   R   R   R}   R=   (    (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR     s   	t   PauseBehaviorc           B   s#   e  Z d  Z e d  Z d   Z RS(   s   
    This is a class implementing the Pause behavior, which is to
    return a value after a certain amount of time has elapsed.
    c         K   s,   t  t |   j |   | |  _ | |  _ d  S(   N(   R|   R   R}   t   delayt   result(   R~   R   R   R   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR}     s    	c         C   sk   | |  j  k rD t j j j | |  j   r2 |  j St t j j _ n  t j j j t	 |  j  | d   d  S(   Ni    (
   R   R   t   gameR;   t   drawn_sinceR   RH   t   force_redrawt   timeoutt   max(   R~   RE   R   R   Ri   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR=     s
    (   R   R   R   RI   R}   R=   (    (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR     s   t   SoundStopBehaviorc           B   s#   e  Z d  Z e d  Z d   Z RS(   s   
    This is a class implementing the sound stop behavior,
    which is to return False when a sound is no longer playing
    on the named channel.
    c         K   s,   t  t |   j |   | |  _ | |  _ d  S(   N(   R|   R   R}   t   channelR   (   R~   R   R   R   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR}     s    	c         C   s6   t  j j j |  j  s |  j St  j j j d  d  S(   Ng?(	   R   t   audiot   musict   get_playingR   R   R   R;   R   (   R~   RE   R   R   Ri   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR=     s    (   R   R   R   RI   R}   R=   (    (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR     s   t   SayBehaviorc           B   s\   e  Z d  Z e Z d Z d g Z e d d g d d g d  Z d   Z	 d   Z
 d   Z RS(   s   
    This is a class that implements the say behavior,
    which is to return True (ending the interaction) if
    the user presses space or enter, or clicks the left
    mouse button.
    t   dismiss_unfocusedt   dismissc         K   sz   t  t |   j d | |  t | t t f  s= | g } n  | d  k	 r[ t |  |  _ n	 d  |  _ | |  _	 | |  _
 d  S(   NRz   (   R|   R   R}   R   R   R   R   R(   t
   afm_lengthR   t   allow_dismiss(   R~   Rz   t   afmR   R   R   R   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR}     s    		c         C   s   t  j j j    d  S(   N(   R   R:   t   ttst   TTSRoot(   R~   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt   _tts_all  s    c         C   s)   | |  _  t | j | j d  |  _ d  S(   Ni   (   t   textR   t   endt   startR   (   R~   R   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt   set_text  s    	c         C   s  |  j  r t j j j r t j j j r d t j j |  j  t j j t j j j } |  j	 d  k	 rz | |  j	 j   7} n  | | k r t j j r t j j   r t St j j j d  q t Sq t j j j | |  n  g  |  j D] } | t f ^ q g  |  j D] } | t f ^ q} x| D]\ } }	 t | |  r%|	 rY|  j   rYq%n  t j j rd  t j _ t j j   t j j j    n  t j j sd }
 n  t j rt j j j }
 n t j j j }
 | j t  j! k rd | t j j" } |
 d k r;| t j j# k  rt j j$   t j j j    qq|
 d k rd | t j j# k  rt j j$   t j j j    qqn  t j j j% rt j j j rt j j j& rt t j j _ t j j   t j j j    n  |  j' r|  j'   st j j j    qn  t Sq%Wt j j( d } t j j rt j j) rt j* j+ r| j t j j j, k r| | k rt j j j- rt St j j d k rt St j j.   j/ t  rt St t j _ t j j   qt j j j | |  n  d  S(   Ng      ?g?t   disablet   leftt   rightg     @@t   fast(0   R   R   R   t   preferencest   afm_timet
   afm_enableR   t	   afm_bonust   afm_charactersR   R   t   get_timet   afm_callbackRH   R;   R   R   R   RI   RO   t
   is_focusedRW   RX   RY   R:   R?   R   t   enable_rollback_sidet   mobilet   mobile_rollback_sidet   desktop_rollback_sideRG   R   R   t   screen_widtht   rollback_side_sizet   rollbackt   using_afm_enablet   afm_after_clickR   t
   skip_delayRT   RU   RV   t	   TIMEEVENTt   skip_unseent   contextt   seen_current(   R~   RE   R   R   Ri   t	   afm_delayR/   R   t   dismiss_eventt   check_focust   rollback_sidet   percentR   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR=     st    '.B			$$N(   R   R   R   RH   t	   focusableR   R   R   R}   R   R   R=   (    (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR     s   			t   Buttonc           B   s   e  Z i  Z d Z d Z d Z d Z d Z d Z	 d Z
 d Z d d  d d d d d d i  d d d d d d  Z d   Z d   Z d   Z e d  Z e d  Z d   Z d   Z d	   Z d
   Z d   Z d   Z d   Z RS(   t   buttonc         K   s   t  | t j j  r | } n  t t |   j | d | | | |  _ | |  _ | |  _	 | |  _
 | |  _ | |  _ |
 |  _ t |  _ | |  _ |	 |  _ | |  _ | |  _ d  |  _ t |  _ d  S(   NRy   (   R   R   R[   R\   R|   R   R}   Ra   t   selectedt	   sensitiveRv   t   hoveredRd   t	   alternateRH   R   t   role_parameterR   RM   t   alternate_keysymR   t   time_policy_dataRI   t   _duplicatable(   R~   t   childRy   Rv   R   Rd   Ra   t   rolet   time_policyR   R   R   R   RM   R   R   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR}     s"    														c         C   s   |  S(   N(    (   R~   Rb   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt
   _duplicate  s    c         C   sh   t  |  j  t  |  j  t  |  j  t  |  j  |  j rd x$ |  j j   D] } t  |  qM Wn  d  S(   N(   R^   Rv   R   Rd   R   R   R   (   R~   Rj   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR     s    	c      
   C   s  |  j  j r6 |  j  j | |  j |  j   \ } |  _ n  t t |   j | | | |  } |  j r|  j  j } | d  k	 r | \ } } }	 }
 n> |  j  j	 } |  j  j
 } | j |  j  j }	 | j |  j  j }
 |  j  j } | t k r | } ne | d  k	 rQy+ t j j j | | j | j | |  } WqQt |  r>| } qNt d   qQXn  | d  k	 rld } d } n d  } d  } | j |  d  | | |	 |
 | | | 	 n  | S(   Ns<   Focus_mask must be None, True, a displayable, or a callable.i    (   Ry   R   R   R|   R   R    Rv   t
   focus_rectR   t   left_margint
   top_margint   widtht   right_margint   heightt   bottom_margint
   focus_maskRH   R   R:   t   callableR*   t	   add_focus(   R~   R   R   Ri   t   atR1   t   rectt   fxt   fyt   fwt   fht   maskt   fmxt   fmy(    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR      s<    *!		+		c         C   su   t  t |   j |  d  } | s4 t |  j  } n  |  j |  j d  |  j d  k	 rq |  j j |  j d  n  | S(   Nt   hover(	   R|   R   t   focusR   R`   R   t   set_transform_eventR   R   (   R~   Rz   R1   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR     s    c         C   s   t  t |   j |  d  |  _ | sB t |  j  t |  j  n  |  j	 |  j
 d  |  j d  k	 r |  j j	 |  j
 d  n  d  S(   Nt   idle(   R|   R   t   unfocusR   t   longpress_startRe   R   R`   Rd   R   R   R   (   R~   Rz   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR     s    	c         C   s#   |  j  d  k	 r |  j  St |  j  S(   N(   R   R   Rk   Ra   (   R~   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyRk     s    c         C   s#   |  j  d  k	 r |  j  St |  j  S(   N(   R   R   Rp   Ra   (   R~   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyRp     s    c         C   s$  |  j  d  k	 rK |  j   r$ d } n d } |  j   rB |  j  } qZ d  } n d } |  j } |  j d  k	 ru |  j } n  | |  j k s | |  j k	 r t j j	 j
 |   | |  _ | |  _ n  |  j d  k	 r |  j |  j d t  t |  _ n  |  j |  j d t  t |  _ t t |   j   d  S(   Nt	   selected_t    t   idle_t   insensitive_(   Ra   R   Rk   Rp   Rv   R   R   R   R:   R    t
   invalidatet   set_style_prefixRH   R   RI   R|   R   t   per_interact(   R~   R   Rv   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR     s*    					c   
         s'    f d   } t    j |  } | d  k	 rC t j j j |  n  | j t k s^   j	 j
 r t t    j | | | |  } | d  k	 r | Sn    j d  k	 r   j d  k	 r t |   j  r |   j  Sn    j d  k	 r  j d  k	 rt |   j  r|   j  Sn    j   s"d  Sx6   j j   D]% \ } }	 t | |  r2t |	  Sq2W  j d  k	 rgt j j rg| j t j k r| j d k r|   _ |   _ |   _ t j j j t j j   n    j d  k	 rgt! j" |   j |   j  t j j# k rd    _ qd|   j t j j  k rdt j$ j% t j j&  t j j j'   |   j  Sqgn    j d  k	 rt | d  rt j j( j)    n    j d  k	 rt | d  rt j j( j)    n    j d  k	 rt | d  r|   j  S  j d  k	 r#t | d  r#|   j  Sd  S(   Nc            sH   t  j j   j j  t |   } | d  k	 r2 | St  j j j	    d  S(   N(
   R   RX   R   Ry   R{   R`   R   R:   R?   R   (   Ra   R1   (   R~   (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt   handle_click5  s
    i   t   button_ignoret   button_alternate_ignoret   button_selectt   button_alternate(*   Rg   Ra   R   R   R   R;   R   RG   t
   KEY_EVENTSRy   t
   key_eventsR|   R   R=   RM   Rv   RO   R   R   R   R   R   R`   R:   t   touchR   R   R   R   t   longpress_xt   longpress_yR   t   longpress_durationt   matht   hypott   longpress_radiusRX   t   vibratet   longpress_vibratet   after_longpressR?   R   (
   R~   RE   R   R   Ri   R   R   R1   RB   Ra   (    (   R~   s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR=   3  sR    !!			,c         C   s&   | r" t  t |   j | |  n  d  S(   N(   R|   R   R   (   R~   t   prefixt   root(    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR     s    c         C   s   d S(   NR   (    (   R~   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt   _tts  s    c         C   s   |  j  t |  j   S(   N(   t   _tts_commonR
   Ra   (   R~   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR     s    N(   R   R   R   R   Ra   R   R   R   R   R   RM   R   R}   R   R   R    RI   R   R   Rk   Rp   R   R=   R   R
  R   (    (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR     s2   				
	,			"	M		R   t   button_textc         K   s4   t  j j j |  d | }  t |  d | d | | S(   NRy   Rv   (   R   R   t   TextR   (   R   Ry   t
   text_styleRv   R   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt
   TextButton  s    t   ImageButtonc           B   sG   e  Z d  Z d d d d d d d d d d d 
 Z d   Z d   Z RS(   s8   
    Used to implement the guts of an image button.
    t   image_buttonc         K   s  | p	 | } | p | } | p! | } | p- | } | p9 | } | pE | } | pQ | } t  d t j j |  d t j j |  d t j j |  d t j j |  d t j j |  d t j j |  d t j j |  d t j j |   |  _ t t |   j d  d	 |	 d
 |
 d | | d  S(   NR   t   hover_R   t	   activate_t   selected_idle_t   selected_hover_t   selected_insensitive_t   selected_activate_Ry   Rv   R   (	   t   dictR   t   easyt   displayablet   state_childrenR|   R  R}   R   (   R~   t
   idle_imaget   hover_imaget   insensitive_imaget   activate_imaget   selected_idle_imaget   selected_hover_imaget   selected_insensitive_imaget   selected_activate_imageRy   Rv   R   R   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR}     s*    c         C   s   |  j  j   S(   N(   R  t   values(   R~   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt   visit  s    c         C   s   |  j  j p |  j |  j  j S(   N(   Ry   R   R  R  (   R~   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt	   get_child  s    N(   R   R   R   R   R}   R%  R&  (    (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR    s   	t   HoveredProxyc           B   s   e  Z d    Z d   Z RS(   c         C   s   | |  _  | |  _ d  S(   N(   t   at   b(   R~   R(  R)  (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR}     s    	c         C   s!   |  j    |  j r |  j   Sd  S(   N(   R(  R)  (   R~   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt   __call__  s    
	(   R   R   R}   R*  (    (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR'    s   	c           C   s   g  a  g  a d  a d  S(   N(   t   input_valuest   inputsR   t   default_input_value(    (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt   input_pre_per_interact  s    c          C   s   x* t  D] }  |  t k r Pq q Wt a t a x~ t D]v }  |  j t k oX t oX |  j j } |  j j   } |  j | k s | |  j	 k r4 |  j
 | |  t |  |  _ q4 q4 Wd  S(   N(   R+  t   current_input_valueR-  RH   t   input_value_activeR,  R   t   editablet   get_textt   contentt   update_textR(   t	   caret_pos(   R/   R1  R3  (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt   input_post_per_interact  s    !t   Inputc           B   s   e  Z d  Z d Z d Z d Z d Z d Z d Z	 d Z
 d Z d Z d d d d d d d d d d e d d d  Z d   Z e d  Z d   Z d	   Z d
   Z d   Z d   Z d   Z RS(   s9   
    This is a Displayable that takes text as input.
    R   i    u    t   inputc      	   K   s  t  t |   j d d | d |
 d t | | rR | |  _ | j } | j   } n  t |  |  _ |  j |  _	 | |  _
 | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ i d  d 6} x. | D]& } | j d  r | | | | <q q Wt j j j d d d | |  |  _ t |  j	  |  _ |  j |  _ |	 rwt |  _ t |  j |	 j  |	 _ t |  j |	 j   |	 _  n  t! |
 t  r|
 j	 |  _	 |
 j |  _ |
 j |  _ n  |  j" |  j	 |  j  d  S(   NR   Ry   R   t
   substitutet   colort   xmaximumi   (#   R|   R7  R}   RI   R   R   R2  t   unicodeRz   R3  t   lengtht   allowt   excludeR  t   suffixt   changedR1  t   pixel_widthR   t   endswithR   R:   t   imaget   Solidt   caretR(   R5  t   old_caret_posR'  t   enableR   R   Rd   R   R4  (   R~   Rz   R=  Ry   R>  R?  R  R@  RA  R   R   R1  RB  R   R   t
   caretpropsR/   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR}     s>    +										$	c         C   sM   |  j  |  j k rI |  j  |  _ t |  j  |  _ |  j |  j |  j  n  d  S(   N(   Rz   R3  R(   R5  R4  R1  (   R~   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt   _showW  s    c            s	  t  j j j }  j } |  j k s<   j k s< | rU t  j j j  d  n    _  j j	     d  k r  j	   n  | rV| j  _ | j | j  } | j | j | j | j !} | j | j | j } d  | r d | j d d  d 7 n  | r, d | j d d  d 7 n  | re d | j d d  d 7 qen d  _ d       f d   }	 |	 |  | r j r j   \ }
 } |
  j k r j  _ |	 |  d  Sn  | | k r|  _  j r j |  qn  d  S(	   Ni    R   s   {u=1}t   {s   {{s   {/u}s   {u=2}c            s   |  d k r d }  n   r{ t  |   }  j  j |  d  j !j d d     |   j | !j d d   j g  n(  j  j |  j d d   j g  d  S(   NR   u   ​i    RK  s   {{(   R(   R   R  R5  t   replaceR@  (   R3  t   l(   RF  t	   edit_textR1  R~   (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt   set_content  s    	+)(   R   R:   R;   t   text_editingR3  R1  R    t   redrawRy   RF  R   R   RN  R   R=  RL  RB  t   sizeRG  R5  RA  (   R~   t   new_contentR1  t
   check_sizet   editt   old_contentt   edit_text_0t   edit_text_1t   edit_text_2RO  t   wt   _h(    (   RF  RN  R1  R~   s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR4  ]  sD    	$	!!$	

		c         C   sH   | |  j  j k r+ |  j |  j |  j  n  t t |   j | |  d  S(   N(   Ry   R  R4  R3  R1  R|   R7  R   (   R~   R  R	  (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR     s    c         C   s   |  j  |  j t  d  S(   N(   R4  R3  RH   (   R~   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyRH    s    c         C   s   |  j  |  j t  d  S(   N(   R4  R3  RI   (   R~   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR     s    c         C   sW   |  j  d  k	 rS t j |   t j |  j   |  j  j rS t d  k rS |  j  a qS n  d  S(   N(   R   R   R,  Ru   R+  Rz   R-  (   R~   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR     s
    c         C   s,  |  j  |  _ |  j s d  St |  j  } d  } t | d  r |  j r |  j  d k r |  j d |  j  d !|  j |  j  | !} |  j  d 8_  |  j | |  j  n  t j	 j
 j |  d  t j	 j j    nRt | d  r<|  j } |  j r| d |  j  !|  j |  j |  j  } n  |  j r,|  j j   S|  j s| Snt | d  r|  j  d k r|  j  d 8_  |  j |  j |  j  n  t j	 j
 j |  d  t j	 j j    nrt | d  r|  j  | k  r|  j  d 7_  |  j |  j |  j  n  t j	 j
 j |  d  t j	 j j    nt | d  r|  j  | k  rz|  j d |  j  !|  j |  j  d | !} |  j | |  j  n  t j	 j
 j |  d  t j	 j j    nzt | d  rd |  _  |  j |  j |  j  t j	 j
 j |  d  t j	 j j    n!t | d	  rW| |  _  |  j |  j |  j  t j	 j
 j |  d  t j	 j j    n | j t j k r|  j |  j |  j d
 t t j	 j j    n | j t j k rd |  _ | j } n^ | j t j k r| j rt | j d  d k r| j } qt j	 j j   rd } qn  | d  k	 r(d } xT | D]L }	 |  j r\|	 |  j k r\q8n  |  j rz|	 |  j k rzq8n  | |	 7} q8W|  j r|  j t |  j  }
 | |
  } n  | r|  j d |  j  !| |  j |  j  | !} |  j  t |  7_  |  j | |  j d
 t n  t j	 j j    n  d  S(   Nt   input_backspacei    i   t   input_entert
   input_leftt   input_rightt   input_deletet
   input_homet	   input_endRT  R   i    (    R5  RG  R1  R   R(   R3  RO   R4  R   R:   R    RQ  R?   R   RN  R   t   enterRA  RG   R   t   TEXTEDITINGRH   t	   TEXTINPUTR   R   R<  t   ordR;   t   text_event_in_queueR>  R?  R=  (   R~   RE   R   R   Ri   RM  t   raw_textR3  R   t   ct	   remaining(    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR=     s    	(		(		(			"	(c         C   s:   t  t |   j | | | |  } |  j r6 t | _ n  | S(   N(   R|   R7  R    R1  RH   t
   text_input(   R~   R   R   Ri   R   R1   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR    (  s    !	N(   R   R   R   R   RA  R  R@  R5  RG  RB  Rz   RN  R   RH   R}   RJ  RI   R4  R   RH  R   R   R=   R    (    (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR7    s>   /	D					ot
   Adjustmentc           B   s   e  Z d  Z d d d d d d d d  Z d   Z d   Z e e e  Z d   Z	 d   Z
 e e	 e
  Z d   Z d	   Z e e e  Z d
   Z d   Z e e e  Z d   Z d   Z d   Z RS(   s  
    :doc: ui
    :name: ui.adjustment class

    Adjustment objects represent a value that can be adjusted by a bar
    or viewport. They contain information about the value, the range
    of the value, and how to adjust the value in small steps and large
    pages.


    i   i    c         C   st   t  t |   j   | d k r1 | r1 t } q1 n  | |  _ | |  _ | |  _ | |  _ | |  _	 | |  _
 | |  _ d S(   s+  
        The following parameters correspond to fields or properties on
        the adjustment object:

        `range`
            The range of the adjustment, a number.

        `value`
            The value of the adjustment, a number.

        `step`
            The step size of the adjustment, a number. If None, then
            defaults to 1/10th of a page, if set. Otherwise, defaults
            to the 1/20th of the range.

            This is used when scrolling a viewport with the mouse wheel.

        `page`
            The page size of the adjustment. If None, this is set
            automatically by a viewport. If never set, defaults to 1/10th
            of the range.

            It's can be used when clicking on a scrollbar.

        The following parameters control the behavior of the adjustment.

        `adjustable`
             If True, this adjustment can be changed by a bar. If False,
             it can't.

             It defaults to being adjustable if a `changed` function
             is given or if the adjustment is associated with a viewport,
             and not adjustable otherwise.

        `changed`
            This function is called with the new value when the value of
            the adjustment changes.

        `ranged`
            This function is called with the adjustment object when
            the range of the adjustment is set by a viewport.

        .. method:: change(value)

            Changes the value of the adjustment to `value`, updating
            any bars and viewports that use the adjustment.
         N(   R|   Rl  R}   R   RH   t   _valuet   _ranget   _paget   _stepRA  t
   adjustablet   ranged(   R~   t   rangeR   t   stept   pageRA  Rq  Rr  (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR}   E  s    1						c         C   s    |  j  |  j k r |  j S|  j  S(   N(   Rm  Rn  (   R~   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt	   get_value  s    c         C   s   | |  _  d  S(   N(   Rm  (   R~   Rj   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt	   set_value  s    c         C   s   |  j  S(   N(   Rn  (   R~   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt	   get_range  s    c         C   s&   | |  _  |  j r" |  j |   n  d  S(   N(   Rn  Rr  (   R~   Rj   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt	   set_range  s    		c         C   s!   |  j  d  k	 r |  j  S|  j d S(   Ni
   (   Ro  R   Rn  (   R~   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt   get_page  s    c         C   s   | |  _  d  S(   N(   Ro  (   R~   Rj   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt   set_page  s    c         C   sd   |  j  d  k	 r |  j  S|  j d  k	 r? |  j d k r? |  j d St |  j t  r\ |  j d Sd Sd  S(   Ni    i
   i   (   Rp  R   Ro  Ru  R   Rn  t   float(   R~   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt   get_step  s    c         C   s   | |  _  d  S(   N(   Rp  (   R~   Rj   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt   set_step  s    c         C   s   t  j |  g   j |  d  S(   N(   t   adj_registeredt
   setdefaultRu   (   R~   t   d(    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt   register  s    c         C   s   | d k  r d } n  | |  j  k r0 |  j  } n  | |  j k r | |  _ x0 t j |  g   D] } t j j j | d  q[ W|  j r |  j |  Sn  d  S(   Ni    (
   Rn  Rm  R  R  R   R:   R    RQ  RA  R   (   R~   R   R  (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt   change  s    			c         C   s7   x0 t  j |  g   D] } t j j j | d  q Wd S(   sk   
        Updates things that depend on this adjustment without firing the
        changed handler.
        i    N(   R  R  R   R:   R    RQ  (   R~   R  (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR<     s    N(   R   R   R   R   R}   Rv  Rw  t   propertyR   Rx  Ry  Rs  Rz  R{  Ru  R}  R~  Rt  R  R  R<   (    (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyRl  8  s"   ?										t   Barc           B   s   e  Z d  Z d Z d   Z d d d d d d d d d d e d d d d  Z d   Z d   Z	 d   Z
 e d  Z e d  Z d	   Z d
   Z d   Z d   Z RS(   sf   
    Implements a bar that can display an integer value, and respond
    to clicks on that value.
    i   c         C   sn   | d k  rR t  |  j |  j d |  j |  _ |  j j |   |  ` |  ` |  ` n  | d k  rj d  |  _ n  d  S(   Ni   RA  i   (   Rl  Rs  R   RA  t
   adjustmentR  R   (   R~   t   version(    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt   after_upgrade  s    !	c      	   K   s  d  |  _ | d  k r t | t j j  rw t | t  rL | j | j  n  | |  _ | j   } t j	 j
 j d  q t | | d | d | d | } n  |
 d  k r |  j d  k	 r | r |  j j   d }
 q |  j j   d }
 q | r d }
 q d }
 n  | d  k	 r| | d <n  | d  k	 r2| | d	 <n  t t |   j d
 |
 |  | |  _ t |  _ d |  _ d |  _ d |  _ t |  _ | |  _ | |  _ d  S(   Ni    Rt  Ru  RA  i   t   vbart   barR;  t   ymaximumRy   (   R   R   R   R   R[   t   BarValueR  R   t   get_adjustmentR   R;   R   Rl  t	   get_styleR|   R}   R  RH   R   t	   thumb_dimR   R   RI   t   hiddenR   Rd   (   R~   Rs  R   R   R   RA  R  Rt  Ru  R  Ry   t   verticalR   R   Rd   R   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR}     s<    		$									c         C   su   |  j  d  k	 rR |  j  j   } | j  |  j  k rF t j j j |   n  | |  _ n  |  j j |  _	 |  j j
 |   d  S(   N(   R   R   R  R   R:   R    R   R  Rq  R   R  (   R~   R  (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR   '  s    c         C   s#   t  j j j } |  j j |  d  S(   N(   R   R:   R]   R  Ry   t   _predict_window(   R~   t   pd(    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt   predict_one3  s    c         C   s)  |  j  d  k	 rI |  j  j |  } | d  k	 rI t j j j |  |  qI n  |  j j } |  j j	 } | d  k	 r t
 | |  } t
 | |  } n  | |  _ | |  _ |  j j } |  j j  }	 |  j j }
 | d k r)|  j j d k rt |  _ t j j j | |  S|  j j d k r)|  j d t  q)n  t |  _ |  j j |  j j ArU| |	 }	 n  |  j j } | rp| } n | } |  j j } |  j j } | | | } | r| |
 | |
 } n | } t |  j j  } | rt |  j j | | | |  } t |  j j | | | |  } | j } nE t |  j j | | | |  } t |  j j | | | |  } | j } | | d 8} | |  _ | | 8} | r| |	 | } n | } t |  } | | } | | 7} | | 7} t j j j | |  } | rt|  j j  rt |  j j! | | | |  } t |  j j" | | | |  } | j# | d | | f  | j# | d d t | j# | d | | f d t | j# | d | | f  qt |  j j! | | | |  } t |  j j" | | | |  } | j# | d | | f  | j# | j$ d d | | f  d d t | j# | j$ d | | | | f  d | | f d t | j# | d | | f  n|  j j  r)t |  j j! | | | |  } t |  j j" | | | |  } | j# | | | d f  | j# | d	 d t | j# | | | d f d t | j# | | | d f  n t |  j j! | | | |  } t |  j j" | | | |  } | j# | | | d f  | j# | j$ d d | | f  d
 d t | j# | j$ | | d | | f  | | d f d t | j# | | | d f  |  j% r%| j& |  d  d d | |  n  | S(   Ni    t   hidet   insensitiveR   i   t   main(   i    i    (   i    i    (   i    i    (   i    i    ('   R   R   Rh   R   R:   R    RQ  Ry   t   xminimumt   yminimumR   R   R   R  Rs  Ru  t   unscrollableRH   R  R   R   RI   t
   bar_invertt   bar_verticalt   fore_guttert
   aft_guttert   abst   thumb_offsett   thumbt   thumb_shadowR  R   t   bar_resizingt   fore_bart   aft_bart   blitt
   subsurfaceR   R   (   R~   R   R   Ri   R   RQ  R  R  Rs  R   Ru  R  t	   dimensionR  R  t   activeR  R  R  R  t	   fore_sizet   aft_sizeR1   t   foresurft   aftsurf(    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR    7  s    							



 +9 +9	c         C   s=   t  t |   j |  |  j d  | s9 t |  j  n  d  S(   NR   (   R|   R  R   R   R`   R   (   R~   Rz   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR     s    c         C   sG   t  t |   j   |  j d  | sC t |  j  t |  j  n  d  S(   NR   (   R|   R  R   R   Re   R   R`   Rd   (   R~   Rz   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR     s
    c         C   s  |  j  s d  S|  j   s d  S|  j r* d  S|  j j } |  j j } | } |  j j } |  j j	 | A}	 |	 rw | | } n  t
 j j j   |  k }
 t } t } |
 r t | d  r t
 j j j d  t
 j j j |   |  j d t  t } t }
 t } n  |
 r| rd } d } n d } d } t | |  r^t
 j j j d  | |  j j 8} t } n  t | |  rt
 j j j d	  | |  j j 7} t } n  | j t j t j t j f k r| r|  j j } |  j j } |  j | | |  j } | r| | |  j d
 | | } q{d } n\ |  j j } |  j j } |  j | | |  j } | ru| | |  j d
 | | } n d } t } n  t  | t!  rt! |  } n  | d k  rd } n  | | k r| } qn  |	 r| | } n  |
 r=| r=t | d  r=t
 j j j d  |  j d t  t
 j j j d   t } n  | | k rn|  j j" |  } | d  k	 rn| Sn  | rt
 j j# j$    n d  Sd  S(   Nt   bar_activatet   activateR  t   bar_downt   bar_upt	   bar_rightt   bar_leftt   decreaset   increasei   i    t   bar_deactivatet
   deactivateR  (%   R   R   R   R  R  Rs  R   Ry   R  R  R   R:   R   t   get_grabRI   RO   R   t   speakt   set_grabR   RH   Rt  RG   R   t   MOUSEMOTIONR   R   R  R  R   R  R   R   R   R  R?   R   (   R~   RE   R   R   Ri   Rs  t	   old_valueR   R  t   invertt   grabbedt   just_grabbedt   ignore_eventR  R  t   tguttert   bguttert   zone_heightt   lguttert   rguttert
   zone_widthR1   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR=     s    						! 	 			c         C   s&   | r" t  t |   j | |  n  d  S(   N(   R|   R  R   (   R~   R  R	  (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR   )  s    c         C   s   d S(   NR   (    (   R~   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR
  -  s    c         C   s1   |  j  d  k	 r |  j  j } n d } |  j |  S(   NR  (   R   R   R
   R  (   R~   R
   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR   0  s    N(   R   R   R   t   __version__R  R   RI   R}   R   R  R    R   R   R=   R   R
  R   (    (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR    s4   	2			|	g		t   Conditionalc           B   s)   e  Z d  Z d   Z d   Z d   Z RS(   s   
    This class renders its child if and only if the condition is
    true. Otherwise, it renders nothing. (Well, a Null).

    Warning: the condition MUST NOT update the game state in any
    way, as that would break rollback.
    c         O   sY   t  t |   j | |   | |  _ t j j j   |  _ t	 |  j t
 t j   |  _ d  S(   N(   R|   R  R}   t	   conditionR   R:   t   layoutt   Nullt   nullRK   t   varsRU   t   state(   R~   R  Rb   R   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR}   C  s    	c         C   s?   |  j  r" t |  j | | | |  St |  j | | | |  Sd  S(   N(   R  R    R   R  (   R~   R   R   Ri   R   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR    K  s    	c         C   so   t  |  j t t j   } | |  j k rC t j j j |  d  n  | |  _ | rk |  j	 j
 | | | |  Sd  S(   Ni    (   RK   R  R  R   RU   R  R:   R    RQ  R   R=   (   R~   RE   R   R   Ri   R  (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR=   Q  s    	(   R   R   R   R}   R    R=   (    (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR  :  s   		t
   TimerStatec           B   s   e  Z d  Z e Z d Z RS(   sJ   
    Stores the state of the timer, which may need to be rolled back.
    N(   R   R   R   RI   t   startedR   t
   next_event(    (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR  ^  s   t   Timerc           B   s>   e  Z d  Z e Z d   Z d e d i  d d  Z d   Z RS(   i   c         C   s=   | d k  r9 t    |  _ |  j |  j _ |  j |  j _ n  d  S(   Ni   (   R  R  R  R  (   R~   R  (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR  o  s    c         K   s   t  t |   j |   | d  k r1 t d   n  | d k rL t d   n  | |  _ | |  _ d  |  _ | |  _ | |  _	 | |  _
 t |  _ | d  k	 r | j |  _ n t   |  _ d  S(   Ns%   A timer must have an action supplied.i    s   A timer's delay must be > 0.(   R|   R  R}   R   R*   R   R	   R  t   functionRb   RC   RI   R  R  R  (   R~   R   Ra   R	   Rb   RC   R   R   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR}   u  s    							c         C   s   |  j  } | j s. t | _ | |  j | _ n  | j d  k rA d  S| | j k  rn t j j j	 | j |  d  S|  j
 s d  | _ nO | j |  j | _ | j | k  r | |  j | _ n  t j j j	 | j |  t |  j |  j |  j  S(   N(   R  R  RH   R   R  R   R   R   R;   R   R	   R`   R  Rb   RC   (   R~   RE   R   R   Ri   R  (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR=     s     				N(    (	   R   R   R  RI   R  R  R   R}   R=   (    (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR  i  s
   	t	   MouseAreac           B   s2   e  Z d  Z d d d d  Z d   Z d   Z RS(   i    c         K   sb   t  t |   j |   | |  _ | |  _ t |  _ | d  k	 rL | j |  _ n  d |  _ d |  _	 d  S(   Ni    (
   R|   R  R}   R   Rd   RI   t
   is_hoveredR   R   R   (   R~   R   Rd   R   R   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR}     s    				c         C   s,   | |  _  | |  _ | | |  _ t | |  S(   N(   R   R   t   at_st_offsetR   (   R~   R   R   Ri   R   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR      s    		c         C   s  t  j j j   r d  S|  j j d  k	 rq t  j j j |  j j |  j |  j	 | |  j
 |  } | j | |  } nM d | k o |  j k  n r d | k o |  j	 k  n r t } n t } | r |  j r t |  _ t |  j  S| r|  j rt |  _ t |  j  t |  j  n  d  S(   Ni    (   R   R:   R   R  Ry   R   R   R    R   R   R  t   is_pixel_opaqueRH   RI   R  R`   R   Re   Rd   (   R~   RE   R   R   Ri   t   crendR  (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR=     s    4>			N(   R   R   R  R   R}   R    R=   (    (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR    s   	t   OnEventc           B   s,   e  Z d  Z g  d  Z d   Z d   Z RS(   s   
    This is a displayable that runs an action in response to a transform
    event. It's used to implement the screen language on statement.
    c         C   s)   t  t |   j   | |  _ | |  _ d S(   s   
        `event`
            A string giving the event name.

        `action`
            An action or list of actions that are run when the event occurs.
        N(   R|   R  R}   t
   event_nameRa   (   R~   R=   Ra   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR}     s    		c         C   s#   | |  j  k r t |  j  n  d  S(   N(   R  R`   Ra   (   R~   R=   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR     s    c         C   s   t  j j j d d  S(   Ni    (   R   R:   R    R   (   R~   R   R   Ri   R   (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR      s    (   R   R   R   R}   R   R    (    (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyR    s   	(F   t   renpy.displayR   t   renpy.audiot   renpy.display.renderR    R   t   pygame_sdl2R   R  R   R4   R6   R7   RI   RF   RO   RP   RW   RZ   R^   R`   Re   Rg   Rk   Rp   R
   R:   R  R  Rx   R   R   R   R   R   R    Rd  Re  R   t   WindowR   R   R  R  t   objectR'  R/  R0  R-  R+  R,  R.  R6  R   R  R7  R  t   ObjectRl  R?   t   DisplayableR  t	   ContainerR  t   pythont   RevertableObjectR  R  R  R  (    (    (    s>   E:\Version 1-0-7\Games\DDLC-1.1.1-pc\renpy\display\behavior.pyt   <module>   sj   	j	!											# 6	
	 ' h$F7