Skip to content

Commit

Permalink
Merge pull request #100036 from Chaosus/hover_sname
Browse files Browse the repository at this point in the history
[Scene] Add `SceneStringName::hover`
  • Loading branch information
Chaosus authored Dec 11, 2024
2 parents ff9d389 + 9a8d662 commit a40fc23
Show file tree
Hide file tree
Showing 11 changed files with 38 additions and 37 deletions.
2 changes: 1 addition & 1 deletion editor/animation_track_editor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2061,7 +2061,7 @@ void AnimationTrackEdit::_notification(int p_what) {

const Ref<StyleBox> &stylebox_odd = get_theme_stylebox(SNAME("odd"), SNAME("AnimationTrackEdit"));
const Ref<StyleBox> &stylebox_focus = get_theme_stylebox(SNAME("focus"), SNAME("AnimationTrackEdit"));
const Ref<StyleBox> &stylebox_hover = get_theme_stylebox(SNAME("hover"), SNAME("AnimationTrackEdit"));
const Ref<StyleBox> &stylebox_hover = get_theme_stylebox(SceneStringName(hover), SNAME("AnimationTrackEdit"));

const Color h_line_color = get_theme_color(SNAME("h_line_color"), SNAME("AnimationTrackEdit"));
const int h_separation = get_theme_constant(SNAME("h_separation"), SNAME("AnimationTrackEdit"));
Expand Down
2 changes: 1 addition & 1 deletion editor/editor_audio_buses.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -849,7 +849,7 @@ EditorAudioBus::EditorAudioBus(EditorAudioBuses *p_buses, bool p_is_master) {
Control *child = Object::cast_to<Control>(hbc->get_child(i));
child->begin_bulk_theme_override();
child->add_theme_style_override(CoreStringName(normal), sbempty);
child->add_theme_style_override("hover", sbempty);
child->add_theme_style_override(SceneStringName(hover), sbempty);
child->add_theme_style_override("hover_mirrored", sbempty);
child->add_theme_style_override("focus", sbempty);
child->add_theme_style_override("focus_mirrored", sbempty);
Expand Down
2 changes: 1 addition & 1 deletion editor/gui/editor_quick_open_dialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -816,7 +816,7 @@ void QuickOpenResultItem::_notification(int p_what) {
} break;
case NOTIFICATION_THEME_CHANGED: {
selected_stylebox = get_theme_stylebox("selected", "Tree");
hovering_stylebox = get_theme_stylebox("hover", "Tree");
hovering_stylebox = get_theme_stylebox(SceneStringName(hover), "Tree");
highlighted_font_color = get_theme_color("font_focus_color", EditorStringName(Editor));
} break;
case NOTIFICATION_DRAW: {
Expand Down
2 changes: 1 addition & 1 deletion editor/gui/editor_zoom_widget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ EditorZoomWidget::EditorZoomWidget() {

Ref<StyleBoxEmpty> empty_stylebox = memnew(StyleBoxEmpty);
zoom_reset->add_theme_style_override(CoreStringName(normal), empty_stylebox);
zoom_reset->add_theme_style_override("hover", empty_stylebox);
zoom_reset->add_theme_style_override(SceneStringName(hover), empty_stylebox);
zoom_reset->add_theme_style_override("focus", empty_stylebox);
zoom_reset->add_theme_style_override(SceneStringName(pressed), empty_stylebox);
zoom_reset->add_theme_constant_override("outline_size", Math::ceil(2 * EDSCALE));
Expand Down
2 changes: 1 addition & 1 deletion editor/import/3d/scene_import_settings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1314,7 +1314,7 @@ void SceneImportSettingsDialog::_notification(int p_what) {
case NOTIFICATION_THEME_CHANGED: {
action_menu->begin_bulk_theme_override();
action_menu->add_theme_style_override(CoreStringName(normal), get_theme_stylebox(CoreStringName(normal), "Button"));
action_menu->add_theme_style_override("hover", get_theme_stylebox("hover", "Button"));
action_menu->add_theme_style_override(SceneStringName(hover), get_theme_stylebox(SceneStringName(hover), "Button"));
action_menu->add_theme_style_override(SceneStringName(pressed), get_theme_stylebox(SceneStringName(pressed), "Button"));
action_menu->end_bulk_theme_override();

Expand Down
4 changes: 2 additions & 2 deletions editor/plugins/node_3d_editor_plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3156,7 +3156,7 @@ void Node3DEditorViewport::_notification(int p_what) {
view_menu->begin_bulk_theme_override();
view_menu->add_theme_style_override(CoreStringName(normal), information_3d_stylebox);
view_menu->add_theme_style_override("normal_mirrored", information_3d_stylebox);
view_menu->add_theme_style_override("hover", information_3d_stylebox);
view_menu->add_theme_style_override(SceneStringName(hover), information_3d_stylebox);
view_menu->add_theme_style_override("hover_mirrored", information_3d_stylebox);
view_menu->add_theme_style_override("hover_pressed", information_3d_stylebox);
view_menu->add_theme_style_override("hover_pressed_mirrored", information_3d_stylebox);
Expand All @@ -3171,7 +3171,7 @@ void Node3DEditorViewport::_notification(int p_what) {
preview_camera->begin_bulk_theme_override();
preview_camera->add_theme_style_override(CoreStringName(normal), information_3d_stylebox);
preview_camera->add_theme_style_override("normal_mirrored", information_3d_stylebox);
preview_camera->add_theme_style_override("hover", information_3d_stylebox);
preview_camera->add_theme_style_override(SceneStringName(hover), information_3d_stylebox);
preview_camera->add_theme_style_override("hover_mirrored", information_3d_stylebox);
preview_camera->add_theme_style_override("hover_pressed", information_3d_stylebox);
preview_camera->add_theme_style_override("hover_pressed_mirrored", information_3d_stylebox);
Expand Down
2 changes: 1 addition & 1 deletion editor/plugins/tiles/tile_set_atlas_source_editor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -998,7 +998,7 @@ void TileSetAtlasSourceEditor::_update_atlas_view() {
button->set_flat(true);
button->set_button_icon(get_editor_theme_icon(SNAME("Add")));
button->add_theme_style_override(CoreStringName(normal), memnew(StyleBoxEmpty));
button->add_theme_style_override("hover", memnew(StyleBoxEmpty));
button->add_theme_style_override(SceneStringName(hover), memnew(StyleBoxEmpty));
button->add_theme_style_override("focus", memnew(StyleBoxEmpty));
button->add_theme_style_override(SceneStringName(pressed), memnew(StyleBoxEmpty));
button->connect(SceneStringName(pressed), callable_mp(tile_set_atlas_source, &TileSetAtlasSource::create_alternative_tile).bind(tile_id, TileSetSource::INVALID_TILE_ALTERNATIVE));
Expand Down
36 changes: 18 additions & 18 deletions editor/themes/editor_theme_manager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -725,7 +725,7 @@ void EditorThemeManager::_populate_standard_styles(const Ref<EditorTheme> &p_the
// Button.

p_theme->set_stylebox(CoreStringName(normal), "Button", p_config.button_style);
p_theme->set_stylebox("hover", "Button", p_config.button_style_hover);
p_theme->set_stylebox(SceneStringName(hover), "Button", p_config.button_style_hover);
p_theme->set_stylebox(SceneStringName(pressed), "Button", p_config.button_style_pressed);
p_theme->set_stylebox("focus", "Button", p_config.button_style_focus);
p_theme->set_stylebox("disabled", "Button", p_config.button_style_disabled);
Expand Down Expand Up @@ -753,7 +753,7 @@ void EditorThemeManager::_populate_standard_styles(const Ref<EditorTheme> &p_the
// MenuButton.

p_theme->set_stylebox(CoreStringName(normal), "MenuButton", p_config.panel_container_style);
p_theme->set_stylebox("hover", "MenuButton", p_config.button_style_hover);
p_theme->set_stylebox(SceneStringName(hover), "MenuButton", p_config.button_style_hover);
p_theme->set_stylebox(SceneStringName(pressed), "MenuButton", p_config.panel_container_style);
p_theme->set_stylebox("focus", "MenuButton", p_config.panel_container_style);
p_theme->set_stylebox("disabled", "MenuButton", p_config.panel_container_style);
Expand All @@ -769,7 +769,7 @@ void EditorThemeManager::_populate_standard_styles(const Ref<EditorTheme> &p_the
// MenuBar.

p_theme->set_stylebox(CoreStringName(normal), "MenuBar", p_config.button_style);
p_theme->set_stylebox("hover", "MenuBar", p_config.button_style_hover);
p_theme->set_stylebox(SceneStringName(hover), "MenuBar", p_config.button_style_hover);
p_theme->set_stylebox(SceneStringName(pressed), "MenuBar", p_config.button_style_pressed);
p_theme->set_stylebox("disabled", "MenuBar", p_config.button_style_disabled);

Expand Down Expand Up @@ -806,7 +806,7 @@ void EditorThemeManager::_populate_standard_styles(const Ref<EditorTheme> &p_the

p_theme->set_stylebox("focus", "OptionButton", option_button_focus_style);
p_theme->set_stylebox(CoreStringName(normal), "OptionButton", p_config.button_style);
p_theme->set_stylebox("hover", "OptionButton", p_config.button_style_hover);
p_theme->set_stylebox(SceneStringName(hover), "OptionButton", p_config.button_style_hover);
p_theme->set_stylebox(SceneStringName(pressed), "OptionButton", p_config.button_style_pressed);
p_theme->set_stylebox("disabled", "OptionButton", p_config.button_style_disabled);

Expand Down Expand Up @@ -841,7 +841,7 @@ void EditorThemeManager::_populate_standard_styles(const Ref<EditorTheme> &p_the
p_theme->set_stylebox(CoreStringName(normal), "CheckButton", p_config.panel_container_style);
p_theme->set_stylebox(SceneStringName(pressed), "CheckButton", p_config.panel_container_style);
p_theme->set_stylebox("disabled", "CheckButton", p_config.panel_container_style);
p_theme->set_stylebox("hover", "CheckButton", p_config.panel_container_style);
p_theme->set_stylebox(SceneStringName(hover), "CheckButton", p_config.panel_container_style);
p_theme->set_stylebox("hover_pressed", "CheckButton", p_config.panel_container_style);

p_theme->set_icon("checked", "CheckButton", p_theme->get_icon(SNAME("GuiToggleOn"), EditorStringName(EditorIcons)));
Expand Down Expand Up @@ -879,7 +879,7 @@ void EditorThemeManager::_populate_standard_styles(const Ref<EditorTheme> &p_the
p_theme->set_stylebox(CoreStringName(normal), "CheckBox", checkbox_style);
p_theme->set_stylebox(SceneStringName(pressed), "CheckBox", checkbox_style);
p_theme->set_stylebox("disabled", "CheckBox", checkbox_style);
p_theme->set_stylebox("hover", "CheckBox", checkbox_style);
p_theme->set_stylebox(SceneStringName(hover), "CheckBox", checkbox_style);
p_theme->set_stylebox("hover_pressed", "CheckBox", checkbox_style);
p_theme->set_icon("checked", "CheckBox", p_theme->get_icon(SNAME("GuiChecked"), EditorStringName(EditorIcons)));
p_theme->set_icon("unchecked", "CheckBox", p_theme->get_icon(SNAME("GuiUnchecked"), EditorStringName(EditorIcons)));
Expand Down Expand Up @@ -1334,7 +1334,7 @@ void EditorThemeManager::_populate_standard_styles(const Ref<EditorTheme> &p_the
Ref<StyleBoxFlat> style_menu_hover = p_config.button_style_hover->duplicate();
// Don't use rounded corners for hover highlights since the StyleBox touches the PopupMenu's edges.
style_menu_hover->set_corner_radius_all(0);
p_theme->set_stylebox("hover", "PopupMenu", style_menu_hover);
p_theme->set_stylebox(SceneStringName(hover), "PopupMenu", style_menu_hover);

Ref<StyleBoxLine> style_popup_separator(memnew(StyleBoxLine));
style_popup_separator->set_color(p_config.separator_color);
Expand Down Expand Up @@ -1796,7 +1796,7 @@ void EditorThemeManager::_populate_editor_styles(const Ref<EditorTheme> &p_theme
tag->set_corner_radius(CORNER_BOTTOM_LEFT, 0);
tag->set_corner_radius(CORNER_TOP_RIGHT, 4);
tag->set_corner_radius(CORNER_BOTTOM_RIGHT, 4);
p_theme->set_stylebox("hover", "ProjectTag", tag);
p_theme->set_stylebox(SceneStringName(hover), "ProjectTag", tag);

tag = p_config.button_style_pressed->duplicate();
tag->set_corner_radius(CORNER_TOP_LEFT, 0);
Expand Down Expand Up @@ -1883,15 +1883,15 @@ void EditorThemeManager::_populate_editor_styles(const Ref<EditorTheme> &p_theme
p_theme->set_stylebox("normal_mirrored", "MainScreenButton", menu_transparent_style);
p_theme->set_stylebox(SceneStringName(pressed), "MainScreenButton", menu_transparent_style);
p_theme->set_stylebox("pressed_mirrored", "MainScreenButton", menu_transparent_style);
p_theme->set_stylebox("hover", "MainScreenButton", main_screen_button_hover);
p_theme->set_stylebox(SceneStringName(hover), "MainScreenButton", main_screen_button_hover);
p_theme->set_stylebox("hover_mirrored", "MainScreenButton", main_screen_button_hover);
p_theme->set_stylebox("hover_pressed", "MainScreenButton", main_screen_button_hover);
p_theme->set_stylebox("hover_pressed_mirrored", "MainScreenButton", main_screen_button_hover);

p_theme->set_type_variation("MainMenuBar", "FlatMenuButton");
p_theme->set_stylebox(CoreStringName(normal), "MainMenuBar", menu_transparent_style);
p_theme->set_stylebox(SceneStringName(pressed), "MainMenuBar", main_screen_button_hover);
p_theme->set_stylebox("hover", "MainMenuBar", main_screen_button_hover);
p_theme->set_stylebox(SceneStringName(hover), "MainMenuBar", main_screen_button_hover);
p_theme->set_stylebox("hover_pressed", "MainMenuBar", main_screen_button_hover);

// Run bar.
Expand All @@ -1907,7 +1907,7 @@ void EditorThemeManager::_populate_editor_styles(const Ref<EditorTheme> &p_theme
p_theme->set_stylebox(CoreStringName(normal), "BottomPanelButton", menu_transparent_style);
p_theme->set_stylebox(SceneStringName(pressed), "BottomPanelButton", menu_transparent_style);
p_theme->set_stylebox("hover_pressed", "BottomPanelButton", main_screen_button_hover);
p_theme->set_stylebox("hover", "BottomPanelButton", main_screen_button_hover);
p_theme->set_stylebox(SceneStringName(hover), "BottomPanelButton", main_screen_button_hover);
// Don't tint the icon even when in "pressed" state.
p_theme->set_color("icon_pressed_color", "BottomPanelButton", Color(1, 1, 1, 1));
Color icon_hover_color = p_config.icon_normal_color * (p_config.dark_theme ? 1.15 : 1.0);
Expand Down Expand Up @@ -1991,12 +1991,12 @@ void EditorThemeManager::_populate_editor_styles(const Ref<EditorTheme> &p_theme
style_flat_button_pressed->set_bg_color(flat_pressed_color);

p_theme->set_stylebox(CoreStringName(normal), SceneStringName(FlatButton), style_flat_button);
p_theme->set_stylebox("hover", SceneStringName(FlatButton), style_flat_button_hover);
p_theme->set_stylebox(SceneStringName(hover), SceneStringName(FlatButton), style_flat_button_hover);
p_theme->set_stylebox(SceneStringName(pressed), SceneStringName(FlatButton), style_flat_button_pressed);
p_theme->set_stylebox("disabled", SceneStringName(FlatButton), style_flat_button);

p_theme->set_stylebox(CoreStringName(normal), "FlatMenuButton", style_flat_button);
p_theme->set_stylebox("hover", "FlatMenuButton", style_flat_button_hover);
p_theme->set_stylebox(SceneStringName(hover), "FlatMenuButton", style_flat_button_hover);
p_theme->set_stylebox(SceneStringName(pressed), "FlatMenuButton", style_flat_button_pressed);
p_theme->set_stylebox("disabled", "FlatMenuButton", style_flat_button);

Expand All @@ -2022,7 +2022,7 @@ void EditorThemeManager::_populate_editor_styles(const Ref<EditorTheme> &p_theme
editor_log_button_pressed->set_bg_color(flat_pressed_color.lightened(0.5));
}
p_theme->set_stylebox(CoreStringName(normal), "EditorLogFilterButton", style_flat_button);
p_theme->set_stylebox("hover", "EditorLogFilterButton", style_flat_button_hover);
p_theme->set_stylebox(SceneStringName(hover), "EditorLogFilterButton", style_flat_button_hover);
p_theme->set_stylebox(SceneStringName(pressed), "EditorLogFilterButton", editor_log_button_pressed);
}

Expand All @@ -2043,7 +2043,7 @@ void EditorThemeManager::_populate_editor_styles(const Ref<EditorTheme> &p_theme
panel_button_style_disabled->set_bg_color(p_config.disabled_bg_color);

p_theme->set_stylebox(CoreStringName(normal), "PanelBackgroundButton", panel_button_style);
p_theme->set_stylebox("hover", "PanelBackgroundButton", panel_button_style_hover);
p_theme->set_stylebox(SceneStringName(hover), "PanelBackgroundButton", panel_button_style_hover);
p_theme->set_stylebox(SceneStringName(pressed), "PanelBackgroundButton", panel_button_style_pressed);
p_theme->set_stylebox("disabled", "PanelBackgroundButton", panel_button_style_disabled);
}
Expand Down Expand Up @@ -2086,7 +2086,7 @@ void EditorThemeManager::_populate_editor_styles(const Ref<EditorTheme> &p_theme

style_inspector_action = p_config.button_style_hover->duplicate();
style_inspector_action->set_content_margin(SIDE_RIGHT, action_extra_margin);
p_theme->set_stylebox("hover", "InspectorActionButton", style_inspector_action);
p_theme->set_stylebox(SceneStringName(hover), "InspectorActionButton", style_inspector_action);

style_inspector_action = p_config.button_style_hover->duplicate();
style_inspector_action->set_content_margin(SIDE_LEFT, action_extra_margin);
Expand Down Expand Up @@ -2125,7 +2125,7 @@ void EditorThemeManager::_populate_editor_styles(const Ref<EditorTheme> &p_theme
p_theme->set_color("icon_hover_color", "PreviewLightButton", dim_light_highlighted_color);

p_theme->set_stylebox(CoreStringName(normal), "PreviewLightButton", sb_empty_borderless);
p_theme->set_stylebox("hover", "PreviewLightButton", sb_empty_borderless);
p_theme->set_stylebox(SceneStringName(hover), "PreviewLightButton", sb_empty_borderless);
p_theme->set_stylebox("focus", "PreviewLightButton", sb_empty_borderless);
p_theme->set_stylebox(SceneStringName(pressed), "PreviewLightButton", sb_empty_borderless);
}
Expand Down Expand Up @@ -2330,7 +2330,7 @@ void EditorThemeManager::_populate_editor_styles(const Ref<EditorTheme> &p_theme
Ref<StyleBoxFlat> style_animation_track_hover = make_flat_stylebox(Color(0.5, 0.5, 0.5, 0.1), 0, 0, 0, 0, p_config.corner_radius);

p_theme->set_stylebox("odd", "AnimationTrackEdit", style_animation_track_odd);
p_theme->set_stylebox("hover", "AnimationTrackEdit", style_animation_track_hover);
p_theme->set_stylebox(SceneStringName(hover), "AnimationTrackEdit", style_animation_track_hover);
p_theme->set_stylebox("focus", "AnimationTrackEdit", p_config.button_style_focus);

p_theme->set_color("h_line_color", "AnimationTrackEdit", p_config.font_color * Color(1, 1, 1, 0.2));
Expand Down
2 changes: 1 addition & 1 deletion scene/gui/color_picker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ void ColorPicker::_notification(int p_what) {
mode_btns[i]->begin_bulk_theme_override();
mode_btns[i]->add_theme_style_override(SceneStringName(pressed), theme_cache.mode_button_pressed);
mode_btns[i]->add_theme_style_override(CoreStringName(normal), theme_cache.mode_button_normal);
mode_btns[i]->add_theme_style_override(SNAME("hover"), theme_cache.mode_button_hover);
mode_btns[i]->add_theme_style_override(SceneStringName(hover), theme_cache.mode_button_hover);
mode_btns[i]->end_bulk_theme_override();
}

Expand Down
1 change: 1 addition & 0 deletions scene/scene_string_names.h
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,7 @@ class SceneStringNames {
const StringName pressed = StaticCString::create("pressed");
const StringName id_pressed = StaticCString::create("id_pressed");
const StringName toggled = StaticCString::create("toggled");
const StringName hover = StaticCString::create("hover");

const StringName panel = StaticCString::create("panel");
const StringName item_selected = StaticCString::create("item_selected");
Expand Down
Loading

0 comments on commit a40fc23

Please sign in to comment.