diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/classes/ConfigFile.xml | 40 | ||||
-rw-r--r-- | doc/classes/GraphEdit.xml | 22 | ||||
-rw-r--r-- | doc/classes/Node.xml | 3 | ||||
-rw-r--r-- | doc/classes/OS.xml | 2 | ||||
-rw-r--r-- | doc/classes/PopupMenu.xml | 93 | ||||
-rw-r--r-- | doc/classes/SpinBox.xml | 16 | ||||
-rwxr-xr-x | doc/tools/makerst.py | 85 |
7 files changed, 187 insertions, 74 deletions
diff --git a/doc/classes/ConfigFile.xml b/doc/classes/ConfigFile.xml index 5b8f0c32d1..775ad4c922 100644 --- a/doc/classes/ConfigFile.xml +++ b/doc/classes/ConfigFile.xml @@ -97,6 +97,26 @@ Loads the config file specified as a parameter. The file's contents are parsed and loaded in the ConfigFile object which the method was called on. Returns one of the [constant OK], [constant FAILED] or [code]ERR_*[/code] constants listed in [@GlobalScope]. If the load was successful, the return value is [constant OK]. </description> </method> + <method name="load_encrypted"> + <return type="int" enum="Error"> + </return> + <argument index="0" name="path" type="String"> + </argument> + <argument index="1" name="key" type="PoolByteArray"> + </argument> + <description> + </description> + </method> + <method name="load_encrypted_pass"> + <return type="int" enum="Error"> + </return> + <argument index="0" name="path" type="String"> + </argument> + <argument index="1" name="pass" type="String"> + </argument> + <description> + </description> + </method> <method name="save"> <return type="int" enum="Error"> </return> @@ -106,6 +126,26 @@ Saves the contents of the ConfigFile object to the file specified as a parameter. The output file uses an INI-style structure. Returns one of the [constant OK], [constant FAILED] or [code]ERR_*[/code] constants listed in [@GlobalScope]. If the load was successful, the return value is [constant OK]. </description> </method> + <method name="save_encrypted"> + <return type="int" enum="Error"> + </return> + <argument index="0" name="path" type="String"> + </argument> + <argument index="1" name="key" type="PoolByteArray"> + </argument> + <description> + </description> + </method> + <method name="save_encrypted_pass"> + <return type="int" enum="Error"> + </return> + <argument index="0" name="path" type="String"> + </argument> + <argument index="1" name="pass" type="String"> + </argument> + <description> + </description> + </method> <method name="set_value"> <return type="void"> </return> diff --git a/doc/classes/GraphEdit.xml b/doc/classes/GraphEdit.xml index b39b8e9f48..f6cb4ca4d9 100644 --- a/doc/classes/GraphEdit.xml +++ b/doc/classes/GraphEdit.xml @@ -198,6 +198,17 @@ Signal sent at the end of a GraphNode movement. </description> </signal> + <signal name="connection_from_empty"> + <argument index="0" name="to" type="String"> + </argument> + <argument index="1" name="to_slot" type="int"> + </argument> + <argument index="2" name="release_position" type="Vector2"> + </argument> + <description> + Signal sent when user dragging connection from input port into empty space of the graph. + </description> + </signal> <signal name="connection_request"> <argument index="0" name="from" type="String"> </argument> @@ -211,17 +222,6 @@ Signal sent to the GraphEdit when the connection between the [code]from_slot[/code] slot of the [code]from[/code] GraphNode and the [code]to_slot[/code] slot of the [code]to[/code] GraphNode is attempted to be created. </description> </signal> - <signal name="connection_from_empty"> - <argument index="0" name="to" type="String"> - </argument> - <argument index="1" name="to_slot" type="int"> - </argument> - <argument index="2" name="release_position" type="Vector2"> - </argument> - <description> - Signal sent when user dragging connection from input port into empty space of the graph. - </description> - </signal> <signal name="connection_to_empty"> <argument index="0" name="from" type="String"> </argument> diff --git a/doc/classes/Node.xml b/doc/classes/Node.xml index 5956d7a364..d9df2a50c6 100644 --- a/doc/classes/Node.xml +++ b/doc/classes/Node.xml @@ -85,6 +85,7 @@ Called when the node is "ready", i.e. when both the node and its children have entered the scene tree. If the node has children, their [method _ready] callbacks get triggered first, and the parent node will receive the ready notification afterwards. Corresponds to the [constant NOTIFICATION_READY] notification in [method Object._notification]. See also the [code]onready[/code] keyword for variables. Usually used for initialization. For even earlier initialization, [method Object._init] may be used. See also [method _enter_tree]. + [b]Note:[/b] [method _ready] may be called only once for each node. After removing a node from the scene tree and adding again, [code]_ready[/code] will not be called for the second time. This can be bypassed with requesting another call with [method request_ready], which may be called anywhere before adding the node again. </description> </method> <method name="_unhandled_input" qualifiers="virtual"> @@ -595,7 +596,7 @@ <return type="void"> </return> <description> - Requests that [code]_ready[/code] be called again. + Requests that [code]_ready[/code] be called again. Note that the method won't be called immediately, but is scheduled for when the node is added to the scene tree again (see [method _ready]). [code]_ready[/code] is called only for the node which requested it, which means that you need to request ready for each child if you want them to call [code]_ready[/code] too (in which case, [code]_ready[/code] will be called in the same order as it would normally). </description> </method> <method name="rpc" qualifiers="vararg"> diff --git a/doc/classes/OS.xml b/doc/classes/OS.xml index cd530eddfa..e9b51d03c3 100644 --- a/doc/classes/OS.xml +++ b/doc/classes/OS.xml @@ -360,6 +360,7 @@ <return type="int"> </return> <description> + Returns the amount of time in milliseconds it took for the boot logo to appear. </description> </method> <method name="get_static_memory_peak_usage" qualifiers="const"> @@ -493,6 +494,7 @@ <return type="Rect2"> </return> <description> + Returns unobscured area of the window where interactive controls should be rendered. </description> </method> <method name="has_environment" qualifiers="const"> diff --git a/doc/classes/PopupMenu.xml b/doc/classes/PopupMenu.xml index 0d869fc72f..3ce923e36a 100644 --- a/doc/classes/PopupMenu.xml +++ b/doc/classes/PopupMenu.xml @@ -4,7 +4,7 @@ PopupMenu displays a list of options. </brief_description> <description> - PopupMenu is the typical Control that displays a list of options. They are popular in toolbars or context menus. + [PopupMenu] is a [Control] that displays a list of options. They are popular in toolbars or context menus. </description> <tutorials> </tutorials> @@ -19,8 +19,9 @@ <argument index="2" name="accel" type="int" default="0"> </argument> <description> - Adds a new checkable item with text [code]label[/code]. An [code]id[/code] can optionally be provided, as well as an accelerator ([code]accel[/code]). If no [code]id[/code] is provided, one will be created from the index. - [b]Note:[/b] Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. + Adds a new checkable item with text [code]label[/code]. + An [code]id[/code] can optionally be provided, as well as an accelerator ([code]accel[/code]). If no [code]id[/code] is provided, one will be created from the index. If no [code]accel[/code] is provided then the default [code]0[/code] will be assigned to it. See [method get_item_accelerator] for more info on accelerators. + [b]Note:[/b] Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See [method set_item_checked] for more info on how to control it. </description> </method> <method name="add_check_shortcut"> @@ -33,6 +34,9 @@ <argument index="2" name="global" type="bool" default="false"> </argument> <description> + Adds a new checkable item and assigns the specified [ShortCut] to it. Sets the label of the checkbox to the [ShortCut]'s name. + An [code]id[/code] can optionally be provided. If no [code]id[/code] is provided, one will be created from the index. + [b]Note:[/b] Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See [method set_item_checked] for more info on how to control it. </description> </method> <method name="add_icon_check_item"> @@ -47,8 +51,9 @@ <argument index="3" name="accel" type="int" default="0"> </argument> <description> - Adds a new checkable item with text [code]label[/code] and icon [code]texture[/code]. An [code]id[/code] can optionally be provided, as well as an accelerator ([code]accel[/code]). If no [code]id[/code] is provided, one will be created from the index. - [b]Note:[/b] Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. + Adds a new checkable item with text [code]label[/code] and icon [code]texture[/code]. + An [code]id[/code] can optionally be provided, as well as an accelerator ([code]accel[/code]). If no [code]id[/code] is provided, one will be created from the index. If no [code]accel[/code] is provided then the default [code]0[/code] will be assigned to it. See [method get_item_accelerator] for more info on accelerators. + [b]Note:[/b] Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See [method set_item_checked] for more info on how to control it. </description> </method> <method name="add_icon_check_shortcut"> @@ -63,6 +68,9 @@ <argument index="3" name="global" type="bool" default="false"> </argument> <description> + Adds a new checkable item and assigns the specified [ShortCut] and icon [code]texture[/code] to it. Sets the label of the checkbox to the [ShortCut]'s name. + An [code]id[/code] can optionally be provided. If no [code]id[/code] is provided, one will be created from the index. + [b]Note:[/b] Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See [method set_item_checked] for more info on how to control it. </description> </method> <method name="add_icon_item"> @@ -77,7 +85,8 @@ <argument index="3" name="accel" type="int" default="0"> </argument> <description> - Adds a new item with text [code]label[/code] and icon [code]texture[/code]. An [code]id[/code] can optionally be provided, as well as an accelerator keybinding ([code]accel[/code]). If no [code]id[/code] is provided, one will be created from the index. + Adds a new item with text [code]label[/code] and icon [code]texture[/code]. + An [code]id[/code] can optionally be provided, as well as an accelerator ([code]accel[/code]). If no [code]id[/code] is provided, one will be created from the index. If no [code]accel[/code] is provided then the default [code]0[/code] will be assigned to it. See [method get_item_accelerator] for more info on accelerators. </description> </method> <method name="add_icon_shortcut"> @@ -92,6 +101,8 @@ <argument index="3" name="global" type="bool" default="false"> </argument> <description> + Adds a new item and assigns the specified [ShortCut] and icon [code]texture[/code] to it. Sets the label of the checkbox to the [ShortCut]'s name. + An [code]id[/code] can optionally be provided. If no [code]id[/code] is provided, one will be created from the index. </description> </method> <method name="add_item"> @@ -104,7 +115,8 @@ <argument index="2" name="accel" type="int" default="0"> </argument> <description> - Adds a new item with text [code]label[/code]. An [code]id[/code] can optionally be provided, as well as an accelerator keybinding ([code]accel[/code]). If no [code]id[/code] is provided, one will be created from the index. + Adds a new item with text [code]label[/code]. + An [code]id[/code] can optionally be provided, as well as an accelerator ([code]accel[/code]). If no [code]id[/code] is provided, one will be created from the index. If no [code]accel[/code] is provided then the default [code]0[/code] will be assigned to it. See [method get_item_accelerator] for more info on accelerators. </description> </method> <method name="add_radio_check_item"> @@ -117,8 +129,9 @@ <argument index="2" name="accel" type="int" default="0"> </argument> <description> - The same as [method add_check_item], but the inserted item will look as a radio button. - [b]Note:[/b] This is purely cosmetic; you must add the logic for checking/unchecking items in radio groups. + Adds a new radio button with text [code]label[/code]. + An [code]id[/code] can optionally be provided, as well as an accelerator ([code]accel[/code]). If no [code]id[/code] is provided, one will be created from the index. If no [code]accel[/code] is provided then the default [code]0[/code] will be assigned to it. See [method get_item_accelerator] for more info on accelerators. + [b]Note:[/b] Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See [method set_item_checked] for more info on how to control it. </description> </method> <method name="add_radio_check_shortcut"> @@ -131,6 +144,9 @@ <argument index="2" name="global" type="bool" default="false"> </argument> <description> + Adds a new radio check button and assigns a [ShortCut] to it. Sets the label of the checkbox to the [ShortCut]'s name. + An [code]id[/code] can optionally be provided. If no [code]id[/code] is provided, one will be created from the index. + [b]Note:[/b] Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See [method set_item_checked] for more info on how to control it. </description> </method> <method name="add_separator"> @@ -152,6 +168,8 @@ <argument index="2" name="global" type="bool" default="false"> </argument> <description> + Adds a [ShortCut]. + An [code]id[/code] can optionally be provided. If no [code]id[/code] is provided, one will be created from the index. </description> </method> <method name="add_submenu_item"> @@ -164,14 +182,15 @@ <argument index="2" name="id" type="int" default="-1"> </argument> <description> - Adds an item with a submenu. The submenu is the name of a child PopupMenu node that would be shown when the item is clicked. An id can optionally be provided, but if is isn't provided, one will be created from the index. + Adds an item that will act as a submenu of the parent [PopupMenu] node when clicked. The [code]submenu[/code] argument is the name of the child [PopupMenu] node that will be shown when the item is clicked. + An [code]id[/code] can optionally be provided. If no [code]id[/code] is provided, one will be created from the index. </description> </method> <method name="clear"> <return type="void"> </return> <description> - Clear the popup menu, in effect removing all items. + Removes all items from the [PopupMenu]. </description> </method> <method name="get_item_accelerator" qualifiers="const"> @@ -187,7 +206,7 @@ <return type="int"> </return> <description> - Returns the amount of items. + Returns the number of items in the [PopupMenu]. </description> </method> <method name="get_item_icon" qualifiers="const"> @@ -205,7 +224,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Returns the id of the item at index [code]idx[/code]. + Returns the id of the item at index [code]idx[/code]. [code]id[/code] can be manually assigned, while index can not. </description> </method> <method name="get_item_index" qualifiers="const"> @@ -214,7 +233,7 @@ <argument index="0" name="id" type="int"> </argument> <description> - Finds and return the index of the item containing a given [code]id[/code]. + Returns the index of the item containing the specified [code]id[/code]. Index is automatically assigned to each item by the engine. Index can not be set manualy. </description> </method> <method name="get_item_metadata" qualifiers="const"> @@ -223,7 +242,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Returns the metadata of an item, which might be of any type. You can set it with [method set_item_metadata], which provides a simple way of assigning context data to items. + Returns the metadata of the specified item, which might be of any type. You can set it with [method set_item_metadata], which provides a simple way of assigning context data to items. </description> </method> <method name="get_item_shortcut" qualifiers="const"> @@ -232,6 +251,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> + Returns the [ShortCut] associated with the specified [code]idx[/code] item. </description> </method> <method name="get_item_submenu" qualifiers="const"> @@ -240,7 +260,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Returns the submenu name of the item at index [code]idx[/code]. + Returns the submenu name of the item at index [code]idx[/code]. See [method add_submenu_item] for more info on how to add a submenu. </description> </method> <method name="get_item_text" qualifiers="const"> @@ -258,12 +278,14 @@ <argument index="0" name="idx" type="int"> </argument> <description> + Returns the tooltip associated with the specified index index [code]idx[/code]. </description> </method> <method name="is_hide_on_window_lose_focus" qualifiers="const"> <return type="bool"> </return> <description> + Returns whether the popup will be hidden when the window loses focus or not. </description> </method> <method name="is_item_checkable" qualifiers="const"> @@ -292,6 +314,7 @@ </argument> <description> Returns [code]true[/code] if the item at index [code]idx[/code] is disabled. When it is disabled it can't be selected, or its action invoked. + See [method set_item_disabled] for more info on how to disable an item. </description> </method> <method name="is_item_radio_checkable" qualifiers="const"> @@ -300,7 +323,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Returns [code]true[/code] if the item at index [code]idx[/code] has radio-button-style checkability. + Returns [code]true[/code] if the item at index [code]idx[/code] has radio button-style checkability. [b]Note:[/b] This is purely cosmetic; you must add the logic for checking/unchecking items in radio groups. </description> </method> @@ -310,7 +333,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Returns [code]true[/code] if the item is a separator. If it is, it will be displayed as a line. + Returns [code]true[/code] if the item is a separator. If it is, it will be displayed as a line. See [method add_separator] for more info on how to add a separator. </description> </method> <method name="is_item_shortcut_disabled" qualifiers="const"> @@ -319,6 +342,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> + Returns whether the shortcut of the specified item [code]idx[/code] is disabled or not. </description> </method> <method name="remove_item"> @@ -337,6 +361,7 @@ <argument index="0" name="enable" type="bool"> </argument> <description> + Hides the [PopupMenu] when the window loses focus. </description> </method> <method name="set_item_accelerator"> @@ -358,7 +383,7 @@ <argument index="1" name="enable" type="bool"> </argument> <description> - Sets whether the item at index [code]idx[/code] has a checkbox. + Sets whether the item at index [code]idx[/code] has a checkbox. If [code]false[/code], sets the type of the item to plain text. [b]Note:[/b] Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. </description> </method> @@ -370,8 +395,7 @@ <argument index="1" name="enable" type="bool"> </argument> <description> - The same as [method set_item_as_checkable] but placing a radio button in case of enabling. If used for disabling, it's the same. - Remember this is just cosmetic and you have to add the logic for checking/unchecking items in radio groups. + Sets the type of the item at the specified index [code]idx[/code] to radio button. If false, sets the type of the item to plain text. </description> </method> <method name="set_item_as_separator"> @@ -382,7 +406,7 @@ <argument index="1" name="enable" type="bool"> </argument> <description> - Mark the item at index [code]idx[/code] as a separator, which means that it would be displayed as a line. + Mark the item at index [code]idx[/code] as a separator, which means that it would be displayed as a line. If [code]false[/code], sets the type of the item to plain text. </description> </method> <method name="set_item_checked"> @@ -415,6 +439,7 @@ <argument index="1" name="icon" type="Texture"> </argument> <description> + Replaces the [Texture] icon of the specified [code]idx[/code]. </description> </method> <method name="set_item_id"> @@ -459,6 +484,7 @@ <argument index="2" name="global" type="bool" default="false"> </argument> <description> + Sets a [ShortCut] for the specified item [code]idx[/code]. </description> </method> <method name="set_item_shortcut_disabled"> @@ -469,6 +495,7 @@ <argument index="1" name="disabled" type="bool"> </argument> <description> + Disables the [ShortCut] of the specified index [code]idx[/code]. </description> </method> <method name="set_item_submenu"> @@ -479,7 +506,7 @@ <argument index="1" name="submenu" type="String"> </argument> <description> - Sets the submenu of the item at index [code]idx[/code]. The submenu is the name of a child PopupMenu node that would be shown when the item is clicked. + Sets the submenu of the item at index [code]idx[/code]. The submenu is the name of a child [PopupMenu] node that would be shown when the item is clicked. </description> </method> <method name="set_item_text"> @@ -501,6 +528,7 @@ <argument index="1" name="tooltip" type="String"> </argument> <description> + Sets the [String] tooltip of the item at the specified index [code]idx[/code]. </description> </method> <method name="toggle_item_checked"> @@ -509,6 +537,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> + Toggles the check state of the item of the specified index [code]idx[/code]. </description> </method> <method name="toggle_item_multistate"> @@ -525,10 +554,13 @@ If [code]true[/code], allows to navigate [PopupMenu] with letter keys. Default value: [code]false[/code]. </member> <member name="hide_on_checkable_item_selection" type="bool" setter="set_hide_on_checkable_item_selection" getter="is_hide_on_checkable_item_selection"> + If [code]true[/code], hides the [PopupMenu] when a checkbox or radio button is selected. </member> <member name="hide_on_item_selection" type="bool" setter="set_hide_on_item_selection" getter="is_hide_on_item_selection"> + If [code]true[/code], hides the [PopupMenu] when an item is selected. </member> <member name="hide_on_state_item_selection" type="bool" setter="set_hide_on_state_item_selection" getter="is_hide_on_state_item_selection"> + If [code]true[/code], hides the [PopupMenu] when a state item is selected. </member> <member name="submenu_popup_delay" type="float" setter="set_submenu_popup_delay" getter="get_submenu_popup_delay"> Sets the delay time for the submenu item to popup on mouse hovering. If the popup menu is added as a child of another (acting as a submenu), it will inherit the delay time of the parent menu item. Default value: [code]0.3[/code] seconds. @@ -561,40 +593,55 @@ </constants> <theme_items> <theme_item name="checked" type="Texture"> + Sets a custom [Texture] icon for [code]checked[/code] state of checkbox items. </theme_item> <theme_item name="font" type="Font"> + Sets a custom [Font]. </theme_item> <theme_item name="font_color" type="Color"> + Sets a custom [Color] for the [Font]. </theme_item> <theme_item name="font_color_accel" type="Color"> </theme_item> <theme_item name="font_color_disabled" type="Color"> + Sets a custom [Color] for disabled text. </theme_item> <theme_item name="font_color_hover" type="Color"> + Sets a custom [Color] for the hovered text. </theme_item> <theme_item name="hover" type="StyleBox"> + Sets a custom [StyleBox] when the [PopupMenu] is hovered. </theme_item> <theme_item name="hseparation" type="int"> + Sets the horizontal space separation between each item. </theme_item> <theme_item name="labeled_separator_left" type="StyleBox"> </theme_item> <theme_item name="labeled_separator_right" type="StyleBox"> </theme_item> <theme_item name="panel" type="StyleBox"> + Sets a custom [StyleBox] for the panel of the [PopupMenu]. </theme_item> <theme_item name="panel_disabled" type="StyleBox"> + Sets a custom [StyleBox] for the panel of the [PopupMenu], when the panel is disabled. </theme_item> <theme_item name="radio_checked" type="Texture"> + Sets a custom [Texture] icon for [code]checked[/code] of radio button items. </theme_item> <theme_item name="radio_unchecked" type="Texture"> + Sets a custom [Texture] icon for [code]unchecked[/code] of radio button items. </theme_item> <theme_item name="separator" type="StyleBox"> + Sets a custom [StyleBox] for separator's. </theme_item> <theme_item name="submenu" type="Texture"> + Sets a custom [Texture] for submenu's. </theme_item> <theme_item name="unchecked" type="Texture"> + Sets a custom [Texture] icon for [code]unchecked[/code] of checkbox items. </theme_item> <theme_item name="vseparation" type="int"> + Sets the vertical space separation between each item. </theme_item> </theme_items> </class> diff --git a/doc/classes/SpinBox.xml b/doc/classes/SpinBox.xml index 8e2e2f1baa..3388af2dd0 100644 --- a/doc/classes/SpinBox.xml +++ b/doc/classes/SpinBox.xml @@ -5,6 +5,16 @@ </brief_description> <description> SpinBox is a numerical input text field. It allows entering integers and floats. + [b]Example:[/b] + [codeblock] + var spin_box = SpinBox.new() + add_child(spin_box) + var line_edit = spin_box.get_line_edit() + line_edit.context_menu_enabled = false + spin_box.align = LineEdit.ALIGN_RIGHT + [/codeblock] + The above code will create a [SpinBox], disable context menu on it and set the text alignment to right. + See [Range] class for more options over the [SpinBox]. </description> <tutorials> </tutorials> @@ -13,23 +23,29 @@ <return type="LineEdit"> </return> <description> + Returns the [LineEdit] instance from this [SpinBox]. You can use it to access properties and methods of [LineEdit]. </description> </method> </methods> <members> <member name="align" type="int" setter="set_align" getter="get_align" enum="LineEdit.Align"> + Sets the text alignment of the [SpinBox]. </member> <member name="editable" type="bool" setter="set_editable" getter="is_editable"> + If [code]true[/code], the [SpinBox] will be editable. Otherwise, it will be read only. </member> <member name="prefix" type="String" setter="set_prefix" getter="get_prefix"> + Adds the specified [code]prefix[/code] string before the numerical value of the [SpinBox]. </member> <member name="suffix" type="String" setter="set_suffix" getter="get_suffix"> + Adds the specified [code]prefix[/code] string after the numerical value of the [SpinBox]. </member> </members> <constants> </constants> <theme_items> <theme_item name="updown" type="Texture"> + Sets a custom [Texture] for up and down arrows of the [SpinBox]. </theme_item> </theme_items> </class> diff --git a/doc/tools/makerst.py b/doc/tools/makerst.py index 454c71d3c7..763c29ab4e 100755 --- a/doc/tools/makerst.py +++ b/doc/tools/makerst.py @@ -37,12 +37,13 @@ class TypeName: class PropertyDef: - def __init__(self, name, type_name, setter, getter, text): # type: (str, TypeName, Optional[str], Optional[str], Optional[str]) -> None + def __init__(self, name, type_name, setter, getter, text, default_value): # type: (str, TypeName, Optional[str], Optional[str], Optional[str], Optional[str]) -> None self.name = name self.type_name = type_name self.setter = setter self.getter = getter self.text = text + self.default_value = default_value class ParameterDef: def __init__(self, name, type_name, default_value): # type: (str, TypeName, Optional[str]) -> None @@ -81,9 +82,10 @@ class EnumDef: class ThemeItemDef: - def __init__(self, name, type_name): # type: (str, TypeName) -> None + def __init__(self, name, type_name, default_value): # type: (str, TypeName, Optional[str]) -> None self.name = name self.type_name = type_name + self.default_value = default_value class ClassDef: @@ -144,8 +146,9 @@ class State: type_name = TypeName.from_element(property) setter = property.get("setter") or None # Use or None so '' gets turned into None. getter = property.get("getter") or None + default_value = property.get("default") or None - property_def = PropertyDef(property_name, type_name, setter, getter, property.text) + property_def = PropertyDef(property_name, type_name, setter, getter, property.text, default_value) class_def.properties[property_name] = property_def methods = class_root.find("methods") @@ -230,7 +233,8 @@ class State: assert theme_item.tag == "theme_item" theme_item_name = theme_item.attrib["name"] - theme_item_def = ThemeItemDef(theme_item_name, TypeName.from_element(theme_item)) + default_value = theme_item.get("default") or None + theme_item_def = ThemeItemDef(theme_item_name, TypeName.from_element(theme_item), default_value) if theme_item_name not in class_def.theme_items: class_def.theme_items[theme_item_name] = [] class_def.theme_items[theme_item_name].append(theme_item_def) @@ -400,8 +404,9 @@ def make_rst_class(class_def, state, dry_run, output_dir): # type: (ClassDef, S for property_def in class_def.properties.values(): type_rst = property_def.type_name.to_rst(state) ref = ":ref:`{0}<class_{1}_property_{0}>`".format(property_def.name, class_name) - ml.append((type_rst, ref)) - format_table(f, ml) + default = property_def.default_value + ml.append((type_rst, ref, default)) + format_table(f, ml, True) # Methods overview if len(class_def.methods) > 0: @@ -415,11 +420,11 @@ def make_rst_class(class_def, state, dry_run, output_dir): # type: (ClassDef, S # Theme properties if class_def.theme_items is not None and len(class_def.theme_items) > 0: f.write(make_heading('Theme Properties', '-')) - ml = [] + pl = [] for theme_item_list in class_def.theme_items.values(): for theme_item in theme_item_list: - ml.append((theme_item.type_name.to_rst(state), theme_item.name)) - format_table(f, ml) + pl.append((theme_item.type_name.to_rst(state), theme_item.name, theme_item.default_value)) + format_table(f, pl, True) # Signals if len(class_def.signals) > 0: @@ -488,14 +493,16 @@ def make_rst_class(class_def, state, dry_run, output_dir): # type: (ClassDef, S f.write(".. _class_{}_property_{}:\n\n".format(class_name, property_def.name)) f.write('- {} **{}**\n\n'.format(property_def.type_name.to_rst(state), property_def.name)) - setget = [] + info = [] + if property_def.default_value is not None: + info.append(("*Default*", property_def.default_value)) if property_def.setter is not None and not property_def.setter.startswith("_"): - setget.append(("*Setter*", property_def.setter + '(value)')) + info.append(("*Setter*", property_def.setter + '(value)')) if property_def.getter is not None and not property_def.getter.startswith("_"): - setget.append(('*Getter*', property_def.getter + '()')) + info.append(('*Getter*', property_def.getter + '()')) - if len(setget) > 0: - format_table(f, setget) + if len(info) > 0: + format_table(f, info) if property_def.text is not None and property_def.text.strip() != '': f.write(rstize_text(property_def.text.strip(), state)) @@ -873,33 +880,33 @@ def rstize_text(text, state): # type: (str, State) -> str return text -def format_table(f, pp): # type: (TextIO, Iterable[Tuple[str, ...]]) -> None - longest_t = 0 - longest_s = 0 - for s in pp: - sl = len(s[0]) - if sl > longest_s: - longest_s = sl - tl = len(s[1]) - if tl > longest_t: - longest_t = tl - - sep = "+" - for i in range(longest_s + 2): - sep += "-" - sep += "+" - for i in range(longest_t + 2): - sep += "-" +def format_table(f, data, remove_empty_columns=False): # type: (TextIO, Iterable[Tuple[str, ...]]) -> None + if len(data) == 0: + return + + column_sizes = [0] * len(data[0]) + for row in data: + for i, text in enumerate(row): + text_length = len(text or '') + if text_length > column_sizes[i]: + column_sizes[i] = text_length + + sep = "" + for size in column_sizes: + if size == 0 and remove_empty_columns: + continue + sep += "+" + "-" * (size + 2) sep += "+\n" f.write(sep) - for s in pp: - rt = s[0] - while len(rt) < longest_s: - rt += " " - st = s[1] - while len(st) < longest_t: - st += " " - f.write("| " + rt + " | " + st + " |\n") + + for row in data: + row_text = "|" + for i, text in enumerate(row): + if column_sizes[i] == 0 and remove_empty_columns: + continue + row_text += " " + (text or '').ljust(column_sizes[i]) + " |" + row_text += "\n" + f.write(row_text) f.write(sep) f.write('\n') |