U
    P’“e4  ã                :   @   s   d Z ddlZddlmZ ddlmZ ddlmZ dddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?œ9Zd@dA„ Z	dBdC„ Z
dDdE„ ZdMdFdG„ZdHdI„ ZedJkrüe ¡ D ]ZedK edL ksât‚qâdS )Na'  Screen
======

This module changes some environment and configuration variables
to match the density / dpi / screensize of a specific device.

To see a list of the available screenid's, just run::

    python main.py -m screen

To simulate a medium-density screen such as the Motorola Droid 2::

    python main.py -m screen:droid2

To simulate a high-density screen such as HTC One X, in portrait::

    python main.py -m screen:onex,portrait

To simulate the iPad 2 screen::

    python main.py -m screen:ipad

If the generated window is too large, you can specify a scale::

    python main.py -m screen:note2,portrait,scale=.75

Note that to display your contents correctly on a scaled window you
must consistently use units 'dp' and 'sp' throughout your app. See
:mod:`~kiv.metrics` for more details.

é    N)Úenviron)ÚConfig)ÚLogger)z	HTC One Xé   éÐ  i8  é   )zHTC Oneé€  é8  iÔ  é   )z
HTC One SVé   éà  éØ   ç      ø?)zGalaxy SIIIr   r   i2  r   )zGalaxy Note IIr   r   i  r   )zMotorola Droid 2éV  r   éð   r   )zMotorola Xoomr   r   é•   é   )ziPad (1 and 2)é   é   é„   r   )ziPad 3é   é   é  r   )úiPhone 4éÀ  é€  éF  r   )úiPhone 5ép  r   r   r   )zXperia Er   é@  é¦   r   )úNexus 4r   r   r   r   )zNexus 7 (2012 version)r   r   r   g333333õ?)zNexus 7 (2013 version)r   é°  iC  r   )zAndroid Oner   r   éÚ   r   )z
HTC One M8r   r	   é°  ç      @)z
HTC One M9r   r	   r$   r%   )ZiPhoner   r   é¨   ç      ð?)r   r   r   r   ç       @)r   r   r   r   r(   )ziPhone 6i6  iî  r   r(   )ziPhone 6 Plusr   r	   é  r%   )zLG G2r   r	   r$   r%   )zLG G3é 
  é   i  r%   )zMoto Gr   r   iG  r(   )zMoto Xr   r   é9  r(   )zMoto X 2nd Genr   r	   r$   r%   )r!   r   r   r   r(   )zNexus 5r   r	   iÂ  r%   )zNexus 5Xr   r	   r$   gÍÌÌÌÌÌ@)zNexus 6r*   r+   ið  ç      @)zNexus 6Pr*   r+   é  r-   )z
OnePlus 3tiG  r	   i|  g      @)z
OnePlus 6ti$	  r	   i¤  g      @)zSamsung Galaxy Note 4r*   r+   r.   r%   )zSamsung Galaxy S5r   r	   it  r%   )zSamsung Galaxy S6r*   r+   i@  g      @)zSony Xperia C4r   r	   r)   r(   )zSony Xperia Z Ultrar   r	   i\  r(   )zSony Xperia Z1 Compactr   r   iV  r(   )zSony Xperia Z2/Z3r   r	   r$   r%   )zSony Xperia Z3 Compactr   r   r,   r(   )zDell Venue 8r*   é@  ic  r(   )ZiPadr   r   r   r'   )z	iPad Minir   r   é£   r'   )ziPad Mini Retinar   r   r   r(   )ziPad Proi¬
  r   i	  r(   )ziPad Retinar   r   r   r(   )zNexus 10r*   r/   é)  r(   )z
Nexus 7 12r   r   r   gÍÌÌÌÌÌô?)z
Nexus 7 13r   r"   iD  r(   )zNexus 9r   r   i   r(   )zSamsung Galaxy Tab 10r   r   é”   r'   )zSony Xperia Z3 Tabletr   r"   i  r(   )zSony Xperia Z4 Tabletr*   r/   r1   r(   )zHUAWEI MediaPad M3 Lite 10r   r"   r   g      @)9ZonexZoneZonesvZs3Znote2Zdroid2ZxoomZipadZipad3Ziphone4Ziphone5ZxperiaeZnexus4Znexus7znexus7.2Zphone_android_oneZphone_htc_one_m8Zphone_htc_one_m9Zphone_iphoneZphone_iphone_4Zphone_iphone_5Zphone_iphone_6Zphone_iphone_6_plusZphone_lg_g2Zphone_lg_g3Zphone_moto_gZphone_moto_xZphone_moto_x_2nd_genZphone_nexus_4Zphone_nexus_5Zphone_nexus_5xZphone_nexus_6Zphone_nexus_6pZphone_oneplus_3tZphone_oneplus_6tZphone_samsung_galaxy_note_4Zphone_samsung_galaxy_s5Zphone_samsung_galaxy_s6Zphone_sony_xperia_c4Zphone_sony_xperia_z_ultraZphone_sony_xperia_z1_compactZphone_sony_xperia_z2z3Zphone_sony_xperia_z3_compactZtablet_dell_venue_8Ztablet_ipadZtablet_ipad_miniZtablet_ipad_mini_retinaZtablet_ipad_proZtablet_ipad_retinaZtablet_nexus_10Ztablet_nexus_7_12Ztablet_nexus_7_13Ztablet_nexus_9Ztablet_samsung_galaxy_tab_10Ztablet_sony_xperia_z3_tabletZtablet_sony_xperia_z4_tabletZ!tablet_huawei_mediapad_m3_lite_10c                 C   s   d S ©N© ©ÚwinÚctxr4   r4   ú7/tmp/pip-unpacked-wheel-xzebddm3/kivy/modules/screen.pyÚstartr   s    r9   c                 C   s   d S r3   r4   r5   r4   r4   r8   Ústopv   s    r:   c              	   C   sæ   t |  \}}}}}|dkr$|| }}t d |¡¡ t d |||||¡¡ zt|ƒ}W n   d}Y nX t|| ƒtd< t|| ƒtd< t ddtt	|| ƒƒ¡ t dd	tt	|| d
|  ƒƒ¡ t ddd¡ t ddd¡ d S )NÚportraitz%Screen: Apply screen settings for {0}z8Screen: size={0}x{1} dpi={2} density={3} orientation={4}r   ZKIVY_METRICS_DENSITYZKIVY_DPIZgraphicsÚwidthÚheighté   Z
fullscreenÚ0Zshow_mousecursorÚ1)
Údevicesr   ÚinfoÚformatÚfloatÚstrr   r   ÚsetÚint)ÚdeviceÚscaleÚorientationÚnamer<   r=   ZdpiZdensityr4   r4   r8   Úapply_devicez   s*    
   þ
"rL   c              	   C   s´   | rt  d| ¡ tdƒ tdƒ td ddddd	d
¡ƒ t ¡ D ]\} }tdj| f|žŽ ƒ q@tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ t d¡ d S )Nz.Screen: The specified device ({0}) is unknown.z?
Module usage: python main.py -m screen:deviceid[,orientation]
zAvailable devices:
z*{0:12} {1:<22} {2:<8} {3:<8} {4:<5} {5:<8}z	Device IDÚNameZWidthZHeightZDPIZDensityÚ
z;Simulate a medium-density screen such as Motorola Droid 2:
z$    python main.py -m screen:droid2
z?Simulate a high-density screen such as HTC One X, in portrait:
z+    python main.py -m screen:onex,portrait
zSimulate the iPad 2 screen
z"    python main.py -m screen:ipad
z?If the generated window is too large, you can specify a scale:
z6    python main.py -m screen:note2,portrait,scale=.75
r   )r   ÚerrorÚprintrC   rA   ÚitemsÚsysÚexit)rH   rB   r4   r4   r8   Úusage   s<    ÿ     ÿÿÿ
rT   c                 C   sh   |   dd ¡}d}|   dd ¡ |   dd ¡r,d}| s8td ƒS t|  ¡ ƒd }|tkrXtdƒS t|||ƒ d S )NrI   Z	landscaper;   r   Ú )ÚpoprT   ÚlistÚkeysrA   rL   )r7   rI   rJ   rH   r4   r4   r8   Ú	configure§   s    rY   Ú__main__r   r   )N)Ú__doc__rR   Úosr   Zkivy.configr   Zkivy.loggerr   rA   r9   r:   rL   rT   rY   Ú__name__ÚvaluesÚnÚAssertionErrorr4   r4   r4   r8   Ú<module>   sŒ    »K
