Commit Graph

44 Commits

Author SHA1 Message Date
Yuri Sizov 54deaafef6 Merge pull request #85660 from Maran23/theme-basic
Mark `gui/theme/custom` and `gui/theme/custom_font` as basic properties
2024-01-24 14:07:58 +01:00
Yuri Sizov 66b0bd9203 Merge pull request #86158 from Geometror/ge-connection-rework
Rework `GraphEdit` connections (drawing, API, optimizations)
2024-01-18 19:26:56 +01:00
Hendrik Brucker 9d7c2978f4 Rework GraphEdit connections (drawing, API, optimizations)
- GraphEdit now uses Line2D nodes to draw connection lines and uses a dedicated canvas item shader for them
2024-01-18 16:53:15 +01:00
Rindbee f29a7d302e Make the drawing logic clearer in `Button`
The drawing logic follows the calculation logic in `Button::get_minimum_size`.

According to the order of `stylebox`, `icon`, and `text`, and follow properties
such as alignment mode, to fill the display space of the button.

Add a `Button::_set_h_separation_is_valid_when_no_text` for Button derived
classes (like `OptionButton`) that expects a `h_separation` between `icon`
and theme icon even if the `text` is empty.
2024-01-18 22:57:22 +08:00
Yuri Sizov 95b27fe8c7 Reorganize code related to editor theming
This change introduces a new EditorThemeManager class
to abstract theme generatio and its subroutines.

Logic related to EditorTheme, EditorColorMap, and editor
icons has been extracted into their respective files with
includes cleaned up.

All related files have been moved to a separate folder to
better scope them in the project. This includes relevant
generated files as well.
2024-01-16 11:57:45 +01:00
Rémi Verschelde 365755fb34
Merge pull request #84946 from DarkMessiah/default-theme-checkbox-disabled-state
Use disabled icons for CheckBox in DefaultTheme
2024-01-10 12:03:12 +01:00
Muller-Castro 96a95cb974 Add const lvalue ref to container parameters 2024-01-05 14:49:57 -03:00
Rémi Verschelde a6dc1b3907
Merge pull request #84527 from Calinou/colorpicker-display-revert-icon
Display a revert icon on ColorPicker's old sample
2024-01-03 09:59:06 +01:00
Marius Hanl dbee4cde1d Mark 'gui/theme/custom' and 'gui/theme/custom_font' as basic properties 2023-12-02 16:00:39 +01:00
Stanislav Labzyuk ff59496632 Use disabled icons for CheckBox in DefaultTheme 2023-11-19 22:01:53 +01:00
Stanislav Labzyuk ff8797e980 Implement disabled state for Checkbox in Tree 2023-11-15 17:13:34 +01:00
Hugo Locurcio 079f1c8ead
Display a revert icon on ColorPicker's old sample
This denotes that the color can be clicked to revert to the old color.
2023-11-07 10:04:39 +01:00
Rémi Verschelde d92c02002f
Merge pull request #82653 from MewPurPur/simplify-region-folding-icon
Tweak the region folding icons
2023-10-04 15:35:57 +02:00
Yuri Sizov b07c664af9 Make `GraphEdit` toolbar more customizable
Also adds a semi-transparent background
to make the toolbar stand out in front of nodes.
2023-10-02 13:43:08 +02:00
MewPurPur 05aaa04b4d Tweak the region folding icons 2023-10-02 04:55:16 +03:00
Yuri Sizov 596dd726a1 Use bound theme properties for documentation 2023-09-26 18:48:51 +02:00
Rémi Verschelde 8ddf73c74d
Merge pull request #81939 from YuriSizov/gui-flat-and-depressed
Replace flat buttons with flat-styled buttons with a visible pressed state
2023-09-25 17:18:29 +02:00
Rémi Verschelde c57d9f3483
Merge pull request #79104 from DrRevert/focusable_tabs_refactor
Allow to focus individual tabs in `TabBar`/`TabContainer`
2023-09-25 17:17:51 +02:00
Yuri Sizov 98f9ef5f88 Check for type variations in inherited themes 2023-09-24 02:54:52 +02:00
Yuri Sizov 4bd569be95 Replace flat buttons with flat-styled buttons with a visible pressed state 2023-09-19 22:36:29 +02:00
Arkadiusz Marcin Kołek 18811ac814 Allow to focus individual tabs in TabBar/TabContainer 2023-09-17 18:49:48 +02:00
A Thousand Ships a29416e332 [Scene,Main] Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable 2023-09-12 12:53:06 +02:00
Rémi Verschelde 5c43e4c1ef
Fix various typos with codespell
Using 2.2.6.dev180+ge3a2cfbd.
2023-09-12 08:54:18 +02:00
Jean-Michel Bernard 67dce301aa Add code region folding to CodeEdit 2023-09-11 18:36:40 +02:00
Rémi Verschelde d08401236c
Merge pull request #81312 from YuriSizov/theme-static-binds
Register theme properties with ThemeDB
2023-09-11 15:38:06 +02:00
Yuri Sizov 2924bfd4d3 Register theme properties with ThemeDB 2023-09-11 13:45:23 +02:00
Yuri Sizov 3d45f4b07e Correctly setup tooltip's style as theme variation 2023-09-08 21:51:06 +02:00
Hendrik Brucker 5afe78bd9c Clean up/refactor GraphNode and make it more flexible
Split GraphNode into GraphElement and GraphNode, add custom
titlebar, and adjust theming.
2023-09-07 17:29:06 +02:00
Yuri Sizov 512182f147 Add theme contexts to various parts of the editor
This change defines additional theme contexts for editor
branches to prevent theme leaking between the default
theme, the project theme, and the editor theme.

- Both editor window and EditorNode define an editor-specific
context with the editor theme and the default theme.
- The 2D viewport defines a project-specific context with
the project theme and the default theme.
- Theme editor preview tabs define the default-only context
with the default theme.

Additionally, the default theme context now only includes
the project theme for running projects (both export and debug).
This prevents the project theme from leaking into the editor.

This commit also does a little clean up on the theming aspects
of the EditorNode.
2023-09-06 19:40:43 +02:00
Yuri Sizov 58126e479c Introduce the concept of global theme contexts
This commit adds the default theme context, which replaces
the need to manually check the project and the default theme
all the time; simplifies related code.

It also adds framework for custom theme contexts, to be used
by the editor. Custom contexts can be attached to any node,
and not necessarily a GUI/Window node. Contexts do no break
theme inheritance and only define which global themes a node
uses as a fallback.

Contexts propagate NOTIFICATION_THEME_CHANGED when one of their
global themes changes. This ensures that global themes act just
like themes assigned to individual nodes and can be previewed
live in the editor.
2023-09-06 19:40:43 +02:00
Yuri Sizov 4328ffcc79 Fix ThemeDB initialization in tests
Also fixes class name shadowing in Viewport/Window tests.
2023-09-04 18:07:16 +02:00
Yuri Sizov fd2ec47ec9 Move default theme files to scene/theme
This also puts the default theme icons into their own folder.
2023-08-28 00:23:38 +02:00
Rémi Verschelde 163f6f5fe8
Merge pull request #68429 from KoBeWi/PropertySettings
Add PropertyInfo overload for GLOBAL_DEF
2023-01-06 22:59:29 +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
Rémi Verschelde fecdeb78ad
Merge pull request #70404 from YuriSizov/theme-!important
Add fallback values for font and scale to the default theme
2022-12-21 18:36:07 +01:00
Yuri Sizov b67a938caa Add fallback values for font and scale to the default theme 2022-12-21 19:29:12 +03:00
Quentin Guidée 501c317ae1
ThemeOwner: Extract get_owner_node_theme
Signed-off-by: Quentin Guidée <quentin.guidee@gmail.com>
2022-12-21 09:40:17 -05:00
kobewi 7c6b659bd7 Add PropertyInfo overload for GLOBAL_DEF 2022-12-11 21:36:48 +01:00
Rémi Verschelde 610c34ea03
Merge pull request #65641 from voylin/Adding_ttf_otf_to_custom_font_dialogue
Adding .tff .otf, .woff and .woff2 to custom font extensions - Fixes #65633
2022-11-29 13:41:45 +01:00
Hugo Locurcio a19e389f4f
Hide Antialiasing import option on DynamicFonts with MSDF enabled
Antialiasing cannot be adjusted on fonts rendered with MSDF.
Internally, Godot always uses grayscale antialiasing for those fonts.

This also tweaks property hints for consistency, and renames
uses of "sub-pixel" to the more commonly used "subpixel".
2022-11-03 18:40:44 +01:00
Voylin ab255caa07 Adding tff, otf, woff(2) to custom font extensions
This pull request is to fix #65633

When trying to add a custom font, my '.ttf' and '.otf' fonts were not visible unless I selected 'All files'. By adding these to the custom property info makes it more convenient to select a different font, without doing the extra clicks to select 'All Files'.

Not a big change, but something I wanted to fix as it seems appropriate to do so.
2022-09-14 21:29:54 +09:00
Yuri Sizov 8b128081e8 Un-defer the initial theme changed notification
Co-authored-by: Rindbee <idleman@yeah.net>
2022-09-02 23:44:23 +03:00
Yuri Sizov ddc55ef746 Add ThemeOwner type for managing theme propagation and lookup 2022-09-02 23:44:23 +03:00
Yuri Sizov 6320a0fc18 Add ThemeDB, expose previously static Theme methods 2022-08-26 19:23:05 +03:00