a
    F^ih9                     @   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mZmZmZmZmZ d dlmZmZ d dlmZmZmZ d dlm Z m!Z!m"Z" d dlm#Z#m$Z$ d d	lm%Z% d d
lm&Z&m'Z' d dlm(Z(m)Z) d dlm*Z*m+Z+ G dd dej,j-j.Z/edej,j-j0dd  ed ed edej1j1j2dd ddd ed ed ed ed ed ee edej,j-j3deddid ee edej,j-j3deddid ee ed ej,j-j3d edd id ee ed!ej,j-j4d!e ed" ed# ed$ ed% ee+ ed&ej,j-j5d&e ed' ed( d)D ]"Z6ee6ej,j-j7e6d* ee qPed+ej8j9dd  ed+ ed, ed- ed. ed/ej,j:j;dd dd0 ed1 ed, ed2 ed3ej,j:j<d3d dd0 ed ed4 ed5 ed6 ed7 ed8 ed9 ed: ed; ed< ed= ed> ed? ee ed@ej,j:j=d@d* ee ee! edAej8j>dBd  edC edD edE edF edG edH edI ed, edJ edK edL edM edN ee ee! edOej8j?d@d ddP edQ ed, edJ edK edL edM edR ed ed ee ee! ee# ee$ edQej8j@dQd ddP edQ edR ed ee ee# ee$ ddSdTZAedUeAdd dddV edW edX ed< ed: edK edL edY ee  ddZd[ZBed\eBdd dddV edW edX ed< ed: edK edL edY ee  dd]d^ZCdd_d`ZDedaeCdad*dddV edb edc edd ede edf edg edh edi edj edk edl ed( ed$ edm edn edod( ee% ee' ee) ee& ee( ee* edpeDdpedddV ed# ed" ed% edb edc edd ede edf edg edh edi edj edk edl ed( ed$ ed( edm edn edod( ee% ee' ee) ee& ee( ee* ee+ edqej8jEdqeddr eds edE edF edD edH edG edI edC edt edu edvej8jFdvd*ddw edx ee ee! edyej8jGdyd dddz edx edW edX ed< ee  ed{ej,jHjId{d*d|d} ed~ ed ejJjKD ]ZLeeL qXdddZMdD ]VZ6ee6eMdd dd|dd|d ed ed~ ed ed ejJjKD ]ZLeeL qqvedej,jNjOdd*dd0 ed ed edf ed ed ed ed ed ed ed ed ed edJ edK edL ed ed edM ed ed edej,jNjPdedd0 ed edej,j:jQdd dd0 edK edL ed edej,j:jRdd  ed ed, edej,j-jSdd*dd0 ed ed ed ee" edej,j:jTdd  ed, ed ed ed ed dejUjV_WdS )    )divisionabsolute_importwith_statementprint_functionunicode_literals)PY2
basestringbchrbordchropenpystrrangeroundstrtobytesunicodeN)
PositionalKeywordStylePrefixStyleadd)DisplayableParsermany)text_propertiesbox_propertieswindow_properties)bar_propertiesbutton_propertiesposition_properties)text_position_propertiestext_text_properties)side_position_properties)scrollbar_bar_propertiesscrollbar_position_properties)vscrollbar_bar_propertiesvscrollbar_position_properties)viewport_position_propertiesgrid_propertiesc                       sV   e Zd ZdZd fdd	Zedd Zdd Zd	d
 Zdd Z	dd Z
dd Z  ZS )ShowIfzc
    This is a displayable that wraps displayables that are
    underneath a showif statement.
    Nc                    sr   t t|   || _|d u r6|r(d| _nd | _|| _n8| jrJ|jsJd| _n| js^|jr^d| _n|j| _|j| _d S )NZappearshowhide)superr)   __init__	conditionpending_event
show_child)selfr.   replaces	__class__ \C:\Program Files (x86)\Steam\steamapps\common\Selene ~Apoptosis~\renpy\sl2\sldisplayables.pyr-   1   s    zShowIf.__init__c                 C   s   | j  S N)r0   r1   r5   r5   r6   	_box_skipH   s    zShowIf._box_skipc                 C   s   | j r| j| j  d | _ d S r7   )r/   childset_transform_eventr8   r5   r5   r6   per_interactL   s    zShowIf.per_interactc           	      C   s   d }t | jtjjjrN| js"| jr~tjj| j||||}| jpH| jj	 | _n0| jrttjj| j||||}d| _n
d }d| _| jr|
 \}}tjj||}|j|d| jd ntjjdd}dg| _|S )NTF)r   r   )focusr   )
isinstancer:   renpydisplaymotion	Transformr.   r0   renderhide_responseget_sizeRenderblitoffsets)	r1   widthheightstatcrcwchrvr5   r5   r6   rC   Q   s"    zShowIf.renderc                 C   s    | j r| j||||S d S d S r7   )r.   r:   event)r1   evxyrK   r5   r5   r6   rQ   l   s    zShowIf.eventc                 C   s
   | j  S r7   )r:   get_placementr8   r5   r5   r6   rU   r   s    zShowIf.get_placementc                 C   s   | j r|  S dS d S )N )r.   _tts_commonr8   r5   r5   r6   _ttsu   s    zShowIf._tts)N)__name__
__module____qualname____doc__r-   propertyr9   r<   rC   rQ   rU   rX   __classcell__r5   r5   r3   r6   r)   +   s   
r)   nulldefaultrI   rJ   textT)scoper2   slow	slow_done
substituterb   hboxlayout
horizontal)default_keywordsvboxverticalfixedgridcolsrows	transposeallow_underfullside	positionsspacing)windowframe   keyactionactivate_soundcapturetimer)r2   delayrepeatinputlengthallowexclude	copypasteprefixsuffixchangedpixel_widthvaluemaskcaret_blinkcaretbuttonimagebuttonimage_buttonautoidlehoverinsensitiveselected_idleselected_hoverselected_insensitiveclickedhovered	unhovered	alternateimage_style
textbuttonrb   label
text_stylec                 K   s   d}d}d }d }d|v r"| d}d|v r4| d}d|v rF| d}d|v rX| d}d|vrt|tjjrtj| j| d }||d< tjj	j
||||fdd	i|S )
Nrw   r   rI   rJ   r   r   stylerk   Fpopr>   r?   uiBarValuecombine_stylestyle_prefix	get_styler@   behaviorBarcontext
propertiesr   r   rI   rJ   r   r5   r5   r6   sl2bar   s"    



r   bar)r2   pass_context
adjustmentr   releasedc                 K   s   d}d}d }d }d|v r"| d}d|v r4| d}d|v rF| d}d|v rX| d}d|vrt|tjjrtj| j| d }||d< tjj	j
||||fdd	i|S )
Nrw   r   rI   rJ   r   r   r   rk   Tr   r   r5   r5   r6   sl2vbar  s"    



r   vbarc                 K   sd   t j }| dur"| jt jjd _t jjf i |}t jj  |j}||urT||_t	|j
|_|S zg
    This converts the output of renpy.ui.viewport into something that
    sl.displayable can use.
    N)r?   r   detachedr   stackviewportr   r:   _mainlistchildren_composite_partsr   kwargsdZvprP   r5   r5   r6   sl2viewport6  s    
r   c                 K   sd   t j }| dur"| jt jjd _t jjf i |}t jj  |j}||urT||_t	|j
|_|S r   )r?   r   r   r   r   vpgridr   r:   r   r   r   r   r   r5   r5   r6   	sl2vpgridO  s    
r   r   
child_size
mousewheel	arrowkeyspagekeys	draggable
edgescrollxadjustmentyadjustmentxinitialyinitial
scrollbarsxminimumyminimumside_r   imagemap)r   groundalphacachehotspot)r   spothotbar)r2   r   	transformF)default_propertiesrL   idc                 K   s   | d u rt jjjS t jj| |d} | jr:| d } |   | }t j	j
j}|d urnt||rn|| || |r|f d| i|}| |_|S )Nr   r:   )r?   sl2slastNO_DISPLAYABLEeasydisplayable_duplicatable
_duplicate_uniquer@   rA   rB   r>   
take_statetake_execution_stater   )r   r2   rb   r   rP   rB   r5   r5   r6   sl2add  s    




r   )r   image)r2   r   rb   uniqueimaltdrag	activated	drag_name	droppable
drag_raisedraggingdraggeddroppeddrop_allowabledrag_handledrag_joineddrag_offscreen
focus_mask
mouse_dropr:   sound	draggroupmin_overlap	mouseareaonrQ   Znearrectrectr=   
prefer_topdismissmodaldebug)N)N)N)N)NN)X
__future__r   r   r   r   r   renpy.compatr   r   r	   r
   r   r   r   r   r   r   r   r   r?   renpy.sl2.slparserr   r   r   r   r   r   r   renpy.sl2.slpropertiesr   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r@   rg   	Containerr)   Nullra   TextMultiBoxGridSidenameWindowr   _keyr   TimerInputButton_imagebutton_textbutton_labelr   r   r   r   	_imagemap_hotspot_hotbarrA   rB   atl
PROPERTIESir   dragdropDrag	DragGroup	MouseAreaOnEventNearRectDismissBehaviorr   slparserparserr5   r5   r5   r6   <module>   s  8Q






