+
    Kia  c                   s    ^ RI t ^ RIHt ^ RIHt ^ RIHtHt ^ RIHtH	t	 ^ RI
Ht ^ RIHt ^ RIHtHt ^ R	IHt ^ R
IHt ^ RIHt ^ RIHtHt ^ RIHtHtHt ^ RIHtH t  ^ RI!H"t" ^ RI#H$t$  ! R R]4      t%R# )i    N)gettext)ngettext)GioGtk)api
sysoptions)LutrisConfig)AddGameDialog)ErrorDialogModelessDialog)ImportGameDialog)FileChooserEntry)NavigationStack)AUTO_WIN32_EXEget_installers)COMPLETED_IDLE_TASK	AsyncCallschedule_at_idle)gtk_safeslugify)is_proton_version)GE_PROTON_LATESTc            
       s   a  ] tR t^t o RtRR]! R4      ]! R4      R3RR]! R4      ]! R	4      R
3RR]! R4      ]! R4      R3RR]! R4      ]! R4      R3RR]! R4      ]! R4      R3.tR tR tR t	R t
R tR tR tR tR  tR! tR" tR# tV 3R$ lR% ltR& tR' tR( tR) tR* tR+ tR, tR- tR. tR/ tR0 tR1 tR2 t R3 t!R4 t"R5 t#R6 t$R7 t%R8 t&]! R94      R:3R; lt']! R<4      3R= lt(R> t)RER? lt*R@ t+RA t,RFRB lt-RCt.V t/RD# )GAddGamesWindowz/Show a selection of ways to add games to Lutriszsystem-search-symboliczgo-next-symbolicz(Search the Lutris website for installersz*Query our website for community installerssearch_installersz!application-x-executable-symbolicz)Install a Windows game from an executablez,Launch a Windows executable (.exe) installerinstall_from_setupzx-office-document-symbolicz#Install from a local install scriptzRun a YAML install scriptinstall_from_scriptzapplication-x-firmware-symboliczImport ROMsz3Import ROMs referenced in TOSEC, No-intro or Redump
import_romzlist-add-symboliczview-more-horizontal-symboliczAdd locally installed gamez+Manually configure a game available locallyadd_local_gamec                s  a  \         P                  ! S 3R \        R4      RR/VB  S P                  RR4       RS n        RS n        RS n        RS n        \        S n	        RS n
        RS n        RS n        S P                  4       p\        P                  ! RR7      S n        VP#                  S P                   RR^ 4       \        P$                  ! 4       S n        S P)                  S P&                  4       S P+                  4       p\        P,                  ! \        R	4      RR
7      S n        S P.                  P1                  RS P2                  4       \        P4                  ! R4      w  rES P.                  P7                  RS P&                  WE\        P8                  P:                  4       \        P4                  ! R4      w  rES P&                  P1                  WE\        P8                  P:                  S P<                  4       VP#                  S P.                  4       \        P,                  ! \        R4      RRR7      S n        VPA                  S P>                  4       RS n!        \        P,                  ! \        R4      RR7      S n"        S PD                  P1                  RS PF                  4       \        P4                  ! R4      w  rES P&                  P1                  WE\        P8                  P:                  V 3R l4       VP#                  S PD                  4       VPI                  R4       VPK                  ^4       VPM                  ^4       VPO                  ^4       VPQ                  ^4       VPS                  ^4       \U        S P.                  S PD                  R7      S n+        VP#                  S PV                  RR^ 4       \Y        \        R4      \        PZ                  P\                  R7      S n/        \        P`                  ! 4       S n1        \        Pd                  ! \        R4      R7      S n3        \        P`                  ! RR7      S n4        S Ph                  P1                  RS Pj                  4       \        Pl                  ! \n        \n        4      S n8        \        Pr                  Pu                  S Pp                  4      S n;        \        Pl                  ! \n        \n        4      S n<        \        Pr                  Pu                  S Px                  4      S n=        \Y        \        R4      \        PZ                  P|                  R7      S n?        \Y        \        R4      \        PZ                  P\                  R7      S n@        S PV                  P                  RS P                  4       S PV                  P                  RS P                  4       S PV                  P                  RS P                  4       S PV                  P                  R S P                  4       S PV                  P                  R!S P                  4       S P                  4        S P                  4        R# )"titlezAdd games to LutrisZuse_header_barTi  i  NvisibleFZBack)no_show_allclickedz	<Alt>Leftz	<Alt>Home	_Continue)r   use_underlineCancel)r"   ZEscapec                  s$   < SP                  4       # Ndestroy)_argsselfs   *>/usr/lib/python3.14/site-packages/lutris/gui/addgameswindow.pyZ<lambda>Z)AddGamesWindow.__init__.<locals>.<lambda>c   s    SWS_S_Sa    )cancel_buttonzSelect folder)r   ZactionZ
Identifierlabel)Z	sensitivezfocus-out-eventzSelect scriptzSelect ROMsinitialr   r   r   r   )Ir	   __init___Zset_default_sizesearch_entrysearch_framesearch_explanation_labelsearch_listboxr   search_timer_tasksearch_spinner
text_querysearch_result_labelZget_content_arear   Labelpage_title_label
pack_startZ
AccelGroupacceleratorsZadd_accel_groupZget_header_barZButtonback_buttonconnecton_back_clickedZaccelerator_parseZadd_acceleratorZ
AccelFlagsZVISIBLEon_navigate_homecontinue_buttonpack_endcontinue_handlerr+   on_cancel_clickedZset_show_close_buttonZset_margin_topZset_margin_bottomZset_margin_rightZset_margin_leftZset_spacingr   stackr   ZFileChooserActionZSELECT_FOLDERscan_directory_chooserZEntry"install_from_setup_game_name_entryZCheckButton%install_from_setup_game_slug_checkbox"install_from_setup_game_slug_entry/on_install_from_setup_game_slug_entry_focus_outZ	ListStoreZstrinstaller_presetsZComboBoxZnew_with_modelinstall_preset_dropdowninstaller_localeinstall_locale_dropdownZOPENinstall_script_file_chooserimport_rom_file_chooserZadd_named_factorycreate_initial_pagecreate_search_installers_pagecreate_install_from_setup_pagecreate_install_from_script_pagecreate_import_rom_pageZshow_allload_initial_page)r(   ZkwargsZcontent_areaZ
header_barZkeyZmods   f,    r)   r/   ZAddGamesWindow.__init__>   s   dA.C,DdUYd]cdc3'  (,%"!4"#' ,,. #		$ 7 5 5ueQGNN,T../((*
::aiTB  D,@,@A((5((D4E4EsQTQ_Q_QgQgh((5!!#CNN,B,BDDYDYZd../"zz!K.dZ^_D001 $ ZZ(4H""9d.D.DE((2!!#CNN,B,BDabd001((/##B'&&r*%%b)$$R(  $$T%5%5TEWEWX


D$: '7O$S-B-B-P-P'
# 36))+/58__1\?5[225))e2L///77tSS	
 "%sC!8'*||'B'B4CYCY'Z$ #c3 7'*||'B'B4CXCX'Y$+;!OBT]`]r]r]w]w+x('7M"3+@+@+N+N(
$ 	

$$Y0H0HI

$$%8$:\:\]

$$%94;^;^_

$$%:D<`<`a

$$\43N3NO r*   c                :    V P                   P                  4        R # r$   )rE   Znavigate_backr(   _widget   &&r)   r?   ZAddGamesWindow.on_back_clicked       

  "r*   c                rW   r$   )rE   Znavigate_home)r(   Z_accel_groupZ_windowZ_keyvalZ	_modifiers   &&&&&r)   r@   ZAddGamesWindow.on_navigate_home   r[   r*   c                s&    V P                  4        R # r$   r%   rX   rZ   r)   rD   Z AddGamesWindow.on_cancel_clicked   s    r*   c                sP    V P                   P                  V P                  4       R # r$   )rE   navigate_to_pagepresent_inital_pager(      &r)   rV   Z AddGamesWindow.load_initial_page   s    

##D$<$<=r*   c                s   \         P                  ! \         P                  P                  R 7      p\         P                  ! 4       pVP                  R4       V P                   F0  w  r4rVpV P                  W5Wd4      pWxn        VP                  V4       K2  	  VP                  RV P                  4       VP                  V4       V# )Zshadow_typeTrow-activated)r   Frame
ShadowType	ETCHED_INListBoxZset_activate_on_single_clicksections_get_listbox_rowcallback_nameaddr>   on_row_activated)	r(   Zframelistboxicon	next_icontextsubtextrh   rows	   &        r)   rQ   Z"AddGamesWindow.create_initial_page   s    		cnn&>&>?++-,,T2=A]]9DTM''GGC -KK	 >K
 	)>)>?		'r*   c                s~    V P                  R 4       V P                  P                  R4       V P                  4        R # )Nr.   )set_page_title_markuprE   present_pagedisplay_cancel_buttonr^   r_   r)   r]   Z"AddGamesWindow.present_inital_page   s.    ""4(

	*""$r*   c                sf    VP                   '       d   \        WP                   4      pV! 4        R # R # r$   )rh   Zgetattr)r(   rk   rp   Zcallbacks   &&& r)   rj   ZAddGamesWindow.on_row_activated   s(    t%6%67HJ r*   c                s|   V P                   '       d   V P                   P                  R4       V P                  P                  R4       V P                  P                  4        V P                  P                  4        V P
                  P                  4        V P                  P                  V P                  4       R# )z%Search installers with the Lutris API N)
r1   set_textr8   hider2   r3   showrE   r\   present_search_installers_pager^   r_   r)   r   Z AddGamesWindow.search_installers   s    &&r*$$--b1$$))+""$))..0

##D$G$GHr*   c                s   \         P                  ! \         P                  P                  R ^R R7      p\         P                  ! \         P                  P                  R R7      p\         P
                  ! R R7      V n        VP                  V P                  R R ^ 4       \         P                  ! RR7      V n	        VP                  V P                  RR^4       VP                  VRR^ 4       V P                  R4      V n        V P                  P                  4        VP                  V P                  RR^ 4       V P                  P                  RV P                  4       \!        R4      pV P#                  V4      V n        VP'                  V P$                  4       \         P(                  ! \         P*                  P,                  R7      V n        \         P0                  ! R R7      V n        V P2                  P                  R	V P4                  4       \         P6                  ! R R7      pVP9                  R 4       VP'                  V P2                  4       V P.                  P'                  V4       VP                  V P.                  R R ^ 4       V# )
T)orientationr   spacingr   )ry   r   r   Frt   changedzLutris will search Lutris.net for games matching the terms you enter, and any that it finds will appear here.

When you click on a game that it found, the installer window will appear to perform the installation.r`   ra   )r   BoxZOrientationZVERTICALZ
HORIZONTALZSearchEntryr1   r;   ZSpinnerr6   rB   
_get_labelr8   rv   r>   _on_search_updatedr0   _get_explanation_labelr3   ri   rb   rc   rd   r2   re   r4   _on_game_selectedZScrolledWindowset_vexpand)r(   ZvboxZhboxexplanationZscrolls   &    r)   rR   Z,AddGamesWindow.create_search_installers_page   s   ww3??#;#;WXbfgww3??#=#=tLOOD9))4q9!kk%8d))5%;eUA.#'??2#6   %%'00%B!!)T-D-DE(
 )-(C(CK(P%../II#..2J2JK!kk$7##OT5K5KL##D14 

4&&'f%))4q9r*   c                s    V P                  \        R 4      4       V P                  P                  R4       V P                  P                  4        V P                  4        R# )z<b>Search Lutris.net</b>r   N)rq   r0   rE   rr   r1   Z
grab_focusrs   r^   r_   r)   rx   Z-AddGamesWindow.present_search_installers_page   sG    ""1%?#@A

 34$$&""$r*   c                s    V P                   P                  4        VP                  4       P                  4       V n        \        V P                  R R7      V n         R# g      ?)Zdelay_secondsN)r5   Z
unscheduleget_textstripr7   r   update_search_results)r(   ZentryrZ   r)   r~   Z!AddGamesWindow._on_search_updated   sA    ))+..*002!1$2L2L\`!ar*   c                s   < V ^8  d   QhRR/# )i   ZreturnN )Zformat__classdict__s   "r)   Z__annotate__ZAddGamesWindow.__annotate__   s     	X 	Xt 	Xr*   c                sp   V P                   P                  4       '       d   \        V P                  R R7      V n        R# V P
                  '       df   V P                   P                  4        V P                   P                  4        \        \        P                  V P                  V P
                  4       R# R# r   )r6   Zget_visibler   r   r5   r7   rw   Zstartr   r   Zsearch_gamesupdate_search_results_cbr^   r_   r)   r   Z$AddGamesWindow.update_search_results   s~    **,,%5d6P6P`d%eD"???$$&%%'c&&(E(EtW r*   c                sP   V'       d   VhV P                   P                  4        V P                   P                  4        VP                  R ^ 4      p\	        VP                  R. 4      4      pV'       g&   V P
                  P                  \        R4      4       MbWC8X  d1   \        RRV4      V,          pV P
                  P                  V4       M,V P
                  P                  \        R4      W43,          4       V P                  P                  4        F  pVP                  4        K  	  VP                  R. 4       F  pRP                  R VR,           4       4      pVR	,          ;'       g    R
p	V'       d   V	'       d
   RV,           pV P                  R
\        VR,          4      V	 V 24      pWvn        V P                  P!                  V4       K  	  V P
                  P#                  4        V P$                  P#                  4        V P&                  P                  4        R# )countZresultsz
No resultszShowing <b>%d</b> resultzShowing <b>%d</b> resultsz+<b>%s</b> results, only displaying first %sZ,c              3   sF   "   T F  p\        VR ,          4      x  K  	  R# 5i)nameN)r   )Z.0Zplatform   & r)   Z	<genexpr>Z:AddGamesWindow.update_search_results_cb.<locals>.<genexpr>  s      ^L](6*:!;!;L]s   !	platformsyearrt   z, r   N)r6   Zstoprv   getZlenr8   
set_markupr0   r   r4   Zget_childrenr&   joinrg   r   api_infori   rw   r2   r3   )
r(   Z	api_gamesZerrorZtotal_countr   rn   rp   gamer   r   s
   &&&       r)   r   Z'AddGamesWindow.update_search_results_cb   s   K  "  "mmGQ/IMM)R01$$//,@!68SUZ[^ccD$$//5$$//2_0`docw0wx&&335CKKM 6MM)R0D ^DQ\L] ^^I<%%2DT 9,	''HT&\,BtfYKDXYCL##C( 1 	  %%' %%**,r*   c                s    VP                   R ,          p\        P                  P                  4       pVP	                  VR7       V P                  4        R# )slug)	game_slugN)r   r   Applicationget_defaultZshow_lutris_installer_windowr&   )r(   rk   rp   r   application   &&&  r)   r   Z AddGamesWindow._on_game_selected  s<    LL(	oo1130090Er*   c                P    V P                   P                  V P                  4       R# )zInstall from a setup fileN)rE   r\   present_install_from_setup_pager^   r_   r)   r   Z!AddGamesWindow.install_from_setup!  s    

##D$H$HIr*   c                s	   V P                  \        R 4      4      pV P                  P                  R4       V P                  P                  R4       \
        P                  ! ^^R7      pVP                  R4       VP                  V^ ^ ^^4       VP                  V P                  ^^ ^^4       VP                  V P                  ^ ^^^4       VP                  V P                  ^^^^4       V P                  P                  RV P                  4       V P                  P                  RV P                  4       \        R4      pVP                  V P                  V4      ^ ^^^4       \
        P                  ! \        R4      RR7      pVP                  V^ ^^^4       V P                  P!                  R	\        R
4      .4       V P                  P!                  R\        R4      .4       V P                  P!                  R\        R4      .4       \#        RR7      P$                  P'                  R4      pV\(        8w  d^   \+        V4      '       gM   V P                  P!                  R\        R4      .4       V P                  P!                  R\        R4      .4       \
        P,                  ! 4       pV P.                  P1                  VR4       V P.                  P3                  VR^4       V P.                  P5                  ^ 4       V P.                  P7                  R4       VP                  V P.                  ^^^^4       V P.                  P9                  \
        P:                  P<                  4       \
        P                  ! \        R4      RR7      pVP?                  ^ 4       VP                  V^ ^^^4       \@        PB                  ! 4       pV F+  w  rV PD                  P!                  V
\        V	4      .4       K-  	  \
        P,                  ! 4       pV PF                  P1                  VR4       V PF                  P3                  VR^4       V PF                  P5                  ^ 4       V PF                  PI                  ^ 4       VP                  V PF                  ^^^^4       V PF                  P9                  \
        P:                  P<                  4       VPK                  R4       V# )z	Game nameTZrow_spacingZcolumn_spacingFr{   Ztoggledan  Enter the name of the game you will install.

When you click 'Install' below, the installer window will appear and guide you through a simple installation.

It will prompt you for a setup executable, and will use Wine to install it.

If you know the Lutris identifier for the game, you can provide it for improved Lutris integration, such as Lutris provided banners.zInstaller preset:r   Zwin11zWindows 11 64-bitwin10zWindows 10 64-bit (Default)Zwin7zWindows 7 64-bitwine)Zrunner_slugversionwinxpzWindows XP 32-bitwin98zWindows 98 32-bitrn   zLocale:)&r}   r0   rG   set_hexpandrI   r   GridZset_column_homogeneousattachrH   r>   'on_install_from_setup_game_name_changed'on_install_from_setup_game_slug_toggledr   r9   rK   appendr   Zrunner_configr   r   r   ZCellRendererTextrL   r;   Zadd_attributeZset_id_columnZset_active_idZ
set_halignZAlignZSTARTZ
set_xalignr   Zget_locale_choicesrM   rN   Z
set_activer   )r(   Z
name_labelgridr   Zpreset_labelZwine_versionZrenderer_textZlocale_labelZlocale_listZlocale_humanizedZlocaleZlocale_renderer_texts   &           r)   rS   Z-AddGamesWindow.create_install_from_setup_page%  s   __Q{^4
//;;DA//;;DAxxAa8##E*J1a+D;;Q1aHD>>1aKD;;Q1aH//77	4CoCop22::9dFrFrsC
 	D//<aAqIyy#6!7FL!Q1-%%w2E0F&GH%%w2O0P&QR%%vq1C/D&EF#7EEII)T++4El4S4S""))7A6I4J*KL""))7A6I4J*KL,,.$$//tD$$22=&!L$$2215$$227;D00!Q1=$$//		@yy9t<"L!Q1- 335(3$!!((&!4D2E)FG )4  #335$$//0DdK$$223GQRS$$2215$$//2D00!Q1=$$//		@r*   c                s    \        V P                  P                  4       4      pV P                  P                  V4       R # r$   )r   rI   r   ru   )r(   Zargsr   s   &* r)   rJ   Z>AddGamesWindow.on_install_from_setup_game_slug_entry_focus_outh  s/    t>>GGIJ//88>r*   c                    V P                  \        R 4      4       V P                  P                  R4       V P	                  V P
                  \        R4      R7       R# )z<b>Select setup file</b>r   _Installr,   N)rq   r0   rE   rr   display_continue_button_on_install_setup_continuer^   r_   r)   r   Z.AddGamesWindow.present_install_from_setup_pagel  sF    ""1%?#@A

 45$$T%D%DAjM$Zr*   c                sx    V P                   P                  VP                  4       4       V P                  4        R # r$   )rI   Zset_sensitive
get_activer   )r(   ZcheckbuttonrZ   r)   r   Z6AddGamesWindow.on_install_from_setup_game_slug_toggledq  s+    //==k>T>T>VW446r*   c                s    V P                   P                  4       '       gM   V P                  P                  4       pV'       d   \	        V4      MR pV P
                  P                  V4       R# R# )rt   N)rH   r   rG   r   r   rI   ru   )r(   r'   r   Zproposed_slugs   &*  r)   r   Z6AddGamesWindow.on_install_from_setup_game_name_changedu  sR    99DDFF::CCED-1GDMrM33<<]K Gr*   c                s   V P                   P                  4       P                  4       pV'       g   \        \	        R 4      V R7       R# V P
                  P                  4       '       d%   \        V P                  P                  4       4      pM\        V4      pV P                  V P                  P                  4       ,          ^ ,          pVP                  R"4      '       d   RMRpVP                  R4      ^ ,          pVR8w  d   RRR	R
VRV//pMRpV P                  V P                  P                  4       ,          ^ ,          pRVR\	        R4      RVR,           RVRRRRR\        RR/RRR\	        R4      ,          /.RRRRRRRV//.RR R!V////p	V'       d!   V	R,          R,          P!                  ^ V4       \"        P$                  P'                  4       p
V
P)                  V	.4       V P+                  4        R# )#z8You must provide a name for the game you are installing.ZparentNZwin32Zwin64Z-r   Ztaskr   Z
winetricksZapparchr   z
Setup filer   z-setupr   Zrunnerr   Zscriptr   ZexeZprefixz$GAMEDIRfilesZ	setupfilezN/A:%szSelect the setup file	installerZwineexecZ
executableZsystemZenvZLC_ALL)r   r   )rG   r   r   r   r0   rH   r   r   rI   rK   rL   Z
startswithZsplitrM   rN   r   Zinsertr   r   r   show_installer_windowr&   )r(   Zbuttonr   r   Zinstaller_presetr   Zwin_verZwin_ver_taskZlocale_selectedr   r   s   &&         r)   r   Z)AddGamesWindow._on_install_setup_continue{  s   66??AGGITU^bc55@@BB G G P P RSII11$2N2N2Y2Y2[\]^_*556HIIww"((-a0g"V\5'6SW$XYLL//0L0L0W0W0YZ[\] DqI(f*E;15L3M(MNOv
L+W]_c'def58_"=>	
	 h,33A|Doo113))9+6r*   c                r   zInstall from a YAML fileN)rE   r\    present_install_from_script_pager^   r_   r)   r   Z"AddGamesWindow.install_from_script  s    

##D$I$IJr*   c                f   \         P                  ! ^^R7      pV P                  \        R4      4      pVP	                  V^ ^ ^^4       VP	                  V P
                  ^^ ^^4       V P
                  P                  R4       \        R4      pVP	                  V P                  V4      ^ ^^^4       V# )   r   zScript fileTa  Lutris install scripts are YAML files that guide Lutris through the installation process.

They can be obtained on Lutris.net, or written by hand.

When you click 'Install' below, the installer window will appear and load the script, and it will guide the process from there.)r   r   r}   r0   r   rO   r   r   r(   r   r-   r      &   r)   rT   Z.AddGamesWindow.create_install_from_script_page  s    xxAa8- 01E1aA&D44aAqA((44T:T
 	D//<aAqIr*   c                r   )z <b>Select a Lutris installer</b>r   r   r,   N)rq   r0   rE   rr   r   'on_continue_install_from_script_clickedr^   r_   r)   r   Z/AddGamesWindow.present_install_from_script_page  sI    ""1%G#HI

 56$$T%Q%QYZ[eYf$gr*   c                s   V P                   P                  4       pV'       g   \        \        R 4      V R7       R# \        P
                  P                  V4      '       g    \        \        R4      V,          V R7       R# \        VR7      p\        P                  P                  4       pVP                  V4       V P                  4        R# )z)You must select a script file to install.r   zNo file exists at '%s'.)Zinstaller_fileN)rO   r   r   r0   ospathZisfiler   r   r   r   r   r&   )r(   rY   r   Z
installersr   s   &&   r)   r   Z6AddGamesWindow.on_continue_install_from_script_clicked  s    //88:EFtT%%34t;DI't<J//557K--j9LLNr*   c                r   r   )rE   r\   present_import_rom_pager^   r_   r)   r   ZAddGamesWindow.import_rom  s    

##D$@$@Ar*   c                r   )r   r   zROM fileTzLutris will identify ROMs via its MD5 hash and download game information from Lutris.net.

The ROM data used for this comes from  TOSEC, No-Intro and Redump projects.

When you click 'Install' below, the process of installing the games will begin.)r   r   r}   r0   r   rP   r   r   r   r   r)   rU   Z%AddGamesWindow.create_import_rom_page  s    xxAa8*.E1aA&D00!Q1=$$006
 	D//<aAqIr*   c                r   )z<b>Select ROMs</b>r   r   r,   N)rq   r0   rE   rr   r   on_continue_import_rom_clickedr^   r_   r)   r   Z&AddGamesWindow.present_import_rom_page  sH    ""1%9#:;

-$$T%H%HPQR\P]$^r*   c                s   . p\         P                  ! V P                  P                  4       4       F=  w  r4pV F1  pVP	                  \         P
                  P                  W64      4       K3  	  K?  	  V'       g   \        \        R 4      V R7       R# \        P                  P                  4       p\        W'P                  R7      pVP                  4        V P                  4        R# )z You must select ROMs to install.r   N)r   ZwalkrP   r   r   r   r   r   r0   r   r   r   r
   windowrw   r&   )	r(   rY   Zpathsr   Z_dirsr   Zfiler   Zdialogs	   &&       r)   r   Z-AddGamesWindow.on_continue_import_rom_clicked  s    "$''$*F*F*O*O*Q"RDRWW\\$56  #S <=dK//557K%e4F4FGFKKMLLNr*   c                s    \         P                  P                  4       p\        VP                  R7       V P                  4        R# )zManually configure gamer   N)r   r   r   r   r   r&   )r(   r   r   r)   r   ZAddGamesWindow.add_local_game  s-     oo113[//0r*   c                s    V'       d8   V P                   P                  V4       V P                   P                  4        R# V P                   P                  4        R# )zKPlaces some text at the top of the page; set markup to 'None' to remove it.N)r:   r   rw   rv   )r(   markuprZ   r)   rq   Z$AddGamesWindow.set_page_title_markup  s=    !!,,V4!!&&(!!&&(r*   r!   Tc                s(   V P                   P                  V4       V P                   P                  4       pV'       d   VP                  R 4       MVP	                  R 4       V P
                  '       d&   V P                   P                  V P
                  4       V P                   P                  RV4      V n        V P                   P                  4        V P                  P                  \        R4      4       V P                  P                  R4       R# )zsuggested-actionr    r#   TN)rA   	set_labelZget_style_contextZ	add_classZremove_classrC   
disconnectr>   rw   r+   r0   rE   set_cancel_allowed)r(   Zhandlerr-   Zsuggested_actionZstyle_contexts   &&&& r)   r   Z&AddGamesWindow.display_continue_button  s    &&u-,,>>@##$67&&'9:     ++D,A,AB $ 4 4 < <Y P!!#$$Qx[1

%%d+r*   r#   c                s    V P                   P                  V4       V P                  P                  R 4       V P                  P                  4        R# )TN)r+   r   rE   r   rA   rv   )r(   r-   rZ   r)   rs   Z$AddGamesWindow.display_cancel_button#  s:    $$U+

%%d+!!#r*   c                s    V P                   P                  4        V P                  P                  R 4       V P                  '       d/   V P                   P                  V P                  4       RV n        R# R# )FN)rA   rv   rE   r   rC   r   r^   r_   r)   display_no_continue_buttonZ)AddGamesWindow.display_no_continue_button(  sY    !!#

%%e,     ++D,A,AB$(D! !r*   c                s    V'       d   \         P                  P                  pM\         P                  P                  p\         P                  P                  W4      pVP                  4        V# r$   )r   ZIconSizeZMENUZDNDZImageZnew_from_icon_namerw   )r(   r   smallZsizerl   r   r)   	_get_iconZAddGamesWindow._get_icon2  sE    <<$$D<<##Dyy++D7		r*   c                sz    \         P                  ! R R7      pVP                  V4       VP                  ^ R4       V# )Tr   g      ?)r   r9   r   Zset_alignment)r(   rn   r-      && r)   r}   ZAddGamesWindow._get_label;  s3    		$'As#r*   c                s    \         P                  ! R ^^^^R7      pVP                  V4       VP                  R 4       V# )T)r   margin_rightmargin_left
margin_topmargin_bottom)r   r9   r   Zset_line_wrap)r(   r   r-   r   r)   r   Z%AddGamesWindow._get_explanation_labelA  s;    		$RRTVfhi D!r*   c           	     s   \         P                  ! R R7      pVP                  R4       VP                  R 4       \         P                  ! ^^^^^R R7      pV'       d&   V P                  V4      pVP                  VRR^ 4       V P                  RV RV 24      pVP                  VR R ^ 4       V'       d(   V P                  VR R7      p	VP                  V	RR^ 4       VP                  V4       V# )Tr   F)rz   r   r   r   r   r   z<b>z</b>
)r   )	r   Z
ListBoxRowZset_selectableZset_activatabler|   r   r;   r}   ri   )
r(   Zleft_icon_namern   ro   Zright_icon_namerp   Zboxrl   r-   rm   s
   &&&&&     r)   rg   ZAddGamesWindow._get_listbox_rowG  s    nnT*5!D!ggbrrb`blpq>>.1DNN4q1#dV6' ;<udD!,dCINN9eUA6
r*   )r<   r=   r+   rA   rC   rP   rG   rH   rI   rN   rL   rO   rM   rK   r:   rF   r1   r3   r2   r4   r8   r6   r5   rE   r7   N)F)rt   )0Z__name__Z
__module__Z__qualname__Z__firstlineno__Z__doc__r0   rf   r/   r?   r@   rD   rV   rQ   r]   rj   r   rR   rx   r~   r   r   r   r   rS   rJ   r   r   r   r   r   rT   r   r   r   rU   r   r   r   rq   r   rs   r   r   r}   r   rg   Z__static_attributes__Z__classdictcell__)r   s   @r)   r   r      s    9 %89:;	
 09:<= 	
 )34)*!	
 .mCD	
  +*+;<	
;$HLQ!f##
>%
I D%b
	X 	X->JAF?[
7L'VK$h

B$_
 	) 67{^VZ ,$ +,H+ $
) r*   r   )&r   r    r0   r   Zgi.repositoryr   r   Zlutrisr   r   Zlutris.configr   Z!lutris.gui.config.add_game_dialogr   Zlutris.gui.dialogsr   r	   Zlutris.gui.dialogs.game_importr
   Zlutris.gui.widgets.commonr   Z#lutris.gui.widgets.navigation_stackr   Zlutris.installerr   r   Zlutris.util.jobsr   r   r   Zlutris.util.stringsr   r   Zlutris.util.wine.protonr   Zlutris.util.wine.winer   r   r   r*   r)   <module>r      sF    	    " " & ; : ; 6 ? ; M M 1 5 2B	^ B	r*   