diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/classes/AudioEffectAmplify.xml | 9 | ||||
-rw-r--r-- | doc/classes/AudioEffectCompressor.xml | 15 | ||||
-rw-r--r-- | doc/classes/AudioEffectDelay.xml | 16 | ||||
-rw-r--r-- | doc/classes/AudioEffectDistortion.xml | 13 | ||||
-rw-r--r-- | doc/classes/AudioEffectEQ.xml | 6 | ||||
-rw-r--r-- | doc/classes/AudioEffectEQ10.xml | 15 | ||||
-rw-r--r-- | doc/classes/AudioEffectEQ21.xml | 26 | ||||
-rw-r--r-- | doc/classes/AudioEffectEQ6.xml | 11 | ||||
-rw-r--r-- | doc/classes/AudioEffectLimiter.xml | 6 | ||||
-rw-r--r-- | doc/classes/AudioEffectPanner.xml | 3 | ||||
-rw-r--r-- | doc/classes/AudioEffectPhaser.xml | 8 | ||||
-rw-r--r-- | doc/classes/AudioEffectPitchShift.xml | 4 | ||||
-rw-r--r-- | doc/classes/AudioEffectReverb.xml | 11 | ||||
-rw-r--r-- | doc/classes/Control.xml | 137 | ||||
-rw-r--r-- | doc/classes/JSON.xml | 4 | ||||
-rw-r--r-- | doc/classes/JSONParseResult.xml | 14 | ||||
-rw-r--r-- | doc/tools/doc_status.py | 13 |
17 files changed, 267 insertions, 44 deletions
diff --git a/doc/classes/AudioEffectAmplify.xml b/doc/classes/AudioEffectAmplify.xml index 8497042b53..35d7991833 100644 --- a/doc/classes/AudioEffectAmplify.xml +++ b/doc/classes/AudioEffectAmplify.xml @@ -1,10 +1,11 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="AudioEffectAmplify" inherits="AudioEffect" category="Core" version="3.0.alpha.custom_build"> <brief_description> - Amplifies the volume of an audio source. + Adds a Amplify audio effect to an Audio bus. + Increases or decreases the volume of the selected audio bus. </brief_description> <description> - Amplifies the volume of an audio source. Increase gain of the audio being routed through the bus. + Increases or decreases the volume being routed through the audio bus. </description> <tutorials> </tutorials> @@ -15,7 +16,6 @@ <return type="float"> </return> <description> - Returns the set maximum volume. </description> </method> <method name="set_volume_db"> @@ -24,13 +24,12 @@ <argument index="0" name="volume" type="float"> </argument> <description> - Sets the maximum volume. </description> </method> </methods> <members> <member name="volume_db" type="float" setter="set_volume_db" getter="get_volume_db"> - The effect's volume limit. + Amount of amplification. Positive values make the sound louder, negative values make it quieter. Value can range from -80 to 24. Default value: [code]0[/code]. </member> </members> <constants> diff --git a/doc/classes/AudioEffectCompressor.xml b/doc/classes/AudioEffectCompressor.xml index 5a7a91ede0..9d7e25dbf2 100644 --- a/doc/classes/AudioEffectCompressor.xml +++ b/doc/classes/AudioEffectCompressor.xml @@ -1,8 +1,16 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="AudioEffectCompressor" inherits="AudioEffect" category="Core" version="3.0.alpha.custom_build"> <brief_description> + Adds a Compressor audio effect to an Audio bus. + Reduces sounds that exceed a certain threshold level, smooths out the dynamics and increases the overall volume. </brief_description> <description> + Dynamic range compressor reduces the level of the sound when the amplitude goes over a certain threshold in Decibels. One of the main uses of a compressor is to increase the dynamic range by clipping as little as possible (when sound goes over 0dB). + Compressor has many uses in the mix: + - In the Master bus to compress the whole output (Although a [AudioEffectLimiter] is probably better) + - In voice channels to ensure they sound as balanced as possible. + - Sidechained. Sidechained, which can reduce the sound level sidechained with another audio bus for threshold detection.. This technique is very common in video game mixing to download the level of Music/SFX while voices are being heard. + - Accentuates transients by using a wider attack, making effects sound more punchy. </description> <tutorials> </tutorials> @@ -110,18 +118,25 @@ </methods> <members> <member name="attack_us" type="float" setter="set_attack_us" getter="get_attack_us"> + Compressor's reaction time when the signal exceeds the threshold. Value can range from 20 to 2000. Default value: [code]20ms[/code]. </member> <member name="gain" type="float" setter="set_gain" getter="get_gain"> + Gain applied to the output signal. </member> <member name="mix" type="float" setter="set_mix" getter="get_mix"> + Balance between original signal and effect signal. Value can range from 0 (totally dry) to 1 (totally wet). Default value: [code]1[/code]. </member> <member name="ratio" type="float" setter="set_ratio" getter="get_ratio"> + Amount of compression applied to the audio once it passes the threshold level. The higher the ratio the more the loud parts of the audio will be compressed. Value can range from 1 to 48. Default value: [code]4[/code]. </member> <member name="release_ms" type="float" setter="set_release_ms" getter="get_release_ms"> + Compressor's delay time to stop reducing the signal after the signal level falls below the threshold. Value can range from 20 to 2000. Default value: [code]250ms[/code]. </member> <member name="sidechain" type="String" setter="set_sidechain" getter="get_sidechain"> + Reduce the sound level using another audio bus for threshold detection. </member> <member name="threshold" type="float" setter="set_threshold" getter="get_threshold"> + The level above which compression is applied to the audio. Value can range from -60 to 0. Default value: [code]0[/code]. </member> </members> <constants> diff --git a/doc/classes/AudioEffectDelay.xml b/doc/classes/AudioEffectDelay.xml index 8d317b3c46..9dc61883ab 100644 --- a/doc/classes/AudioEffectDelay.xml +++ b/doc/classes/AudioEffectDelay.xml @@ -1,8 +1,11 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="AudioEffectDelay" inherits="AudioEffect" category="Core" version="3.0.alpha.custom_build"> <brief_description> + Adds a Delay audio effect to an Audio bus. Plays input signal back after a period of time. + Two tap delay and feedback options. </brief_description> <description> + Plays input signal back after a period of time. The delayed signal may be played back multiple times to create the sound of a repeating, decaying echo. Delay effects range from a subtle echo effect to a pronounced blending of previous sounds with new sounds. </description> <tutorials> </tutorials> @@ -194,30 +197,43 @@ </methods> <members> <member name="dry" type="float" setter="set_dry" getter="get_dry"> + Output percent of original sound. At 0, only delayed sounds are output. Value can range from 0 to 1. Default value: [code]1[/code]. </member> <member name="feedback/active" type="bool" setter="set_feedback_active" getter="is_feedback_active"> + If [code]true[/code] feedback is enabled. Default value: [code]false[/code]. </member> <member name="feedback/delay_ms" type="float" setter="set_feedback_delay_ms" getter="get_feedback_delay_ms"> + Feedback delay time in milliseconds. Default value: [code]340[/code]. </member> <member name="feedback/level_db" type="float" setter="set_feedback_level_db" getter="get_feedback_level_db"> + Sound level for [code]tap1[/code]. Default value: [code]-6 dB[/code]. </member> <member name="feedback/lowpass" type="float" setter="set_feedback_lowpass" getter="get_feedback_lowpass"> + Low-pass filter for feedback. Frequencies below the Low Cut value are filtered out of the source signal. Default value: [code]16000[/code]. </member> <member name="tap1/active" type="bool" setter="set_tap1_active" getter="is_tap1_active"> + If [code]true[/code], [code]tap1[/code] will be enabled. Default value: [code]true[/code]. </member> <member name="tap1/delay_ms" type="float" setter="set_tap1_delay_ms" getter="get_tap1_delay_ms"> + [b]Tap1[/b] delay time in milliseconds. Default value: [code]250ms[/code]. </member> <member name="tap1/level_db" type="float" setter="set_tap1_level_db" getter="get_tap1_level_db"> + Sound level for [code]tap1[/code]. Default value: [code]-6 dB[/code]. </member> <member name="tap1/pan" type="float" setter="set_tap1_pan" getter="get_tap1_pan"> + Pan position for [code]tap1[/code]. Value can range from -1 (fully left) to 1 (fully right). Default value: [code]0.2[/code]. </member> <member name="tap2/active" type="bool" setter="set_tap2_active" getter="is_tap2_active"> + If [code]true[/code], [code]tap2[/code] will be enabled. Default value: [code]true[/code]. </member> <member name="tap2/delay_ms" type="float" setter="set_tap2_delay_ms" getter="get_tap2_delay_ms"> + [b]Tap2[/b] delay time in milliseconds. Default value: [code]500ms[/code]. </member> <member name="tap2/level_db" type="float" setter="set_tap2_level_db" getter="get_tap2_level_db"> + Sound level for [code]tap2[/code]. Default value: [code]-12 dB[/code]. </member> <member name="tap2/pan" type="float" setter="set_tap2_pan" getter="get_tap2_pan"> + Pan position for [code]tap2[/code]. Value can range from -1 (fully left) to 1 (fully right). Default value: [code]-0.4[/code]. </member> </members> <constants> diff --git a/doc/classes/AudioEffectDistortion.xml b/doc/classes/AudioEffectDistortion.xml index e5c5a3b50e..1a6aa1d2b6 100644 --- a/doc/classes/AudioEffectDistortion.xml +++ b/doc/classes/AudioEffectDistortion.xml @@ -1,8 +1,12 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="AudioEffectDistortion" inherits="AudioEffect" category="Core" version="3.0.alpha.custom_build"> <brief_description> + Adds a Distortion audio effect to an Audio bus. + Modify the sound to make it dirty. </brief_description> <description> + Modify the sound and make it dirty. Differents types available : clip, tan, lofi (bit crushing), overdrive, or waveshape. + By distorting the waveform the frequency content change, which will often make the sound "crunchy" or "abrasive". For games, it can simulate sound coming from some saturated device or speaker very efficiently. </description> <tutorials> </tutorials> @@ -82,26 +86,35 @@ </methods> <members> <member name="drive" type="float" setter="set_drive" getter="get_drive"> + Distortion power. Value can range from 0 to 1. Default value: [code]0[/code]. </member> <member name="keep_hf_hz" type="float" setter="set_keep_hf_hz" getter="get_keep_hf_hz"> + High-pass filter. Frequencies higher than this value will not be affected by the distortion. Value can range from 1 to 20000. Default value: [code]16000[/code]. </member> <member name="mode" type="int" setter="set_mode" getter="get_mode" enum="AudioEffectDistortion.Mode"> + Distortion type. Default value: [code]MODE_CLIP[/code]. </member> <member name="post_gain" type="float" setter="set_post_gain" getter="get_post_gain"> + Increases or decreases the volume after the effect. Value can range from -80 to 24. Default value: [code]0[/code]. </member> <member name="pre_gain" type="float" setter="set_pre_gain" getter="get_pre_gain"> + Increases or decreases the volume before the effect. Value can range from -60 to 60. Default value: [code]0[/code]. </member> </members> <constants> <constant name="MODE_CLIP" value="0"> + Digital distortion effect which cuts off peaks at the top and bottom of the waveform. </constant> <constant name="MODE_ATAN" value="1"> </constant> <constant name="MODE_LOFI" value="2"> + Low-resolution digital distortion effect. You can use it to emulate the sound of early digital audio devices. </constant> <constant name="MODE_OVERDRIVE" value="3"> + Emulates the warm distortion produced by a field effect transistor, which is commonly used in solid-state musical instrument amplifiers. </constant> <constant name="MODE_WAVESHAPE" value="4"> + Waveshaper distortions are used mainly by electronic musicians to achieve an extra-abrasive sound. </constant> </constants> </class> diff --git a/doc/classes/AudioEffectEQ.xml b/doc/classes/AudioEffectEQ.xml index 94d5c696c3..246f6b882e 100644 --- a/doc/classes/AudioEffectEQ.xml +++ b/doc/classes/AudioEffectEQ.xml @@ -1,8 +1,11 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="AudioEffectEQ" inherits="AudioEffect" category="Core" version="3.0.alpha.custom_build"> <brief_description> + Base class for audio equalizers. Gives you control over frequencies. + Use it to create a custom equalizer if [AudioEffectEQ6], [AudioEffectEQ10] or [AudioEffectEQ21] don't fit your needs. </brief_description> <description> + AudioEffectEQ gives you control over frequencies. Use it to compensate for existing deficiencies in audio. AudioEffectEQ are very useful on the Master Bus to completely master a mix and give it character. They are also very useful when a game is run on a mobile device, to adjust the mix to that kind of speakers (it can be added but disabled when headphones are plugged). </description> <tutorials> </tutorials> @@ -13,6 +16,7 @@ <return type="int"> </return> <description> + Returns the number of bands of the equalizer. </description> </method> <method name="get_band_gain_db" qualifiers="const"> @@ -21,6 +25,7 @@ <argument index="0" name="band_idx" type="int"> </argument> <description> + Returns the band's gain at the specified index, in dB. </description> </method> <method name="set_band_gain_db"> @@ -31,6 +36,7 @@ <argument index="1" name="volume_db" type="float"> </argument> <description> + Sets band's gain at the specified index, in dB. </description> </method> </methods> diff --git a/doc/classes/AudioEffectEQ10.xml b/doc/classes/AudioEffectEQ10.xml index 004236dfde..7a29f4cc0b 100644 --- a/doc/classes/AudioEffectEQ10.xml +++ b/doc/classes/AudioEffectEQ10.xml @@ -1,8 +1,23 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="AudioEffectEQ10" inherits="AudioEffectEQ" category="Core" version="3.0.alpha.custom_build"> <brief_description> + Adds a 10-band equalizer audio effect to an Audio bus. Gives you control over frequencies from 31 Hz to 16000 Hz. + Each frequency can be modulated between -60/+24 dB. </brief_description> <description> + Frequency bands : + Band 1 : 31 Hz + Band 2 : 62 Hz + Band 3 : 125 Hz + Band 4 : 250 Hz + Band 5 : 500 Hz + Band 6 : 1000 Hz + Band 7 : 2000 Hz + Band 8 : 4000 Hz + Band 9 : 8000 Hz + Band 10 : 16000 Hz + + See also [AudioEffectEQ], [AudioEffectEQ6], [AudioEffectEQ21]. </description> <tutorials> </tutorials> diff --git a/doc/classes/AudioEffectEQ21.xml b/doc/classes/AudioEffectEQ21.xml index e4faa9bb0c..327f5a291a 100644 --- a/doc/classes/AudioEffectEQ21.xml +++ b/doc/classes/AudioEffectEQ21.xml @@ -1,8 +1,34 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="AudioEffectEQ21" inherits="AudioEffectEQ" category="Core" version="3.0.alpha.custom_build"> <brief_description> + Adds a 21-band equalizer audio effect to an Audio bus. Gives you control over frequencies from 22 Hz to 22000 Hz. + Each frequency can be modulated between -60/+24 dB. </brief_description> <description> + Frequency bands : + Band 1 : 22 Hz + Band 2 : 32 Hz + Band 3 : 44 Hz + Band 4 : 63 Hz + Band 5 : 90 Hz + Band 6 : 125 Hz + Band 7 : 175 Hz + Band 8 : 250 Hz + Band 9 : 350 Hz + Band 10 : 500 Hz + Band 11 : 700 Hz + Band 12 : 1000 Hz + Band 13 : 1400 Hz + Band 14 : 2000 Hz + Band 15 : 2800 Hz + Band 16 : 4000 Hz + Band 17 : 5600 Hz + Band 18 : 8000 Hz + Band 19 : 11000 Hz + Band 20 : 16000 Hz + Band 21 : 22000 Hz + + See also [AudioEffectEQ], [AudioEffectEQ6], [AudioEffectEQ10]. </description> <tutorials> </tutorials> diff --git a/doc/classes/AudioEffectEQ6.xml b/doc/classes/AudioEffectEQ6.xml index b74cc5d285..bc05535041 100644 --- a/doc/classes/AudioEffectEQ6.xml +++ b/doc/classes/AudioEffectEQ6.xml @@ -1,8 +1,19 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="AudioEffectEQ6" inherits="AudioEffectEQ" category="Core" version="3.0.alpha.custom_build"> <brief_description> + Adds a 6-band equalizer audio effect to an Audio bus. Gives you control over frequencies from 32 Hz to 10000 Hz. + Each frequency can be modulated between -60/+24 dB. </brief_description> <description> + Frequency bands : + Band 1 : 32 Hz + Band 2 : 100 Hz + Band 3 : 320 Hz + Band 4 : 1000 Hz + Band 5 : 3200 Hz + Band 6 : 10000 Hz + + See also [AudioEffectEQ], [AudioEffectEQ10], [AudioEffectEQ21]. </description> <tutorials> </tutorials> diff --git a/doc/classes/AudioEffectLimiter.xml b/doc/classes/AudioEffectLimiter.xml index e52fb57c70..5209f290b1 100644 --- a/doc/classes/AudioEffectLimiter.xml +++ b/doc/classes/AudioEffectLimiter.xml @@ -1,8 +1,11 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="AudioEffectLimiter" inherits="AudioEffect" category="Core" version="3.0.alpha.custom_build"> <brief_description> + Adds a soft clip Limiter audio effect to an Audio bus. </brief_description> <description> + A limiter is similar to a compressor, but it’s less flexible and designed to disallow sound going over a given dB threshold. Adding one in the Master Bus is always recommended to reduce the effects of clipping. + Soft clipping starts to reduce the peaks a little below the threshold level and progressively increases its effect as the input level increases such that the threshold is never exceeded. </description> <tutorials> </tutorials> @@ -68,12 +71,15 @@ </methods> <members> <member name="ceiling_db" type="float" setter="set_ceiling_db" getter="get_ceiling_db"> + The waveform's maximum allowed value. Value can range from -20 to -0.1. Default value: [code]-0.1dB[/code]. </member> <member name="soft_clip_db" type="float" setter="set_soft_clip_db" getter="get_soft_clip_db"> + Applies a gain to the limited waves. Value can range from 0 to 6. Default value: [code]2dB[/code]. </member> <member name="soft_clip_ratio" type="float" setter="set_soft_clip_ratio" getter="get_soft_clip_ratio"> </member> <member name="threshold_db" type="float" setter="set_threshold_db" getter="get_threshold_db"> + Threshold from which the limiter begins to be active. Value can range from -30 to 0. Default value: [code]0dB[/code]. </member> </members> <constants> diff --git a/doc/classes/AudioEffectPanner.xml b/doc/classes/AudioEffectPanner.xml index b55d7f91c1..56b39a36c6 100644 --- a/doc/classes/AudioEffectPanner.xml +++ b/doc/classes/AudioEffectPanner.xml @@ -1,8 +1,10 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="AudioEffectPanner" inherits="AudioEffect" category="Core" version="3.0.alpha.custom_build"> <brief_description> + Adds a Panner audio effect to an Audio bus. Pans sound left or right. </brief_description> <description> + Determines how much of an audio signal is sent to the left and right buses. </description> <tutorials> </tutorials> @@ -26,6 +28,7 @@ </methods> <members> <member name="pan" type="float" setter="set_pan" getter="get_pan"> + Pan position. Value can range from -1 (fully left) to 1 (fully right). </member> </members> <constants> diff --git a/doc/classes/AudioEffectPhaser.xml b/doc/classes/AudioEffectPhaser.xml index 7e9cd27a47..bd9067471b 100644 --- a/doc/classes/AudioEffectPhaser.xml +++ b/doc/classes/AudioEffectPhaser.xml @@ -1,8 +1,11 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="AudioEffectPhaser" inherits="AudioEffect" category="Core" version="3.0.alpha.custom_build"> <brief_description> + Adds a Phaser audio effect to an Audio bus. + Combines the original signal with a copy that is slightly out of phase with the original. </brief_description> <description> + Combines phase-shifted signals with the original signal. The movement of the phase-shifted signals is controlled using a Low Frequency Oscillator. </description> <tutorials> </tutorials> @@ -82,14 +85,19 @@ </methods> <members> <member name="depth" type="float" setter="set_depth" getter="get_depth"> + Governs how high the filter frequencies sweep. Low value will primarily affect bass frequencies. High value can sweep high into the treble. Value can range from 0.1 to 4. Default value: [code]1[/code]. </member> <member name="feedback" type="float" setter="set_feedback" getter="get_feedback"> + Output percent of modified sound. Value can range from 0.1 to 0.9. Default value: [code]0.7[/code]. </member> <member name="range_max_hz" type="float" setter="set_range_max_hz" getter="get_range_max_hz"> + Determines the maximum frequency affected by the LFO modulations. Value can range from 10 to 10000. Default value: [code]1600hz[/code]. </member> <member name="range_min_hz" type="float" setter="set_range_min_hz" getter="get_range_min_hz"> + Determines the minimum frequency affected by the LFO modulations. Value can range from 10 to 10000. Default value: [code]440hz[/code]. </member> <member name="rate_hz" type="float" setter="set_rate_hz" getter="get_rate_hz"> + Adjusts the rate at which the effect sweeps up and down across the frequency range. </member> </members> <constants> diff --git a/doc/classes/AudioEffectPitchShift.xml b/doc/classes/AudioEffectPitchShift.xml index 6fc3acdc20..edcb54e09e 100644 --- a/doc/classes/AudioEffectPitchShift.xml +++ b/doc/classes/AudioEffectPitchShift.xml @@ -1,8 +1,11 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="AudioEffectPitchShift" inherits="AudioEffect" category="Core" version="3.0.alpha.custom_build"> <brief_description> + Adds a Pitch shift audio effect to an Audio bus. + Raises or lowers the pitch of original sound. </brief_description> <description> + Allows modulation of pitch independently of tempo. All frequencies can be increased/decreased with minimal effect on transients. </description> <tutorials> </tutorials> @@ -26,6 +29,7 @@ </methods> <members> <member name="pitch_scale" type="float" setter="set_pitch_scale" getter="get_pitch_scale"> + Pitch value. Can range from 0 (-1 octave) to 16 (+16 octaves). </member> </members> <constants> diff --git a/doc/classes/AudioEffectReverb.xml b/doc/classes/AudioEffectReverb.xml index b390fa239c..4cda24530b 100644 --- a/doc/classes/AudioEffectReverb.xml +++ b/doc/classes/AudioEffectReverb.xml @@ -1,8 +1,11 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="AudioEffectReverb" inherits="AudioEffect" category="Core" version="3.0.alpha.custom_build"> <brief_description> + Adds a Reverb audio effect to an Audio bus. + Simulates the sound of acoustic environments such as rooms, concert halls, caverns, or an open spaces. </brief_description> <description> + Simulates rooms of different sizes. Its parameters can be adjusted to simulate the sound of a specific room. </description> <tutorials> </tutorials> @@ -124,20 +127,28 @@ </methods> <members> <member name="damping" type="float" setter="set_damping" getter="get_damping"> + Widens or narrows the stereo image of the reverb tail. 1 means fully widens. Value can range from 0 to 1. Default value: [code]1[/code]. </member> <member name="dry" type="float" setter="set_dry" getter="get_dry"> + Output percent of original sound. At 0, only modified sound is outputted. Value can range from 0 to 1. Default value: [code]1[/code]. </member> <member name="hipass" type="float" setter="set_hpf" getter="get_hpf"> + High-pass filter passes signals with a frequency higher than a certain cutoff frequency and attenuates signals with frequencies lower than the cutoff frequency. Value can range from 0 to 1. Default value: [code]0[/code]. </member> <member name="predelay_feedback" type="float" setter="set_predelay_msec" getter="get_predelay_msec"> + Output percent of predelay. Value can range from 0 to 1. Default value: [code]1[/code]. </member> <member name="predelay_msec" type="float" setter="set_predelay_msec" getter="get_predelay_msec"> + Time between the original signal and the early reflections of the reverb signal. Default value: [code]150ms[/code]. </member> <member name="room_size" type="float" setter="set_room_size" getter="get_room_size"> + Dimensions of simulated room. Bigger means more echoes. Value can range from 0 to 1. Default value: [code]0.8[/code]. </member> <member name="spread" type="float" setter="set_spread" getter="get_spread"> + Defines how reflective the imaginary room's walls are. Value can range from 0 to 1. Default value: [code]1[/code]. </member> <member name="wet" type="float" setter="set_wet" getter="get_wet"> + Output percent of modified sound. At 0, only original sound is outputted. Value can range from 0 to 1. Default value: [code]0.5[/code]. </member> </members> <constants> diff --git a/doc/classes/Control.xml b/doc/classes/Control.xml index 59c3bd30c7..b3bdd1d6c2 100644 --- a/doc/classes/Control.xml +++ b/doc/classes/Control.xml @@ -1,16 +1,16 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="Control" inherits="CanvasItem" category="Core" version="3.0.alpha.custom_build"> <brief_description> - Base node for all User Interface components. + All User Interface nodes inherit from Control. Features anchors and margins to adapt its position and size to its parent. </brief_description> <description> - The base class Node for all User Interface components. Every UI node inherits from it. Any scene or portion of a scene tree composed of Control nodes is a User Interface. - Controls use anchors and margins to place themselves relative to their parent. They adapt automatically when their parent or the screen size changes. To build flexible UIs, use built-in [Container] nodes or create your own. - Anchors work by defining which margin do they follow, and a value relative to it. Allowed anchoring modes are ANCHOR_BEGIN, where the margin is relative to the top or left margins of the parent (in pixels), ANCHOR_END for the right and bottom margins of the parent and ANCHOR_RATIO, which is a ratio from 0 to 1 in the parent range. - Godot sends Input events to the root node first, via [method Node._input]. The method distributes it through the node tree and delivers the input events to the node under the mouse cursor or on focus with the keyboard. To do so, it calls [method MainLoop._input_event]. No need to enable [method Node.set_process_input] on Controls to receive input events. Call [method accept_event] to ensure no other node receives the event, not even [method Node._unhandled_input]. - Only the one Control node in focus receives keyboard events. To do so, the Control must get the focus mode with [method set_focus_mode]. It loses focus when another Control gets it, or if the current Control in focus is hidden. - You'll sometimes want Controls to ignore mouse or touch events. For example, if you place an icon on top of a button. Call [method set_ignore_mouse] for that. - [Theme] resources change the Control's appearance. If you change the [Theme] on a parent Control node, it will propagate to all of its children. You can override parts of the theme on each Control with the add_*_override methods, like [method add_font_override]. You can also override the theme from the editor. + Base class for all User Interface or [i]UI[/i] related nodes. [code]Control[/code] features a bounding rectangle that defines its extents, an anchor position relative to its parent and margins that represent an offset to the anchor. The margins update automatically when the node, any of its parents, or the screen size change. + For more information on Godot's UI system, anchors, margins, and containers, see the related tutorials in the manual. To build flexible UIs, you'll need a mix of UI elements that inherit from [code]Control[/code] and [Container] nodes. + [b]User Interface nodes and input[/b] + Godot sends input events to the scene's root node first, by calling [method Node._input]. [method Node._input] forwards the event down the node tree to the nodes under the mouse cursor, or on keyboard focus. To do so, it calls [method MainLoop._input_event]. Call [method accept_event] so no other node receives the event. Once you accepted an input, it becomes handled so [method Node._unhandled_input] will not process it. + Only one [code]Control[/code] node can be in keyboard focus. Only the node in focus will receive keyboard events. To get the foucs, call [method set_focus_mode]. [code]Control[/code] nodes lose focus when another node grabs it, or if you hide the node in focus. + Call [method set_ignore_mouse] to tell a [code]Control[/code] node to ignore mouse or touch events. You'll need it if you place an icon on top of a button. + [Theme] resources change the Control's appearance. If you change the [Theme] on a [code]Control[/code] node, it affects all of its children. To override some of the theme's parameters, call one of the [code]add_*_override[/code] methods, like [method add_font_override]. You can override the theme with the inspector. </description> <tutorials> </tutorials> @@ -21,7 +21,7 @@ <return type="Vector2"> </return> <description> - Returns the minimum size this Control can shrink to. A control will never be displayed or resized smaller than its minimum size. + Returns the minimum size this Control can shrink to. The node can never be smaller than this minimum size. </description> </method> <method name="_gui_input" qualifiers="virtual"> @@ -30,13 +30,15 @@ <argument index="0" name="event" type="InputEvent"> </argument> <description> + The node's parent forwards input events to this method. Use it to process and accept inputs on UI elements. See [method accept_event]. + Replaces Godot 2's [code]_input_event[/code]. </description> </method> <method name="accept_event"> <return type="void"> </return> <description> - Marks the input event as handled. No other Control will receive it, and the input event will not propagate. Not even to nodes listening to [method Node._unhandled_input] or [method Node._unhandled_key_input]. + Marks an input event as handled. Once you accept an input event, it stops propagating, even to nodes listening to [method Node._unhandled_input] or [method Node._unhandled_key_input]. </description> </method> <method name="add_color_override"> @@ -47,6 +49,7 @@ <argument index="1" name="color" type="Color"> </argument> <description> + Overrides the color in the [theme] resource the node uses. </description> </method> <method name="add_constant_override"> @@ -57,7 +60,7 @@ <argument index="1" name="constant" type="int"> </argument> <description> - Override a single constant (integer) in the theme of this Control. If constant equals Theme.INVALID_CONSTANT, override is cleared. + Overrides an integer constant in the [theme] resource the node uses. If the [code]constant[code] is invalid, Godot clears the override. See [member Theme.INVALID_CONSTANT] for more information. </description> </method> <method name="add_font_override"> @@ -68,7 +71,7 @@ <argument index="1" name="font" type="Font"> </argument> <description> - Override a single font (font) in the theme of this Control. If font is empty, override is cleared. + Overrides the [code]name[/code] font in the [theme] resource the node uses. If [code]font[/code] is empty, Godot clears the override. </description> </method> <method name="add_icon_override"> @@ -79,7 +82,7 @@ <argument index="1" name="texture" type="Texture"> </argument> <description> - Override a single icon ([Texture]) in the theme of this Control. If texture is empty, override is cleared. + Overrides the [code]name[/code] icon in the [theme] resource the node uses. If [code]icon[/code] is empty, Godot clears the override. </description> </method> <method name="add_shader_override"> @@ -90,6 +93,7 @@ <argument index="1" name="shader" type="Shader"> </argument> <description> + Overrides the [code]name[/code] shader in the [theme] resource the node uses. If [code]shader[/code] is empty, Godot clears the override. </description> </method> <method name="add_style_override"> @@ -100,7 +104,7 @@ <argument index="1" name="stylebox" type="StyleBox"> </argument> <description> - Override a single stylebox ([Stylebox]) in the theme of this Control. If stylebox is empty, override is cleared. + Overrides the [code]name[/code] [Stylebox] in the [theme] resource the node uses. If [code]stylebox[/code] is empty, Godot clears the override. </description> </method> <method name="can_drop_data" qualifiers="virtual"> @@ -180,7 +184,7 @@ <argument index="0" name="position" type="Vector2" default="Vector2( 0, 0 )"> </argument> <description> - Return the cursor shape at a certain position in the control. + Returns the mouse cursor shape the control displays on mouse hover, one of the [code]CURSOR_*[/code] constants. </description> </method> <method name="get_custom_minimum_size" qualifiers="const"> @@ -193,7 +197,7 @@ <return type="int" enum="Control.CursorShape"> </return> <description> - Return the default cursor shape for this control. See enum CURSOR_* for the list of shapes. + Returns the default cursor shape for this control. See enum [code]CURSOR_*[/code] for the list of shapes. </description> </method> <method name="get_drag_data" qualifiers="virtual"> @@ -624,7 +628,7 @@ <argument index="0" name="shape" type="int" enum="Control.CursorShape"> </argument> <description> - Set the default cursor shape for this control. See enum CURSOR_* for the list of shapes. + Sets the default cursor shape for this control. See [code]CURSOR_*[/code] for the list of available cursor shapes. Useful for Godot plugins and applications or games that use the system's mouse cursors. </description> </method> <method name="set_drag_forwarding"> @@ -785,7 +789,7 @@ <argument index="0" name="theme" type="Theme"> </argument> <description> - Override whole the [Theme] for this Control and all its children controls. + Overrides the whole [Theme] for this node and all its [code]Control[/code] children. </description> </method> <method name="set_tooltip"> @@ -794,7 +798,7 @@ <argument index="0" name="tooltip" type="String"> </argument> <description> - Set a tooltip, which will appear when the cursor is resting over this control. + Changes the tooltip text. The tooltip appears when the user's mouse cursor stays idle over this control for a few moments. </description> </method> <method name="set_v_grow_direction"> @@ -834,58 +838,83 @@ </methods> <members> <member name="anchor_bottom" type="float" setter="_set_anchor" getter="get_anchor"> + Anchors the bottom edge of the node to the origin, the center, or the end of its parent container. It changes how the bottom margin updates when the node moves or changes size. Use one of the [code]ANCHOR_*[/code] constants. Default value: [code]ANCHOR_BEGIN[/code]. </member> <member name="anchor_left" type="float" setter="_set_anchor" getter="get_anchor"> + Anchors the left edge of the node to the origin, the center or the end of its parent container. It changes how the left margin updates when the node moves or changes size. Use one of the [code]ANCHOR_*[/code] constants. Default value: [code]ANCHOR_BEGIN[/code]. </member> <member name="anchor_right" type="float" setter="_set_anchor" getter="get_anchor"> + Anchors the right edge of the node to the origin, the center or the end of its parent container. It changes how the right margin updates when the node moves or changes size. Use one of the [code]ANCHOR_*[/code] constants. Default value: [code]ANCHOR_BEGIN[/code]. </member> <member name="anchor_top" type="float" setter="_set_anchor" getter="get_anchor"> + Anchors the top edge of the node to the origin, the center or the end of its parent container. It changes how the top margin updates when the node moves or changes size. Use one of the [code]ANCHOR_*[/code] constants. Default value: [code]ANCHOR_BEGIN[/code]. </member> <member name="focus_neighbour_bottom" type="NodePath" setter="set_focus_neighbour" getter="get_focus_neighbour"> + Tells Godot which node it should give keyboard focus to if the user presses Tab, the down arrow on the keyboard, or down on a gamepad. The node must be a [code]Control[/code]. If this property is not set, Godot will give focus to the closest [code]Control[/code] to the bottom of this one. + If the user presses Tab, Godot will give focus to the closest node to the right first, then to the bottom. If the user presses Shift+Tab, Godot will look to the left of the node, then above it. </member> <member name="focus_neighbour_left" type="NodePath" setter="set_focus_neighbour" getter="get_focus_neighbour"> + Tells Godot which node it should give keyboard focus to if the user presses Shift+Tab, the left arrow on the keyboard or left on a gamepad. The node must be a [code]Control[/code]. If this property is not set, Godot will give focus to the closest [code]Control[/code] to the left of this one. </member> <member name="focus_neighbour_right" type="NodePath" setter="set_focus_neighbour" getter="get_focus_neighbour"> + Tells Godot which node it should give keyboard focus to if the user presses Tab, the right arrow on the keyboard or right on a gamepad. The node must be a [code]Control[/code]. If this property is not set, Godot will give focus to the closest [code]Control[/code] to the bottom of this one. </member> <member name="focus_neighbour_top" type="NodePath" setter="set_focus_neighbour" getter="get_focus_neighbour"> + Tells Godot which node it should give keyboard focus to if the user presses Shift+Tab, the top arrow on the keyboard or top on a gamepad. The node must be a [code]Control[/code]. If this property is not set, Godot will give focus to the closest [code]Control[/code] to the bottom of this one. </member> <member name="grow_horizontal" type="int" setter="set_h_grow_direction" getter="get_h_grow_direction" enum="Control.GrowDirection"> </member> <member name="grow_vertical" type="int" setter="set_v_grow_direction" getter="get_v_grow_direction" enum="Control.GrowDirection"> </member> <member name="hint_tooltip" type="String" setter="set_tooltip" getter="_get_tooltip"> + Changes the tooltip text. The tooltip appears when the user's mouse cursor stays idle over this control for a few moments. </member> <member name="margin_bottom" type="float" setter="set_margin" getter="get_margin"> + Distance between the node's bottom edge and its parent container, based on [member anchor_bottom]. + Margins are often controlled by one or multiple parent [Container] nodes. Margins update automatically when you move or resize the node. </member> <member name="margin_left" type="float" setter="set_margin" getter="get_margin"> + Distance between the node's left edge and its parent container, based on [member anchor_left]. </member> <member name="margin_right" type="float" setter="set_margin" getter="get_margin"> + Distance between the node's right edge and its parent container, based on [member anchor_right]. </member> <member name="margin_top" type="float" setter="set_margin" getter="get_margin"> + Distance between the node's top edge and its parent container, based on [member anchor_top]. </member> <member name="mouse_filter" type="int" setter="set_mouse_filter" getter="get_mouse_filter" enum="Control.MouseFilter"> </member> <member name="rect_clip_content" type="bool" setter="set_clip_contents" getter="is_clipping_contents"> </member> <member name="rect_min_size" type="Vector2" setter="set_custom_minimum_size" getter="get_custom_minimum_size"> + The minimum size of the node's bounding rectangle. If you set it to a value greater than (0, 0), the node's bounding rectangle will always have at least this size, even if its content is smaller. If it's set to (0, 0), the node sizes automatically to fit its content, be it a texture or child nodes. </member> <member name="rect_pivot_offset" type="Vector2" setter="set_pivot_offset" getter="get_pivot_offset"> + By default, the node's pivot is its top-left corner. When you change its [member rect_scale], it will scale around this pivot. Set this property to [member rect_size] / 2 to center the pivot in the node's rectangle. </member> <member name="rect_position" type="Vector2" setter="set_position" getter="get_position"> + The node's position, relative to its parent. It corresponds to the rectangle's top-left corner. The property is not affected by [member rect_pivot_offset]. </member> <member name="rect_rotation" type="float" setter="set_rotation_deg" getter="get_rotation_deg"> + The node's rotation around its pivot, in degrees. See [member rect_pivot_offset] to change the pivot's position. </member> <member name="rect_scale" type="Vector2" setter="set_scale" getter="get_scale"> + The node's scale, relative to its [member rect_size]. Change this property to scale the node around its [member rect_pivot_offset]. </member> <member name="rect_size" type="Vector2" setter="set_size" getter="get_size"> + The size of the node's bounding rectangle, in pixels. [Container] nodes update this property automatically. </member> <member name="size_flags_horizontal" type="int" setter="set_h_size_flags" getter="get_h_size_flags"> + Tells the parent [Container] nodes how they should resize and place the node on the X axis. Use one of the [code]SIZE_*[/code] constants to change the flags. See the constants to learn what each does. </member> <member name="size_flags_stretch_ratio" type="float" setter="set_stretch_ratio" getter="get_stretch_ratio"> + If the node and at least one of its neighbours uses the [code]SIZE_EXPAND[/code] size flag, the parent [Container] will let it take more or less space depending on this property. If this node has a stretch ratio of 2 and its neighbour a ratio of 1, this node will take two thirds of the available space. </member> <member name="size_flags_vertical" type="int" setter="set_v_size_flags" getter="get_v_size_flags"> + Tells the parent [Container] nodes how they should resize and place the node on the Y axis. Use one of the [code]SIZE_*[/code] constants to change the flags. See the constants to learn what each does. </member> <member name="theme" type="Theme" setter="set_theme" getter="get_theme"> + Changing this property replaces the current [Theme] resource this node and all its [code]Control[/code] children use. </member> </members> <signals> @@ -903,6 +932,7 @@ <argument index="0" name="ev" type="Object"> </argument> <description> + Emitted when the node receives an [InputEvent]. </description> </signal> <signal name="minimum_size_changed"> @@ -912,16 +942,17 @@ </signal> <signal name="modal_closed"> <description> + Emitted when a modal [code]Control[/code] is closed. See [method show_modal]. </description> </signal> <signal name="mouse_entered"> <description> - Emitted when the mouse enters the control's area. + Emitted when the mouse enters the control's [code]Rect[/code] area. </description> </signal> <signal name="mouse_exited"> <description> - Emitted when the mouse leaves the control's area. + Emitted when the mouse leaves the control's [code]Rect[/code] area. </description> </signal> <signal name="resized"> @@ -931,116 +962,154 @@ </signal> <signal name="size_flags_changed"> <description> - Emitted when the size flags change. + Emitted when one of the size flags changes. See [member size_flags_horizontal] and [member size_flags_vertical]. </description> </signal> </signals> <constants> <constant name="FOCUS_NONE" value="0"> - Control can't acquire focus. + The node cannot grab focus. Use with [member set_focus_mode]. </constant> <constant name="FOCUS_CLICK" value="1"> - Control can acquire focus only if clicked. + The node can only grab focus on mouse clicks. Use with [member set_focus_mode]. </constant> <constant name="FOCUS_ALL" value="2"> - Control can acquire focus if clicked, or by pressing TAB/Directionals in the keyboard from another Control. + The node can grab focus on mouse click or using the arrows and the Tab keys on the keyboard. Use with [member set_focus_mode]. </constant> <constant name="NOTIFICATION_RESIZED" value="40" enum=""> - Control changed size (get_size() reports the new size). + Sent when the node changes size. Use [member rect_size] to get the new size. </constant> <constant name="NOTIFICATION_MOUSE_ENTER" value="41" enum=""> - Mouse pointer entered the area of the Control. + Sent when the mouse pointer enters the node's [code]Rect[/code] area. </constant> <constant name="NOTIFICATION_MOUSE_EXIT" value="42" enum=""> - Mouse pointer exited the area of the Control. + Sent when the mouse pointer exits the node's [code]Rect[/code] area. </constant> <constant name="NOTIFICATION_FOCUS_ENTER" value="43" enum=""> - Control gained focus. + Sent when the node grabs focus. </constant> <constant name="NOTIFICATION_FOCUS_EXIT" value="44" enum=""> - Control lost focus. + Sent when the node loses focus. </constant> <constant name="NOTIFICATION_THEME_CHANGED" value="45" enum=""> - Theme changed. Redrawing is desired. + Sent when the node's [member theme] changes, right before Godot redraws the [code]Control[/code]. Happens when you call one of the [code]add_*_override[/code] </constant> <constant name="NOTIFICATION_MODAL_CLOSE" value="46" enum=""> - Modal control was closed. + Sent when an open modal dialog closes. See [member show_modal]. </constant> <constant name="CURSOR_ARROW" value="0"> + Show the system's arrow mouse cursor when the user hovers the node. Use with [method set_default_cursor_shape]. </constant> <constant name="CURSOR_IBEAM" value="1"> + Show the system's I-beam mouse cursor when the user hovers the node. The I-beam pointer has a shape similar to "I". It tells the user they can highlight or insert text. </constant> <constant name="CURSOR_POINTING_HAND" value="2"> + Show the system's pointing hand mouse cursor when the user hovers the node. </constant> <constant name="CURSOR_CROSS" value="3"> + Show the system's cross mouse cursor when the user hovers the node. </constant> <constant name="CURSOR_WAIT" value="4"> + Show the system's wait mouse cursor, often an hourglass, when the user hovers the node. </constant> <constant name="CURSOR_BUSY" value="5"> + Show the system's busy mouse cursor when the user hovers the node. Often an hourglass. </constant> <constant name="CURSOR_DRAG" value="6"> + Show the system's drag mouse cursor, often a closed fist or a cross symbol, when the user hovers the node. It tells the user they're currently dragging an item, like a node in the Scene dock. </constant> <constant name="CURSOR_CAN_DROP" value="7"> + Show the system's drop mouse cursor when the user hovers the node. It can be an open hand. It tells the user they can drop an item they're currently grabbing, like a node in the Scene dock. </constant> <constant name="CURSOR_FORBIDDEN" value="8"> + Show the system's forbidden mouse cursor when the user hovers the node. Often a crossed circle. </constant> <constant name="CURSOR_VSIZE" value="9"> + Show the system's vertical resize mouse cursor when the user hovers the node. A double headed vertical arrow. It tells the user they can resize the window or the panel vertically. </constant> <constant name="CURSOR_HSIZE" value="10"> + Show the system's horizontal resize mouse cursor when the user hovers the node. A double headed horizontal arrow. It tells the user they can resize the window or the panel horizontally. </constant> <constant name="CURSOR_BDIAGSIZE" value="11"> + Show the system's window resize mouse cursor when the user hovers the node. The cursor is a double headed arrow that goes from the bottom left to the top right. It tells the user they can resize the window or the panel both horizontally and vertically. </constant> <constant name="CURSOR_FDIAGSIZE" value="12"> + Show the system's window resize mouse cursor when the user hovers the node. The cursor is a double headed arrow that goes from the top left to the bottom right, the opposite of [code]CURSOR_BDIAGSIZE[/code]. It tells the user they can resize the window or the panel both horizontally and vertically. </constant> <constant name="CURSOR_MOVE" value="13"> + Show the system's move mouse cursor when the user hovers the node. It shows 2 double-headed arrows at a 90 degree angle. It tells the user they can move a UI element freely. </constant> <constant name="CURSOR_VSPLIT" value="14"> + Show the system's vertical split mouse cursor when the user hovers the node. On Windows, it's the same as [code]CURSOR_VSIZE[/code]. </constant> <constant name="CURSOR_HSPLIT" value="15"> + Show the system's horizontal split mouse cursor when the user hovers the node. On Windows, it's the same as [code]CURSOR_HSIZE[/code]. </constant> <constant name="CURSOR_HELP" value="16"> + Show the system's help mouse cursor when the user hovers the node, a question mark. </constant> <constant name="PRESET_TOP_LEFT" value="0"> + Snap all 4 anchors to the top-left of the parent container's bounds. Use with [method set_anchors_preset]. </constant> <constant name="PRESET_TOP_RIGHT" value="1"> + Snap all 4 anchors to the top-right of the parent container's bounds. Use with [method set_anchors_preset]. </constant> <constant name="PRESET_BOTTOM_LEFT" value="2"> + Snap all 4 anchors to the bottom-left of the parent container's bounds. Use with [method set_anchors_preset]. </constant> <constant name="PRESET_BOTTOM_RIGHT" value="3"> + Snap all 4 anchors to the bottom-right of the parent container's bounds. Use with [method set_anchors_preset]. </constant> <constant name="PRESET_CENTER_LEFT" value="4"> + Snap all 4 anchors to the center of the left edge of the parent container's bounds. Use with [method set_anchors_preset]. </constant> <constant name="PRESET_CENTER_TOP" value="5"> + Snap all 4 anchors to the center of the top edge of the parent container's bounds. Use with [method set_anchors_preset]. </constant> <constant name="PRESET_CENTER_RIGHT" value="6"> + Snap all 4 anchors to the center of the right edge of the parent container's bounds. Use with [method set_anchors_preset]. </constant> <constant name="PRESET_CENTER_BOTTOM" value="7"> + Snap all 4 anchors to the center of the bottom edge of the parent container's bounds. Use with [method set_anchors_preset]. </constant> <constant name="PRESET_CENTER" value="8"> + Snap all 4 anchors to the center of the parent container's bounds. Use with [method set_anchors_preset]. </constant> <constant name="PRESET_LEFT_WIDE" value="9"> + Snap all 4 anchors to the left edge of the parent container. The left margin becomes relative to the left edge and the top margin relative to the top left corner of the node's parent. Use with [method set_anchors_preset]. </constant> <constant name="PRESET_TOP_WIDE" value="10"> + Snap all 4 anchors to the top edge of the parent container. The left margin becomes relative to the top left corner, the top margin relative to the top edge, and the right margin relative to the top right corner of the node's parent. Use with [method set_anchors_preset]. </constant> <constant name="PRESET_RIGHT_WIDE" value="11"> + Snap all 4 anchors to the right edge of the parent container. The right margin becomes relative to the right edge and the top margin relative to the top right corner of the node's parent. Use with [method set_anchors_preset]. </constant> <constant name="PRESET_BOTTOM_WIDE" value="12"> + Snap all 4 anchors to the bottom edge of the parent container. The left margin becomes relative to the bottom left corner, the bottom margin relative to the bottom edge, and the right margin relative to the bottom right corner of the node's parent. Use with [method set_anchors_preset]. </constant> <constant name="PRESET_VCENTER_WIDE" value="13"> + Snap all 4 anchors to a vertical line that cuts the parent container in half. Use with [method set_anchors_preset]. </constant> <constant name="PRESET_HCENTER_WIDE" value="14"> + Snap all 4 anchors to a horizontal line that cuts the parent container in half. Use with [method set_anchors_preset]. </constant> <constant name="PRESET_WIDE" value="15"> + Snap all 4 anchors to the respective corners of the parent container. Set all 4 margins to 0 after you applied this preset and the [code]Control[/code] will fit its parent container. Use with [method set_anchors_preset]. </constant> <constant name="SIZE_EXPAND" value="2"> + Tells the parent [Container] to let this node take all the available space on the axis you flag. If multiple neighboring nodes are set to expand, they'll share the space based on their stretch ratio. See [member size_flags_stretch_ratio]. Use with [member size_flags_horizontal] and [member size_flags_vertical]. </constant> <constant name="SIZE_FILL" value="1"> + Tells the parent [Container] to expand the bounds of this node to fill all the available space without pushing any other node. Use with [member size_flags_horizontal] and [member size_flags_vertical]. </constant> <constant name="SIZE_EXPAND_FILL" value="3"> + Sets the node's size flags to both fill and expand. See the 2 constants above for more information. </constant> <constant name="SIZE_SHRINK_CENTER" value="4"> + Tells the parent [Container] to center the node in itself. It centers the [code]Control[/code] based on its bounding box, so it doesn't work with the fill or expand size flags. Use with [member size_flags_horizontal] and [member size_flags_vertical]. </constant> <constant name="SIZE_SHRINK_END" value="8"> + Tells the parent [Container] to align the node with its end, either the bottom or the right edge. It doesn't work with the fill or expand size flags. Use with [member size_flags_horizontal] and [member size_flags_vertical]. </constant> <constant name="MOUSE_FILTER_STOP" value="0"> </constant> @@ -1053,10 +1122,10 @@ <constant name="GROW_DIRECTION_END" value="1"> </constant> <constant name="ANCHOR_BEGIN" value="0"> - X is relative to MARGIN_LEFT, Y is relative to MARGIN_TOP. + Snaps one of the 4 anchor's sides to the origin of the node's [code]Rect[/code], in the top left. Use it with one of the [code]anchor_*[/code] member variables, like [member anchor_left]. To change all 4 anchors at once, use [method set_anchors_preset]. </constant> <constant name="ANCHOR_END" value="1"> - X is relative to -MARGIN_RIGHT, Y is relative to -MARGIN_BOTTOM. + Snaps one of the 4 anchor's sides to the end of the node's [code]Rect[/code], in the bottom right. Use it with one of the [code]anchor_*[/code] member variables, like [member anchor_left]. To change all 4 anchors at once, use [method set_anchors_preset]. </constant> </constants> </class> diff --git a/doc/classes/JSON.xml b/doc/classes/JSON.xml index a38b2f61cf..8bff140bb4 100644 --- a/doc/classes/JSON.xml +++ b/doc/classes/JSON.xml @@ -1,8 +1,10 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="JSON" inherits="Object" category="Core" version="3.0.alpha.custom_build"> <brief_description> + Helper class for parsing JSON data. </brief_description> <description> + Helper class for parsing JSON data. </description> <tutorials> </tutorials> @@ -15,6 +17,7 @@ <argument index="0" name="json" type="String"> </argument> <description> + Parses a JSON encoded string and returns a [JSONParseResult] containing the result. </description> </method> <method name="print"> @@ -23,6 +26,7 @@ <argument index="0" name="value" type="Variant"> </argument> <description> + Converts a Variant var to JSON text and returns the result. Useful for serializing data to store or send over the network. </description> </method> </methods> diff --git a/doc/classes/JSONParseResult.xml b/doc/classes/JSONParseResult.xml index 6aeb614508..86edaaf1e6 100644 --- a/doc/classes/JSONParseResult.xml +++ b/doc/classes/JSONParseResult.xml @@ -1,8 +1,10 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="JSONParseResult" inherits="Reference" category="Core" version="3.0.alpha.custom_build"> <brief_description> + Data class wrapper for decoded JSON. </brief_description> <description> + Returned by [method JSON.parse], [JSONParseResult] contains decoded JSON or error information if JSON source not successfully parsed. You can check if JSON source was successfully parsed with [code]if json_result.error == 0[/code]. </description> <tutorials> </tutorials> @@ -68,12 +70,24 @@ </methods> <members> <member name="error" type="int" setter="set_error" getter="get_error" enum="Error"> + The error type if JSON source was not successfully parsed. See [@Global Scope]ERR_* constants. </member> <member name="error_line" type="int" setter="set_error_line" getter="get_error_line"> + The line number where the error occurred if JSON source was not successfully parsed. </member> <member name="error_string" type="String" setter="set_error_string" getter="get_error_string"> + The error message if JSON source was not successfully parsed. See [@Global Scope]ERR_* constants. </member> <member name="result" type="Variant" setter="set_result" getter="get_result"> + A [Variant] containing the parsed JSON. Use typeof() to check if it is what you expect. For exemple, if JSON source starts with braces [code]{}[/code] a [Dictionary] will be returned, if JSON source starts with array braces [code][][/code] an [Array] will be returned. + [i]Be aware that the JSON specification does not define integer or float types, but only a number type. Therefore, parsing a JSON text will convert all numerical values to float types.[/i] + [codeblock] + p = JSON.parse('["hello", "world", "!"]') + if typeof(p) == TYPE_ARRAY: + print(p[0]) # prints 'hello' + else: + print("unexpected results") + [/codeblock] </member> </members> <constants> diff --git a/doc/tools/doc_status.py b/doc/tools/doc_status.py index 6b6b794f11..314f890bd7 100644 --- a/doc/tools/doc_status.py +++ b/doc/tools/doc_status.py @@ -1,5 +1,6 @@ #!/usr/bin/env python3 +import fnmatch import os import sys import re @@ -356,8 +357,13 @@ for file in input_file_list: class_names.sort() if len(input_class_list) < 1: - input_class_list = class_names + input_class_list = ['*'] +filtered_classes = set() +for pattern in input_class_list: + filtered_classes |= set(fnmatch.filter(class_names, pattern)) +filtered_classes = list(filtered_classes) +filtered_classes.sort() ################################################################################ # Make output table # @@ -369,10 +375,7 @@ table_column_chars = '|' total_status = ClassStatus('Total') -for cn in input_class_list: - if not cn in classes: - print('Cannot find class ' + cn + '!') - sys.exit(255) +for cn in filtered_classes: c = classes[cn] validate_tag(c, 'class') |