From 32da9dc1e904b8ec508b32634820caced50a5f59 Mon Sep 17 00:00:00 2001 From: Michael Alexsander Date: Thu, 3 Dec 2020 11:36:03 -0300 Subject: [PATCH] Add "font_color_separator" theme property to 'PopupMenu' (cherry picked from commit 383e8919e0187d87a303818e59982bc25edb99ea) --- doc/classes/PopupMenu.xml | 4 ++++ editor/editor_themes.cpp | 1 + scene/gui/popup_menu.cpp | 3 ++- scene/resources/default_theme/default_theme.cpp | 1 + 4 files changed, 8 insertions(+), 1 deletion(-) 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);