Commit Graph

166 Commits

Author SHA1 Message Date
reduz b1d15c51bc Implement native extension system
* Deprecates GDNative in favor of a simpler, lower level interface.
* New extension system allows registering core engine classes.
* Simple header interface in gdnative_interace.h
2021-06-25 17:32:45 -03:00
kobewi 452e10ba7b Remove clips_input() method and use clip_content 2021-06-25 15:46:37 +02:00
Yuri Sizov 9eaa139c1f Add theme_custom_type property to Control and Window 2021-05-17 17:20:42 +03:00
Nathan Franke 2a8c59c171
Use Array for node configuration warnings
Previously, the warnings were passed as a string and delimitation of which were hard coded at each implementation.
2021-04-11 23:25:38 -05:00
Rémi Verschelde 5d0cc7c15f Merge pull request #47252 from KoBeWi/themecide
Add methods to remove theme overrides
2021-03-31 20:52:19 +02:00
kobewi ecff5bc42f Add methods to remove theme overrides 2021-03-23 00:51:16 +01:00
Aaron Franke 6811a45b59
Use real_t in non-physics 2D nodes 2021-03-19 13:04:45 -04:00
Tomasz Chabora 84da090a69 Warn when setting Control size inside ready() 2021-02-19 18:32:24 +01:00
reduz 1aa2823fa3 Removed _change_notify
-For inspector refresh, the inspector now detects if a property change by polling a few times per second and then does update the control if so. This process is very cheap.
-For property list refresh, a new signal (property_list_changed) was added to Object. _change_notify() is replaced by notify_property_list_changed()
-Changed all objects using the old method to the signal, or just deleted the calls to _change_notify(<property>) since they are unnecesary now.
2021-02-10 19:31:24 -03:00
Rafał Mikrut 7961a1dea3 Initialize class variables with default values in scene/ [2/2] 2021-02-09 18:24:36 +01:00
Rémi Verschelde b5334d14f7
Update copyright statements to 2021
Happy new year to the wonderful Godot community!

2020 has been a tough year for most of us personally, but a good year for
Godot development nonetheless with a huge amount of work done towards Godot
4.0 and great improvements backported to the long-lived 3.2 branch.

We've had close to 400 contributors to engine code this year, authoring near
7,000 commit! (And that's only for the `master` branch and for the engine code,
there's a lot more when counting docs, demos and other first-party repos.)

Here's to a great year 2021 for all Godot users 🎆
2021-01-01 20:19:21 +01:00
Marcel Admiraal 4b8b803931 Rename Control margin to offset 2020-12-23 06:25:56 +00:00
Rémi Verschelde 153c132a7e
Merge pull request #44300 from KoBeWi/🧹🧹
Move initialization of some classes to headers
2020-12-21 00:24:36 +01:00
Daniel Ting aea7fde241 Rename neighbour in Control to neighbor
This keeps things consistent with the rest of Godot, which uses the
American English spelling of Color.
2020-12-15 16:42:21 -06:00
Tomasz Chabora 31cb04fbdd Move initialization of some classes to headers 2020-12-11 18:20:03 +01:00
Tomasz Chabora 2c048ea164 Cleanup unused engine code 2020-12-09 12:12:36 +01:00
bruvzg 99666de00f
[Complex Text Layouts] Refactor Font class, default themes and controls to use Text Server interface.
Implement interface mirroring.
Add TextLine and TextParagraph classes.
Handle UTF-16 input on macOS and Windows.
2020-11-26 14:25:48 +02:00
Eric M 4d10524f7f Removed unused property 'pending_resize' from Control 2020-11-26 15:30:13 +10:00
Aaron Franke 02161aad5a
Remove empty lines around braces with the formatting script 2020-11-16 23:38:11 -05:00
Rémi Verschelde fc70f986b9
Merge pull request #42008 from Calinou/theme-rename-node-type
Rename the `type` parameter to `node_type` in Theme and Control
2020-11-16 13:20:24 +01:00
reduz 127458ed17 Reorganized core/ directory, it was too fatty already
-Removed FuncRef, since Callable makes it obsolete
-Removed int_types.h as its obsolete in c++11+
-Changed color names code
2020-11-07 20:17:12 -03:00
Hugo Locurcio c3b246e6af
Rename the `type` parameter to `node_type` in Theme and Control
This makes it clearer that it expects a node type as a string
(such as "Label") instead of a type like "TYPE_ARRAY".
This is backwards-compatible since only the name of the parameter
is changed, not its order.
2020-10-27 14:58:52 +01:00
Duroxxigar 4834e14493 Updated getters and setters names for toplevel 2020-10-02 19:09:01 -04:00
Marcel Admiraal 26fcf2b04c Add override keywords. 2020-07-10 13:56:54 +01:00
Rémi Verschelde 0ee0fa42e6 Style: Enforce braces around if blocks and loops
Using clang-tidy's `readability-braces-around-statements`.
https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
2020-05-14 21:57:34 +02:00
Rémi Verschelde 0be6d925dc Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks
Which means that reduz' beloved style which we all became used to
will now be changed automatically to remove the first empty line.

This makes us lean closer to 1TBS (the one true brace style) instead
of hybridating it with some Allman-inspired spacing.

There's still the case of braces around single-statement blocks that
needs to be addressed (but clang-format can't help with that, but
clang-tidy may if we agree about it).

Part of #33027.
2020-05-14 16:54:55 +02:00
Rémi Verschelde d1acbbce7f Rename more 2D and 3D nodes to follow convention
Rename editor plugins to match the new node names.
2020-03-27 16:26:34 +01:00
Juan Linietsky c7b4dcae2f Open sub-windows as embedded if the OS does not support them 2020-03-26 15:49:43 +01:00
Juan Linietsky 441f1a5fe9 Popups are now windows also (broken!) 2020-03-26 15:49:42 +01:00
Juan Linietsky 4758057f20 Working multiple window support, including editor 2020-03-26 15:49:40 +01:00
Rémi Verschelde cb282c6ef0 Style: Set clang-format Standard to Cpp11
For us, it practically only changes the fact that `A<A<int>>` is now
used instead of the C++03 compatible `A<A<int> >`.

Note: clang-format 10+ changed the `Standard` arguments to fully
specified `c++11`, `c++14`, etc. versions, but we can't use `c++17`
now if we want to preserve compatibility with clang-format 8 and 9.
`Cpp11` is still supported as deprecated alias for `Latest`.
2020-03-17 07:36:24 +01:00
Juan Linietsky 3f335ce3d4 Texture refactor
-Texture renamed to Texture2D
-TextureLayered as base now inherits 2Darray, cubemap and cubemap array
-Removed all references to flags in textures (they will go in the shader)
-Texture3D gone for now (will come back later done properly)
-Create base rasterizer for RenderDevice, RasterizerRD
2020-02-11 11:53:26 +01:00
Gilles Roudière b5251eb00f Don't compile editor-only function when tools=no 2020-01-09 22:15:48 +01:00
Rémi Verschelde a7f49ac9a1 Update copyright statements to 2020
Happy new year to the wonderful Godot community!

We're starting a new decade with a well-established, non-profit, free
and open source game engine, and tons of further improvements in the
pipeline from hundreds of contributors.

Godot will keep getting better, and we're looking forward to all the
games that the community will keep developing and releasing with it.
2020-01-01 11:16:22 +01:00
IAmActuallyCthulhu 82b9557803
Remove redundant author doc comments 2019-08-12 04:26:38 -05:00
qarmin e0b5b21863 Add some code changes/fixes proposed by Coverity and Clang Tidy 2019-08-07 12:54:30 +02:00
Hugo Locurcio a0cc62f000
Add a configuration warning when using Ignore mouse filter with tooltip
This closes #30144.
2019-06-30 19:58:40 +02:00
qarmin 4e5310cc60 Some code changed with Clang-Tidy 2019-06-26 15:08:25 +02:00
Gilles Roudiere e875f05c3b Improve the anchors and margin workflow 2019-05-13 18:55:31 +02:00
Bojidar Marinov 8dad5f1e10
Update controls when a stylebox or icon override changes; change to CONNECT_REFERENCE_COUNTED
Also, cleanup unnessesary calls to update() and NOTIFICATION_THEME_CHANGED.

Fixes #25904.
2019-02-25 17:42:38 +02:00
Rémi Verschelde b16c309f82 Update copyright statements to 2019
Happy new year to the wonderful Godot community!
2019-01-01 12:58:10 +01:00
Michael Alexsander Silva Dias 3a9df46b90 Add expand/collapse all buttons for the "Errors" tab 2018-09-12 23:53:10 -03:00
Rémi Verschelde 277b24dfb7 Make core/ includes absolute, remove subfolders from include path
This allows more consistency in the manner we include core headers,
where previously there would be a mix of absolute, relative and
include path-dependent includes.
2018-09-12 09:52:22 +02:00
Aaron Franke cf136a91d6 [Core] Completely kill math_2d.h, change includes 2018-08-11 03:08:34 -05:00
Guilherme Felipe d1f5deabd8 Opens the menu with the same parent on mouse focus 2018-07-24 19:59:40 -03:00
Juan Linietsky 336db8bcd1 -Fix tooltips in inspector, now they show as rich text. 2018-07-20 18:16:19 -03:00
Max Hilbrunner b21c1f64cd
Merge pull request #18634 from groud/fix_control_child_of_node2d
Fixes the bad calculation of margin & anchors when child of Node2D
2018-07-03 18:06:15 +02:00
Juan Linietsky 2dc738ce27 -Fixes to how hashing happened, now StringName and NodePath use default hasher, this was leading to some severe slowdown in scenarios
-Fixes to some duplication scenarios for instanced scenes
2018-07-02 15:08:35 -03:00
groud 4d78e16bc1 Fixes the bad calculation of margin & anchors when child of Node2D 2018-06-07 21:25:15 +02:00
Juan Linietsky 005b69cf6e -New inspector.
-Changed UI resizing code, gained huge amount of speed.
-Reorganized timer sync to clean up behavior (sorry forgot commit this before)

-
2018-05-15 17:14:31 -03:00
Juan Linietsky 1d15c5d726
Merge pull request #17502 from groud/2Deditor_rect
Remove the rect surrounding 2D nodes in 2D editor when it's not pertinent
2018-04-13 10:21:44 -03:00
Rémi Verschelde 7e2782e177
Merge pull request #17081 from endragor/no-press-when-scroll
Make Button not emit press when container is scrolled
2018-04-10 07:56:37 +02:00
Ruslan Mustakov dcf5be92a3 Make BaseButton not emit press when container is scrolled
This fixes the problem described in #13996 in a proper way.

This also adds "deadzone" property to ScrollContainer. It can be used
on mobile, where taps are not as precise as mouse clicks. Player could
slightly move their finger when tapping, in which case we still want
the button to be pressed rather than the container to be scrolled.
2018-04-09 20:34:52 +07:00
Gilles Roudiere 72ed1e4244 Remove the selection rect for nodes that do not require it 2018-04-03 22:04:19 +02:00
isaacremnant 4ef11eb3ed Implements #16546 by adding GROW_DIRECTION_BOTH which allows a control to grow from its center. 2018-02-12 01:39:18 -05:00
Gilles Roudiere b06c6602c8 Changes the keep_margin parameter to true by default, so that people are not suprised that set_anchor changes the margins values 2018-01-15 10:37:13 +01:00
Rémi Verschelde e4213e66b2 Add missing copyright headers and fix formatting
Using `misc/scripts/fix_headers.py` on all Godot files.
Some missing header guards were added, and the header inclusion order
was fixed in the Bullet module.
2018-01-05 01:22:23 +01:00
Rémi Verschelde b50a9114b1 Update copyright statements to 2018
Happy new year to the wonderful Godot community!
2018-01-01 14:40:47 +01:00
Bernhard Liebl efc3ffb816 fix certain popup close clicks with popup buttons 2017-12-10 10:55:48 +01:00
Gilles Roudiere 8d1f2b1857 Rework the canvas_item API for further improves to the canvas item editor 2017-11-19 13:36:31 +01:00
Saracen e4201734df Add manual overrides for focus_next and focus_previous on controls similar to what can already be done with focus neighbours. 2017-11-16 09:45:52 +00:00
letheed 482e07af7e Unify degree members and properties 2017-11-10 12:52:07 +01:00
letheed ab2647a0d0 Remove deprecated rotation methods 2017-11-10 09:09:30 +01:00
Gilles Roudiere 05bb8e0c10 Remove set_area_as_parent_rect and replace it by set_anchors_and_margins_preset(PRESET_WIDE) 2017-09-22 11:39:44 +02:00
Gilles Roudiere 92f062696a Implements set_margins_preset(...) 2017-09-22 09:23:07 +02:00
Rémi Verschelde 7ad14e7a3e Dead code tells no tales 2017-08-27 22:13:45 +02:00
Rémi Verschelde bd282ff43f Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
Juan Linietsky 1ecb48b8c2 Changed anchor constants to enum, removed ANCHOR_CENTER, fixes #9889 2017-08-15 19:49:28 -03:00
Gilles Roudiere 0041e08f74 Avoids inverted anchors
Add a push_opposite_anchor argument pushing the opposite anchor if
needed
2017-08-13 21:20:14 +02:00
Gilles Roudiere c26af6f2b7 Adds a function to set Anchors with a layout preset 2017-08-13 21:20:14 +02:00
Gilles Roudiere 0d35d4d53b Replace GUI anchor type by a float between 0 and 1 2017-08-13 21:20:13 +02:00
Juan Linietsky 7c679dd830 More fill modes for containers, closes #9504 2017-07-06 19:06:55 -03:00
Juan Linietsky bd9d98c172 Ability to set rotation and scaling pivot for controls. 2017-07-06 17:42:44 -03:00
Juan Linietsky fd9b4ba6e6 -Ability for controls to grow the left/top when anchored. This makes anchoring controls to the right/bottom easier when they are resized. 2017-07-06 13:30:24 -03:00
Sergey Pusnei 8589ca3903 Rename [gs]et_pos to [gs]et_position for Controls
Control set_pos -> set_position
Control set_global_pos -> set_global_position
[gs]et_mouse_pos -> [gs]et_mouse_position
[gs]et_global_mouse_pos -> [gs]et_global_mouse_position
fixes #8005
2017-04-10 08:27:34 +02:00
Rémi Verschelde df61dc4b2b Add "Godot Engine contributors" copyright line 2017-04-08 00:11:42 +02:00
Rémi Verschelde 5dbf1809c6 A Whole New World (clang-format edition)
I can show you the code
Pretty, with proper whitespace
Tell me, coder, now when did
You last write readable code?

I can open your eyes
Make you see your bad indent
Force you to respect the style
The core devs agreed upon

A whole new world
A new fantastic code format
A de facto standard
With some sugar
Enforced with clang-format

A whole new world
A dazzling style we all dreamed of
And when we read it through
It's crystal clear
That now we're in a whole new world of code
2017-03-05 16:44:50 +01:00
Juan Linietsky bc26f90581 Type renames:
Matrix32 -> Transform2D
	Matrix3 -> Basis
	AABB -> Rect3
	RawArray -> PoolByteArray
	IntArray -> PoolIntArray
	FloatArray -> PoolFloatArray
	Vector2Array -> PoolVector2Array
	Vector3Array -> PoolVector3Array
	ColorArray -> PoolColorArray
2017-01-11 00:52:51 -03:00
Juan Linietsky e9bb65db81 -All types have editable script now in properties
-Changed clip to a property in Control which can be set by the user
2017-01-09 15:50:59 -03:00
Juan Linietsky 94ee7798ce -removed stop mouse and ignore mouse from control, which were confusing, replaced by mouse filter 2017-01-08 19:54:19 -03:00
Juan Linietsky 4fd464a4c5 Removed ratio anchoring (will have to fix multiple 3D views later..) 2017-01-08 19:12:24 -03:00
Juan Linietsky de73297883 Swapped expand and fill flag bits, so scenes don't save this property by default 2017-01-08 19:12:24 -03:00
Juan Linietsky 920947f297 renamed _input_event for GUI events to _gui_input, so it's more differentiated than generalized _input 2017-01-08 16:28:12 -03:00
Juan Linietsky 118eed485e ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant.
All usages of "type" to refer to classes were renamed to "class"
ClassDB has been exposed to GDScript.
OBJ_TYPE() macro is now GDCLASS()
2017-01-02 23:03:46 -03:00
Rémi Verschelde c7bc44d5ad Welcome in 2017, dear changelog reader!
That year should bring the long-awaited OpenGL ES 3.0 compatible renderer
with state-of-the-art rendering techniques tuned to work as low as middle
end handheld devices - without compromising with the possibilities given
for higher end desktop games of course. Great times ahead for the Godot
community and the gamers that will play our games!
2017-01-01 22:03:33 +01:00
Juan Linietsky b874cede20 Add argument options for the theme override functions in Control 2016-09-11 11:48:31 -03:00
Juan Linietsky fb4d6d1db0 More visual script improvements
-Added anti-aliasing on lines
-Improved draw performance enormously
-Removed sequence ports for most nodes, current visual scripts will likely be broken now. Sorry!
2016-08-30 23:46:41 -03:00
Juan Linietsky 9c6175db11 More visual script work
-Block switches to 2d/3d editor if editing visual script
-Added cast node in flow control
-Added ability to do RPC in visual script
-Comment nodes
-Fix bug with inverted cable in connecting backwards
-Copy and paste nodes, including from different scripts
2016-08-25 17:45:20 -03:00
Juan Linietsky 259418f827 VisualScript can now execute visual scripts, but there is no debugger or profiler yet. 2016-08-05 22:48:00 -03:00
Juan Linietsky f10bd217a2 properly fixed notificaitons for theme changed, closes #5774 2016-07-18 16:41:59 -03:00
Juan Linietsky 88e28af5e3 Add a small workaround to avoid modal tabs to be closed if they are spawned in the same frame, closes #3837 2016-06-27 11:22:13 -03:00
Juan Linietsky 55b83157e7 Keep track of when fonts change, so theme or controls that use fonts as overrides get properly updated.
closes #4622 , probably closes many other issues too
2016-06-17 16:01:30 -03:00
Juan Linietsky 26d63b5594 propagate theme changes properly even through 2D nodes, fixes #4754 2016-06-13 21:11:24 -03:00
Juan Linietsky 736b65e566 Merge pull request #4977 from SaracenOne/scripting_expose
Expose extra methods and constants to scripts
2016-06-06 20:27:40 -03:00
Juan Linietsky 007efb6a20 -customizable shortcuts in editor
-editor settings now save to .tres instead of .xml
-buttons can now hold a shortcut
2016-06-04 21:31:47 -03:00
Saracen b160a26abd Expose control theme element and override detection methods to scripting side. 2016-06-04 16:42:07 +01:00
Rémi Verschelde 4eab767a6f Rotation APIs: Better exposure for degrees methods
Made public the various set/getters for rotations in degrees.
For consistency, renamed the exposed method names to remove the leading
underscore, and kept the old names with a deprecation warning.

Fixes #4511.
2016-05-06 23:38:08 +02:00
Juan Linietsky c7e8def446 Add ability to send drag events to another object
will be documented/tested later
2016-05-03 11:10:28 -03:00
Bojidar Marinov 0e8a8d2cb1 Add option to keep margins when changing anchors, closes #3979
Amend: Fixed an issue for non-tool builds
Amend2: Same, just fixed doing nothing at some times
2016-03-09 21:14:17 +02:00
Hubert Jarosz 4a4f247914
remove trailing whitespace 2016-03-09 00:00:52 +01:00