
P\c           @  sy   d  d l  m Z d  d l Z d  d l Z d   Z d e j j j	 f d     YZ
 e
 e j j _
 d e
 f d     YZ d S(   i(   t   print_functionNc         C  s   |  S(   sj   
    An edgescroll function that causes the move speed to be proportional
    from the edge distance.
    (    (   t   n(    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\viewport.pyt   edgescroll_proportional   s    t   Viewportc           B  s   e  Z d  Z e Z e Z d   Z d d d d d e e e d d d d d e e d  Z	 d   Z
 d   Z d   Z d   Z d   Z d	   Z d
   Z d   Z RS(   i   c         C  s3  | d k  rr t  j j j d d  |  _ t  j j j d d  |  _ t |  _ t |  _ t |  _	 d |  _
 d |  _ n  | d k  r d  |  _ n  | d k  r t |  _ t |  _ d  |  _ d |  _ d |  _ d  |  _ n  | d k  rd  |  _ d  |  _ d |  _ t |  _ d  |  _ d  |  _ n  | d k  r/|  j	 |  _ n  d  S(   Ni   i    i   i   i   i   (   NN(   t   renpyt   displayt   behaviort
   Adjustmentt   xadjustmentt   yadjustmentt   Falset   set_adjustmentst
   mousewheelt	   draggablet   widtht   heightt   Nonet   drag_positiont	   edge_sizet
   edge_speedt   edge_functiont   edge_xspeedt   edge_yspeedt   edge_last_stt   xadjustment_paramt   yadjustment_paramt   offsets_paramt   Truet   set_adjustments_paramt   xinitial_paramt   yinitial_paramt	   focusable(   t   selft   version(    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\viewport.pyt   after_upgrade.   s4    														t   viewportc         K  s  t  t |   j d |
 |  | d  k	 r8 |  j |  n  | |  _ | |  _ | |  _ | |  _ | |  _	 | |  _
 |  j   t | t  r | j r | j j |  j _ | j j |  j _ | j j |  j _ | j j |  j _ | j |  _ | j |  _ | j |  _ n	 d  |  _ | \ |  _ |  _ | |  _ | |  _ | |  _ | |  _ | pG| |  _ d |  _ d |  _ d |  _ d |  _ d  |  _  |	 d  k	 r|	 d |  _! |	 d |  _" t# |	  d k r|	 d |  _$ qt% |  _$ n d |  _! d |  _" t% |  _$ d  S(   Nt   stylei    i   i   i   (&   t   superR   t   __init__R   t   addR   R   R   R   R   R   t   _showt
   isinstancet   offsetsR   t   ranget   valueR	   t   xoffsett   yoffsetR   t   child_widtht   child_heightR   R   t	   arrowkeyst   pagekeysR   R   R   R   R   R   R   R   t   lenR   R   (   R    t   childt
   child_sizeR*   R   R	   R   R   R   t
   edgescrollR$   t   xinitialt   yinitialt   replacesR1   R2   t
   properties(    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\viewport.pyR&   N   sN    						
												c         C  s  |  j  d  k r- t j j j d d  |  _ n |  j  |  _ |  j d  k rf t j j j d d  |  _ n |  j |  _ |  j j	 d  k r t
 |  j _	 n  |  j j	 d  k r t
 |  j _	 n  |  j |  _ |  j } | d d  k	 r | d n |  j |  _ | d d  k	 r	| d n |  j |  _ d  S(   Ni   i    (   R   R   R   R   R   R   R   R   R	   t
   adjustableR   R   R   R   R   R-   R   R.   (   R    R*   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\viewport.pyR(      s    	&c         C  s$   |  j  j |   |  j j |   d  S(   N(   R   t   registerR	   (   R    (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\viewport.pyt   per_interact   s    c         C  s  |  j  } |  j } |  j j s0 t | |  } n  |  j j sN t | |  } n  t | |  j j  } t | |  j j  } t	 j
 j j rR|  j rRt | | d  } |  j j | k s |  j j | k r | |  j _ | |  j _ |  j j   n  t | | d  } |  j j | k s'|  j j | k rR| |  j _ | |  j _ |  j j   qRn  |  j d k	 rt |  j t  r|  j } n t | | d  |  j } | |  j _ n  |  j d k	 rt |  j t  r|  j } n t | | d  |  j } | |  j _ n  |  j r|  j d k	 r|  j s(|  j rt | |  j d  }	 |  j j |  j j |	 |  j  |  j j |  j j |	 |  j  |  j |  n  t |  j j  }
 t |  j j  } | | k p| | k |  _ |
 | | | f S(   s>  
        This is called by render once we know the width (`cw`) and height (`ch`)
        of all the children. It returns a pair of offsets that should be applied
        to all children.

        It also requires `st`, since hit handles edge scrolling.

        The returned offsets will be negative or zero.
        i    N(    R   R   R$   t   xfillt   mint   yfillt   maxt   xminimumt   yminimumR   R   t   rendert   sizingR   R   R+   t   paget   updateR	   R-   R   R)   t   intR,   R.   R   R   R   R   t   changet   check_edge_redrawt	   _clipping(   R    t   cwt   cht   stR   R   t   xaranget   yarangeR,   t   durationt   cxot   cyo(    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\viewport.pyt   update_offsets   sL    		$$*!!c         C  s  | |  _  | |  _ |  j p | } |  j p- | } t j j j |  j | | | |  } | j   \ } }	 |  j	 | |	 |  \ }
 } } } |
 | f g |  _
 t j j j | |  } | j | |
 | f  | j d d | | f d t } |  j s |  j r| j |  d  d d | |  n  | S(   Ni    t   focus(   R   R   R/   R0   R   R   RD   R4   t   get_sizeRT   R*   t   Rendert   blitt
   subsurfaceR   R   R1   t	   add_focusR   (   R    R   R   RN   t   atR/   R0   t   surfRL   RM   RR   RS   t   rv(    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\viewport.pyRD      s    		$!!c         C  s   t  } |  j d k r6 |  j j |  j j k  r6 t } n  |  j d k  r` |  j j d k r` t } n  |  j d k r |  j j |  j j k  r t } n  |  j d k  r |  j j d k r t } n  | r t j	 j
 j |  d  | |  _ n	 d  |  _ d  S(   Ni    (   R
   R   R   R,   R+   R   R   R	   R   R   RD   t   redrawR   R   (   R    RN   R^   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\viewport.pyRJ     s    '	!	'	!	c         C  s  d  |  _ d  |  _ t t |   j | | | |  } | d  k	 rC | S|  j rt j j	 j
   |  k r|  j \ } } | | } | | }	 |  j j |  j j |  |  j j |  j j |	  | | f |  _ t j j j | d  rt j j	 j d   t j j j    qn  d | k o'|  j k  n oHd | k oF|  j k n sfd |  _ d |  _ t }
 n t }
 |
 r|  j r|  j d k r|  j } t } nQ |  j d k r|  j } t } n0 |  j d k r|  j } t } n |  j } t } t j j j | d  r\| r| j d k rd  S| j | j | j  } | d  k	 rG| St j j j    n  t j j j | d  r| r| j | j k rd  S| j | j | j  } | d  k	 r| St j j j    qn  |  j rt j j j | d  rO|  j j d k rd  S|  j j |  j j |  j j  } | d  k	 r:| St j j j    n  t j j j | d	  r|  j j |  j j k rd  S|  j j |  j j |  j j  } | d  k	 r| St j j j    n  t j j j | d
  r?|  j j d k rd  S|  j j |  j j |  j j  } | d  k	 r*| St j j j    n  t j j j | d  r|  j j |  j j k rsd  S|  j j |  j j |  j j  } | d  k	 r| St j j j    qn  |  j rt j j j | d  r%|  j j |  j j |  j j   } | d  k	 r| St j j j    n  t j j j | d  r|  j j |  j j |  j j   } | d  k	 ro| St j j j    qn  |
 r|  j rt j j j | d  rt j j	 j!   } | d  k s| |  k r| | f |  _ t j j	 j |   t j j j    qqn  |
 r|  j" r| j# t$ j% t$ j& t$ j' g k rd   } | | |  j |  j" |  j  } | | | |  j" d  8} |  j( |  j) |  |  _ | | |  j |  j" |  j  } | | | |  j" d  8} |  j( |  j) |  |  _ | s| r|  j* |  qd  |  _+ n  d  S(   Nt   viewport_drag_endi    s   horizontal-changeRI   t
   horizontalt   viewport_upt   viewport_downt   viewport_leftarrowt   viewport_rightarrowt   viewport_uparrowt   viewport_downarrowt   viewport_pageupt   viewport_pagedownt   viewport_drag_startc         S  s:   d |  | | | }  |  d k  r& d S|  d k r6 d S|  S(   s  
                Given a position `n`, computes the speed. The speed is 0.0
                when `n` == `zero`, 1.0 when `n` == `one`, and linearly
                interpolated when between.

                Returns 0.0 when outside the bounds - in either direction.
                g      ?g        (    (   R   t   zerot   one(    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\viewport.pyt   speed  s    	(,   R   R-   R.   R%   R   t   eventR   R   R   RU   t   get_grabR   R   RI   R,   R	   R   t	   map_eventt   set_grabt   coret   IgnoreEventR   R   R   R   R
   R   R   t   stepR+   R1   R2   RF   t   get_focusedR   t   typet   pygamet   MOUSEMOTIONt   MOUSEBUTTONDOWNt   MOUSEBUTTONUPR   R   RJ   R   (   R    t   evt   xt   yRN   R]   t   oldxt   oldyt   dxt   dyt   insidet
   adjustmentRI   t   focusedRl   t   xspeedt   yspeed(    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\viewport.pyRm   ,  s    		!!

>											""""	""0	c         C  s#   | |  _  t j j j |  d  d  S(   Ni    (   R-   R   R   RD   R^   (   R    t   offset(    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\viewport.pyt   set_xoffset  s    	c         C  s#   | |  _  t j j j |  d  d  S(   Ni    (   R.   R   R   RD   R^   (   R    R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\viewport.pyt   set_yoffset  s    	N(   NN(   NN(   t   __name__t
   __module__t   __version__R
   R1   R2   R"   R   R   R&   R(   R=   RT   RD   RJ   Rm   R   R   (    (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\viewport.pyR   '   s6   	!B			F				t   VPGridc           B  s/   e  Z e j Z d d d d  d  Z d   Z RS(   t   vpgridc         K  s   t  t |   j d | |  | d  k rC | d  k rC t d   n  | d  k	 rp | d  k rp | d  k rp t } n  | |  _ | |  _ | |  _ d  S(   NR$   s1   A VPGrid must be given the rows or cols property.(	   R%   R   R&   R   t	   ExceptionR   t	   grid_colst	   grid_rowst   grid_transpose(   R    t   colst   rowst	   transposeR$   R:   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\viewport.pyR&     s    $			c         C  s  | |  _  | |  _ |  j p | } |  j p- | } |  j sX g  |  _ t j j j	 d d  St
 |  j  } |  j } |  j }	 | d  k r | |	 } |	 | | k  r | d 7} q n  |	 d  k r | | }	 |	 | | k  r |	 d 7}	 q n  |  j j }
 |  j j } |
 d  k r|  j j }
 n  | d  k r3|  j j } n  t j j j |  j d | | | |  } | j   \ } } | |
 | |
 } | | |	 | } |  j j r| } | | d |
 | } n  |  j j r| } | |	 d | |	 } n  |  j | | |  \ } } } } g  |  _ t j j j	 | |  } xlt |  j  D][\ } } |  j re| |	 } | |	 } n | | } | | } | | |
 | } | | | | } | | d k  r|  j j | | f  q9n  | | d k  r|  j j | | f  q9n  | | k r|  j j | | f  q9n  | | k rE|  j j | | f  q9n  t j j j | | | | |  } | j | | | | | |  } |  j j |  q9W| j d d | | f d t } |  j s|  j r| j |  d  d d | |  n  | S(   Ni    i   RU   (   R   R   R/   R0   t   childrenR*   R   R   RD   RW   R3   R   R   R   R$   t   xspacingt   yspacingt   spacingRV   R>   R@   RT   t	   enumerateR   t   appendt   placeRY   R   R   R1   RZ   (   R    R   R   RN   R[   R/   R0   t   lcR   R   R   R   t   rendRL   RM   t   twt   thRR   RS   R]   t   indext   cR{   R|   R\   t   pos(    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\viewport.pyRD     s    						

(!		


!!N(   R   R   R   R   R   R&   RD   (    (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\viewport.pyR     s   	(   t
   __future__R    t   renpy.displayR   t   pygame_sdl2Rv   R   R   t   layoutt	   ContainerR   R   (    (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\viewport.pyt   <module>   s   	 