class_window.rst 128 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463
  1. :github_url: hide
  2. .. DO NOT EDIT THIS FILE!!!
  3. .. Generated automatically from Godot engine sources.
  4. .. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py.
  5. .. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/Window.xml.
  6. .. _class_Window:
  7. Window
  8. ======
  9. **Inherits:** :ref:`Viewport<class_Viewport>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
  10. **Inherited By:** :ref:`AcceptDialog<class_AcceptDialog>`, :ref:`Popup<class_Popup>`
  11. Base class for all windows, dialogs, and popups.
  12. .. rst-class:: classref-introduction-group
  13. Description
  14. -----------
  15. A node that creates a window. The window can either be a native system window or embedded inside another **Window** (see :ref:`Viewport.gui_embed_subwindows<class_Viewport_property_gui_embed_subwindows>`).
  16. At runtime, **Window**\ s will not close automatically when requested. You need to handle it manually using the :ref:`close_requested<class_Window_signal_close_requested>` signal (this applies both to pressing the close button and clicking outside of a popup).
  17. .. rst-class:: classref-reftable-group
  18. Properties
  19. ----------
  20. .. table::
  21. :widths: auto
  22. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
  23. | :ref:`bool<class_bool>` | :ref:`always_on_top<class_Window_property_always_on_top>` | ``false`` |
  24. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
  25. | :ref:`bool<class_bool>` | :ref:`auto_translate<class_Window_property_auto_translate>` | ``true`` |
  26. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
  27. | :ref:`bool<class_bool>` | :ref:`borderless<class_Window_property_borderless>` | ``false`` |
  28. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
  29. | :ref:`ContentScaleAspect<enum_Window_ContentScaleAspect>` | :ref:`content_scale_aspect<class_Window_property_content_scale_aspect>` | ``0`` |
  30. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
  31. | :ref:`float<class_float>` | :ref:`content_scale_factor<class_Window_property_content_scale_factor>` | ``1.0`` |
  32. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
  33. | :ref:`ContentScaleMode<enum_Window_ContentScaleMode>` | :ref:`content_scale_mode<class_Window_property_content_scale_mode>` | ``0`` |
  34. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
  35. | :ref:`Vector2i<class_Vector2i>` | :ref:`content_scale_size<class_Window_property_content_scale_size>` | ``Vector2i(0, 0)`` |
  36. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
  37. | :ref:`int<class_int>` | :ref:`current_screen<class_Window_property_current_screen>` | |
  38. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
  39. | :ref:`bool<class_bool>` | :ref:`exclusive<class_Window_property_exclusive>` | ``false`` |
  40. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
  41. | :ref:`bool<class_bool>` | :ref:`extend_to_title<class_Window_property_extend_to_title>` | ``false`` |
  42. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
  43. | :ref:`WindowInitialPosition<enum_Window_WindowInitialPosition>` | :ref:`initial_position<class_Window_property_initial_position>` | ``0`` |
  44. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
  45. | :ref:`Vector2i<class_Vector2i>` | :ref:`max_size<class_Window_property_max_size>` | ``Vector2i(0, 0)`` |
  46. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
  47. | :ref:`Vector2i<class_Vector2i>` | :ref:`min_size<class_Window_property_min_size>` | ``Vector2i(0, 0)`` |
  48. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
  49. | :ref:`Mode<enum_Window_Mode>` | :ref:`mode<class_Window_property_mode>` | ``0`` |
  50. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
  51. | :ref:`bool<class_bool>` | :ref:`mouse_passthrough<class_Window_property_mouse_passthrough>` | ``false`` |
  52. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
  53. | :ref:`PackedVector2Array<class_PackedVector2Array>` | :ref:`mouse_passthrough_polygon<class_Window_property_mouse_passthrough_polygon>` | ``PackedVector2Array()`` |
  54. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
  55. | :ref:`bool<class_bool>` | :ref:`popup_window<class_Window_property_popup_window>` | ``false`` |
  56. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
  57. | :ref:`Vector2i<class_Vector2i>` | :ref:`position<class_Window_property_position>` | ``Vector2i(0, 0)`` |
  58. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
  59. | :ref:`Vector2i<class_Vector2i>` | :ref:`size<class_Window_property_size>` | ``Vector2i(100, 100)`` |
  60. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
  61. | :ref:`Theme<class_Theme>` | :ref:`theme<class_Window_property_theme>` | |
  62. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
  63. | :ref:`StringName<class_StringName>` | :ref:`theme_type_variation<class_Window_property_theme_type_variation>` | ``&""`` |
  64. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
  65. | :ref:`String<class_String>` | :ref:`title<class_Window_property_title>` | ``""`` |
  66. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
  67. | :ref:`bool<class_bool>` | :ref:`transient<class_Window_property_transient>` | ``false`` |
  68. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
  69. | :ref:`bool<class_bool>` | :ref:`transparent<class_Window_property_transparent>` | ``false`` |
  70. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
  71. | :ref:`bool<class_bool>` | :ref:`unfocusable<class_Window_property_unfocusable>` | ``false`` |
  72. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
  73. | :ref:`bool<class_bool>` | :ref:`unresizable<class_Window_property_unresizable>` | ``false`` |
  74. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
  75. | :ref:`bool<class_bool>` | :ref:`visible<class_Window_property_visible>` | ``true`` |
  76. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
  77. | :ref:`bool<class_bool>` | :ref:`wrap_controls<class_Window_property_wrap_controls>` | ``false`` |
  78. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
  79. .. rst-class:: classref-reftable-group
  80. Methods
  81. -------
  82. .. table::
  83. :widths: auto
  84. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  85. | void | :ref:`add_theme_color_override<class_Window_method_add_theme_color_override>` **(** :ref:`StringName<class_StringName>` name, :ref:`Color<class_Color>` color **)** |
  86. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  87. | void | :ref:`add_theme_constant_override<class_Window_method_add_theme_constant_override>` **(** :ref:`StringName<class_StringName>` name, :ref:`int<class_int>` constant **)** |
  88. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  89. | void | :ref:`add_theme_font_override<class_Window_method_add_theme_font_override>` **(** :ref:`StringName<class_StringName>` name, :ref:`Font<class_Font>` font **)** |
  90. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  91. | void | :ref:`add_theme_font_size_override<class_Window_method_add_theme_font_size_override>` **(** :ref:`StringName<class_StringName>` name, :ref:`int<class_int>` font_size **)** |
  92. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  93. | void | :ref:`add_theme_icon_override<class_Window_method_add_theme_icon_override>` **(** :ref:`StringName<class_StringName>` name, :ref:`Texture2D<class_Texture2D>` texture **)** |
  94. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  95. | void | :ref:`add_theme_stylebox_override<class_Window_method_add_theme_stylebox_override>` **(** :ref:`StringName<class_StringName>` name, :ref:`StyleBox<class_StyleBox>` stylebox **)** |
  96. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  97. | void | :ref:`begin_bulk_theme_override<class_Window_method_begin_bulk_theme_override>` **(** **)** |
  98. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  99. | :ref:`bool<class_bool>` | :ref:`can_draw<class_Window_method_can_draw>` **(** **)** |const| |
  100. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  101. | void | :ref:`child_controls_changed<class_Window_method_child_controls_changed>` **(** **)** |
  102. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  103. | void | :ref:`end_bulk_theme_override<class_Window_method_end_bulk_theme_override>` **(** **)** |
  104. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  105. | :ref:`Vector2<class_Vector2>` | :ref:`get_contents_minimum_size<class_Window_method_get_contents_minimum_size>` **(** **)** |const| |
  106. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  107. | :ref:`bool<class_bool>` | :ref:`get_flag<class_Window_method_get_flag>` **(** :ref:`Flags<enum_Window_Flags>` flag **)** |const| |
  108. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  109. | :ref:`LayoutDirection<enum_Window_LayoutDirection>` | :ref:`get_layout_direction<class_Window_method_get_layout_direction>` **(** **)** |const| |
  110. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  111. | :ref:`Vector2i<class_Vector2i>` | :ref:`get_position_with_decorations<class_Window_method_get_position_with_decorations>` **(** **)** |const| |
  112. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  113. | :ref:`Vector2i<class_Vector2i>` | :ref:`get_size_with_decorations<class_Window_method_get_size_with_decorations>` **(** **)** |const| |
  114. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  115. | :ref:`Color<class_Color>` | :ref:`get_theme_color<class_Window_method_get_theme_color>` **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type="" **)** |const| |
  116. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  117. | :ref:`int<class_int>` | :ref:`get_theme_constant<class_Window_method_get_theme_constant>` **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type="" **)** |const| |
  118. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  119. | :ref:`float<class_float>` | :ref:`get_theme_default_base_scale<class_Window_method_get_theme_default_base_scale>` **(** **)** |const| |
  120. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  121. | :ref:`Font<class_Font>` | :ref:`get_theme_default_font<class_Window_method_get_theme_default_font>` **(** **)** |const| |
  122. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  123. | :ref:`int<class_int>` | :ref:`get_theme_default_font_size<class_Window_method_get_theme_default_font_size>` **(** **)** |const| |
  124. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  125. | :ref:`Font<class_Font>` | :ref:`get_theme_font<class_Window_method_get_theme_font>` **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type="" **)** |const| |
  126. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  127. | :ref:`int<class_int>` | :ref:`get_theme_font_size<class_Window_method_get_theme_font_size>` **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type="" **)** |const| |
  128. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  129. | :ref:`Texture2D<class_Texture2D>` | :ref:`get_theme_icon<class_Window_method_get_theme_icon>` **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type="" **)** |const| |
  130. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  131. | :ref:`StyleBox<class_StyleBox>` | :ref:`get_theme_stylebox<class_Window_method_get_theme_stylebox>` **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type="" **)** |const| |
  132. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  133. | :ref:`int<class_int>` | :ref:`get_window_id<class_Window_method_get_window_id>` **(** **)** |const| |
  134. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  135. | void | :ref:`grab_focus<class_Window_method_grab_focus>` **(** **)** |
  136. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  137. | :ref:`bool<class_bool>` | :ref:`has_focus<class_Window_method_has_focus>` **(** **)** |const| |
  138. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  139. | :ref:`bool<class_bool>` | :ref:`has_theme_color<class_Window_method_has_theme_color>` **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type="" **)** |const| |
  140. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  141. | :ref:`bool<class_bool>` | :ref:`has_theme_color_override<class_Window_method_has_theme_color_override>` **(** :ref:`StringName<class_StringName>` name **)** |const| |
  142. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  143. | :ref:`bool<class_bool>` | :ref:`has_theme_constant<class_Window_method_has_theme_constant>` **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type="" **)** |const| |
  144. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  145. | :ref:`bool<class_bool>` | :ref:`has_theme_constant_override<class_Window_method_has_theme_constant_override>` **(** :ref:`StringName<class_StringName>` name **)** |const| |
  146. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  147. | :ref:`bool<class_bool>` | :ref:`has_theme_font<class_Window_method_has_theme_font>` **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type="" **)** |const| |
  148. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  149. | :ref:`bool<class_bool>` | :ref:`has_theme_font_override<class_Window_method_has_theme_font_override>` **(** :ref:`StringName<class_StringName>` name **)** |const| |
  150. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  151. | :ref:`bool<class_bool>` | :ref:`has_theme_font_size<class_Window_method_has_theme_font_size>` **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type="" **)** |const| |
  152. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  153. | :ref:`bool<class_bool>` | :ref:`has_theme_font_size_override<class_Window_method_has_theme_font_size_override>` **(** :ref:`StringName<class_StringName>` name **)** |const| |
  154. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  155. | :ref:`bool<class_bool>` | :ref:`has_theme_icon<class_Window_method_has_theme_icon>` **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type="" **)** |const| |
  156. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  157. | :ref:`bool<class_bool>` | :ref:`has_theme_icon_override<class_Window_method_has_theme_icon_override>` **(** :ref:`StringName<class_StringName>` name **)** |const| |
  158. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  159. | :ref:`bool<class_bool>` | :ref:`has_theme_stylebox<class_Window_method_has_theme_stylebox>` **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type="" **)** |const| |
  160. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  161. | :ref:`bool<class_bool>` | :ref:`has_theme_stylebox_override<class_Window_method_has_theme_stylebox_override>` **(** :ref:`StringName<class_StringName>` name **)** |const| |
  162. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  163. | void | :ref:`hide<class_Window_method_hide>` **(** **)** |
  164. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  165. | :ref:`bool<class_bool>` | :ref:`is_embedded<class_Window_method_is_embedded>` **(** **)** |const| |
  166. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  167. | :ref:`bool<class_bool>` | :ref:`is_layout_rtl<class_Window_method_is_layout_rtl>` **(** **)** |const| |
  168. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  169. | :ref:`bool<class_bool>` | :ref:`is_maximize_allowed<class_Window_method_is_maximize_allowed>` **(** **)** |const| |
  170. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  171. | :ref:`bool<class_bool>` | :ref:`is_using_font_oversampling<class_Window_method_is_using_font_oversampling>` **(** **)** |const| |
  172. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  173. | void | :ref:`move_to_foreground<class_Window_method_move_to_foreground>` **(** **)** |
  174. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  175. | void | :ref:`popup<class_Window_method_popup>` **(** :ref:`Rect2i<class_Rect2i>` rect=Rect2i(0, 0, 0, 0) **)** |
  176. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  177. | void | :ref:`popup_centered<class_Window_method_popup_centered>` **(** :ref:`Vector2i<class_Vector2i>` minsize=Vector2i(0, 0) **)** |
  178. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  179. | void | :ref:`popup_centered_clamped<class_Window_method_popup_centered_clamped>` **(** :ref:`Vector2i<class_Vector2i>` minsize=Vector2i(0, 0), :ref:`float<class_float>` fallback_ratio=0.75 **)** |
  180. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  181. | void | :ref:`popup_centered_ratio<class_Window_method_popup_centered_ratio>` **(** :ref:`float<class_float>` ratio=0.8 **)** |
  182. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  183. | void | :ref:`popup_exclusive<class_Window_method_popup_exclusive>` **(** :ref:`Node<class_Node>` from_node, :ref:`Rect2i<class_Rect2i>` rect=Rect2i(0, 0, 0, 0) **)** |
  184. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  185. | void | :ref:`popup_exclusive_centered<class_Window_method_popup_exclusive_centered>` **(** :ref:`Node<class_Node>` from_node, :ref:`Vector2i<class_Vector2i>` minsize=Vector2i(0, 0) **)** |
  186. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  187. | void | :ref:`popup_exclusive_centered_clamped<class_Window_method_popup_exclusive_centered_clamped>` **(** :ref:`Node<class_Node>` from_node, :ref:`Vector2i<class_Vector2i>` minsize=Vector2i(0, 0), :ref:`float<class_float>` fallback_ratio=0.75 **)** |
  188. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  189. | void | :ref:`popup_exclusive_centered_ratio<class_Window_method_popup_exclusive_centered_ratio>` **(** :ref:`Node<class_Node>` from_node, :ref:`float<class_float>` ratio=0.8 **)** |
  190. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  191. | void | :ref:`popup_exclusive_on_parent<class_Window_method_popup_exclusive_on_parent>` **(** :ref:`Node<class_Node>` from_node, :ref:`Rect2i<class_Rect2i>` parent_rect **)** |
  192. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  193. | void | :ref:`popup_on_parent<class_Window_method_popup_on_parent>` **(** :ref:`Rect2i<class_Rect2i>` parent_rect **)** |
  194. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  195. | void | :ref:`remove_theme_color_override<class_Window_method_remove_theme_color_override>` **(** :ref:`StringName<class_StringName>` name **)** |
  196. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  197. | void | :ref:`remove_theme_constant_override<class_Window_method_remove_theme_constant_override>` **(** :ref:`StringName<class_StringName>` name **)** |
  198. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  199. | void | :ref:`remove_theme_font_override<class_Window_method_remove_theme_font_override>` **(** :ref:`StringName<class_StringName>` name **)** |
  200. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  201. | void | :ref:`remove_theme_font_size_override<class_Window_method_remove_theme_font_size_override>` **(** :ref:`StringName<class_StringName>` name **)** |
  202. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  203. | void | :ref:`remove_theme_icon_override<class_Window_method_remove_theme_icon_override>` **(** :ref:`StringName<class_StringName>` name **)** |
  204. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  205. | void | :ref:`remove_theme_stylebox_override<class_Window_method_remove_theme_stylebox_override>` **(** :ref:`StringName<class_StringName>` name **)** |
  206. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  207. | void | :ref:`request_attention<class_Window_method_request_attention>` **(** **)** |
  208. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  209. | void | :ref:`reset_size<class_Window_method_reset_size>` **(** **)** |
  210. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  211. | void | :ref:`set_flag<class_Window_method_set_flag>` **(** :ref:`Flags<enum_Window_Flags>` flag, :ref:`bool<class_bool>` enabled **)** |
  212. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  213. | void | :ref:`set_ime_active<class_Window_method_set_ime_active>` **(** :ref:`bool<class_bool>` active **)** |
  214. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  215. | void | :ref:`set_ime_position<class_Window_method_set_ime_position>` **(** :ref:`Vector2i<class_Vector2i>` position **)** |
  216. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  217. | void | :ref:`set_layout_direction<class_Window_method_set_layout_direction>` **(** :ref:`LayoutDirection<enum_Window_LayoutDirection>` direction **)** |
  218. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  219. | void | :ref:`set_unparent_when_invisible<class_Window_method_set_unparent_when_invisible>` **(** :ref:`bool<class_bool>` unparent **)** |
  220. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  221. | void | :ref:`set_use_font_oversampling<class_Window_method_set_use_font_oversampling>` **(** :ref:`bool<class_bool>` enable **)** |
  222. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  223. | void | :ref:`show<class_Window_method_show>` **(** **)** |
  224. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  225. .. rst-class:: classref-reftable-group
  226. Theme Properties
  227. ----------------
  228. .. table::
  229. :widths: auto
  230. +-----------------------------------+--------------------------------------------------------------------------------------+-----------------------------------+
  231. | :ref:`Color<class_Color>` | :ref:`title_color<class_Window_theme_color_title_color>` | ``Color(0.875, 0.875, 0.875, 1)`` |
  232. +-----------------------------------+--------------------------------------------------------------------------------------+-----------------------------------+
  233. | :ref:`Color<class_Color>` | :ref:`title_outline_modulate<class_Window_theme_color_title_outline_modulate>` | ``Color(1, 1, 1, 1)`` |
  234. +-----------------------------------+--------------------------------------------------------------------------------------+-----------------------------------+
  235. | :ref:`int<class_int>` | :ref:`close_h_offset<class_Window_theme_constant_close_h_offset>` | ``18`` |
  236. +-----------------------------------+--------------------------------------------------------------------------------------+-----------------------------------+
  237. | :ref:`int<class_int>` | :ref:`close_v_offset<class_Window_theme_constant_close_v_offset>` | ``24`` |
  238. +-----------------------------------+--------------------------------------------------------------------------------------+-----------------------------------+
  239. | :ref:`int<class_int>` | :ref:`resize_margin<class_Window_theme_constant_resize_margin>` | ``4`` |
  240. +-----------------------------------+--------------------------------------------------------------------------------------+-----------------------------------+
  241. | :ref:`int<class_int>` | :ref:`title_height<class_Window_theme_constant_title_height>` | ``36`` |
  242. +-----------------------------------+--------------------------------------------------------------------------------------+-----------------------------------+
  243. | :ref:`int<class_int>` | :ref:`title_outline_size<class_Window_theme_constant_title_outline_size>` | ``0`` |
  244. +-----------------------------------+--------------------------------------------------------------------------------------+-----------------------------------+
  245. | :ref:`Font<class_Font>` | :ref:`title_font<class_Window_theme_font_title_font>` | |
  246. +-----------------------------------+--------------------------------------------------------------------------------------+-----------------------------------+
  247. | :ref:`int<class_int>` | :ref:`title_font_size<class_Window_theme_font_size_title_font_size>` | |
  248. +-----------------------------------+--------------------------------------------------------------------------------------+-----------------------------------+
  249. | :ref:`Texture2D<class_Texture2D>` | :ref:`close<class_Window_theme_icon_close>` | |
  250. +-----------------------------------+--------------------------------------------------------------------------------------+-----------------------------------+
  251. | :ref:`Texture2D<class_Texture2D>` | :ref:`close_pressed<class_Window_theme_icon_close_pressed>` | |
  252. +-----------------------------------+--------------------------------------------------------------------------------------+-----------------------------------+
  253. | :ref:`StyleBox<class_StyleBox>` | :ref:`embedded_border<class_Window_theme_style_embedded_border>` | |
  254. +-----------------------------------+--------------------------------------------------------------------------------------+-----------------------------------+
  255. | :ref:`StyleBox<class_StyleBox>` | :ref:`embedded_unfocused_border<class_Window_theme_style_embedded_unfocused_border>` | |
  256. +-----------------------------------+--------------------------------------------------------------------------------------+-----------------------------------+
  257. .. rst-class:: classref-section-separator
  258. ----
  259. .. rst-class:: classref-descriptions-group
  260. Signals
  261. -------
  262. .. _class_Window_signal_about_to_popup:
  263. .. rst-class:: classref-signal
  264. **about_to_popup** **(** **)**
  265. Emitted right after :ref:`popup<class_Window_method_popup>` call, before the **Window** appears or does anything.
  266. .. rst-class:: classref-item-separator
  267. ----
  268. .. _class_Window_signal_close_requested:
  269. .. rst-class:: classref-signal
  270. **close_requested** **(** **)**
  271. Emitted when the **Window**'s close button is pressed or when :ref:`popup_window<class_Window_property_popup_window>` is enabled and user clicks outside the window.
  272. This signal can be used to handle window closing, e.g. by connecting it to :ref:`hide<class_Window_method_hide>`.
  273. .. rst-class:: classref-item-separator
  274. ----
  275. .. _class_Window_signal_dpi_changed:
  276. .. rst-class:: classref-signal
  277. **dpi_changed** **(** **)**
  278. Emitted when the **Window**'s DPI changes as a result of OS-level changes (e.g. moving the window from a Retina display to a lower resolution one).
  279. \ **Note:** Only implemented on macOS.
  280. .. rst-class:: classref-item-separator
  281. ----
  282. .. _class_Window_signal_files_dropped:
  283. .. rst-class:: classref-signal
  284. **files_dropped** **(** :ref:`PackedStringArray<class_PackedStringArray>` files **)**
  285. Emitted when files are dragged from the OS file manager and dropped in the game window. The argument is a list of file paths.
  286. Note that this method only works with native windows, i.e. the main window and **Window**-derived nodes when :ref:`Viewport.gui_embed_subwindows<class_Viewport_property_gui_embed_subwindows>` is disabled in the main viewport.
  287. Example usage:
  288. ::
  289. func _ready():
  290. get_viewport().files_dropped.connect(on_files_dropped)
  291. func on_files_dropped(files):
  292. print(files)
  293. .. rst-class:: classref-item-separator
  294. ----
  295. .. _class_Window_signal_focus_entered:
  296. .. rst-class:: classref-signal
  297. **focus_entered** **(** **)**
  298. Emitted when the **Window** gains focus.
  299. .. rst-class:: classref-item-separator
  300. ----
  301. .. _class_Window_signal_focus_exited:
  302. .. rst-class:: classref-signal
  303. **focus_exited** **(** **)**
  304. Emitted when the **Window** loses its focus.
  305. .. rst-class:: classref-item-separator
  306. ----
  307. .. _class_Window_signal_go_back_requested:
  308. .. rst-class:: classref-signal
  309. **go_back_requested** **(** **)**
  310. Emitted when a go back request is sent (e.g. pressing the "Back" button on Android), right after :ref:`Node.NOTIFICATION_WM_GO_BACK_REQUEST<class_Node_constant_NOTIFICATION_WM_GO_BACK_REQUEST>`.
  311. .. rst-class:: classref-item-separator
  312. ----
  313. .. _class_Window_signal_mouse_entered:
  314. .. rst-class:: classref-signal
  315. **mouse_entered** **(** **)**
  316. Emitted when the mouse cursor enters the **Window**'s area, regardless if it's currently focused or not.
  317. .. rst-class:: classref-item-separator
  318. ----
  319. .. _class_Window_signal_mouse_exited:
  320. .. rst-class:: classref-signal
  321. **mouse_exited** **(** **)**
  322. Emitted when the mouse cursor exits the **Window**'s area (including when it's hovered over another window on top of this one).
  323. .. rst-class:: classref-item-separator
  324. ----
  325. .. _class_Window_signal_theme_changed:
  326. .. rst-class:: classref-signal
  327. **theme_changed** **(** **)**
  328. Emitted when the :ref:`NOTIFICATION_THEME_CHANGED<class_Window_constant_NOTIFICATION_THEME_CHANGED>` notification is sent.
  329. .. rst-class:: classref-item-separator
  330. ----
  331. .. _class_Window_signal_titlebar_changed:
  332. .. rst-class:: classref-signal
  333. **titlebar_changed** **(** **)**
  334. Emitted when window title bar decorations are changed, e.g. macOS window enter/exit full screen mode, or extend-to-title flag is changed.
  335. .. rst-class:: classref-item-separator
  336. ----
  337. .. _class_Window_signal_visibility_changed:
  338. .. rst-class:: classref-signal
  339. **visibility_changed** **(** **)**
  340. Emitted when **Window** is made visible or disappears.
  341. .. rst-class:: classref-item-separator
  342. ----
  343. .. _class_Window_signal_window_input:
  344. .. rst-class:: classref-signal
  345. **window_input** **(** :ref:`InputEvent<class_InputEvent>` event **)**
  346. Emitted when the **Window** is currently focused and receives any input, passing the received event as an argument. The event's position, if present, is in the embedder's coordinate system.
  347. .. rst-class:: classref-section-separator
  348. ----
  349. .. rst-class:: classref-descriptions-group
  350. Enumerations
  351. ------------
  352. .. _enum_Window_Mode:
  353. .. rst-class:: classref-enumeration
  354. enum **Mode**:
  355. .. _class_Window_constant_MODE_WINDOWED:
  356. .. rst-class:: classref-enumeration-constant
  357. :ref:`Mode<enum_Window_Mode>` **MODE_WINDOWED** = ``0``
  358. Windowed mode, i.e. **Window** doesn't occupy the whole screen (unless set to the size of the screen).
  359. .. _class_Window_constant_MODE_MINIMIZED:
  360. .. rst-class:: classref-enumeration-constant
  361. :ref:`Mode<enum_Window_Mode>` **MODE_MINIMIZED** = ``1``
  362. Minimized window mode, i.e. **Window** is not visible and available on window manager's window list. Normally happens when the minimize button is pressed.
  363. .. _class_Window_constant_MODE_MAXIMIZED:
  364. .. rst-class:: classref-enumeration-constant
  365. :ref:`Mode<enum_Window_Mode>` **MODE_MAXIMIZED** = ``2``
  366. Maximized window mode, i.e. **Window** will occupy whole screen area except task bar and still display its borders. Normally happens when the maximize button is pressed.
  367. .. _class_Window_constant_MODE_FULLSCREEN:
  368. .. rst-class:: classref-enumeration-constant
  369. :ref:`Mode<enum_Window_Mode>` **MODE_FULLSCREEN** = ``3``
  370. Full screen window mode. Note that this is not *exclusive* full screen. On Windows and Linux, a borderless window is used to emulate full screen. On macOS, a new desktop is used to display the running project.
  371. Regardless of the platform, enabling full screen will change the window size to match the monitor's size. Therefore, make sure your project supports :doc:`multiple resolutions <../tutorials/rendering/multiple_resolutions>` when enabling full screen mode.
  372. .. _class_Window_constant_MODE_EXCLUSIVE_FULLSCREEN:
  373. .. rst-class:: classref-enumeration-constant
  374. :ref:`Mode<enum_Window_Mode>` **MODE_EXCLUSIVE_FULLSCREEN** = ``4``
  375. Exclusive full screen window mode. This mode is implemented on Windows only. On other platforms, it is equivalent to :ref:`MODE_FULLSCREEN<class_Window_constant_MODE_FULLSCREEN>`.
  376. Only one window in exclusive full screen mode can be visible on a given screen at a time. If multiple windows are in exclusive full screen mode for the same screen, the last one being set to this mode takes precedence.
  377. Regardless of the platform, enabling full screen will change the window size to match the monitor's size. Therefore, make sure your project supports :doc:`multiple resolutions <../tutorials/rendering/multiple_resolutions>` when enabling full screen mode.
  378. .. rst-class:: classref-item-separator
  379. ----
  380. .. _enum_Window_Flags:
  381. .. rst-class:: classref-enumeration
  382. enum **Flags**:
  383. .. _class_Window_constant_FLAG_RESIZE_DISABLED:
  384. .. rst-class:: classref-enumeration-constant
  385. :ref:`Flags<enum_Window_Flags>` **FLAG_RESIZE_DISABLED** = ``0``
  386. The window can't be resized by dragging its resize grip. It's still possible to resize the window using :ref:`size<class_Window_property_size>`. This flag is ignored for full screen windows. Set with :ref:`unresizable<class_Window_property_unresizable>`.
  387. .. _class_Window_constant_FLAG_BORDERLESS:
  388. .. rst-class:: classref-enumeration-constant
  389. :ref:`Flags<enum_Window_Flags>` **FLAG_BORDERLESS** = ``1``
  390. The window do not have native title bar and other decorations. This flag is ignored for full-screen windows. Set with :ref:`borderless<class_Window_property_borderless>`.
  391. .. _class_Window_constant_FLAG_ALWAYS_ON_TOP:
  392. .. rst-class:: classref-enumeration-constant
  393. :ref:`Flags<enum_Window_Flags>` **FLAG_ALWAYS_ON_TOP** = ``2``
  394. The window is floating on top of all other windows. This flag is ignored for full-screen windows. Set with :ref:`always_on_top<class_Window_property_always_on_top>`.
  395. .. _class_Window_constant_FLAG_TRANSPARENT:
  396. .. rst-class:: classref-enumeration-constant
  397. :ref:`Flags<enum_Window_Flags>` **FLAG_TRANSPARENT** = ``3``
  398. The window background can be transparent. Set with :ref:`transparent<class_Window_property_transparent>`.
  399. \ **Note:** This flag has no effect if either :ref:`ProjectSettings.display/window/per_pixel_transparency/allowed<class_ProjectSettings_property_display/window/per_pixel_transparency/allowed>`, or the window's :ref:`Viewport.transparent_bg<class_Viewport_property_transparent_bg>` is set to ``false``.
  400. .. _class_Window_constant_FLAG_NO_FOCUS:
  401. .. rst-class:: classref-enumeration-constant
  402. :ref:`Flags<enum_Window_Flags>` **FLAG_NO_FOCUS** = ``4``
  403. The window can't be focused. No-focus window will ignore all input, except mouse clicks. Set with :ref:`unfocusable<class_Window_property_unfocusable>`.
  404. .. _class_Window_constant_FLAG_POPUP:
  405. .. rst-class:: classref-enumeration-constant
  406. :ref:`Flags<enum_Window_Flags>` **FLAG_POPUP** = ``5``
  407. Window is part of menu or :ref:`OptionButton<class_OptionButton>` dropdown. This flag can't be changed when the window is visible. An active popup window will exclusively receive all input, without stealing focus from its parent. Popup windows are automatically closed when uses click outside it, or when an application is switched. Popup window must have transient parent set (see :ref:`transient<class_Window_property_transient>`).
  408. \ **Note:** This flag has no effect in embedded windows (unless said window is a :ref:`Popup<class_Popup>`).
  409. .. _class_Window_constant_FLAG_EXTEND_TO_TITLE:
  410. .. rst-class:: classref-enumeration-constant
  411. :ref:`Flags<enum_Window_Flags>` **FLAG_EXTEND_TO_TITLE** = ``6``
  412. Window content is expanded to the full size of the window. Unlike borderless window, the frame is left intact and can be used to resize the window, title bar is transparent, but have minimize/maximize/close buttons. Set with :ref:`extend_to_title<class_Window_property_extend_to_title>`.
  413. \ **Note:** This flag is implemented only on macOS.
  414. \ **Note:** This flag has no effect in embedded windows.
  415. .. _class_Window_constant_FLAG_MOUSE_PASSTHROUGH:
  416. .. rst-class:: classref-enumeration-constant
  417. :ref:`Flags<enum_Window_Flags>` **FLAG_MOUSE_PASSTHROUGH** = ``7``
  418. All mouse events are passed to the underlying window of the same application.
  419. \ **Note:** This flag has no effect in embedded windows.
  420. .. _class_Window_constant_FLAG_MAX:
  421. .. rst-class:: classref-enumeration-constant
  422. :ref:`Flags<enum_Window_Flags>` **FLAG_MAX** = ``8``
  423. Max value of the :ref:`Flags<enum_Window_Flags>`.
  424. .. rst-class:: classref-item-separator
  425. ----
  426. .. _enum_Window_ContentScaleMode:
  427. .. rst-class:: classref-enumeration
  428. enum **ContentScaleMode**:
  429. .. _class_Window_constant_CONTENT_SCALE_MODE_DISABLED:
  430. .. rst-class:: classref-enumeration-constant
  431. :ref:`ContentScaleMode<enum_Window_ContentScaleMode>` **CONTENT_SCALE_MODE_DISABLED** = ``0``
  432. The content will not be scaled to match the **Window**'s size.
  433. .. _class_Window_constant_CONTENT_SCALE_MODE_CANVAS_ITEMS:
  434. .. rst-class:: classref-enumeration-constant
  435. :ref:`ContentScaleMode<enum_Window_ContentScaleMode>` **CONTENT_SCALE_MODE_CANVAS_ITEMS** = ``1``
  436. The content will be rendered at the target size. This is more performance-expensive than :ref:`CONTENT_SCALE_MODE_VIEWPORT<class_Window_constant_CONTENT_SCALE_MODE_VIEWPORT>`, but provides better results.
  437. .. _class_Window_constant_CONTENT_SCALE_MODE_VIEWPORT:
  438. .. rst-class:: classref-enumeration-constant
  439. :ref:`ContentScaleMode<enum_Window_ContentScaleMode>` **CONTENT_SCALE_MODE_VIEWPORT** = ``2``
  440. The content will be rendered at the base size and then scaled to the target size. More performant than :ref:`CONTENT_SCALE_MODE_CANVAS_ITEMS<class_Window_constant_CONTENT_SCALE_MODE_CANVAS_ITEMS>`, but results in pixelated image.
  441. .. rst-class:: classref-item-separator
  442. ----
  443. .. _enum_Window_ContentScaleAspect:
  444. .. rst-class:: classref-enumeration
  445. enum **ContentScaleAspect**:
  446. .. _class_Window_constant_CONTENT_SCALE_ASPECT_IGNORE:
  447. .. rst-class:: classref-enumeration-constant
  448. :ref:`ContentScaleAspect<enum_Window_ContentScaleAspect>` **CONTENT_SCALE_ASPECT_IGNORE** = ``0``
  449. The aspect will be ignored. Scaling will simply stretch the content to fit the target size.
  450. .. _class_Window_constant_CONTENT_SCALE_ASPECT_KEEP:
  451. .. rst-class:: classref-enumeration-constant
  452. :ref:`ContentScaleAspect<enum_Window_ContentScaleAspect>` **CONTENT_SCALE_ASPECT_KEEP** = ``1``
  453. The content's aspect will be preserved. If the target size has different aspect from the base one, the image will be centered and black bars will appear on left and right sides.
  454. .. _class_Window_constant_CONTENT_SCALE_ASPECT_KEEP_WIDTH:
  455. .. rst-class:: classref-enumeration-constant
  456. :ref:`ContentScaleAspect<enum_Window_ContentScaleAspect>` **CONTENT_SCALE_ASPECT_KEEP_WIDTH** = ``2``
  457. The content can be expanded vertically. Scaling horizontally will result in keeping the width ratio and then black bars on left and right sides.
  458. .. _class_Window_constant_CONTENT_SCALE_ASPECT_KEEP_HEIGHT:
  459. .. rst-class:: classref-enumeration-constant
  460. :ref:`ContentScaleAspect<enum_Window_ContentScaleAspect>` **CONTENT_SCALE_ASPECT_KEEP_HEIGHT** = ``3``
  461. The content can be expanded horizontally. Scaling vertically will result in keeping the height ratio and then black bars on top and bottom sides.
  462. .. _class_Window_constant_CONTENT_SCALE_ASPECT_EXPAND:
  463. .. rst-class:: classref-enumeration-constant
  464. :ref:`ContentScaleAspect<enum_Window_ContentScaleAspect>` **CONTENT_SCALE_ASPECT_EXPAND** = ``4``
  465. The content's aspect will be preserved. If the target size has different aspect from the base one, the content will stay in the top-left corner and add an extra visible area in the stretched space.
  466. .. rst-class:: classref-item-separator
  467. ----
  468. .. _enum_Window_LayoutDirection:
  469. .. rst-class:: classref-enumeration
  470. enum **LayoutDirection**:
  471. .. _class_Window_constant_LAYOUT_DIRECTION_INHERITED:
  472. .. rst-class:: classref-enumeration-constant
  473. :ref:`LayoutDirection<enum_Window_LayoutDirection>` **LAYOUT_DIRECTION_INHERITED** = ``0``
  474. Automatic layout direction, determined from the parent window layout direction.
  475. .. _class_Window_constant_LAYOUT_DIRECTION_LOCALE:
  476. .. rst-class:: classref-enumeration-constant
  477. :ref:`LayoutDirection<enum_Window_LayoutDirection>` **LAYOUT_DIRECTION_LOCALE** = ``1``
  478. Automatic layout direction, determined from the current locale.
  479. .. _class_Window_constant_LAYOUT_DIRECTION_LTR:
  480. .. rst-class:: classref-enumeration-constant
  481. :ref:`LayoutDirection<enum_Window_LayoutDirection>` **LAYOUT_DIRECTION_LTR** = ``2``
  482. Left-to-right layout direction.
  483. .. _class_Window_constant_LAYOUT_DIRECTION_RTL:
  484. .. rst-class:: classref-enumeration-constant
  485. :ref:`LayoutDirection<enum_Window_LayoutDirection>` **LAYOUT_DIRECTION_RTL** = ``3``
  486. Right-to-left layout direction.
  487. .. rst-class:: classref-item-separator
  488. ----
  489. .. _enum_Window_WindowInitialPosition:
  490. .. rst-class:: classref-enumeration
  491. enum **WindowInitialPosition**:
  492. .. _class_Window_constant_WINDOW_INITIAL_POSITION_ABSOLUTE:
  493. .. rst-class:: classref-enumeration-constant
  494. :ref:`WindowInitialPosition<enum_Window_WindowInitialPosition>` **WINDOW_INITIAL_POSITION_ABSOLUTE** = ``0``
  495. Initial window position is determined by :ref:`position<class_Window_property_position>`.
  496. .. _class_Window_constant_WINDOW_INITIAL_POSITION_CENTER_PRIMARY_SCREEN:
  497. .. rst-class:: classref-enumeration-constant
  498. :ref:`WindowInitialPosition<enum_Window_WindowInitialPosition>` **WINDOW_INITIAL_POSITION_CENTER_PRIMARY_SCREEN** = ``1``
  499. Initial window position is the center of the primary screen.
  500. .. _class_Window_constant_WINDOW_INITIAL_POSITION_CENTER_MAIN_WINDOW_SCREEN:
  501. .. rst-class:: classref-enumeration-constant
  502. :ref:`WindowInitialPosition<enum_Window_WindowInitialPosition>` **WINDOW_INITIAL_POSITION_CENTER_MAIN_WINDOW_SCREEN** = ``2``
  503. Initial window position is the center of the main window screen.
  504. .. _class_Window_constant_WINDOW_INITIAL_POSITION_CENTER_OTHER_SCREEN:
  505. .. rst-class:: classref-enumeration-constant
  506. :ref:`WindowInitialPosition<enum_Window_WindowInitialPosition>` **WINDOW_INITIAL_POSITION_CENTER_OTHER_SCREEN** = ``3``
  507. Initial window position is the center of :ref:`current_screen<class_Window_property_current_screen>` screen.
  508. .. _class_Window_constant_WINDOW_INITIAL_POSITION_CENTER_SCREEN_WITH_MOUSE_FOCUS:
  509. .. rst-class:: classref-enumeration-constant
  510. :ref:`WindowInitialPosition<enum_Window_WindowInitialPosition>` **WINDOW_INITIAL_POSITION_CENTER_SCREEN_WITH_MOUSE_FOCUS** = ``4``
  511. Initial window position is the center of the screen containing the mouse pointer.
  512. .. _class_Window_constant_WINDOW_INITIAL_POSITION_CENTER_SCREEN_WITH_KEYBOARD_FOCUS:
  513. .. rst-class:: classref-enumeration-constant
  514. :ref:`WindowInitialPosition<enum_Window_WindowInitialPosition>` **WINDOW_INITIAL_POSITION_CENTER_SCREEN_WITH_KEYBOARD_FOCUS** = ``5``
  515. Initial window position is the center of the screen containing the window with the keyboard focus.
  516. .. rst-class:: classref-section-separator
  517. ----
  518. .. rst-class:: classref-descriptions-group
  519. Constants
  520. ---------
  521. .. _class_Window_constant_NOTIFICATION_VISIBILITY_CHANGED:
  522. .. rst-class:: classref-constant
  523. **NOTIFICATION_VISIBILITY_CHANGED** = ``30``
  524. Emitted when **Window**'s visibility changes, right before :ref:`visibility_changed<class_Window_signal_visibility_changed>`.
  525. .. _class_Window_constant_NOTIFICATION_THEME_CHANGED:
  526. .. rst-class:: classref-constant
  527. **NOTIFICATION_THEME_CHANGED** = ``32``
  528. Sent when the node needs to refresh its theme items. This happens in one of the following cases:
  529. - The :ref:`theme<class_Window_property_theme>` property is changed on this node or any of its ancestors.
  530. - The :ref:`theme_type_variation<class_Window_property_theme_type_variation>` property is changed on this node.
  531. - The node enters the scene tree.
  532. \ **Note:** As an optimization, this notification won't be sent from changes that occur while this node is outside of the scene tree. Instead, all of the theme item updates can be applied at once when the node enters the scene tree.
  533. .. rst-class:: classref-section-separator
  534. ----
  535. .. rst-class:: classref-descriptions-group
  536. Property Descriptions
  537. ---------------------
  538. .. _class_Window_property_always_on_top:
  539. .. rst-class:: classref-property
  540. :ref:`bool<class_bool>` **always_on_top** = ``false``
  541. .. rst-class:: classref-property-setget
  542. - void **set_flag** **(** :ref:`Flags<enum_Window_Flags>` flag, :ref:`bool<class_bool>` enabled **)**
  543. - :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_Window_Flags>` flag **)** |const|
  544. If ``true``, the window will be on top of all other windows. Does not work if :ref:`transient<class_Window_property_transient>` is enabled.
  545. .. rst-class:: classref-item-separator
  546. ----
  547. .. _class_Window_property_auto_translate:
  548. .. rst-class:: classref-property
  549. :ref:`bool<class_bool>` **auto_translate** = ``true``
  550. .. rst-class:: classref-property-setget
  551. - void **set_auto_translate** **(** :ref:`bool<class_bool>` value **)**
  552. - :ref:`bool<class_bool>` **is_auto_translating** **(** **)**
  553. Toggles if any text should automatically change to its translated version depending on the current locale.
  554. .. rst-class:: classref-item-separator
  555. ----
  556. .. _class_Window_property_borderless:
  557. .. rst-class:: classref-property
  558. :ref:`bool<class_bool>` **borderless** = ``false``
  559. .. rst-class:: classref-property-setget
  560. - void **set_flag** **(** :ref:`Flags<enum_Window_Flags>` flag, :ref:`bool<class_bool>` enabled **)**
  561. - :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_Window_Flags>` flag **)** |const|
  562. If ``true``, the window will have no borders.
  563. .. rst-class:: classref-item-separator
  564. ----
  565. .. _class_Window_property_content_scale_aspect:
  566. .. rst-class:: classref-property
  567. :ref:`ContentScaleAspect<enum_Window_ContentScaleAspect>` **content_scale_aspect** = ``0``
  568. .. rst-class:: classref-property-setget
  569. - void **set_content_scale_aspect** **(** :ref:`ContentScaleAspect<enum_Window_ContentScaleAspect>` value **)**
  570. - :ref:`ContentScaleAspect<enum_Window_ContentScaleAspect>` **get_content_scale_aspect** **(** **)**
  571. Specifies how the content's aspect behaves when the **Window** is resized. The base aspect is determined by :ref:`content_scale_size<class_Window_property_content_scale_size>`.
  572. .. rst-class:: classref-item-separator
  573. ----
  574. .. _class_Window_property_content_scale_factor:
  575. .. rst-class:: classref-property
  576. :ref:`float<class_float>` **content_scale_factor** = ``1.0``
  577. .. rst-class:: classref-property-setget
  578. - void **set_content_scale_factor** **(** :ref:`float<class_float>` value **)**
  579. - :ref:`float<class_float>` **get_content_scale_factor** **(** **)**
  580. Specifies the base scale of **Window**'s content when its :ref:`size<class_Window_property_size>` is equal to :ref:`content_scale_size<class_Window_property_content_scale_size>`.
  581. .. rst-class:: classref-item-separator
  582. ----
  583. .. _class_Window_property_content_scale_mode:
  584. .. rst-class:: classref-property
  585. :ref:`ContentScaleMode<enum_Window_ContentScaleMode>` **content_scale_mode** = ``0``
  586. .. rst-class:: classref-property-setget
  587. - void **set_content_scale_mode** **(** :ref:`ContentScaleMode<enum_Window_ContentScaleMode>` value **)**
  588. - :ref:`ContentScaleMode<enum_Window_ContentScaleMode>` **get_content_scale_mode** **(** **)**
  589. Specifies how the content is scaled when the **Window** is resized.
  590. .. rst-class:: classref-item-separator
  591. ----
  592. .. _class_Window_property_content_scale_size:
  593. .. rst-class:: classref-property
  594. :ref:`Vector2i<class_Vector2i>` **content_scale_size** = ``Vector2i(0, 0)``
  595. .. rst-class:: classref-property-setget
  596. - void **set_content_scale_size** **(** :ref:`Vector2i<class_Vector2i>` value **)**
  597. - :ref:`Vector2i<class_Vector2i>` **get_content_scale_size** **(** **)**
  598. Base size of the content (i.e. nodes that are drawn inside the window). If non-zero, **Window**'s content will be scaled when the window is resized to a different size.
  599. .. rst-class:: classref-item-separator
  600. ----
  601. .. _class_Window_property_current_screen:
  602. .. rst-class:: classref-property
  603. :ref:`int<class_int>` **current_screen**
  604. .. rst-class:: classref-property-setget
  605. - void **set_current_screen** **(** :ref:`int<class_int>` value **)**
  606. - :ref:`int<class_int>` **get_current_screen** **(** **)**
  607. The screen the window is currently on.
  608. .. rst-class:: classref-item-separator
  609. ----
  610. .. _class_Window_property_exclusive:
  611. .. rst-class:: classref-property
  612. :ref:`bool<class_bool>` **exclusive** = ``false``
  613. .. rst-class:: classref-property-setget
  614. - void **set_exclusive** **(** :ref:`bool<class_bool>` value **)**
  615. - :ref:`bool<class_bool>` **is_exclusive** **(** **)**
  616. If ``true``, the **Window** will be in exclusive mode. Exclusive windows are always on top of their parent and will block all input going to the parent **Window**.
  617. Needs :ref:`transient<class_Window_property_transient>` enabled to work.
  618. .. rst-class:: classref-item-separator
  619. ----
  620. .. _class_Window_property_extend_to_title:
  621. .. rst-class:: classref-property
  622. :ref:`bool<class_bool>` **extend_to_title** = ``false``
  623. .. rst-class:: classref-property-setget
  624. - void **set_flag** **(** :ref:`Flags<enum_Window_Flags>` flag, :ref:`bool<class_bool>` enabled **)**
  625. - :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_Window_Flags>` flag **)** |const|
  626. If ``true``, the **Window** contents is expanded to the full size of the window, window title bar is transparent.
  627. \ **Note:** This property is implemented only on macOS.
  628. \ **Note:** This property only works with native windows.
  629. .. rst-class:: classref-item-separator
  630. ----
  631. .. _class_Window_property_initial_position:
  632. .. rst-class:: classref-property
  633. :ref:`WindowInitialPosition<enum_Window_WindowInitialPosition>` **initial_position** = ``0``
  634. .. rst-class:: classref-property-setget
  635. - void **set_initial_position** **(** :ref:`WindowInitialPosition<enum_Window_WindowInitialPosition>` value **)**
  636. - :ref:`WindowInitialPosition<enum_Window_WindowInitialPosition>` **get_initial_position** **(** **)**
  637. Specifies the initial type of position for the **Window**. See :ref:`WindowInitialPosition<enum_Window_WindowInitialPosition>` constants.
  638. .. rst-class:: classref-item-separator
  639. ----
  640. .. _class_Window_property_max_size:
  641. .. rst-class:: classref-property
  642. :ref:`Vector2i<class_Vector2i>` **max_size** = ``Vector2i(0, 0)``
  643. .. rst-class:: classref-property-setget
  644. - void **set_max_size** **(** :ref:`Vector2i<class_Vector2i>` value **)**
  645. - :ref:`Vector2i<class_Vector2i>` **get_max_size** **(** **)**
  646. If non-zero, the **Window** can't be resized to be bigger than this size.
  647. \ **Note:** This property will be ignored if the value is lower than :ref:`min_size<class_Window_property_min_size>`.
  648. .. rst-class:: classref-item-separator
  649. ----
  650. .. _class_Window_property_min_size:
  651. .. rst-class:: classref-property
  652. :ref:`Vector2i<class_Vector2i>` **min_size** = ``Vector2i(0, 0)``
  653. .. rst-class:: classref-property-setget
  654. - void **set_min_size** **(** :ref:`Vector2i<class_Vector2i>` value **)**
  655. - :ref:`Vector2i<class_Vector2i>` **get_min_size** **(** **)**
  656. If non-zero, the **Window** can't be resized to be smaller than this size.
  657. \ **Note:** This property will be ignored in favor of :ref:`get_contents_minimum_size<class_Window_method_get_contents_minimum_size>` if :ref:`wrap_controls<class_Window_property_wrap_controls>` is enabled and if its size is bigger.
  658. .. rst-class:: classref-item-separator
  659. ----
  660. .. _class_Window_property_mode:
  661. .. rst-class:: classref-property
  662. :ref:`Mode<enum_Window_Mode>` **mode** = ``0``
  663. .. rst-class:: classref-property-setget
  664. - void **set_mode** **(** :ref:`Mode<enum_Window_Mode>` value **)**
  665. - :ref:`Mode<enum_Window_Mode>` **get_mode** **(** **)**
  666. Set's the window's current mode.
  667. \ **Note:** Fullscreen mode is not exclusive full screen on Windows and Linux.
  668. \ **Note:** This method only works with native windows, i.e. the main window and **Window**-derived nodes when :ref:`Viewport.gui_embed_subwindows<class_Viewport_property_gui_embed_subwindows>` is disabled in the main viewport.
  669. .. rst-class:: classref-item-separator
  670. ----
  671. .. _class_Window_property_mouse_passthrough:
  672. .. rst-class:: classref-property
  673. :ref:`bool<class_bool>` **mouse_passthrough** = ``false``
  674. .. rst-class:: classref-property-setget
  675. - void **set_flag** **(** :ref:`Flags<enum_Window_Flags>` flag, :ref:`bool<class_bool>` enabled **)**
  676. - :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_Window_Flags>` flag **)** |const|
  677. If ``true``, all mouse events will be passed to the underlying window of the same application. See also :ref:`mouse_passthrough_polygon<class_Window_property_mouse_passthrough_polygon>`.
  678. \ **Note:** This property is implemented on Linux (X11), macOS and Windows.
  679. \ **Note:** This property only works with native windows.
  680. .. rst-class:: classref-item-separator
  681. ----
  682. .. _class_Window_property_mouse_passthrough_polygon:
  683. .. rst-class:: classref-property
  684. :ref:`PackedVector2Array<class_PackedVector2Array>` **mouse_passthrough_polygon** = ``PackedVector2Array()``
  685. .. rst-class:: classref-property-setget
  686. - void **set_mouse_passthrough_polygon** **(** :ref:`PackedVector2Array<class_PackedVector2Array>` value **)**
  687. - :ref:`PackedVector2Array<class_PackedVector2Array>` **get_mouse_passthrough_polygon** **(** **)**
  688. Sets a polygonal region of the window which accepts mouse events. Mouse events outside the region will be passed through.
  689. Passing an empty array will disable passthrough support (all mouse events will be intercepted by the window, which is the default behavior).
  690. .. tabs::
  691. .. code-tab:: gdscript
  692. # Set region, using Path2D node.
  693. $Window.mouse_passthrough_polygon = $Path2D.curve.get_baked_points()
  694. # Set region, using Polygon2D node.
  695. $Window.mouse_passthrough_polygon = $Polygon2D.polygon
  696. # Reset region to default.
  697. $Window.mouse_passthrough_polygon = []
  698. .. code-tab:: csharp
  699. // Set region, using Path2D node.
  700. GetNode<Window>("Window").MousePassthrough = GetNode<Path2D>("Path2D").Curve.GetBakedPoints();
  701. // Set region, using Polygon2D node.
  702. GetNode<Window>("Window").MousePassthrough = GetNode<Polygon2D>("Polygon2D").Polygon;
  703. // Reset region to default.
  704. GetNode<Window>("Window").MousePassthrough = new Vector2[] {};
  705. \ **Note:** This property is ignored if :ref:`mouse_passthrough<class_Window_property_mouse_passthrough>` is set to ``true``.
  706. \ **Note:** On Windows, the portion of a window that lies outside the region is not drawn, while on Linux (X11) and macOS it is.
  707. \ **Note:** This property is implemented on Linux (X11), macOS and Windows.
  708. .. rst-class:: classref-item-separator
  709. ----
  710. .. _class_Window_property_popup_window:
  711. .. rst-class:: classref-property
  712. :ref:`bool<class_bool>` **popup_window** = ``false``
  713. .. rst-class:: classref-property-setget
  714. - void **set_flag** **(** :ref:`Flags<enum_Window_Flags>` flag, :ref:`bool<class_bool>` enabled **)**
  715. - :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_Window_Flags>` flag **)** |const|
  716. If ``true``, the **Window** will be considered a popup. Popups are sub-windows that don't show as separate windows in system's window manager's window list and will send close request when anything is clicked outside of them (unless :ref:`exclusive<class_Window_property_exclusive>` is enabled).
  717. \ **Note:** This property only works with native windows.
  718. .. rst-class:: classref-item-separator
  719. ----
  720. .. _class_Window_property_position:
  721. .. rst-class:: classref-property
  722. :ref:`Vector2i<class_Vector2i>` **position** = ``Vector2i(0, 0)``
  723. .. rst-class:: classref-property-setget
  724. - void **set_position** **(** :ref:`Vector2i<class_Vector2i>` value **)**
  725. - :ref:`Vector2i<class_Vector2i>` **get_position** **(** **)**
  726. The window's position in pixels.
  727. If :ref:`ProjectSettings.display/window/subwindows/embed_subwindows<class_ProjectSettings_property_display/window/subwindows/embed_subwindows>` is ``false``, the position is in absolute screen coordinates. This typically applies to editor plugins. If the setting is ``true``, the window's position is in the coordinates of its parent :ref:`Viewport<class_Viewport>`.
  728. \ **Note:** This property only works if :ref:`initial_position<class_Window_property_initial_position>` is set to :ref:`WINDOW_INITIAL_POSITION_ABSOLUTE<class_Window_constant_WINDOW_INITIAL_POSITION_ABSOLUTE>`.
  729. .. rst-class:: classref-item-separator
  730. ----
  731. .. _class_Window_property_size:
  732. .. rst-class:: classref-property
  733. :ref:`Vector2i<class_Vector2i>` **size** = ``Vector2i(100, 100)``
  734. .. rst-class:: classref-property-setget
  735. - void **set_size** **(** :ref:`Vector2i<class_Vector2i>` value **)**
  736. - :ref:`Vector2i<class_Vector2i>` **get_size** **(** **)**
  737. The window's size in pixels.
  738. .. rst-class:: classref-item-separator
  739. ----
  740. .. _class_Window_property_theme:
  741. .. rst-class:: classref-property
  742. :ref:`Theme<class_Theme>` **theme**
  743. .. rst-class:: classref-property-setget
  744. - void **set_theme** **(** :ref:`Theme<class_Theme>` value **)**
  745. - :ref:`Theme<class_Theme>` **get_theme** **(** **)**
  746. The :ref:`Theme<class_Theme>` resource this node and all its :ref:`Control<class_Control>` and **Window** children use. If a child node has its own :ref:`Theme<class_Theme>` resource set, theme items are merged with child's definitions having higher priority.
  747. \ **Note:** **Window** styles will have no effect unless the window is embedded.
  748. .. rst-class:: classref-item-separator
  749. ----
  750. .. _class_Window_property_theme_type_variation:
  751. .. rst-class:: classref-property
  752. :ref:`StringName<class_StringName>` **theme_type_variation** = ``&""``
  753. .. rst-class:: classref-property-setget
  754. - void **set_theme_type_variation** **(** :ref:`StringName<class_StringName>` value **)**
  755. - :ref:`StringName<class_StringName>` **get_theme_type_variation** **(** **)**
  756. The name of a theme type variation used by this **Window** to look up its own theme items. See :ref:`Control.theme_type_variation<class_Control_property_theme_type_variation>` for more details.
  757. .. rst-class:: classref-item-separator
  758. ----
  759. .. _class_Window_property_title:
  760. .. rst-class:: classref-property
  761. :ref:`String<class_String>` **title** = ``""``
  762. .. rst-class:: classref-property-setget
  763. - void **set_title** **(** :ref:`String<class_String>` value **)**
  764. - :ref:`String<class_String>` **get_title** **(** **)**
  765. The window's title. If the **Window** is native, title styles set in :ref:`Theme<class_Theme>` will have no effect.
  766. .. rst-class:: classref-item-separator
  767. ----
  768. .. _class_Window_property_transient:
  769. .. rst-class:: classref-property
  770. :ref:`bool<class_bool>` **transient** = ``false``
  771. .. rst-class:: classref-property-setget
  772. - void **set_transient** **(** :ref:`bool<class_bool>` value **)**
  773. - :ref:`bool<class_bool>` **is_transient** **(** **)**
  774. If ``true``, the **Window** is transient, i.e. it's considered a child of another **Window**. The transient window will be destroyed with its transient parent and will return focus to their parent when closed. The transient window is displayed on top of a non-exclusive full-screen parent window. Transient windows can't enter full-screen mode.
  775. Note that behavior might be different depending on the platform.
  776. .. rst-class:: classref-item-separator
  777. ----
  778. .. _class_Window_property_transparent:
  779. .. rst-class:: classref-property
  780. :ref:`bool<class_bool>` **transparent** = ``false``
  781. .. rst-class:: classref-property-setget
  782. - void **set_flag** **(** :ref:`Flags<enum_Window_Flags>` flag, :ref:`bool<class_bool>` enabled **)**
  783. - :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_Window_Flags>` flag **)** |const|
  784. If ``true``, the **Window**'s background can be transparent. This is best used with embedded windows.
  785. \ **Note:** Transparency support is implemented on Linux, macOS and Windows, but availability might vary depending on GPU driver, display manager, and compositor capabilities.
  786. \ **Note:** This property has no effect if either :ref:`ProjectSettings.display/window/per_pixel_transparency/allowed<class_ProjectSettings_property_display/window/per_pixel_transparency/allowed>`, or the window's :ref:`Viewport.transparent_bg<class_Viewport_property_transparent_bg>` is set to ``false``.
  787. .. rst-class:: classref-item-separator
  788. ----
  789. .. _class_Window_property_unfocusable:
  790. .. rst-class:: classref-property
  791. :ref:`bool<class_bool>` **unfocusable** = ``false``
  792. .. rst-class:: classref-property-setget
  793. - void **set_flag** **(** :ref:`Flags<enum_Window_Flags>` flag, :ref:`bool<class_bool>` enabled **)**
  794. - :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_Window_Flags>` flag **)** |const|
  795. If ``true``, the **Window** can't be focused nor interacted with. It can still be visible.
  796. .. rst-class:: classref-item-separator
  797. ----
  798. .. _class_Window_property_unresizable:
  799. .. rst-class:: classref-property
  800. :ref:`bool<class_bool>` **unresizable** = ``false``
  801. .. rst-class:: classref-property-setget
  802. - void **set_flag** **(** :ref:`Flags<enum_Window_Flags>` flag, :ref:`bool<class_bool>` enabled **)**
  803. - :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_Window_Flags>` flag **)** |const|
  804. If ``true``, the window can't be resized. Minimize and maximize buttons are disabled.
  805. .. rst-class:: classref-item-separator
  806. ----
  807. .. _class_Window_property_visible:
  808. .. rst-class:: classref-property
  809. :ref:`bool<class_bool>` **visible** = ``true``
  810. .. rst-class:: classref-property-setget
  811. - void **set_visible** **(** :ref:`bool<class_bool>` value **)**
  812. - :ref:`bool<class_bool>` **is_visible** **(** **)**
  813. If ``true``, the window is visible.
  814. .. rst-class:: classref-item-separator
  815. ----
  816. .. _class_Window_property_wrap_controls:
  817. .. rst-class:: classref-property
  818. :ref:`bool<class_bool>` **wrap_controls** = ``false``
  819. .. rst-class:: classref-property-setget
  820. - void **set_wrap_controls** **(** :ref:`bool<class_bool>` value **)**
  821. - :ref:`bool<class_bool>` **is_wrapping_controls** **(** **)**
  822. If ``true``, the window's size will automatically update when a child node is added or removed, ignoring :ref:`min_size<class_Window_property_min_size>` if the new size is bigger.
  823. If ``false``, you need to call :ref:`child_controls_changed<class_Window_method_child_controls_changed>` manually.
  824. .. rst-class:: classref-section-separator
  825. ----
  826. .. rst-class:: classref-descriptions-group
  827. Method Descriptions
  828. -------------------
  829. .. _class_Window_method_add_theme_color_override:
  830. .. rst-class:: classref-method
  831. void **add_theme_color_override** **(** :ref:`StringName<class_StringName>` name, :ref:`Color<class_Color>` color **)**
  832. Creates a local override for a theme :ref:`Color<class_Color>` with the specified ``name``. Local overrides always take precedence when fetching theme items for the control. An override can be removed with :ref:`remove_theme_color_override<class_Window_method_remove_theme_color_override>`.
  833. See also :ref:`get_theme_color<class_Window_method_get_theme_color>` and :ref:`Control.add_theme_color_override<class_Control_method_add_theme_color_override>` for more details.
  834. .. rst-class:: classref-item-separator
  835. ----
  836. .. _class_Window_method_add_theme_constant_override:
  837. .. rst-class:: classref-method
  838. void **add_theme_constant_override** **(** :ref:`StringName<class_StringName>` name, :ref:`int<class_int>` constant **)**
  839. Creates a local override for a theme constant with the specified ``name``. Local overrides always take precedence when fetching theme items for the control. An override can be removed with :ref:`remove_theme_constant_override<class_Window_method_remove_theme_constant_override>`.
  840. See also :ref:`get_theme_constant<class_Window_method_get_theme_constant>`.
  841. .. rst-class:: classref-item-separator
  842. ----
  843. .. _class_Window_method_add_theme_font_override:
  844. .. rst-class:: classref-method
  845. void **add_theme_font_override** **(** :ref:`StringName<class_StringName>` name, :ref:`Font<class_Font>` font **)**
  846. Creates a local override for a theme :ref:`Font<class_Font>` with the specified ``name``. Local overrides always take precedence when fetching theme items for the control. An override can be removed with :ref:`remove_theme_font_override<class_Window_method_remove_theme_font_override>`.
  847. See also :ref:`get_theme_font<class_Window_method_get_theme_font>`.
  848. .. rst-class:: classref-item-separator
  849. ----
  850. .. _class_Window_method_add_theme_font_size_override:
  851. .. rst-class:: classref-method
  852. void **add_theme_font_size_override** **(** :ref:`StringName<class_StringName>` name, :ref:`int<class_int>` font_size **)**
  853. Creates a local override for a theme font size with the specified ``name``. Local overrides always take precedence when fetching theme items for the control. An override can be removed with :ref:`remove_theme_font_size_override<class_Window_method_remove_theme_font_size_override>`.
  854. See also :ref:`get_theme_font_size<class_Window_method_get_theme_font_size>`.
  855. .. rst-class:: classref-item-separator
  856. ----
  857. .. _class_Window_method_add_theme_icon_override:
  858. .. rst-class:: classref-method
  859. void **add_theme_icon_override** **(** :ref:`StringName<class_StringName>` name, :ref:`Texture2D<class_Texture2D>` texture **)**
  860. Creates a local override for a theme icon with the specified ``name``. Local overrides always take precedence when fetching theme items for the control. An override can be removed with :ref:`remove_theme_icon_override<class_Window_method_remove_theme_icon_override>`.
  861. See also :ref:`get_theme_icon<class_Window_method_get_theme_icon>`.
  862. .. rst-class:: classref-item-separator
  863. ----
  864. .. _class_Window_method_add_theme_stylebox_override:
  865. .. rst-class:: classref-method
  866. void **add_theme_stylebox_override** **(** :ref:`StringName<class_StringName>` name, :ref:`StyleBox<class_StyleBox>` stylebox **)**
  867. Creates a local override for a theme :ref:`StyleBox<class_StyleBox>` with the specified ``name``. Local overrides always take precedence when fetching theme items for the control. An override can be removed with :ref:`remove_theme_stylebox_override<class_Window_method_remove_theme_stylebox_override>`.
  868. See also :ref:`get_theme_stylebox<class_Window_method_get_theme_stylebox>` and :ref:`Control.add_theme_stylebox_override<class_Control_method_add_theme_stylebox_override>` for more details.
  869. .. rst-class:: classref-item-separator
  870. ----
  871. .. _class_Window_method_begin_bulk_theme_override:
  872. .. rst-class:: classref-method
  873. void **begin_bulk_theme_override** **(** **)**
  874. Prevents ``*_theme_*_override`` methods from emitting :ref:`NOTIFICATION_THEME_CHANGED<class_Window_constant_NOTIFICATION_THEME_CHANGED>` until :ref:`end_bulk_theme_override<class_Window_method_end_bulk_theme_override>` is called.
  875. .. rst-class:: classref-item-separator
  876. ----
  877. .. _class_Window_method_can_draw:
  878. .. rst-class:: classref-method
  879. :ref:`bool<class_bool>` **can_draw** **(** **)** |const|
  880. Returns whether the window is being drawn to the screen.
  881. .. rst-class:: classref-item-separator
  882. ----
  883. .. _class_Window_method_child_controls_changed:
  884. .. rst-class:: classref-method
  885. void **child_controls_changed** **(** **)**
  886. Requests an update of the **Window** size to fit underlying :ref:`Control<class_Control>` nodes.
  887. .. rst-class:: classref-item-separator
  888. ----
  889. .. _class_Window_method_end_bulk_theme_override:
  890. .. rst-class:: classref-method
  891. void **end_bulk_theme_override** **(** **)**
  892. Ends a bulk theme override update. See :ref:`begin_bulk_theme_override<class_Window_method_begin_bulk_theme_override>`.
  893. .. rst-class:: classref-item-separator
  894. ----
  895. .. _class_Window_method_get_contents_minimum_size:
  896. .. rst-class:: classref-method
  897. :ref:`Vector2<class_Vector2>` **get_contents_minimum_size** **(** **)** |const|
  898. Returns the combined minimum size from the child :ref:`Control<class_Control>` nodes of the window. Use :ref:`child_controls_changed<class_Window_method_child_controls_changed>` to update it when children nodes have changed.
  899. .. rst-class:: classref-item-separator
  900. ----
  901. .. _class_Window_method_get_flag:
  902. .. rst-class:: classref-method
  903. :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_Window_Flags>` flag **)** |const|
  904. Returns ``true`` if the ``flag`` is set.
  905. .. rst-class:: classref-item-separator
  906. ----
  907. .. _class_Window_method_get_layout_direction:
  908. .. rst-class:: classref-method
  909. :ref:`LayoutDirection<enum_Window_LayoutDirection>` **get_layout_direction** **(** **)** |const|
  910. Returns layout direction and text writing direction.
  911. .. rst-class:: classref-item-separator
  912. ----
  913. .. _class_Window_method_get_position_with_decorations:
  914. .. rst-class:: classref-method
  915. :ref:`Vector2i<class_Vector2i>` **get_position_with_decorations** **(** **)** |const|
  916. Returns the window's position including its border.
  917. .. rst-class:: classref-item-separator
  918. ----
  919. .. _class_Window_method_get_size_with_decorations:
  920. .. rst-class:: classref-method
  921. :ref:`Vector2i<class_Vector2i>` **get_size_with_decorations** **(** **)** |const|
  922. Returns the window's size including its border.
  923. .. rst-class:: classref-item-separator
  924. ----
  925. .. _class_Window_method_get_theme_color:
  926. .. rst-class:: classref-method
  927. :ref:`Color<class_Color>` **get_theme_color** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type="" **)** |const|
  928. Returns a :ref:`Color<class_Color>` from the first matching :ref:`Theme<class_Theme>` in the tree if that :ref:`Theme<class_Theme>` has a color item with the specified ``name`` and ``theme_type``.
  929. See :ref:`Control.get_theme_color<class_Control_method_get_theme_color>` for more details.
  930. .. rst-class:: classref-item-separator
  931. ----
  932. .. _class_Window_method_get_theme_constant:
  933. .. rst-class:: classref-method
  934. :ref:`int<class_int>` **get_theme_constant** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type="" **)** |const|
  935. Returns a constant from the first matching :ref:`Theme<class_Theme>` in the tree if that :ref:`Theme<class_Theme>` has a constant item with the specified ``name`` and ``theme_type``.
  936. See :ref:`Control.get_theme_color<class_Control_method_get_theme_color>` for more details.
  937. .. rst-class:: classref-item-separator
  938. ----
  939. .. _class_Window_method_get_theme_default_base_scale:
  940. .. rst-class:: classref-method
  941. :ref:`float<class_float>` **get_theme_default_base_scale** **(** **)** |const|
  942. Returns the default base scale value from the first matching :ref:`Theme<class_Theme>` in the tree if that :ref:`Theme<class_Theme>` has a valid :ref:`Theme.default_base_scale<class_Theme_property_default_base_scale>` value.
  943. See :ref:`Control.get_theme_color<class_Control_method_get_theme_color>` for details.
  944. .. rst-class:: classref-item-separator
  945. ----
  946. .. _class_Window_method_get_theme_default_font:
  947. .. rst-class:: classref-method
  948. :ref:`Font<class_Font>` **get_theme_default_font** **(** **)** |const|
  949. Returns the default font from the first matching :ref:`Theme<class_Theme>` in the tree if that :ref:`Theme<class_Theme>` has a valid :ref:`Theme.default_font<class_Theme_property_default_font>` value.
  950. See :ref:`Control.get_theme_color<class_Control_method_get_theme_color>` for details.
  951. .. rst-class:: classref-item-separator
  952. ----
  953. .. _class_Window_method_get_theme_default_font_size:
  954. .. rst-class:: classref-method
  955. :ref:`int<class_int>` **get_theme_default_font_size** **(** **)** |const|
  956. Returns the default font size value from the first matching :ref:`Theme<class_Theme>` in the tree if that :ref:`Theme<class_Theme>` has a valid :ref:`Theme.default_font_size<class_Theme_property_default_font_size>` value.
  957. See :ref:`Control.get_theme_color<class_Control_method_get_theme_color>` for details.
  958. .. rst-class:: classref-item-separator
  959. ----
  960. .. _class_Window_method_get_theme_font:
  961. .. rst-class:: classref-method
  962. :ref:`Font<class_Font>` **get_theme_font** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type="" **)** |const|
  963. Returns a :ref:`Font<class_Font>` from the first matching :ref:`Theme<class_Theme>` in the tree if that :ref:`Theme<class_Theme>` has a font item with the specified ``name`` and ``theme_type``.
  964. See :ref:`Control.get_theme_color<class_Control_method_get_theme_color>` for details.
  965. .. rst-class:: classref-item-separator
  966. ----
  967. .. _class_Window_method_get_theme_font_size:
  968. .. rst-class:: classref-method
  969. :ref:`int<class_int>` **get_theme_font_size** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type="" **)** |const|
  970. Returns a font size from the first matching :ref:`Theme<class_Theme>` in the tree if that :ref:`Theme<class_Theme>` has a font size item with the specified ``name`` and ``theme_type``.
  971. See :ref:`Control.get_theme_color<class_Control_method_get_theme_color>` for details.
  972. .. rst-class:: classref-item-separator
  973. ----
  974. .. _class_Window_method_get_theme_icon:
  975. .. rst-class:: classref-method
  976. :ref:`Texture2D<class_Texture2D>` **get_theme_icon** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type="" **)** |const|
  977. Returns an icon from the first matching :ref:`Theme<class_Theme>` in the tree if that :ref:`Theme<class_Theme>` has an icon item with the specified ``name`` and ``theme_type``.
  978. See :ref:`Control.get_theme_color<class_Control_method_get_theme_color>` for details.
  979. .. rst-class:: classref-item-separator
  980. ----
  981. .. _class_Window_method_get_theme_stylebox:
  982. .. rst-class:: classref-method
  983. :ref:`StyleBox<class_StyleBox>` **get_theme_stylebox** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type="" **)** |const|
  984. Returns a :ref:`StyleBox<class_StyleBox>` from the first matching :ref:`Theme<class_Theme>` in the tree if that :ref:`Theme<class_Theme>` has a stylebox item with the specified ``name`` and ``theme_type``.
  985. See :ref:`Control.get_theme_color<class_Control_method_get_theme_color>` for details.
  986. .. rst-class:: classref-item-separator
  987. ----
  988. .. _class_Window_method_get_window_id:
  989. .. rst-class:: classref-method
  990. :ref:`int<class_int>` **get_window_id** **(** **)** |const|
  991. Returns the ID of the window.
  992. .. rst-class:: classref-item-separator
  993. ----
  994. .. _class_Window_method_grab_focus:
  995. .. rst-class:: classref-method
  996. void **grab_focus** **(** **)**
  997. Causes the window to grab focus, allowing it to receive user input.
  998. .. rst-class:: classref-item-separator
  999. ----
  1000. .. _class_Window_method_has_focus:
  1001. .. rst-class:: classref-method
  1002. :ref:`bool<class_bool>` **has_focus** **(** **)** |const|
  1003. Returns ``true`` if the window is focused.
  1004. .. rst-class:: classref-item-separator
  1005. ----
  1006. .. _class_Window_method_has_theme_color:
  1007. .. rst-class:: classref-method
  1008. :ref:`bool<class_bool>` **has_theme_color** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type="" **)** |const|
  1009. Returns ``true`` if there is a matching :ref:`Theme<class_Theme>` in the tree that has a color item with the specified ``name`` and ``theme_type``.
  1010. See :ref:`Control.get_theme_color<class_Control_method_get_theme_color>` for details.
  1011. .. rst-class:: classref-item-separator
  1012. ----
  1013. .. _class_Window_method_has_theme_color_override:
  1014. .. rst-class:: classref-method
  1015. :ref:`bool<class_bool>` **has_theme_color_override** **(** :ref:`StringName<class_StringName>` name **)** |const|
  1016. Returns ``true`` if there is a local override for a theme :ref:`Color<class_Color>` with the specified ``name`` in this :ref:`Control<class_Control>` node.
  1017. See :ref:`add_theme_color_override<class_Window_method_add_theme_color_override>`.
  1018. .. rst-class:: classref-item-separator
  1019. ----
  1020. .. _class_Window_method_has_theme_constant:
  1021. .. rst-class:: classref-method
  1022. :ref:`bool<class_bool>` **has_theme_constant** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type="" **)** |const|
  1023. Returns ``true`` if there is a matching :ref:`Theme<class_Theme>` in the tree that has a constant item with the specified ``name`` and ``theme_type``.
  1024. See :ref:`Control.get_theme_color<class_Control_method_get_theme_color>` for details.
  1025. .. rst-class:: classref-item-separator
  1026. ----
  1027. .. _class_Window_method_has_theme_constant_override:
  1028. .. rst-class:: classref-method
  1029. :ref:`bool<class_bool>` **has_theme_constant_override** **(** :ref:`StringName<class_StringName>` name **)** |const|
  1030. Returns ``true`` if there is a local override for a theme constant with the specified ``name`` in this :ref:`Control<class_Control>` node.
  1031. See :ref:`add_theme_constant_override<class_Window_method_add_theme_constant_override>`.
  1032. .. rst-class:: classref-item-separator
  1033. ----
  1034. .. _class_Window_method_has_theme_font:
  1035. .. rst-class:: classref-method
  1036. :ref:`bool<class_bool>` **has_theme_font** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type="" **)** |const|
  1037. Returns ``true`` if there is a matching :ref:`Theme<class_Theme>` in the tree that has a font item with the specified ``name`` and ``theme_type``.
  1038. See :ref:`Control.get_theme_color<class_Control_method_get_theme_color>` for details.
  1039. .. rst-class:: classref-item-separator
  1040. ----
  1041. .. _class_Window_method_has_theme_font_override:
  1042. .. rst-class:: classref-method
  1043. :ref:`bool<class_bool>` **has_theme_font_override** **(** :ref:`StringName<class_StringName>` name **)** |const|
  1044. Returns ``true`` if there is a local override for a theme :ref:`Font<class_Font>` with the specified ``name`` in this :ref:`Control<class_Control>` node.
  1045. See :ref:`add_theme_font_override<class_Window_method_add_theme_font_override>`.
  1046. .. rst-class:: classref-item-separator
  1047. ----
  1048. .. _class_Window_method_has_theme_font_size:
  1049. .. rst-class:: classref-method
  1050. :ref:`bool<class_bool>` **has_theme_font_size** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type="" **)** |const|
  1051. Returns ``true`` if there is a matching :ref:`Theme<class_Theme>` in the tree that has a font size item with the specified ``name`` and ``theme_type``.
  1052. See :ref:`Control.get_theme_color<class_Control_method_get_theme_color>` for details.
  1053. .. rst-class:: classref-item-separator
  1054. ----
  1055. .. _class_Window_method_has_theme_font_size_override:
  1056. .. rst-class:: classref-method
  1057. :ref:`bool<class_bool>` **has_theme_font_size_override** **(** :ref:`StringName<class_StringName>` name **)** |const|
  1058. Returns ``true`` if there is a local override for a theme font size with the specified ``name`` in this :ref:`Control<class_Control>` node.
  1059. See :ref:`add_theme_font_size_override<class_Window_method_add_theme_font_size_override>`.
  1060. .. rst-class:: classref-item-separator
  1061. ----
  1062. .. _class_Window_method_has_theme_icon:
  1063. .. rst-class:: classref-method
  1064. :ref:`bool<class_bool>` **has_theme_icon** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type="" **)** |const|
  1065. Returns ``true`` if there is a matching :ref:`Theme<class_Theme>` in the tree that has an icon item with the specified ``name`` and ``theme_type``.
  1066. See :ref:`Control.get_theme_color<class_Control_method_get_theme_color>` for details.
  1067. .. rst-class:: classref-item-separator
  1068. ----
  1069. .. _class_Window_method_has_theme_icon_override:
  1070. .. rst-class:: classref-method
  1071. :ref:`bool<class_bool>` **has_theme_icon_override** **(** :ref:`StringName<class_StringName>` name **)** |const|
  1072. Returns ``true`` if there is a local override for a theme icon with the specified ``name`` in this :ref:`Control<class_Control>` node.
  1073. See :ref:`add_theme_icon_override<class_Window_method_add_theme_icon_override>`.
  1074. .. rst-class:: classref-item-separator
  1075. ----
  1076. .. _class_Window_method_has_theme_stylebox:
  1077. .. rst-class:: classref-method
  1078. :ref:`bool<class_bool>` **has_theme_stylebox** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type="" **)** |const|
  1079. Returns ``true`` if there is a matching :ref:`Theme<class_Theme>` in the tree that has a stylebox item with the specified ``name`` and ``theme_type``.
  1080. See :ref:`Control.get_theme_color<class_Control_method_get_theme_color>` for details.
  1081. .. rst-class:: classref-item-separator
  1082. ----
  1083. .. _class_Window_method_has_theme_stylebox_override:
  1084. .. rst-class:: classref-method
  1085. :ref:`bool<class_bool>` **has_theme_stylebox_override** **(** :ref:`StringName<class_StringName>` name **)** |const|
  1086. Returns ``true`` if there is a local override for a theme :ref:`StyleBox<class_StyleBox>` with the specified ``name`` in this :ref:`Control<class_Control>` node.
  1087. See :ref:`add_theme_stylebox_override<class_Window_method_add_theme_stylebox_override>`.
  1088. .. rst-class:: classref-item-separator
  1089. ----
  1090. .. _class_Window_method_hide:
  1091. .. rst-class:: classref-method
  1092. void **hide** **(** **)**
  1093. Hides the window. This is not the same as minimized state. Hidden window can't be interacted with and needs to be made visible with :ref:`show<class_Window_method_show>`.
  1094. .. rst-class:: classref-item-separator
  1095. ----
  1096. .. _class_Window_method_is_embedded:
  1097. .. rst-class:: classref-method
  1098. :ref:`bool<class_bool>` **is_embedded** **(** **)** |const|
  1099. Returns ``true`` if the window is currently embedded in another window.
  1100. .. rst-class:: classref-item-separator
  1101. ----
  1102. .. _class_Window_method_is_layout_rtl:
  1103. .. rst-class:: classref-method
  1104. :ref:`bool<class_bool>` **is_layout_rtl** **(** **)** |const|
  1105. Returns ``true`` if layout is right-to-left.
  1106. .. rst-class:: classref-item-separator
  1107. ----
  1108. .. _class_Window_method_is_maximize_allowed:
  1109. .. rst-class:: classref-method
  1110. :ref:`bool<class_bool>` **is_maximize_allowed** **(** **)** |const|
  1111. Returns ``true`` if the window can be maximized (the maximize button is enabled).
  1112. .. rst-class:: classref-item-separator
  1113. ----
  1114. .. _class_Window_method_is_using_font_oversampling:
  1115. .. rst-class:: classref-method
  1116. :ref:`bool<class_bool>` **is_using_font_oversampling** **(** **)** |const|
  1117. Returns ``true`` if font oversampling is enabled. See :ref:`set_use_font_oversampling<class_Window_method_set_use_font_oversampling>`.
  1118. .. rst-class:: classref-item-separator
  1119. ----
  1120. .. _class_Window_method_move_to_foreground:
  1121. .. rst-class:: classref-method
  1122. void **move_to_foreground** **(** **)**
  1123. Moves the **Window** on top of other windows and focuses it.
  1124. .. rst-class:: classref-item-separator
  1125. ----
  1126. .. _class_Window_method_popup:
  1127. .. rst-class:: classref-method
  1128. void **popup** **(** :ref:`Rect2i<class_Rect2i>` rect=Rect2i(0, 0, 0, 0) **)**
  1129. Shows the **Window** and makes it transient (see :ref:`transient<class_Window_property_transient>`). If ``rect`` is provided, it will be set as the **Window**'s size. Fails if called on the main window.
  1130. .. rst-class:: classref-item-separator
  1131. ----
  1132. .. _class_Window_method_popup_centered:
  1133. .. rst-class:: classref-method
  1134. void **popup_centered** **(** :ref:`Vector2i<class_Vector2i>` minsize=Vector2i(0, 0) **)**
  1135. Popups the **Window** at the center of the current screen, with optionally given minimum size. If the **Window** is embedded, it will be centered in the parent :ref:`Viewport<class_Viewport>` instead.
  1136. \ **Note:** Calling it with the default value of ``minsize`` is equivalent to calling it with :ref:`size<class_Window_property_size>`.
  1137. .. rst-class:: classref-item-separator
  1138. ----
  1139. .. _class_Window_method_popup_centered_clamped:
  1140. .. rst-class:: classref-method
  1141. void **popup_centered_clamped** **(** :ref:`Vector2i<class_Vector2i>` minsize=Vector2i(0, 0), :ref:`float<class_float>` fallback_ratio=0.75 **)**
  1142. Popups the **Window** centered inside its parent **Window**. ``fallback_ratio`` determines the maximum size of the **Window**, in relation to its parent.
  1143. \ **Note:** Calling it with the default value of ``minsize`` is equivalent to calling it with :ref:`size<class_Window_property_size>`.
  1144. .. rst-class:: classref-item-separator
  1145. ----
  1146. .. _class_Window_method_popup_centered_ratio:
  1147. .. rst-class:: classref-method
  1148. void **popup_centered_ratio** **(** :ref:`float<class_float>` ratio=0.8 **)**
  1149. If **Window** is embedded, popups the **Window** centered inside its embedder and sets its size as a ``ratio`` of embedder's size.
  1150. If **Window** is a native window, popups the **Window** centered inside the screen of its parent **Window** and sets its size as a ``ratio`` of the screen size.
  1151. .. rst-class:: classref-item-separator
  1152. ----
  1153. .. _class_Window_method_popup_exclusive:
  1154. .. rst-class:: classref-method
  1155. void **popup_exclusive** **(** :ref:`Node<class_Node>` from_node, :ref:`Rect2i<class_Rect2i>` rect=Rect2i(0, 0, 0, 0) **)**
  1156. Attempts to parent this dialog to the last exclusive window relative to ``from_node``, and then calls :ref:`popup<class_Window_method_popup>` on it. The dialog must have no current parent, otherwise the method fails.
  1157. See also :ref:`set_unparent_when_invisible<class_Window_method_set_unparent_when_invisible>` and :ref:`Node.get_last_exclusive_window<class_Node_method_get_last_exclusive_window>`.
  1158. .. rst-class:: classref-item-separator
  1159. ----
  1160. .. _class_Window_method_popup_exclusive_centered:
  1161. .. rst-class:: classref-method
  1162. void **popup_exclusive_centered** **(** :ref:`Node<class_Node>` from_node, :ref:`Vector2i<class_Vector2i>` minsize=Vector2i(0, 0) **)**
  1163. Attempts to parent this dialog to the last exclusive window relative to ``from_node``, and then calls :ref:`popup_centered<class_Window_method_popup_centered>` on it. The dialog must have no current parent, otherwise the method fails.
  1164. See also :ref:`set_unparent_when_invisible<class_Window_method_set_unparent_when_invisible>` and :ref:`Node.get_last_exclusive_window<class_Node_method_get_last_exclusive_window>`.
  1165. .. rst-class:: classref-item-separator
  1166. ----
  1167. .. _class_Window_method_popup_exclusive_centered_clamped:
  1168. .. rst-class:: classref-method
  1169. void **popup_exclusive_centered_clamped** **(** :ref:`Node<class_Node>` from_node, :ref:`Vector2i<class_Vector2i>` minsize=Vector2i(0, 0), :ref:`float<class_float>` fallback_ratio=0.75 **)**
  1170. Attempts to parent this dialog to the last exclusive window relative to ``from_node``, and then calls :ref:`popup_centered_clamped<class_Window_method_popup_centered_clamped>` on it. The dialog must have no current parent, otherwise the method fails.
  1171. See also :ref:`set_unparent_when_invisible<class_Window_method_set_unparent_when_invisible>` and :ref:`Node.get_last_exclusive_window<class_Node_method_get_last_exclusive_window>`.
  1172. .. rst-class:: classref-item-separator
  1173. ----
  1174. .. _class_Window_method_popup_exclusive_centered_ratio:
  1175. .. rst-class:: classref-method
  1176. void **popup_exclusive_centered_ratio** **(** :ref:`Node<class_Node>` from_node, :ref:`float<class_float>` ratio=0.8 **)**
  1177. Attempts to parent this dialog to the last exclusive window relative to ``from_node``, and then calls :ref:`popup_centered_ratio<class_Window_method_popup_centered_ratio>` on it. The dialog must have no current parent, otherwise the method fails.
  1178. See also :ref:`set_unparent_when_invisible<class_Window_method_set_unparent_when_invisible>` and :ref:`Node.get_last_exclusive_window<class_Node_method_get_last_exclusive_window>`.
  1179. .. rst-class:: classref-item-separator
  1180. ----
  1181. .. _class_Window_method_popup_exclusive_on_parent:
  1182. .. rst-class:: classref-method
  1183. void **popup_exclusive_on_parent** **(** :ref:`Node<class_Node>` from_node, :ref:`Rect2i<class_Rect2i>` parent_rect **)**
  1184. Attempts to parent this dialog to the last exclusive window relative to ``from_node``, and then calls :ref:`popup_on_parent<class_Window_method_popup_on_parent>` on it. The dialog must have no current parent, otherwise the method fails.
  1185. See also :ref:`set_unparent_when_invisible<class_Window_method_set_unparent_when_invisible>` and :ref:`Node.get_last_exclusive_window<class_Node_method_get_last_exclusive_window>`.
  1186. .. rst-class:: classref-item-separator
  1187. ----
  1188. .. _class_Window_method_popup_on_parent:
  1189. .. rst-class:: classref-method
  1190. void **popup_on_parent** **(** :ref:`Rect2i<class_Rect2i>` parent_rect **)**
  1191. Popups the **Window** with a position shifted by parent **Window**'s position. If the **Window** is embedded, has the same effect as :ref:`popup<class_Window_method_popup>`.
  1192. .. rst-class:: classref-item-separator
  1193. ----
  1194. .. _class_Window_method_remove_theme_color_override:
  1195. .. rst-class:: classref-method
  1196. void **remove_theme_color_override** **(** :ref:`StringName<class_StringName>` name **)**
  1197. Removes a local override for a theme :ref:`Color<class_Color>` with the specified ``name`` previously added by :ref:`add_theme_color_override<class_Window_method_add_theme_color_override>` or via the Inspector dock.
  1198. .. rst-class:: classref-item-separator
  1199. ----
  1200. .. _class_Window_method_remove_theme_constant_override:
  1201. .. rst-class:: classref-method
  1202. void **remove_theme_constant_override** **(** :ref:`StringName<class_StringName>` name **)**
  1203. Removes a local override for a theme constant with the specified ``name`` previously added by :ref:`add_theme_constant_override<class_Window_method_add_theme_constant_override>` or via the Inspector dock.
  1204. .. rst-class:: classref-item-separator
  1205. ----
  1206. .. _class_Window_method_remove_theme_font_override:
  1207. .. rst-class:: classref-method
  1208. void **remove_theme_font_override** **(** :ref:`StringName<class_StringName>` name **)**
  1209. Removes a local override for a theme :ref:`Font<class_Font>` with the specified ``name`` previously added by :ref:`add_theme_font_override<class_Window_method_add_theme_font_override>` or via the Inspector dock.
  1210. .. rst-class:: classref-item-separator
  1211. ----
  1212. .. _class_Window_method_remove_theme_font_size_override:
  1213. .. rst-class:: classref-method
  1214. void **remove_theme_font_size_override** **(** :ref:`StringName<class_StringName>` name **)**
  1215. Removes a local override for a theme font size with the specified ``name`` previously added by :ref:`add_theme_font_size_override<class_Window_method_add_theme_font_size_override>` or via the Inspector dock.
  1216. .. rst-class:: classref-item-separator
  1217. ----
  1218. .. _class_Window_method_remove_theme_icon_override:
  1219. .. rst-class:: classref-method
  1220. void **remove_theme_icon_override** **(** :ref:`StringName<class_StringName>` name **)**
  1221. Removes a local override for a theme icon with the specified ``name`` previously added by :ref:`add_theme_icon_override<class_Window_method_add_theme_icon_override>` or via the Inspector dock.
  1222. .. rst-class:: classref-item-separator
  1223. ----
  1224. .. _class_Window_method_remove_theme_stylebox_override:
  1225. .. rst-class:: classref-method
  1226. void **remove_theme_stylebox_override** **(** :ref:`StringName<class_StringName>` name **)**
  1227. Removes a local override for a theme :ref:`StyleBox<class_StyleBox>` with the specified ``name`` previously added by :ref:`add_theme_stylebox_override<class_Window_method_add_theme_stylebox_override>` or via the Inspector dock.
  1228. .. rst-class:: classref-item-separator
  1229. ----
  1230. .. _class_Window_method_request_attention:
  1231. .. rst-class:: classref-method
  1232. void **request_attention** **(** **)**
  1233. Tells the OS that the **Window** needs an attention. This makes the window stand out in some way depending on the system, e.g. it might blink on the task bar.
  1234. .. rst-class:: classref-item-separator
  1235. ----
  1236. .. _class_Window_method_reset_size:
  1237. .. rst-class:: classref-method
  1238. void **reset_size** **(** **)**
  1239. Resets the size to the minimum size, which is the max of :ref:`min_size<class_Window_property_min_size>` and (if :ref:`wrap_controls<class_Window_property_wrap_controls>` is enabled) :ref:`get_contents_minimum_size<class_Window_method_get_contents_minimum_size>`. This is equivalent to calling ``set_size(Vector2i())`` (or any size below the minimum).
  1240. .. rst-class:: classref-item-separator
  1241. ----
  1242. .. _class_Window_method_set_flag:
  1243. .. rst-class:: classref-method
  1244. void **set_flag** **(** :ref:`Flags<enum_Window_Flags>` flag, :ref:`bool<class_bool>` enabled **)**
  1245. Sets a specified window flag.
  1246. .. rst-class:: classref-item-separator
  1247. ----
  1248. .. _class_Window_method_set_ime_active:
  1249. .. rst-class:: classref-method
  1250. void **set_ime_active** **(** :ref:`bool<class_bool>` active **)**
  1251. If ``active`` is ``true``, enables system's native IME (Input Method Editor).
  1252. .. rst-class:: classref-item-separator
  1253. ----
  1254. .. _class_Window_method_set_ime_position:
  1255. .. rst-class:: classref-method
  1256. void **set_ime_position** **(** :ref:`Vector2i<class_Vector2i>` position **)**
  1257. Moves IME to the given position.
  1258. .. rst-class:: classref-item-separator
  1259. ----
  1260. .. _class_Window_method_set_layout_direction:
  1261. .. rst-class:: classref-method
  1262. void **set_layout_direction** **(** :ref:`LayoutDirection<enum_Window_LayoutDirection>` direction **)**
  1263. Sets layout direction and text writing direction. Right-to-left layouts are necessary for certain languages (e.g. Arabic and Hebrew).
  1264. .. rst-class:: classref-item-separator
  1265. ----
  1266. .. _class_Window_method_set_unparent_when_invisible:
  1267. .. rst-class:: classref-method
  1268. void **set_unparent_when_invisible** **(** :ref:`bool<class_bool>` unparent **)**
  1269. If ``unparent`` is ``true``, the window is automatically unparented when going invisible.
  1270. \ **Note:** Make sure to keep a reference to the node, otherwise it will be orphaned. You also need to manually call :ref:`Node.queue_free<class_Node_method_queue_free>` to free the window if it's not parented.
  1271. .. rst-class:: classref-item-separator
  1272. ----
  1273. .. _class_Window_method_set_use_font_oversampling:
  1274. .. rst-class:: classref-method
  1275. void **set_use_font_oversampling** **(** :ref:`bool<class_bool>` enable **)**
  1276. Enables font oversampling. This makes fonts look better when they are scaled up.
  1277. .. rst-class:: classref-item-separator
  1278. ----
  1279. .. _class_Window_method_show:
  1280. .. rst-class:: classref-method
  1281. void **show** **(** **)**
  1282. Makes the **Window** appear. This enables interactions with the **Window** and doesn't change any of its property other than visibility (unlike e.g. :ref:`popup<class_Window_method_popup>`).
  1283. .. rst-class:: classref-section-separator
  1284. ----
  1285. .. rst-class:: classref-descriptions-group
  1286. Theme Property Descriptions
  1287. ---------------------------
  1288. .. _class_Window_theme_color_title_color:
  1289. .. rst-class:: classref-themeproperty
  1290. :ref:`Color<class_Color>` **title_color** = ``Color(0.875, 0.875, 0.875, 1)``
  1291. The color of the title's text.
  1292. .. rst-class:: classref-item-separator
  1293. ----
  1294. .. _class_Window_theme_color_title_outline_modulate:
  1295. .. rst-class:: classref-themeproperty
  1296. :ref:`Color<class_Color>` **title_outline_modulate** = ``Color(1, 1, 1, 1)``
  1297. The color of the title's text outline.
  1298. .. rst-class:: classref-item-separator
  1299. ----
  1300. .. _class_Window_theme_constant_close_h_offset:
  1301. .. rst-class:: classref-themeproperty
  1302. :ref:`int<class_int>` **close_h_offset** = ``18``
  1303. Horizontal position offset of the close button.
  1304. .. rst-class:: classref-item-separator
  1305. ----
  1306. .. _class_Window_theme_constant_close_v_offset:
  1307. .. rst-class:: classref-themeproperty
  1308. :ref:`int<class_int>` **close_v_offset** = ``24``
  1309. Vertical position offset of the close button.
  1310. .. rst-class:: classref-item-separator
  1311. ----
  1312. .. _class_Window_theme_constant_resize_margin:
  1313. .. rst-class:: classref-themeproperty
  1314. :ref:`int<class_int>` **resize_margin** = ``4``
  1315. Defines the outside margin at which the window border can be grabbed with mouse and resized.
  1316. .. rst-class:: classref-item-separator
  1317. ----
  1318. .. _class_Window_theme_constant_title_height:
  1319. .. rst-class:: classref-themeproperty
  1320. :ref:`int<class_int>` **title_height** = ``36``
  1321. Height of the title bar.
  1322. .. rst-class:: classref-item-separator
  1323. ----
  1324. .. _class_Window_theme_constant_title_outline_size:
  1325. .. rst-class:: classref-themeproperty
  1326. :ref:`int<class_int>` **title_outline_size** = ``0``
  1327. The size of the title outline.
  1328. .. rst-class:: classref-item-separator
  1329. ----
  1330. .. _class_Window_theme_font_title_font:
  1331. .. rst-class:: classref-themeproperty
  1332. :ref:`Font<class_Font>` **title_font**
  1333. The font used to draw the title.
  1334. .. rst-class:: classref-item-separator
  1335. ----
  1336. .. _class_Window_theme_font_size_title_font_size:
  1337. .. rst-class:: classref-themeproperty
  1338. :ref:`int<class_int>` **title_font_size**
  1339. The size of the title font.
  1340. .. rst-class:: classref-item-separator
  1341. ----
  1342. .. _class_Window_theme_icon_close:
  1343. .. rst-class:: classref-themeproperty
  1344. :ref:`Texture2D<class_Texture2D>` **close**
  1345. The icon for the close button.
  1346. .. rst-class:: classref-item-separator
  1347. ----
  1348. .. _class_Window_theme_icon_close_pressed:
  1349. .. rst-class:: classref-themeproperty
  1350. :ref:`Texture2D<class_Texture2D>` **close_pressed**
  1351. The icon for the close button when it's being pressed.
  1352. .. rst-class:: classref-item-separator
  1353. ----
  1354. .. _class_Window_theme_style_embedded_border:
  1355. .. rst-class:: classref-themeproperty
  1356. :ref:`StyleBox<class_StyleBox>` **embedded_border**
  1357. The background style used when the **Window** is embedded. Note that this is drawn only under the window's content, excluding the title. For proper borders and title bar style, you can use ``expand_margin_*`` properties of :ref:`StyleBoxFlat<class_StyleBoxFlat>`.
  1358. \ **Note:** The content background will not be visible unless :ref:`transparent<class_Window_property_transparent>` is enabled.
  1359. .. rst-class:: classref-item-separator
  1360. ----
  1361. .. _class_Window_theme_style_embedded_unfocused_border:
  1362. .. rst-class:: classref-themeproperty
  1363. :ref:`StyleBox<class_StyleBox>` **embedded_unfocused_border**
  1364. The background style used when the **Window** is embedded and unfocused.
  1365. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  1366. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  1367. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  1368. .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
  1369. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
  1370. .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`
  1371. .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)`