harimak

screens

Sep 8th, 2020
45
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ################################################################################
  2. ## Inicialización
  3. ################################################################################
  4.  
  5. init offset = -1
  6.  
  7.  
  8. ################################################################################
  9. ## Estilos
  10. ################################################################################
  11.  
  12. style default:
  13. properties gui.text_properties()
  14. language gui.language
  15.  
  16. style input:
  17. properties gui.text_properties("input", accent=True)
  18. adjust_spacing False
  19.  
  20. style hyperlink_text:
  21. properties gui.text_properties("hyperlink", accent=True)
  22. hover_underline True
  23.  
  24. style gui_text:
  25. properties gui.text_properties("interface")
  26.  
  27.  
  28. style button:
  29. properties gui.button_properties("button")
  30.  
  31. style button_text is gui_text:
  32. properties gui.text_properties("button")
  33. yalign 0.5
  34.  
  35.  
  36. style label_text is gui_text:
  37. properties gui.text_properties("label", accent=True)
  38.  
  39. style prompt_text is gui_text:
  40. properties gui.text_properties("prompt")
  41.  
  42.  
  43. style bar:
  44. ysize gui.bar_size
  45. left_bar Frame("gui/bar/left.png", gui.bar_borders, tile=gui.bar_tile)
  46. right_bar Frame("gui/bar/right.png", gui.bar_borders, tile=gui.bar_tile)
  47.  
  48. style vbar:
  49. xsize gui.bar_size
  50. top_bar Frame("gui/bar/top.png", gui.vbar_borders, tile=gui.bar_tile)
  51. bottom_bar Frame("gui/bar/bottom.png", gui.vbar_borders, tile=gui.bar_tile)
  52.  
  53. style scrollbar:
  54. ysize gui.scrollbar_size
  55. base_bar Frame("gui/scrollbar/horizontal_[prefix_]bar.png", gui.scrollbar_borders, tile=gui.scrollbar_tile)
  56. thumb Frame("gui/scrollbar/horizontal_[prefix_]thumb.png", gui.scrollbar_borders, tile=gui.scrollbar_tile)
  57.  
  58. style vscrollbar:
  59. xsize gui.scrollbar_size
  60. base_bar Frame("gui/scrollbar/vertical_[prefix_]bar.png", gui.vscrollbar_borders, tile=gui.scrollbar_tile)
  61. thumb Frame("gui/scrollbar/vertical_[prefix_]thumb.png", gui.vscrollbar_borders, tile=gui.scrollbar_tile)
  62.  
  63. style slider:
  64. ysize gui.slider_size
  65. base_bar Frame("gui/slider/horizontal_[prefix_]bar.png", gui.slider_borders, tile=gui.slider_tile)
  66. thumb "gui/slider/horizontal_[prefix_]thumb.png"
  67.  
  68. style vslider:
  69. xsize gui.slider_size
  70. base_bar Frame("gui/slider/vertical_[prefix_]bar.png", gui.vslider_borders, tile=gui.slider_tile)
  71. thumb "gui/slider/vertical_[prefix_]thumb.png"
  72.  
  73.  
  74. style frame:
  75. padding gui.frame_borders.padding
  76. background Frame("gui/frame.png", gui.frame_borders, tile=gui.frame_tile)
  77.  
  78.  
  79.  
  80. ################################################################################
  81. ## Pantallas internas a juego
  82. ################################################################################
  83.  
  84.  
  85. ## Pantalla de diálogo #########################################################
  86. ##
  87. ## La pantalla de diálogo muestra el diálogo al jugador. Acepta dos parámetros,
  88. ## 'who' y 'what', es decir, el nombre del personaje que habla y el texto que ha
  89. ## de ser mostrado respectivamente. (El parámetro 'who' puede ser 'None' si no
  90. ## se da ningún nombre.)
  91. ##
  92. ## Esta pantalla debe crear un texto visualizable con id "what" que Ren'Py usa
  93. ## para gestionar la visualización del texto. Puede crear también visualizables
  94. ## con id "who" y id "window" para aplicar propiedades de estilo.
  95. ##
  96. ## https://www.renpy.org/doc/html/screen_special.html#say
  97.  
  98. screen say(who, what):
  99. style_prefix "say"
  100.  
  101. window:
  102. id "window"
  103.  
  104. if who is not None:
  105.  
  106. window:
  107. id "namebox"
  108. style "namebox"
  109. text who id "who"
  110.  
  111. text what id "what"
  112.  
  113.  
  114. ## Si hay una imagen lateral, la muestra encima del texto. No la muestra en
  115. ## la variante de teléfono - no hay lugar.
  116. if not renpy.variant("small"):
  117. add SideImage() xalign 0.0 yalign 1.0
  118.  
  119.  
  120. ## Permite que el 'namebox' pueda ser estilizado en el objeto 'Character'.
  121. init python:
  122. config.character_id_prefixes.append('namebox')
  123.  
  124. style window is default
  125. style say_label is default
  126. style say_dialogue is default
  127. style say_thought is say_dialogue
  128.  
  129. style namebox is default
  130. style namebox_label is say_label
  131.  
  132.  
  133. style window:
  134. xalign 0.5
  135. xfill True
  136. yalign gui.textbox_yalign
  137. ysize gui.textbox_height
  138.  
  139. background Image("gui/textbox.png", xalign=0.5, yalign=1.0)
  140.  
  141. style namebox:
  142. xpos gui.name_xpos
  143. xanchor gui.name_xalign
  144. xsize gui.namebox_width
  145. ypos gui.name_ypos
  146. ysize gui.namebox_height
  147.  
  148. background Frame("gui/namebox.png", gui.namebox_borders, tile=gui.namebox_tile, xalign=gui.name_xalign)
  149. padding gui.namebox_borders.padding
  150.  
  151. style say_label:
  152. properties gui.text_properties("name", accent=True)
  153. xalign gui.name_xalign
  154. yalign 0.5
  155.  
  156. style say_dialogue:
  157. properties gui.text_properties("dialogue")
  158.  
  159. xpos gui.dialogue_xpos
  160. xsize gui.dialogue_width
  161. ypos gui.dialogue_ypos
  162.  
  163.  
  164. ## Pantalla de introducción de texto ###########################################
  165. ##
  166. ## Pantalla usada para visualizar 'renpy.input'. El parámetro 'prompt' se usa
  167. ## para pasar el texto presentado.
  168. ##
  169. ## Esta pantalla debe crear un displayable 'input' con id "input" para aceptar
  170. ## diversos parámetros de entrada.
  171. ##
  172. ## https://www.renpy.org/doc/html/screen_special.html#input
  173.  
  174. screen input(prompt):
  175. style_prefix "input"
  176.  
  177. window:
  178.  
  179. vbox:
  180. xalign gui.dialogue_text_xalign
  181. xpos gui.dialogue_xpos
  182. xsize gui.dialogue_width
  183. ypos gui.dialogue_ypos
  184.  
  185. text prompt style "input_prompt"
  186. input id "input"
  187.  
  188. style input_prompt is default
  189.  
  190. style input_prompt:
  191. xalign gui.dialogue_text_xalign
  192. properties gui.text_properties("input_prompt")
  193.  
  194. style input:
  195. xalign gui.dialogue_text_xalign
  196. xmaximum gui.dialogue_width
  197.  
  198.  
  199. ## Pantalla de menú ############################################################
  200. ##
  201. ## Esta pantallla presenta las opciones internas al juego de la sentencia
  202. ## 'menu'. El parámetro único, 'items', es una lista de objetos, cada uno los
  203. ## campos 'caption' y 'action'.
  204. ##
  205. ## https://www.renpy.org/doc/html/screen_special.html#choice
  206.  
  207. screen choice(items):
  208. style_prefix "choice"
  209.  
  210. vbox:
  211. for i in items:
  212. textbutton i.caption action i.action
  213.  
  214.  
  215. ## Cuando es 'True', el encabezamiento será dicho por el narrador. Si es
  216. ## 'False', será presentado como un botón inactivo.
  217. define config.narrator_menu = True
  218.  
  219.  
  220. style choice_vbox is vbox
  221. style choice_button is button
  222. style choice_button_text is button_text
  223.  
  224. style choice_vbox:
  225. xalign 0.5
  226. ypos 270
  227. yanchor 0.5
  228.  
  229. spacing gui.choice_spacing
  230.  
  231. style choice_button is default:
  232. properties gui.button_properties("choice_button")
  233.  
  234. style choice_button_text is default:
  235. properties gui.button_text_properties("choice_button")
  236.  
  237.  
  238. ## Pantalla de menú rápido #####################################################
  239. ##
  240. ## El menú rápido es presentado en el juego para ofrecer fácil acceso a los
  241. ## menus externos al juego.
  242.  
  243. screen quick_menu():
  244.  
  245. ## Asegura que esto aparezca en la parte superior de otras pantallas.
  246. zorder 100
  247.  
  248. if quick_menu:
  249.  
  250. hbox:
  251. style_prefix "quick"
  252.  
  253. xalign 0.5
  254. yalign 1.0
  255.  
  256. textbutton _("Atrás") action Rollback()
  257. textbutton _("Historial") action ShowMenu('history')
  258. textbutton _("Saltar") action Skip() alternate Skip(fast=True, confirm=True)
  259. textbutton _("Auto") action Preference("auto-forward", "toggle")
  260. textbutton _("Guardar") action ShowMenu('save')
  261. textbutton _("Guardar R.") action QuickSave()
  262. textbutton _("Cargar R.") action QuickLoad()
  263. textbutton _("Gallery") action ShowMenu("cg_gallery")
  264. textbutton _("Prefs.") action ShowMenu('preferences')
  265.  
  266.  
  267. ## Este código asegura que la pantalla 'quick_menu' se muestra en el juego,
  268. ## mientras el jugador no haya escondido explícitamente la interfaz.
  269. init python:
  270. config.overlay_screens.append("quick_menu")
  271.  
  272. default quick_menu = True
  273.  
  274. style quick_button is default
  275. style quick_button_text is button_text
  276.  
  277. style quick_button:
  278. properties gui.button_properties("quick_button")
  279.  
  280. style quick_button_text:
  281. properties gui.button_text_properties("quick_button")
  282.  
  283.  
  284. ################################################################################
  285.  
  286. ## Principal y Pantalla de menu del juego.
  287. ################################################################################
  288.  
  289. ## Pantalla de navegación ######################################################
  290. ##
  291. ## Esta pantalla está incluída en el menú principal y los menús del juego y
  292. ## ofrece navegación a los otros menús y al inicio del juego.
  293.  
  294. screen navigation():
  295.  
  296. vbox:
  297. style_prefix "navigation"
  298.  
  299. xpos gui.navigation_xpos
  300. yalign 0.5
  301.  
  302. spacing gui.navigation_spacing
  303.  
  304. if main_menu:
  305.  
  306. textbutton _("Comenzar") action Start()
  307.  
  308. textbutton _("Gallery") action ShowMenu("cg_gallery")
  309.  
  310. else:
  311.  
  312. textbutton _("Historial") action ShowMenu("history")
  313.  
  314. textbutton _("Guardar") action ShowMenu("save")
  315.  
  316.  
  317.  
  318. textbutton _("Cargar") action ShowMenu("load")
  319.  
  320. textbutton _("Opciones") action ShowMenu("preferences")
  321.  
  322. if _in_replay:
  323.  
  324. textbutton _("Finaliza repetición") action EndReplay(confirm=True)
  325.  
  326. elif not main_menu:
  327.  
  328. textbutton _("Menú principal") action MainMenu()
  329.  
  330. textbutton _("Acerca de") action ShowMenu("about")
  331.  
  332. if renpy.variant("pc") or (renpy.variant("web") and not renpy.variant("mobile")):
  333.  
  334. ## La ayuda no es necesaria ni relevante en dispositivos móviles.
  335. textbutton _("Ayuda") action ShowMenu("help")
  336.  
  337. if renpy.variant("pc"):
  338.  
  339. ## The quit button is banned on iOS and unnecessary on Android and
  340. ## Web.
  341. textbutton _("Salir") action Quit(confirm=not main_menu)
  342.  
  343.  
  344. style navigation_button is gui_button
  345. style navigation_button_text is gui_button_text
  346.  
  347. style navigation_button:
  348. size_group "navigation"
  349. properties gui.button_properties("navigation_button")
  350.  
  351. style navigation_button_text:
  352. properties gui.button_text_properties("navigation_button")
  353.  
  354.  
  355. ## Pantalla del menú principal #################################################
  356. ##
  357. ## Usado para mostrar el menú principal cuando Ren'Py arranca.
  358. ##
  359. ## https://www.renpy.org/doc/html/screen_special.html#main-menu
  360.  
  361. screen main_menu():
  362.  
  363. ## Esto asegura que cualquier otra pantalla de menu es remplazada.
  364. tag menu
  365.  
  366. style_prefix "main_menu"
  367.  
  368. add gui.main_menu_background
  369.  
  370. ## Este marco vacío oscurece el menu principal.
  371. frame:
  372. pass
  373.  
  374. ## La sentencia 'use' incluye otra pantalla dentro de esta. El contenido
  375. ## real del menú principal está en la pantalla de navegación.
  376. use navigation
  377.  
  378. if gui.show_name:
  379.  
  380. vbox:
  381. text "[config.name!t]":
  382. style "main_menu_title"
  383.  
  384. text "[config.version]":
  385. style "main_menu_version"
  386.  
  387.  
  388. style main_menu_frame is empty
  389. style main_menu_vbox is vbox
  390. style main_menu_text is gui_text
  391. style main_menu_title is main_menu_text
  392. style main_menu_version is main_menu_text
  393.  
  394. style main_menu_frame:
  395. xsize 280
  396. yfill True
  397.  
  398. background "gui/overlay/main_menu.png"
  399.  
  400. style main_menu_vbox:
  401. xalign 1.0
  402. xoffset -20
  403. xmaximum 800
  404. yalign 1.0
  405. yoffset -20
  406.  
  407. style main_menu_text:
  408. properties gui.text_properties("main_menu", accent=True)
  409.  
  410. style main_menu_title:
  411. properties gui.text_properties("title")
  412.  
  413. style main_menu_version:
  414. properties gui.text_properties("version")
  415.  
  416.  
  417. ## Pantalla del menú del juego #################################################
  418. ##
  419. ## Esto distribuye la estructura de base del menú del juego. Es llamado con el
  420. ## título de la pantalla y presenta el fondo, el título y la navegación.
  421. ##
  422. ## El parámetro 'scroll' puede ser 'None', "viewport" o "vpgrid". Cuando se usa
  423. ## esta pantalla con uno o más elementos, que son transcluídos (situados) en su
  424. ## interior.
  425.  
  426. screen game_menu(title, scroll=None, yinitial=0.0):
  427.  
  428. style_prefix "game_menu"
  429.  
  430. if main_menu:
  431. add gui.main_menu_background
  432. else:
  433. add gui.game_menu_background
  434.  
  435. frame:
  436. style "game_menu_outer_frame"
  437.  
  438. hbox:
  439.  
  440. ## Reservar espacio para la sección de navegación.
  441. frame:
  442. style "game_menu_navigation_frame"
  443.  
  444. frame:
  445. style "game_menu_content_frame"
  446.  
  447. if scroll == "viewport":
  448.  
  449. viewport:
  450. yinitial yinitial
  451. scrollbars "vertical"
  452. mousewheel True
  453. draggable True
  454. pagekeys True
  455.  
  456. side_yfill True
  457.  
  458. vbox:
  459. transclude
  460.  
  461. elif scroll == "vpgrid":
  462.  
  463. vpgrid:
  464. cols 1
  465. yinitial yinitial
  466.  
  467. scrollbars "vertical"
  468. mousewheel True
  469. draggable True
  470. pagekeys True
  471.  
  472. side_yfill True
  473.  
  474. transclude
  475.  
  476. else:
  477.  
  478. transclude
  479.  
  480. use navigation
  481.  
  482. textbutton _("Volver"):
  483. style "return_button"
  484.  
  485. action Return()
  486.  
  487. label title
  488.  
  489. if main_menu:
  490. key "game_menu" action ShowMenu("main_menu")
  491.  
  492.  
  493. style game_menu_outer_frame is empty
  494. style game_menu_navigation_frame is empty
  495. style game_menu_content_frame is empty
  496. style game_menu_viewport is gui_viewport
  497. style game_menu_side is gui_side
  498. style game_menu_scrollbar is gui_vscrollbar
  499.  
  500. style game_menu_label is gui_label
  501. style game_menu_label_text is gui_label_text
  502.  
  503. style return_button is navigation_button
  504. style return_button_text is navigation_button_text
  505.  
  506. style game_menu_outer_frame:
  507. bottom_padding 30
  508. top_padding 120
  509.  
  510. background "gui/overlay/game_menu.png"
  511.  
  512. style game_menu_navigation_frame:
  513. xsize 280
  514. yfill True
  515.  
  516. style game_menu_content_frame:
  517. left_margin 40
  518. right_margin 20
  519. top_margin 10
  520.  
  521. style game_menu_viewport:
  522. xsize 920
  523.  
  524. style game_menu_vscrollbar:
  525. unscrollable gui.unscrollable
  526.  
  527. style game_menu_side:
  528. spacing 10
  529.  
  530. style game_menu_label:
  531. xpos 50
  532. ysize 120
  533.  
  534. style game_menu_label_text:
  535. size gui.title_text_size
  536. color gui.accent_color
  537. yalign 0.5
  538.  
  539. style return_button:
  540. xpos gui.navigation_xpos
  541. yalign 1.0
  542. yoffset -30
  543.  
  544.  
  545. ## Pantalla 'acerca de' ########################################################
  546. ##
  547. ## Esta pantalla da información sobre los créditos y el copyright del juego y de
  548. ## Ren'Py.
  549. ##
  550. ## No hay nada especial en esta pantalla y por tanto sirve también como ejemplo
  551. ## de cómo hacer una pantalla personalizada.
  552.  
  553. screen about():
  554.  
  555. tag menu
  556.  
  557. ## Esta sentencia 'use' incluye la pantalla 'game_menu' dentro de esta. El
  558. ## elemento 'vbox' se incluye entonces dentro del 'viewport' al interno de
  559. ## la pantalla 'game_menu'.
  560. use game_menu(_("Acerca de"), scroll="viewport"):
  561.  
  562. style_prefix "about"
  563.  
  564. vbox:
  565.  
  566. label "[config.name!t]"
  567. text _("Versión [config.version!t]\n")
  568.  
  569. ## 'gui.about' se ajusta habitualmente en 'options.rpy'.
  570. if gui.about:
  571. text "[gui.about!t]\n"
  572.  
  573. text _("Hecho con {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]")
  574.  
  575.  
  576. ## Esto se redefine en 'options.rpy' para añadir texto a la pantalla 'acerca
  577. ## de'.
  578. define gui.about = ""
  579.  
  580.  
  581. style about_label is gui_label
  582. style about_label_text is gui_label_text
  583. style about_text is gui_text
  584.  
  585. style about_label_text:
  586. size gui.label_text_size
  587.  
  588.  
  589. ## Pantallas de carga y grabación ##############################################
  590. ##
  591. ## Estas pantallas permiten al jugador grabar el juego y cargarlo de nuevo. Como
  592. ## comparten casi todos los elementos, ambas están implementadas en una tercera
  593. ## pantalla: 'file_slots'.
  594. ##
  595. ## https://www.renpy.org/doc/html/screen_special.html#save https://
  596. ## www.renpy.org/doc/html/screen_special.html#load
  597.  
  598. screen save():
  599.  
  600. tag menu
  601.  
  602. use file_slots(_("Guardar"))
  603.  
  604.  
  605. screen load():
  606.  
  607. tag menu
  608.  
  609. use file_slots(_("Cargar"))
  610.  
  611.  
  612. screen file_slots(title):
  613.  
  614. default page_name_value = FilePageNameInputValue(pattern=_("Página {}"), auto=_("Grabación automática"), quick=_("Grabación rápida"))
  615.  
  616. use game_menu(title):
  617.  
  618. fixed:
  619.  
  620. ## Esto asegura que 'input' recibe el evento 'enter' antes que otros
  621. ## botones.
  622. order_reverse True
  623.  
  624. ## El nombre de la pagina, se puede editar haciendo clic en el
  625. ## botón.
  626. button:
  627. style "page_label"
  628.  
  629. key_events True
  630. xalign 0.5
  631. action page_name_value.Toggle()
  632.  
  633. input:
  634. style "page_label_text"
  635. value page_name_value
  636.  
  637. ## La cuadrícula de huecos de guardado.
  638. grid gui.file_slot_cols gui.file_slot_rows:
  639. style_prefix "slot"
  640.  
  641. xalign 0.5
  642. yalign 0.5
  643.  
  644. spacing gui.slot_spacing
  645.  
  646. for i in range(gui.file_slot_cols * gui.file_slot_rows):
  647.  
  648. $ slot = i + 1
  649.  
  650. button:
  651. action FileAction(slot)
  652.  
  653. has vbox
  654.  
  655. add FileScreenshot(slot) xalign 0.5
  656.  
  657. text FileTime(slot, format=_("{#file_time}%A, %d de %B %Y, %H:%M"), empty=_("vacío")):
  658. style "slot_time_text"
  659.  
  660. text FileSaveName(slot):
  661. style "slot_name_text"
  662.  
  663. key "save_delete" action FileDelete(slot)
  664.  
  665. ## Botones de acceso a otras páginas
  666. hbox:
  667. style_prefix "page"
  668.  
  669. xalign 0.5
  670. yalign 1.0
  671.  
  672. spacing gui.page_spacing
  673.  
  674. textbutton _("<") action FilePagePrevious()
  675.  
  676. if config.has_autosave:
  677. textbutton _("{#auto_page}A") action FilePage("auto")
  678.  
  679. if config.has_quicksave:
  680. textbutton _("{#quick_page}R") action FilePage("quick")
  681.  
  682. ## range(1, 10) da los numeros del 1 al 9.
  683. for page in range(1, 10):
  684. textbutton "[page]" action FilePage(page)
  685.  
  686. textbutton _(">") action FilePageNext()
  687.  
  688.  
  689. style page_label is gui_label
  690. style page_label_text is gui_label_text
  691. style page_button is gui_button
  692. style page_button_text is gui_button_text
  693.  
  694. style slot_button is gui_button
  695. style slot_button_text is gui_button_text
  696. style slot_time_text is slot_button_text
  697. style slot_name_text is slot_button_text
  698.  
  699. style page_label:
  700. xpadding 50
  701. ypadding 3
  702.  
  703. style page_label_text:
  704. text_align 0.5
  705. layout "subtitle"
  706. hover_color gui.hover_color
  707.  
  708. style page_button:
  709. properties gui.button_properties("page_button")
  710.  
  711. style page_button_text:
  712. properties gui.button_text_properties("page_button")
  713.  
  714. style slot_button:
  715. properties gui.button_properties("slot_button")
  716.  
  717. style slot_button_text:
  718. properties gui.button_text_properties("slot_button")
  719.  
  720.  
  721. ## Pantalla de preferencias ####################################################
  722. ##
  723. ## La pantalla de preferencias permite al jugador configurar el juego a su
  724. ## gusto.
  725. ##
  726. ## https://www.renpy.org/doc/html/screen_special.html#preferences
  727.  
  728. screen preferences():
  729.  
  730. tag menu
  731.  
  732. use game_menu(_("Opciones"), scroll="viewport"):
  733.  
  734. vbox:
  735.  
  736. hbox:
  737. box_wrap True
  738.  
  739. if renpy.variant("pc") or renpy.variant("web"):
  740.  
  741. vbox:
  742. style_prefix "radio"
  743. label _("Pantalla")
  744. textbutton _("Ventana") action Preference("display", "window")
  745. textbutton _("Pant. completa") action Preference("display", "fullscreen")
  746.  
  747. vbox:
  748. style_prefix "radio"
  749. label _("Lado de retroceso")
  750. textbutton _("Desactivar") action Preference("rollback side", "disable")
  751. textbutton _("Izquierda") action Preference("rollback side", "left")
  752. textbutton _("Derecha") action Preference("rollback side", "right")
  753.  
  754. vbox:
  755. style_prefix "check"
  756. label _("Saltar")
  757. textbutton _("Texto no visto") action Preference("skip", "toggle")
  758. textbutton _("Tras opciones") action Preference("after choices", "toggle")
  759. textbutton _("Transiciones") action InvertSelected(Preference("transitions", "toggle"))
  760.  
  761. ## Aquí se pueden añadir 'vboxes' adicionales del tipo
  762. ## "radio_pref" o "check_pref" para nuevas preferencias.
  763.  
  764. null height (4 * gui.pref_spacing)
  765.  
  766. hbox:
  767. style_prefix "slider"
  768. box_wrap True
  769.  
  770. vbox:
  771.  
  772. label _("Veloc. texto")
  773.  
  774. bar value Preference("text speed")
  775.  
  776. label _("Veloc. auto-avance")
  777.  
  778. bar value Preference("auto-forward time")
  779.  
  780. vbox:
  781.  
  782. if config.has_music:
  783. label _("Volumen música")
  784.  
  785. hbox:
  786. bar value Preference("music volume")
  787.  
  788. if config.has_sound:
  789.  
  790. label _("Volumen sonido")
  791.  
  792. hbox:
  793. bar value Preference("sound volume")
  794.  
  795. if config.sample_sound:
  796. textbutton _("Prueba") action Play("sound", config.sample_sound)
  797.  
  798.  
  799. if config.has_voice:
  800. label _("Volumen voz")
  801.  
  802. hbox:
  803. bar value Preference("voice volume")
  804.  
  805. if config.sample_voice:
  806. textbutton _("Prueba") action Play("voice", config.sample_voice)
  807.  
  808. if config.has_music or config.has_sound or config.has_voice:
  809. null height gui.pref_spacing
  810.  
  811. textbutton _("Silencia todo"):
  812. action Preference("all mute", "toggle")
  813. style "mute_all_button"
  814.  
  815.  
  816. style pref_label is gui_label
  817. style pref_label_text is gui_label_text
  818. style pref_vbox is vbox
  819.  
  820. style radio_label is pref_label
  821. style radio_label_text is pref_label_text
  822. style radio_button is gui_button
  823. style radio_button_text is gui_button_text
  824. style radio_vbox is pref_vbox
  825.  
  826. style check_label is pref_label
  827. style check_label_text is pref_label_text
  828. style check_button is gui_button
  829. style check_button_text is gui_button_text
  830. style check_vbox is pref_vbox
  831.  
  832. style slider_label is pref_label
  833. style slider_label_text is pref_label_text
  834. style slider_slider is gui_slider
  835. style slider_button is gui_button
  836. style slider_button_text is gui_button_text
  837. style slider_pref_vbox is pref_vbox
  838.  
  839. style mute_all_button is check_button
  840. style mute_all_button_text is check_button_text
  841.  
  842. style pref_label:
  843. top_margin gui.pref_spacing
  844. bottom_margin 2
  845.  
  846. style pref_label_text:
  847. yalign 1.0
  848.  
  849. style pref_vbox:
  850. xsize 225
  851.  
  852. style radio_vbox:
  853. spacing gui.pref_button_spacing
  854.  
  855. style radio_button:
  856. properties gui.button_properties("radio_button")
  857. foreground "gui/button/radio_[prefix_]foreground.png"
  858.  
  859. style radio_button_text:
  860. properties gui.button_text_properties("radio_button")
  861.  
  862. style check_vbox:
  863. spacing gui.pref_button_spacing
  864.  
  865. style check_button:
  866. properties gui.button_properties("check_button")
  867. foreground "gui/button/check_[prefix_]foreground.png"
  868.  
  869. style check_button_text:
  870. properties gui.button_text_properties("check_button")
  871.  
  872. style slider_slider:
  873. xsize 350
  874.  
  875. style slider_button:
  876. properties gui.button_properties("slider_button")
  877. yalign 0.5
  878. left_margin 10
  879.  
  880. style slider_button_text:
  881. properties gui.button_text_properties("slider_button")
  882.  
  883. style slider_vbox:
  884. xsize 450
  885.  
  886.  
  887. ## Pantalla de historial #######################################################
  888. ##
  889. ## Esta pantalla presenta el historial de diálogo al jugador, almacenado en
  890. ## '_history_list'.
  891. ##
  892. ## https://www.renpy.org/doc/html/history.html
  893.  
  894. screen history():
  895.  
  896. tag menu
  897.  
  898. ## Evita la predicción de esta pantalla, que podría ser demasiado grande.
  899. predict False
  900.  
  901. use game_menu(_("Historial"), scroll=("vpgrid" if gui.history_height else "viewport"), yinitial=1.0):
  902.  
  903. style_prefix "history"
  904.  
  905. for h in _history_list:
  906.  
  907. window:
  908.  
  909. ## Esto distribuye los elementos apropiadamente si
  910. ## 'history_height' es 'None'.
  911. has fixed:
  912. yfit True
  913.  
  914. if h.who:
  915.  
  916. label h.who:
  917. style "history_name"
  918. substitute False
  919.  
  920. ## Toma el color del texto 'who' de 'Character', si ha
  921. ## sido establecido.
  922. if "color" in h.who_args:
  923. text_color h.who_args["color"]
  924.  
  925. $ what = renpy.filter_text_tags(h.what, allow=gui.history_allow_tags)
  926. text what:
  927. substitute False
  928.  
  929. if not _history_list:
  930. label _("El historial está vacío.")
  931.  
  932.  
  933. ## Esto determina qué etiquetas se permiten en la pantalla de historial.
  934.  
  935. define gui.history_allow_tags = set()
  936.  
  937.  
  938. style history_window is empty
  939.  
  940. style history_name is gui_label
  941. style history_name_text is gui_label_text
  942. style history_text is gui_text
  943.  
  944. style history_text is gui_text
  945.  
  946. style history_label is gui_label
  947. style history_label_text is gui_label_text
  948.  
  949. style history_window:
  950. xfill True
  951. ysize gui.history_height
  952.  
  953. style history_name:
  954. xpos gui.history_name_xpos
  955. xanchor gui.history_name_xalign
  956. ypos gui.history_name_ypos
  957. xsize gui.history_name_width
  958.  
  959. style history_name_text:
  960. min_width gui.history_name_width
  961. text_align gui.history_name_xalign
  962.  
  963. style history_text:
  964. xpos gui.history_text_xpos
  965. ypos gui.history_text_ypos
  966. xanchor gui.history_text_xalign
  967. xsize gui.history_text_width
  968. min_width gui.history_text_width
  969. text_align gui.history_text_xalign
  970. layout ("subtitle" if gui.history_text_xalign else "tex")
  971.  
  972. style history_label:
  973. xfill True
  974.  
  975. style history_label_text:
  976. xalign 0.5
  977.  
  978.  
  979. ## Pantalla de ayuda ###########################################################
  980. ##
  981. ## Una pantalla que da información sobre el uso del teclado y el ratón. Usa
  982. ## otras pantallas con el contenido de la ayuda ('keyboard_help', 'mouse_help',
  983. ## y 'gamepad_help').
  984.  
  985. screen help():
  986.  
  987. tag menu
  988.  
  989. default device = "keyboard"
  990.  
  991. use game_menu(_("Ayuda"), scroll="viewport"):
  992.  
  993. style_prefix "help"
  994.  
  995. vbox:
  996. spacing 15
  997.  
  998. hbox:
  999.  
  1000. textbutton _("Teclado") action SetScreenVariable("device", "keyboard")
  1001. textbutton _("Ratón") action SetScreenVariable("device", "mouse")
  1002.  
  1003. if GamepadExists():
  1004. textbutton _("Mando") action SetScreenVariable("device", "gamepad")
  1005.  
  1006. if device == "keyboard":
  1007. use keyboard_help
  1008. elif device == "mouse":
  1009. use mouse_help
  1010. elif device == "gamepad":
  1011. use gamepad_help
  1012.  
  1013.  
  1014. screen keyboard_help():
  1015.  
  1016. hbox:
  1017. label _("Enter")
  1018. text _("Avanza el diálogo y activa la interfaz.")
  1019.  
  1020. hbox:
  1021. label _("Espacio")
  1022. text _("Avanza el dilogo sin seleccionar opciones.")
  1023.  
  1024. hbox:
  1025. label _("Teclas de flecha")
  1026. text _("Navega la interfaz.")
  1027.  
  1028. hbox:
  1029. label _("Escape")
  1030. text _("Accede al menú del juego.")
  1031.  
  1032. hbox:
  1033. label _("Ctrl")
  1034. text _("Salta el diálogo mientras se presiona.")
  1035.  
  1036. hbox:
  1037. label _("Tabulador")
  1038. text _("Activa/desactiva el salto de diálogo.")
  1039.  
  1040. hbox:
  1041. label _("Av. pág.")
  1042. text _("Retrocede al diálogo anterior.")
  1043.  
  1044. hbox:
  1045. label _("Re. pág.")
  1046. text _("Avanza hacia el diálogo siguiente.")
  1047.  
  1048. hbox:
  1049. label "H"
  1050. text _("Oculta la interfaz.")
  1051.  
  1052. hbox:
  1053. label "S"
  1054. text _("Captura la pantalla.")
  1055.  
  1056. hbox:
  1057. label "V"
  1058. text _("Activa/desactiva la asistencia por {a=https://www.renpy.org/l/voicing}voz-automática{/a}.")
  1059.  
  1060.  
  1061. screen mouse_help():
  1062.  
  1063. hbox:
  1064. label _("Clic izquierdo")
  1065. text _("Avanza el diálogo y activa la interfaz.")
  1066.  
  1067. hbox:
  1068. label _("Clic medio")
  1069. text _("Oculta la interfaz.")
  1070.  
  1071. hbox:
  1072. label _("Clic derecho")
  1073. text _("Accede al menú del juego.")
  1074.  
  1075. hbox:
  1076. label _("Rueda del ratón arriba\nClic en lado de retroceso")
  1077. text _("Retrocede al diálogo anterior.")
  1078.  
  1079. hbox:
  1080. label _("Rueda del ratón abajo")
  1081. text _("Avanza hacia el diálogo siguiente.")
  1082.  
  1083.  
  1084. screen gamepad_help():
  1085.  
  1086. hbox:
  1087. label _("Gatillo derecho\nA/Botón inferior")
  1088. text _("Avanza el diálogo y activa la interfaz.")
  1089.  
  1090. hbox:
  1091. label _("Gatillo izquierdo\nBotón sup. frontal izq.")
  1092. text _("Retrocede al diálogo anterior.")
  1093.  
  1094. hbox:
  1095. label _("Botón sup. frontal der.")
  1096. text _("Avanza hacia el diálogo siguiente.")
  1097.  
  1098.  
  1099. hbox:
  1100. label _("D-Pad, Sticks")
  1101. text _("Navega la interfaz.")
  1102.  
  1103. hbox:
  1104. label _("Comenzar, Guía")
  1105. text _("Accede al menú del juego.")
  1106.  
  1107. hbox:
  1108. label _("Y/Botón superior")
  1109. text _("Oculta la interfaz.")
  1110.  
  1111. textbutton _("Calibrar") action GamepadCalibrate()
  1112.  
  1113.  
  1114. style help_button is gui_button
  1115. style help_button_text is gui_button_text
  1116. style help_label is gui_label
  1117. style help_label_text is gui_label_text
  1118. style help_text is gui_text
  1119.  
  1120. style help_button:
  1121. properties gui.button_properties("help_button")
  1122. xmargin 8
  1123.  
  1124. style help_button_text:
  1125. properties gui.button_text_properties("help_button")
  1126.  
  1127. style help_label:
  1128. xsize 250
  1129. right_padding 20
  1130.  
  1131. style help_label_text:
  1132. size gui.text_size
  1133. xalign 1.0
  1134. text_align 1.0
  1135.  
  1136.  
  1137.  
  1138. ################################################################################
  1139. ## Pantallas adicionales
  1140. ################################################################################
  1141.  
  1142.  
  1143. ## Pantalla de confirmación ####################################################
  1144. ##
  1145. ## Ren'Py llama la pantalla de confirmación para presentar al jugador preguntas
  1146. ## de sí o no.
  1147. ##
  1148. ## https://www.renpy.org/doc/html/screen_special.html#confirm
  1149.  
  1150. screen confirm(message, yes_action, no_action):
  1151.  
  1152. ## Asegura que otras pantallas no reciban entrada mientras se muestra esta
  1153. ## pantalla.
  1154. modal True
  1155.  
  1156. zorder 200
  1157.  
  1158. style_prefix "confirm"
  1159.  
  1160. add "gui/overlay/confirm.png"
  1161.  
  1162. frame:
  1163.  
  1164. vbox:
  1165. xalign .5
  1166. yalign .5
  1167. spacing 30
  1168.  
  1169. label _(message):
  1170. style "confirm_prompt"
  1171. xalign 0.5
  1172.  
  1173. hbox:
  1174. xalign 0.5
  1175. spacing 100
  1176.  
  1177. textbutton _("Sí") action yes_action
  1178. textbutton _("No") action no_action
  1179.  
  1180. ## Clic derecho o escape responden "no".
  1181. key "game_menu" action no_action
  1182.  
  1183.  
  1184. style confirm_frame is gui_frame
  1185. style confirm_prompt is gui_prompt
  1186. style confirm_prompt_text is gui_prompt_text
  1187. style confirm_button is gui_medium_button
  1188. style confirm_button_text is gui_medium_button_text
  1189.  
  1190. style confirm_frame:
  1191. background Frame([ "gui/confirm_frame.png", "gui/frame.png"], gui.confirm_frame_borders, tile=gui.frame_tile)
  1192. padding gui.confirm_frame_borders.padding
  1193. xalign .5
  1194. yalign .5
  1195.  
  1196. style confirm_prompt_text:
  1197. text_align 0.5
  1198. layout "subtitle"
  1199.  
  1200. style confirm_button:
  1201. properties gui.button_properties("confirm_button")
  1202.  
  1203. style confirm_button_text:
  1204. properties gui.button_text_properties("confirm_button")
  1205.  
  1206.  
  1207. ## Pantalla del indicador de salto #############################################
  1208. ##
  1209. ## La pantalla de indicador de salto se muestra para indicar que se está
  1210. ## realizando el salto.
  1211. ##
  1212. ## https://www.renpy.org/doc/html/screen_special.html#skip-indicator
  1213.  
  1214. screen skip_indicator():
  1215.  
  1216. zorder 100
  1217. style_prefix "skip"
  1218.  
  1219. frame:
  1220.  
  1221. hbox:
  1222. spacing 6
  1223.  
  1224. text _("Saltando")
  1225.  
  1226. text "▸" at delayed_blink(0.0, 1.0) style "skip_triangle"
  1227. text "▸" at delayed_blink(0.2, 1.0) style "skip_triangle"
  1228. text "▸" at delayed_blink(0.4, 1.0) style "skip_triangle"
  1229.  
  1230.  
  1231. ## Esta transformación provoca el parpadeo de las flechas una tras otra.
  1232. transform delayed_blink(delay, cycle):
  1233. alpha .5
  1234.  
  1235. pause delay
  1236.  
  1237. block:
  1238. linear .2 alpha 1.0
  1239. pause .2
  1240. linear .2 alpha 0.5
  1241. pause (cycle - .4)
  1242. repeat
  1243.  
  1244.  
  1245. style skip_frame is empty
  1246. style skip_text is gui_text
  1247. style skip_triangle is skip_text
  1248.  
  1249. style skip_frame:
  1250. ypos gui.skip_ypos
  1251. background Frame("gui/skip.png", gui.skip_frame_borders, tile=gui.frame_tile)
  1252. padding gui.skip_frame_borders.padding
  1253.  
  1254. style skip_text:
  1255. size gui.notify_text_size
  1256.  
  1257. style skip_triangle:
  1258. ## Es necesario usar un tipo de letra que contenga el glifo BLACK RIGHT-
  1259. ## POINTING SMALL TRIANGLE.
  1260. font "DejaVuSans.ttf"
  1261.  
  1262.  
  1263. ## Pantalla de notificación ####################################################
  1264. ##
  1265. ## La pantalla de notificación muestra al jugador un mensaje. (Por ejemplo, con
  1266. ## un guardado rápido o una captura de pantalla.)
  1267. ##
  1268. ## https://www.renpy.org/doc/html/screen_special.html#notify-screen
  1269.  
  1270. screen notify(message):
  1271.  
  1272. zorder 100
  1273. style_prefix "notify"
  1274.  
  1275. frame at notify_appear:
  1276. text "[message!tq]"
  1277.  
  1278. timer 3.25 action Hide('notify')
  1279.  
  1280.  
  1281. transform notify_appear:
  1282. on show:
  1283. alpha 0
  1284. linear .25 alpha 1.0
  1285. on hide:
  1286. linear .5 alpha 0.0
  1287.  
  1288.  
  1289. style notify_frame is empty
  1290. style notify_text is gui_text
  1291.  
  1292. style notify_frame:
  1293. ypos gui.notify_ypos
  1294.  
  1295. background Frame("gui/notify.png", gui.notify_frame_borders, tile=gui.frame_tile)
  1296. padding gui.notify_frame_borders.padding
  1297.  
  1298. style notify_text:
  1299. properties gui.text_properties("notify")
  1300.  
  1301.  
  1302. ## Pantalla NVL ################################################################
  1303. ##
  1304. ## Esta pantalla se usa para el diálogo y los menús en modo NVL.
  1305. ##
  1306. ## https://www.renpy.org/doc/html/screen_special.html#nvl
  1307.  
  1308.  
  1309. screen nvl(dialogue, items=None):
  1310.  
  1311. window:
  1312. style "nvl_window"
  1313.  
  1314. has vbox:
  1315. spacing gui.nvl_spacing
  1316.  
  1317. ## Presenta el diálogo en una 'vpgrid' o una 'vbox'.
  1318. if gui.nvl_height:
  1319.  
  1320. vpgrid:
  1321. cols 1
  1322. yinitial 1.0
  1323.  
  1324. use nvl_dialogue(dialogue)
  1325.  
  1326. else:
  1327.  
  1328. use nvl_dialogue(dialogue)
  1329.  
  1330. ## Presenta el menú, si lo hay. El menú puede ser presentado
  1331. ## incorrectamente si 'config.narrator_menu' está ajustado a 'True',
  1332. ## como lo es más arriba.
  1333. for i in items:
  1334.  
  1335. textbutton i.caption:
  1336. action i.action
  1337. style "nvl_button"
  1338.  
  1339. add SideImage() xalign 0.0 yalign 1.0
  1340.  
  1341.  
  1342. screen nvl_dialogue(dialogue):
  1343.  
  1344. for d in dialogue:
  1345.  
  1346. window:
  1347. id d.window_id
  1348.  
  1349. fixed:
  1350. yfit gui.nvl_height is None
  1351.  
  1352. if d.who is not None:
  1353.  
  1354. text d.who:
  1355. id d.who_id
  1356.  
  1357. text d.what:
  1358. id d.what_id
  1359.  
  1360.  
  1361. ## Esto controla el número máximo de entradas en modo NVL que pueden ser
  1362. ## mostradas de una vez.
  1363. define config.nvl_list_length = gui.nvl_list_length
  1364.  
  1365. style nvl_window is default
  1366. style nvl_entry is default
  1367.  
  1368. style nvl_label is say_label
  1369. style nvl_dialogue is say_dialogue
  1370.  
  1371. style nvl_button is button
  1372. style nvl_button_text is button_text
  1373.  
  1374. style nvl_window:
  1375. xfill True
  1376. yfill True
  1377.  
  1378. background "gui/nvl.png"
  1379. padding gui.nvl_borders.padding
  1380.  
  1381. style nvl_entry:
  1382. xfill True
  1383. ysize gui.nvl_height
  1384.  
  1385. style nvl_label:
  1386. xpos gui.nvl_name_xpos
  1387. xanchor gui.nvl_name_xalign
  1388. ypos gui.nvl_name_ypos
  1389. yanchor 0.0
  1390. xsize gui.nvl_name_width
  1391. min_width gui.nvl_name_width
  1392. text_align gui.nvl_name_xalign
  1393.  
  1394. style nvl_dialogue:
  1395. xpos gui.nvl_text_xpos
  1396. xanchor gui.nvl_text_xalign
  1397. ypos gui.nvl_text_ypos
  1398. xsize gui.nvl_text_width
  1399. min_width gui.nvl_text_width
  1400. text_align gui.nvl_text_xalign
  1401. layout ("subtitle" if gui.nvl_text_xalign else "tex")
  1402.  
  1403. style nvl_thought:
  1404. xpos gui.nvl_thought_xpos
  1405. xanchor gui.nvl_thought_xalign
  1406. ypos gui.nvl_thought_ypos
  1407. xsize gui.nvl_thought_width
  1408. min_width gui.nvl_thought_width
  1409. text_align gui.nvl_thought_xalign
  1410. layout ("subtitle" if gui.nvl_text_xalign else "tex")
  1411.  
  1412. style nvl_button:
  1413. properties gui.button_properties("nvl_button")
  1414. xpos gui.nvl_button_xpos
  1415. xanchor gui.nvl_button_xalign
  1416.  
  1417. style nvl_button_text:
  1418. properties gui.button_text_properties("nvl_button")
  1419.  
  1420.  
  1421.  
  1422. ################################################################################
  1423. ## Variantes móviles
  1424. ################################################################################
  1425.  
  1426. style pref_vbox:
  1427. variant "medium"
  1428. xsize 450
  1429.  
  1430. ## Ya que puede carecer de ratón, se reempleza el menú rápido con una versión
  1431. ## con menos botones y más grandes, más fáciles de tocar.
  1432. screen quick_menu():
  1433. variant "touch"
  1434.  
  1435. zorder 100
  1436.  
  1437. if quick_menu:
  1438.  
  1439. hbox:
  1440. style_prefix "quick"
  1441.  
  1442. xalign 0.5
  1443. yalign 1.0
  1444.  
  1445. textbutton _("Atrás") action Rollback()
  1446. textbutton _("Saltar") action Skip() alternate Skip(fast=True, confirm=True)
  1447. textbutton _("Auto") action Preference("auto-forward", "toggle")
  1448. textbutton _("Menú") action ShowMenu()
  1449.  
  1450.  
  1451. style window:
  1452. variant "small"
  1453. background "gui/phone/textbox.png"
  1454.  
  1455. style radio_button:
  1456. variant "small"
  1457. foreground "gui/phone/button/radio_[prefix_]foreground.png"
  1458.  
  1459. style check_button:
  1460. variant "small"
  1461. foreground "gui/phone/button/check_[prefix_]foreground.png"
  1462.  
  1463. style nvl_window:
  1464. variant "small"
  1465. background "gui/phone/nvl.png"
  1466.  
  1467. style main_menu_frame:
  1468. variant "small"
  1469. background "gui/phone/overlay/main_menu.png"
  1470.  
  1471. style game_menu_outer_frame:
  1472. variant "small"
  1473. background "gui/phone/overlay/game_menu.png"
  1474.  
  1475. style game_menu_navigation_frame:
  1476. variant "small"
  1477. xsize 340
  1478.  
  1479. style game_menu_content_frame:
  1480. variant "small"
  1481. top_margin 0
  1482.  
  1483. style pref_vbox:
  1484. variant "small"
  1485. xsize 400
  1486.  
  1487. style bar:
  1488. variant "small"
  1489. ysize gui.bar_size
  1490. left_bar Frame("gui/phone/bar/left.png", gui.bar_borders, tile=gui.bar_tile)
  1491. right_bar Frame("gui/phone/bar/right.png", gui.bar_borders, tile=gui.bar_tile)
  1492.  
  1493. style vbar:
  1494. variant "small"
  1495. xsize gui.bar_size
  1496. top_bar Frame("gui/phone/bar/top.png", gui.vbar_borders, tile=gui.bar_tile)
  1497. bottom_bar Frame("gui/phone/bar/bottom.png", gui.vbar_borders, tile=gui.bar_tile)
  1498.  
  1499. style scrollbar:
  1500. variant "small"
  1501. ysize gui.scrollbar_size
  1502. base_bar Frame("gui/phone/scrollbar/horizontal_[prefix_]bar.png", gui.scrollbar_borders, tile=gui.scrollbar_tile)
  1503. thumb Frame("gui/phone/scrollbar/horizontal_[prefix_]thumb.png", gui.scrollbar_borders, tile=gui.scrollbar_tile)
  1504.  
  1505. style vscrollbar:
  1506. variant "small"
  1507. xsize gui.scrollbar_size
  1508. base_bar Frame("gui/phone/scrollbar/vertical_[prefix_]bar.png", gui.vscrollbar_borders, tile=gui.scrollbar_tile)
  1509. thumb Frame("gui/phone/scrollbar/vertical_[prefix_]thumb.png", gui.vscrollbar_borders, tile=gui.scrollbar_tile)
  1510.  
  1511. style slider:
  1512. variant "small"
  1513. ysize gui.slider_size
  1514. base_bar Frame("gui/phone/slider/horizontal_[prefix_]bar.png", gui.slider_borders, tile=gui.slider_tile)
  1515. thumb "gui/phone/slider/horizontal_[prefix_]thumb.png"
  1516.  
  1517. style vslider:
  1518. variant "small"
  1519. xsize gui.slider_size
  1520. base_bar Frame("gui/phone/slider/vertical_[prefix_]bar.png", gui.vslider_borders, tile=gui.slider_tile)
  1521. thumb "gui/phone/slider/vertical_[prefix_]thumb.png"
  1522.  
  1523. style slider_pref_vbox:
  1524. variant "small"
  1525. xsize None
  1526.  
  1527. style slider_pref_slider:
  1528. variant "small"
  1529. xsize 600
RAW Paste Data