104 Commits

Author SHA1 Message Date
StarryWorm 05737cd449 Add "desired size" to Control
A `Control` can define `get_desired_size()` which allows it to grow based on its content without increasing its minimum size.
This new size will be respected by parent `Container`s.
Currently used by `Label` and `TabBar`.
2026-05-07 13:01:02 -04:00
StarryWorm bdca8b66e7 Add custom_maximum_size to Control
This property mirrors `custom_minimum_size` and enables the user to set a size the `Control`. Enabling `propagate_maximum_size` forces all children to respect this node's maximum_size.
Not all `Control` types handle this gracefully, which may result in content clipping.
2026-04-07 14:34:12 -04:00
Pāvels Nadtočajevs cdb35db426 Do not show accessibility configuration warnings for non-focusable controls, account for name fallback. 2026-03-13 08:53:09 +02:00
kit 90be4208e8 Use SplitContainer for Node3D Editor viewports 2026-03-07 20:39:36 -05:00
kit 339bc4f88f SplitContainer drag nested intersections 2026-03-05 10:35:02 -05:00
Rémi Verschelde eabb9a63d4 Rename callable_method_pointer.h to callable_mp.h and include it explicitly
This allows removing it from `class_db.h`, significantly reducing the amount of files
that include it transitively.

Also includes some include cleanup in `control.h` and `rich_text_label.h` done while
ensure they don't depend on `callable_mp`.
2026-03-04 16:23:23 +01:00
Rémi Verschelde 8c0f175c94 Decouple RenderingServer from as much of the codebase as possible
Notably decouples it from:
- AccessibilityServer
- DisplayServer
- Viewport
- Window
2026-03-03 12:48:07 +01:00
Pāvels Nadtočajevs 1306221592 Move accessibility methods/enums from DisplayServer to the AccessibilityServer dedicated singleton. 2026-03-02 13:48:29 +02:00
Thaddeus Crews e380a41752 Style: Add class_db.h includes explicitly 2026-02-26 15:50:28 -06:00
Thaddeus Crews d301ecab3b Merge pull request #116628 from bruvzg/fkbd
Fix `SplitContainerDragger` dragging with enabled screen reader, allow resizing with keyboard shortcuts.
2026-02-23 11:59:14 -06:00
Pāvels Nadtočajevs 62591f1b91 Fix SplitContainerDragger dragging with enabled screen reader, allow resizing with keyboard shortcuts. 2026-02-22 22:14:21 +02:00
kit e5c50f4b7b Fix SplitContainer accessibility errors 2026-02-21 16:16:25 -05:00
kit 36f4ea227d Fix SplitContainer set desired size infinite loop 2026-01-02 19:05:06 -05:00
Nolan Darilek 9aa4a7fa8f a11y: Add accessible name to resizable splitters 2025-12-30 09:02:15 -05:00
Rémi Verschelde e43485a9ee Merge pull request #113648 from kitbdev/fix-multisplit-incorrect-shrinking
Fix SplitContainer incorrect child shrink logic
2025-12-18 14:24:15 +01:00
kit 1c5ccfe61c Fix distraction-free mode changing split offsets 2025-12-09 17:15:13 -05:00
kit a8159efebf Fix SplitContainer incorrect child shrink logic 2025-12-05 15:48:11 -05:00
kit e4e00a5461 Fix SplitContainer crash on change type 2025-11-25 16:10:08 -05:00
kit 7e55f1d1bf Allow SplitContainer to have multiple children 2025-11-24 16:50:09 -05:00
Koyper 21144401c3 Add theme colors to touch dragger and fix touch dragger icon theme 2025-07-17 13:05:47 -05:00
Anish Mishra bccf36b27b Add option for a touch-friendly drag handle in SplitContainer 2025-06-03 19:49:56 +05:30
Pāvels Nadtočajevs b106dfd4f9 Base accessibility API. 2025-04-08 20:14:28 +03:00
Janis Kirsteins 815e905972 Typo fix: rename SortableVisbilityMode 2025-01-19 00:33:39 +01:00
Yufeng Ying 73d85f46c9 Remove unused headers in scene.
Co-authored-by: Thaddeus Crews <repiteo@outlook.com>

Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2024-12-24 00:40:09 +08:00
Koyper f7005deb1e Improvements to SplitContainer including a drag bar background StyleBox. 2024-09-14 19:35:51 -05:00
Anni Ryynänen a9c91f4eef Fix container minimum size with hidden parent 2024-07-12 16:21:05 +03:00
kit d8acd8caa6 Use as_sortable_control() in SplitContainer 2024-05-08 13:17:34 -04:00
kobewi eb570463a2 Revert as_sortable_control() change in SplitContainer 2024-05-08 13:36:49 +02:00
kobewi 5c28814b39 Add as_sortable_control() to unify Container checks 2024-05-08 11:45:52 +02:00
kit 2323f040e9 Extract editor dock manager 2024-01-15 15:15:42 -05:00
Yuri Sizov fe000277ea Bind remaining theme properties to their respective classes
This adds binds for GraphEdit/GraphElement/GraphNode, which were
skipped before due to a rework. This also adds binds for Window,
which was skipped before due to a complicated code organization.

Also adds theme cache entries/direct cache access to a few places
that previously missed it. Some theme properties are now exposed
to other classes via friendships or public getters for convenience.

This removes all string-based theme access from scene/ classes.
2023-09-13 19:31:35 +02:00
Yuri Sizov 2924bfd4d3 Register theme properties with ThemeDB 2023-09-11 13:45:23 +02:00
RedMser 386f62df96 Fix SplitContainer rendering and theming 2023-01-22 16:34:56 +01:00
Rémi Verschelde d95794ec8a One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00
Markus Sauermann 28af870750 Code simplifications found by cppcheck
They are based on:
- Boolean arithmetic simplifications
- setting variables that are not accessed
- constant variables
2022-11-21 08:43:36 +01:00
Gilles Roudière 4cbcb5acda Allow SplitContainer to have a grab area larger than its visual grabber 2022-09-07 12:33:02 +02:00
Gilles Roudière 2ddda13339 Improve SplitContainer behavior, keeping asked split whenever possible 2022-09-02 20:48:50 +02:00
kobewi 73929bef73 Rework oriented containers 2022-09-01 22:13:46 +02:00
Yuri Sizov 3b1aa240dc Add a lifecycle method for manual theme item caching to Control 2022-09-01 16:35:36 +03:00
Micky e31bb5ffeb Rename CanvasItem.update() to queue_redraw()
Affects a lot of classes. Very thoroughly checked signal connections and deferred calls to this method, add_do_method/add_undo_method calls, and so on.

Also renames the internal `_update_callback()` to `_redraw_callback()` for consistency.

Just a few comments have also been changed to say "redraw".

In CPUParticles2D, there was a private variable with the same name. It has been renamed to `do_redraw`.
2022-08-29 14:59:47 +02:00
Rémi Verschelde ecfff5b75e Revert SplitContainer minimum size splitting changes (#64676 and #64800)
This reverts commits 185b1a5bd3 and 19ad31b89f.

The original PR and its fixup still had regressions, so we're going back
to the drawing board to reattempt fixing #43749.

Fixes #64785.
Fixes #64851.
Fixes #64866.
2022-08-26 15:57:17 +02:00
Yuri Sizov 5d14d08702 Merge pull request #59226 from Rindbee/better-setters-in-gui-controls
Improve the setters in gui, return directly if the value does not change.
2022-08-24 17:03:54 +03:00
kobewi 19ad31b89f Handle child control size changes in SplitContainer 2022-08-23 20:41:10 +02:00
风青山 e561c68256 Add some codes, returnes directly if the value is not changed.
Avoid executing the following value-changed logics if the value does not really change.
2022-08-23 23:25:22 +08:00
kobewi 185b1a5bd3 Improve SplitContainer minimum size splitting 2022-08-21 03:30:11 +02:00
FireForge 4678736a39 Add suffixes to all nodes and resources 2022-06-11 09:41:05 -05:00
Rémi Verschelde 0f5455230c Use switch consistently in _notification (scene folder) 2022-02-15 18:44:55 +01:00
Yuri Sizov 107b6f299c Reorganize inspector layout workflow for Control nodes 2022-02-10 20:29:34 +03:00
Rémi Verschelde fe52458154 Update copyright statements to 2022
Happy new year to the wonderful Godot community!
2022-01-03 21:27:34 +01:00
kobewi ea7cc1dea9 Rename minimum_size_changed() method 2021-12-06 14:02:34 +01:00