diff --git a/doc/classes/PopupMenu.xml b/doc/classes/PopupMenu.xml index ec6758908e6..82b641c589d 100644 --- a/doc/classes/PopupMenu.xml +++ b/doc/classes/PopupMenu.xml @@ -205,6 +205,7 @@ Adds a separator between items. Separators also occupy an index. + A [code]label[/code] can optionally be provided, which will appear at the center of the separator. @@ -668,6 +669,9 @@ [Color] used for the hovered text. + + [Color] used for labeled separators' text. See [method add_separator]. + [StyleBox] displayed when the [PopupMenu] item is hovered. diff --git a/editor/editor_themes.cpp b/editor/editor_themes.cpp index a28921fc848..90ac95f3840 100644 --- a/editor/editor_themes.cpp +++ b/editor/editor_themes.cpp @@ -687,6 +687,7 @@ Ref create_editor_theme(const Ref p_theme) { theme->set_color("font_color_hover", "PopupMenu", font_color_hl); theme->set_color("font_color_accel", "PopupMenu", font_color_disabled); theme->set_color("font_color_disabled", "PopupMenu", font_color_disabled); + theme->set_color("font_color_separator", "PopupMenu", font_color_disabled); theme->set_icon("checked", "PopupMenu", theme->get_icon("GuiChecked", "EditorIcons")); theme->set_icon("unchecked", "PopupMenu", theme->get_icon("GuiUnchecked", "EditorIcons")); theme->set_icon("radio_checked", "PopupMenu", theme->get_icon("GuiRadioChecked", "EditorIcons")); diff --git a/scene/gui/popup_menu.cpp b/scene/gui/popup_menu.cpp index 571fd5f5043..997307f1daa 100644 --- a/scene/gui/popup_menu.cpp +++ b/scene/gui/popup_menu.cpp @@ -482,6 +482,7 @@ void PopupMenu::_notification(int p_what) { Color font_color_disabled = get_color("font_color_disabled"); Color font_color_accel = get_color("font_color_accel"); Color font_color_hover = get_color("font_color_hover"); + Color font_color_separator = get_color("font_color_separator"); float font_h = font->get_height(); // Add the check and the wider icon to the offset of all items. @@ -566,7 +567,7 @@ void PopupMenu::_notification(int p_what) { if (text != String()) { int center = (get_size().width - font->get_string_size(text).width) / 2; - font->draw(ci, Point2(center, item_ofs.y + Math::floor((h - font_h) / 2.0)), text, font_color_disabled); + font->draw(ci, Point2(center, item_ofs.y + Math::floor((h - font_h) / 2.0)), text, font_color_separator); } } else { diff --git a/scene/resources/default_theme/default_theme.cpp b/scene/resources/default_theme/default_theme.cpp index 3ab77aaa5f6..79ab7822732 100644 --- a/scene/resources/default_theme/default_theme.cpp +++ b/scene/resources/default_theme/default_theme.cpp @@ -580,6 +580,7 @@ void fill_default_theme(Ref &theme, const Ref &default_font, const theme->set_color("font_color_accel", "PopupMenu", Color(0.7, 0.7, 0.7, 0.8)); theme->set_color("font_color_disabled", "PopupMenu", Color(0.4, 0.4, 0.4, 0.8)); theme->set_color("font_color_hover", "PopupMenu", control_font_color); + theme->set_color("font_color_separator", "PopupMenu", control_font_color); theme->set_constant("hseparation", "PopupMenu", 4 * scale); theme->set_constant("vseparation", "PopupMenu", 4 * scale);